vimsheet.formula.parser
Recursive-descent parser — converts a Token list into an AST.
- exception vimsheet.formula.parser.ParseError[source]
Bases:
SyntaxError
- class vimsheet.formula.parser.Parser(tokens)[source]
Bases:
objectParse a list of Tokens produced by the tokenizer.
Usage:
from vimsheet.formula.tokenizer import tokenize from vimsheet.formula.parser import Parser tokens = tokenize("A1 + SUM(B1:B5)") ast = Parser(tokens).parse()
- parse()[source]
Parse and return the root expression node.
- Return type:
NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode
- vimsheet.formula.parser.parse_formula(source)[source]
Convenience: tokenize and parse source (without leading ‘=’).
Raises ParseError on syntax errors.
- Parameters:
source (str)
- Return type:
NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode