odata_query.grammar module
Implementation of a subset of the OData formal grammar . Implemented with SLY.
- class odata_query.grammar.ODataLexer[source]
Bases:
Lexer- WS = '\\s+'
- error(token: Token)[source]
Error handler during tokenization
- Parameters:
token – The token that failed to tokenize.
- Raises:
- literals = {'(', ')', ',', '/', ':', '='}
- reflags = 2
- tokens = {'ADD', 'ALL', 'AND', 'ANY', 'BOOLEAN', 'DATE', 'DATETIME', 'DECIMAL', 'DIV', 'DURATION', 'EQ', 'GE', 'GEOGRAPHY', 'GT', 'GUID', 'IN', 'INTEGER', 'LE', 'LT', 'MOD', 'MUL', 'NE', 'NOT', 'NULL', 'ODATA_IDENTIFIER', 'OR', 'STRING', 'SUB', 'TIME', 'UMINUS', 'WS'}
- class odata_query.grammar.ODataParser[source]
Bases:
Parser- debugfile = None
- error(token: Optional[Token])[source]
Error handler during parsing.
- Parameters:
token – The token at which point parsing failed.
- Raises:
ParsingFailedException –
- precedence = (('left', 'OR'), ('left', 'AND'), ('left', 'EQ', 'NE'), ('left', 'GT', 'GE', 'LT', 'LE'), ('left', 'ADD', 'SUB'), ('left', 'MUL', 'DIV', 'MOD'), ('right', 'NOT', 'UMINUS'), ('left', 'IN'))
- tokens = {'ADD', 'ALL', 'AND', 'ANY', 'BOOLEAN', 'DATE', 'DATETIME', 'DECIMAL', 'DIV', 'DURATION', 'EQ', 'GE', 'GEOGRAPHY', 'GT', 'GUID', 'IN', 'INTEGER', 'LE', 'LT', 'MOD', 'MUL', 'NE', 'NOT', 'NULL', 'ODATA_IDENTIFIER', 'OR', 'STRING', 'SUB', 'TIME', 'UMINUS', 'WS'}