Versions in this module Expand all Collapse all v1 v1.0.3 Jan 7, 2025 Changes in this version + const CTBool + const CTEmpty + const CTFormula + const CTNumber + const CTString + var IsCommutative = map[string]bool + var PrecedenceMap = map[string]int + type AnyClosure func() error + type BinaryExpressionNode struct + Left Node + Operator string + Right Node + func (b BinaryExpressionNode) Children() []Node + func (b BinaryExpressionNode) IsEq(node Node) bool + func (b BinaryExpressionNode) Type() NodeType + type CType = xl.CType + type CVal = xl.CVal + type Cell = xl.Cell + type CellNode struct + Cell Cell + func (c CellNode) Children() []Node + func (c CellNode) IsEq(n Node) bool + func (c CellNode) Type() NodeType + type CellRangeNode struct + End CellNode + Start CellNode + func (c CellRangeNode) Children() []Node + func (c CellRangeNode) IsEq(n Node) bool + func (c CellRangeNode) Range() Range + func (c CellRangeNode) Type() NodeType + type Context struct + CurrentSheet string + type Formula = xl.Formula + func ShiftFormula(f Formula, rowDiff int, colDiff int, sheetName string) (Formula, error) + func StringifyNode(n Node, sheetName string) Formula + type FunctionNode struct + Arguments []Node + Name string + func (c FunctionNode) Children() []Node + func (f FunctionNode) IsEq(n Node) bool + func (f FunctionNode) Type() NodeType + type LogicalNode struct + Value bool + func (l LogicalNode) Children() []Node + func (l LogicalNode) IsEq(node Node) bool + func (l LogicalNode) String() string + func (l LogicalNode) Type() NodeType + type Node interface + Children func() []Node + IsEq func(Node) bool + Type func() NodeType + func BuildTree(ctx Context, tokens []Token) (Node, error) + func MoveNode(n Node, origin Cell, dest Cell) (Node, error) + func Parse(formula string, currentSheet string) (Node, error) + func ShiftNode(n Node, shiftRow int, shiftCol int) (Node, error) + type NodeJSON struct + Type string + Value any + func ToNodeJson(n Node) NodeJSON + type NodeType uint8 + const NodeTypeBinaryExpression + const NodeTypeCell + const NodeTypeCellRange + const NodeTypeFunction + const NodeTypeLogical + const NodeTypeNumber + const NodeTypeText + const NodeTypeUnaryExpression + func (NodeType NodeType) IsTerminal() bool + func (nodeType NodeType) String() string + type NumberNode struct + Value float64 + func (n NumberNode) Children() []Node + func (n NumberNode) IsEq(node Node) bool + func (n NumberNode) String() string + func (n NumberNode) Type() NodeType + type Range = xl.Range + type RawSheet = xl.RawSheet + type Sheet = xl.Sheet + type ShuntingYard = shuntingyard.ShuntingYardState[Node] + type TextNode struct + Value string + func (t TextNode) Children() []Node + func (t TextNode) IsEq(node Node) bool + func (t TextNode) String() string + func (t TextNode) Type() NodeType + type Token struct + Subtype string + Type string + Value string + func Tokenize(formula string) []Token + type TokenStream interface + Consume func() error + GetNext func() Token + NextIs func(ttype string, tsubtype string) bool + NextIsBinaryOperator func() bool + NextIsCell func() bool + NextIsEndOfFunctionCall func() bool + NextIsFunctionArgumentSeparator func() bool + NextIsFunctionCall func() bool + NextIsLogical func() bool + NextIsNumber func() bool + NextIsOpenParen func() bool + NextIsPostfixOperator func() bool + NextIsPrefixOperator func() bool + NextIsRange func() bool + NextIsTerminal func() bool + NextIsText func() bool + Position func() int + func NewTokenStream(tokens []Token) TokenStream + type TokenStreamImpl struct + func (ts *TokenStreamImpl) Consume() error + func (ts *TokenStreamImpl) GetNext() Token + func (ts *TokenStreamImpl) NextIs(ttype string, tsubtype string) bool + func (ts *TokenStreamImpl) NextIsBinaryOperator() bool + func (ts *TokenStreamImpl) NextIsCell() bool + func (ts *TokenStreamImpl) NextIsEndOfFunctionCall() bool + func (ts *TokenStreamImpl) NextIsFunctionArgumentSeparator() bool + func (ts *TokenStreamImpl) NextIsFunctionCall() bool + func (ts *TokenStreamImpl) NextIsLogical() bool + func (ts *TokenStreamImpl) NextIsNumber() bool + func (ts *TokenStreamImpl) NextIsOpenParen() bool + func (ts *TokenStreamImpl) NextIsPostfixOperator() bool + func (ts *TokenStreamImpl) NextIsPrefixOperator() bool + func (ts *TokenStreamImpl) NextIsRange() bool + func (ts *TokenStreamImpl) NextIsTerminal() bool + func (ts *TokenStreamImpl) NextIsText() bool + func (ts *TokenStreamImpl) Position() int + type UnaryExpressionNode struct + Operand Node + Operator string + func (u UnaryExpressionNode) Children() []Node + func (u UnaryExpressionNode) IsEq(node Node) bool + func (u UnaryExpressionNode) Type() NodeType + type ValueNode interface + String func() string + type Workbook = xl.Workbook