vimsheet.formula.ast_nodes

AST node dataclasses for the formula parser.

class vimsheet.formula.ast_nodes.NumberNode(value: 'float')[source]

Bases: object

Parameters:

value (float)

value: float
__init__(value)
Parameters:

value (float)

Return type:

None

class vimsheet.formula.ast_nodes.StringNode(value: 'str')[source]

Bases: object

Parameters:

value (str)

value: str
__init__(value)
Parameters:

value (str)

Return type:

None

class vimsheet.formula.ast_nodes.BoolNode(value: 'bool')[source]

Bases: object

Parameters:

value (bool)

value: bool
__init__(value)
Parameters:

value (bool)

Return type:

None

class vimsheet.formula.ast_nodes.CellRefNode(ref)[source]

Bases: object

A single cell reference, e.g. A1 or $B$3.

Parameters:

ref (str)

ref: str
__init__(ref)
Parameters:

ref (str)

Return type:

None

class vimsheet.formula.ast_nodes.RangeRefNode(ref)[source]

Bases: object

A range reference, e.g. A1:C10.

Parameters:

ref (str)

ref: str
__init__(ref)
Parameters:

ref (str)

Return type:

None

class vimsheet.formula.ast_nodes.SheetCellRefNode(sheet, ref)[source]

Bases: object

A cross-sheet cell reference, e.g. Sheet1!A1.

Parameters:
sheet: str
ref: str
__init__(sheet, ref)
Parameters:
Return type:

None

class vimsheet.formula.ast_nodes.SheetRangeRefNode(sheet, ref)[source]

Bases: object

A cross-sheet range reference, e.g. Sheet1!A1:B2.

Parameters:
sheet: str
ref: str
__init__(sheet, ref)
Parameters:
Return type:

None

class vimsheet.formula.ast_nodes.ColRangeRefNode(ref)[source]

Bases: object

A whole-column reference, e.g. A$:B$ or A:B or A$.

Parameters:

ref (str)

ref: str
__init__(ref)
Parameters:

ref (str)

Return type:

None

class vimsheet.formula.ast_nodes.NameNode(name)[source]

Bases: object

A named range or undefined identifier.

Parameters:

name (str)

name: str
__init__(name)
Parameters:

name (str)

Return type:

None

class vimsheet.formula.ast_nodes.UnaryNode(op: 'str', operand: 'Expr')[source]

Bases: object

Parameters:
op: str
operand: NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode
__init__(op, operand)
Parameters:
Return type:

None

class vimsheet.formula.ast_nodes.BinaryNode(op: 'str', left: 'Expr', right: 'Expr')[source]

Bases: object

Parameters:
op: str
left: NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode
right: NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode
__init__(op, left, right)
Parameters:
Return type:

None

class vimsheet.formula.ast_nodes.PercentNode(operand)[source]

Bases: object

postfix % — divide by 100

Parameters:

operand (NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode)

operand: NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode
__init__(operand)
Parameters:

operand (NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode)

Return type:

None

class vimsheet.formula.ast_nodes.FuncCallNode(name: 'str', args: 'list[Expr]' = <factory>)[source]

Bases: object

Parameters:
name: str
args: list[NumberNode | StringNode | BoolNode | CellRefNode | RangeRefNode | ColRangeRefNode | SheetCellRefNode | SheetRangeRefNode | NameNode | UnaryNode | BinaryNode | PercentNode | FuncCallNode]
__init__(name, args=<factory>)
Parameters:
Return type:

None