Versions in this module Expand all Collapse all v1 v1.4.0 Aug 14, 2022 v1.3.0 Mar 19, 2022 v1.2.0 May 4, 2021 v1.1.2 Apr 25, 2021 v1.1.1 Dec 7, 2020 v1.1.0 Nov 30, 2020 v1.0.5 Jun 28, 2020 v1.0.4 May 24, 2020 v1.0.3 Mar 8, 2020 v1.0.2 Feb 23, 2020 v1.0.1 Dec 15, 2019 v1.0.0 Sep 7, 2019 Changes in this version + const NodeAND + const NodeAS + const NodeASCENDING + const NodeBEGINSWITH + const NodeCOMMA + const NodeCONTAINS + const NodeCONTAINSNOT + const NodeDESCENDING + const NodeDIV + const NodeDIVINT + const NodeEND + const NodeENDSWITH + const NodeEOF + const NodeEQ + const NodeFALSE + const NodeFILTERING + const NodeFORMAT + const NodeFROM + const NodeFUNC + const NodeGEQ + const NodeGET + const NodeGROUP + const NodeGT + const NodeIN + const NodeISNOTNULL + const NodeLBRACK + const NodeLEQ + const NodeLIKE + const NodeLIST + const NodeLOOKUP + const NodeLPAREN + const NodeLT + const NodeMINUS + const NodeMODINT + const NodeNEQ + const NodeNOT + const NodeNOTIN + const NodeNULL + const NodeNULLTRAVERSAL + const NodeOR + const NodeORDERING + const NodePLUS + const NodePRIMARY + const NodeRBRACK + const NodeRPAREN + const NodeSHOW + const NodeSHOWTERM + const NodeTIMES + const NodeTRAVERSE + const NodeTRUE + const NodeUNIQUE + const NodeUNIQUECOUNT + const NodeVALUE + const NodeWHERE + const NodeWITH + const RuneEOF + const TokenSHOWTERM + var ErrImpossibleLeftDenotation = errors.New("Term can only start an expression") + var ErrImpossibleNullDenotation = errors.New("Term cannot start an expression") + var ErrLexicalError = errors.New("Lexical error") + var ErrUnexpectedEnd = errors.New("Unexpected end") + var ErrUnexpectedToken = errors.New("Unexpected term") + var ErrUnknownToken = errors.New("Unknown term") + func FirstWord(input string) string + func Lex(name string, input string) chan LexToken + func PrettyPrint(ast *ASTNode) (string, error) + type ASTNode struct + Children []*ASTNode + Name string + Runtime Runtime + Token *LexToken + func ASTFromPlain(plainAST map[string]interface{}) (*ASTNode, error) + func Parse(name string, input string) (*ASTNode, error) + func ParseWithRuntime(name string, input string, rp RuntimeProvider) (*ASTNode, error) + func (n *ASTNode) Plain() map[string]interface{} + func (n *ASTNode) String() string + type Error struct + Detail string + Line int + Pos int + Source string + Type error + func (pe *Error) Error() string + type LexToken struct + ID LexTokenID + Lline int + Lpos int + Pos int + Val string + func LexToList(name string, input string) []LexToken + func (t LexToken) PosString() string + func (t LexToken) String() string + type LexTokenID int + const TOKENodeKEYWORDS + const TOKENodeSYMBOLS + const TokenAND + const TokenAS + const TokenASCENDING + const TokenAT + const TokenBEGINSWITH + const TokenCOMMA + const TokenCONTAINS + const TokenCONTAINSNOT + const TokenDESCENDING + const TokenDIV + const TokenDIVINT + const TokenEND + const TokenENDSWITH + const TokenEOF + const TokenEQ + const TokenError + const TokenFALSE + const TokenFILTERING + const TokenFORMAT + const TokenFROM + const TokenGEQ + const TokenGET + const TokenGROUP + const TokenGT + const TokenGeneral + const TokenIN + const TokenISNOTNULL + const TokenISNULL + const TokenLBRACK + const TokenLEQ + const TokenLIKE + const TokenLIST + const TokenLOOKUP + const TokenLPAREN + const TokenLT + const TokenMINUS + const TokenMODINT + const TokenNEQ + const TokenNODEKIND + const TokenNOT + const TokenNOTIN + const TokenNULL + const TokenNULLTRAVERSAL + const TokenOR + const TokenORDERING + const TokenPLUS + const TokenPRIMARY + const TokenRBRACK + const TokenRPAREN + const TokenSHOW + const TokenTIMES + const TokenTRAVERSE + const TokenTRUE + const TokenUNIQUE + const TokenUNIQUECOUNT + const TokenVALUE + const TokenWHERE + const TokenWITH + type Runtime interface + Eval func() (interface{}, error) + Validate func() error + type RuntimeProvider interface + Runtime func(node *ASTNode) Runtime