// Code generated from Expr.g4 by ANTLR 4.7.2. DO NOT EDIT. package gen // Expr import ( "fmt" "reflect" "strconv" "github.com/antlr/antlr4/runtime/Go/antlr" ) // Suppress unused import errors var _ = fmt.Printf var _ = reflect.Copy var _ = strconv.Itoa var parserATN = []uint16{ 3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 59, 225, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 47, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 102, 10, 3, 3, 3, 7, 3, 105, 10, 3, 12, 3, 14, 3, 108, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 157, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 7, 6, 166, 10, 6, 12, 6, 14, 6, 169, 11, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 177, 10, 7, 12, 7, 14, 7, 180, 11, 7, 3, 7, 5, 7, 183, 10, 7, 3, 7, 3, 7, 5, 7, 187, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 194, 10, 8, 3, 8, 3, 8, 5, 8, 198, 10, 8, 3, 9, 3, 9, 3, 9, 7, 9, 203, 10, 9, 12, 9, 14, 9, 206, 11, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 5, 12, 219, 10, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 2, 3, 4, 15, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 2, 10, 3, 2, 23, 25, 3, 2, 26, 29, 3, 2, 23, 24, 3, 2, 32, 35, 3, 2, 46, 47, 3, 2, 36, 37, 3, 2, 53, 54, 4, 2, 50, 50, 52, 52, 2, 253, 2, 28, 3, 2, 2, 2, 4, 46, 3, 2, 2, 2, 6, 156, 3, 2, 2, 2, 8, 158, 3, 2, 2, 2, 10, 162, 3, 2, 2, 2, 12, 186, 3, 2, 2, 2, 14, 197, 3, 2, 2, 2, 16, 199, 3, 2, 2, 2, 18, 207, 3, 2, 2, 2, 20, 211, 3, 2, 2, 2, 22, 218, 3, 2, 2, 2, 24, 220, 3, 2, 2, 2, 26, 222, 3, 2, 2, 2, 28, 29, 5, 4, 3, 2, 29, 30, 7, 2, 2, 3, 30, 3, 3, 2, 2, 2, 31, 32, 8, 3, 1, 2, 32, 33, 7, 22, 2, 2, 33, 47, 7, 53, 2, 2, 34, 47, 5, 6, 4, 2, 35, 36, 9, 2, 2, 2, 36, 47, 5, 4, 3, 22, 37, 47, 7, 53, 2, 2, 38, 47, 7, 38, 2, 2, 39, 47, 5, 22, 12, 2, 40, 47, 5, 12, 7, 2, 41, 47, 5, 14, 8, 2, 42, 43, 7, 13, 2, 2, 43, 44, 5, 4, 3, 2, 44, 45, 7, 14, 2, 2, 45, 47, 3, 2, 2, 2, 46, 31, 3, 2, 2, 2, 46, 34, 3, 2, 2, 2, 46, 35, 3, 2, 2, 2, 46, 37, 3, 2, 2, 2, 46, 38, 3, 2, 2, 2, 46, 39, 3, 2, 2, 2, 46, 40, 3, 2, 2, 2, 46, 41, 3, 2, 2, 2, 46, 42, 3, 2, 2, 2, 47, 106, 3, 2, 2, 2, 48, 49, 12, 21, 2, 2, 49, 50, 7, 3, 2, 2, 50, 105, 5, 4, 3, 22, 51, 52, 12, 20, 2, 2, 52, 53, 9, 3, 2, 2, 53, 105, 5, 4, 3, 21, 54, 55, 12, 19, 2, 2, 55, 56, 9, 4, 2, 2, 56, 105, 5, 4, 3, 20, 57, 58, 12, 18, 2, 2, 58, 59, 9, 5, 2, 2, 59, 105, 5, 4, 3, 19, 60, 61, 12, 17, 2, 2, 61, 62, 7, 42, 2, 2, 62, 105, 5, 4, 3, 18, 63, 64, 12, 16, 2, 2, 64, 65, 7, 43, 2, 2, 65, 105, 5, 4, 3, 17, 66, 67, 12, 15, 2, 2, 67, 68, 7, 44, 2, 2, 68, 105, 5, 4, 3, 16, 69, 70, 12, 14, 2, 2, 70, 71, 7, 45, 2, 2, 71, 105, 5, 4, 3, 15, 72, 73, 12, 13, 2, 2, 73, 74, 9, 6, 2, 2, 74, 105, 5, 4, 3, 14, 75, 76, 12, 12, 2, 2, 76, 77, 9, 7, 2, 2, 77, 105, 5, 4, 3, 13, 78, 79, 12, 11, 2, 2, 79, 80, 7, 39, 2, 2, 80, 105, 5, 4, 3, 12, 81, 82, 12, 10, 2, 2, 82, 83, 7, 40, 2, 2, 83, 105, 5, 4, 3, 11, 84, 85, 12, 9, 2, 2, 85, 86, 7, 20, 2, 2, 86, 87, 5, 4, 3, 2, 87, 88, 7, 21, 2, 2, 88, 89, 5, 4, 3, 10, 89, 105, 3, 2, 2, 2, 90, 91, 12, 26, 2, 2, 91, 92, 7, 11, 2, 2, 92, 93, 5, 4, 3, 2, 93, 94, 7, 12, 2, 2, 94, 105, 3, 2, 2, 2, 95, 96, 12, 25, 2, 2, 96, 97, 7, 22, 2, 2, 97, 105, 7, 53, 2, 2, 98, 99, 12, 23, 2, 2, 99, 101, 7, 13, 2, 2, 100, 102, 5, 10, 6, 2, 101, 100, 3, 2, 2, 2, 101, 102, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 105, 7, 14, 2, 2, 104, 48, 3, 2, 2, 2, 104, 51, 3, 2, 2, 2, 104, 54, 3, 2, 2, 2, 104, 57, 3, 2, 2, 2, 104, 60, 3, 2, 2, 2, 104, 63, 3, 2, 2, 2, 104, 66, 3, 2, 2, 2, 104, 69, 3, 2, 2, 2, 104, 72, 3, 2, 2, 2, 104, 75, 3, 2, 2, 2, 104, 78, 3, 2, 2, 2, 104, 81, 3, 2, 2, 2, 104, 84, 3, 2, 2, 2, 104, 90, 3, 2, 2, 2, 104, 95, 3, 2, 2, 2, 104, 98, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 5, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 110, 7, 4, 2, 2, 110, 111, 7, 13, 2, 2, 111, 112, 5, 4, 3, 2, 112, 113, 7, 14, 2, 2, 113, 157, 3, 2, 2, 2, 114, 115, 7, 5, 2, 2, 115, 116, 7, 13, 2, 2, 116, 117, 5, 4, 3, 2, 117, 118, 7, 18, 2, 2, 118, 119, 5, 8, 5, 2, 119, 120, 7, 14, 2, 2, 120, 157, 3, 2, 2, 2, 121, 122, 7, 6, 2, 2, 122, 123, 7, 13, 2, 2, 123, 124, 5, 4, 3, 2, 124, 125, 7, 18, 2, 2, 125, 126, 5, 8, 5, 2, 126, 127, 7, 14, 2, 2, 127, 157, 3, 2, 2, 2, 128, 129, 7, 7, 2, 2, 129, 130, 7, 13, 2, 2, 130, 131, 5, 4, 3, 2, 131, 132, 7, 18, 2, 2, 132, 133, 5, 8, 5, 2, 133, 134, 7, 14, 2, 2, 134, 157, 3, 2, 2, 2, 135, 136, 7, 8, 2, 2, 136, 137, 7, 13, 2, 2, 137, 138, 5, 4, 3, 2, 138, 139, 7, 18, 2, 2, 139, 140, 5, 8, 5, 2, 140, 141, 7, 14, 2, 2, 141, 157, 3, 2, 2, 2, 142, 143, 7, 9, 2, 2, 143, 144, 7, 13, 2, 2, 144, 145, 5, 4, 3, 2, 145, 146, 7, 18, 2, 2, 146, 147, 5, 8, 5, 2, 147, 148, 7, 14, 2, 2, 148, 157, 3, 2, 2, 2, 149, 150, 7, 10, 2, 2, 150, 151, 7, 13, 2, 2, 151, 152, 5, 4, 3, 2, 152, 153, 7, 18, 2, 2, 153, 154, 5, 8, 5, 2, 154, 155, 7, 14, 2, 2, 155, 157, 3, 2, 2, 2, 156, 109, 3, 2, 2, 2, 156, 114, 3, 2, 2, 2, 156, 121, 3, 2, 2, 2, 156, 128, 3, 2, 2, 2, 156, 135, 3, 2, 2, 2, 156, 142, 3, 2, 2, 2, 156, 149, 3, 2, 2, 2, 157, 7, 3, 2, 2, 2, 158, 159, 7, 15, 2, 2, 159, 160, 5, 4, 3, 2, 160, 161, 7, 16, 2, 2, 161, 9, 3, 2, 2, 2, 162, 167, 5, 4, 3, 2, 163, 164, 7, 18, 2, 2, 164, 166, 5, 4, 3, 2, 165, 163, 3, 2, 2, 2, 166, 169, 3, 2, 2, 2, 167, 165, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 11, 3, 2, 2, 2, 169, 167, 3, 2, 2, 2, 170, 171, 7, 11, 2, 2, 171, 187, 7, 12, 2, 2, 172, 173, 7, 11, 2, 2, 173, 178, 5, 4, 3, 2, 174, 175, 7, 18, 2, 2, 175, 177, 5, 4, 3, 2, 176, 174, 3, 2, 2, 2, 177, 180, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 182, 3, 2, 2, 2, 180, 178, 3, 2, 2, 2, 181, 183, 7, 18, 2, 2, 182, 181, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 184, 3, 2, 2, 2, 184, 185, 7, 12, 2, 2, 185, 187, 3, 2, 2, 2, 186, 170, 3, 2, 2, 2, 186, 172, 3, 2, 2, 2, 187, 13, 3, 2, 2, 2, 188, 189, 7, 15, 2, 2, 189, 198, 7, 16, 2, 2, 190, 191, 7, 15, 2, 2, 191, 193, 5, 16, 9, 2, 192, 194, 7, 18, 2, 2, 193, 192, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 195, 3, 2, 2, 2, 195, 196, 7, 16, 2, 2, 196, 198, 3, 2, 2, 2, 197, 188, 3, 2, 2, 2, 197, 190, 3, 2, 2, 2, 198, 15, 3, 2, 2, 2, 199, 204, 5, 18, 10, 2, 200, 201, 7, 18, 2, 2, 201, 203, 5, 18, 10, 2, 202, 200, 3, 2, 2, 2, 203, 206, 3, 2, 2, 2, 204, 202, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 17, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 208, 5, 20, 11, 2, 208, 209, 7, 21, 2, 2, 209, 210, 5, 4, 3, 2, 210, 19, 3, 2, 2, 2, 211, 212, 9, 8, 2, 2, 212, 21, 3, 2, 2, 2, 213, 219, 7, 48, 2, 2, 214, 219, 7, 49, 2, 2, 215, 219, 5, 24, 13, 2, 216, 219, 5, 26, 14, 2, 217, 219, 7, 51, 2, 2, 218, 213, 3, 2, 2, 2, 218, 214, 3, 2, 2, 2, 218, 215, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 217, 3, 2, 2, 2, 219, 23, 3, 2, 2, 2, 220, 221, 7, 54, 2, 2, 221, 25, 3, 2, 2, 2, 222, 223, 9, 9, 2, 2, 223, 27, 3, 2, 2, 2, 15, 46, 101, 104, 106, 156, 167, 178, 182, 186, 193, 197, 204, 218, } var deserializer = antlr.NewATNDeserializer(nil) var deserializedATN = deserializer.DeserializeFromUInt16(parserATN) var literalNames = []string{ "", "'..'", "'len'", "'all'", "'none'", "'any'", "'one'", "'filter'", "'map'", "'['", "']'", "'('", "')'", "'{'", "'}'", "';'", "','", "'='", "'?'", "':'", "'.'", "'+'", "'-'", "", "'*'", "'**'", "'/'", "'%'", "'>>'", "'<<'", "'<'", "'>'", "'<='", "'>='", "'=='", "'!='", "'#'", "", "", "", "'startsWith'", "'endsWith'", "'contains'", "'matches'", "'in'", "'not in'", "'nil'", } var symbolicNames = []string{ "", "", "", "", "", "", "", "", "", "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", "CloseBrace", "SemiColon", "Comma", "Assign", "QuestionMark", "Colon", "Dot", "Plus", "Minus", "Not", "Multiply", "Exponent", "Divide", "Modulus", "RightShiftArithmetic", "LeftShiftArithmetic", "LessThan", "MoreThan", "LessThanEquals", "GreaterThanEquals", "Equals", "NotEquals", "Pointer", "And", "Or", "Builtins", "StartsWith", "EndsWith", "Contains", "Matches", "In", "NotIn", "NilLiteral", "BooleanLiteral", "IntegerLiteral", "FloatLiteral", "HexIntegerLiteral", "Identifier", "StringLiteral", "WhiteSpaces", "MultiLineComment", "SingleLineComment", "LineTerminator", "UnexpectedCharacter", } var ruleNames = []string{ "start", "expr", "builtins", "closure", "arguments", "arrayLiteral", "mapLiteral", "propertyNameAndValueList", "propertyAssignment", "propertyName", "literal", "stringLiteral", "integerLiteral", } var decisionToDFA = make([]*antlr.DFA, len(deserializedATN.DecisionToState)) func init() { for index, ds := range deserializedATN.DecisionToState { decisionToDFA[index] = antlr.NewDFA(ds, index) } } type ExprParser struct { *antlr.BaseParser } func NewExprParser(input antlr.TokenStream) *ExprParser { this := new(ExprParser) this.BaseParser = antlr.NewBaseParser(input) this.Interpreter = antlr.NewParserATNSimulator(this, deserializedATN, decisionToDFA, antlr.NewPredictionContextCache()) this.RuleNames = ruleNames this.LiteralNames = literalNames this.SymbolicNames = symbolicNames this.GrammarFileName = "Expr.g4" return this } // ExprParser tokens. const ( ExprParserEOF = antlr.TokenEOF ExprParserT__0 = 1 ExprParserT__1 = 2 ExprParserT__2 = 3 ExprParserT__3 = 4 ExprParserT__4 = 5 ExprParserT__5 = 6 ExprParserT__6 = 7 ExprParserT__7 = 8 ExprParserOpenBracket = 9 ExprParserCloseBracket = 10 ExprParserOpenParen = 11 ExprParserCloseParen = 12 ExprParserOpenBrace = 13 ExprParserCloseBrace = 14 ExprParserSemiColon = 15 ExprParserComma = 16 ExprParserAssign = 17 ExprParserQuestionMark = 18 ExprParserColon = 19 ExprParserDot = 20 ExprParserPlus = 21 ExprParserMinus = 22 ExprParserNot = 23 ExprParserMultiply = 24 ExprParserExponent = 25 ExprParserDivide = 26 ExprParserModulus = 27 ExprParserRightShiftArithmetic = 28 ExprParserLeftShiftArithmetic = 29 ExprParserLessThan = 30 ExprParserMoreThan = 31 ExprParserLessThanEquals = 32 ExprParserGreaterThanEquals = 33 ExprParserEquals = 34 ExprParserNotEquals = 35 ExprParserPointer = 36 ExprParserAnd = 37 ExprParserOr = 38 ExprParserBuiltins = 39 ExprParserStartsWith = 40 ExprParserEndsWith = 41 ExprParserContains = 42 ExprParserMatches = 43 ExprParserIn = 44 ExprParserNotIn = 45 ExprParserNilLiteral = 46 ExprParserBooleanLiteral = 47 ExprParserIntegerLiteral = 48 ExprParserFloatLiteral = 49 ExprParserHexIntegerLiteral = 50 ExprParserIdentifier = 51 ExprParserStringLiteral = 52 ExprParserWhiteSpaces = 53 ExprParserMultiLineComment = 54 ExprParserSingleLineComment = 55 ExprParserLineTerminator = 56 ExprParserUnexpectedCharacter = 57 ) // ExprParser rules. const ( ExprParserRULE_start = 0 ExprParserRULE_expr = 1 ExprParserRULE_builtins = 2 ExprParserRULE_closure = 3 ExprParserRULE_arguments = 4 ExprParserRULE_arrayLiteral = 5 ExprParserRULE_mapLiteral = 6 ExprParserRULE_propertyNameAndValueList = 7 ExprParserRULE_propertyAssignment = 8 ExprParserRULE_propertyName = 9 ExprParserRULE_literal = 10 ExprParserRULE_stringLiteral = 11 ExprParserRULE_integerLiteral = 12 ) // IStartContext is an interface to support dynamic dispatch. type IStartContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // GetE returns the e rule contexts. GetE() IExprContext // SetE sets the e rule contexts. SetE(IExprContext) // IsStartContext differentiates from other interfaces. IsStartContext() } type StartContext struct { *antlr.BaseParserRuleContext parser antlr.Parser e IExprContext } func NewEmptyStartContext() *StartContext { var p = new(StartContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = ExprParserRULE_start return p } func (*StartContext) IsStartContext() {} func NewStartContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StartContext { var p = new(StartContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = ExprParserRULE_start return p } func (s *StartContext) GetParser() antlr.Parser { return s.parser } func (s *StartContext) GetE() IExprContext { return s.e } func (s *StartContext) SetE(v IExprContext) { s.e = v } func (s *StartContext) EOF() antlr.TerminalNode { return s.GetToken(ExprParserEOF, 0) } func (s *StartContext) Expr() IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IExprContext) } func (s *StartContext) GetRuleContext() antlr.RuleContext { return s } func (s *StartContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *StartContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterStart(s) } } func (s *StartContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitStart(s) } } func (s *StartContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitStart(s) default: return t.VisitChildren(s) } } func (p *ExprParser) Start() (localctx IStartContext) { localctx = NewStartContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 0, ExprParserRULE_start) defer func() { p.ExitRule() }() defer func() { if err := recover(); err != nil { if v, ok := err.(antlr.RecognitionException); ok { localctx.SetException(v) p.GetErrorHandler().ReportError(p, v) p.GetErrorHandler().Recover(p, v) } else { panic(err) } } }() p.EnterOuterAlt(localctx, 1) { p.SetState(26) var _x = p.expr(0) localctx.(*StartContext).e = _x } { p.SetState(27) p.Match(ExprParserEOF) } return localctx } // IExprContext is an interface to support dynamic dispatch. type IExprContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsExprContext differentiates from other interfaces. IsExprContext() } type ExprContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyExprContext() *ExprContext { var p = new(ExprContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = ExprParserRULE_expr return p } func (*ExprContext) IsExprContext() {} func NewExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprContext { var p = new(ExprContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = ExprParserRULE_expr return p } func (s *ExprContext) GetParser() antlr.Parser { return s.parser } func (s *ExprContext) CopyFrom(ctx *ExprContext) { s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext) } func (s *ExprContext) GetRuleContext() antlr.RuleContext { return s } func (s *ExprContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } type ParenthesizedExpressionContext struct { *ExprContext } func NewParenthesizedExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *ParenthesizedExpressionContext { var p = new(ParenthesizedExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *ParenthesizedExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *ParenthesizedExpressionContext) OpenParen() antlr.TerminalNode { return s.GetToken(ExprParserOpenParen, 0) } func (s *ParenthesizedExpressionContext) Expr() IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IExprContext) } func (s *ParenthesizedExpressionContext) CloseParen() antlr.TerminalNode { return s.GetToken(ExprParserCloseParen, 0) } func (s *ParenthesizedExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterParenthesizedExpression(s) } } func (s *ParenthesizedExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitParenthesizedExpression(s) } } func (s *ParenthesizedExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitParenthesizedExpression(s) default: return t.VisitChildren(s) } } type AdditiveExpressionContext struct { *ExprContext op antlr.Token } func NewAdditiveExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *AdditiveExpressionContext { var p = new(AdditiveExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *AdditiveExpressionContext) GetOp() antlr.Token { return s.op } func (s *AdditiveExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *AdditiveExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *AdditiveExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *AdditiveExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *AdditiveExpressionContext) Plus() antlr.TerminalNode { return s.GetToken(ExprParserPlus, 0) } func (s *AdditiveExpressionContext) Minus() antlr.TerminalNode { return s.GetToken(ExprParserMinus, 0) } func (s *AdditiveExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterAdditiveExpression(s) } } func (s *AdditiveExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitAdditiveExpression(s) } } func (s *AdditiveExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitAdditiveExpression(s) default: return t.VisitChildren(s) } } type RelationalExpressionContext struct { *ExprContext op antlr.Token } func NewRelationalExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *RelationalExpressionContext { var p = new(RelationalExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *RelationalExpressionContext) GetOp() antlr.Token { return s.op } func (s *RelationalExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *RelationalExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *RelationalExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *RelationalExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *RelationalExpressionContext) LessThan() antlr.TerminalNode { return s.GetToken(ExprParserLessThan, 0) } func (s *RelationalExpressionContext) MoreThan() antlr.TerminalNode { return s.GetToken(ExprParserMoreThan, 0) } func (s *RelationalExpressionContext) LessThanEquals() antlr.TerminalNode { return s.GetToken(ExprParserLessThanEquals, 0) } func (s *RelationalExpressionContext) GreaterThanEquals() antlr.TerminalNode { return s.GetToken(ExprParserGreaterThanEquals, 0) } func (s *RelationalExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterRelationalExpression(s) } } func (s *RelationalExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitRelationalExpression(s) } } func (s *RelationalExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitRelationalExpression(s) default: return t.VisitChildren(s) } } type TernaryExpressionContext struct { *ExprContext e1 IExprContext e2 IExprContext } func NewTernaryExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *TernaryExpressionContext { var p = new(TernaryExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *TernaryExpressionContext) GetE1() IExprContext { return s.e1 } func (s *TernaryExpressionContext) GetE2() IExprContext { return s.e2 } func (s *TernaryExpressionContext) SetE1(v IExprContext) { s.e1 = v } func (s *TernaryExpressionContext) SetE2(v IExprContext) { s.e2 = v } func (s *TernaryExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *TernaryExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *TernaryExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *TernaryExpressionContext) QuestionMark() antlr.TerminalNode { return s.GetToken(ExprParserQuestionMark, 0) } func (s *TernaryExpressionContext) Colon() antlr.TerminalNode { return s.GetToken(ExprParserColon, 0) } func (s *TernaryExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterTernaryExpression(s) } } func (s *TernaryExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitTernaryExpression(s) } } func (s *TernaryExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitTernaryExpression(s) default: return t.VisitChildren(s) } } type ContainsExpressionContext struct { *ExprContext op antlr.Token } func NewContainsExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *ContainsExpressionContext { var p = new(ContainsExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *ContainsExpressionContext) GetOp() antlr.Token { return s.op } func (s *ContainsExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *ContainsExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *ContainsExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *ContainsExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *ContainsExpressionContext) Contains() antlr.TerminalNode { return s.GetToken(ExprParserContains, 0) } func (s *ContainsExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterContainsExpression(s) } } func (s *ContainsExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitContainsExpression(s) } } func (s *ContainsExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitContainsExpression(s) default: return t.VisitChildren(s) } } type MatchesExpressionContext struct { *ExprContext op antlr.Token pattern IExprContext } func NewMatchesExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MatchesExpressionContext { var p = new(MatchesExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *MatchesExpressionContext) GetOp() antlr.Token { return s.op } func (s *MatchesExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *MatchesExpressionContext) GetPattern() IExprContext { return s.pattern } func (s *MatchesExpressionContext) SetPattern(v IExprContext) { s.pattern = v } func (s *MatchesExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *MatchesExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *MatchesExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *MatchesExpressionContext) Matches() antlr.TerminalNode { return s.GetToken(ExprParserMatches, 0) } func (s *MatchesExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterMatchesExpression(s) } } func (s *MatchesExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitMatchesExpression(s) } } func (s *MatchesExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitMatchesExpression(s) default: return t.VisitChildren(s) } } type MapLiteralExpressionContext struct { *ExprContext } func NewMapLiteralExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MapLiteralExpressionContext { var p = new(MapLiteralExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *MapLiteralExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *MapLiteralExpressionContext) MapLiteral() IMapLiteralContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IMapLiteralContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IMapLiteralContext) } func (s *MapLiteralExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterMapLiteralExpression(s) } } func (s *MapLiteralExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitMapLiteralExpression(s) } } func (s *MapLiteralExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitMapLiteralExpression(s) default: return t.VisitChildren(s) } } type LiteralExpressionContext struct { *ExprContext } func NewLiteralExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *LiteralExpressionContext { var p = new(LiteralExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *LiteralExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *LiteralExpressionContext) Literal() ILiteralContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*ILiteralContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(ILiteralContext) } func (s *LiteralExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterLiteralExpression(s) } } func (s *LiteralExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitLiteralExpression(s) } } func (s *LiteralExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitLiteralExpression(s) default: return t.VisitChildren(s) } } type InExpressionContext struct { *ExprContext op antlr.Token } func NewInExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *InExpressionContext { var p = new(InExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *InExpressionContext) GetOp() antlr.Token { return s.op } func (s *InExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *InExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *InExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *InExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *InExpressionContext) In() antlr.TerminalNode { return s.GetToken(ExprParserIn, 0) } func (s *InExpressionContext) NotIn() antlr.TerminalNode { return s.GetToken(ExprParserNotIn, 0) } func (s *InExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterInExpression(s) } } func (s *InExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitInExpression(s) } } func (s *InExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitInExpression(s) default: return t.VisitChildren(s) } } type ArrayLiteralExpressionContext struct { *ExprContext } func NewArrayLiteralExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *ArrayLiteralExpressionContext { var p = new(ArrayLiteralExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *ArrayLiteralExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *ArrayLiteralExpressionContext) ArrayLiteral() IArrayLiteralContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IArrayLiteralContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IArrayLiteralContext) } func (s *ArrayLiteralExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterArrayLiteralExpression(s) } } func (s *ArrayLiteralExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitArrayLiteralExpression(s) } } func (s *ArrayLiteralExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitArrayLiteralExpression(s) default: return t.VisitChildren(s) } } type MemberDotExpressionContext struct { *ExprContext name antlr.Token } func NewMemberDotExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MemberDotExpressionContext { var p = new(MemberDotExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *MemberDotExpressionContext) GetName() antlr.Token { return s.name } func (s *MemberDotExpressionContext) SetName(v antlr.Token) { s.name = v } func (s *MemberDotExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *MemberDotExpressionContext) Expr() IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IExprContext) } func (s *MemberDotExpressionContext) Dot() antlr.TerminalNode { return s.GetToken(ExprParserDot, 0) } func (s *MemberDotExpressionContext) Identifier() antlr.TerminalNode { return s.GetToken(ExprParserIdentifier, 0) } func (s *MemberDotExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterMemberDotExpression(s) } } func (s *MemberDotExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitMemberDotExpression(s) } } func (s *MemberDotExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitMemberDotExpression(s) default: return t.VisitChildren(s) } } type UnaryExpressionContext struct { *ExprContext op antlr.Token } func NewUnaryExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *UnaryExpressionContext { var p = new(UnaryExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *UnaryExpressionContext) GetOp() antlr.Token { return s.op } func (s *UnaryExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *UnaryExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *UnaryExpressionContext) Expr() IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IExprContext) } func (s *UnaryExpressionContext) Plus() antlr.TerminalNode { return s.GetToken(ExprParserPlus, 0) } func (s *UnaryExpressionContext) Minus() antlr.TerminalNode { return s.GetToken(ExprParserMinus, 0) } func (s *UnaryExpressionContext) Not() antlr.TerminalNode { return s.GetToken(ExprParserNot, 0) } func (s *UnaryExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterUnaryExpression(s) } } func (s *UnaryExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitUnaryExpression(s) } } func (s *UnaryExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitUnaryExpression(s) default: return t.VisitChildren(s) } } type RangeExpressionContext struct { *ExprContext } func NewRangeExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *RangeExpressionContext { var p = new(RangeExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *RangeExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *RangeExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *RangeExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *RangeExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterRangeExpression(s) } } func (s *RangeExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitRangeExpression(s) } } func (s *RangeExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitRangeExpression(s) default: return t.VisitChildren(s) } } type MemberIndexExpressionContext struct { *ExprContext index IExprContext } func NewMemberIndexExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MemberIndexExpressionContext { var p = new(MemberIndexExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *MemberIndexExpressionContext) GetIndex() IExprContext { return s.index } func (s *MemberIndexExpressionContext) SetIndex(v IExprContext) { s.index = v } func (s *MemberIndexExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *MemberIndexExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *MemberIndexExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *MemberIndexExpressionContext) OpenBracket() antlr.TerminalNode { return s.GetToken(ExprParserOpenBracket, 0) } func (s *MemberIndexExpressionContext) CloseBracket() antlr.TerminalNode { return s.GetToken(ExprParserCloseBracket, 0) } func (s *MemberIndexExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterMemberIndexExpression(s) } } func (s *MemberIndexExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitMemberIndexExpression(s) } } func (s *MemberIndexExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitMemberIndexExpression(s) default: return t.VisitChildren(s) } } type IdentifierExpressionContext struct { *ExprContext } func NewIdentifierExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IdentifierExpressionContext { var p = new(IdentifierExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *IdentifierExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *IdentifierExpressionContext) Identifier() antlr.TerminalNode { return s.GetToken(ExprParserIdentifier, 0) } func (s *IdentifierExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterIdentifierExpression(s) } } func (s *IdentifierExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitIdentifierExpression(s) } } func (s *IdentifierExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitIdentifierExpression(s) default: return t.VisitChildren(s) } } type PointerExpressionContext struct { *ExprContext } func NewPointerExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *PointerExpressionContext { var p = new(PointerExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *PointerExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *PointerExpressionContext) Pointer() antlr.TerminalNode { return s.GetToken(ExprParserPointer, 0) } func (s *PointerExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterPointerExpression(s) } } func (s *PointerExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitPointerExpression(s) } } func (s *PointerExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitPointerExpression(s) default: return t.VisitChildren(s) } } type LogicalExpressionContext struct { *ExprContext op antlr.Token } func NewLogicalExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *LogicalExpressionContext { var p = new(LogicalExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *LogicalExpressionContext) GetOp() antlr.Token { return s.op } func (s *LogicalExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *LogicalExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *LogicalExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *LogicalExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *LogicalExpressionContext) And() antlr.TerminalNode { return s.GetToken(ExprParserAnd, 0) } func (s *LogicalExpressionContext) Or() antlr.TerminalNode { return s.GetToken(ExprParserOr, 0) } func (s *LogicalExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterLogicalExpression(s) } } func (s *LogicalExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitLogicalExpression(s) } } func (s *LogicalExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitLogicalExpression(s) default: return t.VisitChildren(s) } } type ClosureMemberDotExpressionContext struct { *ExprContext name antlr.Token } func NewClosureMemberDotExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *ClosureMemberDotExpressionContext { var p = new(ClosureMemberDotExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *ClosureMemberDotExpressionContext) GetName() antlr.Token { return s.name } func (s *ClosureMemberDotExpressionContext) SetName(v antlr.Token) { s.name = v } func (s *ClosureMemberDotExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *ClosureMemberDotExpressionContext) Dot() antlr.TerminalNode { return s.GetToken(ExprParserDot, 0) } func (s *ClosureMemberDotExpressionContext) Identifier() antlr.TerminalNode { return s.GetToken(ExprParserIdentifier, 0) } func (s *ClosureMemberDotExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterClosureMemberDotExpression(s) } } func (s *ClosureMemberDotExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitClosureMemberDotExpression(s) } } func (s *ClosureMemberDotExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitClosureMemberDotExpression(s) default: return t.VisitChildren(s) } } type EndsWithExpressionContext struct { *ExprContext op antlr.Token } func NewEndsWithExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *EndsWithExpressionContext { var p = new(EndsWithExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *EndsWithExpressionContext) GetOp() antlr.Token { return s.op } func (s *EndsWithExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *EndsWithExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *EndsWithExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *EndsWithExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *EndsWithExpressionContext) EndsWith() antlr.TerminalNode { return s.GetToken(ExprParserEndsWith, 0) } func (s *EndsWithExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterEndsWithExpression(s) } } func (s *EndsWithExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitEndsWithExpression(s) } } func (s *EndsWithExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitEndsWithExpression(s) default: return t.VisitChildren(s) } } type StartsWithExpressionContext struct { *ExprContext op antlr.Token } func NewStartsWithExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *StartsWithExpressionContext { var p = new(StartsWithExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *StartsWithExpressionContext) GetOp() antlr.Token { return s.op } func (s *StartsWithExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *StartsWithExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *StartsWithExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *StartsWithExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *StartsWithExpressionContext) StartsWith() antlr.TerminalNode { return s.GetToken(ExprParserStartsWith, 0) } func (s *StartsWithExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterStartsWithExpression(s) } } func (s *StartsWithExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitStartsWithExpression(s) } } func (s *StartsWithExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitStartsWithExpression(s) default: return t.VisitChildren(s) } } type EqualityExpressionContext struct { *ExprContext op antlr.Token } func NewEqualityExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *EqualityExpressionContext { var p = new(EqualityExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *EqualityExpressionContext) GetOp() antlr.Token { return s.op } func (s *EqualityExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *EqualityExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *EqualityExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *EqualityExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *EqualityExpressionContext) Equals() antlr.TerminalNode { return s.GetToken(ExprParserEquals, 0) } func (s *EqualityExpressionContext) NotEquals() antlr.TerminalNode { return s.GetToken(ExprParserNotEquals, 0) } func (s *EqualityExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterEqualityExpression(s) } } func (s *EqualityExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitEqualityExpression(s) } } func (s *EqualityExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitEqualityExpression(s) default: return t.VisitChildren(s) } } type BuiltinLiteralExpressionContext struct { *ExprContext } func NewBuiltinLiteralExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BuiltinLiteralExpressionContext { var p = new(BuiltinLiteralExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *BuiltinLiteralExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *BuiltinLiteralExpressionContext) Builtins() IBuiltinsContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IBuiltinsContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IBuiltinsContext) } func (s *BuiltinLiteralExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterBuiltinLiteralExpression(s) } } func (s *BuiltinLiteralExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitBuiltinLiteralExpression(s) } } func (s *BuiltinLiteralExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitBuiltinLiteralExpression(s) default: return t.VisitChildren(s) } } type MultiplicativeExpressionContext struct { *ExprContext op antlr.Token } func NewMultiplicativeExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MultiplicativeExpressionContext { var p = new(MultiplicativeExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *MultiplicativeExpressionContext) GetOp() antlr.Token { return s.op } func (s *MultiplicativeExpressionContext) SetOp(v antlr.Token) { s.op = v } func (s *MultiplicativeExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *MultiplicativeExpressionContext) AllExpr() []IExprContext { var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IExprContext)(nil)).Elem()) var tst = make([]IExprContext, len(ts)) for i, t := range ts { if t != nil { tst[i] = t.(IExprContext) } } return tst } func (s *MultiplicativeExpressionContext) Expr(i int) IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), i) if t == nil { return nil } return t.(IExprContext) } func (s *MultiplicativeExpressionContext) Multiply() antlr.TerminalNode { return s.GetToken(ExprParserMultiply, 0) } func (s *MultiplicativeExpressionContext) Exponent() antlr.TerminalNode { return s.GetToken(ExprParserExponent, 0) } func (s *MultiplicativeExpressionContext) Divide() antlr.TerminalNode { return s.GetToken(ExprParserDivide, 0) } func (s *MultiplicativeExpressionContext) Modulus() antlr.TerminalNode { return s.GetToken(ExprParserModulus, 0) } func (s *MultiplicativeExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterMultiplicativeExpression(s) } } func (s *MultiplicativeExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitMultiplicativeExpression(s) } } func (s *MultiplicativeExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitMultiplicativeExpression(s) default: return t.VisitChildren(s) } } type CallExpressionContext struct { *ExprContext args IArgumentsContext } func NewCallExpressionContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CallExpressionContext { var p = new(CallExpressionContext) p.ExprContext = NewEmptyExprContext() p.parser = parser p.CopyFrom(ctx.(*ExprContext)) return p } func (s *CallExpressionContext) GetArgs() IArgumentsContext { return s.args } func (s *CallExpressionContext) SetArgs(v IArgumentsContext) { s.args = v } func (s *CallExpressionContext) GetRuleContext() antlr.RuleContext { return s } func (s *CallExpressionContext) Expr() IExprContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IExprContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IExprContext) } func (s *CallExpressionContext) OpenParen() antlr.TerminalNode { return s.GetToken(ExprParserOpenParen, 0) } func (s *CallExpressionContext) CloseParen() antlr.TerminalNode { return s.GetToken(ExprParserCloseParen, 0) } func (s *CallExpressionContext) Arguments() IArgumentsContext { var t = s.GetTypedRuleContext(reflect.TypeOf((*IArgumentsContext)(nil)).Elem(), 0) if t == nil { return nil } return t.(IArgumentsContext) } func (s *CallExpressionContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.EnterCallExpression(s) } } func (s *CallExpressionContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(ExprListener); ok { listenerT.ExitCallExpression(s) } } func (s *CallExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case ExprVisitor: return t.VisitCallExpression(s) default: return t.VisitChildren(s) } } func (p *ExprParser) Expr() (localctx IExprContext) { return p.expr(0) } func (p *ExprParser) expr(_p int) (localctx IExprContext) { var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext() _parentState := p.GetState() localctx = NewExprContext(p, p.GetParserRuleContext(), _parentState) var _prevctx IExprContext = localctx var _ antlr.ParserRuleContext = _prevctx // TODO: To prevent unused variable warning. _startState := 2 p.EnterRecursionRule(localctx, 2, ExprParserRULE_expr, _p) var _la int defer func() { p.UnrollRecursionContexts(_parentctx) }() defer func() { if err := recover(); err != nil { if v, ok := err.(antlr.RecognitionException); ok { localctx.SetException(v) p.GetErrorHandler().ReportError(p, v) p.GetErrorHandler().Recover(p, v) } else { panic(err) } } }() var _alt int p.EnterOuterAlt(localctx, 1) p.SetState(44) p.GetErrorHandler().Sync(p) switch p.GetTokenStream().LA(1) { case ExprParserDot: localctx = NewClosureMemberDotExpressionContext(p, localctx) p.SetParserRuleContext(localctx) _prevctx = localctx { p.SetState(30) p.Match(ExprParserDot) } { p.SetState(31) var _m = p.Match(ExprParserIdentifier) localctx.(*ClosureMemberDotExpressionContext).name = _m } case ExprParserT__1, ExprParserT__2, ExprParserT__3, ExprParserT__4, ExprParserT__5, ExprParserT__6, ExprParserT__7: localctx = NewBuiltinLiteralExpressionContext(p, localctx) p.SetParserRuleContext(localctx) _prevctx = localctx { p.SetState(32) p.Builtins() } case ExprParserPlus, ExprParserMinus, ExprParserNot: localctx = NewUnaryExpressionContext(p, localctx) p.SetParserRuleContext(localctx) _prevctx = localctx { p.SetState(33) var _lt = p.GetTokenStream().LT(1) localctx.(*UnaryExpressionContext).op = _lt _la = p.GetTokenStream().LA(1) if !(((_la)&-(0x1f+1)) == 0 && ((1<