@opra/common 0.17.1 → 0.17.3

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.
Files changed (62) hide show
  1. package/browser.js +12220 -0
  2. package/cjs/document/data-type/complex-type.js +1 -1
  3. package/cjs/document/resource/collection.js +13 -7
  4. package/cjs/filter/antlr/OpraFilterLexer.js +209 -238
  5. package/cjs/filter/antlr/OpraFilterListener.js +1 -1
  6. package/cjs/filter/antlr/OpraFilterParser.js +795 -1482
  7. package/cjs/filter/antlr/OpraFilterVisitor.js +1 -1
  8. package/cjs/filter/ast/expressions/logical-expression.js +4 -0
  9. package/cjs/filter/ast/expressions/{parentheses-expression.js → negative-expression.js} +3 -3
  10. package/cjs/filter/ast/expressions/parenthesized-expression.js +14 -0
  11. package/cjs/filter/ast/index.js +2 -1
  12. package/cjs/filter/build.js +1 -1
  13. package/cjs/filter/filter-tree-visitor.js +44 -66
  14. package/cjs/filter/index.js +2 -5
  15. package/cjs/filter/opra-filter.ns.js +8 -0
  16. package/cjs/filter/parse.js +5 -6
  17. package/cjs/http/codecs/filter-codec.js +2 -2
  18. package/cjs/http/http-message.host.js +6 -6
  19. package/cjs/http/http-request-message.js +3 -3
  20. package/cjs/http/http-response-message.js +2 -2
  21. package/cjs/http/multipart/batch-multipart.js +1 -1
  22. package/cjs/i18n/i18n.js +1 -1
  23. package/esm/document/data-type/complex-type.js +1 -1
  24. package/esm/document/resource/collection.js +14 -8
  25. package/esm/filter/antlr/OpraFilterLexer.js +209 -238
  26. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  27. package/esm/filter/antlr/OpraFilterParser.js +775 -1448
  28. package/esm/filter/antlr/OpraFilterVisitor.js +1 -1
  29. package/esm/filter/ast/expressions/logical-expression.js +4 -0
  30. package/esm/filter/ast/expressions/{parentheses-expression.js → negative-expression.js} +1 -1
  31. package/esm/filter/ast/expressions/parenthesized-expression.js +10 -0
  32. package/esm/filter/ast/index.js +2 -1
  33. package/esm/filter/build.js +2 -2
  34. package/esm/filter/filter-tree-visitor.js +46 -68
  35. package/esm/filter/index.js +1 -5
  36. package/esm/filter/opra-filter.ns.js +5 -0
  37. package/esm/filter/parse.js +3 -4
  38. package/esm/http/codecs/filter-codec.js +2 -2
  39. package/esm/http/http-message.host.js +1 -1
  40. package/esm/http/http-request-message.js +1 -1
  41. package/esm/http/http-response-message.js +1 -1
  42. package/esm/http/multipart/batch-multipart.js +1 -1
  43. package/esm/i18n/i18n.js +1 -1
  44. package/package.json +30 -18
  45. package/types/document/resource/collection.d.ts +2 -2
  46. package/types/filter/antlr/OpraFilterLexer.d.ts +9 -22
  47. package/types/filter/antlr/OpraFilterListener.d.ts +89 -217
  48. package/types/filter/antlr/OpraFilterParser.d.ts +91 -206
  49. package/types/filter/antlr/OpraFilterVisitor.d.ts +49 -124
  50. package/types/filter/ast/expressions/{parentheses-expression.d.ts → negative-expression.d.ts} +1 -1
  51. package/types/filter/ast/expressions/parenthesized-expression.d.ts +6 -0
  52. package/types/filter/ast/index.d.ts +2 -1
  53. package/types/filter/build.d.ts +2 -2
  54. package/types/filter/filter-tree-visitor.d.ts +10 -11
  55. package/types/filter/index.d.ts +1 -5
  56. package/types/filter/opra-filter.ns.d.ts +5 -0
  57. package/types/filter/parse.d.ts +1 -1
  58. package/types/http/http-message.host.d.ts +1 -1
  59. package/types/i18n/i18n.d.ts +2 -2
  60. package/types/i18n/translate.d.ts +1 -1
  61. package/types/schema/data-type/complex-type.interface.d.ts +1 -1
  62. package/types/schema/resource/endpoint.interface.d.ts +2 -2
@@ -1,7 +1,6 @@
1
- /* eslint-disable */
2
- // Generated from ./src/filter/antlr/OpraFilter.g4 by ANTLR 4.11.2-SNAPSHOT
3
- // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols,SpellCheckingInspection
4
- // @ts-nocheck
1
+ /* eslint-disable camelcase,no-bitwise */
2
+ // Generated from ./src/filter/antlr/OpraFilter.g4 by ANTLR 4.12.0
3
+ // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols
5
4
  import { ATN, ATNDeserializer, DFA, FailedPredicateException, NoViableAltException, Parser, ParserATNSimulator, ParserRuleContext, PredictionContextCache, RecognitionException, Token } from '@browsery/antlr4';
6
5
  export default class OpraFilterParser extends Parser {
7
6
  get grammarFileName() {
@@ -28,14 +27,14 @@ export default class OpraFilterParser extends Parser {
28
27
  }
29
28
  // @RuleVersion(0)
30
29
  root() {
31
- let localctx = new RootContext(this, this._ctx, this.state);
30
+ const localctx = new RootContext(this, this._ctx, this.state);
32
31
  this.enterRule(localctx, 0, OpraFilterParser.RULE_root);
33
32
  try {
34
33
  this.enterOuterAlt(localctx, 1);
35
34
  {
36
- this.state = 44;
35
+ this.state = 34;
37
36
  this.expression(0);
38
- this.state = 45;
37
+ this.state = 35;
39
38
  this.match(OpraFilterParser.EOF);
40
39
  }
41
40
  }
@@ -59,50 +58,31 @@ export default class OpraFilterParser extends Parser {
59
58
  if (_p === undefined) {
60
59
  _p = 0;
61
60
  }
62
- let _parentctx = this._ctx;
63
- let _parentState = this.state;
61
+ const _parentctx = this._ctx;
62
+ const _parentState = this.state;
64
63
  let localctx = new ExpressionContext(this, this._ctx, _parentState);
65
64
  let _prevctx = localctx;
66
- let _startState = 2;
65
+ const _startState = 2;
67
66
  this.enterRecursionRule(localctx, 2, OpraFilterParser.RULE_expression, _p);
68
67
  let _la;
69
68
  try {
70
69
  let _alt;
71
70
  this.enterOuterAlt(localctx, 1);
72
71
  {
73
- this.state = 67;
72
+ this.state = 48;
74
73
  this._errHandler.sync(this);
75
74
  switch (this._input.LA(1)) {
76
- case 23:
77
- case 42:
78
- case 43:
79
- case 44:
80
- case 45:
81
- case 46:
82
- case 47:
83
- case 48:
84
- case 49:
85
- case 50:
86
- case 51:
87
- case 52:
88
- {
89
- localctx = new TermExpressionContext(this, localctx);
90
- this._ctx = localctx;
91
- _prevctx = localctx;
92
- this.state = 48;
93
- this.term();
94
- }
95
- break;
96
- case 36:
97
- case 37:
75
+ case 35:
98
76
  {
99
- localctx = new PolarityExpressionContext(this, localctx);
77
+ localctx = new ComparisonExpressionContext(this, localctx);
100
78
  this._ctx = localctx;
101
79
  _prevctx = localctx;
102
- this.state = 49;
103
- this.polarOp();
104
- this.state = 50;
105
- this.expression(6);
80
+ this.state = 38;
81
+ localctx._left = this.comparisonLeft();
82
+ this.state = 39;
83
+ localctx._operator = this.comparisonOperator();
84
+ this.state = 40;
85
+ localctx._right = this.comparisonRight();
106
86
  }
107
87
  break;
108
88
  case 1:
@@ -110,108 +90,65 @@ export default class OpraFilterParser extends Parser {
110
90
  localctx = new ParenthesizedExpressionContext(this, localctx);
111
91
  this._ctx = localctx;
112
92
  _prevctx = localctx;
113
- this.state = 52;
93
+ this.state = 42;
114
94
  this.match(OpraFilterParser.T__0);
115
- this.state = 53;
116
- this.expression(0);
117
- this.state = 54;
95
+ this.state = 43;
96
+ this.parenthesizedItem();
97
+ this.state = 44;
118
98
  this.match(OpraFilterParser.T__1);
119
99
  }
120
100
  break;
121
101
  case 3:
102
+ case 4:
122
103
  {
123
- localctx = new ArrayExpressionContext(this, localctx);
104
+ localctx = new NegativeExpressionContext(this, localctx);
124
105
  this._ctx = localctx;
125
106
  _prevctx = localctx;
126
- this.state = 56;
127
- this.match(OpraFilterParser.T__2);
128
- this.state = 57;
129
- this.expression(0);
130
- this.state = 62;
131
- this._errHandler.sync(this);
107
+ this.state = 46;
132
108
  _la = this._input.LA(1);
133
- while (_la === 4) {
134
- {
135
- {
136
- this.state = 58;
137
- this.match(OpraFilterParser.T__3);
138
- this.state = 59;
139
- this.expression(0);
140
- }
141
- }
142
- this.state = 64;
143
- this._errHandler.sync(this);
144
- _la = this._input.LA(1);
109
+ if (!(_la === 3 || _la === 4)) {
110
+ this._errHandler.recoverInline(this);
111
+ }
112
+ else {
113
+ this._errHandler.reportMatch(this);
114
+ this.consume();
145
115
  }
146
- this.state = 65;
147
- this.match(OpraFilterParser.T__4);
116
+ this.state = 47;
117
+ this.expression(1);
148
118
  }
149
119
  break;
150
120
  default:
151
121
  throw new NoViableAltException(this);
152
122
  }
153
123
  this._ctx.stop = this._input.LT(-1);
154
- this.state = 83;
124
+ this.state = 56;
155
125
  this._errHandler.sync(this);
156
- _alt = this._interp.adaptivePredict(this._input, 3, this._ctx);
126
+ _alt = this._interp.adaptivePredict(this._input, 1, this._ctx);
157
127
  while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
158
128
  if (_alt === 1) {
159
129
  if (this._parseListeners != null) {
160
130
  this.triggerExitRuleEvent();
161
131
  }
132
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
162
133
  _prevctx = localctx;
163
134
  {
164
- this.state = 81;
165
- this._errHandler.sync(this);
166
- switch (this._interp.adaptivePredict(this._input, 2, this._ctx)) {
167
- case 1:
168
- {
169
- localctx = new ArithmeticExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState));
170
- this.pushNewRecursionContext(localctx, _startState, OpraFilterParser.RULE_expression);
171
- this.state = 69;
172
- if (!(this.precpred(this._ctx, 5))) {
173
- throw this.createFailedPredicateException("this.precpred(this._ctx, 5)");
174
- }
175
- this.state = 70;
176
- this.arthOp();
177
- this.state = 71;
178
- this.expression(6);
179
- }
180
- break;
181
- case 2:
182
- {
183
- localctx = new ComparisonExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState));
184
- this.pushNewRecursionContext(localctx, _startState, OpraFilterParser.RULE_expression);
185
- this.state = 73;
186
- if (!(this.precpred(this._ctx, 4))) {
187
- throw this.createFailedPredicateException("this.precpred(this._ctx, 4)");
188
- }
189
- this.state = 74;
190
- this.compOp();
191
- this.state = 75;
192
- this.expression(5);
193
- }
194
- break;
195
- case 3:
196
- {
197
- localctx = new LogicalExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState));
198
- this.pushNewRecursionContext(localctx, _startState, OpraFilterParser.RULE_expression);
199
- this.state = 77;
200
- if (!(this.precpred(this._ctx, 3))) {
201
- throw this.createFailedPredicateException("this.precpred(this._ctx, 3)");
202
- }
203
- this.state = 78;
204
- this.logOp();
205
- this.state = 79;
206
- this.expression(4);
207
- }
208
- break;
135
+ {
136
+ localctx = new LogicalExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState));
137
+ this.pushNewRecursionContext(localctx, _startState, OpraFilterParser.RULE_expression);
138
+ this.state = 50;
139
+ if (!(this.precpred(this._ctx, 3))) {
140
+ throw this.createFailedPredicateException("this.precpred(this._ctx, 3)");
141
+ }
142
+ this.state = 51;
143
+ localctx._op = this.logicalOperator();
144
+ this.state = 52;
145
+ this.expression(4);
209
146
  }
210
147
  }
211
148
  }
212
- this.state = 85;
149
+ this.state = 58;
213
150
  this._errHandler.sync(this);
214
- _alt = this._interp.adaptivePredict(this._input, 3, this._ctx);
151
+ _alt = this._interp.adaptivePredict(this._input, 1, this._ctx);
215
152
  }
216
153
  }
217
154
  }
@@ -231,46 +168,195 @@ export default class OpraFilterParser extends Parser {
231
168
  return localctx;
232
169
  }
233
170
  // @RuleVersion(0)
