kodexa 7.5.514404640805__py3-none-any.whl → 8.0.14958192442__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kodexa/dataclasses/__init__.py +1 -1
- kodexa/model/__init__.py +2 -2
- kodexa/model/objects.py +21 -1
- kodexa/model/utils.py +1 -1
- kodexa/pipeline/pipeline.py +1 -1
- kodexa/platform/client.py +1 -2
- kodexa/platform/kodexa.py +4 -1
- kodexa/platform/manifest.py +447 -0
- kodexa/selectors/__init__.py +1 -1
- kodexa/selectors/ast.py +371 -98
- kodexa/selectors/error.py +29 -0
- kodexa/selectors/kodexa-ast-visitor.py +268 -0
- kodexa/selectors/parser.py +91 -0
- kodexa/selectors/resources/KodexaSelector.interp +99 -0
- kodexa/selectors/resources/KodexaSelector.tokens +56 -0
- kodexa/selectors/resources/KodexaSelectorLexer.interp +119 -0
- kodexa/selectors/resources/KodexaSelectorLexer.py +204 -0
- kodexa/selectors/resources/KodexaSelectorLexer.tokens +56 -0
- kodexa/selectors/resources/KodexaSelectorListener.py +570 -0
- kodexa/selectors/resources/KodexaSelectorParser.py +3246 -0
- kodexa/selectors/resources/KodexaSelectorVisitor.py +323 -0
- kodexa/selectors/visitor.py +265 -0
- kodexa/steps/__init__.py +4 -2
- kodexa/steps/common.py +0 -68
- kodexa/testing/test_utils.py +1 -1
- {kodexa-7.5.514404640805.dist-info → kodexa-8.0.14958192442.dist-info}/METADATA +7 -3
- kodexa-8.0.14958192442.dist-info/RECORD +53 -0
- {kodexa-7.5.514404640805.dist-info → kodexa-8.0.14958192442.dist-info}/WHEEL +1 -1
- kodexa/model/model.py +0 -3259
- kodexa/model/persistence.py +0 -2017
- kodexa/selectors/core.py +0 -124
- kodexa/selectors/lexrules.py +0 -137
- kodexa/selectors/lextab.py +0 -83
- kodexa/selectors/lextab.pyi +0 -1
- kodexa/selectors/parserules.py +0 -414
- kodexa/selectors/parserules.pyi +0 -1
- kodexa/selectors/parsetab.py +0 -4149
- kodexa/selectors/parsetab.pyi +0 -1
- kodexa-7.5.514404640805.dist-info/RECORD +0 -50
- {kodexa-7.5.514404640805.dist-info → kodexa-8.0.14958192442.dist-info}/LICENSE +0 -0
@@ -0,0 +1,3246 @@
|
|
1
|
+
# Generated from resources/KodexaSelector.g4 by ANTLR 4.13.1
|
2
|
+
# encoding: utf-8
|
3
|
+
from antlr4 import *
|
4
|
+
from io import StringIO
|
5
|
+
import sys
|
6
|
+
if sys.version_info[1] > 5:
|
7
|
+
from typing import TextIO
|
8
|
+
else:
|
9
|
+
from typing.io import TextIO
|
10
|
+
|
11
|
+
def serializedATN():
|
12
|
+
return [
|
13
|
+
4,1,33,229,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
|
14
|
+
6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,
|
15
|
+
2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,
|
16
|
+
7,20,2,21,7,21,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
17
|
+
1,1,1,1,1,1,1,1,1,1,1,3,1,63,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
18
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
19
|
+
1,1,1,1,1,1,5,1,92,8,1,10,1,12,1,95,9,1,1,2,1,2,1,2,3,2,100,8,2,
|
20
|
+
1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,5,4,114,8,4,10,4,
|
21
|
+
12,4,117,9,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,
|
22
|
+
3,5,132,8,5,1,6,1,6,1,6,3,6,137,8,6,1,7,1,7,1,8,1,8,1,8,1,8,1,8,
|
23
|
+
3,8,146,8,8,1,9,1,9,1,9,1,9,3,9,152,8,9,1,10,1,10,1,10,1,10,1,10,
|
24
|
+
1,10,1,10,1,10,1,10,1,10,3,10,164,8,10,1,10,1,10,5,10,168,8,10,10,
|
25
|
+
10,12,10,171,9,10,1,11,1,11,1,11,1,11,1,11,5,11,178,8,11,10,11,12,
|
26
|
+
11,181,9,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,14,1,14,1,15,1,
|
27
|
+
15,1,16,1,16,1,16,1,16,3,16,198,8,16,1,17,1,17,1,17,1,17,3,17,204,
|
28
|
+
8,17,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,3,19,214,8,19,1,20,
|
29
|
+
1,20,1,20,1,20,1,20,1,20,5,20,222,8,20,10,20,12,20,225,9,20,1,21,
|
30
|
+
1,21,1,21,0,5,2,8,20,22,40,22,0,2,4,6,8,10,12,14,16,18,20,22,24,
|
31
|
+
26,28,30,32,34,36,38,40,42,0,3,1,0,28,29,1,0,24,25,1,0,5,6,247,0,
|
32
|
+
44,1,0,0,0,2,62,1,0,0,0,4,99,1,0,0,0,6,101,1,0,0,0,8,104,1,0,0,0,
|
33
|
+
10,131,1,0,0,0,12,136,1,0,0,0,14,138,1,0,0,0,16,145,1,0,0,0,18,151,
|
34
|
+
1,0,0,0,20,163,1,0,0,0,22,172,1,0,0,0,24,182,1,0,0,0,26,186,1,0,
|
35
|
+
0,0,28,189,1,0,0,0,30,191,1,0,0,0,32,197,1,0,0,0,34,203,1,0,0,0,
|
36
|
+
36,205,1,0,0,0,38,213,1,0,0,0,40,215,1,0,0,0,42,226,1,0,0,0,44,45,
|
37
|
+
3,2,1,0,45,1,1,0,0,0,46,47,6,1,-1,0,47,48,5,19,0,0,48,63,3,2,1,11,
|
38
|
+
49,63,3,32,16,0,50,51,3,20,10,0,51,52,3,42,21,0,52,53,3,8,4,0,53,
|
39
|
+
63,1,0,0,0,54,63,3,8,4,0,55,63,3,4,2,0,56,63,3,6,3,0,57,63,3,20,
|
40
|
+
10,0,58,63,3,16,8,0,59,60,5,5,0,0,60,63,3,16,8,0,61,63,3,30,15,0,
|
41
|
+
62,46,1,0,0,0,62,49,1,0,0,0,62,50,1,0,0,0,62,54,1,0,0,0,62,55,1,
|
42
|
+
0,0,0,62,56,1,0,0,0,62,57,1,0,0,0,62,58,1,0,0,0,62,59,1,0,0,0,62,
|
43
|
+
61,1,0,0,0,63,93,1,0,0,0,64,65,10,19,0,0,65,66,5,1,0,0,66,92,3,2,
|
44
|
+
1,20,67,68,10,18,0,0,68,69,5,2,0,0,69,92,3,2,1,19,70,71,10,17,0,
|
45
|
+
0,71,72,5,16,0,0,72,92,3,2,1,18,73,74,10,16,0,0,74,75,5,17,0,0,75,
|
46
|
+
92,3,2,1,17,76,77,10,15,0,0,77,78,5,18,0,0,78,92,3,2,1,16,79,80,
|
47
|
+
10,14,0,0,80,81,5,19,0,0,81,92,3,2,1,15,82,83,10,13,0,0,83,84,5,
|
48
|
+
15,0,0,84,92,3,2,1,14,85,86,10,12,0,0,86,87,5,3,0,0,87,92,3,2,1,
|
49
|
+
13,88,89,10,10,0,0,89,90,5,4,0,0,90,92,3,2,1,11,91,64,1,0,0,0,91,
|
50
|
+
67,1,0,0,0,91,70,1,0,0,0,91,73,1,0,0,0,91,76,1,0,0,0,91,79,1,0,0,
|
51
|
+
0,91,82,1,0,0,0,91,85,1,0,0,0,91,88,1,0,0,0,92,95,1,0,0,0,93,91,
|
52
|
+
1,0,0,0,93,94,1,0,0,0,94,3,1,0,0,0,95,93,1,0,0,0,96,100,5,5,0,0,
|
53
|
+
97,98,5,5,0,0,98,100,3,8,4,0,99,96,1,0,0,0,99,97,1,0,0,0,100,5,1,
|
54
|
+
0,0,0,101,102,5,6,0,0,102,103,3,8,4,0,103,7,1,0,0,0,104,105,6,4,
|
55
|
+
-1,0,105,106,3,10,5,0,106,115,1,0,0,0,107,108,10,2,0,0,108,109,5,
|
56
|
+
5,0,0,109,114,3,10,5,0,110,111,10,1,0,0,111,112,5,6,0,0,112,114,
|
57
|
+
3,10,5,0,113,107,1,0,0,0,113,110,1,0,0,0,114,117,1,0,0,0,115,113,
|
58
|
+
1,0,0,0,115,116,1,0,0,0,116,9,1,0,0,0,117,115,1,0,0,0,118,132,3,
|
59
|
+
14,7,0,119,120,3,14,7,0,120,121,3,22,11,0,121,132,1,0,0,0,122,123,
|
60
|
+
3,12,6,0,123,124,3,14,7,0,124,132,1,0,0,0,125,126,3,12,6,0,126,127,
|
61
|
+
3,14,7,0,127,128,3,22,11,0,128,132,1,0,0,0,129,132,5,7,0,0,130,132,
|
62
|
+
5,8,0,0,131,118,1,0,0,0,131,119,1,0,0,0,131,122,1,0,0,0,131,125,
|
63
|
+
1,0,0,0,131,129,1,0,0,0,131,130,1,0,0,0,132,11,1,0,0,0,133,134,5,
|
64
|
+
32,0,0,134,137,5,9,0,0,135,137,5,10,0,0,136,133,1,0,0,0,136,135,
|
65
|
+
1,0,0,0,137,13,1,0,0,0,138,139,3,16,8,0,139,15,1,0,0,0,140,146,5,
|
66
|
+
20,0,0,141,142,5,30,0,0,142,143,5,22,0,0,143,146,5,20,0,0,144,146,
|
67
|
+
3,18,9,0,145,140,1,0,0,0,145,141,1,0,0,0,145,144,1,0,0,0,146,17,
|
68
|
+
1,0,0,0,147,148,5,30,0,0,148,149,5,22,0,0,149,152,5,30,0,0,150,152,
|
69
|
+
5,30,0,0,151,147,1,0,0,0,151,150,1,0,0,0,152,19,1,0,0,0,153,154,
|
70
|
+
6,10,-1,0,154,164,3,26,13,0,155,164,5,27,0,0,156,164,3,28,14,0,157,
|
71
|
+
164,3,30,15,0,158,164,3,32,16,0,159,160,5,11,0,0,160,161,3,2,1,0,
|
72
|
+
161,162,5,12,0,0,162,164,1,0,0,0,163,153,1,0,0,0,163,155,1,0,0,0,
|
73
|
+
163,156,1,0,0,0,163,157,1,0,0,0,163,158,1,0,0,0,163,159,1,0,0,0,
|
74
|
+
164,169,1,0,0,0,165,166,10,1,0,0,166,168,3,24,12,0,167,165,1,0,0,
|
75
|
+
0,168,171,1,0,0,0,169,167,1,0,0,0,169,170,1,0,0,0,170,21,1,0,0,0,
|
76
|
+
171,169,1,0,0,0,172,173,6,11,-1,0,173,174,3,24,12,0,174,179,1,0,
|
77
|
+
0,0,175,176,10,1,0,0,176,178,3,24,12,0,177,175,1,0,0,0,178,181,1,
|
78
|
+
0,0,0,179,177,1,0,0,0,179,180,1,0,0,0,180,23,1,0,0,0,181,179,1,0,
|
79
|
+
0,0,182,183,5,13,0,0,183,184,3,2,1,0,184,185,5,14,0,0,185,25,1,0,
|
80
|
+
0,0,186,187,5,23,0,0,187,188,3,18,9,0,188,27,1,0,0,0,189,190,7,0,
|
81
|
+
0,0,190,29,1,0,0,0,191,192,7,1,0,0,192,31,1,0,0,0,193,194,3,36,18,
|
82
|
+
0,194,195,3,38,19,0,195,198,1,0,0,0,196,198,3,34,17,0,197,193,1,
|
83
|
+
0,0,0,197,196,1,0,0,0,198,33,1,0,0,0,199,200,5,24,0,0,200,204,3,
|
84
|
+
38,19,0,201,202,5,25,0,0,202,204,3,38,19,0,203,199,1,0,0,0,203,201,
|
85
|
+
1,0,0,0,204,35,1,0,0,0,205,206,5,26,0,0,206,37,1,0,0,0,207,208,5,
|
86
|
+
11,0,0,208,214,5,12,0,0,209,210,5,11,0,0,210,211,3,40,20,0,211,212,
|
87
|
+
5,12,0,0,212,214,1,0,0,0,213,207,1,0,0,0,213,209,1,0,0,0,214,39,
|
88
|
+
1,0,0,0,215,216,6,20,-1,0,216,217,3,2,1,0,217,223,1,0,0,0,218,219,
|
89
|
+
10,1,0,0,219,220,5,21,0,0,220,222,3,2,1,0,221,218,1,0,0,0,222,225,
|
90
|
+
1,0,0,0,223,221,1,0,0,0,223,224,1,0,0,0,224,41,1,0,0,0,225,223,1,
|
91
|
+
0,0,0,226,227,7,2,0,0,227,43,1,0,0,0,17,62,91,93,99,113,115,131,
|
92
|
+
136,145,151,163,169,179,197,203,213,223
|
93
|
+
]
|
94
|
+
|
95
|
+
class KodexaSelectorParser ( Parser ):
|
96
|
+
|
97
|
+
grammarFileName = "KodexaSelector.g4"
|
98
|
+
|
99
|
+
atn = ATNDeserializer().deserialize(serializedATN())
|
100
|
+
|
101
|
+
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
|
102
|
+
|
103
|
+
sharedContextCache = PredictionContextCache()
|
104
|
+
|
105
|
+
literalNames = [ "<INVALID>", "'or'", "'and'", "'intersect'", "'stream'",
|
106
|
+
"'/'", "'//'", "'.'", "'..'", "'::'", "'@'", "'('",
|
107
|
+
"')'", "'['", "']'", "'|'", "<INVALID>", "<INVALID>",
|
108
|
+
"'+'", "'-'", "'*'", "','", "':'", "'$'", "'true'",
|
109
|
+
"'false'" ]
|
110
|
+
|
111
|
+
symbolicNames = [ "<INVALID>", "OR", "AND", "INTERSECT", "PIPELINE",
|
112
|
+
"PATH_SEP", "ABBREV_PATH_SEP", "ABBREV_STEP_SELF",
|
113
|
+
"ABBREV_STEP_PARENT", "AXIS_SEP", "ABBREV_AXIS_AT",
|
114
|
+
"LPAREN", "RPAREN", "LBRACKET", "RBRACKET", "UNION",
|
115
|
+
"EQUALS", "REL_OP", "PLUS", "MINUS", "STAR", "COMMA",
|
116
|
+
"COLON", "DOLLAR", "TRUE", "FALSE", "FUNCTION_NAME",
|
117
|
+
"LITERAL", "FLOAT", "INTEGER", "NCNAME", "FUNCNAME",
|
118
|
+
"AXISNAME", "WS" ]
|
119
|
+
|
120
|
+
RULE_xpath = 0
|
121
|
+
RULE_expr = 1
|
122
|
+
RULE_absoluteLocationPath = 2
|
123
|
+
RULE_abbreviatedAbsoluteLocationPath = 3
|
124
|
+
RULE_relativeLocationPath = 4
|
125
|
+
RULE_step = 5
|
126
|
+
RULE_axisSpecifier = 6
|
127
|
+
RULE_nodeTest = 7
|
128
|
+
RULE_nameTest = 8
|
129
|
+
RULE_qName = 9
|
130
|
+
RULE_filterExpr = 10
|
131
|
+
RULE_predicateList = 11
|
132
|
+
RULE_predicate = 12
|
133
|
+
RULE_variableReference = 13
|
134
|
+
RULE_number = 14
|
135
|
+
RULE_booleanLiteral = 15
|
136
|
+
RULE_functionCall = 16
|
137
|
+
RULE_builtInFunctionCall = 17
|
138
|
+
RULE_funcQName = 18
|
139
|
+
RULE_formalArguments = 19
|
140
|
+
RULE_argumentList = 20
|
141
|
+
RULE_pathSep = 21
|
142
|
+
|
143
|
+
ruleNames = [ "xpath", "expr", "absoluteLocationPath", "abbreviatedAbsoluteLocationPath",
|
144
|
+
"relativeLocationPath", "step", "axisSpecifier", "nodeTest",
|
145
|
+
"nameTest", "qName", "filterExpr", "predicateList", "predicate",
|
146
|
+
"variableReference", "number", "booleanLiteral", "functionCall",
|
147
|
+
"builtInFunctionCall", "funcQName", "formalArguments",
|
148
|
+
"argumentList", "pathSep" ]
|
149
|
+
|
150
|
+
EOF = Token.EOF
|
151
|
+
OR=1
|
152
|
+
AND=2
|
153
|
+
INTERSECT=3
|
154
|
+
PIPELINE=4
|
155
|
+
PATH_SEP=5
|
156
|
+
ABBREV_PATH_SEP=6
|
157
|
+
ABBREV_STEP_SELF=7
|
158
|
+
ABBREV_STEP_PARENT=8
|
159
|
+
AXIS_SEP=9
|
160
|
+
ABBREV_AXIS_AT=10
|
161
|
+
LPAREN=11
|
162
|
+
RPAREN=12
|
163
|
+
LBRACKET=13
|
164
|
+
RBRACKET=14
|
165
|
+
UNION=15
|
166
|
+
EQUALS=16
|
167
|
+
REL_OP=17
|
168
|
+
PLUS=18
|
169
|
+
MINUS=19
|
170
|
+
STAR=20
|
171
|
+
COMMA=21
|
172
|
+
COLON=22
|
173
|
+
DOLLAR=23
|
174
|
+
TRUE=24
|
175
|
+
FALSE=25
|
176
|
+
FUNCTION_NAME=26
|
177
|
+
LITERAL=27
|
178
|
+
FLOAT=28
|
179
|
+
INTEGER=29
|
180
|
+
NCNAME=30
|
181
|
+
FUNCNAME=31
|
182
|
+
AXISNAME=32
|
183
|
+
WS=33
|
184
|
+
|
185
|
+
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
|
186
|
+
super().__init__(input, output)
|
187
|
+
self.checkVersion("4.13.1")
|
188
|
+
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
|
189
|
+
self._predicates = None
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
class XpathContext(ParserRuleContext):
|
195
|
+
__slots__ = 'parser'
|
196
|
+
|
197
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
198
|
+
super().__init__(parent, invokingState)
|
199
|
+
self.parser = parser
|
200
|
+
|
201
|
+
def expr(self):
|
202
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,0)
|
203
|
+
|
204
|
+
|
205
|
+
def getRuleIndex(self):
|
206
|
+
return KodexaSelectorParser.RULE_xpath
|
207
|
+
|
208
|
+
def enterRule(self, listener:ParseTreeListener):
|
209
|
+
if hasattr( listener, "enterXpath" ):
|
210
|
+
listener.enterXpath(self)
|
211
|
+
|
212
|
+
def exitRule(self, listener:ParseTreeListener):
|
213
|
+
if hasattr( listener, "exitXpath" ):
|
214
|
+
listener.exitXpath(self)
|
215
|
+
|
216
|
+
def accept(self, visitor:ParseTreeVisitor):
|
217
|
+
if hasattr( visitor, "visitXpath" ):
|
218
|
+
return visitor.visitXpath(self)
|
219
|
+
else:
|
220
|
+
return visitor.visitChildren(self)
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
def xpath(self):
|
226
|
+
|
227
|
+
localctx = KodexaSelectorParser.XpathContext(self, self._ctx, self.state)
|
228
|
+
self.enterRule(localctx, 0, self.RULE_xpath)
|
229
|
+
try:
|
230
|
+
self.enterOuterAlt(localctx, 1)
|
231
|
+
self.state = 44
|
232
|
+
self.expr(0)
|
233
|
+
except RecognitionException as re:
|
234
|
+
localctx.exception = re
|
235
|
+
self._errHandler.reportError(self, re)
|
236
|
+
self._errHandler.recover(self, re)
|
237
|
+
finally:
|
238
|
+
self.exitRule()
|
239
|
+
return localctx
|
240
|
+
|
241
|
+
|
242
|
+
class ExprContext(ParserRuleContext):
|
243
|
+
__slots__ = 'parser'
|
244
|
+
|
245
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
246
|
+
super().__init__(parent, invokingState)
|
247
|
+
self.parser = parser
|
248
|
+
|
249
|
+
|
250
|
+
def getRuleIndex(self):
|
251
|
+
return KodexaSelectorParser.RULE_expr
|
252
|
+
|
253
|
+
|
254
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
255
|
+
super().copyFrom(ctx)
|
256
|
+
|
257
|
+
|
258
|
+
class EqualsExprContext(ExprContext):
|
259
|
+
|
260
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
261
|
+
super().__init__(parser)
|
262
|
+
self.copyFrom(ctx)
|
263
|
+
|
264
|
+
def expr(self, i:int=None):
|
265
|
+
if i is None:
|
266
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
267
|
+
else:
|
268
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
269
|
+
|
270
|
+
def EQUALS(self):
|
271
|
+
return self.getToken(KodexaSelectorParser.EQUALS, 0)
|
272
|
+
|
273
|
+
def enterRule(self, listener:ParseTreeListener):
|
274
|
+
if hasattr( listener, "enterEqualsExpr" ):
|
275
|
+
listener.enterEqualsExpr(self)
|
276
|
+
|
277
|
+
def exitRule(self, listener:ParseTreeListener):
|
278
|
+
if hasattr( listener, "exitEqualsExpr" ):
|
279
|
+
listener.exitEqualsExpr(self)
|
280
|
+
|
281
|
+
def accept(self, visitor:ParseTreeVisitor):
|
282
|
+
if hasattr( visitor, "visitEqualsExpr" ):
|
283
|
+
return visitor.visitEqualsExpr(self)
|
284
|
+
else:
|
285
|
+
return visitor.visitChildren(self)
|
286
|
+
|
287
|
+
|
288
|
+
class SubtractExprContext(ExprContext):
|
289
|
+
|
290
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
291
|
+
super().__init__(parser)
|
292
|
+
self.copyFrom(ctx)
|
293
|
+
|
294
|
+
def expr(self, i:int=None):
|
295
|
+
if i is None:
|
296
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
297
|
+
else:
|
298
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
299
|
+
|
300
|
+
def MINUS(self):
|
301
|
+
return self.getToken(KodexaSelectorParser.MINUS, 0)
|
302
|
+
|
303
|
+
def enterRule(self, listener:ParseTreeListener):
|
304
|
+
if hasattr( listener, "enterSubtractExpr" ):
|
305
|
+
listener.enterSubtractExpr(self)
|
306
|
+
|
307
|
+
def exitRule(self, listener:ParseTreeListener):
|
308
|
+
if hasattr( listener, "exitSubtractExpr" ):
|
309
|
+
listener.exitSubtractExpr(self)
|
310
|
+
|
311
|
+
def accept(self, visitor:ParseTreeVisitor):
|
312
|
+
if hasattr( visitor, "visitSubtractExpr" ):
|
313
|
+
return visitor.visitSubtractExpr(self)
|
314
|
+
else:
|
315
|
+
return visitor.visitChildren(self)
|
316
|
+
|
317
|
+
|
318
|
+
class IntersectExprContext(ExprContext):
|
319
|
+
|
320
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
321
|
+
super().__init__(parser)
|
322
|
+
self.copyFrom(ctx)
|
323
|
+
|
324
|
+
def expr(self, i:int=None):
|
325
|
+
if i is None:
|
326
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
327
|
+
else:
|
328
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
329
|
+
|
330
|
+
def INTERSECT(self):
|
331
|
+
return self.getToken(KodexaSelectorParser.INTERSECT, 0)
|
332
|
+
|
333
|
+
def enterRule(self, listener:ParseTreeListener):
|
334
|
+
if hasattr( listener, "enterIntersectExpr" ):
|
335
|
+
listener.enterIntersectExpr(self)
|
336
|
+
|
337
|
+
def exitRule(self, listener:ParseTreeListener):
|
338
|
+
if hasattr( listener, "exitIntersectExpr" ):
|
339
|
+
listener.exitIntersectExpr(self)
|
340
|
+
|
341
|
+
def accept(self, visitor:ParseTreeVisitor):
|
342
|
+
if hasattr( visitor, "visitIntersectExpr" ):
|
343
|
+
return visitor.visitIntersectExpr(self)
|
344
|
+
else:
|
345
|
+
return visitor.visitChildren(self)
|
346
|
+
|
347
|
+
|
348
|
+
class DirectNameTestContext(ExprContext):
|
349
|
+
|
350
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
351
|
+
super().__init__(parser)
|
352
|
+
self.copyFrom(ctx)
|
353
|
+
|
354
|
+
def nameTest(self):
|
355
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NameTestContext,0)
|
356
|
+
|
357
|
+
|
358
|
+
def enterRule(self, listener:ParseTreeListener):
|
359
|
+
if hasattr( listener, "enterDirectNameTest" ):
|
360
|
+
listener.enterDirectNameTest(self)
|
361
|
+
|
362
|
+
def exitRule(self, listener:ParseTreeListener):
|
363
|
+
if hasattr( listener, "exitDirectNameTest" ):
|
364
|
+
listener.exitDirectNameTest(self)
|
365
|
+
|
366
|
+
def accept(self, visitor:ParseTreeVisitor):
|
367
|
+
if hasattr( visitor, "visitDirectNameTest" ):
|
368
|
+
return visitor.visitDirectNameTest(self)
|
369
|
+
else:
|
370
|
+
return visitor.visitChildren(self)
|
371
|
+
|
372
|
+
|
373
|
+
class OrExprContext(ExprContext):
|
374
|
+
|
375
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
376
|
+
super().__init__(parser)
|
377
|
+
self.copyFrom(ctx)
|
378
|
+
|
379
|
+
def expr(self, i:int=None):
|
380
|
+
if i is None:
|
381
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
382
|
+
else:
|
383
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
384
|
+
|
385
|
+
def OR(self):
|
386
|
+
return self.getToken(KodexaSelectorParser.OR, 0)
|
387
|
+
|
388
|
+
def enterRule(self, listener:ParseTreeListener):
|
389
|
+
if hasattr( listener, "enterOrExpr" ):
|
390
|
+
listener.enterOrExpr(self)
|
391
|
+
|
392
|
+
def exitRule(self, listener:ParseTreeListener):
|
393
|
+
if hasattr( listener, "exitOrExpr" ):
|
394
|
+
listener.exitOrExpr(self)
|
395
|
+
|
396
|
+
def accept(self, visitor:ParseTreeVisitor):
|
397
|
+
if hasattr( visitor, "visitOrExpr" ):
|
398
|
+
return visitor.visitOrExpr(self)
|
399
|
+
else:
|
400
|
+
return visitor.visitChildren(self)
|
401
|
+
|
402
|
+
|
403
|
+
class AbsolutePathExprContext(ExprContext):
|
404
|
+
|
405
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
406
|
+
super().__init__(parser)
|
407
|
+
self.copyFrom(ctx)
|
408
|
+
|
409
|
+
def absoluteLocationPath(self):
|
410
|
+
return self.getTypedRuleContext(KodexaSelectorParser.AbsoluteLocationPathContext,0)
|
411
|
+
|
412
|
+
|
413
|
+
def enterRule(self, listener:ParseTreeListener):
|
414
|
+
if hasattr( listener, "enterAbsolutePathExpr" ):
|
415
|
+
listener.enterAbsolutePathExpr(self)
|
416
|
+
|
417
|
+
def exitRule(self, listener:ParseTreeListener):
|
418
|
+
if hasattr( listener, "exitAbsolutePathExpr" ):
|
419
|
+
listener.exitAbsolutePathExpr(self)
|
420
|
+
|
421
|
+
def accept(self, visitor:ParseTreeVisitor):
|
422
|
+
if hasattr( visitor, "visitAbsolutePathExpr" ):
|
423
|
+
return visitor.visitAbsolutePathExpr(self)
|
424
|
+
else:
|
425
|
+
return visitor.visitChildren(self)
|
426
|
+
|
427
|
+
|
428
|
+
class FuncCallExprContext(ExprContext):
|
429
|
+
|
430
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
431
|
+
super().__init__(parser)
|
432
|
+
self.copyFrom(ctx)
|
433
|
+
|
434
|
+
def functionCall(self):
|
435
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FunctionCallContext,0)
|
436
|
+
|
437
|
+
|
438
|
+
def enterRule(self, listener:ParseTreeListener):
|
439
|
+
if hasattr( listener, "enterFuncCallExpr" ):
|
440
|
+
listener.enterFuncCallExpr(self)
|
441
|
+
|
442
|
+
def exitRule(self, listener:ParseTreeListener):
|
443
|
+
if hasattr( listener, "exitFuncCallExpr" ):
|
444
|
+
listener.exitFuncCallExpr(self)
|
445
|
+
|
446
|
+
def accept(self, visitor:ParseTreeVisitor):
|
447
|
+
if hasattr( visitor, "visitFuncCallExpr" ):
|
448
|
+
return visitor.visitFuncCallExpr(self)
|
449
|
+
else:
|
450
|
+
return visitor.visitChildren(self)
|
451
|
+
|
452
|
+
|
453
|
+
class UnionExprContext(ExprContext):
|
454
|
+
|
455
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
456
|
+
super().__init__(parser)
|
457
|
+
self.copyFrom(ctx)
|
458
|
+
|
459
|
+
def expr(self, i:int=None):
|
460
|
+
if i is None:
|
461
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
462
|
+
else:
|
463
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
464
|
+
|
465
|
+
def UNION(self):
|
466
|
+
return self.getToken(KodexaSelectorParser.UNION, 0)
|
467
|
+
|
468
|
+
def enterRule(self, listener:ParseTreeListener):
|
469
|
+
if hasattr( listener, "enterUnionExpr" ):
|
470
|
+
listener.enterUnionExpr(self)
|
471
|
+
|
472
|
+
def exitRule(self, listener:ParseTreeListener):
|
473
|
+
if hasattr( listener, "exitUnionExpr" ):
|
474
|
+
listener.exitUnionExpr(self)
|
475
|
+
|
476
|
+
def accept(self, visitor:ParseTreeVisitor):
|
477
|
+
if hasattr( visitor, "visitUnionExpr" ):
|
478
|
+
return visitor.visitUnionExpr(self)
|
479
|
+
else:
|
480
|
+
return visitor.visitChildren(self)
|
481
|
+
|
482
|
+
|
483
|
+
class RelationalExprContext(ExprContext):
|
484
|
+
|
485
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
486
|
+
super().__init__(parser)
|
487
|
+
self.copyFrom(ctx)
|
488
|
+
|
489
|
+
def expr(self, i:int=None):
|
490
|
+
if i is None:
|
491
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
492
|
+
else:
|
493
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
494
|
+
|
495
|
+
def REL_OP(self):
|
496
|
+
return self.getToken(KodexaSelectorParser.REL_OP, 0)
|
497
|
+
|
498
|
+
def enterRule(self, listener:ParseTreeListener):
|
499
|
+
if hasattr( listener, "enterRelationalExpr" ):
|
500
|
+
listener.enterRelationalExpr(self)
|
501
|
+
|
502
|
+
def exitRule(self, listener:ParseTreeListener):
|
503
|
+
if hasattr( listener, "exitRelationalExpr" ):
|
504
|
+
listener.exitRelationalExpr(self)
|
505
|
+
|
506
|
+
def accept(self, visitor:ParseTreeVisitor):
|
507
|
+
if hasattr( visitor, "visitRelationalExpr" ):
|
508
|
+
return visitor.visitRelationalExpr(self)
|
509
|
+
else:
|
510
|
+
return visitor.visitChildren(self)
|
511
|
+
|
512
|
+
|
513
|
+
class PipelineExprContext(ExprContext):
|
514
|
+
|
515
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
516
|
+
super().__init__(parser)
|
517
|
+
self.copyFrom(ctx)
|
518
|
+
|
519
|
+
def expr(self, i:int=None):
|
520
|
+
if i is None:
|
521
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
522
|
+
else:
|
523
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
524
|
+
|
525
|
+
def PIPELINE(self):
|
526
|
+
return self.getToken(KodexaSelectorParser.PIPELINE, 0)
|
527
|
+
|
528
|
+
def enterRule(self, listener:ParseTreeListener):
|
529
|
+
if hasattr( listener, "enterPipelineExpr" ):
|
530
|
+
listener.enterPipelineExpr(self)
|
531
|
+
|
532
|
+
def exitRule(self, listener:ParseTreeListener):
|
533
|
+
if hasattr( listener, "exitPipelineExpr" ):
|
534
|
+
listener.exitPipelineExpr(self)
|
535
|
+
|
536
|
+
def accept(self, visitor:ParseTreeVisitor):
|
537
|
+
if hasattr( visitor, "visitPipelineExpr" ):
|
538
|
+
return visitor.visitPipelineExpr(self)
|
539
|
+
else:
|
540
|
+
return visitor.visitChildren(self)
|
541
|
+
|
542
|
+
|
543
|
+
class RelativePathExprContext(ExprContext):
|
544
|
+
|
545
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
546
|
+
super().__init__(parser)
|
547
|
+
self.copyFrom(ctx)
|
548
|
+
|
549
|
+
def relativeLocationPath(self):
|
550
|
+
return self.getTypedRuleContext(KodexaSelectorParser.RelativeLocationPathContext,0)
|
551
|
+
|
552
|
+
|
553
|
+
def enterRule(self, listener:ParseTreeListener):
|
554
|
+
if hasattr( listener, "enterRelativePathExpr" ):
|
555
|
+
listener.enterRelativePathExpr(self)
|
556
|
+
|
557
|
+
def exitRule(self, listener:ParseTreeListener):
|
558
|
+
if hasattr( listener, "exitRelativePathExpr" ):
|
559
|
+
listener.exitRelativePathExpr(self)
|
560
|
+
|
561
|
+
def accept(self, visitor:ParseTreeVisitor):
|
562
|
+
if hasattr( visitor, "visitRelativePathExpr" ):
|
563
|
+
return visitor.visitRelativePathExpr(self)
|
564
|
+
else:
|
565
|
+
return visitor.visitChildren(self)
|
566
|
+
|
567
|
+
|
568
|
+
class RootNameTestContext(ExprContext):
|
569
|
+
|
570
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
571
|
+
super().__init__(parser)
|
572
|
+
self.copyFrom(ctx)
|
573
|
+
|
574
|
+
def PATH_SEP(self):
|
575
|
+
return self.getToken(KodexaSelectorParser.PATH_SEP, 0)
|
576
|
+
def nameTest(self):
|
577
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NameTestContext,0)
|
578
|
+
|
579
|
+
|
580
|
+
def enterRule(self, listener:ParseTreeListener):
|
581
|
+
if hasattr( listener, "enterRootNameTest" ):
|
582
|
+
listener.enterRootNameTest(self)
|
583
|
+
|
584
|
+
def exitRule(self, listener:ParseTreeListener):
|
585
|
+
if hasattr( listener, "exitRootNameTest" ):
|
586
|
+
listener.exitRootNameTest(self)
|
587
|
+
|
588
|
+
def accept(self, visitor:ParseTreeVisitor):
|
589
|
+
if hasattr( visitor, "visitRootNameTest" ):
|
590
|
+
return visitor.visitRootNameTest(self)
|
591
|
+
else:
|
592
|
+
return visitor.visitChildren(self)
|
593
|
+
|
594
|
+
|
595
|
+
class UnaryMinusExprContext(ExprContext):
|
596
|
+
|
597
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
598
|
+
super().__init__(parser)
|
599
|
+
self.copyFrom(ctx)
|
600
|
+
|
601
|
+
def MINUS(self):
|
602
|
+
return self.getToken(KodexaSelectorParser.MINUS, 0)
|
603
|
+
def expr(self):
|
604
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,0)
|
605
|
+
|
606
|
+
|
607
|
+
def enterRule(self, listener:ParseTreeListener):
|
608
|
+
if hasattr( listener, "enterUnaryMinusExpr" ):
|
609
|
+
listener.enterUnaryMinusExpr(self)
|
610
|
+
|
611
|
+
def exitRule(self, listener:ParseTreeListener):
|
612
|
+
if hasattr( listener, "exitUnaryMinusExpr" ):
|
613
|
+
listener.exitUnaryMinusExpr(self)
|
614
|
+
|
615
|
+
def accept(self, visitor:ParseTreeVisitor):
|
616
|
+
if hasattr( visitor, "visitUnaryMinusExpr" ):
|
617
|
+
return visitor.visitUnaryMinusExpr(self)
|
618
|
+
else:
|
619
|
+
return visitor.visitChildren(self)
|
620
|
+
|
621
|
+
|
622
|
+
class AbbrevAbsPathExprContext(ExprContext):
|
623
|
+
|
624
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
625
|
+
super().__init__(parser)
|
626
|
+
self.copyFrom(ctx)
|
627
|
+
|
628
|
+
def abbreviatedAbsoluteLocationPath(self):
|
629
|
+
return self.getTypedRuleContext(KodexaSelectorParser.AbbreviatedAbsoluteLocationPathContext,0)
|
630
|
+
|
631
|
+
|
632
|
+
def enterRule(self, listener:ParseTreeListener):
|
633
|
+
if hasattr( listener, "enterAbbrevAbsPathExpr" ):
|
634
|
+
listener.enterAbbrevAbsPathExpr(self)
|
635
|
+
|
636
|
+
def exitRule(self, listener:ParseTreeListener):
|
637
|
+
if hasattr( listener, "exitAbbrevAbsPathExpr" ):
|
638
|
+
listener.exitAbbrevAbsPathExpr(self)
|
639
|
+
|
640
|
+
def accept(self, visitor:ParseTreeVisitor):
|
641
|
+
if hasattr( visitor, "visitAbbrevAbsPathExpr" ):
|
642
|
+
return visitor.visitAbbrevAbsPathExpr(self)
|
643
|
+
else:
|
644
|
+
return visitor.visitChildren(self)
|
645
|
+
|
646
|
+
|
647
|
+
class AddExprContext(ExprContext):
|
648
|
+
|
649
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
650
|
+
super().__init__(parser)
|
651
|
+
self.copyFrom(ctx)
|
652
|
+
|
653
|
+
def expr(self, i:int=None):
|
654
|
+
if i is None:
|
655
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
656
|
+
else:
|
657
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
658
|
+
|
659
|
+
def PLUS(self):
|
660
|
+
return self.getToken(KodexaSelectorParser.PLUS, 0)
|
661
|
+
|
662
|
+
def enterRule(self, listener:ParseTreeListener):
|
663
|
+
if hasattr( listener, "enterAddExpr" ):
|
664
|
+
listener.enterAddExpr(self)
|
665
|
+
|
666
|
+
def exitRule(self, listener:ParseTreeListener):
|
667
|
+
if hasattr( listener, "exitAddExpr" ):
|
668
|
+
listener.exitAddExpr(self)
|
669
|
+
|
670
|
+
def accept(self, visitor:ParseTreeVisitor):
|
671
|
+
if hasattr( visitor, "visitAddExpr" ):
|
672
|
+
return visitor.visitAddExpr(self)
|
673
|
+
else:
|
674
|
+
return visitor.visitChildren(self)
|
675
|
+
|
676
|
+
|
677
|
+
class FilterExpressionContext(ExprContext):
|
678
|
+
|
679
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
680
|
+
super().__init__(parser)
|
681
|
+
self.copyFrom(ctx)
|
682
|
+
|
683
|
+
def filterExpr(self):
|
684
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FilterExprContext,0)
|
685
|
+
|
686
|
+
|
687
|
+
def enterRule(self, listener:ParseTreeListener):
|
688
|
+
if hasattr( listener, "enterFilterExpression" ):
|
689
|
+
listener.enterFilterExpression(self)
|
690
|
+
|
691
|
+
def exitRule(self, listener:ParseTreeListener):
|
692
|
+
if hasattr( listener, "exitFilterExpression" ):
|
693
|
+
listener.exitFilterExpression(self)
|
694
|
+
|
695
|
+
def accept(self, visitor:ParseTreeVisitor):
|
696
|
+
if hasattr( visitor, "visitFilterExpression" ):
|
697
|
+
return visitor.visitFilterExpression(self)
|
698
|
+
else:
|
699
|
+
return visitor.visitChildren(self)
|
700
|
+
|
701
|
+
|
702
|
+
class BooleanLiteralExprContext(ExprContext):
|
703
|
+
|
704
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
705
|
+
super().__init__(parser)
|
706
|
+
self.copyFrom(ctx)
|
707
|
+
|
708
|
+
def booleanLiteral(self):
|
709
|
+
return self.getTypedRuleContext(KodexaSelectorParser.BooleanLiteralContext,0)
|
710
|
+
|
711
|
+
|
712
|
+
def enterRule(self, listener:ParseTreeListener):
|
713
|
+
if hasattr( listener, "enterBooleanLiteralExpr" ):
|
714
|
+
listener.enterBooleanLiteralExpr(self)
|
715
|
+
|
716
|
+
def exitRule(self, listener:ParseTreeListener):
|
717
|
+
if hasattr( listener, "exitBooleanLiteralExpr" ):
|
718
|
+
listener.exitBooleanLiteralExpr(self)
|
719
|
+
|
720
|
+
def accept(self, visitor:ParseTreeVisitor):
|
721
|
+
if hasattr( visitor, "visitBooleanLiteralExpr" ):
|
722
|
+
return visitor.visitBooleanLiteralExpr(self)
|
723
|
+
else:
|
724
|
+
return visitor.visitChildren(self)
|
725
|
+
|
726
|
+
|
727
|
+
class PathBinaryExprContext(ExprContext):
|
728
|
+
|
729
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
730
|
+
super().__init__(parser)
|
731
|
+
self.copyFrom(ctx)
|
732
|
+
|
733
|
+
def filterExpr(self):
|
734
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FilterExprContext,0)
|
735
|
+
|
736
|
+
def pathSep(self):
|
737
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PathSepContext,0)
|
738
|
+
|
739
|
+
def relativeLocationPath(self):
|
740
|
+
return self.getTypedRuleContext(KodexaSelectorParser.RelativeLocationPathContext,0)
|
741
|
+
|
742
|
+
|
743
|
+
def enterRule(self, listener:ParseTreeListener):
|
744
|
+
if hasattr( listener, "enterPathBinaryExpr" ):
|
745
|
+
listener.enterPathBinaryExpr(self)
|
746
|
+
|
747
|
+
def exitRule(self, listener:ParseTreeListener):
|
748
|
+
if hasattr( listener, "exitPathBinaryExpr" ):
|
749
|
+
listener.exitPathBinaryExpr(self)
|
750
|
+
|
751
|
+
def accept(self, visitor:ParseTreeVisitor):
|
752
|
+
if hasattr( visitor, "visitPathBinaryExpr" ):
|
753
|
+
return visitor.visitPathBinaryExpr(self)
|
754
|
+
else:
|
755
|
+
return visitor.visitChildren(self)
|
756
|
+
|
757
|
+
|
758
|
+
class AndExprContext(ExprContext):
|
759
|
+
|
760
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ExprContext
|
761
|
+
super().__init__(parser)
|
762
|
+
self.copyFrom(ctx)
|
763
|
+
|
764
|
+
def expr(self, i:int=None):
|
765
|
+
if i is None:
|
766
|
+
return self.getTypedRuleContexts(KodexaSelectorParser.ExprContext)
|
767
|
+
else:
|
768
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,i)
|
769
|
+
|
770
|
+
def AND(self):
|
771
|
+
return self.getToken(KodexaSelectorParser.AND, 0)
|
772
|
+
|
773
|
+
def enterRule(self, listener:ParseTreeListener):
|
774
|
+
if hasattr( listener, "enterAndExpr" ):
|
775
|
+
listener.enterAndExpr(self)
|
776
|
+
|
777
|
+
def exitRule(self, listener:ParseTreeListener):
|
778
|
+
if hasattr( listener, "exitAndExpr" ):
|
779
|
+
listener.exitAndExpr(self)
|
780
|
+
|
781
|
+
def accept(self, visitor:ParseTreeVisitor):
|
782
|
+
if hasattr( visitor, "visitAndExpr" ):
|
783
|
+
return visitor.visitAndExpr(self)
|
784
|
+
else:
|
785
|
+
return visitor.visitChildren(self)
|
786
|
+
|
787
|
+
|
788
|
+
|
789
|
+
def expr(self, _p:int=0):
|
790
|
+
_parentctx = self._ctx
|
791
|
+
_parentState = self.state
|
792
|
+
localctx = KodexaSelectorParser.ExprContext(self, self._ctx, _parentState)
|
793
|
+
_prevctx = localctx
|
794
|
+
_startState = 2
|
795
|
+
self.enterRecursionRule(localctx, 2, self.RULE_expr, _p)
|
796
|
+
try:
|
797
|
+
self.enterOuterAlt(localctx, 1)
|
798
|
+
self.state = 62
|
799
|
+
self._errHandler.sync(self)
|
800
|
+
la_ = self._interp.adaptivePredict(self._input,0,self._ctx)
|
801
|
+
if la_ == 1:
|
802
|
+
localctx = KodexaSelectorParser.UnaryMinusExprContext(self, localctx)
|
803
|
+
self._ctx = localctx
|
804
|
+
_prevctx = localctx
|
805
|
+
|
806
|
+
self.state = 47
|
807
|
+
self.match(KodexaSelectorParser.MINUS)
|
808
|
+
self.state = 48
|
809
|
+
self.expr(11)
|
810
|
+
pass
|
811
|
+
|
812
|
+
elif la_ == 2:
|
813
|
+
localctx = KodexaSelectorParser.FuncCallExprContext(self, localctx)
|
814
|
+
self._ctx = localctx
|
815
|
+
_prevctx = localctx
|
816
|
+
self.state = 49
|
817
|
+
self.functionCall()
|
818
|
+
pass
|
819
|
+
|
820
|
+
elif la_ == 3:
|
821
|
+
localctx = KodexaSelectorParser.PathBinaryExprContext(self, localctx)
|
822
|
+
self._ctx = localctx
|
823
|
+
_prevctx = localctx
|
824
|
+
self.state = 50
|
825
|
+
self.filterExpr(0)
|
826
|
+
self.state = 51
|
827
|
+
self.pathSep()
|
828
|
+
self.state = 52
|
829
|
+
self.relativeLocationPath(0)
|
830
|
+
pass
|
831
|
+
|
832
|
+
elif la_ == 4:
|
833
|
+
localctx = KodexaSelectorParser.RelativePathExprContext(self, localctx)
|
834
|
+
self._ctx = localctx
|
835
|
+
_prevctx = localctx
|
836
|
+
self.state = 54
|
837
|
+
self.relativeLocationPath(0)
|
838
|
+
pass
|
839
|
+
|
840
|
+
elif la_ == 5:
|
841
|
+
localctx = KodexaSelectorParser.AbsolutePathExprContext(self, localctx)
|
842
|
+
self._ctx = localctx
|
843
|
+
_prevctx = localctx
|
844
|
+
self.state = 55
|
845
|
+
self.absoluteLocationPath()
|
846
|
+
pass
|
847
|
+
|
848
|
+
elif la_ == 6:
|
849
|
+
localctx = KodexaSelectorParser.AbbrevAbsPathExprContext(self, localctx)
|
850
|
+
self._ctx = localctx
|
851
|
+
_prevctx = localctx
|
852
|
+
self.state = 56
|
853
|
+
self.abbreviatedAbsoluteLocationPath()
|
854
|
+
pass
|
855
|
+
|
856
|
+
elif la_ == 7:
|
857
|
+
localctx = KodexaSelectorParser.FilterExpressionContext(self, localctx)
|
858
|
+
self._ctx = localctx
|
859
|
+
_prevctx = localctx
|
860
|
+
self.state = 57
|
861
|
+
self.filterExpr(0)
|
862
|
+
pass
|
863
|
+
|
864
|
+
elif la_ == 8:
|
865
|
+
localctx = KodexaSelectorParser.DirectNameTestContext(self, localctx)
|
866
|
+
self._ctx = localctx
|
867
|
+
_prevctx = localctx
|
868
|
+
self.state = 58
|
869
|
+
self.nameTest()
|
870
|
+
pass
|
871
|
+
|
872
|
+
elif la_ == 9:
|
873
|
+
localctx = KodexaSelectorParser.RootNameTestContext(self, localctx)
|
874
|
+
self._ctx = localctx
|
875
|
+
_prevctx = localctx
|
876
|
+
self.state = 59
|
877
|
+
self.match(KodexaSelectorParser.PATH_SEP)
|
878
|
+
self.state = 60
|
879
|
+
self.nameTest()
|
880
|
+
pass
|
881
|
+
|
882
|
+
elif la_ == 10:
|
883
|
+
localctx = KodexaSelectorParser.BooleanLiteralExprContext(self, localctx)
|
884
|
+
self._ctx = localctx
|
885
|
+
_prevctx = localctx
|
886
|
+
self.state = 61
|
887
|
+
self.booleanLiteral()
|
888
|
+
pass
|
889
|
+
|
890
|
+
|
891
|
+
self._ctx.stop = self._input.LT(-1)
|
892
|
+
self.state = 93
|
893
|
+
self._errHandler.sync(self)
|
894
|
+
_alt = self._interp.adaptivePredict(self._input,2,self._ctx)
|
895
|
+
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
|
896
|
+
if _alt==1:
|
897
|
+
if self._parseListeners is not None:
|
898
|
+
self.triggerExitRuleEvent()
|
899
|
+
_prevctx = localctx
|
900
|
+
self.state = 91
|
901
|
+
self._errHandler.sync(self)
|
902
|
+
la_ = self._interp.adaptivePredict(self._input,1,self._ctx)
|
903
|
+
if la_ == 1:
|
904
|
+
localctx = KodexaSelectorParser.OrExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
905
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
906
|
+
self.state = 64
|
907
|
+
if not self.precpred(self._ctx, 19):
|
908
|
+
from antlr4.error.Errors import FailedPredicateException
|
909
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 19)")
|
910
|
+
self.state = 65
|
911
|
+
self.match(KodexaSelectorParser.OR)
|
912
|
+
self.state = 66
|
913
|
+
self.expr(20)
|
914
|
+
pass
|
915
|
+
|
916
|
+
elif la_ == 2:
|
917
|
+
localctx = KodexaSelectorParser.AndExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
918
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
919
|
+
self.state = 67
|
920
|
+
if not self.precpred(self._ctx, 18):
|
921
|
+
from antlr4.error.Errors import FailedPredicateException
|
922
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 18)")
|
923
|
+
self.state = 68
|
924
|
+
self.match(KodexaSelectorParser.AND)
|
925
|
+
self.state = 69
|
926
|
+
self.expr(19)
|
927
|
+
pass
|
928
|
+
|
929
|
+
elif la_ == 3:
|
930
|
+
localctx = KodexaSelectorParser.EqualsExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
931
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
932
|
+
self.state = 70
|
933
|
+
if not self.precpred(self._ctx, 17):
|
934
|
+
from antlr4.error.Errors import FailedPredicateException
|
935
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 17)")
|
936
|
+
self.state = 71
|
937
|
+
self.match(KodexaSelectorParser.EQUALS)
|
938
|
+
self.state = 72
|
939
|
+
self.expr(18)
|
940
|
+
pass
|
941
|
+
|
942
|
+
elif la_ == 4:
|
943
|
+
localctx = KodexaSelectorParser.RelationalExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
944
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
945
|
+
self.state = 73
|
946
|
+
if not self.precpred(self._ctx, 16):
|
947
|
+
from antlr4.error.Errors import FailedPredicateException
|
948
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 16)")
|
949
|
+
self.state = 74
|
950
|
+
self.match(KodexaSelectorParser.REL_OP)
|
951
|
+
self.state = 75
|
952
|
+
self.expr(17)
|
953
|
+
pass
|
954
|
+
|
955
|
+
elif la_ == 5:
|
956
|
+
localctx = KodexaSelectorParser.AddExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
957
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
958
|
+
self.state = 76
|
959
|
+
if not self.precpred(self._ctx, 15):
|
960
|
+
from antlr4.error.Errors import FailedPredicateException
|
961
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 15)")
|
962
|
+
self.state = 77
|
963
|
+
self.match(KodexaSelectorParser.PLUS)
|
964
|
+
self.state = 78
|
965
|
+
self.expr(16)
|
966
|
+
pass
|
967
|
+
|
968
|
+
elif la_ == 6:
|
969
|
+
localctx = KodexaSelectorParser.SubtractExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
970
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
971
|
+
self.state = 79
|
972
|
+
if not self.precpred(self._ctx, 14):
|
973
|
+
from antlr4.error.Errors import FailedPredicateException
|
974
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 14)")
|
975
|
+
self.state = 80
|
976
|
+
self.match(KodexaSelectorParser.MINUS)
|
977
|
+
self.state = 81
|
978
|
+
self.expr(15)
|
979
|
+
pass
|
980
|
+
|
981
|
+
elif la_ == 7:
|
982
|
+
localctx = KodexaSelectorParser.UnionExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
983
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
984
|
+
self.state = 82
|
985
|
+
if not self.precpred(self._ctx, 13):
|
986
|
+
from antlr4.error.Errors import FailedPredicateException
|
987
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 13)")
|
988
|
+
self.state = 83
|
989
|
+
self.match(KodexaSelectorParser.UNION)
|
990
|
+
self.state = 84
|
991
|
+
self.expr(14)
|
992
|
+
pass
|
993
|
+
|
994
|
+
elif la_ == 8:
|
995
|
+
localctx = KodexaSelectorParser.IntersectExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
996
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
997
|
+
self.state = 85
|
998
|
+
if not self.precpred(self._ctx, 12):
|
999
|
+
from antlr4.error.Errors import FailedPredicateException
|
1000
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 12)")
|
1001
|
+
self.state = 86
|
1002
|
+
self.match(KodexaSelectorParser.INTERSECT)
|
1003
|
+
self.state = 87
|
1004
|
+
self.expr(13)
|
1005
|
+
pass
|
1006
|
+
|
1007
|
+
elif la_ == 9:
|
1008
|
+
localctx = KodexaSelectorParser.PipelineExprContext(self, KodexaSelectorParser.ExprContext(self, _parentctx, _parentState))
|
1009
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
|
1010
|
+
self.state = 88
|
1011
|
+
if not self.precpred(self._ctx, 10):
|
1012
|
+
from antlr4.error.Errors import FailedPredicateException
|
1013
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 10)")
|
1014
|
+
self.state = 89
|
1015
|
+
self.match(KodexaSelectorParser.PIPELINE)
|
1016
|
+
self.state = 90
|
1017
|
+
self.expr(11)
|
1018
|
+
pass
|
1019
|
+
|
1020
|
+
|
1021
|
+
self.state = 95
|
1022
|
+
self._errHandler.sync(self)
|
1023
|
+
_alt = self._interp.adaptivePredict(self._input,2,self._ctx)
|
1024
|
+
|
1025
|
+
except RecognitionException as re:
|
1026
|
+
localctx.exception = re
|
1027
|
+
self._errHandler.reportError(self, re)
|
1028
|
+
self._errHandler.recover(self, re)
|
1029
|
+
finally:
|
1030
|
+
self.unrollRecursionContexts(_parentctx)
|
1031
|
+
return localctx
|
1032
|
+
|
1033
|
+
|
1034
|
+
class AbsoluteLocationPathContext(ParserRuleContext):
|
1035
|
+
__slots__ = 'parser'
|
1036
|
+
|
1037
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1038
|
+
super().__init__(parent, invokingState)
|
1039
|
+
self.parser = parser
|
1040
|
+
|
1041
|
+
|
1042
|
+
def getRuleIndex(self):
|
1043
|
+
return KodexaSelectorParser.RULE_absoluteLocationPath
|
1044
|
+
|
1045
|
+
|
1046
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1047
|
+
super().copyFrom(ctx)
|
1048
|
+
|
1049
|
+
|
1050
|
+
|
1051
|
+
class RootOnlyContext(AbsoluteLocationPathContext):
|
1052
|
+
|
1053
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.AbsoluteLocationPathContext
|
1054
|
+
super().__init__(parser)
|
1055
|
+
self.copyFrom(ctx)
|
1056
|
+
|
1057
|
+
def PATH_SEP(self):
|
1058
|
+
return self.getToken(KodexaSelectorParser.PATH_SEP, 0)
|
1059
|
+
|
1060
|
+
def enterRule(self, listener:ParseTreeListener):
|
1061
|
+
if hasattr( listener, "enterRootOnly" ):
|
1062
|
+
listener.enterRootOnly(self)
|
1063
|
+
|
1064
|
+
def exitRule(self, listener:ParseTreeListener):
|
1065
|
+
if hasattr( listener, "exitRootOnly" ):
|
1066
|
+
listener.exitRootOnly(self)
|
1067
|
+
|
1068
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1069
|
+
if hasattr( visitor, "visitRootOnly" ):
|
1070
|
+
return visitor.visitRootOnly(self)
|
1071
|
+
else:
|
1072
|
+
return visitor.visitChildren(self)
|
1073
|
+
|
1074
|
+
|
1075
|
+
class RootPathContext(AbsoluteLocationPathContext):
|
1076
|
+
|
1077
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.AbsoluteLocationPathContext
|
1078
|
+
super().__init__(parser)
|
1079
|
+
self.copyFrom(ctx)
|
1080
|
+
|
1081
|
+
def PATH_SEP(self):
|
1082
|
+
return self.getToken(KodexaSelectorParser.PATH_SEP, 0)
|
1083
|
+
def relativeLocationPath(self):
|
1084
|
+
return self.getTypedRuleContext(KodexaSelectorParser.RelativeLocationPathContext,0)
|
1085
|
+
|
1086
|
+
|
1087
|
+
def enterRule(self, listener:ParseTreeListener):
|
1088
|
+
if hasattr( listener, "enterRootPath" ):
|
1089
|
+
listener.enterRootPath(self)
|
1090
|
+
|
1091
|
+
def exitRule(self, listener:ParseTreeListener):
|
1092
|
+
if hasattr( listener, "exitRootPath" ):
|
1093
|
+
listener.exitRootPath(self)
|
1094
|
+
|
1095
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1096
|
+
if hasattr( visitor, "visitRootPath" ):
|
1097
|
+
return visitor.visitRootPath(self)
|
1098
|
+
else:
|
1099
|
+
return visitor.visitChildren(self)
|
1100
|
+
|
1101
|
+
|
1102
|
+
|
1103
|
+
def absoluteLocationPath(self):
|
1104
|
+
|
1105
|
+
localctx = KodexaSelectorParser.AbsoluteLocationPathContext(self, self._ctx, self.state)
|
1106
|
+
self.enterRule(localctx, 4, self.RULE_absoluteLocationPath)
|
1107
|
+
try:
|
1108
|
+
self.state = 99
|
1109
|
+
self._errHandler.sync(self)
|
1110
|
+
la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
|
1111
|
+
if la_ == 1:
|
1112
|
+
localctx = KodexaSelectorParser.RootOnlyContext(self, localctx)
|
1113
|
+
self.enterOuterAlt(localctx, 1)
|
1114
|
+
self.state = 96
|
1115
|
+
self.match(KodexaSelectorParser.PATH_SEP)
|
1116
|
+
pass
|
1117
|
+
|
1118
|
+
elif la_ == 2:
|
1119
|
+
localctx = KodexaSelectorParser.RootPathContext(self, localctx)
|
1120
|
+
self.enterOuterAlt(localctx, 2)
|
1121
|
+
self.state = 97
|
1122
|
+
self.match(KodexaSelectorParser.PATH_SEP)
|
1123
|
+
self.state = 98
|
1124
|
+
self.relativeLocationPath(0)
|
1125
|
+
pass
|
1126
|
+
|
1127
|
+
|
1128
|
+
except RecognitionException as re:
|
1129
|
+
localctx.exception = re
|
1130
|
+
self._errHandler.reportError(self, re)
|
1131
|
+
self._errHandler.recover(self, re)
|
1132
|
+
finally:
|
1133
|
+
self.exitRule()
|
1134
|
+
return localctx
|
1135
|
+
|
1136
|
+
|
1137
|
+
class AbbreviatedAbsoluteLocationPathContext(ParserRuleContext):
|
1138
|
+
__slots__ = 'parser'
|
1139
|
+
|
1140
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1141
|
+
super().__init__(parent, invokingState)
|
1142
|
+
self.parser = parser
|
1143
|
+
|
1144
|
+
def ABBREV_PATH_SEP(self):
|
1145
|
+
return self.getToken(KodexaSelectorParser.ABBREV_PATH_SEP, 0)
|
1146
|
+
|
1147
|
+
def relativeLocationPath(self):
|
1148
|
+
return self.getTypedRuleContext(KodexaSelectorParser.RelativeLocationPathContext,0)
|
1149
|
+
|
1150
|
+
|
1151
|
+
def getRuleIndex(self):
|
1152
|
+
return KodexaSelectorParser.RULE_abbreviatedAbsoluteLocationPath
|
1153
|
+
|
1154
|
+
def enterRule(self, listener:ParseTreeListener):
|
1155
|
+
if hasattr( listener, "enterAbbreviatedAbsoluteLocationPath" ):
|
1156
|
+
listener.enterAbbreviatedAbsoluteLocationPath(self)
|
1157
|
+
|
1158
|
+
def exitRule(self, listener:ParseTreeListener):
|
1159
|
+
if hasattr( listener, "exitAbbreviatedAbsoluteLocationPath" ):
|
1160
|
+
listener.exitAbbreviatedAbsoluteLocationPath(self)
|
1161
|
+
|
1162
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1163
|
+
if hasattr( visitor, "visitAbbreviatedAbsoluteLocationPath" ):
|
1164
|
+
return visitor.visitAbbreviatedAbsoluteLocationPath(self)
|
1165
|
+
else:
|
1166
|
+
return visitor.visitChildren(self)
|
1167
|
+
|
1168
|
+
|
1169
|
+
|
1170
|
+
|
1171
|
+
def abbreviatedAbsoluteLocationPath(self):
|
1172
|
+
|
1173
|
+
localctx = KodexaSelectorParser.AbbreviatedAbsoluteLocationPathContext(self, self._ctx, self.state)
|
1174
|
+
self.enterRule(localctx, 6, self.RULE_abbreviatedAbsoluteLocationPath)
|
1175
|
+
try:
|
1176
|
+
self.enterOuterAlt(localctx, 1)
|
1177
|
+
self.state = 101
|
1178
|
+
self.match(KodexaSelectorParser.ABBREV_PATH_SEP)
|
1179
|
+
self.state = 102
|
1180
|
+
self.relativeLocationPath(0)
|
1181
|
+
except RecognitionException as re:
|
1182
|
+
localctx.exception = re
|
1183
|
+
self._errHandler.reportError(self, re)
|
1184
|
+
self._errHandler.recover(self, re)
|
1185
|
+
finally:
|
1186
|
+
self.exitRule()
|
1187
|
+
return localctx
|
1188
|
+
|
1189
|
+
|
1190
|
+
class RelativeLocationPathContext(ParserRuleContext):
|
1191
|
+
__slots__ = 'parser'
|
1192
|
+
|
1193
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1194
|
+
super().__init__(parent, invokingState)
|
1195
|
+
self.parser = parser
|
1196
|
+
|
1197
|
+
|
1198
|
+
def getRuleIndex(self):
|
1199
|
+
return KodexaSelectorParser.RULE_relativeLocationPath
|
1200
|
+
|
1201
|
+
|
1202
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1203
|
+
super().copyFrom(ctx)
|
1204
|
+
|
1205
|
+
|
1206
|
+
class SingleStepContext(RelativeLocationPathContext):
|
1207
|
+
|
1208
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.RelativeLocationPathContext
|
1209
|
+
super().__init__(parser)
|
1210
|
+
self.copyFrom(ctx)
|
1211
|
+
|
1212
|
+
def step(self):
|
1213
|
+
return self.getTypedRuleContext(KodexaSelectorParser.StepContext,0)
|
1214
|
+
|
1215
|
+
|
1216
|
+
def enterRule(self, listener:ParseTreeListener):
|
1217
|
+
if hasattr( listener, "enterSingleStep" ):
|
1218
|
+
listener.enterSingleStep(self)
|
1219
|
+
|
1220
|
+
def exitRule(self, listener:ParseTreeListener):
|
1221
|
+
if hasattr( listener, "exitSingleStep" ):
|
1222
|
+
listener.exitSingleStep(self)
|
1223
|
+
|
1224
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1225
|
+
if hasattr( visitor, "visitSingleStep" ):
|
1226
|
+
return visitor.visitSingleStep(self)
|
1227
|
+
else:
|
1228
|
+
return visitor.visitChildren(self)
|
1229
|
+
|
1230
|
+
|
1231
|
+
class PathStepContext(RelativeLocationPathContext):
|
1232
|
+
|
1233
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.RelativeLocationPathContext
|
1234
|
+
super().__init__(parser)
|
1235
|
+
self.copyFrom(ctx)
|
1236
|
+
|
1237
|
+
def relativeLocationPath(self):
|
1238
|
+
return self.getTypedRuleContext(KodexaSelectorParser.RelativeLocationPathContext,0)
|
1239
|
+
|
1240
|
+
def PATH_SEP(self):
|
1241
|
+
return self.getToken(KodexaSelectorParser.PATH_SEP, 0)
|
1242
|
+
def step(self):
|
1243
|
+
return self.getTypedRuleContext(KodexaSelectorParser.StepContext,0)
|
1244
|
+
|
1245
|
+
|
1246
|
+
def enterRule(self, listener:ParseTreeListener):
|
1247
|
+
if hasattr( listener, "enterPathStep" ):
|
1248
|
+
listener.enterPathStep(self)
|
1249
|
+
|
1250
|
+
def exitRule(self, listener:ParseTreeListener):
|
1251
|
+
if hasattr( listener, "exitPathStep" ):
|
1252
|
+
listener.exitPathStep(self)
|
1253
|
+
|
1254
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1255
|
+
if hasattr( visitor, "visitPathStep" ):
|
1256
|
+
return visitor.visitPathStep(self)
|
1257
|
+
else:
|
1258
|
+
return visitor.visitChildren(self)
|
1259
|
+
|
1260
|
+
|
1261
|
+
class AbbrevPathStepContext(RelativeLocationPathContext):
|
1262
|
+
|
1263
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.RelativeLocationPathContext
|
1264
|
+
super().__init__(parser)
|
1265
|
+
self.copyFrom(ctx)
|
1266
|
+
|
1267
|
+
def relativeLocationPath(self):
|
1268
|
+
return self.getTypedRuleContext(KodexaSelectorParser.RelativeLocationPathContext,0)
|
1269
|
+
|
1270
|
+
def ABBREV_PATH_SEP(self):
|
1271
|
+
return self.getToken(KodexaSelectorParser.ABBREV_PATH_SEP, 0)
|
1272
|
+
def step(self):
|
1273
|
+
return self.getTypedRuleContext(KodexaSelectorParser.StepContext,0)
|
1274
|
+
|
1275
|
+
|
1276
|
+
def enterRule(self, listener:ParseTreeListener):
|
1277
|
+
if hasattr( listener, "enterAbbrevPathStep" ):
|
1278
|
+
listener.enterAbbrevPathStep(self)
|
1279
|
+
|
1280
|
+
def exitRule(self, listener:ParseTreeListener):
|
1281
|
+
if hasattr( listener, "exitAbbrevPathStep" ):
|
1282
|
+
listener.exitAbbrevPathStep(self)
|
1283
|
+
|
1284
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1285
|
+
if hasattr( visitor, "visitAbbrevPathStep" ):
|
1286
|
+
return visitor.visitAbbrevPathStep(self)
|
1287
|
+
else:
|
1288
|
+
return visitor.visitChildren(self)
|
1289
|
+
|
1290
|
+
|
1291
|
+
|
1292
|
+
def relativeLocationPath(self, _p:int=0):
|
1293
|
+
_parentctx = self._ctx
|
1294
|
+
_parentState = self.state
|
1295
|
+
localctx = KodexaSelectorParser.RelativeLocationPathContext(self, self._ctx, _parentState)
|
1296
|
+
_prevctx = localctx
|
1297
|
+
_startState = 8
|
1298
|
+
self.enterRecursionRule(localctx, 8, self.RULE_relativeLocationPath, _p)
|
1299
|
+
try:
|
1300
|
+
self.enterOuterAlt(localctx, 1)
|
1301
|
+
localctx = KodexaSelectorParser.SingleStepContext(self, localctx)
|
1302
|
+
self._ctx = localctx
|
1303
|
+
_prevctx = localctx
|
1304
|
+
|
1305
|
+
self.state = 105
|
1306
|
+
self.step()
|
1307
|
+
self._ctx.stop = self._input.LT(-1)
|
1308
|
+
self.state = 115
|
1309
|
+
self._errHandler.sync(self)
|
1310
|
+
_alt = self._interp.adaptivePredict(self._input,5,self._ctx)
|
1311
|
+
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
|
1312
|
+
if _alt==1:
|
1313
|
+
if self._parseListeners is not None:
|
1314
|
+
self.triggerExitRuleEvent()
|
1315
|
+
_prevctx = localctx
|
1316
|
+
self.state = 113
|
1317
|
+
self._errHandler.sync(self)
|
1318
|
+
la_ = self._interp.adaptivePredict(self._input,4,self._ctx)
|
1319
|
+
if la_ == 1:
|
1320
|
+
localctx = KodexaSelectorParser.PathStepContext(self, KodexaSelectorParser.RelativeLocationPathContext(self, _parentctx, _parentState))
|
1321
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_relativeLocationPath)
|
1322
|
+
self.state = 107
|
1323
|
+
if not self.precpred(self._ctx, 2):
|
1324
|
+
from antlr4.error.Errors import FailedPredicateException
|
1325
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
|
1326
|
+
self.state = 108
|
1327
|
+
self.match(KodexaSelectorParser.PATH_SEP)
|
1328
|
+
self.state = 109
|
1329
|
+
self.step()
|
1330
|
+
pass
|
1331
|
+
|
1332
|
+
elif la_ == 2:
|
1333
|
+
localctx = KodexaSelectorParser.AbbrevPathStepContext(self, KodexaSelectorParser.RelativeLocationPathContext(self, _parentctx, _parentState))
|
1334
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_relativeLocationPath)
|
1335
|
+
self.state = 110
|
1336
|
+
if not self.precpred(self._ctx, 1):
|
1337
|
+
from antlr4.error.Errors import FailedPredicateException
|
1338
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 1)")
|
1339
|
+
self.state = 111
|
1340
|
+
self.match(KodexaSelectorParser.ABBREV_PATH_SEP)
|
1341
|
+
self.state = 112
|
1342
|
+
self.step()
|
1343
|
+
pass
|
1344
|
+
|
1345
|
+
|
1346
|
+
self.state = 117
|
1347
|
+
self._errHandler.sync(self)
|
1348
|
+
_alt = self._interp.adaptivePredict(self._input,5,self._ctx)
|
1349
|
+
|
1350
|
+
except RecognitionException as re:
|
1351
|
+
localctx.exception = re
|
1352
|
+
self._errHandler.reportError(self, re)
|
1353
|
+
self._errHandler.recover(self, re)
|
1354
|
+
finally:
|
1355
|
+
self.unrollRecursionContexts(_parentctx)
|
1356
|
+
return localctx
|
1357
|
+
|
1358
|
+
|
1359
|
+
class StepContext(ParserRuleContext):
|
1360
|
+
__slots__ = 'parser'
|
1361
|
+
|
1362
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1363
|
+
super().__init__(parent, invokingState)
|
1364
|
+
self.parser = parser
|
1365
|
+
|
1366
|
+
|
1367
|
+
def getRuleIndex(self):
|
1368
|
+
return KodexaSelectorParser.RULE_step
|
1369
|
+
|
1370
|
+
|
1371
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1372
|
+
super().copyFrom(ctx)
|
1373
|
+
|
1374
|
+
|
1375
|
+
|
1376
|
+
class NodeTestPredStepContext(StepContext):
|
1377
|
+
|
1378
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.StepContext
|
1379
|
+
super().__init__(parser)
|
1380
|
+
self.copyFrom(ctx)
|
1381
|
+
|
1382
|
+
def nodeTest(self):
|
1383
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NodeTestContext,0)
|
1384
|
+
|
1385
|
+
def predicateList(self):
|
1386
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PredicateListContext,0)
|
1387
|
+
|
1388
|
+
|
1389
|
+
def enterRule(self, listener:ParseTreeListener):
|
1390
|
+
if hasattr( listener, "enterNodeTestPredStep" ):
|
1391
|
+
listener.enterNodeTestPredStep(self)
|
1392
|
+
|
1393
|
+
def exitRule(self, listener:ParseTreeListener):
|
1394
|
+
if hasattr( listener, "exitNodeTestPredStep" ):
|
1395
|
+
listener.exitNodeTestPredStep(self)
|
1396
|
+
|
1397
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1398
|
+
if hasattr( visitor, "visitNodeTestPredStep" ):
|
1399
|
+
return visitor.visitNodeTestPredStep(self)
|
1400
|
+
else:
|
1401
|
+
return visitor.visitChildren(self)
|
1402
|
+
|
1403
|
+
|
1404
|
+
class SelfStepContext(StepContext):
|
1405
|
+
|
1406
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.StepContext
|
1407
|
+
super().__init__(parser)
|
1408
|
+
self.copyFrom(ctx)
|
1409
|
+
|
1410
|
+
def ABBREV_STEP_SELF(self):
|
1411
|
+
return self.getToken(KodexaSelectorParser.ABBREV_STEP_SELF, 0)
|
1412
|
+
|
1413
|
+
def enterRule(self, listener:ParseTreeListener):
|
1414
|
+
if hasattr( listener, "enterSelfStep" ):
|
1415
|
+
listener.enterSelfStep(self)
|
1416
|
+
|
1417
|
+
def exitRule(self, listener:ParseTreeListener):
|
1418
|
+
if hasattr( listener, "exitSelfStep" ):
|
1419
|
+
listener.exitSelfStep(self)
|
1420
|
+
|
1421
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1422
|
+
if hasattr( visitor, "visitSelfStep" ):
|
1423
|
+
return visitor.visitSelfStep(self)
|
1424
|
+
else:
|
1425
|
+
return visitor.visitChildren(self)
|
1426
|
+
|
1427
|
+
|
1428
|
+
class AxisNodeTestStepContext(StepContext):
|
1429
|
+
|
1430
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.StepContext
|
1431
|
+
super().__init__(parser)
|
1432
|
+
self.copyFrom(ctx)
|
1433
|
+
|
1434
|
+
def axisSpecifier(self):
|
1435
|
+
return self.getTypedRuleContext(KodexaSelectorParser.AxisSpecifierContext,0)
|
1436
|
+
|
1437
|
+
def nodeTest(self):
|
1438
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NodeTestContext,0)
|
1439
|
+
|
1440
|
+
|
1441
|
+
def enterRule(self, listener:ParseTreeListener):
|
1442
|
+
if hasattr( listener, "enterAxisNodeTestStep" ):
|
1443
|
+
listener.enterAxisNodeTestStep(self)
|
1444
|
+
|
1445
|
+
def exitRule(self, listener:ParseTreeListener):
|
1446
|
+
if hasattr( listener, "exitAxisNodeTestStep" ):
|
1447
|
+
listener.exitAxisNodeTestStep(self)
|
1448
|
+
|
1449
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1450
|
+
if hasattr( visitor, "visitAxisNodeTestStep" ):
|
1451
|
+
return visitor.visitAxisNodeTestStep(self)
|
1452
|
+
else:
|
1453
|
+
return visitor.visitChildren(self)
|
1454
|
+
|
1455
|
+
|
1456
|
+
class AxisNodeTestPredStepContext(StepContext):
|
1457
|
+
|
1458
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.StepContext
|
1459
|
+
super().__init__(parser)
|
1460
|
+
self.copyFrom(ctx)
|
1461
|
+
|
1462
|
+
def axisSpecifier(self):
|
1463
|
+
return self.getTypedRuleContext(KodexaSelectorParser.AxisSpecifierContext,0)
|
1464
|
+
|
1465
|
+
def nodeTest(self):
|
1466
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NodeTestContext,0)
|
1467
|
+
|
1468
|
+
def predicateList(self):
|
1469
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PredicateListContext,0)
|
1470
|
+
|
1471
|
+
|
1472
|
+
def enterRule(self, listener:ParseTreeListener):
|
1473
|
+
if hasattr( listener, "enterAxisNodeTestPredStep" ):
|
1474
|
+
listener.enterAxisNodeTestPredStep(self)
|
1475
|
+
|
1476
|
+
def exitRule(self, listener:ParseTreeListener):
|
1477
|
+
if hasattr( listener, "exitAxisNodeTestPredStep" ):
|
1478
|
+
listener.exitAxisNodeTestPredStep(self)
|
1479
|
+
|
1480
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1481
|
+
if hasattr( visitor, "visitAxisNodeTestPredStep" ):
|
1482
|
+
return visitor.visitAxisNodeTestPredStep(self)
|
1483
|
+
else:
|
1484
|
+
return visitor.visitChildren(self)
|
1485
|
+
|
1486
|
+
|
1487
|
+
class ParentStepContext(StepContext):
|
1488
|
+
|
1489
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.StepContext
|
1490
|
+
super().__init__(parser)
|
1491
|
+
self.copyFrom(ctx)
|
1492
|
+
|
1493
|
+
def ABBREV_STEP_PARENT(self):
|
1494
|
+
return self.getToken(KodexaSelectorParser.ABBREV_STEP_PARENT, 0)
|
1495
|
+
|
1496
|
+
def enterRule(self, listener:ParseTreeListener):
|
1497
|
+
if hasattr( listener, "enterParentStep" ):
|
1498
|
+
listener.enterParentStep(self)
|
1499
|
+
|
1500
|
+
def exitRule(self, listener:ParseTreeListener):
|
1501
|
+
if hasattr( listener, "exitParentStep" ):
|
1502
|
+
listener.exitParentStep(self)
|
1503
|
+
|
1504
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1505
|
+
if hasattr( visitor, "visitParentStep" ):
|
1506
|
+
return visitor.visitParentStep(self)
|
1507
|
+
else:
|
1508
|
+
return visitor.visitChildren(self)
|
1509
|
+
|
1510
|
+
|
1511
|
+
class NodeTestStepContext(StepContext):
|
1512
|
+
|
1513
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.StepContext
|
1514
|
+
super().__init__(parser)
|
1515
|
+
self.copyFrom(ctx)
|
1516
|
+
|
1517
|
+
def nodeTest(self):
|
1518
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NodeTestContext,0)
|
1519
|
+
|
1520
|
+
|
1521
|
+
def enterRule(self, listener:ParseTreeListener):
|
1522
|
+
if hasattr( listener, "enterNodeTestStep" ):
|
1523
|
+
listener.enterNodeTestStep(self)
|
1524
|
+
|
1525
|
+
def exitRule(self, listener:ParseTreeListener):
|
1526
|
+
if hasattr( listener, "exitNodeTestStep" ):
|
1527
|
+
listener.exitNodeTestStep(self)
|
1528
|
+
|
1529
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1530
|
+
if hasattr( visitor, "visitNodeTestStep" ):
|
1531
|
+
return visitor.visitNodeTestStep(self)
|
1532
|
+
else:
|
1533
|
+
return visitor.visitChildren(self)
|
1534
|
+
|
1535
|
+
|
1536
|
+
|
1537
|
+
def step(self):
|
1538
|
+
|
1539
|
+
localctx = KodexaSelectorParser.StepContext(self, self._ctx, self.state)
|
1540
|
+
self.enterRule(localctx, 10, self.RULE_step)
|
1541
|
+
try:
|
1542
|
+
self.state = 131
|
1543
|
+
self._errHandler.sync(self)
|
1544
|
+
la_ = self._interp.adaptivePredict(self._input,6,self._ctx)
|
1545
|
+
if la_ == 1:
|
1546
|
+
localctx = KodexaSelectorParser.NodeTestStepContext(self, localctx)
|
1547
|
+
self.enterOuterAlt(localctx, 1)
|
1548
|
+
self.state = 118
|
1549
|
+
self.nodeTest()
|
1550
|
+
pass
|
1551
|
+
|
1552
|
+
elif la_ == 2:
|
1553
|
+
localctx = KodexaSelectorParser.NodeTestPredStepContext(self, localctx)
|
1554
|
+
self.enterOuterAlt(localctx, 2)
|
1555
|
+
self.state = 119
|
1556
|
+
self.nodeTest()
|
1557
|
+
self.state = 120
|
1558
|
+
self.predicateList(0)
|
1559
|
+
pass
|
1560
|
+
|
1561
|
+
elif la_ == 3:
|
1562
|
+
localctx = KodexaSelectorParser.AxisNodeTestStepContext(self, localctx)
|
1563
|
+
self.enterOuterAlt(localctx, 3)
|
1564
|
+
self.state = 122
|
1565
|
+
self.axisSpecifier()
|
1566
|
+
self.state = 123
|
1567
|
+
self.nodeTest()
|
1568
|
+
pass
|
1569
|
+
|
1570
|
+
elif la_ == 4:
|
1571
|
+
localctx = KodexaSelectorParser.AxisNodeTestPredStepContext(self, localctx)
|
1572
|
+
self.enterOuterAlt(localctx, 4)
|
1573
|
+
self.state = 125
|
1574
|
+
self.axisSpecifier()
|
1575
|
+
self.state = 126
|
1576
|
+
self.nodeTest()
|
1577
|
+
self.state = 127
|
1578
|
+
self.predicateList(0)
|
1579
|
+
pass
|
1580
|
+
|
1581
|
+
elif la_ == 5:
|
1582
|
+
localctx = KodexaSelectorParser.SelfStepContext(self, localctx)
|
1583
|
+
self.enterOuterAlt(localctx, 5)
|
1584
|
+
self.state = 129
|
1585
|
+
self.match(KodexaSelectorParser.ABBREV_STEP_SELF)
|
1586
|
+
pass
|
1587
|
+
|
1588
|
+
elif la_ == 6:
|
1589
|
+
localctx = KodexaSelectorParser.ParentStepContext(self, localctx)
|
1590
|
+
self.enterOuterAlt(localctx, 6)
|
1591
|
+
self.state = 130
|
1592
|
+
self.match(KodexaSelectorParser.ABBREV_STEP_PARENT)
|
1593
|
+
pass
|
1594
|
+
|
1595
|
+
|
1596
|
+
except RecognitionException as re:
|
1597
|
+
localctx.exception = re
|
1598
|
+
self._errHandler.reportError(self, re)
|
1599
|
+
self._errHandler.recover(self, re)
|
1600
|
+
finally:
|
1601
|
+
self.exitRule()
|
1602
|
+
return localctx
|
1603
|
+
|
1604
|
+
|
1605
|
+
class AxisSpecifierContext(ParserRuleContext):
|
1606
|
+
__slots__ = 'parser'
|
1607
|
+
|
1608
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1609
|
+
super().__init__(parent, invokingState)
|
1610
|
+
self.parser = parser
|
1611
|
+
|
1612
|
+
|
1613
|
+
def getRuleIndex(self):
|
1614
|
+
return KodexaSelectorParser.RULE_axisSpecifier
|
1615
|
+
|
1616
|
+
|
1617
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1618
|
+
super().copyFrom(ctx)
|
1619
|
+
|
1620
|
+
|
1621
|
+
|
1622
|
+
class FullAxisContext(AxisSpecifierContext):
|
1623
|
+
|
1624
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.AxisSpecifierContext
|
1625
|
+
super().__init__(parser)
|
1626
|
+
self.copyFrom(ctx)
|
1627
|
+
|
1628
|
+
def AXISNAME(self):
|
1629
|
+
return self.getToken(KodexaSelectorParser.AXISNAME, 0)
|
1630
|
+
def AXIS_SEP(self):
|
1631
|
+
return self.getToken(KodexaSelectorParser.AXIS_SEP, 0)
|
1632
|
+
|
1633
|
+
def enterRule(self, listener:ParseTreeListener):
|
1634
|
+
if hasattr( listener, "enterFullAxis" ):
|
1635
|
+
listener.enterFullAxis(self)
|
1636
|
+
|
1637
|
+
def exitRule(self, listener:ParseTreeListener):
|
1638
|
+
if hasattr( listener, "exitFullAxis" ):
|
1639
|
+
listener.exitFullAxis(self)
|
1640
|
+
|
1641
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1642
|
+
if hasattr( visitor, "visitFullAxis" ):
|
1643
|
+
return visitor.visitFullAxis(self)
|
1644
|
+
else:
|
1645
|
+
return visitor.visitChildren(self)
|
1646
|
+
|
1647
|
+
|
1648
|
+
class AttrAxisContext(AxisSpecifierContext):
|
1649
|
+
|
1650
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.AxisSpecifierContext
|
1651
|
+
super().__init__(parser)
|
1652
|
+
self.copyFrom(ctx)
|
1653
|
+
|
1654
|
+
def ABBREV_AXIS_AT(self):
|
1655
|
+
return self.getToken(KodexaSelectorParser.ABBREV_AXIS_AT, 0)
|
1656
|
+
|
1657
|
+
def enterRule(self, listener:ParseTreeListener):
|
1658
|
+
if hasattr( listener, "enterAttrAxis" ):
|
1659
|
+
listener.enterAttrAxis(self)
|
1660
|
+
|
1661
|
+
def exitRule(self, listener:ParseTreeListener):
|
1662
|
+
if hasattr( listener, "exitAttrAxis" ):
|
1663
|
+
listener.exitAttrAxis(self)
|
1664
|
+
|
1665
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1666
|
+
if hasattr( visitor, "visitAttrAxis" ):
|
1667
|
+
return visitor.visitAttrAxis(self)
|
1668
|
+
else:
|
1669
|
+
return visitor.visitChildren(self)
|
1670
|
+
|
1671
|
+
|
1672
|
+
|
1673
|
+
def axisSpecifier(self):
|
1674
|
+
|
1675
|
+
localctx = KodexaSelectorParser.AxisSpecifierContext(self, self._ctx, self.state)
|
1676
|
+
self.enterRule(localctx, 12, self.RULE_axisSpecifier)
|
1677
|
+
try:
|
1678
|
+
self.state = 136
|
1679
|
+
self._errHandler.sync(self)
|
1680
|
+
token = self._input.LA(1)
|
1681
|
+
if token in [32]:
|
1682
|
+
localctx = KodexaSelectorParser.FullAxisContext(self, localctx)
|
1683
|
+
self.enterOuterAlt(localctx, 1)
|
1684
|
+
self.state = 133
|
1685
|
+
self.match(KodexaSelectorParser.AXISNAME)
|
1686
|
+
self.state = 134
|
1687
|
+
self.match(KodexaSelectorParser.AXIS_SEP)
|
1688
|
+
pass
|
1689
|
+
elif token in [10]:
|
1690
|
+
localctx = KodexaSelectorParser.AttrAxisContext(self, localctx)
|
1691
|
+
self.enterOuterAlt(localctx, 2)
|
1692
|
+
self.state = 135
|
1693
|
+
self.match(KodexaSelectorParser.ABBREV_AXIS_AT)
|
1694
|
+
pass
|
1695
|
+
else:
|
1696
|
+
raise NoViableAltException(self)
|
1697
|
+
|
1698
|
+
except RecognitionException as re:
|
1699
|
+
localctx.exception = re
|
1700
|
+
self._errHandler.reportError(self, re)
|
1701
|
+
self._errHandler.recover(self, re)
|
1702
|
+
finally:
|
1703
|
+
self.exitRule()
|
1704
|
+
return localctx
|
1705
|
+
|
1706
|
+
|
1707
|
+
class NodeTestContext(ParserRuleContext):
|
1708
|
+
__slots__ = 'parser'
|
1709
|
+
|
1710
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1711
|
+
super().__init__(parent, invokingState)
|
1712
|
+
self.parser = parser
|
1713
|
+
|
1714
|
+
|
1715
|
+
def getRuleIndex(self):
|
1716
|
+
return KodexaSelectorParser.RULE_nodeTest
|
1717
|
+
|
1718
|
+
|
1719
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1720
|
+
super().copyFrom(ctx)
|
1721
|
+
|
1722
|
+
|
1723
|
+
|
1724
|
+
class NameTestNodeContext(NodeTestContext):
|
1725
|
+
|
1726
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.NodeTestContext
|
1727
|
+
super().__init__(parser)
|
1728
|
+
self.copyFrom(ctx)
|
1729
|
+
|
1730
|
+
def nameTest(self):
|
1731
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NameTestContext,0)
|
1732
|
+
|
1733
|
+
|
1734
|
+
def enterRule(self, listener:ParseTreeListener):
|
1735
|
+
if hasattr( listener, "enterNameTestNode" ):
|
1736
|
+
listener.enterNameTestNode(self)
|
1737
|
+
|
1738
|
+
def exitRule(self, listener:ParseTreeListener):
|
1739
|
+
if hasattr( listener, "exitNameTestNode" ):
|
1740
|
+
listener.exitNameTestNode(self)
|
1741
|
+
|
1742
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1743
|
+
if hasattr( visitor, "visitNameTestNode" ):
|
1744
|
+
return visitor.visitNameTestNode(self)
|
1745
|
+
else:
|
1746
|
+
return visitor.visitChildren(self)
|
1747
|
+
|
1748
|
+
|
1749
|
+
|
1750
|
+
def nodeTest(self):
|
1751
|
+
|
1752
|
+
localctx = KodexaSelectorParser.NodeTestContext(self, self._ctx, self.state)
|
1753
|
+
self.enterRule(localctx, 14, self.RULE_nodeTest)
|
1754
|
+
try:
|
1755
|
+
localctx = KodexaSelectorParser.NameTestNodeContext(self, localctx)
|
1756
|
+
self.enterOuterAlt(localctx, 1)
|
1757
|
+
self.state = 138
|
1758
|
+
self.nameTest()
|
1759
|
+
except RecognitionException as re:
|
1760
|
+
localctx.exception = re
|
1761
|
+
self._errHandler.reportError(self, re)
|
1762
|
+
self._errHandler.recover(self, re)
|
1763
|
+
finally:
|
1764
|
+
self.exitRule()
|
1765
|
+
return localctx
|
1766
|
+
|
1767
|
+
|
1768
|
+
class NameTestContext(ParserRuleContext):
|
1769
|
+
__slots__ = 'parser'
|
1770
|
+
|
1771
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1772
|
+
super().__init__(parent, invokingState)
|
1773
|
+
self.parser = parser
|
1774
|
+
|
1775
|
+
|
1776
|
+
def getRuleIndex(self):
|
1777
|
+
return KodexaSelectorParser.RULE_nameTest
|
1778
|
+
|
1779
|
+
|
1780
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1781
|
+
super().copyFrom(ctx)
|
1782
|
+
|
1783
|
+
|
1784
|
+
|
1785
|
+
class AnyNameTestContext(NameTestContext):
|
1786
|
+
|
1787
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.NameTestContext
|
1788
|
+
super().__init__(parser)
|
1789
|
+
self.copyFrom(ctx)
|
1790
|
+
|
1791
|
+
def STAR(self):
|
1792
|
+
return self.getToken(KodexaSelectorParser.STAR, 0)
|
1793
|
+
|
1794
|
+
def enterRule(self, listener:ParseTreeListener):
|
1795
|
+
if hasattr( listener, "enterAnyNameTest" ):
|
1796
|
+
listener.enterAnyNameTest(self)
|
1797
|
+
|
1798
|
+
def exitRule(self, listener:ParseTreeListener):
|
1799
|
+
if hasattr( listener, "exitAnyNameTest" ):
|
1800
|
+
listener.exitAnyNameTest(self)
|
1801
|
+
|
1802
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1803
|
+
if hasattr( visitor, "visitAnyNameTest" ):
|
1804
|
+
return visitor.visitAnyNameTest(self)
|
1805
|
+
else:
|
1806
|
+
return visitor.visitChildren(self)
|
1807
|
+
|
1808
|
+
|
1809
|
+
class QNameTestContext(NameTestContext):
|
1810
|
+
|
1811
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.NameTestContext
|
1812
|
+
super().__init__(parser)
|
1813
|
+
self.copyFrom(ctx)
|
1814
|
+
|
1815
|
+
def qName(self):
|
1816
|
+
return self.getTypedRuleContext(KodexaSelectorParser.QNameContext,0)
|
1817
|
+
|
1818
|
+
|
1819
|
+
def enterRule(self, listener:ParseTreeListener):
|
1820
|
+
if hasattr( listener, "enterQNameTest" ):
|
1821
|
+
listener.enterQNameTest(self)
|
1822
|
+
|
1823
|
+
def exitRule(self, listener:ParseTreeListener):
|
1824
|
+
if hasattr( listener, "exitQNameTest" ):
|
1825
|
+
listener.exitQNameTest(self)
|
1826
|
+
|
1827
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1828
|
+
if hasattr( visitor, "visitQNameTest" ):
|
1829
|
+
return visitor.visitQNameTest(self)
|
1830
|
+
else:
|
1831
|
+
return visitor.visitChildren(self)
|
1832
|
+
|
1833
|
+
|
1834
|
+
class PrefixedAnyNameTestContext(NameTestContext):
|
1835
|
+
|
1836
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.NameTestContext
|
1837
|
+
super().__init__(parser)
|
1838
|
+
self.copyFrom(ctx)
|
1839
|
+
|
1840
|
+
def NCNAME(self):
|
1841
|
+
return self.getToken(KodexaSelectorParser.NCNAME, 0)
|
1842
|
+
def COLON(self):
|
1843
|
+
return self.getToken(KodexaSelectorParser.COLON, 0)
|
1844
|
+
def STAR(self):
|
1845
|
+
return self.getToken(KodexaSelectorParser.STAR, 0)
|
1846
|
+
|
1847
|
+
def enterRule(self, listener:ParseTreeListener):
|
1848
|
+
if hasattr( listener, "enterPrefixedAnyNameTest" ):
|
1849
|
+
listener.enterPrefixedAnyNameTest(self)
|
1850
|
+
|
1851
|
+
def exitRule(self, listener:ParseTreeListener):
|
1852
|
+
if hasattr( listener, "exitPrefixedAnyNameTest" ):
|
1853
|
+
listener.exitPrefixedAnyNameTest(self)
|
1854
|
+
|
1855
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1856
|
+
if hasattr( visitor, "visitPrefixedAnyNameTest" ):
|
1857
|
+
return visitor.visitPrefixedAnyNameTest(self)
|
1858
|
+
else:
|
1859
|
+
return visitor.visitChildren(self)
|
1860
|
+
|
1861
|
+
|
1862
|
+
|
1863
|
+
def nameTest(self):
|
1864
|
+
|
1865
|
+
localctx = KodexaSelectorParser.NameTestContext(self, self._ctx, self.state)
|
1866
|
+
self.enterRule(localctx, 16, self.RULE_nameTest)
|
1867
|
+
try:
|
1868
|
+
self.state = 145
|
1869
|
+
self._errHandler.sync(self)
|
1870
|
+
la_ = self._interp.adaptivePredict(self._input,8,self._ctx)
|
1871
|
+
if la_ == 1:
|
1872
|
+
localctx = KodexaSelectorParser.AnyNameTestContext(self, localctx)
|
1873
|
+
self.enterOuterAlt(localctx, 1)
|
1874
|
+
self.state = 140
|
1875
|
+
self.match(KodexaSelectorParser.STAR)
|
1876
|
+
pass
|
1877
|
+
|
1878
|
+
elif la_ == 2:
|
1879
|
+
localctx = KodexaSelectorParser.PrefixedAnyNameTestContext(self, localctx)
|
1880
|
+
self.enterOuterAlt(localctx, 2)
|
1881
|
+
self.state = 141
|
1882
|
+
self.match(KodexaSelectorParser.NCNAME)
|
1883
|
+
self.state = 142
|
1884
|
+
self.match(KodexaSelectorParser.COLON)
|
1885
|
+
self.state = 143
|
1886
|
+
self.match(KodexaSelectorParser.STAR)
|
1887
|
+
pass
|
1888
|
+
|
1889
|
+
elif la_ == 3:
|
1890
|
+
localctx = KodexaSelectorParser.QNameTestContext(self, localctx)
|
1891
|
+
self.enterOuterAlt(localctx, 3)
|
1892
|
+
self.state = 144
|
1893
|
+
self.qName()
|
1894
|
+
pass
|
1895
|
+
|
1896
|
+
|
1897
|
+
except RecognitionException as re:
|
1898
|
+
localctx.exception = re
|
1899
|
+
self._errHandler.reportError(self, re)
|
1900
|
+
self._errHandler.recover(self, re)
|
1901
|
+
finally:
|
1902
|
+
self.exitRule()
|
1903
|
+
return localctx
|
1904
|
+
|
1905
|
+
|
1906
|
+
class QNameContext(ParserRuleContext):
|
1907
|
+
__slots__ = 'parser'
|
1908
|
+
|
1909
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
1910
|
+
super().__init__(parent, invokingState)
|
1911
|
+
self.parser = parser
|
1912
|
+
|
1913
|
+
|
1914
|
+
def getRuleIndex(self):
|
1915
|
+
return KodexaSelectorParser.RULE_qName
|
1916
|
+
|
1917
|
+
|
1918
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
1919
|
+
super().copyFrom(ctx)
|
1920
|
+
|
1921
|
+
|
1922
|
+
|
1923
|
+
class SimpleNameContext(QNameContext):
|
1924
|
+
|
1925
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.QNameContext
|
1926
|
+
super().__init__(parser)
|
1927
|
+
self.copyFrom(ctx)
|
1928
|
+
|
1929
|
+
def NCNAME(self):
|
1930
|
+
return self.getToken(KodexaSelectorParser.NCNAME, 0)
|
1931
|
+
|
1932
|
+
def enterRule(self, listener:ParseTreeListener):
|
1933
|
+
if hasattr( listener, "enterSimpleName" ):
|
1934
|
+
listener.enterSimpleName(self)
|
1935
|
+
|
1936
|
+
def exitRule(self, listener:ParseTreeListener):
|
1937
|
+
if hasattr( listener, "exitSimpleName" ):
|
1938
|
+
listener.exitSimpleName(self)
|
1939
|
+
|
1940
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1941
|
+
if hasattr( visitor, "visitSimpleName" ):
|
1942
|
+
return visitor.visitSimpleName(self)
|
1943
|
+
else:
|
1944
|
+
return visitor.visitChildren(self)
|
1945
|
+
|
1946
|
+
|
1947
|
+
class PrefixedNameContext(QNameContext):
|
1948
|
+
|
1949
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.QNameContext
|
1950
|
+
super().__init__(parser)
|
1951
|
+
self.copyFrom(ctx)
|
1952
|
+
|
1953
|
+
def NCNAME(self, i:int=None):
|
1954
|
+
if i is None:
|
1955
|
+
return self.getTokens(KodexaSelectorParser.NCNAME)
|
1956
|
+
else:
|
1957
|
+
return self.getToken(KodexaSelectorParser.NCNAME, i)
|
1958
|
+
def COLON(self):
|
1959
|
+
return self.getToken(KodexaSelectorParser.COLON, 0)
|
1960
|
+
|
1961
|
+
def enterRule(self, listener:ParseTreeListener):
|
1962
|
+
if hasattr( listener, "enterPrefixedName" ):
|
1963
|
+
listener.enterPrefixedName(self)
|
1964
|
+
|
1965
|
+
def exitRule(self, listener:ParseTreeListener):
|
1966
|
+
if hasattr( listener, "exitPrefixedName" ):
|
1967
|
+
listener.exitPrefixedName(self)
|
1968
|
+
|
1969
|
+
def accept(self, visitor:ParseTreeVisitor):
|
1970
|
+
if hasattr( visitor, "visitPrefixedName" ):
|
1971
|
+
return visitor.visitPrefixedName(self)
|
1972
|
+
else:
|
1973
|
+
return visitor.visitChildren(self)
|
1974
|
+
|
1975
|
+
|
1976
|
+
|
1977
|
+
def qName(self):
|
1978
|
+
|
1979
|
+
localctx = KodexaSelectorParser.QNameContext(self, self._ctx, self.state)
|
1980
|
+
self.enterRule(localctx, 18, self.RULE_qName)
|
1981
|
+
try:
|
1982
|
+
self.state = 151
|
1983
|
+
self._errHandler.sync(self)
|
1984
|
+
la_ = self._interp.adaptivePredict(self._input,9,self._ctx)
|
1985
|
+
if la_ == 1:
|
1986
|
+
localctx = KodexaSelectorParser.PrefixedNameContext(self, localctx)
|
1987
|
+
self.enterOuterAlt(localctx, 1)
|
1988
|
+
self.state = 147
|
1989
|
+
self.match(KodexaSelectorParser.NCNAME)
|
1990
|
+
self.state = 148
|
1991
|
+
self.match(KodexaSelectorParser.COLON)
|
1992
|
+
self.state = 149
|
1993
|
+
self.match(KodexaSelectorParser.NCNAME)
|
1994
|
+
pass
|
1995
|
+
|
1996
|
+
elif la_ == 2:
|
1997
|
+
localctx = KodexaSelectorParser.SimpleNameContext(self, localctx)
|
1998
|
+
self.enterOuterAlt(localctx, 2)
|
1999
|
+
self.state = 150
|
2000
|
+
self.match(KodexaSelectorParser.NCNAME)
|
2001
|
+
pass
|
2002
|
+
|
2003
|
+
|
2004
|
+
except RecognitionException as re:
|
2005
|
+
localctx.exception = re
|
2006
|
+
self._errHandler.reportError(self, re)
|
2007
|
+
self._errHandler.recover(self, re)
|
2008
|
+
finally:
|
2009
|
+
self.exitRule()
|
2010
|
+
return localctx
|
2011
|
+
|
2012
|
+
|
2013
|
+
class FilterExprContext(ParserRuleContext):
|
2014
|
+
__slots__ = 'parser'
|
2015
|
+
|
2016
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2017
|
+
super().__init__(parent, invokingState)
|
2018
|
+
self.parser = parser
|
2019
|
+
|
2020
|
+
|
2021
|
+
def getRuleIndex(self):
|
2022
|
+
return KodexaSelectorParser.RULE_filterExpr
|
2023
|
+
|
2024
|
+
|
2025
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
2026
|
+
super().copyFrom(ctx)
|
2027
|
+
|
2028
|
+
|
2029
|
+
class FuncCallFilterContext(FilterExprContext):
|
2030
|
+
|
2031
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2032
|
+
super().__init__(parser)
|
2033
|
+
self.copyFrom(ctx)
|
2034
|
+
|
2035
|
+
def functionCall(self):
|
2036
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FunctionCallContext,0)
|
2037
|
+
|
2038
|
+
|
2039
|
+
def enterRule(self, listener:ParseTreeListener):
|
2040
|
+
if hasattr( listener, "enterFuncCallFilter" ):
|
2041
|
+
listener.enterFuncCallFilter(self)
|
2042
|
+
|
2043
|
+
def exitRule(self, listener:ParseTreeListener):
|
2044
|
+
if hasattr( listener, "exitFuncCallFilter" ):
|
2045
|
+
listener.exitFuncCallFilter(self)
|
2046
|
+
|
2047
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2048
|
+
if hasattr( visitor, "visitFuncCallFilter" ):
|
2049
|
+
return visitor.visitFuncCallFilter(self)
|
2050
|
+
else:
|
2051
|
+
return visitor.visitChildren(self)
|
2052
|
+
|
2053
|
+
|
2054
|
+
class BooleanFilterContext(FilterExprContext):
|
2055
|
+
|
2056
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2057
|
+
super().__init__(parser)
|
2058
|
+
self.copyFrom(ctx)
|
2059
|
+
|
2060
|
+
def booleanLiteral(self):
|
2061
|
+
return self.getTypedRuleContext(KodexaSelectorParser.BooleanLiteralContext,0)
|
2062
|
+
|
2063
|
+
|
2064
|
+
def enterRule(self, listener:ParseTreeListener):
|
2065
|
+
if hasattr( listener, "enterBooleanFilter" ):
|
2066
|
+
listener.enterBooleanFilter(self)
|
2067
|
+
|
2068
|
+
def exitRule(self, listener:ParseTreeListener):
|
2069
|
+
if hasattr( listener, "exitBooleanFilter" ):
|
2070
|
+
listener.exitBooleanFilter(self)
|
2071
|
+
|
2072
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2073
|
+
if hasattr( visitor, "visitBooleanFilter" ):
|
2074
|
+
return visitor.visitBooleanFilter(self)
|
2075
|
+
else:
|
2076
|
+
return visitor.visitChildren(self)
|
2077
|
+
|
2078
|
+
|
2079
|
+
class GroupedFilterContext(FilterExprContext):
|
2080
|
+
|
2081
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2082
|
+
super().__init__(parser)
|
2083
|
+
self.copyFrom(ctx)
|
2084
|
+
|
2085
|
+
def LPAREN(self):
|
2086
|
+
return self.getToken(KodexaSelectorParser.LPAREN, 0)
|
2087
|
+
def expr(self):
|
2088
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,0)
|
2089
|
+
|
2090
|
+
def RPAREN(self):
|
2091
|
+
return self.getToken(KodexaSelectorParser.RPAREN, 0)
|
2092
|
+
|
2093
|
+
def enterRule(self, listener:ParseTreeListener):
|
2094
|
+
if hasattr( listener, "enterGroupedFilter" ):
|
2095
|
+
listener.enterGroupedFilter(self)
|
2096
|
+
|
2097
|
+
def exitRule(self, listener:ParseTreeListener):
|
2098
|
+
if hasattr( listener, "exitGroupedFilter" ):
|
2099
|
+
listener.exitGroupedFilter(self)
|
2100
|
+
|
2101
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2102
|
+
if hasattr( visitor, "visitGroupedFilter" ):
|
2103
|
+
return visitor.visitGroupedFilter(self)
|
2104
|
+
else:
|
2105
|
+
return visitor.visitChildren(self)
|
2106
|
+
|
2107
|
+
|
2108
|
+
class PredicatedFilterContext(FilterExprContext):
|
2109
|
+
|
2110
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2111
|
+
super().__init__(parser)
|
2112
|
+
self.copyFrom(ctx)
|
2113
|
+
|
2114
|
+
def filterExpr(self):
|
2115
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FilterExprContext,0)
|
2116
|
+
|
2117
|
+
def predicate(self):
|
2118
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PredicateContext,0)
|
2119
|
+
|
2120
|
+
|
2121
|
+
def enterRule(self, listener:ParseTreeListener):
|
2122
|
+
if hasattr( listener, "enterPredicatedFilter" ):
|
2123
|
+
listener.enterPredicatedFilter(self)
|
2124
|
+
|
2125
|
+
def exitRule(self, listener:ParseTreeListener):
|
2126
|
+
if hasattr( listener, "exitPredicatedFilter" ):
|
2127
|
+
listener.exitPredicatedFilter(self)
|
2128
|
+
|
2129
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2130
|
+
if hasattr( visitor, "visitPredicatedFilter" ):
|
2131
|
+
return visitor.visitPredicatedFilter(self)
|
2132
|
+
else:
|
2133
|
+
return visitor.visitChildren(self)
|
2134
|
+
|
2135
|
+
|
2136
|
+
class NumberFilterContext(FilterExprContext):
|
2137
|
+
|
2138
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2139
|
+
super().__init__(parser)
|
2140
|
+
self.copyFrom(ctx)
|
2141
|
+
|
2142
|
+
def number(self):
|
2143
|
+
return self.getTypedRuleContext(KodexaSelectorParser.NumberContext,0)
|
2144
|
+
|
2145
|
+
|
2146
|
+
def enterRule(self, listener:ParseTreeListener):
|
2147
|
+
if hasattr( listener, "enterNumberFilter" ):
|
2148
|
+
listener.enterNumberFilter(self)
|
2149
|
+
|
2150
|
+
def exitRule(self, listener:ParseTreeListener):
|
2151
|
+
if hasattr( listener, "exitNumberFilter" ):
|
2152
|
+
listener.exitNumberFilter(self)
|
2153
|
+
|
2154
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2155
|
+
if hasattr( visitor, "visitNumberFilter" ):
|
2156
|
+
return visitor.visitNumberFilter(self)
|
2157
|
+
else:
|
2158
|
+
return visitor.visitChildren(self)
|
2159
|
+
|
2160
|
+
|
2161
|
+
class VarRefFilterContext(FilterExprContext):
|
2162
|
+
|
2163
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2164
|
+
super().__init__(parser)
|
2165
|
+
self.copyFrom(ctx)
|
2166
|
+
|
2167
|
+
def variableReference(self):
|
2168
|
+
return self.getTypedRuleContext(KodexaSelectorParser.VariableReferenceContext,0)
|
2169
|
+
|
2170
|
+
|
2171
|
+
def enterRule(self, listener:ParseTreeListener):
|
2172
|
+
if hasattr( listener, "enterVarRefFilter" ):
|
2173
|
+
listener.enterVarRefFilter(self)
|
2174
|
+
|
2175
|
+
def exitRule(self, listener:ParseTreeListener):
|
2176
|
+
if hasattr( listener, "exitVarRefFilter" ):
|
2177
|
+
listener.exitVarRefFilter(self)
|
2178
|
+
|
2179
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2180
|
+
if hasattr( visitor, "visitVarRefFilter" ):
|
2181
|
+
return visitor.visitVarRefFilter(self)
|
2182
|
+
else:
|
2183
|
+
return visitor.visitChildren(self)
|
2184
|
+
|
2185
|
+
|
2186
|
+
class LiteralFilterContext(FilterExprContext):
|
2187
|
+
|
2188
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FilterExprContext
|
2189
|
+
super().__init__(parser)
|
2190
|
+
self.copyFrom(ctx)
|
2191
|
+
|
2192
|
+
def LITERAL(self):
|
2193
|
+
return self.getToken(KodexaSelectorParser.LITERAL, 0)
|
2194
|
+
|
2195
|
+
def enterRule(self, listener:ParseTreeListener):
|
2196
|
+
if hasattr( listener, "enterLiteralFilter" ):
|
2197
|
+
listener.enterLiteralFilter(self)
|
2198
|
+
|
2199
|
+
def exitRule(self, listener:ParseTreeListener):
|
2200
|
+
if hasattr( listener, "exitLiteralFilter" ):
|
2201
|
+
listener.exitLiteralFilter(self)
|
2202
|
+
|
2203
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2204
|
+
if hasattr( visitor, "visitLiteralFilter" ):
|
2205
|
+
return visitor.visitLiteralFilter(self)
|
2206
|
+
else:
|
2207
|
+
return visitor.visitChildren(self)
|
2208
|
+
|
2209
|
+
|
2210
|
+
|
2211
|
+
def filterExpr(self, _p:int=0):
|
2212
|
+
_parentctx = self._ctx
|
2213
|
+
_parentState = self.state
|
2214
|
+
localctx = KodexaSelectorParser.FilterExprContext(self, self._ctx, _parentState)
|
2215
|
+
_prevctx = localctx
|
2216
|
+
_startState = 20
|
2217
|
+
self.enterRecursionRule(localctx, 20, self.RULE_filterExpr, _p)
|
2218
|
+
try:
|
2219
|
+
self.enterOuterAlt(localctx, 1)
|
2220
|
+
self.state = 163
|
2221
|
+
self._errHandler.sync(self)
|
2222
|
+
la_ = self._interp.adaptivePredict(self._input,10,self._ctx)
|
2223
|
+
if la_ == 1:
|
2224
|
+
localctx = KodexaSelectorParser.VarRefFilterContext(self, localctx)
|
2225
|
+
self._ctx = localctx
|
2226
|
+
_prevctx = localctx
|
2227
|
+
|
2228
|
+
self.state = 154
|
2229
|
+
self.variableReference()
|
2230
|
+
pass
|
2231
|
+
|
2232
|
+
elif la_ == 2:
|
2233
|
+
localctx = KodexaSelectorParser.LiteralFilterContext(self, localctx)
|
2234
|
+
self._ctx = localctx
|
2235
|
+
_prevctx = localctx
|
2236
|
+
self.state = 155
|
2237
|
+
self.match(KodexaSelectorParser.LITERAL)
|
2238
|
+
pass
|
2239
|
+
|
2240
|
+
elif la_ == 3:
|
2241
|
+
localctx = KodexaSelectorParser.NumberFilterContext(self, localctx)
|
2242
|
+
self._ctx = localctx
|
2243
|
+
_prevctx = localctx
|
2244
|
+
self.state = 156
|
2245
|
+
self.number()
|
2246
|
+
pass
|
2247
|
+
|
2248
|
+
elif la_ == 4:
|
2249
|
+
localctx = KodexaSelectorParser.BooleanFilterContext(self, localctx)
|
2250
|
+
self._ctx = localctx
|
2251
|
+
_prevctx = localctx
|
2252
|
+
self.state = 157
|
2253
|
+
self.booleanLiteral()
|
2254
|
+
pass
|
2255
|
+
|
2256
|
+
elif la_ == 5:
|
2257
|
+
localctx = KodexaSelectorParser.FuncCallFilterContext(self, localctx)
|
2258
|
+
self._ctx = localctx
|
2259
|
+
_prevctx = localctx
|
2260
|
+
self.state = 158
|
2261
|
+
self.functionCall()
|
2262
|
+
pass
|
2263
|
+
|
2264
|
+
elif la_ == 6:
|
2265
|
+
localctx = KodexaSelectorParser.GroupedFilterContext(self, localctx)
|
2266
|
+
self._ctx = localctx
|
2267
|
+
_prevctx = localctx
|
2268
|
+
self.state = 159
|
2269
|
+
self.match(KodexaSelectorParser.LPAREN)
|
2270
|
+
self.state = 160
|
2271
|
+
self.expr(0)
|
2272
|
+
self.state = 161
|
2273
|
+
self.match(KodexaSelectorParser.RPAREN)
|
2274
|
+
pass
|
2275
|
+
|
2276
|
+
|
2277
|
+
self._ctx.stop = self._input.LT(-1)
|
2278
|
+
self.state = 169
|
2279
|
+
self._errHandler.sync(self)
|
2280
|
+
_alt = self._interp.adaptivePredict(self._input,11,self._ctx)
|
2281
|
+
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
|
2282
|
+
if _alt==1:
|
2283
|
+
if self._parseListeners is not None:
|
2284
|
+
self.triggerExitRuleEvent()
|
2285
|
+
_prevctx = localctx
|
2286
|
+
localctx = KodexaSelectorParser.PredicatedFilterContext(self, KodexaSelectorParser.FilterExprContext(self, _parentctx, _parentState))
|
2287
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_filterExpr)
|
2288
|
+
self.state = 165
|
2289
|
+
if not self.precpred(self._ctx, 1):
|
2290
|
+
from antlr4.error.Errors import FailedPredicateException
|
2291
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 1)")
|
2292
|
+
self.state = 166
|
2293
|
+
self.predicate()
|
2294
|
+
self.state = 171
|
2295
|
+
self._errHandler.sync(self)
|
2296
|
+
_alt = self._interp.adaptivePredict(self._input,11,self._ctx)
|
2297
|
+
|
2298
|
+
except RecognitionException as re:
|
2299
|
+
localctx.exception = re
|
2300
|
+
self._errHandler.reportError(self, re)
|
2301
|
+
self._errHandler.recover(self, re)
|
2302
|
+
finally:
|
2303
|
+
self.unrollRecursionContexts(_parentctx)
|
2304
|
+
return localctx
|
2305
|
+
|
2306
|
+
|
2307
|
+
class PredicateListContext(ParserRuleContext):
|
2308
|
+
__slots__ = 'parser'
|
2309
|
+
|
2310
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2311
|
+
super().__init__(parent, invokingState)
|
2312
|
+
self.parser = parser
|
2313
|
+
|
2314
|
+
|
2315
|
+
def getRuleIndex(self):
|
2316
|
+
return KodexaSelectorParser.RULE_predicateList
|
2317
|
+
|
2318
|
+
|
2319
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
2320
|
+
super().copyFrom(ctx)
|
2321
|
+
|
2322
|
+
|
2323
|
+
class SinglePredicateContext(PredicateListContext):
|
2324
|
+
|
2325
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.PredicateListContext
|
2326
|
+
super().__init__(parser)
|
2327
|
+
self.copyFrom(ctx)
|
2328
|
+
|
2329
|
+
def predicate(self):
|
2330
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PredicateContext,0)
|
2331
|
+
|
2332
|
+
|
2333
|
+
def enterRule(self, listener:ParseTreeListener):
|
2334
|
+
if hasattr( listener, "enterSinglePredicate" ):
|
2335
|
+
listener.enterSinglePredicate(self)
|
2336
|
+
|
2337
|
+
def exitRule(self, listener:ParseTreeListener):
|
2338
|
+
if hasattr( listener, "exitSinglePredicate" ):
|
2339
|
+
listener.exitSinglePredicate(self)
|
2340
|
+
|
2341
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2342
|
+
if hasattr( visitor, "visitSinglePredicate" ):
|
2343
|
+
return visitor.visitSinglePredicate(self)
|
2344
|
+
else:
|
2345
|
+
return visitor.visitChildren(self)
|
2346
|
+
|
2347
|
+
|
2348
|
+
class MultiplePredicateContext(PredicateListContext):
|
2349
|
+
|
2350
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.PredicateListContext
|
2351
|
+
super().__init__(parser)
|
2352
|
+
self.copyFrom(ctx)
|
2353
|
+
|
2354
|
+
def predicateList(self):
|
2355
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PredicateListContext,0)
|
2356
|
+
|
2357
|
+
def predicate(self):
|
2358
|
+
return self.getTypedRuleContext(KodexaSelectorParser.PredicateContext,0)
|
2359
|
+
|
2360
|
+
|
2361
|
+
def enterRule(self, listener:ParseTreeListener):
|
2362
|
+
if hasattr( listener, "enterMultiplePredicate" ):
|
2363
|
+
listener.enterMultiplePredicate(self)
|
2364
|
+
|
2365
|
+
def exitRule(self, listener:ParseTreeListener):
|
2366
|
+
if hasattr( listener, "exitMultiplePredicate" ):
|
2367
|
+
listener.exitMultiplePredicate(self)
|
2368
|
+
|
2369
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2370
|
+
if hasattr( visitor, "visitMultiplePredicate" ):
|
2371
|
+
return visitor.visitMultiplePredicate(self)
|
2372
|
+
else:
|
2373
|
+
return visitor.visitChildren(self)
|
2374
|
+
|
2375
|
+
|
2376
|
+
|
2377
|
+
def predicateList(self, _p:int=0):
|
2378
|
+
_parentctx = self._ctx
|
2379
|
+
_parentState = self.state
|
2380
|
+
localctx = KodexaSelectorParser.PredicateListContext(self, self._ctx, _parentState)
|
2381
|
+
_prevctx = localctx
|
2382
|
+
_startState = 22
|
2383
|
+
self.enterRecursionRule(localctx, 22, self.RULE_predicateList, _p)
|
2384
|
+
try:
|
2385
|
+
self.enterOuterAlt(localctx, 1)
|
2386
|
+
localctx = KodexaSelectorParser.SinglePredicateContext(self, localctx)
|
2387
|
+
self._ctx = localctx
|
2388
|
+
_prevctx = localctx
|
2389
|
+
|
2390
|
+
self.state = 173
|
2391
|
+
self.predicate()
|
2392
|
+
self._ctx.stop = self._input.LT(-1)
|
2393
|
+
self.state = 179
|
2394
|
+
self._errHandler.sync(self)
|
2395
|
+
_alt = self._interp.adaptivePredict(self._input,12,self._ctx)
|
2396
|
+
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
|
2397
|
+
if _alt==1:
|
2398
|
+
if self._parseListeners is not None:
|
2399
|
+
self.triggerExitRuleEvent()
|
2400
|
+
_prevctx = localctx
|
2401
|
+
localctx = KodexaSelectorParser.MultiplePredicateContext(self, KodexaSelectorParser.PredicateListContext(self, _parentctx, _parentState))
|
2402
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_predicateList)
|
2403
|
+
self.state = 175
|
2404
|
+
if not self.precpred(self._ctx, 1):
|
2405
|
+
from antlr4.error.Errors import FailedPredicateException
|
2406
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 1)")
|
2407
|
+
self.state = 176
|
2408
|
+
self.predicate()
|
2409
|
+
self.state = 181
|
2410
|
+
self._errHandler.sync(self)
|
2411
|
+
_alt = self._interp.adaptivePredict(self._input,12,self._ctx)
|
2412
|
+
|
2413
|
+
except RecognitionException as re:
|
2414
|
+
localctx.exception = re
|
2415
|
+
self._errHandler.reportError(self, re)
|
2416
|
+
self._errHandler.recover(self, re)
|
2417
|
+
finally:
|
2418
|
+
self.unrollRecursionContexts(_parentctx)
|
2419
|
+
return localctx
|
2420
|
+
|
2421
|
+
|
2422
|
+
class PredicateContext(ParserRuleContext):
|
2423
|
+
__slots__ = 'parser'
|
2424
|
+
|
2425
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2426
|
+
super().__init__(parent, invokingState)
|
2427
|
+
self.parser = parser
|
2428
|
+
|
2429
|
+
|
2430
|
+
def getRuleIndex(self):
|
2431
|
+
return KodexaSelectorParser.RULE_predicate
|
2432
|
+
|
2433
|
+
|
2434
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
2435
|
+
super().copyFrom(ctx)
|
2436
|
+
|
2437
|
+
|
2438
|
+
|
2439
|
+
class ExprPredicateContext(PredicateContext):
|
2440
|
+
|
2441
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.PredicateContext
|
2442
|
+
super().__init__(parser)
|
2443
|
+
self.copyFrom(ctx)
|
2444
|
+
|
2445
|
+
def LBRACKET(self):
|
2446
|
+
return self.getToken(KodexaSelectorParser.LBRACKET, 0)
|
2447
|
+
def expr(self):
|
2448
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,0)
|
2449
|
+
|
2450
|
+
def RBRACKET(self):
|
2451
|
+
return self.getToken(KodexaSelectorParser.RBRACKET, 0)
|
2452
|
+
|
2453
|
+
def enterRule(self, listener:ParseTreeListener):
|
2454
|
+
if hasattr( listener, "enterExprPredicate" ):
|
2455
|
+
listener.enterExprPredicate(self)
|
2456
|
+
|
2457
|
+
def exitRule(self, listener:ParseTreeListener):
|
2458
|
+
if hasattr( listener, "exitExprPredicate" ):
|
2459
|
+
listener.exitExprPredicate(self)
|
2460
|
+
|
2461
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2462
|
+
if hasattr( visitor, "visitExprPredicate" ):
|
2463
|
+
return visitor.visitExprPredicate(self)
|
2464
|
+
else:
|
2465
|
+
return visitor.visitChildren(self)
|
2466
|
+
|
2467
|
+
|
2468
|
+
|
2469
|
+
def predicate(self):
|
2470
|
+
|
2471
|
+
localctx = KodexaSelectorParser.PredicateContext(self, self._ctx, self.state)
|
2472
|
+
self.enterRule(localctx, 24, self.RULE_predicate)
|
2473
|
+
try:
|
2474
|
+
localctx = KodexaSelectorParser.ExprPredicateContext(self, localctx)
|
2475
|
+
self.enterOuterAlt(localctx, 1)
|
2476
|
+
self.state = 182
|
2477
|
+
self.match(KodexaSelectorParser.LBRACKET)
|
2478
|
+
self.state = 183
|
2479
|
+
self.expr(0)
|
2480
|
+
self.state = 184
|
2481
|
+
self.match(KodexaSelectorParser.RBRACKET)
|
2482
|
+
except RecognitionException as re:
|
2483
|
+
localctx.exception = re
|
2484
|
+
self._errHandler.reportError(self, re)
|
2485
|
+
self._errHandler.recover(self, re)
|
2486
|
+
finally:
|
2487
|
+
self.exitRule()
|
2488
|
+
return localctx
|
2489
|
+
|
2490
|
+
|
2491
|
+
class VariableReferenceContext(ParserRuleContext):
|
2492
|
+
__slots__ = 'parser'
|
2493
|
+
|
2494
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2495
|
+
super().__init__(parent, invokingState)
|
2496
|
+
self.parser = parser
|
2497
|
+
|
2498
|
+
def DOLLAR(self):
|
2499
|
+
return self.getToken(KodexaSelectorParser.DOLLAR, 0)
|
2500
|
+
|
2501
|
+
def qName(self):
|
2502
|
+
return self.getTypedRuleContext(KodexaSelectorParser.QNameContext,0)
|
2503
|
+
|
2504
|
+
|
2505
|
+
def getRuleIndex(self):
|
2506
|
+
return KodexaSelectorParser.RULE_variableReference
|
2507
|
+
|
2508
|
+
def enterRule(self, listener:ParseTreeListener):
|
2509
|
+
if hasattr( listener, "enterVariableReference" ):
|
2510
|
+
listener.enterVariableReference(self)
|
2511
|
+
|
2512
|
+
def exitRule(self, listener:ParseTreeListener):
|
2513
|
+
if hasattr( listener, "exitVariableReference" ):
|
2514
|
+
listener.exitVariableReference(self)
|
2515
|
+
|
2516
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2517
|
+
if hasattr( visitor, "visitVariableReference" ):
|
2518
|
+
return visitor.visitVariableReference(self)
|
2519
|
+
else:
|
2520
|
+
return visitor.visitChildren(self)
|
2521
|
+
|
2522
|
+
|
2523
|
+
|
2524
|
+
|
2525
|
+
def variableReference(self):
|
2526
|
+
|
2527
|
+
localctx = KodexaSelectorParser.VariableReferenceContext(self, self._ctx, self.state)
|
2528
|
+
self.enterRule(localctx, 26, self.RULE_variableReference)
|
2529
|
+
try:
|
2530
|
+
self.enterOuterAlt(localctx, 1)
|
2531
|
+
self.state = 186
|
2532
|
+
self.match(KodexaSelectorParser.DOLLAR)
|
2533
|
+
self.state = 187
|
2534
|
+
self.qName()
|
2535
|
+
except RecognitionException as re:
|
2536
|
+
localctx.exception = re
|
2537
|
+
self._errHandler.reportError(self, re)
|
2538
|
+
self._errHandler.recover(self, re)
|
2539
|
+
finally:
|
2540
|
+
self.exitRule()
|
2541
|
+
return localctx
|
2542
|
+
|
2543
|
+
|
2544
|
+
class NumberContext(ParserRuleContext):
|
2545
|
+
__slots__ = 'parser'
|
2546
|
+
|
2547
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2548
|
+
super().__init__(parent, invokingState)
|
2549
|
+
self.parser = parser
|
2550
|
+
|
2551
|
+
def FLOAT(self):
|
2552
|
+
return self.getToken(KodexaSelectorParser.FLOAT, 0)
|
2553
|
+
|
2554
|
+
def INTEGER(self):
|
2555
|
+
return self.getToken(KodexaSelectorParser.INTEGER, 0)
|
2556
|
+
|
2557
|
+
def getRuleIndex(self):
|
2558
|
+
return KodexaSelectorParser.RULE_number
|
2559
|
+
|
2560
|
+
def enterRule(self, listener:ParseTreeListener):
|
2561
|
+
if hasattr( listener, "enterNumber" ):
|
2562
|
+
listener.enterNumber(self)
|
2563
|
+
|
2564
|
+
def exitRule(self, listener:ParseTreeListener):
|
2565
|
+
if hasattr( listener, "exitNumber" ):
|
2566
|
+
listener.exitNumber(self)
|
2567
|
+
|
2568
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2569
|
+
if hasattr( visitor, "visitNumber" ):
|
2570
|
+
return visitor.visitNumber(self)
|
2571
|
+
else:
|
2572
|
+
return visitor.visitChildren(self)
|
2573
|
+
|
2574
|
+
|
2575
|
+
|
2576
|
+
|
2577
|
+
def number(self):
|
2578
|
+
|
2579
|
+
localctx = KodexaSelectorParser.NumberContext(self, self._ctx, self.state)
|
2580
|
+
self.enterRule(localctx, 28, self.RULE_number)
|
2581
|
+
self._la = 0 # Token type
|
2582
|
+
try:
|
2583
|
+
self.enterOuterAlt(localctx, 1)
|
2584
|
+
self.state = 189
|
2585
|
+
_la = self._input.LA(1)
|
2586
|
+
if not(_la==28 or _la==29):
|
2587
|
+
self._errHandler.recoverInline(self)
|
2588
|
+
else:
|
2589
|
+
self._errHandler.reportMatch(self)
|
2590
|
+
self.consume()
|
2591
|
+
except RecognitionException as re:
|
2592
|
+
localctx.exception = re
|
2593
|
+
self._errHandler.reportError(self, re)
|
2594
|
+
self._errHandler.recover(self, re)
|
2595
|
+
finally:
|
2596
|
+
self.exitRule()
|
2597
|
+
return localctx
|
2598
|
+
|
2599
|
+
|
2600
|
+
class BooleanLiteralContext(ParserRuleContext):
|
2601
|
+
__slots__ = 'parser'
|
2602
|
+
|
2603
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2604
|
+
super().__init__(parent, invokingState)
|
2605
|
+
self.parser = parser
|
2606
|
+
|
2607
|
+
def TRUE(self):
|
2608
|
+
return self.getToken(KodexaSelectorParser.TRUE, 0)
|
2609
|
+
|
2610
|
+
def FALSE(self):
|
2611
|
+
return self.getToken(KodexaSelectorParser.FALSE, 0)
|
2612
|
+
|
2613
|
+
def getRuleIndex(self):
|
2614
|
+
return KodexaSelectorParser.RULE_booleanLiteral
|
2615
|
+
|
2616
|
+
def enterRule(self, listener:ParseTreeListener):
|
2617
|
+
if hasattr( listener, "enterBooleanLiteral" ):
|
2618
|
+
listener.enterBooleanLiteral(self)
|
2619
|
+
|
2620
|
+
def exitRule(self, listener:ParseTreeListener):
|
2621
|
+
if hasattr( listener, "exitBooleanLiteral" ):
|
2622
|
+
listener.exitBooleanLiteral(self)
|
2623
|
+
|
2624
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2625
|
+
if hasattr( visitor, "visitBooleanLiteral" ):
|
2626
|
+
return visitor.visitBooleanLiteral(self)
|
2627
|
+
else:
|
2628
|
+
return visitor.visitChildren(self)
|
2629
|
+
|
2630
|
+
|
2631
|
+
|
2632
|
+
|
2633
|
+
def booleanLiteral(self):
|
2634
|
+
|
2635
|
+
localctx = KodexaSelectorParser.BooleanLiteralContext(self, self._ctx, self.state)
|
2636
|
+
self.enterRule(localctx, 30, self.RULE_booleanLiteral)
|
2637
|
+
self._la = 0 # Token type
|
2638
|
+
try:
|
2639
|
+
self.enterOuterAlt(localctx, 1)
|
2640
|
+
self.state = 191
|
2641
|
+
_la = self._input.LA(1)
|
2642
|
+
if not(_la==24 or _la==25):
|
2643
|
+
self._errHandler.recoverInline(self)
|
2644
|
+
else:
|
2645
|
+
self._errHandler.reportMatch(self)
|
2646
|
+
self.consume()
|
2647
|
+
except RecognitionException as re:
|
2648
|
+
localctx.exception = re
|
2649
|
+
self._errHandler.reportError(self, re)
|
2650
|
+
self._errHandler.recover(self, re)
|
2651
|
+
finally:
|
2652
|
+
self.exitRule()
|
2653
|
+
return localctx
|
2654
|
+
|
2655
|
+
|
2656
|
+
class FunctionCallContext(ParserRuleContext):
|
2657
|
+
__slots__ = 'parser'
|
2658
|
+
|
2659
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2660
|
+
super().__init__(parent, invokingState)
|
2661
|
+
self.parser = parser
|
2662
|
+
|
2663
|
+
def funcQName(self):
|
2664
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FuncQNameContext,0)
|
2665
|
+
|
2666
|
+
|
2667
|
+
def formalArguments(self):
|
2668
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FormalArgumentsContext,0)
|
2669
|
+
|
2670
|
+
|
2671
|
+
def builtInFunctionCall(self):
|
2672
|
+
return self.getTypedRuleContext(KodexaSelectorParser.BuiltInFunctionCallContext,0)
|
2673
|
+
|
2674
|
+
|
2675
|
+
def getRuleIndex(self):
|
2676
|
+
return KodexaSelectorParser.RULE_functionCall
|
2677
|
+
|
2678
|
+
def enterRule(self, listener:ParseTreeListener):
|
2679
|
+
if hasattr( listener, "enterFunctionCall" ):
|
2680
|
+
listener.enterFunctionCall(self)
|
2681
|
+
|
2682
|
+
def exitRule(self, listener:ParseTreeListener):
|
2683
|
+
if hasattr( listener, "exitFunctionCall" ):
|
2684
|
+
listener.exitFunctionCall(self)
|
2685
|
+
|
2686
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2687
|
+
if hasattr( visitor, "visitFunctionCall" ):
|
2688
|
+
return visitor.visitFunctionCall(self)
|
2689
|
+
else:
|
2690
|
+
return visitor.visitChildren(self)
|
2691
|
+
|
2692
|
+
|
2693
|
+
|
2694
|
+
|
2695
|
+
def functionCall(self):
|
2696
|
+
|
2697
|
+
localctx = KodexaSelectorParser.FunctionCallContext(self, self._ctx, self.state)
|
2698
|
+
self.enterRule(localctx, 32, self.RULE_functionCall)
|
2699
|
+
try:
|
2700
|
+
self.state = 197
|
2701
|
+
self._errHandler.sync(self)
|
2702
|
+
token = self._input.LA(1)
|
2703
|
+
if token in [26]:
|
2704
|
+
self.enterOuterAlt(localctx, 1)
|
2705
|
+
self.state = 193
|
2706
|
+
self.funcQName()
|
2707
|
+
self.state = 194
|
2708
|
+
self.formalArguments()
|
2709
|
+
pass
|
2710
|
+
elif token in [24, 25]:
|
2711
|
+
self.enterOuterAlt(localctx, 2)
|
2712
|
+
self.state = 196
|
2713
|
+
self.builtInFunctionCall()
|
2714
|
+
pass
|
2715
|
+
else:
|
2716
|
+
raise NoViableAltException(self)
|
2717
|
+
|
2718
|
+
except RecognitionException as re:
|
2719
|
+
localctx.exception = re
|
2720
|
+
self._errHandler.reportError(self, re)
|
2721
|
+
self._errHandler.recover(self, re)
|
2722
|
+
finally:
|
2723
|
+
self.exitRule()
|
2724
|
+
return localctx
|
2725
|
+
|
2726
|
+
|
2727
|
+
class BuiltInFunctionCallContext(ParserRuleContext):
|
2728
|
+
__slots__ = 'parser'
|
2729
|
+
|
2730
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2731
|
+
super().__init__(parent, invokingState)
|
2732
|
+
self.parser = parser
|
2733
|
+
|
2734
|
+
|
2735
|
+
def getRuleIndex(self):
|
2736
|
+
return KodexaSelectorParser.RULE_builtInFunctionCall
|
2737
|
+
|
2738
|
+
|
2739
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
2740
|
+
super().copyFrom(ctx)
|
2741
|
+
|
2742
|
+
|
2743
|
+
|
2744
|
+
class TrueFunctionContext(BuiltInFunctionCallContext):
|
2745
|
+
|
2746
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.BuiltInFunctionCallContext
|
2747
|
+
super().__init__(parser)
|
2748
|
+
self.copyFrom(ctx)
|
2749
|
+
|
2750
|
+
def TRUE(self):
|
2751
|
+
return self.getToken(KodexaSelectorParser.TRUE, 0)
|
2752
|
+
def formalArguments(self):
|
2753
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FormalArgumentsContext,0)
|
2754
|
+
|
2755
|
+
|
2756
|
+
def enterRule(self, listener:ParseTreeListener):
|
2757
|
+
if hasattr( listener, "enterTrueFunction" ):
|
2758
|
+
listener.enterTrueFunction(self)
|
2759
|
+
|
2760
|
+
def exitRule(self, listener:ParseTreeListener):
|
2761
|
+
if hasattr( listener, "exitTrueFunction" ):
|
2762
|
+
listener.exitTrueFunction(self)
|
2763
|
+
|
2764
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2765
|
+
if hasattr( visitor, "visitTrueFunction" ):
|
2766
|
+
return visitor.visitTrueFunction(self)
|
2767
|
+
else:
|
2768
|
+
return visitor.visitChildren(self)
|
2769
|
+
|
2770
|
+
|
2771
|
+
class FalseFunctionContext(BuiltInFunctionCallContext):
|
2772
|
+
|
2773
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.BuiltInFunctionCallContext
|
2774
|
+
super().__init__(parser)
|
2775
|
+
self.copyFrom(ctx)
|
2776
|
+
|
2777
|
+
def FALSE(self):
|
2778
|
+
return self.getToken(KodexaSelectorParser.FALSE, 0)
|
2779
|
+
def formalArguments(self):
|
2780
|
+
return self.getTypedRuleContext(KodexaSelectorParser.FormalArgumentsContext,0)
|
2781
|
+
|
2782
|
+
|
2783
|
+
def enterRule(self, listener:ParseTreeListener):
|
2784
|
+
if hasattr( listener, "enterFalseFunction" ):
|
2785
|
+
listener.enterFalseFunction(self)
|
2786
|
+
|
2787
|
+
def exitRule(self, listener:ParseTreeListener):
|
2788
|
+
if hasattr( listener, "exitFalseFunction" ):
|
2789
|
+
listener.exitFalseFunction(self)
|
2790
|
+
|
2791
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2792
|
+
if hasattr( visitor, "visitFalseFunction" ):
|
2793
|
+
return visitor.visitFalseFunction(self)
|
2794
|
+
else:
|
2795
|
+
return visitor.visitChildren(self)
|
2796
|
+
|
2797
|
+
|
2798
|
+
|
2799
|
+
def builtInFunctionCall(self):
|
2800
|
+
|
2801
|
+
localctx = KodexaSelectorParser.BuiltInFunctionCallContext(self, self._ctx, self.state)
|
2802
|
+
self.enterRule(localctx, 34, self.RULE_builtInFunctionCall)
|
2803
|
+
try:
|
2804
|
+
self.state = 203
|
2805
|
+
self._errHandler.sync(self)
|
2806
|
+
token = self._input.LA(1)
|
2807
|
+
if token in [24]:
|
2808
|
+
localctx = KodexaSelectorParser.TrueFunctionContext(self, localctx)
|
2809
|
+
self.enterOuterAlt(localctx, 1)
|
2810
|
+
self.state = 199
|
2811
|
+
self.match(KodexaSelectorParser.TRUE)
|
2812
|
+
self.state = 200
|
2813
|
+
self.formalArguments()
|
2814
|
+
pass
|
2815
|
+
elif token in [25]:
|
2816
|
+
localctx = KodexaSelectorParser.FalseFunctionContext(self, localctx)
|
2817
|
+
self.enterOuterAlt(localctx, 2)
|
2818
|
+
self.state = 201
|
2819
|
+
self.match(KodexaSelectorParser.FALSE)
|
2820
|
+
self.state = 202
|
2821
|
+
self.formalArguments()
|
2822
|
+
pass
|
2823
|
+
else:
|
2824
|
+
raise NoViableAltException(self)
|
2825
|
+
|
2826
|
+
except RecognitionException as re:
|
2827
|
+
localctx.exception = re
|
2828
|
+
self._errHandler.reportError(self, re)
|
2829
|
+
self._errHandler.recover(self, re)
|
2830
|
+
finally:
|
2831
|
+
self.exitRule()
|
2832
|
+
return localctx
|
2833
|
+
|
2834
|
+
|
2835
|
+
class FuncQNameContext(ParserRuleContext):
|
2836
|
+
__slots__ = 'parser'
|
2837
|
+
|
2838
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2839
|
+
super().__init__(parent, invokingState)
|
2840
|
+
self.parser = parser
|
2841
|
+
|
2842
|
+
def FUNCTION_NAME(self):
|
2843
|
+
return self.getToken(KodexaSelectorParser.FUNCTION_NAME, 0)
|
2844
|
+
|
2845
|
+
def getRuleIndex(self):
|
2846
|
+
return KodexaSelectorParser.RULE_funcQName
|
2847
|
+
|
2848
|
+
def enterRule(self, listener:ParseTreeListener):
|
2849
|
+
if hasattr( listener, "enterFuncQName" ):
|
2850
|
+
listener.enterFuncQName(self)
|
2851
|
+
|
2852
|
+
def exitRule(self, listener:ParseTreeListener):
|
2853
|
+
if hasattr( listener, "exitFuncQName" ):
|
2854
|
+
listener.exitFuncQName(self)
|
2855
|
+
|
2856
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2857
|
+
if hasattr( visitor, "visitFuncQName" ):
|
2858
|
+
return visitor.visitFuncQName(self)
|
2859
|
+
else:
|
2860
|
+
return visitor.visitChildren(self)
|
2861
|
+
|
2862
|
+
|
2863
|
+
|
2864
|
+
|
2865
|
+
def funcQName(self):
|
2866
|
+
|
2867
|
+
localctx = KodexaSelectorParser.FuncQNameContext(self, self._ctx, self.state)
|
2868
|
+
self.enterRule(localctx, 36, self.RULE_funcQName)
|
2869
|
+
try:
|
2870
|
+
self.enterOuterAlt(localctx, 1)
|
2871
|
+
self.state = 205
|
2872
|
+
self.match(KodexaSelectorParser.FUNCTION_NAME)
|
2873
|
+
except RecognitionException as re:
|
2874
|
+
localctx.exception = re
|
2875
|
+
self._errHandler.reportError(self, re)
|
2876
|
+
self._errHandler.recover(self, re)
|
2877
|
+
finally:
|
2878
|
+
self.exitRule()
|
2879
|
+
return localctx
|
2880
|
+
|
2881
|
+
|
2882
|
+
class FormalArgumentsContext(ParserRuleContext):
|
2883
|
+
__slots__ = 'parser'
|
2884
|
+
|
2885
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2886
|
+
super().__init__(parent, invokingState)
|
2887
|
+
self.parser = parser
|
2888
|
+
|
2889
|
+
|
2890
|
+
def getRuleIndex(self):
|
2891
|
+
return KodexaSelectorParser.RULE_formalArguments
|
2892
|
+
|
2893
|
+
|
2894
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
2895
|
+
super().copyFrom(ctx)
|
2896
|
+
|
2897
|
+
|
2898
|
+
|
2899
|
+
class EmptyArgsContext(FormalArgumentsContext):
|
2900
|
+
|
2901
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FormalArgumentsContext
|
2902
|
+
super().__init__(parser)
|
2903
|
+
self.copyFrom(ctx)
|
2904
|
+
|
2905
|
+
def LPAREN(self):
|
2906
|
+
return self.getToken(KodexaSelectorParser.LPAREN, 0)
|
2907
|
+
def RPAREN(self):
|
2908
|
+
return self.getToken(KodexaSelectorParser.RPAREN, 0)
|
2909
|
+
|
2910
|
+
def enterRule(self, listener:ParseTreeListener):
|
2911
|
+
if hasattr( listener, "enterEmptyArgs" ):
|
2912
|
+
listener.enterEmptyArgs(self)
|
2913
|
+
|
2914
|
+
def exitRule(self, listener:ParseTreeListener):
|
2915
|
+
if hasattr( listener, "exitEmptyArgs" ):
|
2916
|
+
listener.exitEmptyArgs(self)
|
2917
|
+
|
2918
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2919
|
+
if hasattr( visitor, "visitEmptyArgs" ):
|
2920
|
+
return visitor.visitEmptyArgs(self)
|
2921
|
+
else:
|
2922
|
+
return visitor.visitChildren(self)
|
2923
|
+
|
2924
|
+
|
2925
|
+
class ArgsListContext(FormalArgumentsContext):
|
2926
|
+
|
2927
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.FormalArgumentsContext
|
2928
|
+
super().__init__(parser)
|
2929
|
+
self.copyFrom(ctx)
|
2930
|
+
|
2931
|
+
def LPAREN(self):
|
2932
|
+
return self.getToken(KodexaSelectorParser.LPAREN, 0)
|
2933
|
+
def argumentList(self):
|
2934
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ArgumentListContext,0)
|
2935
|
+
|
2936
|
+
def RPAREN(self):
|
2937
|
+
return self.getToken(KodexaSelectorParser.RPAREN, 0)
|
2938
|
+
|
2939
|
+
def enterRule(self, listener:ParseTreeListener):
|
2940
|
+
if hasattr( listener, "enterArgsList" ):
|
2941
|
+
listener.enterArgsList(self)
|
2942
|
+
|
2943
|
+
def exitRule(self, listener:ParseTreeListener):
|
2944
|
+
if hasattr( listener, "exitArgsList" ):
|
2945
|
+
listener.exitArgsList(self)
|
2946
|
+
|
2947
|
+
def accept(self, visitor:ParseTreeVisitor):
|
2948
|
+
if hasattr( visitor, "visitArgsList" ):
|
2949
|
+
return visitor.visitArgsList(self)
|
2950
|
+
else:
|
2951
|
+
return visitor.visitChildren(self)
|
2952
|
+
|
2953
|
+
|
2954
|
+
|
2955
|
+
def formalArguments(self):
|
2956
|
+
|
2957
|
+
localctx = KodexaSelectorParser.FormalArgumentsContext(self, self._ctx, self.state)
|
2958
|
+
self.enterRule(localctx, 38, self.RULE_formalArguments)
|
2959
|
+
try:
|
2960
|
+
self.state = 213
|
2961
|
+
self._errHandler.sync(self)
|
2962
|
+
la_ = self._interp.adaptivePredict(self._input,15,self._ctx)
|
2963
|
+
if la_ == 1:
|
2964
|
+
localctx = KodexaSelectorParser.EmptyArgsContext(self, localctx)
|
2965
|
+
self.enterOuterAlt(localctx, 1)
|
2966
|
+
self.state = 207
|
2967
|
+
self.match(KodexaSelectorParser.LPAREN)
|
2968
|
+
self.state = 208
|
2969
|
+
self.match(KodexaSelectorParser.RPAREN)
|
2970
|
+
pass
|
2971
|
+
|
2972
|
+
elif la_ == 2:
|
2973
|
+
localctx = KodexaSelectorParser.ArgsListContext(self, localctx)
|
2974
|
+
self.enterOuterAlt(localctx, 2)
|
2975
|
+
self.state = 209
|
2976
|
+
self.match(KodexaSelectorParser.LPAREN)
|
2977
|
+
self.state = 210
|
2978
|
+
self.argumentList(0)
|
2979
|
+
self.state = 211
|
2980
|
+
self.match(KodexaSelectorParser.RPAREN)
|
2981
|
+
pass
|
2982
|
+
|
2983
|
+
|
2984
|
+
except RecognitionException as re:
|
2985
|
+
localctx.exception = re
|
2986
|
+
self._errHandler.reportError(self, re)
|
2987
|
+
self._errHandler.recover(self, re)
|
2988
|
+
finally:
|
2989
|
+
self.exitRule()
|
2990
|
+
return localctx
|
2991
|
+
|
2992
|
+
|
2993
|
+
class ArgumentListContext(ParserRuleContext):
|
2994
|
+
__slots__ = 'parser'
|
2995
|
+
|
2996
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
2997
|
+
super().__init__(parent, invokingState)
|
2998
|
+
self.parser = parser
|
2999
|
+
|
3000
|
+
|
3001
|
+
def getRuleIndex(self):
|
3002
|
+
return KodexaSelectorParser.RULE_argumentList
|
3003
|
+
|
3004
|
+
|
3005
|
+
def copyFrom(self, ctx:ParserRuleContext):
|
3006
|
+
super().copyFrom(ctx)
|
3007
|
+
|
3008
|
+
|
3009
|
+
class SingleArgContext(ArgumentListContext):
|
3010
|
+
|
3011
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ArgumentListContext
|
3012
|
+
super().__init__(parser)
|
3013
|
+
self.copyFrom(ctx)
|
3014
|
+
|
3015
|
+
def expr(self):
|
3016
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,0)
|
3017
|
+
|
3018
|
+
|
3019
|
+
def enterRule(self, listener:ParseTreeListener):
|
3020
|
+
if hasattr( listener, "enterSingleArg" ):
|
3021
|
+
listener.enterSingleArg(self)
|
3022
|
+
|
3023
|
+
def exitRule(self, listener:ParseTreeListener):
|
3024
|
+
if hasattr( listener, "exitSingleArg" ):
|
3025
|
+
listener.exitSingleArg(self)
|
3026
|
+
|
3027
|
+
def accept(self, visitor:ParseTreeVisitor):
|
3028
|
+
if hasattr( visitor, "visitSingleArg" ):
|
3029
|
+
return visitor.visitSingleArg(self)
|
3030
|
+
else:
|
3031
|
+
return visitor.visitChildren(self)
|
3032
|
+
|
3033
|
+
|
3034
|
+
class MultipleArgsContext(ArgumentListContext):
|
3035
|
+
|
3036
|
+
def __init__(self, parser, ctx:ParserRuleContext): # actually a KodexaSelectorParser.ArgumentListContext
|
3037
|
+
super().__init__(parser)
|
3038
|
+
self.copyFrom(ctx)
|
3039
|
+
|
3040
|
+
def argumentList(self):
|
3041
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ArgumentListContext,0)
|
3042
|
+
|
3043
|
+
def COMMA(self):
|
3044
|
+
return self.getToken(KodexaSelectorParser.COMMA, 0)
|
3045
|
+
def expr(self):
|
3046
|
+
return self.getTypedRuleContext(KodexaSelectorParser.ExprContext,0)
|
3047
|
+
|
3048
|
+
|
3049
|
+
def enterRule(self, listener:ParseTreeListener):
|
3050
|
+
if hasattr( listener, "enterMultipleArgs" ):
|
3051
|
+
listener.enterMultipleArgs(self)
|
3052
|
+
|
3053
|
+
def exitRule(self, listener:ParseTreeListener):
|
3054
|
+
if hasattr( listener, "exitMultipleArgs" ):
|
3055
|
+
listener.exitMultipleArgs(self)
|
3056
|
+
|
3057
|
+
def accept(self, visitor:ParseTreeVisitor):
|
3058
|
+
if hasattr( visitor, "visitMultipleArgs" ):
|
3059
|
+
return visitor.visitMultipleArgs(self)
|
3060
|
+
else:
|
3061
|
+
return visitor.visitChildren(self)
|
3062
|
+
|
3063
|
+
|
3064
|
+
|
3065
|
+
def argumentList(self, _p:int=0):
|
3066
|
+
_parentctx = self._ctx
|
3067
|
+
_parentState = self.state
|
3068
|
+
localctx = KodexaSelectorParser.ArgumentListContext(self, self._ctx, _parentState)
|
3069
|
+
_prevctx = localctx
|
3070
|
+
_startState = 40
|
3071
|
+
self.enterRecursionRule(localctx, 40, self.RULE_argumentList, _p)
|
3072
|
+
try:
|
3073
|
+
self.enterOuterAlt(localctx, 1)
|
3074
|
+
localctx = KodexaSelectorParser.SingleArgContext(self, localctx)
|
3075
|
+
self._ctx = localctx
|
3076
|
+
_prevctx = localctx
|
3077
|
+
|
3078
|
+
self.state = 216
|
3079
|
+
self.expr(0)
|
3080
|
+
self._ctx.stop = self._input.LT(-1)
|
3081
|
+
self.state = 223
|
3082
|
+
self._errHandler.sync(self)
|
3083
|
+
_alt = self._interp.adaptivePredict(self._input,16,self._ctx)
|
3084
|
+
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
|
3085
|
+
if _alt==1:
|
3086
|
+
if self._parseListeners is not None:
|
3087
|
+
self.triggerExitRuleEvent()
|
3088
|
+
_prevctx = localctx
|
3089
|
+
localctx = KodexaSelectorParser.MultipleArgsContext(self, KodexaSelectorParser.ArgumentListContext(self, _parentctx, _parentState))
|
3090
|
+
self.pushNewRecursionContext(localctx, _startState, self.RULE_argumentList)
|
3091
|
+
self.state = 218
|
3092
|
+
if not self.precpred(self._ctx, 1):
|
3093
|
+
from antlr4.error.Errors import FailedPredicateException
|
3094
|
+
raise FailedPredicateException(self, "self.precpred(self._ctx, 1)")
|
3095
|
+
self.state = 219
|
3096
|
+
self.match(KodexaSelectorParser.COMMA)
|
3097
|
+
self.state = 220
|
3098
|
+
self.expr(0)
|
3099
|
+
self.state = 225
|
3100
|
+
self._errHandler.sync(self)
|
3101
|
+
_alt = self._interp.adaptivePredict(self._input,16,self._ctx)
|
3102
|
+
|
3103
|
+
except RecognitionException as re:
|
3104
|
+
localctx.exception = re
|
3105
|
+
self._errHandler.reportError(self, re)
|
3106
|
+
self._errHandler.recover(self, re)
|
3107
|
+
finally:
|
3108
|
+
self.unrollRecursionContexts(_parentctx)
|
3109
|
+
return localctx
|
3110
|
+
|
3111
|
+
|
3112
|
+
class PathSepContext(ParserRuleContext):
|
3113
|
+
__slots__ = 'parser'
|
3114
|
+
|
3115
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
3116
|
+
super().__init__(parent, invokingState)
|
3117
|
+
self.parser = parser
|
3118
|
+
|
3119
|
+
def PATH_SEP(self):
|
3120
|
+
return self.getToken(KodexaSelectorParser.PATH_SEP, 0)
|
3121
|
+
|
3122
|
+
def ABBREV_PATH_SEP(self):
|
3123
|
+
return self.getToken(KodexaSelectorParser.ABBREV_PATH_SEP, 0)
|
3124
|
+
|
3125
|
+
def getRuleIndex(self):
|
3126
|
+
return KodexaSelectorParser.RULE_pathSep
|
3127
|
+
|
3128
|
+
def enterRule(self, listener:ParseTreeListener):
|
3129
|
+
if hasattr( listener, "enterPathSep" ):
|
3130
|
+
listener.enterPathSep(self)
|
3131
|
+
|
3132
|
+
def exitRule(self, listener:ParseTreeListener):
|
3133
|
+
if hasattr( listener, "exitPathSep" ):
|
3134
|
+
listener.exitPathSep(self)
|
3135
|
+
|
3136
|
+
def accept(self, visitor:ParseTreeVisitor):
|
3137
|
+
if hasattr( visitor, "visitPathSep" ):
|
3138
|
+
return visitor.visitPathSep(self)
|
3139
|
+
else:
|
3140
|
+
return visitor.visitChildren(self)
|
3141
|
+
|
3142
|
+
|
3143
|
+
|
3144
|
+
|
3145
|
+
def pathSep(self):
|
3146
|
+
|
3147
|
+
localctx = KodexaSelectorParser.PathSepContext(self, self._ctx, self.state)
|
3148
|
+
self.enterRule(localctx, 42, self.RULE_pathSep)
|
3149
|
+
self._la = 0 # Token type
|
3150
|
+
try:
|
3151
|
+
self.enterOuterAlt(localctx, 1)
|
3152
|
+
self.state = 226
|
3153
|
+
_la = self._input.LA(1)
|
3154
|
+
if not(_la==5 or _la==6):
|
3155
|
+
self._errHandler.recoverInline(self)
|
3156
|
+
else:
|
3157
|
+
self._errHandler.reportMatch(self)
|
3158
|
+
self.consume()
|
3159
|
+
except RecognitionException as re:
|
3160
|
+
localctx.exception = re
|
3161
|
+
self._errHandler.reportError(self, re)
|
3162
|
+
self._errHandler.recover(self, re)
|
3163
|
+
finally:
|
3164
|
+
self.exitRule()
|
3165
|
+
return localctx
|
3166
|
+
|
3167
|
+
|
3168
|
+
|
3169
|
+
def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int):
|
3170
|
+
if self._predicates == None:
|
3171
|
+
self._predicates = dict()
|
3172
|
+
self._predicates[1] = self.expr_sempred
|
3173
|
+
self._predicates[4] = self.relativeLocationPath_sempred
|
3174
|
+
self._predicates[10] = self.filterExpr_sempred
|
3175
|
+
self._predicates[11] = self.predicateList_sempred
|
3176
|
+
self._predicates[20] = self.argumentList_sempred
|
3177
|
+
pred = self._predicates.get(ruleIndex, None)
|
3178
|
+
if pred is None:
|
3179
|
+
raise Exception("No predicate with index:" + str(ruleIndex))
|
3180
|
+
else:
|
3181
|
+
return pred(localctx, predIndex)
|
3182
|
+
|
3183
|
+
def expr_sempred(self, localctx:ExprContext, predIndex:int):
|
3184
|
+
if predIndex == 0:
|
3185
|
+
return self.precpred(self._ctx, 19)
|
3186
|
+
|
3187
|
+
|
3188
|
+
if predIndex == 1:
|
3189
|
+
return self.precpred(self._ctx, 18)
|
3190
|
+
|
3191
|
+
|
3192
|
+
if predIndex == 2:
|
3193
|
+
return self.precpred(self._ctx, 17)
|
3194
|
+
|
3195
|
+
|
3196
|
+
if predIndex == 3:
|
3197
|
+
return self.precpred(self._ctx, 16)
|
3198
|
+
|
3199
|
+
|
3200
|
+
if predIndex == 4:
|
3201
|
+
return self.precpred(self._ctx, 15)
|
3202
|
+
|
3203
|
+
|
3204
|
+
if predIndex == 5:
|
3205
|
+
return self.precpred(self._ctx, 14)
|
3206
|
+
|
3207
|
+
|
3208
|
+
if predIndex == 6:
|
3209
|
+
return self.precpred(self._ctx, 13)
|
3210
|
+
|
3211
|
+
|
3212
|
+
if predIndex == 7:
|
3213
|
+
return self.precpred(self._ctx, 12)
|
3214
|
+
|
3215
|
+
|
3216
|
+
if predIndex == 8:
|
3217
|
+
return self.precpred(self._ctx, 10)
|
3218
|
+
|
3219
|
+
|
3220
|
+
def relativeLocationPath_sempred(self, localctx:RelativeLocationPathContext, predIndex:int):
|
3221
|
+
if predIndex == 9:
|
3222
|
+
return self.precpred(self._ctx, 2)
|
3223
|
+
|
3224
|
+
|
3225
|
+
if predIndex == 10:
|
3226
|
+
return self.precpred(self._ctx, 1)
|
3227
|
+
|
3228
|
+
|
3229
|
+
def filterExpr_sempred(self, localctx:FilterExprContext, predIndex:int):
|
3230
|
+
if predIndex == 11:
|
3231
|
+
return self.precpred(self._ctx, 1)
|
3232
|
+
|
3233
|
+
|
3234
|
+
def predicateList_sempred(self, localctx:PredicateListContext, predIndex:int):
|
3235
|
+
if predIndex == 12:
|
3236
|
+
return self.precpred(self._ctx, 1)
|
3237
|
+
|
3238
|
+
|
3239
|
+
def argumentList_sempred(self, localctx:ArgumentListContext, predIndex:int):
|
3240
|
+
if predIndex == 13:
|
3241
|
+
return self.precpred(self._ctx, 1)
|
3242
|
+
|
3243
|
+
|
3244
|
+
|
3245
|
+
|
3246
|
+
|