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