234
- term() {
235
- let localctx = new TermContext(this, this._ctx, this.state);
236
- this.enterRule(localctx, 4, OpraFilterParser.RULE_term);
171
+ comparisonLeft() {
172
+ const localctx = new ComparisonLeftContext(this, this._ctx, this.state);
173
+ this.enterRule(localctx, 4, OpraFilterParser.RULE_comparisonLeft);
174
+ try {
175
+ this.enterOuterAlt(localctx, 1);
176
+ {
177
+ this.state = 59;
178
+ this.qualifiedIdentifier();
179
+ }
180
+ }
181
+ catch (re) {
182
+ if (re instanceof RecognitionException) {
183
+ localctx.exception = re;
184
+ this._errHandler.reportError(this, re);
185
+ this._errHandler.recover(this, re);
186
+ }
187
+ else {
188
+ throw re;
189
+ }
190
+ }
191
+ finally {
192
+ this.exitRule();
193
+ }
194
+ return localctx;
195
+ }
196
+ // @RuleVersion(0)
197
+ comparisonRight() {
198
+ const localctx = new ComparisonRightContext(this, this._ctx, this.state);
199
+ this.enterRule(localctx, 6, OpraFilterParser.RULE_comparisonRight);
237
200
  try {
238
- this.state = 89;
201
+ this.state = 65;
239
202
  this._errHandler.sync(this);
240
203
  switch (this._input.LA(1)) {
204
+ case 10:
205
+ case 11:
206
+ case 12:
207
+ case 13:
208
+ case 14:
209
+ case 37:
210
+ case 38:
211
+ case 39:
212
+ case 40:
241
213
  case 42:
242
- case 43:
243
- case 44:
244
- case 45:
245
- case 46:
246
- case 47:
247
- case 48:
248
- case 49:
249
- case 51:
250
- case 52:
251
- localctx = new LiteralTermContext(this, localctx);
252
214
  this.enterOuterAlt(localctx, 1);
253
215
  {
254
- this.state = 86;
255
- this.literal();
216
+ this.state = 61;
217
+ this.value();
256
218
  }
257
219
  break;
258
- case 50:
259
- localctx = new QualifiedIdentifierTermContext(this, localctx);
220
+ case 35:
260
221
  this.enterOuterAlt(localctx, 2);
261
222
  {
262
- this.state = 87;
223
+ this.state = 62;
263
224
  this.qualifiedIdentifier();
264
225
  }
265
226
  break;
266
- case 23:
267
- localctx = new ExternalConstantTermContext(this, localctx);
227
+ case 6:
268
228
  this.enterOuterAlt(localctx, 3);
269
229
  {
270
- this.state = 88;
230
+ this.state = 63;
271
231
  this.externalConstant();
272
232
  }
273
233
  break;
234
+ case 7:
235
+ this.enterOuterAlt(localctx, 4);
236
+ {
237
+ this.state = 64;
238
+ this.arrayValue();
239
+ }
240
+ break;
241
+ default:
242
+ throw new NoViableAltException(this);
243
+ }
244
+ }
245
+ catch (re) {
246
+ if (re instanceof RecognitionException) {
247
+ localctx.exception = re;
248
+ this._errHandler.reportError(this, re);
249
+ this._errHandler.recover(this, re);
250
+ }
251
+ else {
252
+ throw re;
253
+ }
254
+ }
255
+ finally {
256
+ this.exitRule();
257
+ }
258
+ return localctx;
259
+ }
260
+ // @RuleVersion(0)
261
+ parenthesizedItem() {
262
+ const localctx = new ParenthesizedItemContext(this, this._ctx, this.state);
263
+ this.enterRule(localctx, 8, OpraFilterParser.RULE_parenthesizedItem);
264
+ try {
265
+ this.enterOuterAlt(localctx, 1);
266
+ {
267
+ this.state = 67;
268
+ this.expression(0);
269
+ }
270
+ }
271
+ catch (re) {
272
+ if (re instanceof RecognitionException) {
273
+ localctx.exception = re;
274
+ this._errHandler.reportError(this, re);
275
+ this._errHandler.recover(this, re);
276
+ }
277
+ else {
278
+ throw re;
279
+ }
280
+ }
281
+ finally {
282
+ this.exitRule();
283
+ }
284
+ return localctx;
285
+ }
286
+ // @RuleVersion(0)
287
+ value() {
288
+ let localctx = new ValueContext(this, this._ctx, this.state);
289
+ this.enterRule(localctx, 10, OpraFilterParser.RULE_value);
290
+ try {
291
+ this.state = 77;
292
+ this._errHandler.sync(this);
293
+ switch (this._input.LA(1)) {
294
+ case 40:
295
+ localctx = new NumberLiteralContext(this, localctx);
296
+ this.enterOuterAlt(localctx, 1);
297
+ {
298
+ this.state = 69;
299
+ this.match(OpraFilterParser.NUMBER);
300
+ }
301
+ break;
302
+ case 13:
303
+ case 14:
304
+ localctx = new InfinityLiteralContext(this, localctx);
305
+ this.enterOuterAlt(localctx, 2);
306
+ {
307
+ this.state = 70;
308
+ this.infinity();
309
+ }
310
+ break;
311
+ case 10:
312
+ case 11:
313
+ localctx = new BooleanLiteralContext(this, localctx);
314
+ this.enterOuterAlt(localctx, 3);
315
+ {
316
+ this.state = 71;
317
+ this.boolean_();
318
+ }
319
+ break;
320
+ case 12:
321
+ localctx = new NullLiteralContext(this, localctx);
322
+ this.enterOuterAlt(localctx, 4);
323
+ {
324
+ this.state = 72;
325
+ this.null_();
326
+ }
327
+ break;
328
+ case 37:
329
+ localctx = new DateLiteralContext(this, localctx);
330
+ this.enterOuterAlt(localctx, 5);
331
+ {
332
+ this.state = 73;
333
+ this.match(OpraFilterParser.DATE);
334
+ }
335
+ break;
336
+ case 38:
337
+ localctx = new DateTimeLiteralContext(this, localctx);
338
+ this.enterOuterAlt(localctx, 6);
339
+ {
340
+ this.state = 74;
341
+ this.match(OpraFilterParser.DATETIME);
342
+ }
343
+ break;
344
+ case 39:
345
+ localctx = new TimeLiteralContext(this, localctx);
346
+ this.enterOuterAlt(localctx, 7);
347
+ {
348
+ this.state = 75;
349
+ this.match(OpraFilterParser.TIME);
350
+ }
351
+ break;
352
+ case 42:
353
+ localctx = new StringLiteralContext(this, localctx);
354
+ this.enterOuterAlt(localctx, 8);
355
+ {
356
+ this.state = 76;
357
+ this.match(OpraFilterParser.STRING);
358
+ }
359
+ break;
274
360
  default:
275
361
  throw new NoViableAltException(this);
276
362
  }
@@ -291,14 +377,33 @@ export default class OpraFilterParser extends Parser {
291
377
  return localctx;
292
378
  }
293
379
  // @RuleVersion(0)
294
- invocable() {
295
- let localctx = new InvocableContext(this, this._ctx, this.state);
296
- this.enterRule(localctx, 6, OpraFilterParser.RULE_invocable);
380
+ qualifiedIdentifier() {
381
+ const localctx = new QualifiedIdentifierContext(this, this._ctx, this.state);
382
+ this.enterRule(localctx, 12, OpraFilterParser.RULE_qualifiedIdentifier);
297
383
  try {
384
+ let _alt;
298
385
  this.enterOuterAlt(localctx, 1);
299
386
  {
300
- this.state = 91;
301
- this.function_();
387
+ this.state = 84;
388
+ this._errHandler.sync(this);
389
+ _alt = this._interp.adaptivePredict(this._input, 4, this._ctx);
390
+ while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
391
+ if (_alt === 1) {
392
+ {
393
+ {
394
+ this.state = 79;
395
+ this.identifier();
396
+ this.state = 80;
397
+ this.match(OpraFilterParser.T__4);
398
+ }
399
+ }
400
+ }
401
+ this.state = 86;
402
+ this._errHandler.sync(this);
403
+ _alt = this._interp.adaptivePredict(this._input, 4, this._ctx);
404
+ }
405
+ this.state = 87;
406
+ this.identifier();
302
407
  }
303
408
  }
304
409
  catch (re) {
@@ -317,14 +422,15 @@ export default class OpraFilterParser extends Parser {
317
422
  return localctx;
318
423
  }
319
424
  // @RuleVersion(0)
320
- invocation() {
321
- let localctx = new InvocationContext(this, this._ctx, this.state);
322
- this.enterRule(localctx, 8, OpraFilterParser.RULE_invocation);
425
+ externalConstant() {
426
+ const localctx = new ExternalConstantContext(this, this._ctx, this.state);
427
+ this.enterRule(localctx, 14, OpraFilterParser.RULE_externalConstant);
323
428
  try {
324
- localctx = new MemberInvocationContext(this, localctx);
325
429
  this.enterOuterAlt(localctx, 1);
326
430
  {
327
- this.state = 93;
431
+ this.state = 89;
432
+ this.match(OpraFilterParser.T__5);
433
+ this.state = 90;
328
434
  this.identifier();
329
435
  }
330
436
  }
@@ -344,31 +450,14 @@ export default class OpraFilterParser extends Parser {
344
450
  return localctx;
345
451
  }
346
452
  // @RuleVersion(0)
347
- indexer() {
348
- let localctx = new IndexerContext(this, this._ctx, this.state);
349
- this.enterRule(localctx, 10, OpraFilterParser.RULE_indexer);
453
+ identifier() {
454
+ const localctx = new IdentifierContext(this, this._ctx, this.state);
455
+ this.enterRule(localctx, 16, OpraFilterParser.RULE_identifier);
350
456
  try {
351
- this.state = 97;
352
- this._errHandler.sync(this);
353
- switch (this._input.LA(1)) {
354
- case 50:
355
- localctx = new MemberIndexContext(this, localctx);
356
- this.enterOuterAlt(localctx, 1);
357
- {
358
- this.state = 95;
359
- this.identifier();
360
- }
361
- break;
362
- case 53:
363
- localctx = new NumberIndexContext(this, localctx);
364
- this.enterOuterAlt(localctx, 2);
365
- {
366
- this.state = 96;
367
- this.match(OpraFilterParser.INTEGER);
368
- }
369
- break;
370
- default:
371
- throw new NoViableAltException(this);
457
+ this.enterOuterAlt(localctx, 1);
458
+ {
459
+ this.state = 92;
460
+ this.match(OpraFilterParser.IDENTIFIER);
372
461
  }
373
462
  }
374
463
  catch (re) {
@@ -387,28 +476,35 @@ export default class OpraFilterParser extends Parser {
387
476
  return localctx;
388
477
  }
389
478
  // @RuleVersion(0)
390
- function_() {
391
- let localctx = new FunctionContext(this, this._ctx, this.state);
392
- this.enterRule(localctx, 12, OpraFilterParser.RULE_function);
479
+ arrayValue() {
480
+ const localctx = new ArrayValueContext(this, this._ctx, this.state);
481
+ this.enterRule(localctx, 18, OpraFilterParser.RULE_arrayValue);
393
482
  let _la;
394
483
  try {
395
484
  this.enterOuterAlt(localctx, 1);
396
485
  {
397
- this.state = 99;
398
- this.identifier();
486
+ this.state = 94;
487
+ this.match(OpraFilterParser.T__6);
488
+ this.state = 95;
489
+ this.value();
399
490
  this.state = 100;
400
- this.match(OpraFilterParser.T__0);
401
- this.state = 102;
402
491
  this._errHandler.sync(this);
403
492
  _la = this._input.LA(1);
404
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 8388618) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 131011) !== 0)) {
493
+ while (_la === 8) {
405
494
  {
406
- this.state = 101;
407
- this.paramList();
495
+ {
496
+ this.state = 96;
497
+ this.match(OpraFilterParser.T__7);
498
+ this.state = 97;
499
+ this.value();
500
+ }
408
501
  }
502
+ this.state = 102;
503
+ this._errHandler.sync(this);
504
+ _la = this._input.LA(1);
409
505
  }
410
- this.state = 104;
411
- this.match(OpraFilterParser.T__1);
506
+ this.state = 103;
507
+ this.match(OpraFilterParser.T__8);
412
508
  }
413
509
  }
414
510
  catch (re) {
@@ -427,30 +523,21 @@ export default class OpraFilterParser extends Parser {
427
523
  return localctx;
428
524
  }
429
525
  // @RuleVersion(0)
430
- paramList() {
431
- let localctx = new ParamListContext(this, this._ctx, this.state);
432
- this.enterRule(localctx, 14, OpraFilterParser.RULE_paramList);
526
+ boolean_() {
527
+ const localctx = new BooleanContext(this, this._ctx, this.state);
528
+ this.enterRule(localctx, 20, OpraFilterParser.RULE_boolean);
433
529
  let _la;
434
530
  try {
435
531
  this.enterOuterAlt(localctx, 1);
436
532
  {
437
- this.state = 106;
438
- this.expression(0);
439
- this.state = 111;
440
- this._errHandler.sync(this);
533
+ this.state = 105;
441
534
  _la = this._input.LA(1);
442
- while (_la === 4) {
443
- {
444
- {
445
- this.state = 107;
446
- this.match(OpraFilterParser.T__3);
447
- this.state = 108;
448
- this.expression(0);
449
- }
450
- }
451
- this.state = 113;
452
- this._errHandler.sync(this);
453
- _la = this._input.LA(1);
535
+ if (!(_la === 10 || _la === 11)) {
536
+ this._errHandler.recoverInline(this);
537
+ }
538
+ else {
539
+ this._errHandler.reportMatch(this);
540
+ this.consume();
454
541
  }
455
542
  }
456
543
  }
@@ -470,50 +557,14 @@ export default class OpraFilterParser extends Parser {
470
557
  return localctx;
471
558
  }
472
559
  // @RuleVersion(0)
473
- unit() {
474
- let localctx = new UnitContext(this, this._ctx, this.state);
475
- this.enterRule(localctx, 16, OpraFilterParser.RULE_unit);
560
+ null_() {
561
+ const localctx = new NullContext(this, this._ctx, this.state);
562
+ this.enterRule(localctx, 22, OpraFilterParser.RULE_null);
476
563
  try {
477
- this.state = 117;
478
- this._errHandler.sync(this);
479
- switch (this._input.LA(1)) {
480
- case 6:
481
- case 7:
482
- case 8:
483
- case 9:
484
- case 10:
485
- case 11:
486
- case 12:
487
- case 13:
488
- this.enterOuterAlt(localctx, 1);
489
- {
490
- this.state = 114;
491
- this.dateTimePrecision();
492
- }
493
- break;
494
- case 14:
495
- case 15:
496
- case 16:
497
- case 17:
498
- case 18:
499
- case 19:
500
- case 20:
501
- case 21:
502
- this.enterOuterAlt(localctx, 2);
503
- {
504
- this.state = 115;
505
- this.pluralDateTimePrecision();
506
- }
507
- break;
508
- case 51:
509
- this.enterOuterAlt(localctx, 3);
510
- {
511
- this.state = 116;
512
- this.match(OpraFilterParser.STRING);
513
- }
514
- break;
515
- default:
516
- throw new NoViableAltException(this);
564
+ this.enterOuterAlt(localctx, 1);
565
+ {
566
+ this.state = 107;
567
+ this.match(OpraFilterParser.T__11);
517
568
  }
518
569
  }
519
570
  catch (re) {
@@ -532,16 +583,16 @@ export default class OpraFilterParser extends Parser {
532
583
  return localctx;
533
584
  }
534
585
  // @RuleVersion(0)
535
- dateTimePrecision() {
536
- let localctx = new DateTimePrecisionContext(this, this._ctx, this.state);
537
- this.enterRule(localctx, 18, OpraFilterParser.RULE_dateTimePrecision);
586
+ infinity() {
587
+ const localctx = new InfinityContext(this, this._ctx, this.state);
588
+ this.enterRule(localctx, 24, OpraFilterParser.RULE_infinity);
538
589
  let _la;
539
590
  try {
540
591
  this.enterOuterAlt(localctx, 1);
541
592
  {
542
- this.state = 119;
593
+ this.state = 109;
543
594
  _la = this._input.LA(1);
544
- if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 16320) !== 0))) {
595
+ if (!(_la === 13 || _la === 14)) {
545
596
  this._errHandler.recoverInline(this);
546
597
  }
547
598
  else {
@@ -566,16 +617,16 @@ export default class OpraFilterParser extends Parser {
566
617
  return localctx;
567
618
  }
568
619
  // @RuleVersion(0)
569
- pluralDateTimePrecision() {
570
- let localctx = new PluralDateTimePrecisionContext(this, this._ctx, this.state);
571
- this.enterRule(localctx, 20, OpraFilterParser.RULE_pluralDateTimePrecision);
620
+ arithmeticOperator() {
621
+ const localctx = new ArithmeticOperatorContext(this, this._ctx, this.state);
622
+ this.enterRule(localctx, 26, OpraFilterParser.RULE_arithmeticOperator);
572
623
  let _la;
573
624
  try {
574
625
  this.enterOuterAlt(localctx, 1);
575
626
  {
576
- this.state = 121;
627
+ this.state = 111;
577
628
  _la = this._input.LA(1);
578
- if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 4177920) !== 0))) {
629
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 491520) !== 0))) {
579
630
  this._errHandler.recoverInline(this);
580
631
  }
581
632
  else {
@@ -600,33 +651,22 @@ export default class OpraFilterParser extends Parser {
600
651
  return localctx;
601
652
  }
602
653
  // @RuleVersion(0)
603
- qualifiedIdentifier() {
604
- let localctx = new QualifiedIdentifierContext(this, this._ctx, this.state);
605
- this.enterRule(localctx, 22, OpraFilterParser.RULE_qualifiedIdentifier);
654
+ comparisonOperator() {
655
+ const localctx = new ComparisonOperatorContext(this, this._ctx, this.state);
656
+ this.enterRule(localctx, 28, OpraFilterParser.RULE_comparisonOperator);
657
+ let _la;
606
658
  try {
607
- let _alt;
608
659
  this.enterOuterAlt(localctx, 1);
609
660
  {
610
- this.state = 128;
611
- this._errHandler.sync(this);
612
- _alt = this._interp.adaptivePredict(this._input, 9, this._ctx);
613
- while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
614
- if (_alt === 1) {
615
- {
616
- {
617
- this.state = 123;
618
- this.identifier();
619
- this.state = 124;
620
- this.match(OpraFilterParser.T__21);
621
- }
622
- }
623
- }
624
- this.state = 130;
625
- this._errHandler.sync(this);
626
- _alt = this._interp.adaptivePredict(this._input, 9, this._ctx);
661
+ this.state = 113;
662
+ _la = this._input.LA(1);
663
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 2146959360) !== 0))) {
664
+ this._errHandler.recoverInline(this);
665
+ }
666
+ else {
667
+ this._errHandler.reportMatch(this);
668
+ this.consume();
627
669
  }
628
- this.state = 131;
629
- this.identifier();
630
670
  }
631
671
  }
632
672
  catch (re) {
@@ -645,18 +685,16 @@ export default class OpraFilterParser extends Parser {
645
685
  return localctx;
646
686
  }
647
687
  // @RuleVersion(0)
648
- externalConstant() {
649
- let localctx = new ExternalConstantContext(this, this._ctx, this.state);
650
- this.enterRule(localctx, 24, OpraFilterParser.RULE_externalConstant);
688
+ logicalOperator() {
689
+ const localctx = new LogicalOperatorContext(this, this._ctx, this.state);
690
+ this.enterRule(localctx, 30, OpraFilterParser.RULE_logicalOperator);
651
691
  let _la;
652
692
  try {
653
693
  this.enterOuterAlt(localctx, 1);
654
694
  {
655
- this.state = 133;
656
- this.match(OpraFilterParser.T__22);
657
- this.state = 134;
695
+ this.state = 115;
658
696
  _la = this._input.LA(1);
659
- if (!(_la === 50 || _la === 51)) {
697
+ if (!(((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & 15) !== 0))) {
660
698
  this._errHandler.recoverInline(this);
661
699
  }
662
700
  else {
@@ -681,14 +719,14 @@ export default class OpraFilterParser extends Parser {
681
719
  return localctx;
682
720
  }
683
721
  // @RuleVersion(0)
684
- identifier() {
685
- let localctx = new IdentifierContext(this, this._ctx, this.state);
686
- this.enterRule(localctx, 26, OpraFilterParser.RULE_identifier);
722
+ polarityOperator() {
723
+ const localctx = new PolarityOperatorContext(this, this._ctx, this.state);
724
+ this.enterRule(localctx, 32, OpraFilterParser.RULE_polarityOperator);
687
725
  try {
688
726
  this.enterOuterAlt(localctx, 1);
689
727
  {
690
- this.state = 136;
691
- this.match(OpraFilterParser.IDENTIFIER);
728
+ this.state = 117;
729
+ this.match(OpraFilterParser.POLAR_OP);
692
730
  }
693
731
  }
694
732
  catch (re) {
@@ -706,1300 +744,456 @@ export default class OpraFilterParser extends Parser {
706
744
  }
707
745
  return localctx;
708
746
  }
709
- // @RuleVersion(0)
710
- literal() {
711
- let localctx = new LiteralContext(this, this._ctx, this.state);
712
- this.enterRule(localctx, 28, OpraFilterParser.RULE_literal);
713
- try {
714
- this.state = 146;
715
- this._errHandler.sync(this);
716
- switch (this._input.LA(1)) {
717
- case 52:
718
- localctx = new NumberLiteralContext(this, localctx);
719
- this.enterOuterAlt(localctx, 1);
720
- {
721
- this.state = 138;
722
- this.match(OpraFilterParser.NUMBER);
723
- }
724
- break;
725
- case 45:
726
- case 46:
727
- localctx = new InfinityLiteralContext(this, localctx);
728
- this.enterOuterAlt(localctx, 2);
729
- {
730
- this.state = 139;
731
- this.infinity();
732
- }
733
- break;
734
- case 42:
735
- case 43:
736
- localctx = new BooleanLiteralContext(this, localctx);
737
- this.enterOuterAlt(localctx, 3);
738
- {
739
- this.state = 140;
740
- this.boolean_();
741
- }
742
- break;
743
- case 44:
744
- localctx = new NullLiteralContext(this, localctx);
745
- this.enterOuterAlt(localctx, 4);
746
- {
747
- this.state = 141;
748
- this.null_();
749
- }
750
- break;
751
- case 47:
752
- localctx = new DateLiteralContext(this, localctx);
753
- this.enterOuterAlt(localctx, 5);
754
- {
755
- this.state = 142;
756
- this.match(OpraFilterParser.DATE);
757
- }
758
- break;
759
- case 48:
760
- localctx = new DateTimeLiteralContext(this, localctx);
761
- this.enterOuterAlt(localctx, 6);
762
- {
763
- this.state = 143;
764
- this.match(OpraFilterParser.DATETIME);
765
- }
766
- break;
767
- case 49:
768
- localctx = new TimeLiteralContext(this, localctx);
769
- this.enterOuterAlt(localctx, 7);
770
- {
771
- this.state = 144;
772
- this.match(OpraFilterParser.TIME);
773
- }
774
- break;
775
- case 51:
776
- localctx = new StringLiteralContext(this, localctx);
777
- this.enterOuterAlt(localctx, 8);
778
- {
779
- this.state = 145;
780
- this.match(OpraFilterParser.STRING);
781
- }
782
- break;
783
- default:
784
- throw new NoViableAltException(this);
785
- }
786
- }
787
- catch (re) {
788
- if (re instanceof RecognitionException) {
789
- localctx.exception = re;
790
- this._errHandler.reportError(this, re);
791
- this._errHandler.recover(this, re);
792
- }
793
- else {
794
- throw re;
795
- }
796
- }
797
- finally {
798
- this.exitRule();
799
- }
800
- return localctx;
801
- }
802
- // @RuleVersion(0)
803
- compOp() {
804
- let localctx = new CompOpContext(this, this._ctx, this.state);
805
- this.enterRule(localctx, 30, OpraFilterParser.RULE_compOp);
806
- let _la;
807
- try {
808
- this.enterOuterAlt(localctx, 1);
809
- {
810
- this.state = 148;
811
- _la = this._input.LA(1);
812
- if (!(((((_la - 24)) & ~0x1F) === 0 && ((1 << (_la - 24)) & 4095) !== 0))) {
813
- this._errHandler.recoverInline(this);
814
- }
815
- else {
816
- this._errHandler.reportMatch(this);
817
- this.consume();
818
- }
819
- }
820
- }
821
- catch (re) {
822
- if (re instanceof RecognitionException) {
823
- localctx.exception = re;
824
- this._errHandler.reportError(this, re);
825
- this._errHandler.recover(this, re);
826
- }
827
- else {
828
- throw re;
829
- }
830
- }
831
- finally {
832
- this.exitRule();
833
- }
834
- return localctx;
835
- }
836
- // @RuleVersion(0)
837
- arthOp() {
838
- let localctx = new ArthOpContext(this, this._ctx, this.state);
839
- this.enterRule(localctx, 32, OpraFilterParser.RULE_arthOp);
840
- let _la;
841
- try {
842
- this.enterOuterAlt(localctx, 1);
843
- {
844
- this.state = 150;
845
- _la = this._input.LA(1);
846
- if (!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 15) !== 0))) {
847
- this._errHandler.recoverInline(this);
848
- }
849
- else {
850
- this._errHandler.reportMatch(this);
851
- this.consume();
852
- }
853
- }
854
- }
855
- catch (re) {
856
- if (re instanceof RecognitionException) {
857
- localctx.exception = re;
858
- this._errHandler.reportError(this, re);
859
- this._errHandler.recover(this, re);
860
- }
861
- else {
862
- throw re;
863
- }
864
- }
865
- finally {
866
- this.exitRule();
867
- }
868
- return localctx;
869
- }
870
- // @RuleVersion(0)
871
- polarOp() {
872
- let localctx = new PolarOpContext(this, this._ctx, this.state);
873
- this.enterRule(localctx, 34, OpraFilterParser.RULE_polarOp);
874
- let _la;
875
- try {
876
- this.enterOuterAlt(localctx, 1);
877
- {
878
- this.state = 152;
879
- _la = this._input.LA(1);
880
- if (!(_la === 36 || _la === 37)) {
881
- this._errHandler.recoverInline(this);
882
- }
883
- else {
884
- this._errHandler.reportMatch(this);
885
- this.consume();
886
- }
887
- }
888
- }
889
- catch (re) {
890
- if (re instanceof RecognitionException) {
891
- localctx.exception = re;
892
- this._errHandler.reportError(this, re);
893
- this._errHandler.recover(this, re);
894
- }
895
- else {
896
- throw re;
897
- }
898
- }
899
- finally {
900
- this.exitRule();
901
- }
902
- return localctx;
903
- }
904
- // @RuleVersion(0)
905
- logOp() {
906
- let localctx = new LogOpContext(this, this._ctx, this.state);
907
- this.enterRule(localctx, 36, OpraFilterParser.RULE_logOp);
908
- let _la;
909
- try {
910
- this.enterOuterAlt(localctx, 1);
911
- {
912
- this.state = 154;
913
- _la = this._input.LA(1);
914
- if (!(_la === 40 || _la === 41)) {
915
- this._errHandler.recoverInline(this);
916
- }
917
- else {
918
- this._errHandler.reportMatch(this);
919
- this.consume();
920
- }
921
- }
922
- }
923
- catch (re) {
924
- if (re instanceof RecognitionException) {
925
- localctx.exception = re;
926
- this._errHandler.reportError(this, re);
927
- this._errHandler.recover(this, re);
928
- }
929
- else {
930
- throw re;
931
- }
932
- }
933
- finally {
934
- this.exitRule();
935
- }
936
- return localctx;
937
- }
938
- // @RuleVersion(0)
939
- boolean_() {
940
- let localctx = new BooleanContext(this, this._ctx, this.state);
941
- this.enterRule(localctx, 38, OpraFilterParser.RULE_boolean);
942
- let _la;
943
- try {
944
- this.enterOuterAlt(localctx, 1);
945
- {
946
- this.state = 156;
947
- _la = this._input.LA(1);
948
- if (!(_la === 42 || _la === 43)) {
949
- this._errHandler.recoverInline(this);
950
- }
951
- else {
952
- this._errHandler.reportMatch(this);
953
- this.consume();
954
- }
955
- }
956
- }
957
- catch (re) {
958
- if (re instanceof RecognitionException) {
959
- localctx.exception = re;
960
- this._errHandler.reportError(this, re);
961
- this._errHandler.recover(this, re);
962
- }
963
- else {
964
- throw re;
965
- }
966
- }
967
- finally {
968
- this.exitRule();
969
- }
970
- return localctx;
971
- }
972
- // @RuleVersion(0)
973
- null_() {
974
- let localctx = new NullContext(this, this._ctx, this.state);
975
- this.enterRule(localctx, 40, OpraFilterParser.RULE_null);
976
- try {
977
- this.enterOuterAlt(localctx, 1);
978
- {
979
- this.state = 158;
980
- this.match(OpraFilterParser.T__43);
981
- }
982
- }
983
- catch (re) {
984
- if (re instanceof RecognitionException) {
985
- localctx.exception = re;
986
- this._errHandler.reportError(this, re);
987
- this._errHandler.recover(this, re);
988
- }
989
- else {
990
- throw re;
991
- }
992
- }
993
- finally {
994
- this.exitRule();
995
- }
996
- return localctx;
997
- }
998
- // @RuleVersion(0)
999
- infinity() {
1000
- let localctx = new InfinityContext(this, this._ctx, this.state);
1001
- this.enterRule(localctx, 42, OpraFilterParser.RULE_infinity);
1002
- let _la;
1003
- try {
1004
- this.enterOuterAlt(localctx, 1);
1005
- {
1006
- this.state = 160;
1007
- _la = this._input.LA(1);
1008
- if (!(_la === 45 || _la === 46)) {
1009
- this._errHandler.recoverInline(this);
1010
- }
1011
- else {
1012
- this._errHandler.reportMatch(this);
1013
- this.consume();
1014
- }
1015
- }
1016
- }
1017
- catch (re) {
1018
- if (re instanceof RecognitionException) {
1019
- localctx.exception = re;
1020
- this._errHandler.reportError(this, re);
1021
- this._errHandler.recover(this, re);
1022
- }
1023
- else {
1024
- throw re;
1025
- }
1026
- }
1027
- finally {
1028
- this.exitRule();
1029
- }
1030
- return localctx;
1031
- }
1032
- sempred(localctx, ruleIndex, predIndex) {
1033
- switch (ruleIndex) {
1034
- case 1:
1035
- return this.expression_sempred(localctx, predIndex);
1036
- }
1037
- return true;
1038
- }
1039
- expression_sempred(localctx, predIndex) {
1040
- switch (predIndex) {
1041
- case 0:
1042
- return this.precpred(this._ctx, 5);
1043
- case 1:
1044
- return this.precpred(this._ctx, 4);
1045
- case 2:
1046
- return this.precpred(this._ctx, 3);
1047
- }
1048
- return true;
1049
- }
1050
- static get _ATN() {
1051
- if (!OpraFilterParser.__ATN) {
1052
- OpraFilterParser.__ATN = new ATNDeserializer().deserialize(OpraFilterParser._serializedATN);
1053
- }
1054
- return OpraFilterParser.__ATN;
1055
- }
1056
- }
1057
- OpraFilterParser.T__0 = 1;
1058
- OpraFilterParser.T__1 = 2;
1059
- OpraFilterParser.T__2 = 3;
1060
- OpraFilterParser.T__3 = 4;
1061
- OpraFilterParser.T__4 = 5;
1062
- OpraFilterParser.T__5 = 6;
1063
- OpraFilterParser.T__6 = 7;
1064
- OpraFilterParser.T__7 = 8;
1065
- OpraFilterParser.T__8 = 9;
1066
- OpraFilterParser.T__9 = 10;
1067
- OpraFilterParser.T__10 = 11;
1068
- OpraFilterParser.T__11 = 12;
1069
- OpraFilterParser.T__12 = 13;
1070
- OpraFilterParser.T__13 = 14;
1071
- OpraFilterParser.T__14 = 15;
1072
- OpraFilterParser.T__15 = 16;
1073
- OpraFilterParser.T__16 = 17;
1074
- OpraFilterParser.T__17 = 18;
1075
- OpraFilterParser.T__18 = 19;
1076
- OpraFilterParser.T__19 = 20;
1077
- OpraFilterParser.T__20 = 21;
1078
- OpraFilterParser.T__21 = 22;
1079
- OpraFilterParser.T__22 = 23;
1080
- OpraFilterParser.T__23 = 24;
1081
- OpraFilterParser.T__24 = 25;
1082
- OpraFilterParser.T__25 = 26;
1083
- OpraFilterParser.T__26 = 27;
1084
- OpraFilterParser.T__27 = 28;
1085
- OpraFilterParser.T__28 = 29;
1086
- OpraFilterParser.T__29 = 30;
1087
- OpraFilterParser.T__30 = 31;
1088
- OpraFilterParser.T__31 = 32;
1089
- OpraFilterParser.T__32 = 33;
1090
- OpraFilterParser.T__33 = 34;
1091
- OpraFilterParser.T__34 = 35;
1092
- OpraFilterParser.T__35 = 36;
1093
- OpraFilterParser.T__36 = 37;
1094
- OpraFilterParser.T__37 = 38;
1095
- OpraFilterParser.T__38 = 39;
1096
- OpraFilterParser.T__39 = 40;
1097
- OpraFilterParser.T__40 = 41;
1098
- OpraFilterParser.T__41 = 42;
1099
- OpraFilterParser.T__42 = 43;
1100
- OpraFilterParser.T__43 = 44;
1101
- OpraFilterParser.T__44 = 45;
1102
- OpraFilterParser.T__45 = 46;
1103
- OpraFilterParser.DATE = 47;
1104
- OpraFilterParser.DATETIME = 48;
1105
- OpraFilterParser.TIME = 49;
1106
- OpraFilterParser.IDENTIFIER = 50;
1107
- OpraFilterParser.STRING = 51;
1108
- OpraFilterParser.NUMBER = 52;
1109
- OpraFilterParser.INTEGER = 53;
1110
- OpraFilterParser.WHITESPACE = 54;
1111
- OpraFilterParser.COMMENT = 55;
1112
- OpraFilterParser.LINE_COMMENT = 56;
1113
- OpraFilterParser.EOF = Token.EOF;
1114
- OpraFilterParser.RULE_root = 0;
1115
- OpraFilterParser.RULE_expression = 1;
1116
- OpraFilterParser.RULE_term = 2;
1117
- OpraFilterParser.RULE_invocable = 3;
1118
- OpraFilterParser.RULE_invocation = 4;
1119
- OpraFilterParser.RULE_indexer = 5;
1120
- OpraFilterParser.RULE_function = 6;
1121
- OpraFilterParser.RULE_paramList = 7;
1122
- OpraFilterParser.RULE_unit = 8;
1123
- OpraFilterParser.RULE_dateTimePrecision = 9;
1124
- OpraFilterParser.RULE_pluralDateTimePrecision = 10;
1125
- OpraFilterParser.RULE_qualifiedIdentifier = 11;
1126
- OpraFilterParser.RULE_externalConstant = 12;
1127
- OpraFilterParser.RULE_identifier = 13;
1128
- OpraFilterParser.RULE_literal = 14;
1129
- OpraFilterParser.RULE_compOp = 15;
1130
- OpraFilterParser.RULE_arthOp = 16;
1131
- OpraFilterParser.RULE_polarOp = 17;
1132
- OpraFilterParser.RULE_logOp = 18;
1133
- OpraFilterParser.RULE_boolean = 19;
1134
- OpraFilterParser.RULE_null = 20;
1135
- OpraFilterParser.RULE_infinity = 21;
1136
- OpraFilterParser.literalNames = [null, "'('", "')'", "'['",
1137
- "','", "']'", "'year'",
1138
- "'month'", "'week'",
1139
- "'day'", "'hour'", "'minute'",
1140
- "'second'", "'millisecond'",
1141
- "'years'", "'months'",
1142
- "'weeks'", "'days'",
1143
- "'hours'", "'minutes'",
1144
- "'seconds'", "'milliseconds'",
1145
- "'.'", "'@'", "'<='",
1146
- "'<'", "'>'", "'>='",
1147
- "'='", "'!='", "'in'",
1148
- "'!in'", "'like'", "'!like'",
1149
- "'ilike'", "'!ilike'",
1150
- "'+'", "'-'", "'*'",
1151
- "'/'", "'and'", "'or'",
1152
- "'true'", "'false'",
1153
- "'null'", "'Infinity'",
1154
- "'infinity'"];
1155
- OpraFilterParser.symbolicNames = [null, null, null, null,
1156
- null, null, null, null,
1157
- null, null, null, null,
1158
- null, null, null, null,
1159
- null, null, null, null,
1160
- null, null, null, null,
1161
- null, null, null, null,
1162
- null, null, null, null,
1163
- null, null, null, null,
1164
- null, null, null, null,
1165
- null, null, null, null,
1166
- null, null, null, "DATE",
1167
- "DATETIME", "TIME",
1168
- "IDENTIFIER", "STRING",
1169
- "NUMBER", "INTEGER",
1170
- "WHITESPACE", "COMMENT",
1171
- "LINE_COMMENT"];
1172
- // tslint:disable:no-trailing-whitespace
1173
- OpraFilterParser.ruleNames = [
1174
- "root", "expression", "term", "invocable", "invocation", "indexer", "function",
1175
- "paramList", "unit", "dateTimePrecision", "pluralDateTimePrecision", "qualifiedIdentifier",
1176
- "externalConstant", "identifier", "literal", "compOp", "arthOp", "polarOp",
1177
- "logOp", "boolean", "null", "infinity",
1178
- ];
1179
- OpraFilterParser._serializedATN = [4, 1, 56, 163, 2, 0, 7, 0, 2,
1180
- 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2,
1181
- 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17,
1182
- 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1183
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 61, 8, 1, 10, 1, 12, 1, 64, 9, 1, 1, 1, 1,
1184
- 1, 3, 1, 68, 8, 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, 5, 1, 82, 8, 1,
1185
- 10, 1, 12, 1, 85, 9, 1, 1, 2, 1, 2, 1, 2, 3, 2, 90, 8, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 3, 5, 98,
1186
- 8, 5, 1, 6, 1, 6, 1, 6, 3, 6, 103, 8, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 5, 7, 110, 8, 7, 10, 7, 12, 7, 113,
1187
- 9, 7, 1, 8, 1, 8, 1, 8, 3, 8, 118, 8, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 5, 11, 127, 8,
1188
- 11, 10, 11, 12, 11, 130, 9, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1,
1189
- 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 147, 8, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17,
1190
- 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 0, 1, 2, 22, 0, 2, 4, 6, 8, 10, 12, 14,
1191
- 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 0, 9, 1, 0, 6, 13, 1, 0, 14, 21, 1, 0, 50,
1192
- 51, 1, 0, 24, 35, 1, 0, 36, 39, 1, 0, 36, 37, 1, 0, 40, 41, 1, 0, 42, 43, 1, 0, 45, 46, 162, 0, 44,
1193
- 1, 0, 0, 0, 2, 67, 1, 0, 0, 0, 4, 89, 1, 0, 0, 0, 6, 91, 1, 0, 0, 0, 8, 93, 1, 0, 0, 0, 10, 97, 1, 0, 0,
1194
- 0, 12, 99, 1, 0, 0, 0, 14, 106, 1, 0, 0, 0, 16, 117, 1, 0, 0, 0, 18, 119, 1, 0, 0, 0, 20, 121, 1, 0,
1195
- 0, 0, 22, 128, 1, 0, 0, 0, 24, 133, 1, 0, 0, 0, 26, 136, 1, 0, 0, 0, 28, 146, 1, 0, 0, 0, 30, 148,
1196
- 1, 0, 0, 0, 32, 150, 1, 0, 0, 0, 34, 152, 1, 0, 0, 0, 36, 154, 1, 0, 0, 0, 38, 156, 1, 0, 0, 0, 40,
1197
- 158, 1, 0, 0, 0, 42, 160, 1, 0, 0, 0, 44, 45, 3, 2, 1, 0, 45, 46, 5, 0, 0, 1, 46, 1, 1, 0, 0, 0, 47,
1198
- 48, 6, 1, -1, 0, 48, 68, 3, 4, 2, 0, 49, 50, 3, 34, 17, 0, 50, 51, 3, 2, 1, 6, 51, 68, 1, 0, 0, 0, 52,
1199
- 53, 5, 1, 0, 0, 53, 54, 3, 2, 1, 0, 54, 55, 5, 2, 0, 0, 55, 68, 1, 0, 0, 0, 56, 57, 5, 3, 0, 0, 57, 62,
1200
- 3, 2, 1, 0, 58, 59, 5, 4, 0, 0, 59, 61, 3, 2, 1, 0, 60, 58, 1, 0, 0, 0, 61, 64, 1, 0, 0, 0, 62, 60, 1,
1201
- 0, 0, 0, 62, 63, 1, 0, 0, 0, 63, 65, 1, 0, 0, 0, 64, 62, 1, 0, 0, 0, 65, 66, 5, 5, 0, 0, 66, 68, 1, 0,
1202
- 0, 0, 67, 47, 1, 0, 0, 0, 67, 49, 1, 0, 0, 0, 67, 52, 1, 0, 0, 0, 67, 56, 1, 0, 0, 0, 68, 83, 1, 0, 0,
1203
- 0, 69, 70, 10, 5, 0, 0, 70, 71, 3, 32, 16, 0, 71, 72, 3, 2, 1, 6, 72, 82, 1, 0, 0, 0, 73, 74, 10, 4,
1204
- 0, 0, 74, 75, 3, 30, 15, 0, 75, 76, 3, 2, 1, 5, 76, 82, 1, 0, 0, 0, 77, 78, 10, 3, 0, 0, 78, 79, 3,
1205
- 36, 18, 0, 79, 80, 3, 2, 1, 4, 80, 82, 1, 0, 0, 0, 81, 69, 1, 0, 0, 0, 81, 73, 1, 0, 0, 0, 81, 77, 1,
1206
- 0, 0, 0, 82, 85, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 3, 1, 0, 0, 0, 85, 83, 1, 0,
1207
- 0, 0, 86, 90, 3, 28, 14, 0, 87, 90, 3, 22, 11, 0, 88, 90, 3, 24, 12, 0, 89, 86, 1, 0, 0, 0, 89, 87,
1208
- 1, 0, 0, 0, 89, 88, 1, 0, 0, 0, 90, 5, 1, 0, 0, 0, 91, 92, 3, 12, 6, 0, 92, 7, 1, 0, 0, 0, 93, 94, 3,
1209
- 26, 13, 0, 94, 9, 1, 0, 0, 0, 95, 98, 3, 26, 13, 0, 96, 98, 5, 53, 0, 0, 97, 95, 1, 0, 0, 0, 97, 96,
1210
- 1, 0, 0, 0, 98, 11, 1, 0, 0, 0, 99, 100, 3, 26, 13, 0, 100, 102, 5, 1, 0, 0, 101, 103, 3, 14, 7, 0,
1211
- 102, 101, 1, 0, 0, 0, 102, 103, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 105, 5, 2, 0, 0, 105, 13,
1212
- 1, 0, 0, 0, 106, 111, 3, 2, 1, 0, 107, 108, 5, 4, 0, 0, 108, 110, 3, 2, 1, 0, 109, 107, 1, 0, 0, 0,
1213
- 110, 113, 1, 0, 0, 0, 111, 109, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 15, 1, 0, 0, 0, 113, 111,
1214
- 1, 0, 0, 0, 114, 118, 3, 18, 9, 0, 115, 118, 3, 20, 10, 0, 116, 118, 5, 51, 0, 0, 117, 114, 1, 0,
1215
- 0, 0, 117, 115, 1, 0, 0, 0, 117, 116, 1, 0, 0, 0, 118, 17, 1, 0, 0, 0, 119, 120, 7, 0, 0, 0, 120,
1216
- 19, 1, 0, 0, 0, 121, 122, 7, 1, 0, 0, 122, 21, 1, 0, 0, 0, 123, 124, 3, 26, 13, 0, 124, 125, 5, 22,
1217
- 0, 0, 125, 127, 1, 0, 0, 0, 126, 123, 1, 0, 0, 0, 127, 130, 1, 0, 0, 0, 128, 126, 1, 0, 0, 0, 128,
1218
- 129, 1, 0, 0, 0, 129, 131, 1, 0, 0, 0, 130, 128, 1, 0, 0, 0, 131, 132, 3, 26, 13, 0, 132, 23, 1,
1219
- 0, 0, 0, 133, 134, 5, 23, 0, 0, 134, 135, 7, 2, 0, 0, 135, 25, 1, 0, 0, 0, 136, 137, 5, 50, 0, 0,
1220
- 137, 27, 1, 0, 0, 0, 138, 147, 5, 52, 0, 0, 139, 147, 3, 42, 21, 0, 140, 147, 3, 38, 19, 0, 141,
1221
- 147, 3, 40, 20, 0, 142, 147, 5, 47, 0, 0, 143, 147, 5, 48, 0, 0, 144, 147, 5, 49, 0, 0, 145, 147,
1222
- 5, 51, 0, 0, 146, 138, 1, 0, 0, 0, 146, 139, 1, 0, 0, 0, 146, 140, 1, 0, 0, 0, 146, 141, 1, 0, 0,
1223
- 0, 146, 142, 1, 0, 0, 0, 146, 143, 1, 0, 0, 0, 146, 144, 1, 0, 0, 0, 146, 145, 1, 0, 0, 0, 147, 29,
1224
- 1, 0, 0, 0, 148, 149, 7, 3, 0, 0, 149, 31, 1, 0, 0, 0, 150, 151, 7, 4, 0, 0, 151, 33, 1, 0, 0, 0, 152,
1225
- 153, 7, 5, 0, 0, 153, 35, 1, 0, 0, 0, 154, 155, 7, 6, 0, 0, 155, 37, 1, 0, 0, 0, 156, 157, 7, 7, 0,
1226
- 0, 157, 39, 1, 0, 0, 0, 158, 159, 5, 44, 0, 0, 159, 41, 1, 0, 0, 0, 160, 161, 7, 8, 0, 0, 161, 43,
1227
- 1, 0, 0, 0, 11, 62, 67, 81, 83, 89, 97, 102, 111, 117, 128, 146];
1228
- OpraFilterParser.DecisionsToDFA = OpraFilterParser._ATN.decisionToState.map((ds, index) => new DFA(ds, index));
1229
- export class RootContext extends ParserRuleContext {
1230
- constructor(parser, parent, invokingState) {
1231
- super(parent, invokingState);
1232
- this.parser = parser;
1233
- }
1234
- expression() {
1235
- return this.getTypedRuleContext(ExpressionContext, 0);
1236
- }
1237
- EOF() {
1238
- return this.getToken(OpraFilterParser.EOF, 0);
1239
- }
1240
- get ruleIndex() {
1241
- return OpraFilterParser.RULE_root;
1242
- }
1243
- enterRule(listener) {
1244
- if (listener.enterRoot) {
1245
- listener.enterRoot(this);
1246
- }
1247
- }
1248
- exitRule(listener) {
1249
- if (listener.exitRoot) {
1250
- listener.exitRoot(this);
1251
- }
1252
- }
1253
- // @Override
1254
- accept(visitor) {
1255
- if (visitor.visitRoot) {
1256
- return visitor.visitRoot(this);
1257
- }
1258
- else {
1259
- return visitor.visitChildren(this);
1260
- }
1261
- }
1262
- }
1263
- export class ExpressionContext extends ParserRuleContext {
1264
- constructor(parser, parent, invokingState) {
1265
- super(parent, invokingState);
1266
- this.parser = parser;
1267
- }
1268
- get ruleIndex() {
1269
- return OpraFilterParser.RULE_expression;
1270
- }
1271
- copyFrom(ctx) {
1272
- super.copyFrom(ctx);
1273
- }
1274
- }
1275
- export class ParenthesizedExpressionContext extends ExpressionContext {
1276
- constructor(parser, ctx) {
1277
- super(parser, ctx.parentCtx, ctx.invokingState);
1278
- super.copyFrom(ctx);
1279
- }
1280
- expression() {
1281
- return this.getTypedRuleContext(ExpressionContext, 0);
1282
- }
1283
- enterRule(listener) {
1284
- if (listener.enterParenthesizedExpression) {
1285
- listener.enterParenthesizedExpression(this);
1286
- }
1287
- }
1288
- exitRule(listener) {
1289
- if (listener.exitParenthesizedExpression) {
1290
- listener.exitParenthesizedExpression(this);
1291
- }
1292
- }
1293
- // @Override
1294
- accept(visitor) {
1295
- if (visitor.visitParenthesizedExpression) {
1296
- return visitor.visitParenthesizedExpression(this);
1297
- }
1298
- else {
1299
- return visitor.visitChildren(this);
1300
- }
1301
- }
1302
- }
1303
- export class ArrayExpressionContext extends ExpressionContext {
1304
- constructor(parser, ctx) {
1305
- super(parser, ctx.parentCtx, ctx.invokingState);
1306
- super.copyFrom(ctx);
1307
- }
1308
- expression_list() {
1309
- return this.getTypedRuleContexts(ExpressionContext);
1310
- }
1311
- expression(i) {
1312
- return this.getTypedRuleContext(ExpressionContext, i);
1313
- }
1314
- enterRule(listener) {
1315
- if (listener.enterArrayExpression) {
1316
- listener.enterArrayExpression(this);
1317
- }
1318
- }
1319
- exitRule(listener) {
1320
- if (listener.exitArrayExpression) {
1321
- listener.exitArrayExpression(this);
1322
- }
1323
- }
1324
- // @Override
1325
- accept(visitor) {
1326
- if (visitor.visitArrayExpression) {
1327
- return visitor.visitArrayExpression(this);
1328
- }
1329
- else {
1330
- return visitor.visitChildren(this);
1331
- }
1332
- }
1333
- }
1334
- export class PolarityExpressionContext extends ExpressionContext {
1335
- constructor(parser, ctx) {
1336
- super(parser, ctx.parentCtx, ctx.invokingState);
1337
- super.copyFrom(ctx);
1338
- }
1339
- polarOp() {
1340
- return this.getTypedRuleContext(PolarOpContext, 0);
1341
- }
1342
- expression() {
1343
- return this.getTypedRuleContext(ExpressionContext, 0);
1344
- }
1345
- enterRule(listener) {
1346
- if (listener.enterPolarityExpression) {
1347
- listener.enterPolarityExpression(this);
1348
- }
1349
- }
1350
- exitRule(listener) {
1351
- if (listener.exitPolarityExpression) {
1352
- listener.exitPolarityExpression(this);
1353
- }
1354
- }
1355
- // @Override
1356
- accept(visitor) {
1357
- if (visitor.visitPolarityExpression) {
1358
- return visitor.visitPolarityExpression(this);
1359
- }
1360
- else {
1361
- return visitor.visitChildren(this);
1362
- }
1363
- }
1364
- }
1365
- export class ComparisonExpressionContext extends ExpressionContext {
1366
- constructor(parser, ctx) {
1367
- super(parser, ctx.parentCtx, ctx.invokingState);
1368
- super.copyFrom(ctx);
1369
- }
1370
- expression_list() {
1371
- return this.getTypedRuleContexts(ExpressionContext);
1372
- }
1373
- expression(i) {
1374
- return this.getTypedRuleContext(ExpressionContext, i);
1375
- }
1376
- compOp() {
1377
- return this.getTypedRuleContext(CompOpContext, 0);
1378
- }
1379
- enterRule(listener) {
1380
- if (listener.enterComparisonExpression) {
1381
- listener.enterComparisonExpression(this);
1382
- }
1383
- }
1384
- exitRule(listener) {
1385
- if (listener.exitComparisonExpression) {
1386
- listener.exitComparisonExpression(this);
1387
- }
1388
- }
1389
- // @Override
1390
- accept(visitor) {
1391
- if (visitor.visitComparisonExpression) {
1392
- return visitor.visitComparisonExpression(this);
1393
- }
1394
- else {
1395
- return visitor.visitChildren(this);
1396
- }
1397
- }
1398
- }
1399
- export class ArithmeticExpressionContext extends ExpressionContext {
1400
- constructor(parser, ctx) {
1401
- super(parser, ctx.parentCtx, ctx.invokingState);
1402
- super.copyFrom(ctx);
1403
- }
1404
- expression_list() {
1405
- return this.getTypedRuleContexts(ExpressionContext);
1406
- }
1407
- expression(i) {
1408
- return this.getTypedRuleContext(ExpressionContext, i);
1409
- }
1410
- arthOp() {
1411
- return this.getTypedRuleContext(ArthOpContext, 0);
1412
- }
1413
- enterRule(listener) {
1414
- if (listener.enterArithmeticExpression) {
1415
- listener.enterArithmeticExpression(this);
1416
- }
1417
- }
1418
- exitRule(listener) {
1419
- if (listener.exitArithmeticExpression) {
1420
- listener.exitArithmeticExpression(this);
1421
- }
1422
- }
1423
- // @Override
1424
- accept(visitor) {
1425
- if (visitor.visitArithmeticExpression) {
1426
- return visitor.visitArithmeticExpression(this);
1427
- }
1428
- else {
1429
- return visitor.visitChildren(this);
1430
- }
1431
- }
1432
- }
1433
- export class LogicalExpressionContext extends ExpressionContext {
1434
- constructor(parser, ctx) {
1435
- super(parser, ctx.parentCtx, ctx.invokingState);
1436
- super.copyFrom(ctx);
1437
- }
1438
- expression_list() {
1439
- return this.getTypedRuleContexts(ExpressionContext);
1440
- }
1441
- expression(i) {
1442
- return this.getTypedRuleContext(ExpressionContext, i);
1443
- }
1444
- logOp() {
1445
- return this.getTypedRuleContext(LogOpContext, 0);
1446
- }
1447
- enterRule(listener) {
1448
- if (listener.enterLogicalExpression) {
1449
- listener.enterLogicalExpression(this);
1450
- }
1451
- }
1452
- exitRule(listener) {
1453
- if (listener.exitLogicalExpression) {
1454
- listener.exitLogicalExpression(this);
1455
- }
1456
- }
1457
- // @Override
1458
- accept(visitor) {
1459
- if (visitor.visitLogicalExpression) {
1460
- return visitor.visitLogicalExpression(this);
1461
- }
1462
- else {
1463
- return visitor.visitChildren(this);
1464
- }
1465
- }
1466
- }
1467
- export class TermExpressionContext extends ExpressionContext {
1468
- constructor(parser, ctx) {
1469
- super(parser, ctx.parentCtx, ctx.invokingState);
1470
- super.copyFrom(ctx);
1471
- }
1472
- term() {
1473
- return this.getTypedRuleContext(TermContext, 0);
1474
- }
1475
- enterRule(listener) {
1476
- if (listener.enterTermExpression) {
1477
- listener.enterTermExpression(this);
1478
- }
1479
- }
1480
- exitRule(listener) {
1481
- if (listener.exitTermExpression) {
1482
- listener.exitTermExpression(this);
1483
- }
1484
- }
1485
- // @Override
1486
- accept(visitor) {
1487
- if (visitor.visitTermExpression) {
1488
- return visitor.visitTermExpression(this);
1489
- }
1490
- else {
1491
- return visitor.visitChildren(this);
1492
- }
1493
- }
1494
- }
1495
- export class TermContext extends ParserRuleContext {
1496
- constructor(parser, parent, invokingState) {
1497
- super(parent, invokingState);
1498
- this.parser = parser;
1499
- }
1500
- get ruleIndex() {
1501
- return OpraFilterParser.RULE_term;
1502
- }
1503
- copyFrom(ctx) {
1504
- super.copyFrom(ctx);
1505
- }
1506
- }
1507
- export class ExternalConstantTermContext extends TermContext {
1508
- constructor(parser, ctx) {
1509
- super(parser, ctx.parentCtx, ctx.invokingState);
1510
- super.copyFrom(ctx);
1511
- }
1512
- externalConstant() {
1513
- return this.getTypedRuleContext(ExternalConstantContext, 0);
1514
- }
1515
- enterRule(listener) {
1516
- if (listener.enterExternalConstantTerm) {
1517
- listener.enterExternalConstantTerm(this);
1518
- }
1519
- }
1520
- exitRule(listener) {
1521
- if (listener.exitExternalConstantTerm) {
1522
- listener.exitExternalConstantTerm(this);
1523
- }
1524
- }
1525
- // @Override
1526
- accept(visitor) {
1527
- if (visitor.visitExternalConstantTerm) {
1528
- return visitor.visitExternalConstantTerm(this);
1529
- }
1530
- else {
1531
- return visitor.visitChildren(this);
1532
- }
1533
- }
1534
- }
1535
- export class LiteralTermContext extends TermContext {
1536
- constructor(parser, ctx) {
1537
- super(parser, ctx.parentCtx, ctx.invokingState);
1538
- super.copyFrom(ctx);
1539
- }
1540
- literal() {
1541
- return this.getTypedRuleContext(LiteralContext, 0);
1542
- }
1543
- enterRule(listener) {
1544
- if (listener.enterLiteralTerm) {
1545
- listener.enterLiteralTerm(this);
1546
- }
1547
- }
1548
- exitRule(listener) {
1549
- if (listener.exitLiteralTerm) {
1550
- listener.exitLiteralTerm(this);
1551
- }
1552
- }
1553
- // @Override
1554
- accept(visitor) {
1555
- if (visitor.visitLiteralTerm) {
1556
- return visitor.visitLiteralTerm(this);
1557
- }
1558
- else {
1559
- return visitor.visitChildren(this);
1560
- }
1561
- }
1562
- }
1563
- export class QualifiedIdentifierTermContext extends TermContext {
1564
- constructor(parser, ctx) {
1565
- super(parser, ctx.parentCtx, ctx.invokingState);
1566
- super.copyFrom(ctx);
1567
- }
1568
- qualifiedIdentifier() {
1569
- return this.getTypedRuleContext(QualifiedIdentifierContext, 0);
1570
- }
1571
- enterRule(listener) {
1572
- if (listener.enterQualifiedIdentifierTerm) {
1573
- listener.enterQualifiedIdentifierTerm(this);
1574
- }
1575
- }
1576
- exitRule(listener) {
1577
- if (listener.exitQualifiedIdentifierTerm) {
1578
- listener.exitQualifiedIdentifierTerm(this);
1579
- }
1580
- }
1581
- // @Override
1582
- accept(visitor) {
1583
- if (visitor.visitQualifiedIdentifierTerm) {
1584
- return visitor.visitQualifiedIdentifierTerm(this);
1585
- }
1586
- else {
1587
- return visitor.visitChildren(this);
1588
- }
1589
- }
1590
- }
1591
- export class InvocableContext extends ParserRuleContext {
1592
- constructor(parser, parent, invokingState) {
1593
- super(parent, invokingState);
1594
- this.parser = parser;
1595
- }
1596
- function_() {
1597
- return this.getTypedRuleContext(FunctionContext, 0);
1598
- }
1599
- get ruleIndex() {
1600
- return OpraFilterParser.RULE_invocable;
1601
- }
1602
- enterRule(listener) {
1603
- if (listener.enterInvocable) {
1604
- listener.enterInvocable(this);
1605
- }
1606
- }
1607
- exitRule(listener) {
1608
- if (listener.exitInvocable) {
1609
- listener.exitInvocable(this);
1610
- }
1611
- }
1612
- // @Override
1613
- accept(visitor) {
1614
- if (visitor.visitInvocable) {
1615
- return visitor.visitInvocable(this);
1616
- }
1617
- else {
1618
- return visitor.visitChildren(this);
1619
- }
1620
- }
1621
- }
1622
- export class InvocationContext extends ParserRuleContext {
1623
- constructor(parser, parent, invokingState) {
1624
- super(parent, invokingState);
1625
- this.parser = parser;
1626
- }
1627
- get ruleIndex() {
1628
- return OpraFilterParser.RULE_invocation;
1629
- }
1630
- copyFrom(ctx) {
1631
- super.copyFrom(ctx);
1632
- }
1633
- }
1634
- export class MemberInvocationContext extends InvocationContext {
1635
- constructor(parser, ctx) {
1636
- super(parser, ctx.parentCtx, ctx.invokingState);
1637
- super.copyFrom(ctx);
1638
- }
1639
- identifier() {
1640
- return this.getTypedRuleContext(IdentifierContext, 0);
1641
- }
1642
- enterRule(listener) {
1643
- if (listener.enterMemberInvocation) {
1644
- listener.enterMemberInvocation(this);
1645
- }
1646
- }
1647
- exitRule(listener) {
1648
- if (listener.exitMemberInvocation) {
1649
- listener.exitMemberInvocation(this);
1650
- }
1651
- }
1652
- // @Override
1653
- accept(visitor) {
1654
- if (visitor.visitMemberInvocation) {
1655
- return visitor.visitMemberInvocation(this);
1656
- }
1657
- else {
1658
- return visitor.visitChildren(this);
1659
- }
1660
- }
1661
- }
1662
- export class IndexerContext extends ParserRuleContext {
1663
- constructor(parser, parent, invokingState) {
1664
- super(parent, invokingState);
1665
- this.parser = parser;
1666
- }
1667
- get ruleIndex() {
1668
- return OpraFilterParser.RULE_indexer;
1669
- }
1670
- copyFrom(ctx) {
1671
- super.copyFrom(ctx);
1672
- }
1673
- }
1674
- export class NumberIndexContext extends IndexerContext {
1675
- constructor(parser, ctx) {
1676
- super(parser, ctx.parentCtx, ctx.invokingState);
1677
- super.copyFrom(ctx);
1678
- }
1679
- INTEGER() {
1680
- return this.getToken(OpraFilterParser.INTEGER, 0);
1681
- }
1682
- enterRule(listener) {
1683
- if (listener.enterNumberIndex) {
1684
- listener.enterNumberIndex(this);
1685
- }
1686
- }
1687
- exitRule(listener) {
1688
- if (listener.exitNumberIndex) {
1689
- listener.exitNumberIndex(this);
1690
- }
1691
- }
1692
- // @Override
1693
- accept(visitor) {
1694
- if (visitor.visitNumberIndex) {
1695
- return visitor.visitNumberIndex(this);
1696
- }
1697
- else {
1698
- return visitor.visitChildren(this);
1699
- }
1700
- }
1701
- }
1702
- export class MemberIndexContext extends IndexerContext {
1703
- constructor(parser, ctx) {
1704
- super(parser, ctx.parentCtx, ctx.invokingState);
1705
- super.copyFrom(ctx);
1706
- }
1707
- identifier() {
1708
- return this.getTypedRuleContext(IdentifierContext, 0);
1709
- }
1710
- enterRule(listener) {
1711
- if (listener.enterMemberIndex) {
1712
- listener.enterMemberIndex(this);
747
+ sempred(localctx, ruleIndex, predIndex) {
748
+ switch (ruleIndex) {
749
+ case 1:
750
+ return this.expression_sempred(localctx, predIndex);
1713
751
  }
752
+ return true;
1714
753
  }
1715
- exitRule(listener) {
1716
- if (listener.exitMemberIndex) {
1717
- listener.exitMemberIndex(this);
754
+ expression_sempred(localctx, predIndex) {
755
+ switch (predIndex) {
756
+ case 0:
757
+ return this.precpred(this._ctx, 3);
1718
758
  }
759
+ return true;
1719
760
  }
1720
- // @Override
1721
- accept(visitor) {
1722
- if (visitor.visitMemberIndex) {
1723
- return visitor.visitMemberIndex(this);
1724
- }
1725
- else {
1726
- return visitor.visitChildren(this);
761
+ static get _ATN() {
762
+ if (!OpraFilterParser.__ATN) {
763
+ OpraFilterParser.__ATN = new ATNDeserializer().deserialize(OpraFilterParser._serializedATN);
1727
764
  }
765
+ return OpraFilterParser.__ATN;
1728
766
  }
1729
767
  }
1730
- export class FunctionContext extends ParserRuleContext {
768
+ OpraFilterParser.T__0 = 1;
769
+ OpraFilterParser.T__1 = 2;
770
+ OpraFilterParser.T__2 = 3;
771
+ OpraFilterParser.T__3 = 4;
772
+ OpraFilterParser.T__4 = 5;
773
+ OpraFilterParser.T__5 = 6;
774
+ OpraFilterParser.T__6 = 7;
775
+ OpraFilterParser.T__7 = 8;
776
+ OpraFilterParser.T__8 = 9;
777
+ OpraFilterParser.T__9 = 10;
778
+ OpraFilterParser.T__10 = 11;
779
+ OpraFilterParser.T__11 = 12;
780
+ OpraFilterParser.T__12 = 13;
781
+ OpraFilterParser.T__13 = 14;
782
+ OpraFilterParser.T__14 = 15;
783
+ OpraFilterParser.T__15 = 16;
784
+ OpraFilterParser.T__16 = 17;
785
+ OpraFilterParser.T__17 = 18;
786
+ OpraFilterParser.T__18 = 19;
787
+ OpraFilterParser.T__19 = 20;
788
+ OpraFilterParser.T__20 = 21;
789
+ OpraFilterParser.T__21 = 22;
790
+ OpraFilterParser.T__22 = 23;
791
+ OpraFilterParser.T__23 = 24;
792
+ OpraFilterParser.T__24 = 25;
793
+ OpraFilterParser.T__25 = 26;
794
+ OpraFilterParser.T__26 = 27;
795
+ OpraFilterParser.T__27 = 28;
796
+ OpraFilterParser.T__28 = 29;
797
+ OpraFilterParser.T__29 = 30;
798
+ OpraFilterParser.T__30 = 31;
799
+ OpraFilterParser.T__31 = 32;
800
+ OpraFilterParser.T__32 = 33;
801
+ OpraFilterParser.T__33 = 34;
802
+ OpraFilterParser.IDENTIFIER = 35;
803
+ OpraFilterParser.POLAR_OP = 36;
804
+ OpraFilterParser.DATE = 37;
805
+ OpraFilterParser.DATETIME = 38;
806
+ OpraFilterParser.TIME = 39;
807
+ OpraFilterParser.NUMBER = 40;
808
+ OpraFilterParser.INTEGER = 41;
809
+ OpraFilterParser.STRING = 42;
810
+ OpraFilterParser.WHITESPACE = 43;
811
+ OpraFilterParser.EOF = Token.EOF;
812
+ OpraFilterParser.RULE_root = 0;
813
+ OpraFilterParser.RULE_expression = 1;
814
+ OpraFilterParser.RULE_comparisonLeft = 2;
815
+ OpraFilterParser.RULE_comparisonRight = 3;
816
+ OpraFilterParser.RULE_parenthesizedItem = 4;
817
+ OpraFilterParser.RULE_value = 5;
818
+ OpraFilterParser.RULE_qualifiedIdentifier = 6;
819
+ OpraFilterParser.RULE_externalConstant = 7;
820
+ OpraFilterParser.RULE_identifier = 8;
821
+ OpraFilterParser.RULE_arrayValue = 9;
822
+ OpraFilterParser.RULE_boolean = 10;
823
+ OpraFilterParser.RULE_null = 11;
824
+ OpraFilterParser.RULE_infinity = 12;
825
+ OpraFilterParser.RULE_arithmeticOperator = 13;
826
+ OpraFilterParser.RULE_comparisonOperator = 14;
827
+ OpraFilterParser.RULE_logicalOperator = 15;
828
+ OpraFilterParser.RULE_polarityOperator = 16;
829
+ OpraFilterParser.literalNames = [null, "'('",
830
+ "')'", "'not'",
831
+ "'!'", "'.'",
832
+ "'@'", "'['",
833
+ "','", "']'",
834
+ "'true'", "'false'",
835
+ "'null'", "'Infinity'",
836
+ "'infinity'",
837
+ "'+'", "'-'",
838
+ "'*'", "'/'",
839
+ "'<='", "'<'",
840
+ "'>'", "'>='",
841
+ "'='", "'!='",
842
+ "'in'", "'!in'",
843
+ "'like'", "'!like'",
844
+ "'ilike'", "'!ilike'",
845
+ "'and'", "'or'",
846
+ "'&&'", "'||'"];
847
+ OpraFilterParser.symbolicNames = [null, null,
848
+ null, null,
849
+ null, null,
850
+ null, null,
851
+ null, null,
852
+ null, null,
853
+ null, null,
854
+ null, null,
855
+ null, null,
856
+ null, null,
857
+ null, null,
858
+ null, null,
859
+ null, null,
860
+ null, null,
861
+ null, null,
862
+ null, null,
863
+ null, null,
864
+ null, "IDENTIFIER",
865
+ "POLAR_OP",
866
+ "DATE", "DATETIME",
867
+ "TIME", "NUMBER",
868
+ "INTEGER",
869
+ "STRING", "WHITESPACE"];
870
+ // tslint:disable:no-trailing-whitespace
871
+ OpraFilterParser.ruleNames = [
872
+ "root", "expression", "comparisonLeft", "comparisonRight", "parenthesizedItem",
873
+ "value", "qualifiedIdentifier", "externalConstant", "identifier", "arrayValue",
874
+ "boolean", "null", "infinity", "arithmeticOperator", "comparisonOperator",
875
+ "logicalOperator", "polarityOperator",
876
+ ];
877
+ OpraFilterParser._serializedATN = [4, 1, 43, 120, 2, 0, 7, 0, 2,
878
+ 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2,
879
+ 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 1, 0,
880
+ 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, 1, 3, 1, 49, 8, 1, 1, 1, 1, 1,
881
+ 1, 1, 1, 1, 5, 1, 55, 8, 1, 10, 1, 12, 1, 58, 9, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 66, 8, 3,
882
+ 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 78, 8, 5, 1, 6, 1, 6, 1, 6, 5, 6, 83, 8,
883
+ 6, 10, 6, 12, 6, 86, 9, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 99, 8,
884
+ 9, 10, 9, 12, 9, 102, 9, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14,
885
+ 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 0, 1, 2, 17, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24,
886
+ 26, 28, 30, 32, 0, 6, 1, 0, 3, 4, 1, 0, 10, 11, 1, 0, 13, 14, 1, 0, 15, 18, 1, 0, 19, 30, 1, 0, 31,
887
+ 34, 117, 0, 34, 1, 0, 0, 0, 2, 48, 1, 0, 0, 0, 4, 59, 1, 0, 0, 0, 6, 65, 1, 0, 0, 0, 8, 67, 1, 0, 0, 0,
888
+ 10, 77, 1, 0, 0, 0, 12, 84, 1, 0, 0, 0, 14, 89, 1, 0, 0, 0, 16, 92, 1, 0, 0, 0, 18, 94, 1, 0, 0, 0, 20,
889
+ 105, 1, 0, 0, 0, 22, 107, 1, 0, 0, 0, 24, 109, 1, 0, 0, 0, 26, 111, 1, 0, 0, 0, 28, 113, 1, 0, 0, 0,
890
+ 30, 115, 1, 0, 0, 0, 32, 117, 1, 0, 0, 0, 34, 35, 3, 2, 1, 0, 35, 36, 5, 0, 0, 1, 36, 1, 1, 0, 0, 0,
891
+ 37, 38, 6, 1, -1, 0, 38, 39, 3, 4, 2, 0, 39, 40, 3, 28, 14, 0, 40, 41, 3, 6, 3, 0, 41, 49, 1, 0, 0,
892
+ 0, 42, 43, 5, 1, 0, 0, 43, 44, 3, 8, 4, 0, 44, 45, 5, 2, 0, 0, 45, 49, 1, 0, 0, 0, 46, 47, 7, 0, 0, 0,
893
+ 47, 49, 3, 2, 1, 1, 48, 37, 1, 0, 0, 0, 48, 42, 1, 0, 0, 0, 48, 46, 1, 0, 0, 0, 49, 56, 1, 0, 0, 0, 50,
894
+ 51, 10, 3, 0, 0, 51, 52, 3, 30, 15, 0, 52, 53, 3, 2, 1, 4, 53, 55, 1, 0, 0, 0, 54, 50, 1, 0, 0, 0, 55,
895
+ 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 56, 57, 1, 0, 0, 0, 57, 3, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 59, 60,
896
+ 3, 12, 6, 0, 60, 5, 1, 0, 0, 0, 61, 66, 3, 10, 5, 0, 62, 66, 3, 12, 6, 0, 63, 66, 3, 14, 7, 0, 64, 66,
897
+ 3, 18, 9, 0, 65, 61, 1, 0, 0, 0, 65, 62, 1, 0, 0, 0, 65, 63, 1, 0, 0, 0, 65, 64, 1, 0, 0, 0, 66, 7, 1,
898
+ 0, 0, 0, 67, 68, 3, 2, 1, 0, 68, 9, 1, 0, 0, 0, 69, 78, 5, 40, 0, 0, 70, 78, 3, 24, 12, 0, 71, 78, 3,
899
+ 20, 10, 0, 72, 78, 3, 22, 11, 0, 73, 78, 5, 37, 0, 0, 74, 78, 5, 38, 0, 0, 75, 78, 5, 39, 0, 0, 76,
900
+ 78, 5, 42, 0, 0, 77, 69, 1, 0, 0, 0, 77, 70, 1, 0, 0, 0, 77, 71, 1, 0, 0, 0, 77, 72, 1, 0, 0, 0, 77,
901
+ 73, 1, 0, 0, 0, 77, 74, 1, 0, 0, 0, 77, 75, 1, 0, 0, 0, 77, 76, 1, 0, 0, 0, 78, 11, 1, 0, 0, 0, 79, 80,
902
+ 3, 16, 8, 0, 80, 81, 5, 5, 0, 0, 81, 83, 1, 0, 0, 0, 82, 79, 1, 0, 0, 0, 83, 86, 1, 0, 0, 0, 84, 82,
903
+ 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 87, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, 87, 88, 3, 16, 8, 0, 88, 13,
904
+ 1, 0, 0, 0, 89, 90, 5, 6, 0, 0, 90, 91, 3, 16, 8, 0, 91, 15, 1, 0, 0, 0, 92, 93, 5, 35, 0, 0, 93, 17,
905
+ 1, 0, 0, 0, 94, 95, 5, 7, 0, 0, 95, 100, 3, 10, 5, 0, 96, 97, 5, 8, 0, 0, 97, 99, 3, 10, 5, 0, 98, 96,
906
+ 1, 0, 0, 0, 99, 102, 1, 0, 0, 0, 100, 98, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 103, 1, 0, 0, 0, 102,
907
+ 100, 1, 0, 0, 0, 103, 104, 5, 9, 0, 0, 104, 19, 1, 0, 0, 0, 105, 106, 7, 1, 0, 0, 106, 21, 1, 0, 0,
908
+ 0, 107, 108, 5, 12, 0, 0, 108, 23, 1, 0, 0, 0, 109, 110, 7, 2, 0, 0, 110, 25, 1, 0, 0, 0, 111, 112,
909
+ 7, 3, 0, 0, 112, 27, 1, 0, 0, 0, 113, 114, 7, 4, 0, 0, 114, 29, 1, 0, 0, 0, 115, 116, 7, 5, 0, 0, 116,
910
+ 31, 1, 0, 0, 0, 117, 118, 5, 36, 0, 0, 118, 33, 1, 0, 0, 0, 6, 48, 56, 65, 77, 84, 100];
911
+ OpraFilterParser.DecisionsToDFA = OpraFilterParser._ATN.decisionToState.map((ds, index) => new DFA(ds, index));
912
+ export class RootContext extends ParserRuleContext {
1731
913
  constructor(parser, parent, invokingState) {
1732
914
  super(parent, invokingState);
1733
915
  this.parser = parser;
1734
916
  }
1735
- identifier() {
1736
- return this.getTypedRuleContext(IdentifierContext, 0);
917
+ expression() {
918
+ return this.getTypedRuleContext(ExpressionContext, 0);
1737
919
  }
1738
- paramList() {
1739
- return this.getTypedRuleContext(ParamListContext, 0);
920
+ EOF() {
921
+ return this.getToken(OpraFilterParser.EOF, 0);
1740
922
  }
1741
923
  get ruleIndex() {
1742
- return OpraFilterParser.RULE_function;
924
+ return OpraFilterParser.RULE_root;
1743
925
  }
1744
926
  enterRule(listener) {
1745
- if (listener.enterFunction) {
1746
- listener.enterFunction(this);
927
+ if (listener.enterRoot) {
928
+ listener.enterRoot(this);
1747
929
  }
1748
930
  }
1749
931
  exitRule(listener) {
1750
- if (listener.exitFunction) {
1751
- listener.exitFunction(this);
932
+ if (listener.exitRoot) {
933
+ listener.exitRoot(this);
1752
934
  }
1753
935
  }
1754
936
  // @Override
1755
937
  accept(visitor) {
1756
- if (visitor.visitFunction) {
1757
- return visitor.visitFunction(this);
938
+ if (visitor.visitRoot) {
939
+ return visitor.visitRoot(this);
1758
940
  }
1759
941
  else {
1760
942
  return visitor.visitChildren(this);
1761
943
  }
1762
944
  }
1763
945
  }
1764
- export class ParamListContext extends ParserRuleContext {
946
+ export class ExpressionContext extends ParserRuleContext {
1765
947
  constructor(parser, parent, invokingState) {
1766
948
  super(parent, invokingState);
1767
949
  this.parser = parser;
1768
950
  }
1769
- expression_list() {
1770
- return this.getTypedRuleContexts(ExpressionContext);
951
+ get ruleIndex() {
952
+ return OpraFilterParser.RULE_expression;
1771
953
  }
1772
- expression(i) {
1773
- return this.getTypedRuleContext(ExpressionContext, i);
954
+ copyFrom(ctx) {
955
+ super.copyFrom(ctx);
1774
956
  }
1775
- get ruleIndex() {
1776
- return OpraFilterParser.RULE_paramList;
957
+ }
958
+ export class ParenthesizedExpressionContext extends ExpressionContext {
959
+ constructor(parser, ctx) {
960
+ super(parser, ctx.parentCtx, ctx.invokingState);
961
+ super.copyFrom(ctx);
962
+ }
963
+ parenthesizedItem() {
964
+ return this.getTypedRuleContext(ParenthesizedItemContext, 0);
1777
965
  }
1778
966
  enterRule(listener) {
1779
- if (listener.enterParamList) {
1780
- listener.enterParamList(this);
967
+ if (listener.enterParenthesizedExpression) {
968
+ listener.enterParenthesizedExpression(this);
1781
969
  }
1782
970
  }
1783
971
  exitRule(listener) {
1784
- if (listener.exitParamList) {
1785
- listener.exitParamList(this);
972
+ if (listener.exitParenthesizedExpression) {
973
+ listener.exitParenthesizedExpression(this);
1786
974
  }
1787
975
  }
1788
976
  // @Override
1789
977
  accept(visitor) {
1790
- if (visitor.visitParamList) {
1791
- return visitor.visitParamList(this);
978
+ if (visitor.visitParenthesizedExpression) {
979
+ return visitor.visitParenthesizedExpression(this);
1792
980
  }
1793
981
  else {
1794
982
  return visitor.visitChildren(this);
1795
983
  }
1796
984
  }
1797
985
  }
1798
- export class UnitContext extends ParserRuleContext {
1799
- constructor(parser, parent, invokingState) {
1800
- super(parent, invokingState);
1801
- this.parser = parser;
1802
- }
1803
- dateTimePrecision() {
1804
- return this.getTypedRuleContext(DateTimePrecisionContext, 0);
1805
- }
1806
- pluralDateTimePrecision() {
1807
- return this.getTypedRuleContext(PluralDateTimePrecisionContext, 0);
1808
- }
1809
- STRING() {
1810
- return this.getToken(OpraFilterParser.STRING, 0);
986
+ export class NegativeExpressionContext extends ExpressionContext {
987
+ constructor(parser, ctx) {
988
+ super(parser, ctx.parentCtx, ctx.invokingState);
989
+ super.copyFrom(ctx);
1811
990
  }
1812
- get ruleIndex() {
1813
- return OpraFilterParser.RULE_unit;
991
+ expression() {
992
+ return this.getTypedRuleContext(ExpressionContext, 0);
1814
993
  }
1815
994
  enterRule(listener) {
1816
- if (listener.enterUnit) {
1817
- listener.enterUnit(this);
995
+ if (listener.enterNegativeExpression) {
996
+ listener.enterNegativeExpression(this);
1818
997
  }
1819
998
  }
1820
999
  exitRule(listener) {
1821
- if (listener.exitUnit) {
1822
- listener.exitUnit(this);
1000
+ if (listener.exitNegativeExpression) {
1001
+ listener.exitNegativeExpression(this);
1823
1002
  }
1824
1003
  }
1825
1004
  // @Override
1826
1005
  accept(visitor) {
1827
- if (visitor.visitUnit) {
1828
- return visitor.visitUnit(this);
1006
+ if (visitor.visitNegativeExpression) {
1007
+ return visitor.visitNegativeExpression(this);
1829
1008
  }
1830
1009
  else {
1831
1010
  return visitor.visitChildren(this);
1832
1011
  }
1833
1012
  }
1834
1013
  }
1835
- export class DateTimePrecisionContext extends ParserRuleContext {
1836
- constructor(parser, parent, invokingState) {
1837
- super(parent, invokingState);
1838
- this.parser = parser;
1014
+ export class ComparisonExpressionContext extends ExpressionContext {
1015
+ constructor(parser, ctx) {
1016
+ super(parser, ctx.parentCtx, ctx.invokingState);
1017
+ super.copyFrom(ctx);
1839
1018
  }
1840
- get ruleIndex() {
1841
- return OpraFilterParser.RULE_dateTimePrecision;
1019
+ comparisonLeft() {
1020
+ return this.getTypedRuleContext(ComparisonLeftContext, 0);
1021
+ }
1022
+ comparisonOperator() {
1023
+ return this.getTypedRuleContext(ComparisonOperatorContext, 0);
1024
+ }
1025
+ comparisonRight() {
1026
+ return this.getTypedRuleContext(ComparisonRightContext, 0);
1842
1027
  }
1843
1028
  enterRule(listener) {
1844
- if (listener.enterDateTimePrecision) {
1845
- listener.enterDateTimePrecision(this);
1029
+ if (listener.enterComparisonExpression) {
1030
+ listener.enterComparisonExpression(this);
1846
1031
  }
1847
1032
  }
1848
1033
  exitRule(listener) {
1849
- if (listener.exitDateTimePrecision) {
1850
- listener.exitDateTimePrecision(this);
1034
+ if (listener.exitComparisonExpression) {
1035
+ listener.exitComparisonExpression(this);
1851
1036
  }
1852
1037
  }
1853
1038
  // @Override
1854
1039
  accept(visitor) {
1855
- if (visitor.visitDateTimePrecision) {
1856
- return visitor.visitDateTimePrecision(this);
1040
+ if (visitor.visitComparisonExpression) {
1041
+ return visitor.visitComparisonExpression(this);
1857
1042
  }
1858
1043
  else {
1859
1044
  return visitor.visitChildren(this);
1860
1045
  }
1861
1046
  }
1862
1047
  }
1863
- export class PluralDateTimePrecisionContext extends ParserRuleContext {
1864
- constructor(parser, parent, invokingState) {
1865
- super(parent, invokingState);
1866
- this.parser = parser;
1048
+ export class LogicalExpressionContext extends ExpressionContext {
1049
+ constructor(parser, ctx) {
1050
+ super(parser, ctx.parentCtx, ctx.invokingState);
1051
+ super.copyFrom(ctx);
1867
1052
  }
1868
- get ruleIndex() {
1869
- return OpraFilterParser.RULE_pluralDateTimePrecision;
1053
+ expression_list() {
1054
+ return this.getTypedRuleContexts(ExpressionContext);
1055
+ }
1056
+ expression(i) {
1057
+ return this.getTypedRuleContext(ExpressionContext, i);
1058
+ }
1059
+ logicalOperator() {
1060
+ return this.getTypedRuleContext(LogicalOperatorContext, 0);
1870
1061
  }
1871
1062
  enterRule(listener) {
1872
- if (listener.enterPluralDateTimePrecision) {
1873
- listener.enterPluralDateTimePrecision(this);
1063
+ if (listener.enterLogicalExpression) {
1064
+ listener.enterLogicalExpression(this);
1874
1065
  }
1875
1066
  }
1876
1067
  exitRule(listener) {
1877
- if (listener.exitPluralDateTimePrecision) {
1878
- listener.exitPluralDateTimePrecision(this);
1068
+ if (listener.exitLogicalExpression) {
1069
+ listener.exitLogicalExpression(this);
1879
1070
  }
1880
1071
  }
1881
1072
  // @Override
1882
1073
  accept(visitor) {
1883
- if (visitor.visitPluralDateTimePrecision) {
1884
- return visitor.visitPluralDateTimePrecision(this);
1074
+ if (visitor.visitLogicalExpression) {
1075
+ return visitor.visitLogicalExpression(this);
1885
1076
  }
1886
1077
  else {
1887
1078
  return visitor.visitChildren(this);
1888
1079
  }
1889
1080
  }
1890
1081
  }
1891
- export class QualifiedIdentifierContext extends ParserRuleContext {
1082
+ export class ComparisonLeftContext extends ParserRuleContext {
1892
1083
  constructor(parser, parent, invokingState) {
1893
1084
  super(parent, invokingState);
1894
1085
  this.parser = parser;
1895
1086
  }
1896
- identifier_list() {
1897
- return this.getTypedRuleContexts(IdentifierContext);
1898
- }
1899
- identifier(i) {
1900
- return this.getTypedRuleContext(IdentifierContext, i);
1087
+ qualifiedIdentifier() {
1088
+ return this.getTypedRuleContext(QualifiedIdentifierContext, 0);
1901
1089
  }
1902
1090
  get ruleIndex() {
1903
- return OpraFilterParser.RULE_qualifiedIdentifier;
1091
+ return OpraFilterParser.RULE_comparisonLeft;
1904
1092
  }
1905
1093
  enterRule(listener) {
1906
- if (listener.enterQualifiedIdentifier) {
1907
- listener.enterQualifiedIdentifier(this);
1094
+ if (listener.enterComparisonLeft) {
1095
+ listener.enterComparisonLeft(this);
1908
1096
  }
1909
1097
  }
1910
1098
  exitRule(listener) {
1911
- if (listener.exitQualifiedIdentifier) {
1912
- listener.exitQualifiedIdentifier(this);
1099
+ if (listener.exitComparisonLeft) {
1100
+ listener.exitComparisonLeft(this);
1913
1101
  }
1914
1102
  }
1915
1103
  // @Override
1916
1104
  accept(visitor) {
1917
- if (visitor.visitQualifiedIdentifier) {
1918
- return visitor.visitQualifiedIdentifier(this);
1105
+ if (visitor.visitComparisonLeft) {
1106
+ return visitor.visitComparisonLeft(this);
1919
1107
  }
1920
1108
  else {
1921
1109
  return visitor.visitChildren(this);
1922
1110
  }
1923
1111
  }
1924
1112
  }
1925
- export class ExternalConstantContext extends ParserRuleContext {
1113
+ export class ComparisonRightContext extends ParserRuleContext {
1926
1114
  constructor(parser, parent, invokingState) {
1927
1115
  super(parent, invokingState);
1928
1116
  this.parser = parser;
1929
1117
  }
1930
- IDENTIFIER() {
1931
- return this.getToken(OpraFilterParser.IDENTIFIER, 0);
1118
+ value() {
1119
+ return this.getTypedRuleContext(ValueContext, 0);
1932
1120
  }
1933
- STRING() {
1934
- return this.getToken(OpraFilterParser.STRING, 0);
1121
+ qualifiedIdentifier() {
1122
+ return this.getTypedRuleContext(QualifiedIdentifierContext, 0);
1123
+ }
1124
+ externalConstant() {
1125
+ return this.getTypedRuleContext(ExternalConstantContext, 0);
1126
+ }
1127
+ arrayValue() {
1128
+ return this.getTypedRuleContext(ArrayValueContext, 0);
1935
1129
  }
1936
1130
  get ruleIndex() {
1937
- return OpraFilterParser.RULE_externalConstant;
1131
+ return OpraFilterParser.RULE_comparisonRight;
1938
1132
  }
1939
1133
  enterRule(listener) {
1940
- if (listener.enterExternalConstant) {
1941
- listener.enterExternalConstant(this);
1134
+ if (listener.enterComparisonRight) {
1135
+ listener.enterComparisonRight(this);
1942
1136
  }
1943
1137
  }
1944
1138
  exitRule(listener) {
1945
- if (listener.exitExternalConstant) {
1946
- listener.exitExternalConstant(this);
1139
+ if (listener.exitComparisonRight) {
1140
+ listener.exitComparisonRight(this);
1947
1141
  }
1948
1142
  }
1949
1143
  // @Override
1950
1144
  accept(visitor) {
1951
- if (visitor.visitExternalConstant) {
1952
- return visitor.visitExternalConstant(this);
1145
+ if (visitor.visitComparisonRight) {
1146
+ return visitor.visitComparisonRight(this);
1953
1147
  }
1954
1148
  else {
1955
1149
  return visitor.visitChildren(this);
1956
1150
  }
1957
1151
  }
1958
1152
  }
1959
- export class IdentifierContext extends ParserRuleContext {
1153
+ export class ParenthesizedItemContext extends ParserRuleContext {
1960
1154
  constructor(parser, parent, invokingState) {
1961
1155
  super(parent, invokingState);
1962
1156
  this.parser = parser;
1963
1157
  }
1964
- IDENTIFIER() {
1965
- return this.getToken(OpraFilterParser.IDENTIFIER, 0);
1158
+ expression() {
1159
+ return this.getTypedRuleContext(ExpressionContext, 0);
1966
1160
  }
1967
1161
  get ruleIndex() {
1968
- return OpraFilterParser.RULE_identifier;
1162
+ return OpraFilterParser.RULE_parenthesizedItem;
1969
1163
  }
1970
1164
  enterRule(listener) {
1971
- if (listener.enterIdentifier) {
1972
- listener.enterIdentifier(this);
1165
+ if (listener.enterParenthesizedItem) {
1166
+ listener.enterParenthesizedItem(this);
1973
1167
  }
1974
1168
  }
1975
1169
  exitRule(listener) {
1976
- if (listener.exitIdentifier) {
1977
- listener.exitIdentifier(this);
1170
+ if (listener.exitParenthesizedItem) {
1171
+ listener.exitParenthesizedItem(this);
1978
1172
  }
1979
1173
  }
1980
1174
  // @Override
1981
1175
  accept(visitor) {
1982
- if (visitor.visitIdentifier) {
1983
- return visitor.visitIdentifier(this);
1176
+ if (visitor.visitParenthesizedItem) {
1177
+ return visitor.visitParenthesizedItem(this);
1984
1178
  }
1985
1179
  else {
1986
1180
  return visitor.visitChildren(this);
1987
1181
  }
1988
1182
  }
1989
1183
  }
1990
- export class LiteralContext extends ParserRuleContext {
1184
+ export class ValueContext extends ParserRuleContext {
1991
1185
  constructor(parser, parent, invokingState) {
1992
1186
  super(parent, invokingState);
1993
1187
  this.parser = parser;
1994
1188
  }
1995
1189
  get ruleIndex() {
1996
- return OpraFilterParser.RULE_literal;
1190
+ return OpraFilterParser.RULE_value;
1997
1191
  }
1998
1192
  copyFrom(ctx) {
1999
1193
  super.copyFrom(ctx);
2000
1194
  }
2001
1195
  }
2002
- export class TimeLiteralContext extends LiteralContext {
1196
+ export class TimeLiteralContext extends ValueContext {
2003
1197
  constructor(parser, ctx) {
2004
1198
  super(parser, ctx.parentCtx, ctx.invokingState);
2005
1199
  super.copyFrom(ctx);
@@ -2027,7 +1221,7 @@ export class TimeLiteralContext extends LiteralContext {
2027
1221
  }
2028
1222
  }
2029
1223
  }
2030
- export class NullLiteralContext extends LiteralContext {
1224
+ export class NullLiteralContext extends ValueContext {
2031
1225
  constructor(parser, ctx) {
2032
1226
  super(parser, ctx.parentCtx, ctx.invokingState);
2033
1227
  super.copyFrom(ctx);
@@ -2055,7 +1249,7 @@ export class NullLiteralContext extends LiteralContext {
2055
1249
  }
2056
1250
  }
2057
1251
  }
2058
- export class DateTimeLiteralContext extends LiteralContext {
1252
+ export class DateTimeLiteralContext extends ValueContext {
2059
1253
  constructor(parser, ctx) {
2060
1254
  super(parser, ctx.parentCtx, ctx.invokingState);
2061
1255
  super.copyFrom(ctx);
@@ -2083,7 +1277,7 @@ export class DateTimeLiteralContext extends LiteralContext {
2083
1277
  }
2084
1278
  }
2085
1279
  }
2086
- export class StringLiteralContext extends LiteralContext {
1280
+ export class StringLiteralContext extends ValueContext {
2087
1281
  constructor(parser, ctx) {
2088
1282
  super(parser, ctx.parentCtx, ctx.invokingState);
2089
1283
  super.copyFrom(ctx);
@@ -2111,7 +1305,7 @@ export class StringLiteralContext extends LiteralContext {
2111
1305
  }
2112
1306
  }
2113
1307
  }
2114
- export class DateLiteralContext extends LiteralContext {
1308
+ export class DateLiteralContext extends ValueContext {
2115
1309
  constructor(parser, ctx) {
2116
1310
  super(parser, ctx.parentCtx, ctx.invokingState);
2117
1311
  super.copyFrom(ctx);
@@ -2139,7 +1333,7 @@ export class DateLiteralContext extends LiteralContext {
2139
1333
  }
2140
1334
  }
2141
1335
  }
2142
- export class InfinityLiteralContext extends LiteralContext {
1336
+ export class InfinityLiteralContext extends ValueContext {
2143
1337
  constructor(parser, ctx) {
2144
1338
  super(parser, ctx.parentCtx, ctx.invokingState);
2145
1339
  super.copyFrom(ctx);
@@ -2167,7 +1361,7 @@ export class InfinityLiteralContext extends LiteralContext {
2167
1361
  }
2168
1362
  }
2169
1363
  }
2170
- export class BooleanLiteralContext extends LiteralContext {
1364
+ export class BooleanLiteralContext extends ValueContext {
2171
1365
  constructor(parser, ctx) {
2172
1366
  super(parser, ctx.parentCtx, ctx.invokingState);
2173
1367
  super.copyFrom(ctx);
@@ -2195,7 +1389,7 @@ export class BooleanLiteralContext extends LiteralContext {
2195
1389
  }
2196
1390
  }
2197
1391
  }
2198
- export class NumberLiteralContext extends LiteralContext {
1392
+ export class NumberLiteralContext extends ValueContext {
2199
1393
  constructor(parser, ctx) {
2200
1394
  super(parser, ctx.parentCtx, ctx.invokingState);
2201
1395
  super.copyFrom(ctx);
@@ -2223,112 +1417,130 @@ export class NumberLiteralContext extends LiteralContext {
2223
1417
  }
2224
1418
  }
2225
1419
  }
2226
- export class CompOpContext extends ParserRuleContext {
1420
+ export class QualifiedIdentifierContext extends ParserRuleContext {
2227
1421
  constructor(parser, parent, invokingState) {
2228
1422
  super(parent, invokingState);
2229
1423
  this.parser = parser;
2230
1424
  }
1425
+ identifier_list() {
1426
+ return this.getTypedRuleContexts(IdentifierContext);
1427
+ }
1428
+ identifier(i) {
1429
+ return this.getTypedRuleContext(IdentifierContext, i);
1430
+ }
2231
1431
  get ruleIndex() {
2232
- return OpraFilterParser.RULE_compOp;
1432
+ return OpraFilterParser.RULE_qualifiedIdentifier;
2233
1433
  }
2234
1434
  enterRule(listener) {
2235
- if (listener.enterCompOp) {
2236
- listener.enterCompOp(this);
1435
+ if (listener.enterQualifiedIdentifier) {
1436
+ listener.enterQualifiedIdentifier(this);
2237
1437
  }
2238
1438
  }
2239
1439
  exitRule(listener) {
2240
- if (listener.exitCompOp) {
2241
- listener.exitCompOp(this);
1440
+ if (listener.exitQualifiedIdentifier) {
1441
+ listener.exitQualifiedIdentifier(this);
2242
1442
  }
2243
1443
  }
2244
1444
  // @Override
2245
1445
  accept(visitor) {
2246
- if (visitor.visitCompOp) {
2247
- return visitor.visitCompOp(this);
1446
+ if (visitor.visitQualifiedIdentifier) {
1447
+ return visitor.visitQualifiedIdentifier(this);
2248
1448
  }
2249
1449
  else {
2250
1450
  return visitor.visitChildren(this);
2251
1451
  }
2252
1452
  }
2253
1453
  }
2254
- export class ArthOpContext extends ParserRuleContext {
1454
+ export class ExternalConstantContext extends ParserRuleContext {
2255
1455
  constructor(parser, parent, invokingState) {
2256
1456
  super(parent, invokingState);
2257
1457
  this.parser = parser;
2258
1458
  }
1459
+ identifier() {
1460
+ return this.getTypedRuleContext(IdentifierContext, 0);
1461
+ }
2259
1462
  get ruleIndex() {
2260
- return OpraFilterParser.RULE_arthOp;
1463
+ return OpraFilterParser.RULE_externalConstant;
2261
1464
  }
2262
1465
  enterRule(listener) {
2263
- if (listener.enterArthOp) {
2264
- listener.enterArthOp(this);
1466
+ if (listener.enterExternalConstant) {
1467
+ listener.enterExternalConstant(this);
2265
1468
  }
2266
1469
  }
2267
1470
  exitRule(listener) {
2268
- if (listener.exitArthOp) {
2269
- listener.exitArthOp(this);
1471
+ if (listener.exitExternalConstant) {
1472
+ listener.exitExternalConstant(this);
2270
1473
  }
2271
1474
  }
2272
1475
  // @Override
2273
1476
  accept(visitor) {
2274
- if (visitor.visitArthOp) {
2275
- return visitor.visitArthOp(this);
1477
+ if (visitor.visitExternalConstant) {
1478
+ return visitor.visitExternalConstant(this);
2276
1479
  }
2277
1480
  else {
2278
1481
  return visitor.visitChildren(this);
2279
1482
  }
2280
1483
  }
2281
1484
  }
2282
- export class PolarOpContext extends ParserRuleContext {
1485
+ export class IdentifierContext extends ParserRuleContext {
2283
1486
  constructor(parser, parent, invokingState) {
2284
1487
  super(parent, invokingState);
2285
1488
  this.parser = parser;
2286
1489
  }
1490
+ IDENTIFIER() {
1491
+ return this.getToken(OpraFilterParser.IDENTIFIER, 0);
1492
+ }
2287
1493
  get ruleIndex() {
2288
- return OpraFilterParser.RULE_polarOp;
1494
+ return OpraFilterParser.RULE_identifier;
2289
1495
  }
2290
1496
  enterRule(listener) {
2291
- if (listener.enterPolarOp) {
2292
- listener.enterPolarOp(this);
1497
+ if (listener.enterIdentifier) {
1498
+ listener.enterIdentifier(this);
2293
1499
  }
2294
1500
  }
2295
1501
  exitRule(listener) {
2296
- if (listener.exitPolarOp) {
2297
- listener.exitPolarOp(this);
1502
+ if (listener.exitIdentifier) {
1503
+ listener.exitIdentifier(this);
2298
1504
  }
2299
1505
  }
2300
1506
  // @Override
2301
1507
  accept(visitor) {
2302
- if (visitor.visitPolarOp) {
2303
- return visitor.visitPolarOp(this);
1508
+ if (visitor.visitIdentifier) {
1509
+ return visitor.visitIdentifier(this);
2304
1510
  }
2305
1511
  else {
2306
1512
  return visitor.visitChildren(this);
2307
1513
  }
2308
1514
  }
2309
1515
  }
2310
- export class LogOpContext extends ParserRuleContext {
1516
+ export class ArrayValueContext extends ParserRuleContext {
2311
1517
  constructor(parser, parent, invokingState) {
2312
1518
  super(parent, invokingState);
2313
1519
  this.parser = parser;
2314
1520
  }
1521
+ value_list() {
1522
+ return this.getTypedRuleContexts(ValueContext);
1523
+ }
1524
+ value(i) {
1525
+ return this.getTypedRuleContext(ValueContext, i);
1526
+ }
2315
1527
  get ruleIndex() {
2316
- return OpraFilterParser.RULE_logOp;
1528
+ return OpraFilterParser.RULE_arrayValue;
2317
1529
  }
2318
1530
  enterRule(listener) {
2319
- if (listener.enterLogOp) {
2320
- listener.enterLogOp(this);
1531
+ if (listener.enterArrayValue) {
1532
+ listener.enterArrayValue(this);
2321
1533
  }
2322
1534
  }
2323
1535
  exitRule(listener) {
2324
- if (listener.exitLogOp) {
2325
- listener.exitLogOp(this);
1536
+ if (listener.exitArrayValue) {
1537
+ listener.exitArrayValue(this);
2326
1538
  }
2327
1539
  }
2328
1540
  // @Override
2329
1541
  accept(visitor) {
2330
- if (visitor.visitLogOp) {
2331
- return visitor.visitLogOp(this);
1542
+ if (visitor.visitArrayValue) {
1543
+ return visitor.visitArrayValue(this);
2332
1544
  }
2333
1545
  else {
2334
1546
  return visitor.visitChildren(this);
@@ -2419,3 +1631,118 @@ export class InfinityContext extends ParserRuleContext {
2419
1631
  }
2420
1632
  }
2421
1633
  }
1634
+ export class ArithmeticOperatorContext extends ParserRuleContext {
1635
+ constructor(parser, parent, invokingState) {
1636
+ super(parent, invokingState);
1637
+ this.parser = parser;
1638
+ }
1639
+ get ruleIndex() {
1640
+ return OpraFilterParser.RULE_arithmeticOperator;
1641
+ }
1642
+ enterRule(listener) {
1643
+ if (listener.enterArithmeticOperator) {
1644
+ listener.enterArithmeticOperator(this);
1645
+ }
1646
+ }
1647
+ exitRule(listener) {
1648
+ if (listener.exitArithmeticOperator) {
1649
+ listener.exitArithmeticOperator(this);
1650
+ }
1651
+ }
1652
+ // @Override
1653
+ accept(visitor) {
1654
+ if (visitor.visitArithmeticOperator) {
1655
+ return visitor.visitArithmeticOperator(this);
1656
+ }
1657
+ else {
1658
+ return visitor.visitChildren(this);
1659
+ }
1660
+ }
1661
+ }
1662
+ export class ComparisonOperatorContext extends ParserRuleContext {
1663
+ constructor(parser, parent, invokingState) {
1664
+ super(parent, invokingState);
1665
+ this.parser = parser;
1666
+ }
1667
+ get ruleIndex() {
1668
+ return OpraFilterParser.RULE_comparisonOperator;
1669
+ }
1670
+ enterRule(listener) {
1671
+ if (listener.enterComparisonOperator) {
1672
+ listener.enterComparisonOperator(this);
1673
+ }
1674
+ }
1675
+ exitRule(listener) {
1676
+ if (listener.exitComparisonOperator) {
1677
+ listener.exitComparisonOperator(this);
1678
+ }
1679
+ }
1680
+ // @Override
1681
+ accept(visitor) {
1682
+ if (visitor.visitComparisonOperator) {
1683
+ return visitor.visitComparisonOperator(this);
1684
+ }
1685
+ else {
1686
+ return visitor.visitChildren(this);
1687
+ }
1688
+ }
1689
+ }
1690
+ export class LogicalOperatorContext extends ParserRuleContext {
1691
+ constructor(parser, parent, invokingState) {
1692
+ super(parent, invokingState);
1693
+ this.parser = parser;
1694
+ }
1695
+ get ruleIndex() {
1696
+ return OpraFilterParser.RULE_logicalOperator;
1697
+ }
1698
+ enterRule(listener) {
1699
+ if (listener.enterLogicalOperator) {
1700
+ listener.enterLogicalOperator(this);
1701
+ }
1702
+ }
1703
+ exitRule(listener) {
1704
+ if (listener.exitLogicalOperator) {
1705
+ listener.exitLogicalOperator(this);
1706
+ }
1707
+ }
1708
+ // @Override
1709
+ accept(visitor) {
1710
+ if (visitor.visitLogicalOperator) {
1711
+ return visitor.visitLogicalOperator(this);
1712
+ }
1713
+ else {
1714
+ return visitor.visitChildren(this);
1715
+ }
1716
+ }
1717
+ }
1718
+ export class PolarityOperatorContext extends ParserRuleContext {
1719
+ constructor(parser, parent, invokingState) {
1720
+ super(parent, invokingState);
1721
+ this.parser = parser;
1722
+ }
1723
+ POLAR_OP() {
1724
+ return this.getToken(OpraFilterParser.POLAR_OP, 0);
1725
+ }
1726
+ get ruleIndex() {
1727
+ return OpraFilterParser.RULE_polarityOperator;
1728
+ }
1729
+ enterRule(listener) {
1730
+ if (listener.enterPolarityOperator) {
1731
+ listener.enterPolarityOperator(this);
1732
+ }
1733
+ }
1734
+ exitRule(listener) {
1735
+ if (listener.exitPolarityOperator) {
1736
+ listener.exitPolarityOperator(this);
1737
+ }
1738
+ }
1739
+ // @Override
1740
+ accept(visitor) {
1741
+ if (visitor.visitPolarityOperator) {
1742
+ return visitor.visitPolarityOperator(this);
1743
+ }
1744
+ else {
1745
+ return visitor.visitChildren(this);
1746
+ }
1747
+ }
1748
+ }