Source code for bluebase.lp.manager

from bluebase.core import Ast

from .lexer import LpLexer
from .parser import LpParser


__all__ = (
    'LpManager',
)


[docs] class LpManager: """ A manager for the `LP <bluebase.lp>` component. Attributes: lexer: a lexer object """ lexer: LpLexer def __repr__(self) -> str: # pragma: no cover return "LpManager()" def __init__(self) -> None: self.lexer = LpLexer()
[docs] def parse(self, query: str) -> Ast: """ Parse a query into an `AST <bluebase.core.ast>`. """ tokens = self.lexer.tokenize(query) parser = LpParser(tokens) ast = parser.parse() return ast