dt-sql-parser 4.5.2-beta.1 → 4.5.2-beta.2

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.
@@ -22,21 +22,21 @@ export class GenericSqlParser extends SQLParserBase {
22
22
  try {
23
23
  this.enterOuterAlt(localContext, 1);
24
24
  {
25
- this.state = 113;
25
+ this.state = 121;
26
26
  this.errorHandler.sync(this);
27
27
  _la = this.tokenStream.LA(1);
28
28
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 276824196) !== 0) || _la === 32 || _la === 49 || ((((_la - 76)) & ~0x1F) === 0 && ((1 << (_la - 76)) & 270337) !== 0)) {
29
29
  {
30
30
  {
31
- this.state = 110;
31
+ this.state = 118;
32
32
  this.statements();
33
33
  }
34
34
  }
35
- this.state = 115;
35
+ this.state = 123;
36
36
  this.errorHandler.sync(this);
37
37
  _la = this.tokenStream.LA(1);
38
38
  }
39
- this.state = 116;
39
+ this.state = 124;
40
40
  this.match(GenericSqlParser.EOF);
41
41
  }
42
42
  }
@@ -61,7 +61,7 @@ export class GenericSqlParser extends SQLParserBase {
61
61
  try {
62
62
  this.enterOuterAlt(localContext, 1);
63
63
  {
64
- this.state = 118;
64
+ this.state = 126;
65
65
  this.singleStatement();
66
66
  }
67
67
  }
@@ -87,14 +87,14 @@ export class GenericSqlParser extends SQLParserBase {
87
87
  try {
88
88
  this.enterOuterAlt(localContext, 1);
89
89
  {
90
- this.state = 120;
90
+ this.state = 128;
91
91
  this.statement();
92
- this.state = 122;
92
+ this.state = 130;
93
93
  this.errorHandler.sync(this);
94
94
  _la = this.tokenStream.LA(1);
95
95
  if (_la === 108) {
96
96
  {
97
- this.state = 121;
97
+ this.state = 129;
98
98
  this.match(GenericSqlParser.SEMICOLON);
99
99
  }
100
100
  }
@@ -119,7 +119,7 @@ export class GenericSqlParser extends SQLParserBase {
119
119
  let localContext = new StatementContext(this.context, this.state);
120
120
  this.enterRule(localContext, 6, GenericSqlParser.RULE_statement);
121
121
  try {
122
- this.state = 131;
122
+ this.state = 139;
123
123
  this.errorHandler.sync(this);
124
124
  switch (this.tokenStream.LA(1)) {
125
125
  case GenericSqlParser.T__1:
@@ -128,7 +128,7 @@ export class GenericSqlParser extends SQLParserBase {
128
128
  localContext = new StatementDefaultContext(localContext);
129
129
  this.enterOuterAlt(localContext, 1);
130
130
  {
131
- this.state = 124;
131
+ this.state = 132;
132
132
  this.queryStatement();
133
133
  }
134
134
  break;
@@ -136,7 +136,7 @@ export class GenericSqlParser extends SQLParserBase {
136
136
  localContext = new InsertContext(localContext);
137
137
  this.enterOuterAlt(localContext, 2);
138
138
  {
139
- this.state = 125;
139
+ this.state = 133;
140
140
  this.insertStatement();
141
141
  }
142
142
  break;
@@ -144,7 +144,7 @@ export class GenericSqlParser extends SQLParserBase {
144
144
  localContext = new UpdateContext(localContext);
145
145
  this.enterOuterAlt(localContext, 3);
146
146
  {
147
- this.state = 126;
147
+ this.state = 134;
148
148
  this.updateStatement();
149
149
  }
150
150
  break;
@@ -152,7 +152,7 @@ export class GenericSqlParser extends SQLParserBase {
152
152
  localContext = new DeleteContext(localContext);
153
153
  this.enterOuterAlt(localContext, 4);
154
154
  {
155
- this.state = 127;
155
+ this.state = 135;
156
156
  this.deleteStatement();
157
157
  }
158
158
  break;
@@ -160,7 +160,7 @@ export class GenericSqlParser extends SQLParserBase {
160
160
  localContext = new CreateTableContext(localContext);
161
161
  this.enterOuterAlt(localContext, 5);
162
162
  {
163
- this.state = 128;
163
+ this.state = 136;
164
164
  this.createTableStatement();
165
165
  }
166
166
  break;
@@ -168,7 +168,7 @@ export class GenericSqlParser extends SQLParserBase {
168
168
  localContext = new AlterTableContext(localContext);
169
169
  this.enterOuterAlt(localContext, 6);
170
170
  {
171
- this.state = 129;
171
+ this.state = 137;
172
172
  this.alterTableStatement();
173
173
  }
174
174
  break;
@@ -176,7 +176,7 @@ export class GenericSqlParser extends SQLParserBase {
176
176
  localContext = new DropTableContext(localContext);
177
177
  this.enterOuterAlt(localContext, 7);
178
178
  {
179
- this.state = 130;
179
+ this.state = 138;
180
180
  this.dropTableStatement();
181
181
  }
182
182
  break;
@@ -206,16 +206,16 @@ export class GenericSqlParser extends SQLParserBase {
206
206
  try {
207
207
  this.enterOuterAlt(localContext, 1);
208
208
  {
209
- this.state = 134;
209
+ this.state = 142;
210
210
  this.errorHandler.sync(this);
211
211
  _la = this.tokenStream.LA(1);
212
212
  if (_la === 94) {
213
213
  {
214
- this.state = 133;
214
+ this.state = 141;
215
215
  this.withClause();
216
216
  }
217
217
  }
218
- this.state = 136;
218
+ this.state = 144;
219
219
  this.queryNoWith();
220
220
  }
221
221
  }
@@ -241,32 +241,32 @@ export class GenericSqlParser extends SQLParserBase {
241
241
  try {
242
242
  this.enterOuterAlt(localContext, 1);
243
243
  {
244
- this.state = 138;
244
+ this.state = 146;
245
245
  this.match(GenericSqlParser.KW_WITH);
246
- this.state = 140;
246
+ this.state = 148;
247
247
  this.errorHandler.sync(this);
248
248
  _la = this.tokenStream.LA(1);
249
249
  if (_la === 72) {
250
250
  {
251
- this.state = 139;
251
+ this.state = 147;
252
252
  this.match(GenericSqlParser.KW_RECURSIVE);
253
253
  }
254
254
  }
255
- this.state = 142;
255
+ this.state = 150;
256
256
  this.namedQuery();
257
- this.state = 147;
257
+ this.state = 155;
258
258
  this.errorHandler.sync(this);
259
259
  _la = this.tokenStream.LA(1);
260
260
  while (_la === 1) {
261
261
  {
262
262
  {
263
- this.state = 143;
263
+ this.state = 151;
264
264
  this.match(GenericSqlParser.T__0);
265
- this.state = 144;
265
+ this.state = 152;
266
266
  this.namedQuery();
267
267
  }
268
268
  }
269
- this.state = 149;
269
+ this.state = 157;
270
270
  this.errorHandler.sync(this);
271
271
  _la = this.tokenStream.LA(1);
272
272
  }
@@ -294,24 +294,24 @@ export class GenericSqlParser extends SQLParserBase {
294
294
  try {
295
295
  this.enterOuterAlt(localContext, 1);
296
296
  {
297
- this.state = 150;
297
+ this.state = 158;
298
298
  localContext._name = this.identifier();
299
- this.state = 152;
299
+ this.state = 160;
300
300
  this.errorHandler.sync(this);
301
301
  _la = this.tokenStream.LA(1);
302
302
  if (_la === 2) {
303
303
  {
304
- this.state = 151;
304
+ this.state = 159;
305
305
  this.cteColumnList();
306
306
  }
307
307
  }
308
- this.state = 154;
308
+ this.state = 162;
309
309
  this.match(GenericSqlParser.KW_AS);
310
- this.state = 155;
310
+ this.state = 163;
311
311
  this.match(GenericSqlParser.T__1);
312
- this.state = 156;
312
+ this.state = 164;
313
313
  this.queryStatement();
314
- this.state = 157;
314
+ this.state = 165;
315
315
  this.match(GenericSqlParser.T__2);
316
316
  }
317
317
  }
@@ -337,27 +337,27 @@ export class GenericSqlParser extends SQLParserBase {
337
337
  try {
338
338
  this.enterOuterAlt(localContext, 1);
339
339
  {
340
- this.state = 159;
340
+ this.state = 167;
341
341
  this.match(GenericSqlParser.T__1);
342
- this.state = 160;
342
+ this.state = 168;
343
343
  this.identifier();
344
- this.state = 165;
344
+ this.state = 173;
345
345
  this.errorHandler.sync(this);
346
346
  _la = this.tokenStream.LA(1);
347
347
  while (_la === 1) {
348
348
  {
349
349
  {
350
- this.state = 161;
350
+ this.state = 169;
351
351
  this.match(GenericSqlParser.T__0);
352
- this.state = 162;
352
+ this.state = 170;
353
353
  this.identifier();
354
354
  }
355
355
  }
356
- this.state = 167;
356
+ this.state = 175;
357
357
  this.errorHandler.sync(this);
358
358
  _la = this.tokenStream.LA(1);
359
359
  }
360
- this.state = 168;
360
+ this.state = 176;
361
361
  this.match(GenericSqlParser.T__2);
362
362
  }
363
363
  }
@@ -383,15 +383,15 @@ export class GenericSqlParser extends SQLParserBase {
383
383
  try {
384
384
  this.enterOuterAlt(localContext, 1);
385
385
  {
386
- this.state = 170;
387
- this.queryTerm();
388
386
  this.state = 178;
387
+ this.queryTerm();
388
+ this.state = 186;
389
389
  this.errorHandler.sync(this);
390
390
  _la = this.tokenStream.LA(1);
391
391
  while (_la === 36 || _la === 52 || _la === 87) {
392
392
  {
393
393
  {
394
- this.state = 171;
394
+ this.state = 179;
395
395
  _la = this.tokenStream.LA(1);
396
396
  if (!(_la === 36 || _la === 52 || _la === 87)) {
397
397
  this.errorHandler.recoverInline(this);
@@ -400,20 +400,20 @@ export class GenericSqlParser extends SQLParserBase {
400
400
  this.errorHandler.reportMatch(this);
401
401
  this.consume();
402
402
  }
403
- this.state = 173;
403
+ this.state = 181;
404
404
  this.errorHandler.sync(this);
405
405
  _la = this.tokenStream.LA(1);
406
406
  if (_la === 6) {
407
407
  {
408
- this.state = 172;
408
+ this.state = 180;
409
409
  this.match(GenericSqlParser.KW_ALL);
410
410
  }
411
411
  }
412
- this.state = 175;
412
+ this.state = 183;
413
413
  this.queryTerm();
414
414
  }
415
415
  }
416
- this.state = 180;
416
+ this.state = 188;
417
417
  this.errorHandler.sync(this);
418
418
  _la = this.tokenStream.LA(1);
419
419
  }
@@ -440,7 +440,7 @@ export class GenericSqlParser extends SQLParserBase {
440
440
  try {
441
441
  this.enterOuterAlt(localContext, 1);
442
442
  {
443
- this.state = 181;
443
+ this.state = 189;
444
444
  this.queryPrimary();
445
445
  }
446
446
  }
@@ -463,24 +463,24 @@ export class GenericSqlParser extends SQLParserBase {
463
463
  let localContext = new QueryPrimaryContext(this.context, this.state);
464
464
  this.enterRule(localContext, 20, GenericSqlParser.RULE_queryPrimary);
465
465
  try {
466
- this.state = 188;
466
+ this.state = 196;
467
467
  this.errorHandler.sync(this);
468
468
  switch (this.tokenStream.LA(1)) {
469
469
  case GenericSqlParser.KW_SELECT:
470
470
  this.enterOuterAlt(localContext, 1);
471
471
  {
472
- this.state = 183;
472
+ this.state = 191;
473
473
  this.querySpecification();
474
474
  }
475
475
  break;
476
476
  case GenericSqlParser.T__1:
477
477
  this.enterOuterAlt(localContext, 2);
478
478
  {
479
- this.state = 184;
479
+ this.state = 192;
480
480
  this.match(GenericSqlParser.T__1);
481
- this.state = 185;
481
+ this.state = 193;
482
482
  this.queryStatement();
483
- this.state = 186;
483
+ this.state = 194;
484
484
  this.match(GenericSqlParser.T__2);
485
485
  }
486
486
  break;
@@ -510,87 +510,87 @@ export class GenericSqlParser extends SQLParserBase {
510
510
  try {
511
511
  this.enterOuterAlt(localContext, 1);
512
512
  {
513
- this.state = 190;
513
+ this.state = 198;
514
514
  this.match(GenericSqlParser.KW_SELECT);
515
- this.state = 192;
515
+ this.state = 200;
516
516
  this.errorHandler.sync(this);
517
517
  switch (this.interpreter.adaptivePredict(this.tokenStream, 11, this.context)) {
518
518
  case 1:
519
519
  {
520
- this.state = 191;
520
+ this.state = 199;
521
521
  this.setQuantifier();
522
522
  }
523
523
  break;
524
524
  }
525
- this.state = 194;
525
+ this.state = 202;
526
526
  this.selectItem();
527
- this.state = 199;
527
+ this.state = 207;
528
528
  this.errorHandler.sync(this);
529
529
  _la = this.tokenStream.LA(1);
530
530
  while (_la === 1) {
531
531
  {
532
532
  {
533
- this.state = 195;
533
+ this.state = 203;
534
534
  this.match(GenericSqlParser.T__0);
535
- this.state = 196;
535
+ this.state = 204;
536
536
  this.selectItem();
537
537
  }
538
538
  }
539
- this.state = 201;
539
+ this.state = 209;
540
540
  this.errorHandler.sync(this);
541
541
  _la = this.tokenStream.LA(1);
542
542
  }
543
- this.state = 203;
543
+ this.state = 211;
544
544
  this.errorHandler.sync(this);
545
545
  _la = this.tokenStream.LA(1);
546
546
  if (_la === 42) {
547
547
  {
548
- this.state = 202;
548
+ this.state = 210;
549
549
  this.fromClause();
550
550
  }
551
551
  }
552
- this.state = 206;
552
+ this.state = 214;
553
553
  this.errorHandler.sync(this);
554
554
  _la = this.tokenStream.LA(1);
555
555
  if (_la === 93) {
556
556
  {
557
- this.state = 205;
557
+ this.state = 213;
558
558
  this.whereClause();
559
559
  }
560
560
  }
561
- this.state = 209;
561
+ this.state = 217;
562
562
  this.errorHandler.sync(this);
563
563
  _la = this.tokenStream.LA(1);
564
564
  if (_la === 44) {
565
565
  {
566
- this.state = 208;
566
+ this.state = 216;
567
567
  this.groupByClause();
568
568
  }
569
569
  }
570
- this.state = 212;
570
+ this.state = 220;
571
571
  this.errorHandler.sync(this);
572
572
  _la = this.tokenStream.LA(1);
573
573
  if (_la === 45) {
574
574
  {
575
- this.state = 211;
575
+ this.state = 219;
576
576
  this.havingClause();
577
577
  }
578
578
  }
579
- this.state = 215;
579
+ this.state = 223;
580
580
  this.errorHandler.sync(this);
581
581
  _la = this.tokenStream.LA(1);
582
582
  if (_la === 69) {
583
583
  {
584
- this.state = 214;
584
+ this.state = 222;
585
585
  this.orderByClause();
586
586
  }
587
587
  }
588
- this.state = 218;
588
+ this.state = 226;
589
589
  this.errorHandler.sync(this);
590
590
  _la = this.tokenStream.LA(1);
591
591
  if (_la === 60) {
592
592
  {
593
- this.state = 217;
593
+ this.state = 225;
594
594
  this.limitClause();
595
595
  }
596
596
  }
@@ -618,7 +618,7 @@ export class GenericSqlParser extends SQLParserBase {
618
618
  try {
619
619
  this.enterOuterAlt(localContext, 1);
620
620
  {
621
- this.state = 220;
621
+ this.state = 228;
622
622
  _la = this.tokenStream.LA(1);
623
623
  if (!(_la === 6 || _la === 30)) {
624
624
  this.errorHandler.recoverInline(this);
@@ -649,29 +649,30 @@ export class GenericSqlParser extends SQLParserBase {
649
649
  this.enterRule(localContext, 26, GenericSqlParser.RULE_selectItem);
650
650
  let _la;
651
651
  try {
652
- this.state = 234;
652
+ this.state = 244;
653
653
  this.errorHandler.sync(this);
654
654
  switch (this.interpreter.adaptivePredict(this.tokenStream, 21, this.context)) {
655
655
  case 1:
656
+ localContext = new SelectExpressionElementContext(localContext);
656
657
  this.enterOuterAlt(localContext, 1);
657
658
  {
658
- this.state = 222;
659
+ this.state = 230;
659
660
  this.expression();
660
- this.state = 227;
661
+ this.state = 235;
661
662
  this.errorHandler.sync(this);
662
663
  switch (this.interpreter.adaptivePredict(this.tokenStream, 20, this.context)) {
663
664
  case 1:
664
665
  {
665
- this.state = 224;
666
+ this.state = 232;
666
667
  this.errorHandler.sync(this);
667
668
  _la = this.tokenStream.LA(1);
668
669
  if (_la === 9) {
669
670
  {
670
- this.state = 223;
671
+ this.state = 231;
671
672
  this.match(GenericSqlParser.KW_AS);
672
673
  }
673
674
  }
674
- this.state = 226;
675
+ this.state = 234;
675
676
  localContext._alias = this.identifier();
676
677
  }
677
678
  break;
@@ -679,23 +680,37 @@ export class GenericSqlParser extends SQLParserBase {
679
680
  }
680
681
  break;
681
682
  case 2:
683
+ localContext = new SelectStarElementContext(localContext);
682
684
  this.enterOuterAlt(localContext, 2);
683
685
  {
684
- this.state = 229;
686
+ this.state = 237;
685
687
  this.qualifiedName();
686
- this.state = 230;
688
+ this.state = 238;
687
689
  this.match(GenericSqlParser.T__3);
688
- this.state = 231;
690
+ this.state = 239;
689
691
  this.match(GenericSqlParser.ASTERISK);
690
692
  }
691
693
  break;
692
694
  case 3:
695
+ localContext = new SelectAllElementContext(localContext);
693
696
  this.enterOuterAlt(localContext, 3);
694
697
  {
695
- this.state = 233;
698
+ this.state = 241;
696
699
  this.match(GenericSqlParser.ASTERISK);
697
700
  }
698
701
  break;
702
+ case 4:
703
+ localContext = new SelectEmptyElementContext(localContext);
704
+ this.enterOuterAlt(localContext, 4);
705
+ {
706
+ this.state = 242;
707
+ if (!(this.shouldMatchEmpty())) {
708
+ throw this.createFailedPredicateException("this.shouldMatchEmpty()");
709
+ }
710
+ this.state = 243;
711
+ this.emptyColumn();
712
+ }
713
+ break;
699
714
  }
700
715
  }
701
716
  catch (re) {
@@ -720,23 +735,23 @@ export class GenericSqlParser extends SQLParserBase {
720
735
  try {
721
736
  this.enterOuterAlt(localContext, 1);
722
737
  {
723
- this.state = 236;
738
+ this.state = 246;
724
739
  this.match(GenericSqlParser.KW_FROM);
725
- this.state = 237;
740
+ this.state = 247;
726
741
  this.relation(0);
727
- this.state = 242;
742
+ this.state = 252;
728
743
  this.errorHandler.sync(this);
729
744
  _la = this.tokenStream.LA(1);
730
745
  while (_la === 1) {
731
746
  {
732
747
  {
733
- this.state = 238;
748
+ this.state = 248;
734
749
  this.match(GenericSqlParser.T__0);
735
- this.state = 239;
750
+ this.state = 249;
736
751
  this.relation(0);
737
752
  }
738
753
  }
739
- this.state = 244;
754
+ this.state = 254;
740
755
  this.errorHandler.sync(this);
741
756
  _la = this.tokenStream.LA(1);
742
757
  }
@@ -775,11 +790,11 @@ export class GenericSqlParser extends SQLParserBase {
775
790
  localContext = new SimpleRelationContext(localContext);
776
791
  this.context = localContext;
777
792
  previousContext = localContext;
778
- this.state = 246;
793
+ this.state = 256;
779
794
  this.aliasedRelation();
780
795
  }
781
796
  this.context.stop = this.tokenStream.LT(-1);
782
- this.state = 257;
797
+ this.state = 267;
783
798
  this.errorHandler.sync(this);
784
799
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 23, this.context);
785
800
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -793,24 +808,24 @@ export class GenericSqlParser extends SQLParserBase {
793
808
  localContext = new JoinRelationContext(new RelationContext(parentContext, parentState));
794
809
  localContext._left = previousContext;
795
810
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_relation);
796
- this.state = 248;
811
+ this.state = 258;
797
812
  if (!(this.precpred(this.context, 2))) {
798
813
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
799
814
  }
800
- this.state = 249;
815
+ this.state = 259;
801
816
  this.joinType();
802
- this.state = 250;
817
+ this.state = 260;
803
818
  this.match(GenericSqlParser.KW_JOIN);
804
- this.state = 251;
819
+ this.state = 261;
805
820
  localContext._right = this.relation(0);
806
- this.state = 252;
821
+ this.state = 262;
807
822
  this.match(GenericSqlParser.KW_ON);
808
- this.state = 253;
823
+ this.state = 263;
809
824
  localContext._condition = this.expression();
810
825
  }
811
826
  }
812
827
  }
813
- this.state = 259;
828
+ this.state = 269;
814
829
  this.errorHandler.sync(this);
815
830
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 23, this.context);
816
831
  }
@@ -836,19 +851,19 @@ export class GenericSqlParser extends SQLParserBase {
836
851
  this.enterRule(localContext, 32, GenericSqlParser.RULE_joinType);
837
852
  let _la;
838
853
  try {
839
- this.state = 276;
854
+ this.state = 286;
840
855
  this.errorHandler.sync(this);
841
856
  switch (this.tokenStream.LA(1)) {
842
857
  case GenericSqlParser.KW_INNER:
843
858
  case GenericSqlParser.KW_JOIN:
844
859
  this.enterOuterAlt(localContext, 1);
845
860
  {
846
- this.state = 261;
861
+ this.state = 271;
847
862
  this.errorHandler.sync(this);
848
863
  _la = this.tokenStream.LA(1);
849
864
  if (_la === 48) {
850
865
  {
851
- this.state = 260;
866
+ this.state = 270;
852
867
  this.match(GenericSqlParser.KW_INNER);
853
868
  }
854
869
  }
@@ -857,14 +872,14 @@ export class GenericSqlParser extends SQLParserBase {
857
872
  case GenericSqlParser.KW_LEFT:
858
873
  this.enterOuterAlt(localContext, 2);
859
874
  {
860
- this.state = 263;
875
+ this.state = 273;
861
876
  this.match(GenericSqlParser.KW_LEFT);
862
- this.state = 265;
877
+ this.state = 275;
863
878
  this.errorHandler.sync(this);
864
879
  _la = this.tokenStream.LA(1);
865
880
  if (_la === 70) {
866
881
  {
867
- this.state = 264;
882
+ this.state = 274;
868
883
  this.match(GenericSqlParser.KW_OUTER);
869
884
  }
870
885
  }
@@ -873,14 +888,14 @@ export class GenericSqlParser extends SQLParserBase {
873
888
  case GenericSqlParser.KW_RIGHT:
874
889
  this.enterOuterAlt(localContext, 3);
875
890
  {
876
- this.state = 267;
891
+ this.state = 277;
877
892
  this.match(GenericSqlParser.KW_RIGHT);
878
- this.state = 269;
893
+ this.state = 279;
879
894
  this.errorHandler.sync(this);
880
895
  _la = this.tokenStream.LA(1);
881
896
  if (_la === 70) {
882
897
  {
883
- this.state = 268;
898
+ this.state = 278;
884
899
  this.match(GenericSqlParser.KW_OUTER);
885
900
  }
886
901
  }
@@ -889,14 +904,14 @@ export class GenericSqlParser extends SQLParserBase {
889
904
  case GenericSqlParser.KW_FULL:
890
905
  this.enterOuterAlt(localContext, 4);
891
906
  {
892
- this.state = 271;
907
+ this.state = 281;
893
908
  this.match(GenericSqlParser.KW_FULL);
894
- this.state = 273;
909
+ this.state = 283;
895
910
  this.errorHandler.sync(this);
896
911
  _la = this.tokenStream.LA(1);
897
912
  if (_la === 70) {
898
913
  {
899
- this.state = 272;
914
+ this.state = 282;
900
915
  this.match(GenericSqlParser.KW_OUTER);
901
916
  }
902
917
  }
@@ -905,7 +920,7 @@ export class GenericSqlParser extends SQLParserBase {
905
920
  case GenericSqlParser.KW_CROSS:
906
921
  this.enterOuterAlt(localContext, 5);
907
922
  {
908
- this.state = 275;
923
+ this.state = 285;
909
924
  this.match(GenericSqlParser.KW_CROSS);
910
925
  }
911
926
  break;
@@ -935,23 +950,23 @@ export class GenericSqlParser extends SQLParserBase {
935
950
  try {
936
951
  this.enterOuterAlt(localContext, 1);
937
952
  {
938
- this.state = 278;
953
+ this.state = 288;
939
954
  this.relationPrimary();
940
- this.state = 283;
955
+ this.state = 293;
941
956
  this.errorHandler.sync(this);
942
957
  switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
943
958
  case 1:
944
959
  {
945
- this.state = 280;
960
+ this.state = 290;
946
961
  this.errorHandler.sync(this);
947
962
  _la = this.tokenStream.LA(1);
948
963
  if (_la === 9) {
949
964
  {
950
- this.state = 279;
965
+ this.state = 289;
951
966
  this.match(GenericSqlParser.KW_AS);
952
967
  }
953
968
  }
954
- this.state = 282;
969
+ this.state = 292;
955
970
  localContext._alias = this.identifier();
956
971
  }
957
972
  break;
@@ -977,7 +992,7 @@ export class GenericSqlParser extends SQLParserBase {
977
992
  let localContext = new RelationPrimaryContext(this.context, this.state);
978
993
  this.enterRule(localContext, 36, GenericSqlParser.RULE_relationPrimary);
979
994
  try {
980
- this.state = 290;
995
+ this.state = 300;
981
996
  this.errorHandler.sync(this);
982
997
  switch (this.tokenStream.LA(1)) {
983
998
  case GenericSqlParser.KW_ADD:
@@ -1030,7 +1045,7 @@ export class GenericSqlParser extends SQLParserBase {
1030
1045
  localContext = new TableNameRelationContext(localContext);
1031
1046
  this.enterOuterAlt(localContext, 1);
1032
1047
  {
1033
- this.state = 285;
1048
+ this.state = 295;
1034
1049
  this.tableName();
1035
1050
  }
1036
1051
  break;
@@ -1038,11 +1053,11 @@ export class GenericSqlParser extends SQLParserBase {
1038
1053
  localContext = new SubqueryRelationContext(localContext);
1039
1054
  this.enterOuterAlt(localContext, 2);
1040
1055
  {
1041
- this.state = 286;
1056
+ this.state = 296;
1042
1057
  this.match(GenericSqlParser.T__1);
1043
- this.state = 287;
1058
+ this.state = 297;
1044
1059
  this.queryStatement();
1045
- this.state = 288;
1060
+ this.state = 298;
1046
1061
  this.match(GenericSqlParser.T__2);
1047
1062
  }
1048
1063
  break;
@@ -1071,10 +1086,24 @@ export class GenericSqlParser extends SQLParserBase {
1071
1086
  try {
1072
1087
  this.enterOuterAlt(localContext, 1);
1073
1088
  {
1074
- this.state = 292;
1089
+ this.state = 302;
1075
1090
  this.match(GenericSqlParser.KW_WHERE);
1076
- this.state = 293;
1077
- this.expression();
1091
+ this.state = 305;
1092
+ this.errorHandler.sync(this);
1093
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1094
+ case 1:
1095
+ {
1096
+ this.state = 303;
1097
+ this.expression();
1098
+ }
1099
+ break;
1100
+ case 2:
1101
+ {
1102
+ this.state = 304;
1103
+ this.emptyColumn();
1104
+ }
1105
+ break;
1106
+ }
1078
1107
  }
1079
1108
  }
1080
1109
  catch (re) {
@@ -1099,35 +1128,35 @@ export class GenericSqlParser extends SQLParserBase {
1099
1128
  try {
1100
1129
  this.enterOuterAlt(localContext, 1);
1101
1130
  {
1102
- this.state = 295;
1131
+ this.state = 307;
1103
1132
  this.match(GenericSqlParser.KW_GROUP);
1104
- this.state = 296;
1133
+ this.state = 308;
1105
1134
  this.match(GenericSqlParser.KW_BY);
1106
- this.state = 298;
1135
+ this.state = 310;
1107
1136
  this.errorHandler.sync(this);
1108
- switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1137
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1109
1138
  case 1:
1110
1139
  {
1111
- this.state = 297;
1140
+ this.state = 309;
1112
1141
  this.setQuantifier();
1113
1142
  }
1114
1143
  break;
1115
1144
  }
1116
- this.state = 300;
1145
+ this.state = 312;
1117
1146
  this.expression();
1118
- this.state = 305;
1147
+ this.state = 317;
1119
1148
  this.errorHandler.sync(this);
1120
1149
  _la = this.tokenStream.LA(1);
1121
1150
  while (_la === 1) {
1122
1151
  {
1123
1152
  {
1124
- this.state = 301;
1153
+ this.state = 313;
1125
1154
  this.match(GenericSqlParser.T__0);
1126
- this.state = 302;
1155
+ this.state = 314;
1127
1156
  this.expression();
1128
1157
  }
1129
1158
  }
1130
- this.state = 307;
1159
+ this.state = 319;
1131
1160
  this.errorHandler.sync(this);
1132
1161
  _la = this.tokenStream.LA(1);
1133
1162
  }
@@ -1154,10 +1183,24 @@ export class GenericSqlParser extends SQLParserBase {
1154
1183
  try {
1155
1184
  this.enterOuterAlt(localContext, 1);
1156
1185
  {
1157
- this.state = 308;
1186
+ this.state = 320;
1158
1187
  this.match(GenericSqlParser.KW_HAVING);
1159
- this.state = 309;
1160
- this.expression();
1188
+ this.state = 323;
1189
+ this.errorHandler.sync(this);
1190
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
1191
+ case 1:
1192
+ {
1193
+ this.state = 321;
1194
+ this.expression();
1195
+ }
1196
+ break;
1197
+ case 2:
1198
+ {
1199
+ this.state = 322;
1200
+ this.emptyColumn();
1201
+ }
1202
+ break;
1203
+ }
1161
1204
  }
1162
1205
  }
1163
1206
  catch (re) {
@@ -1182,25 +1225,25 @@ export class GenericSqlParser extends SQLParserBase {
1182
1225
  try {
1183
1226
  this.enterOuterAlt(localContext, 1);
1184
1227
  {
1185
- this.state = 311;
1228
+ this.state = 325;
1186
1229
  this.match(GenericSqlParser.KW_ORDER);
1187
- this.state = 312;
1230
+ this.state = 326;
1188
1231
  this.match(GenericSqlParser.KW_BY);
1189
- this.state = 313;
1232
+ this.state = 327;
1190
1233
  this.sortItem();
1191
- this.state = 318;
1234
+ this.state = 332;
1192
1235
  this.errorHandler.sync(this);
1193
1236
  _la = this.tokenStream.LA(1);
1194
1237
  while (_la === 1) {
1195
1238
  {
1196
1239
  {
1197
- this.state = 314;
1240
+ this.state = 328;
1198
1241
  this.match(GenericSqlParser.T__0);
1199
- this.state = 315;
1242
+ this.state = 329;
1200
1243
  this.sortItem();
1201
1244
  }
1202
1245
  }
1203
- this.state = 320;
1246
+ this.state = 334;
1204
1247
  this.errorHandler.sync(this);
1205
1248
  _la = this.tokenStream.LA(1);
1206
1249
  }
@@ -1228,14 +1271,14 @@ export class GenericSqlParser extends SQLParserBase {
1228
1271
  try {
1229
1272
  this.enterOuterAlt(localContext, 1);
1230
1273
  {
1231
- this.state = 321;
1274
+ this.state = 335;
1232
1275
  this.expression();
1233
- this.state = 323;
1276
+ this.state = 337;
1234
1277
  this.errorHandler.sync(this);
1235
1278
  _la = this.tokenStream.LA(1);
1236
1279
  if (_la === 10 || _la === 29) {
1237
1280
  {
1238
- this.state = 322;
1281
+ this.state = 336;
1239
1282
  localContext._ordering = this.tokenStream.LT(1);
1240
1283
  _la = this.tokenStream.LA(1);
1241
1284
  if (!(_la === 10 || _la === 29)) {
@@ -1247,14 +1290,14 @@ export class GenericSqlParser extends SQLParserBase {
1247
1290
  }
1248
1291
  }
1249
1292
  }
1250
- this.state = 327;
1293
+ this.state = 341;
1251
1294
  this.errorHandler.sync(this);
1252
1295
  _la = this.tokenStream.LA(1);
1253
1296
  if (_la === 64) {
1254
1297
  {
1255
- this.state = 325;
1298
+ this.state = 339;
1256
1299
  this.match(GenericSqlParser.KW_NULLS);
1257
- this.state = 326;
1300
+ this.state = 340;
1258
1301
  localContext._nullOrdering = this.tokenStream.LT(1);
1259
1302
  _la = this.tokenStream.LA(1);
1260
1303
  if (!(_la === 39 || _la === 57)) {
@@ -1290,18 +1333,18 @@ export class GenericSqlParser extends SQLParserBase {
1290
1333
  try {
1291
1334
  this.enterOuterAlt(localContext, 1);
1292
1335
  {
1293
- this.state = 329;
1336
+ this.state = 343;
1294
1337
  this.match(GenericSqlParser.KW_LIMIT);
1295
- this.state = 330;
1338
+ this.state = 344;
1296
1339
  localContext._limit = this.expression();
1297
- this.state = 333;
1340
+ this.state = 347;
1298
1341
  this.errorHandler.sync(this);
1299
1342
  _la = this.tokenStream.LA(1);
1300
1343
  if (_la === 66) {
1301
1344
  {
1302
- this.state = 331;
1345
+ this.state = 345;
1303
1346
  this.match(GenericSqlParser.KW_OFFSET);
1304
- this.state = 332;
1347
+ this.state = 346;
1305
1348
  localContext._offset = this.expression();
1306
1349
  }
1307
1350
  }
@@ -1328,23 +1371,23 @@ export class GenericSqlParser extends SQLParserBase {
1328
1371
  try {
1329
1372
  this.enterOuterAlt(localContext, 1);
1330
1373
  {
1331
- this.state = 335;
1374
+ this.state = 349;
1332
1375
  this.match(GenericSqlParser.KW_INSERT);
1333
- this.state = 336;
1376
+ this.state = 350;
1334
1377
  this.match(GenericSqlParser.KW_INTO);
1335
- this.state = 337;
1378
+ this.state = 351;
1336
1379
  this.tableName();
1337
- this.state = 339;
1380
+ this.state = 353;
1338
1381
  this.errorHandler.sync(this);
1339
- switch (this.interpreter.adaptivePredict(this.tokenStream, 38, this.context)) {
1382
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 40, this.context)) {
1340
1383
  case 1:
1341
1384
  {
1342
- this.state = 338;
1385
+ this.state = 352;
1343
1386
  this.columnList();
1344
1387
  }
1345
1388
  break;
1346
1389
  }
1347
- this.state = 341;
1390
+ this.state = 355;
1348
1391
  this.queryStatement();
1349
1392
  }
1350
1393
  }
@@ -1370,27 +1413,27 @@ export class GenericSqlParser extends SQLParserBase {
1370
1413
  try {
1371
1414
  this.enterOuterAlt(localContext, 1);
1372
1415
  {
1373
- this.state = 343;
1416
+ this.state = 357;
1374
1417
  this.match(GenericSqlParser.T__1);
1375
- this.state = 344;
1418
+ this.state = 358;
1376
1419
  this.columnRef();
1377
- this.state = 349;
1420
+ this.state = 363;
1378
1421
  this.errorHandler.sync(this);
1379
1422
  _la = this.tokenStream.LA(1);
1380
1423
  while (_la === 1) {
1381
1424
  {
1382
1425
  {
1383
- this.state = 345;
1426
+ this.state = 359;
1384
1427
  this.match(GenericSqlParser.T__0);
1385
- this.state = 346;
1428
+ this.state = 360;
1386
1429
  this.columnRef();
1387
1430
  }
1388
1431
  }
1389
- this.state = 351;
1432
+ this.state = 365;
1390
1433
  this.errorHandler.sync(this);
1391
1434
  _la = this.tokenStream.LA(1);
1392
1435
  }
1393
- this.state = 352;
1436
+ this.state = 366;
1394
1437
  this.match(GenericSqlParser.T__2);
1395
1438
  }
1396
1439
  }
@@ -1416,36 +1459,36 @@ export class GenericSqlParser extends SQLParserBase {
1416
1459
  try {
1417
1460
  this.enterOuterAlt(localContext, 1);
1418
1461
  {
1419
- this.state = 354;
1462
+ this.state = 368;
1420
1463
  this.match(GenericSqlParser.KW_UPDATE);
1421
- this.state = 355;
1464
+ this.state = 369;
1422
1465
  this.tableName();
1423
- this.state = 356;
1466
+ this.state = 370;
1424
1467
  this.match(GenericSqlParser.KW_SET);
1425
- this.state = 357;
1468
+ this.state = 371;
1426
1469
  this.updateAssignment();
1427
- this.state = 362;
1470
+ this.state = 376;
1428
1471
  this.errorHandler.sync(this);
1429
1472
  _la = this.tokenStream.LA(1);
1430
1473
  while (_la === 1) {
1431
1474
  {
1432
1475
  {
1433
- this.state = 358;
1476
+ this.state = 372;
1434
1477
  this.match(GenericSqlParser.T__0);
1435
- this.state = 359;
1478
+ this.state = 373;
1436
1479
  this.updateAssignment();
1437
1480
  }
1438
1481
  }
1439
- this.state = 364;
1482
+ this.state = 378;
1440
1483
  this.errorHandler.sync(this);
1441
1484
  _la = this.tokenStream.LA(1);
1442
1485
  }
1443
- this.state = 366;
1486
+ this.state = 380;
1444
1487
  this.errorHandler.sync(this);
1445
1488
  _la = this.tokenStream.LA(1);
1446
1489
  if (_la === 93) {
1447
1490
  {
1448
- this.state = 365;
1491
+ this.state = 379;
1449
1492
  this.whereClause();
1450
1493
  }
1451
1494
  }
@@ -1472,11 +1515,11 @@ export class GenericSqlParser extends SQLParserBase {
1472
1515
  try {
1473
1516
  this.enterOuterAlt(localContext, 1);
1474
1517
  {
1475
- this.state = 368;
1518
+ this.state = 382;
1476
1519
  this.columnRef();
1477
- this.state = 369;
1520
+ this.state = 383;
1478
1521
  this.match(GenericSqlParser.EQ);
1479
- this.state = 370;
1522
+ this.state = 384;
1480
1523
  this.expression();
1481
1524
  }
1482
1525
  }
@@ -1502,18 +1545,18 @@ export class GenericSqlParser extends SQLParserBase {
1502
1545
  try {
1503
1546
  this.enterOuterAlt(localContext, 1);
1504
1547
  {
1505
- this.state = 372;
1548
+ this.state = 386;
1506
1549
  this.match(GenericSqlParser.KW_DELETE);
1507
- this.state = 373;
1550
+ this.state = 387;
1508
1551
  this.match(GenericSqlParser.KW_FROM);
1509
- this.state = 374;
1552
+ this.state = 388;
1510
1553
  this.tableName();
1511
- this.state = 376;
1554
+ this.state = 390;
1512
1555
  this.errorHandler.sync(this);
1513
1556
  _la = this.tokenStream.LA(1);
1514
1557
  if (_la === 93) {
1515
1558
  {
1516
- this.state = 375;
1559
+ this.state = 389;
1517
1560
  this.whereClause();
1518
1561
  }
1519
1562
  }
@@ -1541,56 +1584,56 @@ export class GenericSqlParser extends SQLParserBase {
1541
1584
  try {
1542
1585
  this.enterOuterAlt(localContext, 1);
1543
1586
  {
1544
- this.state = 378;
1587
+ this.state = 392;
1545
1588
  this.match(GenericSqlParser.KW_CREATE);
1546
- this.state = 379;
1589
+ this.state = 393;
1547
1590
  this.match(GenericSqlParser.KW_TABLE);
1548
- this.state = 383;
1591
+ this.state = 397;
1549
1592
  this.errorHandler.sync(this);
1550
- switch (this.interpreter.adaptivePredict(this.tokenStream, 43, this.context)) {
1593
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
1551
1594
  case 1:
1552
1595
  {
1553
- this.state = 380;
1596
+ this.state = 394;
1554
1597
  this.match(GenericSqlParser.KW_IF);
1555
- this.state = 381;
1598
+ this.state = 395;
1556
1599
  this.match(GenericSqlParser.KW_NOT);
1557
- this.state = 382;
1600
+ this.state = 396;
1558
1601
  this.match(GenericSqlParser.KW_EXISTS);
1559
1602
  }
1560
1603
  break;
1561
1604
  }
1562
- this.state = 385;
1605
+ this.state = 399;
1563
1606
  this.tableNameCreate();
1564
- this.state = 386;
1607
+ this.state = 400;
1565
1608
  this.match(GenericSqlParser.T__1);
1566
- this.state = 387;
1609
+ this.state = 401;
1567
1610
  this.tableElement();
1568
- this.state = 392;
1611
+ this.state = 406;
1569
1612
  this.errorHandler.sync(this);
1570
1613
  _la = this.tokenStream.LA(1);
1571
1614
  while (_la === 1) {
1572
1615
  {
1573
1616
  {
1574
- this.state = 388;
1617
+ this.state = 402;
1575
1618
  this.match(GenericSqlParser.T__0);
1576
- this.state = 389;
1619
+ this.state = 403;
1577
1620
  this.tableElement();
1578
1621
  }
1579
1622
  }
1580
- this.state = 394;
1623
+ this.state = 408;
1581
1624
  this.errorHandler.sync(this);
1582
1625
  _la = this.tokenStream.LA(1);
1583
1626
  }
1584
- this.state = 395;
1627
+ this.state = 409;
1585
1628
  this.match(GenericSqlParser.T__2);
1586
- this.state = 398;
1629
+ this.state = 412;
1587
1630
  this.errorHandler.sync(this);
1588
- switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
1631
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 47, this.context)) {
1589
1632
  case 1:
1590
1633
  {
1591
- this.state = 396;
1634
+ this.state = 410;
1592
1635
  this.match(GenericSqlParser.KW_WITH);
1593
- this.state = 397;
1636
+ this.state = 411;
1594
1637
  this.properties();
1595
1638
  }
1596
1639
  break;
@@ -1616,20 +1659,20 @@ export class GenericSqlParser extends SQLParserBase {
1616
1659
  let localContext = new TableElementContext(this.context, this.state);
1617
1660
  this.enterRule(localContext, 62, GenericSqlParser.RULE_tableElement);
1618
1661
  try {
1619
- this.state = 402;
1662
+ this.state = 416;
1620
1663
  this.errorHandler.sync(this);
1621
- switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context)) {
1664
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
1622
1665
  case 1:
1623
1666
  this.enterOuterAlt(localContext, 1);
1624
1667
  {
1625
- this.state = 400;
1668
+ this.state = 414;
1626
1669
  this.columnDefinition();
1627
1670
  }
1628
1671
  break;
1629
1672
  case 2:
1630
1673
  this.enterOuterAlt(localContext, 2);
1631
1674
  {
1632
- this.state = 401;
1675
+ this.state = 415;
1633
1676
  this.tableConstraint();
1634
1677
  }
1635
1678
  break;
@@ -1657,40 +1700,40 @@ export class GenericSqlParser extends SQLParserBase {
1657
1700
  try {
1658
1701
  this.enterOuterAlt(localContext, 1);
1659
1702
  {
1660
- this.state = 404;
1661
- this.columnRef();
1662
- this.state = 405;
1663
- this.dataType();
1664
- this.state = 408;
1703
+ this.state = 418;
1704
+ this.columnRefCreate();
1705
+ this.state = 419;
1706
+ localContext._colType = this.dataType();
1707
+ this.state = 422;
1665
1708
  this.errorHandler.sync(this);
1666
1709
  _la = this.tokenStream.LA(1);
1667
1710
  if (_la === 61) {
1668
1711
  {
1669
- this.state = 406;
1712
+ this.state = 420;
1670
1713
  this.match(GenericSqlParser.KW_NOT);
1671
- this.state = 407;
1714
+ this.state = 421;
1672
1715
  this.match(GenericSqlParser.KW_NULL);
1673
1716
  }
1674
1717
  }
1675
- this.state = 412;
1718
+ this.state = 426;
1676
1719
  this.errorHandler.sync(this);
1677
1720
  _la = this.tokenStream.LA(1);
1678
1721
  if (_la === 27) {
1679
1722
  {
1680
- this.state = 410;
1723
+ this.state = 424;
1681
1724
  this.match(GenericSqlParser.KW_DEFAULT);
1682
- this.state = 411;
1725
+ this.state = 425;
1683
1726
  this.expression();
1684
1727
  }
1685
1728
  }
1686
- this.state = 416;
1729
+ this.state = 430;
1687
1730
  this.errorHandler.sync(this);
1688
1731
  _la = this.tokenStream.LA(1);
1689
1732
  if (_la === 71) {
1690
1733
  {
1691
- this.state = 414;
1734
+ this.state = 428;
1692
1735
  this.match(GenericSqlParser.KW_PRIMARY);
1693
- this.state = 415;
1736
+ this.state = 429;
1694
1737
  this.match(GenericSqlParser.KW_KEY);
1695
1738
  }
1696
1739
  }
@@ -1711,150 +1754,175 @@ export class GenericSqlParser extends SQLParserBase {
1711
1754
  }
1712
1755
  return localContext;
1713
1756
  }
1757
+ columnRefCreate() {
1758
+ let localContext = new ColumnRefCreateContext(this.context, this.state);
1759
+ this.enterRule(localContext, 66, GenericSqlParser.RULE_columnRefCreate);
1760
+ try {
1761
+ this.enterOuterAlt(localContext, 1);
1762
+ {
1763
+ this.state = 432;
1764
+ this.identifier();
1765
+ }
1766
+ }
1767
+ catch (re) {
1768
+ if (re instanceof antlr.RecognitionException) {
1769
+ localContext.exception = re;
1770
+ this.errorHandler.reportError(this, re);
1771
+ this.errorHandler.recover(this, re);
1772
+ }
1773
+ else {
1774
+ throw re;
1775
+ }
1776
+ }
1777
+ finally {
1778
+ this.exitRule();
1779
+ }
1780
+ return localContext;
1781
+ }
1714
1782
  tableConstraint() {
1715
1783
  let localContext = new TableConstraintContext(this.context, this.state);
1716
- this.enterRule(localContext, 66, GenericSqlParser.RULE_tableConstraint);
1784
+ this.enterRule(localContext, 68, GenericSqlParser.RULE_tableConstraint);
1717
1785
  let _la;
1718
1786
  try {
1719
1787
  this.enterOuterAlt(localContext, 1);
1720
1788
  {
1721
- this.state = 420;
1789
+ this.state = 436;
1722
1790
  this.errorHandler.sync(this);
1723
1791
  _la = this.tokenStream.LA(1);
1724
1792
  if (_la === 22) {
1725
1793
  {
1726
- this.state = 418;
1794
+ this.state = 434;
1727
1795
  this.match(GenericSqlParser.KW_CONSTRAINT);
1728
- this.state = 419;
1796
+ this.state = 435;
1729
1797
  this.identifier();
1730
1798
  }
1731
1799
  }
1732
- this.state = 477;
1800
+ this.state = 493;
1733
1801
  this.errorHandler.sync(this);
1734
1802
  switch (this.tokenStream.LA(1)) {
1735
1803
  case GenericSqlParser.KW_PRIMARY:
1736
1804
  {
1737
- this.state = 422;
1805
+ this.state = 438;
1738
1806
  this.match(GenericSqlParser.KW_PRIMARY);
1739
- this.state = 423;
1807
+ this.state = 439;
1740
1808
  this.match(GenericSqlParser.KW_KEY);
1741
- this.state = 424;
1809
+ this.state = 440;
1742
1810
  this.match(GenericSqlParser.T__1);
1743
- this.state = 425;
1811
+ this.state = 441;
1744
1812
  this.columnRef();
1745
- this.state = 430;
1813
+ this.state = 446;
1746
1814
  this.errorHandler.sync(this);
1747
1815
  _la = this.tokenStream.LA(1);
1748
1816
  while (_la === 1) {
1749
1817
  {
1750
1818
  {
1751
- this.state = 426;
1819
+ this.state = 442;
1752
1820
  this.match(GenericSqlParser.T__0);
1753
- this.state = 427;
1821
+ this.state = 443;
1754
1822
  this.columnRef();
1755
1823
  }
1756
1824
  }
1757
- this.state = 432;
1825
+ this.state = 448;
1758
1826
  this.errorHandler.sync(this);
1759
1827
  _la = this.tokenStream.LA(1);
1760
1828
  }
1761
- this.state = 433;
1829
+ this.state = 449;
1762
1830
  this.match(GenericSqlParser.T__2);
1763
1831
  }
1764
1832
  break;
1765
1833
  case GenericSqlParser.KW_UNIQUE:
1766
1834
  {
1767
- this.state = 435;
1835
+ this.state = 451;
1768
1836
  this.match(GenericSqlParser.KW_UNIQUE);
1769
- this.state = 436;
1837
+ this.state = 452;
1770
1838
  this.match(GenericSqlParser.T__1);
1771
- this.state = 437;
1839
+ this.state = 453;
1772
1840
  this.columnRef();
1773
- this.state = 442;
1841
+ this.state = 458;
1774
1842
  this.errorHandler.sync(this);
1775
1843
  _la = this.tokenStream.LA(1);
1776
1844
  while (_la === 1) {
1777
1845
  {
1778
1846
  {
1779
- this.state = 438;
1847
+ this.state = 454;
1780
1848
  this.match(GenericSqlParser.T__0);
1781
- this.state = 439;
1849
+ this.state = 455;
1782
1850
  this.columnRef();
1783
1851
  }
1784
1852
  }
1785
- this.state = 444;
1853
+ this.state = 460;
1786
1854
  this.errorHandler.sync(this);
1787
1855
  _la = this.tokenStream.LA(1);
1788
1856
  }
1789
- this.state = 445;
1857
+ this.state = 461;
1790
1858
  this.match(GenericSqlParser.T__2);
1791
1859
  }
1792
1860
  break;
1793
1861
  case GenericSqlParser.KW_CHECK:
1794
1862
  {
1795
- this.state = 447;
1863
+ this.state = 463;
1796
1864
  this.match(GenericSqlParser.KW_CHECK);
1797
- this.state = 448;
1865
+ this.state = 464;
1798
1866
  this.match(GenericSqlParser.T__1);
1799
- this.state = 449;
1867
+ this.state = 465;
1800
1868
  this.expression();
1801
- this.state = 450;
1869
+ this.state = 466;
1802
1870
  this.match(GenericSqlParser.T__2);
1803
1871
  }
1804
1872
  break;
1805
1873
  case GenericSqlParser.KW_FOREIGN:
1806
1874
  {
1807
- this.state = 452;
1875
+ this.state = 468;
1808
1876
  this.match(GenericSqlParser.KW_FOREIGN);
1809
- this.state = 453;
1877
+ this.state = 469;
1810
1878
  this.match(GenericSqlParser.KW_KEY);
1811
- this.state = 454;
1879
+ this.state = 470;
1812
1880
  this.match(GenericSqlParser.T__1);
1813
- this.state = 455;
1881
+ this.state = 471;
1814
1882
  this.columnRef();
1815
- this.state = 460;
1883
+ this.state = 476;
1816
1884
  this.errorHandler.sync(this);
1817
1885
  _la = this.tokenStream.LA(1);
1818
1886
  while (_la === 1) {
1819
1887
  {
1820
1888
  {
1821
- this.state = 456;
1889
+ this.state = 472;
1822
1890
  this.match(GenericSqlParser.T__0);
1823
- this.state = 457;
1891
+ this.state = 473;
1824
1892
  this.columnRef();
1825
1893
  }
1826
1894
  }
1827
- this.state = 462;
1895
+ this.state = 478;
1828
1896
  this.errorHandler.sync(this);
1829
1897
  _la = this.tokenStream.LA(1);
1830
1898
  }
1831
- this.state = 463;
1899
+ this.state = 479;
1832
1900
  this.match(GenericSqlParser.T__2);
1833
- this.state = 464;
1901
+ this.state = 480;
1834
1902
  this.match(GenericSqlParser.KW_REFERENCES);
1835
- this.state = 465;
1903
+ this.state = 481;
1836
1904
  this.tableName();
1837
- this.state = 466;
1905
+ this.state = 482;
1838
1906
  this.match(GenericSqlParser.T__1);
1839
- this.state = 467;
1907
+ this.state = 483;
1840
1908
  this.columnRef();
1841
- this.state = 472;
1909
+ this.state = 488;
1842
1910
  this.errorHandler.sync(this);
1843
1911
  _la = this.tokenStream.LA(1);
1844
1912
  while (_la === 1) {
1845
1913
  {
1846
1914
  {
1847
- this.state = 468;
1915
+ this.state = 484;
1848
1916
  this.match(GenericSqlParser.T__0);
1849
- this.state = 469;
1917
+ this.state = 485;
1850
1918
  this.columnRef();
1851
1919
  }
1852
1920
  }
1853
- this.state = 474;
1921
+ this.state = 490;
1854
1922
  this.errorHandler.sync(this);
1855
1923
  _la = this.tokenStream.LA(1);
1856
1924
  }
1857
- this.state = 475;
1925
+ this.state = 491;
1858
1926
  this.match(GenericSqlParser.T__2);
1859
1927
  }
1860
1928
  break;
@@ -1880,114 +1948,114 @@ export class GenericSqlParser extends SQLParserBase {
1880
1948
  }
1881
1949
  alterTableStatement() {
1882
1950
  let localContext = new AlterTableStatementContext(this.context, this.state);
1883
- this.enterRule(localContext, 68, GenericSqlParser.RULE_alterTableStatement);
1951
+ this.enterRule(localContext, 70, GenericSqlParser.RULE_alterTableStatement);
1884
1952
  try {
1885
1953
  this.enterOuterAlt(localContext, 1);
1886
1954
  {
1887
- this.state = 479;
1955
+ this.state = 495;
1888
1956
  this.match(GenericSqlParser.KW_ALTER);
1889
- this.state = 480;
1957
+ this.state = 496;
1890
1958
  this.match(GenericSqlParser.KW_TABLE);
1891
- this.state = 483;
1959
+ this.state = 499;
1892
1960
  this.errorHandler.sync(this);
1893
- switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
1961
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
1894
1962
  case 1:
1895
1963
  {
1896
- this.state = 481;
1964
+ this.state = 497;
1897
1965
  this.match(GenericSqlParser.KW_IF);
1898
- this.state = 482;
1966
+ this.state = 498;
1899
1967
  this.match(GenericSqlParser.KW_EXISTS);
1900
1968
  }
1901
1969
  break;
1902
1970
  }
1903
- this.state = 485;
1971
+ this.state = 501;
1904
1972
  this.tableName();
1905
- this.state = 517;
1973
+ this.state = 533;
1906
1974
  this.errorHandler.sync(this);
1907
- switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
1975
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 61, this.context)) {
1908
1976
  case 1:
1909
1977
  {
1910
- this.state = 486;
1978
+ this.state = 502;
1911
1979
  this.match(GenericSqlParser.KW_ADD);
1912
- this.state = 487;
1980
+ this.state = 503;
1913
1981
  this.match(GenericSqlParser.KW_COLUMN);
1914
- this.state = 491;
1982
+ this.state = 507;
1915
1983
  this.errorHandler.sync(this);
1916
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
1984
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
1917
1985
  case 1:
1918
1986
  {
1919
- this.state = 488;
1987
+ this.state = 504;
1920
1988
  this.match(GenericSqlParser.KW_IF);
1921
- this.state = 489;
1989
+ this.state = 505;
1922
1990
  this.match(GenericSqlParser.KW_NOT);
1923
- this.state = 490;
1991
+ this.state = 506;
1924
1992
  this.match(GenericSqlParser.KW_EXISTS);
1925
1993
  }
1926
1994
  break;
1927
1995
  }
1928
- this.state = 493;
1996
+ this.state = 509;
1929
1997
  this.columnDefinition();
1930
1998
  }
1931
1999
  break;
1932
2000
  case 2:
1933
2001
  {
1934
- this.state = 494;
2002
+ this.state = 510;
1935
2003
  this.match(GenericSqlParser.KW_DROP);
1936
- this.state = 495;
2004
+ this.state = 511;
1937
2005
  this.match(GenericSqlParser.KW_COLUMN);
1938
- this.state = 498;
2006
+ this.state = 514;
1939
2007
  this.errorHandler.sync(this);
1940
- switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2008
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
1941
2009
  case 1:
1942
2010
  {
1943
- this.state = 496;
2011
+ this.state = 512;
1944
2012
  this.match(GenericSqlParser.KW_IF);
1945
- this.state = 497;
2013
+ this.state = 513;
1946
2014
  this.match(GenericSqlParser.KW_EXISTS);
1947
2015
  }
1948
2016
  break;
1949
2017
  }
1950
- this.state = 500;
2018
+ this.state = 516;
1951
2019
  this.columnRef();
1952
2020
  }
1953
2021
  break;
1954
2022
  case 3:
1955
2023
  {
1956
- this.state = 501;
2024
+ this.state = 517;
1957
2025
  this.match(GenericSqlParser.KW_RENAME);
1958
- this.state = 502;
2026
+ this.state = 518;
1959
2027
  this.match(GenericSqlParser.KW_TO);
1960
- this.state = 503;
2028
+ this.state = 519;
1961
2029
  this.tableNameCreate();
1962
2030
  }
1963
2031
  break;
1964
2032
  case 4:
1965
2033
  {
1966
- this.state = 504;
2034
+ this.state = 520;
1967
2035
  this.match(GenericSqlParser.KW_ALTER);
1968
- this.state = 505;
2036
+ this.state = 521;
1969
2037
  this.match(GenericSqlParser.KW_COLUMN);
1970
- this.state = 506;
2038
+ this.state = 522;
1971
2039
  this.columnRef();
1972
- this.state = 507;
2040
+ this.state = 523;
1973
2041
  this.match(GenericSqlParser.KW_SET);
1974
- this.state = 508;
2042
+ this.state = 524;
1975
2043
  this.match(GenericSqlParser.KW_DEFAULT);
1976
- this.state = 509;
2044
+ this.state = 525;
1977
2045
  this.expression();
1978
2046
  }
1979
2047
  break;
1980
2048
  case 5:
1981
2049
  {
1982
- this.state = 511;
2050
+ this.state = 527;
1983
2051
  this.match(GenericSqlParser.KW_ALTER);
1984
- this.state = 512;
2052
+ this.state = 528;
1985
2053
  this.match(GenericSqlParser.KW_COLUMN);
1986
- this.state = 513;
2054
+ this.state = 529;
1987
2055
  this.columnRef();
1988
- this.state = 514;
2056
+ this.state = 530;
1989
2057
  this.match(GenericSqlParser.KW_DROP);
1990
- this.state = 515;
2058
+ this.state = 531;
1991
2059
  this.match(GenericSqlParser.KW_DEFAULT);
1992
2060
  }
1993
2061
  break;
@@ -2011,27 +2079,27 @@ export class GenericSqlParser extends SQLParserBase {
2011
2079
  }
2012
2080
  dropTableStatement() {
2013
2081
  let localContext = new DropTableStatementContext(this.context, this.state);
2014
- this.enterRule(localContext, 70, GenericSqlParser.RULE_dropTableStatement);
2082
+ this.enterRule(localContext, 72, GenericSqlParser.RULE_dropTableStatement);
2015
2083
  try {
2016
2084
  this.enterOuterAlt(localContext, 1);
2017
2085
  {
2018
- this.state = 519;
2086
+ this.state = 535;
2019
2087
  this.match(GenericSqlParser.KW_DROP);
2020
- this.state = 520;
2088
+ this.state = 536;
2021
2089
  this.match(GenericSqlParser.KW_TABLE);
2022
- this.state = 523;
2090
+ this.state = 539;
2023
2091
  this.errorHandler.sync(this);
2024
- switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
2092
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2025
2093
  case 1:
2026
2094
  {
2027
- this.state = 521;
2095
+ this.state = 537;
2028
2096
  this.match(GenericSqlParser.KW_IF);
2029
- this.state = 522;
2097
+ this.state = 538;
2030
2098
  this.match(GenericSqlParser.KW_EXISTS);
2031
2099
  }
2032
2100
  break;
2033
2101
  }
2034
- this.state = 525;
2102
+ this.state = 541;
2035
2103
  this.tableName();
2036
2104
  }
2037
2105
  }
@@ -2052,11 +2120,11 @@ export class GenericSqlParser extends SQLParserBase {
2052
2120
  }
2053
2121
  expression() {
2054
2122
  let localContext = new ExpressionContext(this.context, this.state);
2055
- this.enterRule(localContext, 72, GenericSqlParser.RULE_expression);
2123
+ this.enterRule(localContext, 74, GenericSqlParser.RULE_expression);
2056
2124
  try {
2057
2125
  this.enterOuterAlt(localContext, 1);
2058
2126
  {
2059
- this.state = 527;
2127
+ this.state = 543;
2060
2128
  this.booleanExpression(0);
2061
2129
  }
2062
2130
  }
@@ -2083,13 +2151,13 @@ export class GenericSqlParser extends SQLParserBase {
2083
2151
  let parentState = this.state;
2084
2152
  let localContext = new BooleanExpressionContext(this.context, parentState);
2085
2153
  let previousContext = localContext;
2086
- let _startState = 74;
2087
- this.enterRecursionRule(localContext, 74, GenericSqlParser.RULE_booleanExpression, _p);
2154
+ let _startState = 76;
2155
+ this.enterRecursionRule(localContext, 76, GenericSqlParser.RULE_booleanExpression, _p);
2088
2156
  try {
2089
2157
  let alternative;
2090
2158
  this.enterOuterAlt(localContext, 1);
2091
2159
  {
2092
- this.state = 533;
2160
+ this.state = 549;
2093
2161
  this.errorHandler.sync(this);
2094
2162
  switch (this.tokenStream.LA(1)) {
2095
2163
  case GenericSqlParser.T__1:
@@ -2155,7 +2223,7 @@ export class GenericSqlParser extends SQLParserBase {
2155
2223
  localContext = new PredicatedContext(localContext);
2156
2224
  this.context = localContext;
2157
2225
  previousContext = localContext;
2158
- this.state = 530;
2226
+ this.state = 546;
2159
2227
  this.predicatedExpression();
2160
2228
  }
2161
2229
  break;
@@ -2164,9 +2232,9 @@ export class GenericSqlParser extends SQLParserBase {
2164
2232
  localContext = new NotExpressionContext(localContext);
2165
2233
  this.context = localContext;
2166
2234
  previousContext = localContext;
2167
- this.state = 531;
2235
+ this.state = 547;
2168
2236
  this.match(GenericSqlParser.KW_NOT);
2169
- this.state = 532;
2237
+ this.state = 548;
2170
2238
  this.booleanExpression(3);
2171
2239
  }
2172
2240
  break;
@@ -2174,9 +2242,9 @@ export class GenericSqlParser extends SQLParserBase {
2174
2242
  throw new antlr.NoViableAltException(this);
2175
2243
  }
2176
2244
  this.context.stop = this.tokenStream.LT(-1);
2177
- this.state = 543;
2245
+ this.state = 559;
2178
2246
  this.errorHandler.sync(this);
2179
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2247
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
2180
2248
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2181
2249
  if (alternative === 1) {
2182
2250
  if (this._parseListeners != null) {
@@ -2184,21 +2252,21 @@ export class GenericSqlParser extends SQLParserBase {
2184
2252
  }
2185
2253
  previousContext = localContext;
2186
2254
  {
2187
- this.state = 541;
2255
+ this.state = 557;
2188
2256
  this.errorHandler.sync(this);
2189
- switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2257
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2190
2258
  case 1:
2191
2259
  {
2192
2260
  localContext = new AndExpressionContext(new BooleanExpressionContext(parentContext, parentState));
2193
2261
  localContext._left = previousContext;
2194
2262
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_booleanExpression);
2195
- this.state = 535;
2263
+ this.state = 551;
2196
2264
  if (!(this.precpred(this.context, 2))) {
2197
2265
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
2198
2266
  }
2199
- this.state = 536;
2267
+ this.state = 552;
2200
2268
  this.match(GenericSqlParser.KW_AND);
2201
- this.state = 537;
2269
+ this.state = 553;
2202
2270
  localContext._right = this.booleanExpression(3);
2203
2271
  }
2204
2272
  break;
@@ -2207,22 +2275,22 @@ export class GenericSqlParser extends SQLParserBase {
2207
2275
  localContext = new OrExpressionContext(new BooleanExpressionContext(parentContext, parentState));
2208
2276
  localContext._left = previousContext;
2209
2277
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_booleanExpression);
2210
- this.state = 538;
2278
+ this.state = 554;
2211
2279
  if (!(this.precpred(this.context, 1))) {
2212
2280
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2213
2281
  }
2214
- this.state = 539;
2282
+ this.state = 555;
2215
2283
  this.match(GenericSqlParser.KW_OR);
2216
- this.state = 540;
2284
+ this.state = 556;
2217
2285
  localContext._right = this.booleanExpression(2);
2218
2286
  }
2219
2287
  break;
2220
2288
  }
2221
2289
  }
2222
2290
  }
2223
- this.state = 545;
2291
+ this.state = 561;
2224
2292
  this.errorHandler.sync(this);
2225
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2293
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
2226
2294
  }
2227
2295
  }
2228
2296
  }
@@ -2243,18 +2311,18 @@ export class GenericSqlParser extends SQLParserBase {
2243
2311
  }
2244
2312
  predicatedExpression() {
2245
2313
  let localContext = new PredicatedExpressionContext(this.context, this.state);
2246
- this.enterRule(localContext, 76, GenericSqlParser.RULE_predicatedExpression);
2314
+ this.enterRule(localContext, 78, GenericSqlParser.RULE_predicatedExpression);
2247
2315
  try {
2248
2316
  this.enterOuterAlt(localContext, 1);
2249
2317
  {
2250
- this.state = 546;
2318
+ this.state = 562;
2251
2319
  this.valueExpression(0);
2252
- this.state = 548;
2320
+ this.state = 564;
2253
2321
  this.errorHandler.sync(this);
2254
- switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2322
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 66, this.context)) {
2255
2323
  case 1:
2256
2324
  {
2257
- this.state = 547;
2325
+ this.state = 563;
2258
2326
  this.predicate();
2259
2327
  }
2260
2328
  break;
@@ -2278,19 +2346,19 @@ export class GenericSqlParser extends SQLParserBase {
2278
2346
  }
2279
2347
  predicate() {
2280
2348
  let localContext = new PredicateContext(this.context, this.state);
2281
- this.enterRule(localContext, 78, GenericSqlParser.RULE_predicate);
2349
+ this.enterRule(localContext, 80, GenericSqlParser.RULE_predicate);
2282
2350
  let _la;
2283
2351
  try {
2284
- this.state = 605;
2352
+ this.state = 621;
2285
2353
  this.errorHandler.sync(this);
2286
- switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
2354
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
2287
2355
  case 1:
2288
2356
  localContext = new ComparisonPredicateContext(localContext);
2289
2357
  this.enterOuterAlt(localContext, 1);
2290
2358
  {
2291
- this.state = 550;
2359
+ this.state = 566;
2292
2360
  this.comparisonOperator();
2293
- this.state = 551;
2361
+ this.state = 567;
2294
2362
  localContext._right = this.valueExpression(0);
2295
2363
  }
2296
2364
  break;
@@ -2298,38 +2366,38 @@ export class GenericSqlParser extends SQLParserBase {
2298
2366
  localContext = new InPredicateContext(localContext);
2299
2367
  this.enterOuterAlt(localContext, 2);
2300
2368
  {
2301
- this.state = 554;
2369
+ this.state = 570;
2302
2370
  this.errorHandler.sync(this);
2303
2371
  _la = this.tokenStream.LA(1);
2304
2372
  if (_la === 61) {
2305
2373
  {
2306
- this.state = 553;
2374
+ this.state = 569;
2307
2375
  this.match(GenericSqlParser.KW_NOT);
2308
2376
  }
2309
2377
  }
2310
- this.state = 556;
2378
+ this.state = 572;
2311
2379
  this.match(GenericSqlParser.KW_IN);
2312
- this.state = 557;
2380
+ this.state = 573;
2313
2381
  this.match(GenericSqlParser.T__1);
2314
- this.state = 558;
2382
+ this.state = 574;
2315
2383
  this.expression();
2316
- this.state = 563;
2384
+ this.state = 579;
2317
2385
  this.errorHandler.sync(this);
2318
2386
  _la = this.tokenStream.LA(1);
2319
2387
  while (_la === 1) {
2320
2388
  {
2321
2389
  {
2322
- this.state = 559;
2390
+ this.state = 575;
2323
2391
  this.match(GenericSqlParser.T__0);
2324
- this.state = 560;
2392
+ this.state = 576;
2325
2393
  this.expression();
2326
2394
  }
2327
2395
  }
2328
- this.state = 565;
2396
+ this.state = 581;
2329
2397
  this.errorHandler.sync(this);
2330
2398
  _la = this.tokenStream.LA(1);
2331
2399
  }
2332
- this.state = 566;
2400
+ this.state = 582;
2333
2401
  this.match(GenericSqlParser.T__2);
2334
2402
  }
2335
2403
  break;
@@ -2337,22 +2405,22 @@ export class GenericSqlParser extends SQLParserBase {
2337
2405
  localContext = new InSubqueryPredicateContext(localContext);
2338
2406
  this.enterOuterAlt(localContext, 3);
2339
2407
  {
2340
- this.state = 569;
2408
+ this.state = 585;
2341
2409
  this.errorHandler.sync(this);
2342
2410
  _la = this.tokenStream.LA(1);
2343
2411
  if (_la === 61) {
2344
2412
  {
2345
- this.state = 568;
2413
+ this.state = 584;
2346
2414
  this.match(GenericSqlParser.KW_NOT);
2347
2415
  }
2348
2416
  }
2349
- this.state = 571;
2417
+ this.state = 587;
2350
2418
  this.match(GenericSqlParser.KW_IN);
2351
- this.state = 572;
2419
+ this.state = 588;
2352
2420
  this.match(GenericSqlParser.T__1);
2353
- this.state = 573;
2421
+ this.state = 589;
2354
2422
  this.queryStatement();
2355
- this.state = 574;
2423
+ this.state = 590;
2356
2424
  this.match(GenericSqlParser.T__2);
2357
2425
  }
2358
2426
  break;
@@ -2360,22 +2428,22 @@ export class GenericSqlParser extends SQLParserBase {
2360
2428
  localContext = new BetweenPredicateContext(localContext);
2361
2429
  this.enterOuterAlt(localContext, 4);
2362
2430
  {
2363
- this.state = 577;
2431
+ this.state = 593;
2364
2432
  this.errorHandler.sync(this);
2365
2433
  _la = this.tokenStream.LA(1);
2366
2434
  if (_la === 61) {
2367
2435
  {
2368
- this.state = 576;
2436
+ this.state = 592;
2369
2437
  this.match(GenericSqlParser.KW_NOT);
2370
2438
  }
2371
2439
  }
2372
- this.state = 579;
2440
+ this.state = 595;
2373
2441
  this.match(GenericSqlParser.KW_BETWEEN);
2374
- this.state = 580;
2442
+ this.state = 596;
2375
2443
  localContext._lower = this.valueExpression(0);
2376
- this.state = 581;
2444
+ this.state = 597;
2377
2445
  this.match(GenericSqlParser.KW_AND);
2378
- this.state = 582;
2446
+ this.state = 598;
2379
2447
  localContext._upper = this.valueExpression(0);
2380
2448
  }
2381
2449
  break;
@@ -2383,27 +2451,27 @@ export class GenericSqlParser extends SQLParserBase {
2383
2451
  localContext = new LikePredicateContext(localContext);
2384
2452
  this.enterOuterAlt(localContext, 5);
2385
2453
  {
2386
- this.state = 585;
2454
+ this.state = 601;
2387
2455
  this.errorHandler.sync(this);
2388
2456
  _la = this.tokenStream.LA(1);
2389
2457
  if (_la === 61) {
2390
2458
  {
2391
- this.state = 584;
2459
+ this.state = 600;
2392
2460
  this.match(GenericSqlParser.KW_NOT);
2393
2461
  }
2394
2462
  }
2395
- this.state = 587;
2463
+ this.state = 603;
2396
2464
  this.match(GenericSqlParser.KW_LIKE);
2397
- this.state = 588;
2465
+ this.state = 604;
2398
2466
  localContext._pattern = this.valueExpression(0);
2399
- this.state = 591;
2467
+ this.state = 607;
2400
2468
  this.errorHandler.sync(this);
2401
- switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
2469
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
2402
2470
  case 1:
2403
2471
  {
2404
- this.state = 589;
2472
+ this.state = 605;
2405
2473
  this.match(GenericSqlParser.KW_ESCAPE);
2406
- this.state = 590;
2474
+ this.state = 606;
2407
2475
  localContext._escape = this.valueExpression(0);
2408
2476
  }
2409
2477
  break;
@@ -2414,18 +2482,18 @@ export class GenericSqlParser extends SQLParserBase {
2414
2482
  localContext = new NullPredicateContext(localContext);
2415
2483
  this.enterOuterAlt(localContext, 6);
2416
2484
  {
2417
- this.state = 593;
2485
+ this.state = 609;
2418
2486
  this.match(GenericSqlParser.KW_IS);
2419
- this.state = 595;
2487
+ this.state = 611;
2420
2488
  this.errorHandler.sync(this);
2421
2489
  _la = this.tokenStream.LA(1);
2422
2490
  if (_la === 61) {
2423
2491
  {
2424
- this.state = 594;
2492
+ this.state = 610;
2425
2493
  this.match(GenericSqlParser.KW_NOT);
2426
2494
  }
2427
2495
  }
2428
- this.state = 597;
2496
+ this.state = 613;
2429
2497
  this.match(GenericSqlParser.KW_NULL);
2430
2498
  }
2431
2499
  break;
@@ -2433,22 +2501,22 @@ export class GenericSqlParser extends SQLParserBase {
2433
2501
  localContext = new DistinctFromPredicateContext(localContext);
2434
2502
  this.enterOuterAlt(localContext, 7);
2435
2503
  {
2436
- this.state = 598;
2504
+ this.state = 614;
2437
2505
  this.match(GenericSqlParser.KW_IS);
2438
- this.state = 600;
2506
+ this.state = 616;
2439
2507
  this.errorHandler.sync(this);
2440
2508
  _la = this.tokenStream.LA(1);
2441
2509
  if (_la === 61) {
2442
2510
  {
2443
- this.state = 599;
2511
+ this.state = 615;
2444
2512
  this.match(GenericSqlParser.KW_NOT);
2445
2513
  }
2446
2514
  }
2447
- this.state = 602;
2515
+ this.state = 618;
2448
2516
  this.match(GenericSqlParser.KW_DISTINCT);
2449
- this.state = 603;
2517
+ this.state = 619;
2450
2518
  this.match(GenericSqlParser.KW_FROM);
2451
- this.state = 604;
2519
+ this.state = 620;
2452
2520
  localContext._right = this.valueExpression(0);
2453
2521
  }
2454
2522
  break;
@@ -2471,12 +2539,12 @@ export class GenericSqlParser extends SQLParserBase {
2471
2539
  }
2472
2540
  comparisonOperator() {
2473
2541
  let localContext = new ComparisonOperatorContext(this.context, this.state);
2474
- this.enterRule(localContext, 80, GenericSqlParser.RULE_comparisonOperator);
2542
+ this.enterRule(localContext, 82, GenericSqlParser.RULE_comparisonOperator);
2475
2543
  let _la;
2476
2544
  try {
2477
2545
  this.enterOuterAlt(localContext, 1);
2478
2546
  {
2479
- this.state = 607;
2547
+ this.state = 623;
2480
2548
  _la = this.tokenStream.LA(1);
2481
2549
  if (!(((((_la - 95)) & ~0x1F) === 0 && ((1 << (_la - 95)) & 63) !== 0))) {
2482
2550
  this.errorHandler.recoverInline(this);
@@ -2510,14 +2578,14 @@ export class GenericSqlParser extends SQLParserBase {
2510
2578
  let parentState = this.state;
2511
2579
  let localContext = new ValueExpressionContext(this.context, parentState);
2512
2580
  let previousContext = localContext;
2513
- let _startState = 82;
2514
- this.enterRecursionRule(localContext, 82, GenericSqlParser.RULE_valueExpression, _p);
2581
+ let _startState = 84;
2582
+ this.enterRecursionRule(localContext, 84, GenericSqlParser.RULE_valueExpression, _p);
2515
2583
  let _la;
2516
2584
  try {
2517
2585
  let alternative;
2518
2586
  this.enterOuterAlt(localContext, 1);
2519
2587
  {
2520
- this.state = 613;
2588
+ this.state = 629;
2521
2589
  this.errorHandler.sync(this);
2522
2590
  switch (this.tokenStream.LA(1)) {
2523
2591
  case GenericSqlParser.T__1:
@@ -2581,7 +2649,7 @@ export class GenericSqlParser extends SQLParserBase {
2581
2649
  localContext = new ValueExpressionDefaultContext(localContext);
2582
2650
  this.context = localContext;
2583
2651
  previousContext = localContext;
2584
- this.state = 610;
2652
+ this.state = 626;
2585
2653
  this.primaryExpression();
2586
2654
  }
2587
2655
  break;
@@ -2591,7 +2659,7 @@ export class GenericSqlParser extends SQLParserBase {
2591
2659
  localContext = new ArithmeticUnaryContext(localContext);
2592
2660
  this.context = localContext;
2593
2661
  previousContext = localContext;
2594
- this.state = 611;
2662
+ this.state = 627;
2595
2663
  localContext._operator = this.tokenStream.LT(1);
2596
2664
  _la = this.tokenStream.LA(1);
2597
2665
  if (!(_la === 101 || _la === 102)) {
@@ -2601,7 +2669,7 @@ export class GenericSqlParser extends SQLParserBase {
2601
2669
  this.errorHandler.reportMatch(this);
2602
2670
  this.consume();
2603
2671
  }
2604
- this.state = 612;
2672
+ this.state = 628;
2605
2673
  this.valueExpression(4);
2606
2674
  }
2607
2675
  break;
@@ -2609,9 +2677,9 @@ export class GenericSqlParser extends SQLParserBase {
2609
2677
  throw new antlr.NoViableAltException(this);
2610
2678
  }
2611
2679
  this.context.stop = this.tokenStream.LT(-1);
2612
- this.state = 626;
2680
+ this.state = 642;
2613
2681
  this.errorHandler.sync(this);
2614
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 76, this.context);
2682
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 78, this.context);
2615
2683
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2616
2684
  if (alternative === 1) {
2617
2685
  if (this._parseListeners != null) {
@@ -2619,19 +2687,19 @@ export class GenericSqlParser extends SQLParserBase {
2619
2687
  }
2620
2688
  previousContext = localContext;
2621
2689
  {
2622
- this.state = 624;
2690
+ this.state = 640;
2623
2691
  this.errorHandler.sync(this);
2624
- switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
2692
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
2625
2693
  case 1:
2626
2694
  {
2627
2695
  localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState));
2628
2696
  localContext._left = previousContext;
2629
2697
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2630
- this.state = 615;
2698
+ this.state = 631;
2631
2699
  if (!(this.precpred(this.context, 3))) {
2632
2700
  throw this.createFailedPredicateException("this.precpred(this.context, 3)");
2633
2701
  }
2634
- this.state = 616;
2702
+ this.state = 632;
2635
2703
  localContext._operator = this.tokenStream.LT(1);
2636
2704
  _la = this.tokenStream.LA(1);
2637
2705
  if (!(((((_la - 103)) & ~0x1F) === 0 && ((1 << (_la - 103)) & 7) !== 0))) {
@@ -2641,7 +2709,7 @@ export class GenericSqlParser extends SQLParserBase {
2641
2709
  this.errorHandler.reportMatch(this);
2642
2710
  this.consume();
2643
2711
  }
2644
- this.state = 617;
2712
+ this.state = 633;
2645
2713
  localContext._right = this.valueExpression(4);
2646
2714
  }
2647
2715
  break;
@@ -2650,11 +2718,11 @@ export class GenericSqlParser extends SQLParserBase {
2650
2718
  localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState));
2651
2719
  localContext._left = previousContext;
2652
2720
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2653
- this.state = 618;
2721
+ this.state = 634;
2654
2722
  if (!(this.precpred(this.context, 2))) {
2655
2723
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
2656
2724
  }
2657
- this.state = 619;
2725
+ this.state = 635;
2658
2726
  localContext._operator = this.tokenStream.LT(1);
2659
2727
  _la = this.tokenStream.LA(1);
2660
2728
  if (!(_la === 101 || _la === 102)) {
@@ -2664,7 +2732,7 @@ export class GenericSqlParser extends SQLParserBase {
2664
2732
  this.errorHandler.reportMatch(this);
2665
2733
  this.consume();
2666
2734
  }
2667
- this.state = 620;
2735
+ this.state = 636;
2668
2736
  localContext._right = this.valueExpression(3);
2669
2737
  }
2670
2738
  break;
@@ -2673,22 +2741,22 @@ export class GenericSqlParser extends SQLParserBase {
2673
2741
  localContext = new ConcatenationContext(new ValueExpressionContext(parentContext, parentState));
2674
2742
  localContext._left = previousContext;
2675
2743
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2676
- this.state = 621;
2744
+ this.state = 637;
2677
2745
  if (!(this.precpred(this.context, 1))) {
2678
2746
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2679
2747
  }
2680
- this.state = 622;
2748
+ this.state = 638;
2681
2749
  this.match(GenericSqlParser.CONCAT);
2682
- this.state = 623;
2750
+ this.state = 639;
2683
2751
  localContext._right = this.valueExpression(2);
2684
2752
  }
2685
2753
  break;
2686
2754
  }
2687
2755
  }
2688
2756
  }
2689
- this.state = 628;
2757
+ this.state = 644;
2690
2758
  this.errorHandler.sync(this);
2691
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 76, this.context);
2759
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 78, this.context);
2692
2760
  }
2693
2761
  }
2694
2762
  }
@@ -2709,17 +2777,17 @@ export class GenericSqlParser extends SQLParserBase {
2709
2777
  }
2710
2778
  primaryExpression() {
2711
2779
  let localContext = new PrimaryExpressionContext(this.context, this.state);
2712
- this.enterRule(localContext, 84, GenericSqlParser.RULE_primaryExpression);
2780
+ this.enterRule(localContext, 86, GenericSqlParser.RULE_primaryExpression);
2713
2781
  let _la;
2714
2782
  try {
2715
- this.state = 709;
2783
+ this.state = 725;
2716
2784
  this.errorHandler.sync(this);
2717
- switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context)) {
2785
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context)) {
2718
2786
  case 1:
2719
2787
  localContext = new LiteralExpressionContext(localContext);
2720
2788
  this.enterOuterAlt(localContext, 1);
2721
2789
  {
2722
- this.state = 629;
2790
+ this.state = 645;
2723
2791
  this.literal();
2724
2792
  }
2725
2793
  break;
@@ -2727,46 +2795,46 @@ export class GenericSqlParser extends SQLParserBase {
2727
2795
  localContext = new FunctionCallContext(localContext);
2728
2796
  this.enterOuterAlt(localContext, 2);
2729
2797
  {
2730
- this.state = 630;
2731
- this.qualifiedName();
2732
- this.state = 631;
2798
+ this.state = 646;
2799
+ this.functionName();
2800
+ this.state = 647;
2733
2801
  this.match(GenericSqlParser.T__1);
2734
- this.state = 643;
2802
+ this.state = 659;
2735
2803
  this.errorHandler.sync(this);
2736
2804
  _la = this.tokenStream.LA(1);
2737
2805
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4013421668) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 1069048399) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 2151019809) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & 65409) !== 0)) {
2738
2806
  {
2739
- this.state = 633;
2807
+ this.state = 649;
2740
2808
  this.errorHandler.sync(this);
2741
- switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
2809
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 79, this.context)) {
2742
2810
  case 1:
2743
2811
  {
2744
- this.state = 632;
2812
+ this.state = 648;
2745
2813
  this.setQuantifier();
2746
2814
  }
2747
2815
  break;
2748
2816
  }
2749
- this.state = 635;
2817
+ this.state = 651;
2750
2818
  this.expression();
2751
- this.state = 640;
2819
+ this.state = 656;
2752
2820
  this.errorHandler.sync(this);
2753
2821
  _la = this.tokenStream.LA(1);
2754
2822
  while (_la === 1) {
2755
2823
  {
2756
2824
  {
2757
- this.state = 636;
2825
+ this.state = 652;
2758
2826
  this.match(GenericSqlParser.T__0);
2759
- this.state = 637;
2827
+ this.state = 653;
2760
2828
  this.expression();
2761
2829
  }
2762
2830
  }
2763
- this.state = 642;
2831
+ this.state = 658;
2764
2832
  this.errorHandler.sync(this);
2765
2833
  _la = this.tokenStream.LA(1);
2766
2834
  }
2767
2835
  }
2768
2836
  }
2769
- this.state = 645;
2837
+ this.state = 661;
2770
2838
  this.match(GenericSqlParser.T__2);
2771
2839
  }
2772
2840
  break;
@@ -2774,34 +2842,34 @@ export class GenericSqlParser extends SQLParserBase {
2774
2842
  localContext = new SearchedCaseExpressionContext(localContext);
2775
2843
  this.enterOuterAlt(localContext, 3);
2776
2844
  {
2777
- this.state = 647;
2845
+ this.state = 663;
2778
2846
  this.match(GenericSqlParser.KW_CASE);
2779
- this.state = 649;
2847
+ this.state = 665;
2780
2848
  this.errorHandler.sync(this);
2781
2849
  _la = this.tokenStream.LA(1);
2782
2850
  do {
2783
2851
  {
2784
2852
  {
2785
- this.state = 648;
2853
+ this.state = 664;
2786
2854
  this.whenClause();
2787
2855
  }
2788
2856
  }
2789
- this.state = 651;
2857
+ this.state = 667;
2790
2858
  this.errorHandler.sync(this);
2791
2859
  _la = this.tokenStream.LA(1);
2792
2860
  } while (_la === 92);
2793
- this.state = 655;
2861
+ this.state = 671;
2794
2862
  this.errorHandler.sync(this);
2795
2863
  _la = this.tokenStream.LA(1);
2796
2864
  if (_la === 33) {
2797
2865
  {
2798
- this.state = 653;
2866
+ this.state = 669;
2799
2867
  this.match(GenericSqlParser.KW_ELSE);
2800
- this.state = 654;
2868
+ this.state = 670;
2801
2869
  this.expression();
2802
2870
  }
2803
2871
  }
2804
- this.state = 657;
2872
+ this.state = 673;
2805
2873
  this.match(GenericSqlParser.KW_END);
2806
2874
  }
2807
2875
  break;
@@ -2809,36 +2877,36 @@ export class GenericSqlParser extends SQLParserBase {
2809
2877
  localContext = new SimpleCaseExpressionContext(localContext);
2810
2878
  this.enterOuterAlt(localContext, 4);
2811
2879
  {
2812
- this.state = 659;
2880
+ this.state = 675;
2813
2881
  this.match(GenericSqlParser.KW_CASE);
2814
- this.state = 660;
2882
+ this.state = 676;
2815
2883
  this.expression();
2816
- this.state = 662;
2884
+ this.state = 678;
2817
2885
  this.errorHandler.sync(this);
2818
2886
  _la = this.tokenStream.LA(1);
2819
2887
  do {
2820
2888
  {
2821
2889
  {
2822
- this.state = 661;
2890
+ this.state = 677;
2823
2891
  this.whenClause();
2824
2892
  }
2825
2893
  }
2826
- this.state = 664;
2894
+ this.state = 680;
2827
2895
  this.errorHandler.sync(this);
2828
2896
  _la = this.tokenStream.LA(1);
2829
2897
  } while (_la === 92);
2830
- this.state = 668;
2898
+ this.state = 684;
2831
2899
  this.errorHandler.sync(this);
2832
2900
  _la = this.tokenStream.LA(1);
2833
2901
  if (_la === 33) {
2834
2902
  {
2835
- this.state = 666;
2903
+ this.state = 682;
2836
2904
  this.match(GenericSqlParser.KW_ELSE);
2837
- this.state = 667;
2905
+ this.state = 683;
2838
2906
  this.expression();
2839
2907
  }
2840
2908
  }
2841
- this.state = 670;
2909
+ this.state = 686;
2842
2910
  this.match(GenericSqlParser.KW_END);
2843
2911
  }
2844
2912
  break;
@@ -2846,17 +2914,17 @@ export class GenericSqlParser extends SQLParserBase {
2846
2914
  localContext = new CastExpressionContext(localContext);
2847
2915
  this.enterOuterAlt(localContext, 5);
2848
2916
  {
2849
- this.state = 672;
2917
+ this.state = 688;
2850
2918
  this.match(GenericSqlParser.KW_CAST);
2851
- this.state = 673;
2919
+ this.state = 689;
2852
2920
  this.match(GenericSqlParser.T__1);
2853
- this.state = 674;
2921
+ this.state = 690;
2854
2922
  this.expression();
2855
- this.state = 675;
2923
+ this.state = 691;
2856
2924
  this.match(GenericSqlParser.KW_AS);
2857
- this.state = 676;
2925
+ this.state = 692;
2858
2926
  this.dataType();
2859
- this.state = 677;
2927
+ this.state = 693;
2860
2928
  this.match(GenericSqlParser.T__2);
2861
2929
  }
2862
2930
  break;
@@ -2864,29 +2932,29 @@ export class GenericSqlParser extends SQLParserBase {
2864
2932
  localContext = new CoalesceExpressionContext(localContext);
2865
2933
  this.enterOuterAlt(localContext, 6);
2866
2934
  {
2867
- this.state = 679;
2935
+ this.state = 695;
2868
2936
  this.match(GenericSqlParser.KW_COALESCE);
2869
- this.state = 680;
2937
+ this.state = 696;
2870
2938
  this.match(GenericSqlParser.T__1);
2871
- this.state = 681;
2939
+ this.state = 697;
2872
2940
  this.expression();
2873
- this.state = 686;
2941
+ this.state = 702;
2874
2942
  this.errorHandler.sync(this);
2875
2943
  _la = this.tokenStream.LA(1);
2876
2944
  while (_la === 1) {
2877
2945
  {
2878
2946
  {
2879
- this.state = 682;
2947
+ this.state = 698;
2880
2948
  this.match(GenericSqlParser.T__0);
2881
- this.state = 683;
2949
+ this.state = 699;
2882
2950
  this.expression();
2883
2951
  }
2884
2952
  }
2885
- this.state = 688;
2953
+ this.state = 704;
2886
2954
  this.errorHandler.sync(this);
2887
2955
  _la = this.tokenStream.LA(1);
2888
2956
  }
2889
- this.state = 689;
2957
+ this.state = 705;
2890
2958
  this.match(GenericSqlParser.T__2);
2891
2959
  }
2892
2960
  break;
@@ -2894,17 +2962,17 @@ export class GenericSqlParser extends SQLParserBase {
2894
2962
  localContext = new NullIfExpressionContext(localContext);
2895
2963
  this.enterOuterAlt(localContext, 7);
2896
2964
  {
2897
- this.state = 691;
2965
+ this.state = 707;
2898
2966
  this.match(GenericSqlParser.KW_NULLIF);
2899
- this.state = 692;
2967
+ this.state = 708;
2900
2968
  this.match(GenericSqlParser.T__1);
2901
- this.state = 693;
2969
+ this.state = 709;
2902
2970
  this.valueExpression(0);
2903
- this.state = 694;
2971
+ this.state = 710;
2904
2972
  this.match(GenericSqlParser.T__0);
2905
- this.state = 695;
2973
+ this.state = 711;
2906
2974
  this.valueExpression(0);
2907
- this.state = 696;
2975
+ this.state = 712;
2908
2976
  this.match(GenericSqlParser.T__2);
2909
2977
  }
2910
2978
  break;
@@ -2912,11 +2980,11 @@ export class GenericSqlParser extends SQLParserBase {
2912
2980
  localContext = new ParenthesizedExpressionContext(localContext);
2913
2981
  this.enterOuterAlt(localContext, 8);
2914
2982
  {
2915
- this.state = 698;
2983
+ this.state = 714;
2916
2984
  this.match(GenericSqlParser.T__1);
2917
- this.state = 699;
2985
+ this.state = 715;
2918
2986
  this.expression();
2919
- this.state = 700;
2987
+ this.state = 716;
2920
2988
  this.match(GenericSqlParser.T__2);
2921
2989
  }
2922
2990
  break;
@@ -2924,13 +2992,13 @@ export class GenericSqlParser extends SQLParserBase {
2924
2992
  localContext = new ExistsExpressionContext(localContext);
2925
2993
  this.enterOuterAlt(localContext, 9);
2926
2994
  {
2927
- this.state = 702;
2995
+ this.state = 718;
2928
2996
  this.match(GenericSqlParser.KW_EXISTS);
2929
- this.state = 703;
2997
+ this.state = 719;
2930
2998
  this.match(GenericSqlParser.T__1);
2931
- this.state = 704;
2999
+ this.state = 720;
2932
3000
  this.queryStatement();
2933
- this.state = 705;
3001
+ this.state = 721;
2934
3002
  this.match(GenericSqlParser.T__2);
2935
3003
  }
2936
3004
  break;
@@ -2938,7 +3006,7 @@ export class GenericSqlParser extends SQLParserBase {
2938
3006
  localContext = new SubqueryExpressionDefaultContext(localContext);
2939
3007
  this.enterOuterAlt(localContext, 10);
2940
3008
  {
2941
- this.state = 707;
3009
+ this.state = 723;
2942
3010
  this.subqueryExpression();
2943
3011
  }
2944
3012
  break;
@@ -2946,8 +3014,8 @@ export class GenericSqlParser extends SQLParserBase {
2946
3014
  localContext = new ColumnReferenceContext(localContext);
2947
3015
  this.enterOuterAlt(localContext, 11);
2948
3016
  {
2949
- this.state = 708;
2950
- this.qualifiedName();
3017
+ this.state = 724;
3018
+ this.columnName();
2951
3019
  }
2952
3020
  break;
2953
3021
  }
@@ -2969,17 +3037,17 @@ export class GenericSqlParser extends SQLParserBase {
2969
3037
  }
2970
3038
  whenClause() {
2971
3039
  let localContext = new WhenClauseContext(this.context, this.state);
2972
- this.enterRule(localContext, 86, GenericSqlParser.RULE_whenClause);
3040
+ this.enterRule(localContext, 88, GenericSqlParser.RULE_whenClause);
2973
3041
  try {
2974
3042
  this.enterOuterAlt(localContext, 1);
2975
3043
  {
2976
- this.state = 711;
3044
+ this.state = 727;
2977
3045
  this.match(GenericSqlParser.KW_WHEN);
2978
- this.state = 712;
3046
+ this.state = 728;
2979
3047
  localContext._condition = this.expression();
2980
- this.state = 713;
3048
+ this.state = 729;
2981
3049
  this.match(GenericSqlParser.KW_THEN);
2982
- this.state = 714;
3050
+ this.state = 730;
2983
3051
  localContext._result = this.expression();
2984
3052
  }
2985
3053
  }
@@ -3000,15 +3068,15 @@ export class GenericSqlParser extends SQLParserBase {
3000
3068
  }
3001
3069
  subqueryExpression() {
3002
3070
  let localContext = new SubqueryExpressionContext(this.context, this.state);
3003
- this.enterRule(localContext, 88, GenericSqlParser.RULE_subqueryExpression);
3071
+ this.enterRule(localContext, 90, GenericSqlParser.RULE_subqueryExpression);
3004
3072
  try {
3005
3073
  this.enterOuterAlt(localContext, 1);
3006
3074
  {
3007
- this.state = 716;
3075
+ this.state = 732;
3008
3076
  this.match(GenericSqlParser.T__1);
3009
- this.state = 717;
3077
+ this.state = 733;
3010
3078
  this.queryStatement();
3011
- this.state = 718;
3079
+ this.state = 734;
3012
3080
  this.match(GenericSqlParser.T__2);
3013
3081
  }
3014
3082
  }
@@ -3029,94 +3097,94 @@ export class GenericSqlParser extends SQLParserBase {
3029
3097
  }
3030
3098
  dataType() {
3031
3099
  let localContext = new DataTypeContext(this.context, this.state);
3032
- this.enterRule(localContext, 90, GenericSqlParser.RULE_dataType);
3100
+ this.enterRule(localContext, 92, GenericSqlParser.RULE_dataType);
3033
3101
  let _la;
3034
3102
  try {
3035
- this.state = 766;
3103
+ this.state = 782;
3036
3104
  this.errorHandler.sync(this);
3037
3105
  switch (this.tokenStream.LA(1)) {
3038
3106
  case GenericSqlParser.KW_BOOLEAN:
3039
3107
  this.enterOuterAlt(localContext, 1);
3040
3108
  {
3041
- this.state = 720;
3109
+ this.state = 736;
3042
3110
  this.match(GenericSqlParser.KW_BOOLEAN);
3043
3111
  }
3044
3112
  break;
3045
3113
  case GenericSqlParser.KW_TINYINT:
3046
3114
  this.enterOuterAlt(localContext, 2);
3047
3115
  {
3048
- this.state = 721;
3116
+ this.state = 737;
3049
3117
  this.match(GenericSqlParser.KW_TINYINT);
3050
3118
  }
3051
3119
  break;
3052
3120
  case GenericSqlParser.KW_SMALLINT:
3053
3121
  this.enterOuterAlt(localContext, 3);
3054
3122
  {
3055
- this.state = 722;
3123
+ this.state = 738;
3056
3124
  this.match(GenericSqlParser.KW_SMALLINT);
3057
3125
  }
3058
3126
  break;
3059
3127
  case GenericSqlParser.KW_INT:
3060
3128
  this.enterOuterAlt(localContext, 4);
3061
3129
  {
3062
- this.state = 723;
3130
+ this.state = 739;
3063
3131
  this.match(GenericSqlParser.KW_INT);
3064
3132
  }
3065
3133
  break;
3066
3134
  case GenericSqlParser.KW_INTEGER:
3067
3135
  this.enterOuterAlt(localContext, 5);
3068
3136
  {
3069
- this.state = 724;
3137
+ this.state = 740;
3070
3138
  this.match(GenericSqlParser.KW_INTEGER);
3071
3139
  }
3072
3140
  break;
3073
3141
  case GenericSqlParser.KW_BIGINT:
3074
3142
  this.enterOuterAlt(localContext, 6);
3075
3143
  {
3076
- this.state = 725;
3144
+ this.state = 741;
3077
3145
  this.match(GenericSqlParser.KW_BIGINT);
3078
3146
  }
3079
3147
  break;
3080
3148
  case GenericSqlParser.KW_FLOAT:
3081
3149
  this.enterOuterAlt(localContext, 7);
3082
3150
  {
3083
- this.state = 726;
3151
+ this.state = 742;
3084
3152
  this.match(GenericSqlParser.KW_FLOAT);
3085
3153
  }
3086
3154
  break;
3087
3155
  case GenericSqlParser.KW_DOUBLE:
3088
3156
  this.enterOuterAlt(localContext, 8);
3089
3157
  {
3090
- this.state = 727;
3158
+ this.state = 743;
3091
3159
  this.match(GenericSqlParser.KW_DOUBLE);
3092
3160
  }
3093
3161
  break;
3094
3162
  case GenericSqlParser.KW_DECIMAL:
3095
3163
  this.enterOuterAlt(localContext, 9);
3096
3164
  {
3097
- this.state = 728;
3165
+ this.state = 744;
3098
3166
  this.match(GenericSqlParser.KW_DECIMAL);
3099
- this.state = 736;
3167
+ this.state = 752;
3100
3168
  this.errorHandler.sync(this);
3101
- switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context)) {
3169
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context)) {
3102
3170
  case 1:
3103
3171
  {
3104
- this.state = 729;
3172
+ this.state = 745;
3105
3173
  this.match(GenericSqlParser.T__1);
3106
- this.state = 730;
3174
+ this.state = 746;
3107
3175
  localContext._precision = this.match(GenericSqlParser.INTEGER_VALUE);
3108
- this.state = 733;
3176
+ this.state = 749;
3109
3177
  this.errorHandler.sync(this);
3110
3178
  _la = this.tokenStream.LA(1);
3111
3179
  if (_la === 1) {
3112
3180
  {
3113
- this.state = 731;
3181
+ this.state = 747;
3114
3182
  this.match(GenericSqlParser.T__0);
3115
- this.state = 732;
3183
+ this.state = 748;
3116
3184
  localContext._scale = this.match(GenericSqlParser.INTEGER_VALUE);
3117
3185
  }
3118
3186
  }
3119
- this.state = 735;
3187
+ this.state = 751;
3120
3188
  this.match(GenericSqlParser.T__2);
3121
3189
  }
3122
3190
  break;
@@ -3126,29 +3194,29 @@ export class GenericSqlParser extends SQLParserBase {
3126
3194
  case GenericSqlParser.KW_NUMERIC:
3127
3195
  this.enterOuterAlt(localContext, 10);
3128
3196
  {
3129
- this.state = 738;
3197
+ this.state = 754;
3130
3198
  this.match(GenericSqlParser.KW_NUMERIC);
3131
- this.state = 746;
3199
+ this.state = 762;
3132
3200
  this.errorHandler.sync(this);
3133
- switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context)) {
3201
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 91, this.context)) {
3134
3202
  case 1:
3135
3203
  {
3136
- this.state = 739;
3204
+ this.state = 755;
3137
3205
  this.match(GenericSqlParser.T__1);
3138
- this.state = 740;
3206
+ this.state = 756;
3139
3207
  localContext._precision = this.match(GenericSqlParser.INTEGER_VALUE);
3140
- this.state = 743;
3208
+ this.state = 759;
3141
3209
  this.errorHandler.sync(this);
3142
3210
  _la = this.tokenStream.LA(1);
3143
3211
  if (_la === 1) {
3144
3212
  {
3145
- this.state = 741;
3213
+ this.state = 757;
3146
3214
  this.match(GenericSqlParser.T__0);
3147
- this.state = 742;
3215
+ this.state = 758;
3148
3216
  localContext._scale = this.match(GenericSqlParser.INTEGER_VALUE);
3149
3217
  }
3150
3218
  }
3151
- this.state = 745;
3219
+ this.state = 761;
3152
3220
  this.match(GenericSqlParser.T__2);
3153
3221
  }
3154
3222
  break;
@@ -3158,18 +3226,18 @@ export class GenericSqlParser extends SQLParserBase {
3158
3226
  case GenericSqlParser.KW_VARCHAR:
3159
3227
  this.enterOuterAlt(localContext, 11);
3160
3228
  {
3161
- this.state = 748;
3229
+ this.state = 764;
3162
3230
  this.match(GenericSqlParser.KW_VARCHAR);
3163
- this.state = 752;
3231
+ this.state = 768;
3164
3232
  this.errorHandler.sync(this);
3165
- switch (this.interpreter.adaptivePredict(this.tokenStream, 90, this.context)) {
3233
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 92, this.context)) {
3166
3234
  case 1:
3167
3235
  {
3168
- this.state = 749;
3236
+ this.state = 765;
3169
3237
  this.match(GenericSqlParser.T__1);
3170
- this.state = 750;
3238
+ this.state = 766;
3171
3239
  localContext._maxLength = this.match(GenericSqlParser.INTEGER_VALUE);
3172
- this.state = 751;
3240
+ this.state = 767;
3173
3241
  this.match(GenericSqlParser.T__2);
3174
3242
  }
3175
3243
  break;
@@ -3179,18 +3247,18 @@ export class GenericSqlParser extends SQLParserBase {
3179
3247
  case GenericSqlParser.KW_CHAR:
3180
3248
  this.enterOuterAlt(localContext, 12);
3181
3249
  {
3182
- this.state = 754;
3250
+ this.state = 770;
3183
3251
  this.match(GenericSqlParser.KW_CHAR);
3184
- this.state = 758;
3252
+ this.state = 774;
3185
3253
  this.errorHandler.sync(this);
3186
- switch (this.interpreter.adaptivePredict(this.tokenStream, 91, this.context)) {
3254
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 93, this.context)) {
3187
3255
  case 1:
3188
3256
  {
3189
- this.state = 755;
3257
+ this.state = 771;
3190
3258
  this.match(GenericSqlParser.T__1);
3191
- this.state = 756;
3259
+ this.state = 772;
3192
3260
  localContext._length = this.match(GenericSqlParser.INTEGER_VALUE);
3193
- this.state = 757;
3261
+ this.state = 773;
3194
3262
  this.match(GenericSqlParser.T__2);
3195
3263
  }
3196
3264
  break;
@@ -3200,42 +3268,42 @@ export class GenericSqlParser extends SQLParserBase {
3200
3268
  case GenericSqlParser.KW_TEXT:
3201
3269
  this.enterOuterAlt(localContext, 13);
3202
3270
  {
3203
- this.state = 760;
3271
+ this.state = 776;
3204
3272
  this.match(GenericSqlParser.KW_TEXT);
3205
3273
  }
3206
3274
  break;
3207
3275
  case GenericSqlParser.KW_DATE:
3208
3276
  this.enterOuterAlt(localContext, 14);
3209
3277
  {
3210
- this.state = 761;
3278
+ this.state = 777;
3211
3279
  this.match(GenericSqlParser.KW_DATE);
3212
3280
  }
3213
3281
  break;
3214
3282
  case GenericSqlParser.KW_TIME:
3215
3283
  this.enterOuterAlt(localContext, 15);
3216
3284
  {
3217
- this.state = 762;
3285
+ this.state = 778;
3218
3286
  this.match(GenericSqlParser.KW_TIME);
3219
3287
  }
3220
3288
  break;
3221
3289
  case GenericSqlParser.KW_TIMESTAMP:
3222
3290
  this.enterOuterAlt(localContext, 16);
3223
3291
  {
3224
- this.state = 763;
3292
+ this.state = 779;
3225
3293
  this.match(GenericSqlParser.KW_TIMESTAMP);
3226
3294
  }
3227
3295
  break;
3228
3296
  case GenericSqlParser.KW_BINARY:
3229
3297
  this.enterOuterAlt(localContext, 17);
3230
3298
  {
3231
- this.state = 764;
3299
+ this.state = 780;
3232
3300
  this.match(GenericSqlParser.KW_BINARY);
3233
3301
  }
3234
3302
  break;
3235
3303
  case GenericSqlParser.KW_VARBINARY:
3236
3304
  this.enterOuterAlt(localContext, 18);
3237
3305
  {
3238
- this.state = 765;
3306
+ this.state = 781;
3239
3307
  this.match(GenericSqlParser.KW_VARBINARY);
3240
3308
  }
3241
3309
  break;
@@ -3260,32 +3328,32 @@ export class GenericSqlParser extends SQLParserBase {
3260
3328
  }
3261
3329
  properties() {
3262
3330
  let localContext = new PropertiesContext(this.context, this.state);
3263
- this.enterRule(localContext, 92, GenericSqlParser.RULE_properties);
3331
+ this.enterRule(localContext, 94, GenericSqlParser.RULE_properties);
3264
3332
  let _la;
3265
3333
  try {
3266
3334
  this.enterOuterAlt(localContext, 1);
3267
3335
  {
3268
- this.state = 768;
3336
+ this.state = 784;
3269
3337
  this.match(GenericSqlParser.T__1);
3270
- this.state = 769;
3338
+ this.state = 785;
3271
3339
  this.property();
3272
- this.state = 774;
3340
+ this.state = 790;
3273
3341
  this.errorHandler.sync(this);
3274
3342
  _la = this.tokenStream.LA(1);
3275
3343
  while (_la === 1) {
3276
3344
  {
3277
3345
  {
3278
- this.state = 770;
3346
+ this.state = 786;
3279
3347
  this.match(GenericSqlParser.T__0);
3280
- this.state = 771;
3348
+ this.state = 787;
3281
3349
  this.property();
3282
3350
  }
3283
3351
  }
3284
- this.state = 776;
3352
+ this.state = 792;
3285
3353
  this.errorHandler.sync(this);
3286
3354
  _la = this.tokenStream.LA(1);
3287
3355
  }
3288
- this.state = 777;
3356
+ this.state = 793;
3289
3357
  this.match(GenericSqlParser.T__2);
3290
3358
  }
3291
3359
  }
@@ -3306,15 +3374,15 @@ export class GenericSqlParser extends SQLParserBase {
3306
3374
  }
3307
3375
  property() {
3308
3376
  let localContext = new PropertyContext(this.context, this.state);
3309
- this.enterRule(localContext, 94, GenericSqlParser.RULE_property);
3377
+ this.enterRule(localContext, 96, GenericSqlParser.RULE_property);
3310
3378
  try {
3311
3379
  this.enterOuterAlt(localContext, 1);
3312
3380
  {
3313
- this.state = 779;
3381
+ this.state = 795;
3314
3382
  this.identifier();
3315
- this.state = 780;
3383
+ this.state = 796;
3316
3384
  this.match(GenericSqlParser.EQ);
3317
- this.state = 781;
3385
+ this.state = 797;
3318
3386
  this.literal();
3319
3387
  }
3320
3388
  }
@@ -3335,16 +3403,16 @@ export class GenericSqlParser extends SQLParserBase {
3335
3403
  }
3336
3404
  literal() {
3337
3405
  let localContext = new LiteralContext(this.context, this.state);
3338
- this.enterRule(localContext, 96, GenericSqlParser.RULE_literal);
3406
+ this.enterRule(localContext, 98, GenericSqlParser.RULE_literal);
3339
3407
  try {
3340
- this.state = 791;
3408
+ this.state = 807;
3341
3409
  this.errorHandler.sync(this);
3342
3410
  switch (this.tokenStream.LA(1)) {
3343
3411
  case GenericSqlParser.KW_NULL:
3344
3412
  localContext = new NullLiteralContext(localContext);
3345
3413
  this.enterOuterAlt(localContext, 1);
3346
3414
  {
3347
- this.state = 783;
3415
+ this.state = 799;
3348
3416
  this.match(GenericSqlParser.KW_NULL);
3349
3417
  }
3350
3418
  break;
@@ -3352,7 +3420,7 @@ export class GenericSqlParser extends SQLParserBase {
3352
3420
  localContext = new BooleanLiteralContext(localContext);
3353
3421
  this.enterOuterAlt(localContext, 2);
3354
3422
  {
3355
- this.state = 784;
3423
+ this.state = 800;
3356
3424
  this.match(GenericSqlParser.KW_TRUE);
3357
3425
  }
3358
3426
  break;
@@ -3360,7 +3428,7 @@ export class GenericSqlParser extends SQLParserBase {
3360
3428
  localContext = new BooleanLiteralContext(localContext);
3361
3429
  this.enterOuterAlt(localContext, 3);
3362
3430
  {
3363
- this.state = 785;
3431
+ this.state = 801;
3364
3432
  this.match(GenericSqlParser.KW_FALSE);
3365
3433
  }
3366
3434
  break;
@@ -3368,7 +3436,7 @@ export class GenericSqlParser extends SQLParserBase {
3368
3436
  localContext = new IntegerLiteralContext(localContext);
3369
3437
  this.enterOuterAlt(localContext, 4);
3370
3438
  {
3371
- this.state = 786;
3439
+ this.state = 802;
3372
3440
  this.match(GenericSqlParser.INTEGER_VALUE);
3373
3441
  }
3374
3442
  break;
@@ -3376,7 +3444,7 @@ export class GenericSqlParser extends SQLParserBase {
3376
3444
  localContext = new DecimalLiteralContext(localContext);
3377
3445
  this.enterOuterAlt(localContext, 5);
3378
3446
  {
3379
- this.state = 787;
3447
+ this.state = 803;
3380
3448
  this.match(GenericSqlParser.DECIMAL_VALUE);
3381
3449
  }
3382
3450
  break;
@@ -3384,7 +3452,7 @@ export class GenericSqlParser extends SQLParserBase {
3384
3452
  localContext = new DoubleLiteralContext(localContext);
3385
3453
  this.enterOuterAlt(localContext, 6);
3386
3454
  {
3387
- this.state = 788;
3455
+ this.state = 804;
3388
3456
  this.match(GenericSqlParser.DOUBLE_VALUE);
3389
3457
  }
3390
3458
  break;
@@ -3392,7 +3460,7 @@ export class GenericSqlParser extends SQLParserBase {
3392
3460
  localContext = new StringLiteralContext(localContext);
3393
3461
  this.enterOuterAlt(localContext, 7);
3394
3462
  {
3395
- this.state = 789;
3463
+ this.state = 805;
3396
3464
  this.match(GenericSqlParser.STRING);
3397
3465
  }
3398
3466
  break;
@@ -3400,7 +3468,7 @@ export class GenericSqlParser extends SQLParserBase {
3400
3468
  localContext = new BinaryLiteralContext(localContext);
3401
3469
  this.enterOuterAlt(localContext, 8);
3402
3470
  {
3403
- this.state = 790;
3471
+ this.state = 806;
3404
3472
  this.match(GenericSqlParser.BINARY_LITERAL);
3405
3473
  }
3406
3474
  break;
@@ -3425,36 +3493,36 @@ export class GenericSqlParser extends SQLParserBase {
3425
3493
  }
3426
3494
  identifier() {
3427
3495
  let localContext = new IdentifierContext(this.context, this.state);
3428
- this.enterRule(localContext, 98, GenericSqlParser.RULE_identifier);
3496
+ this.enterRule(localContext, 100, GenericSqlParser.RULE_identifier);
3429
3497
  try {
3430
- this.state = 798;
3498
+ this.state = 814;
3431
3499
  this.errorHandler.sync(this);
3432
3500
  switch (this.tokenStream.LA(1)) {
3433
3501
  case GenericSqlParser.IDENTIFIER:
3434
3502
  this.enterOuterAlt(localContext, 1);
3435
3503
  {
3436
- this.state = 793;
3504
+ this.state = 809;
3437
3505
  this.match(GenericSqlParser.IDENTIFIER);
3438
3506
  }
3439
3507
  break;
3440
3508
  case GenericSqlParser.DIGIT_IDENTIFIER:
3441
3509
  this.enterOuterAlt(localContext, 2);
3442
3510
  {
3443
- this.state = 794;
3511
+ this.state = 810;
3444
3512
  this.match(GenericSqlParser.DIGIT_IDENTIFIER);
3445
3513
  }
3446
3514
  break;
3447
3515
  case GenericSqlParser.QUOTED_IDENTIFIER:
3448
3516
  this.enterOuterAlt(localContext, 3);
3449
3517
  {
3450
- this.state = 795;
3518
+ this.state = 811;
3451
3519
  this.match(GenericSqlParser.QUOTED_IDENTIFIER);
3452
3520
  }
3453
3521
  break;
3454
3522
  case GenericSqlParser.BACKQUOTED_IDENTIFIER:
3455
3523
  this.enterOuterAlt(localContext, 4);
3456
3524
  {
3457
- this.state = 796;
3525
+ this.state = 812;
3458
3526
  this.match(GenericSqlParser.BACKQUOTED_IDENTIFIER);
3459
3527
  }
3460
3528
  break;
@@ -3503,7 +3571,7 @@ export class GenericSqlParser extends SQLParserBase {
3503
3571
  case GenericSqlParser.KW_VARBINARY:
3504
3572
  this.enterOuterAlt(localContext, 5);
3505
3573
  {
3506
- this.state = 797;
3574
+ this.state = 813;
3507
3575
  this.nonReserved();
3508
3576
  }
3509
3577
  break;
@@ -3528,30 +3596,30 @@ export class GenericSqlParser extends SQLParserBase {
3528
3596
  }
3529
3597
  qualifiedName() {
3530
3598
  let localContext = new QualifiedNameContext(this.context, this.state);
3531
- this.enterRule(localContext, 100, GenericSqlParser.RULE_qualifiedName);
3599
+ this.enterRule(localContext, 102, GenericSqlParser.RULE_qualifiedName);
3532
3600
  try {
3533
3601
  let alternative;
3534
3602
  this.enterOuterAlt(localContext, 1);
3535
3603
  {
3536
- this.state = 800;
3604
+ this.state = 816;
3537
3605
  this.identifier();
3538
- this.state = 805;
3606
+ this.state = 821;
3539
3607
  this.errorHandler.sync(this);
3540
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 96, this.context);
3608
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 98, this.context);
3541
3609
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3542
3610
  if (alternative === 1) {
3543
3611
  {
3544
3612
  {
3545
- this.state = 801;
3613
+ this.state = 817;
3546
3614
  this.match(GenericSqlParser.T__3);
3547
- this.state = 802;
3615
+ this.state = 818;
3548
3616
  this.identifier();
3549
3617
  }
3550
3618
  }
3551
3619
  }
3552
- this.state = 807;
3620
+ this.state = 823;
3553
3621
  this.errorHandler.sync(this);
3554
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 96, this.context);
3622
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 98, this.context);
3555
3623
  }
3556
3624
  }
3557
3625
  }
@@ -3572,12 +3640,78 @@ export class GenericSqlParser extends SQLParserBase {
3572
3640
  }
3573
3641
  columnRef() {
3574
3642
  let localContext = new ColumnRefContext(this.context, this.state);
3575
- this.enterRule(localContext, 102, GenericSqlParser.RULE_columnRef);
3643
+ this.enterRule(localContext, 104, GenericSqlParser.RULE_columnRef);
3644
+ try {
3645
+ this.state = 827;
3646
+ this.errorHandler.sync(this);
3647
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 99, this.context)) {
3648
+ case 1:
3649
+ this.enterOuterAlt(localContext, 1);
3650
+ {
3651
+ this.state = 824;
3652
+ this.identifier();
3653
+ }
3654
+ break;
3655
+ case 2:
3656
+ this.enterOuterAlt(localContext, 2);
3657
+ {
3658
+ this.state = 825;
3659
+ if (!(this.shouldMatchEmpty())) {
3660
+ throw this.createFailedPredicateException("this.shouldMatchEmpty()");
3661
+ }
3662
+ this.state = 826;
3663
+ this.emptyColumn();
3664
+ }
3665
+ break;
3666
+ }
3667
+ }
3668
+ catch (re) {
3669
+ if (re instanceof antlr.RecognitionException) {
3670
+ localContext.exception = re;
3671
+ this.errorHandler.reportError(this, re);
3672
+ this.errorHandler.recover(this, re);
3673
+ }
3674
+ else {
3675
+ throw re;
3676
+ }
3677
+ }
3678
+ finally {
3679
+ this.exitRule();
3680
+ }
3681
+ return localContext;
3682
+ }
3683
+ columnName() {
3684
+ let localContext = new ColumnNameContext(this.context, this.state);
3685
+ this.enterRule(localContext, 106, GenericSqlParser.RULE_columnName);
3576
3686
  try {
3577
3687
  this.enterOuterAlt(localContext, 1);
3578
3688
  {
3579
- this.state = 808;
3580
- this.identifier();
3689
+ this.state = 829;
3690
+ this.qualifiedName();
3691
+ }
3692
+ }
3693
+ catch (re) {
3694
+ if (re instanceof antlr.RecognitionException) {
3695
+ localContext.exception = re;
3696
+ this.errorHandler.reportError(this, re);
3697
+ this.errorHandler.recover(this, re);
3698
+ }
3699
+ else {
3700
+ throw re;
3701
+ }
3702
+ }
3703
+ finally {
3704
+ this.exitRule();
3705
+ }
3706
+ return localContext;
3707
+ }
3708
+ emptyColumn() {
3709
+ let localContext = new EmptyColumnContext(this.context, this.state);
3710
+ this.enterRule(localContext, 108, GenericSqlParser.RULE_emptyColumn);
3711
+ try {
3712
+ this.enterOuterAlt(localContext, 1);
3713
+ // tslint:disable-next-line:no-empty
3714
+ {
3581
3715
  }
3582
3716
  }
3583
3717
  catch (re) {
@@ -3597,11 +3731,11 @@ export class GenericSqlParser extends SQLParserBase {
3597
3731
  }
3598
3732
  tableName() {
3599
3733
  let localContext = new TableNameContext(this.context, this.state);
3600
- this.enterRule(localContext, 104, GenericSqlParser.RULE_tableName);
3734
+ this.enterRule(localContext, 110, GenericSqlParser.RULE_tableName);
3601
3735
  try {
3602
3736
  this.enterOuterAlt(localContext, 1);
3603
3737
  {
3604
- this.state = 810;
3738
+ this.state = 833;
3605
3739
  this.qualifiedName();
3606
3740
  }
3607
3741
  }
@@ -3622,11 +3756,36 @@ export class GenericSqlParser extends SQLParserBase {
3622
3756
  }
3623
3757
  tableNameCreate() {
3624
3758
  let localContext = new TableNameCreateContext(this.context, this.state);
3625
- this.enterRule(localContext, 106, GenericSqlParser.RULE_tableNameCreate);
3759
+ this.enterRule(localContext, 112, GenericSqlParser.RULE_tableNameCreate);
3760
+ try {
3761
+ this.enterOuterAlt(localContext, 1);
3762
+ {
3763
+ this.state = 835;
3764
+ this.qualifiedName();
3765
+ }
3766
+ }
3767
+ catch (re) {
3768
+ if (re instanceof antlr.RecognitionException) {
3769
+ localContext.exception = re;
3770
+ this.errorHandler.reportError(this, re);
3771
+ this.errorHandler.recover(this, re);
3772
+ }
3773
+ else {
3774
+ throw re;
3775
+ }
3776
+ }
3777
+ finally {
3778
+ this.exitRule();
3779
+ }
3780
+ return localContext;
3781
+ }
3782
+ functionName() {
3783
+ let localContext = new FunctionNameContext(this.context, this.state);
3784
+ this.enterRule(localContext, 114, GenericSqlParser.RULE_functionName);
3626
3785
  try {
3627
3786
  this.enterOuterAlt(localContext, 1);
3628
3787
  {
3629
- this.state = 812;
3788
+ this.state = 837;
3630
3789
  this.qualifiedName();
3631
3790
  }
3632
3791
  }
@@ -3647,12 +3806,12 @@ export class GenericSqlParser extends SQLParserBase {
3647
3806
  }
3648
3807
  nonReserved() {
3649
3808
  let localContext = new NonReservedContext(this.context, this.state);
3650
- this.enterRule(localContext, 108, GenericSqlParser.RULE_nonReserved);
3809
+ this.enterRule(localContext, 116, GenericSqlParser.RULE_nonReserved);
3651
3810
  let _la;
3652
3811
  try {
3653
3812
  this.enterOuterAlt(localContext, 1);
3654
3813
  {
3655
- this.state = 814;
3814
+ this.state = 839;
3656
3815
  _la = this.tokenStream.LA(1);
3657
3816
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 2939483232) !== 0) || ((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & 509358375) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 3536161) !== 0))) {
3658
3817
  this.errorHandler.recoverInline(this);
@@ -3680,42 +3839,60 @@ export class GenericSqlParser extends SQLParserBase {
3680
3839
  }
3681
3840
  sempred(localContext, ruleIndex, predIndex) {
3682
3841
  switch (ruleIndex) {
3842
+ case 13:
3843
+ return this.selectItem_sempred(localContext, predIndex);
3683
3844
  case 15:
3684
3845
  return this.relation_sempred(localContext, predIndex);
3685
- case 37:
3846
+ case 38:
3686
3847
  return this.booleanExpression_sempred(localContext, predIndex);
3687
- case 41:
3848
+ case 42:
3688
3849
  return this.valueExpression_sempred(localContext, predIndex);
3850
+ case 52:
3851
+ return this.columnRef_sempred(localContext, predIndex);
3689
3852
  }
3690
3853
  return true;
3691
3854
  }
3692
- relation_sempred(localContext, predIndex) {
3855
+ selectItem_sempred(localContext, predIndex) {
3693
3856
  switch (predIndex) {
3694
3857
  case 0:
3695
- return this.precpred(this.context, 2);
3858
+ return this.shouldMatchEmpty();
3696
3859
  }
3697
3860
  return true;
3698
3861
  }
3699
- booleanExpression_sempred(localContext, predIndex) {
3862
+ relation_sempred(localContext, predIndex) {
3700
3863
  switch (predIndex) {
3701
3864
  case 1:
3702
3865
  return this.precpred(this.context, 2);
3866
+ }
3867
+ return true;
3868
+ }
3869
+ booleanExpression_sempred(localContext, predIndex) {
3870
+ switch (predIndex) {
3703
3871
  case 2:
3872
+ return this.precpred(this.context, 2);
3873
+ case 3:
3704
3874
  return this.precpred(this.context, 1);
3705
3875
  }
3706
3876
  return true;
3707
3877
  }
3708
3878
  valueExpression_sempred(localContext, predIndex) {
3709
3879
  switch (predIndex) {
3710
- case 3:
3711
- return this.precpred(this.context, 3);
3712
3880
  case 4:
3713
- return this.precpred(this.context, 2);
3881
+ return this.precpred(this.context, 3);
3714
3882
  case 5:
3883
+ return this.precpred(this.context, 2);
3884
+ case 6:
3715
3885
  return this.precpred(this.context, 1);
3716
3886
  }
3717
3887
  return true;
3718
3888
  }
3889
+ columnRef_sempred(localContext, predIndex) {
3890
+ switch (predIndex) {
3891
+ case 7:
3892
+ return this.shouldMatchEmpty();
3893
+ }
3894
+ return true;
3895
+ }
3719
3896
  static get _ATN() {
3720
3897
  if (!GenericSqlParser.__ATN) {
3721
3898
  GenericSqlParser.__ATN = new antlr.ATNDeserializer().deserialize(GenericSqlParser._serializedATN);
@@ -3881,28 +4058,32 @@ GenericSqlParser.RULE_deleteStatement = 29;
3881
4058
  GenericSqlParser.RULE_createTableStatement = 30;
3882
4059
  GenericSqlParser.RULE_tableElement = 31;
3883
4060
  GenericSqlParser.RULE_columnDefinition = 32;
3884
- GenericSqlParser.RULE_tableConstraint = 33;
3885
- GenericSqlParser.RULE_alterTableStatement = 34;
3886
- GenericSqlParser.RULE_dropTableStatement = 35;
3887
- GenericSqlParser.RULE_expression = 36;
3888
- GenericSqlParser.RULE_booleanExpression = 37;
3889
- GenericSqlParser.RULE_predicatedExpression = 38;
3890
- GenericSqlParser.RULE_predicate = 39;
3891
- GenericSqlParser.RULE_comparisonOperator = 40;
3892
- GenericSqlParser.RULE_valueExpression = 41;
3893
- GenericSqlParser.RULE_primaryExpression = 42;
3894
- GenericSqlParser.RULE_whenClause = 43;
3895
- GenericSqlParser.RULE_subqueryExpression = 44;
3896
- GenericSqlParser.RULE_dataType = 45;
3897
- GenericSqlParser.RULE_properties = 46;
3898
- GenericSqlParser.RULE_property = 47;
3899
- GenericSqlParser.RULE_literal = 48;
3900
- GenericSqlParser.RULE_identifier = 49;
3901
- GenericSqlParser.RULE_qualifiedName = 50;
3902
- GenericSqlParser.RULE_columnRef = 51;
3903
- GenericSqlParser.RULE_tableName = 52;
3904
- GenericSqlParser.RULE_tableNameCreate = 53;
3905
- GenericSqlParser.RULE_nonReserved = 54;
4061
+ GenericSqlParser.RULE_columnRefCreate = 33;
4062
+ GenericSqlParser.RULE_tableConstraint = 34;
4063
+ GenericSqlParser.RULE_alterTableStatement = 35;
4064
+ GenericSqlParser.RULE_dropTableStatement = 36;
4065
+ GenericSqlParser.RULE_expression = 37;
4066
+ GenericSqlParser.RULE_booleanExpression = 38;
4067
+ GenericSqlParser.RULE_predicatedExpression = 39;
4068
+ GenericSqlParser.RULE_predicate = 40;
4069
+ GenericSqlParser.RULE_comparisonOperator = 41;
4070
+ GenericSqlParser.RULE_valueExpression = 42;
4071
+ GenericSqlParser.RULE_primaryExpression = 43;
4072
+ GenericSqlParser.RULE_whenClause = 44;
4073
+ GenericSqlParser.RULE_subqueryExpression = 45;
4074
+ GenericSqlParser.RULE_dataType = 46;
4075
+ GenericSqlParser.RULE_properties = 47;
4076
+ GenericSqlParser.RULE_property = 48;
4077
+ GenericSqlParser.RULE_literal = 49;
4078
+ GenericSqlParser.RULE_identifier = 50;
4079
+ GenericSqlParser.RULE_qualifiedName = 51;
4080
+ GenericSqlParser.RULE_columnRef = 52;
4081
+ GenericSqlParser.RULE_columnName = 53;
4082
+ GenericSqlParser.RULE_emptyColumn = 54;
4083
+ GenericSqlParser.RULE_tableName = 55;
4084
+ GenericSqlParser.RULE_tableNameCreate = 56;
4085
+ GenericSqlParser.RULE_functionName = 57;
4086
+ GenericSqlParser.RULE_nonReserved = 58;
3906
4087
  GenericSqlParser.literalNames = [
3907
4088
  null, "','", "'('", "')'", "'.'", "'ADD'", "'ALL'", "'ALTER'", "'AND'",
3908
4089
  "'AS'", "'ASC'", "'BETWEEN'", "'BIGINT'", "'BINARY'", "'BOOLEAN'",
@@ -3954,15 +4135,15 @@ GenericSqlParser.ruleNames = [
3954
4135
  "whereClause", "groupByClause", "havingClause", "orderByClause",
3955
4136
  "sortItem", "limitClause", "insertStatement", "columnList", "updateStatement",
3956
4137
  "updateAssignment", "deleteStatement", "createTableStatement", "tableElement",
3957
- "columnDefinition", "tableConstraint", "alterTableStatement", "dropTableStatement",
3958
- "expression", "booleanExpression", "predicatedExpression", "predicate",
3959
- "comparisonOperator", "valueExpression", "primaryExpression", "whenClause",
3960
- "subqueryExpression", "dataType", "properties", "property", "literal",
3961
- "identifier", "qualifiedName", "columnRef", "tableName", "tableNameCreate",
3962
- "nonReserved",
4138
+ "columnDefinition", "columnRefCreate", "tableConstraint", "alterTableStatement",
4139
+ "dropTableStatement", "expression", "booleanExpression", "predicatedExpression",
4140
+ "predicate", "comparisonOperator", "valueExpression", "primaryExpression",
4141
+ "whenClause", "subqueryExpression", "dataType", "properties", "property",
4142
+ "literal", "identifier", "qualifiedName", "columnRef", "columnName",
4143
+ "emptyColumn", "tableName", "tableNameCreate", "functionName", "nonReserved",
3963
4144
  ];
3964
4145
  GenericSqlParser._serializedATN = [
3965
- 4, 1, 122, 817, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6,
4146
+ 4, 1, 122, 842, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6,
3966
4147
  7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7,
3967
4148
  13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2,
3968
4149
  20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7,
@@ -3970,311 +4151,320 @@ GenericSqlParser._serializedATN = [
3970
4151
  33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7,
3971
4152
  39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2,
3972
4153
  46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7,
3973
- 52, 2, 53, 7, 53, 2, 54, 7, 54, 1, 0, 5, 0, 112, 8, 0, 10, 0, 12, 0, 115, 9, 0, 1, 0, 1, 0,
3974
- 1, 1, 1, 1, 1, 2, 1, 2, 3, 2, 123, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 132,
3975
- 8, 3, 1, 4, 3, 4, 135, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 3, 5, 141, 8, 5, 1, 5, 1, 5, 1, 5, 5, 5,
3976
- 146, 8, 5, 10, 5, 12, 5, 149, 9, 5, 1, 6, 1, 6, 3, 6, 153, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1,
3977
- 6, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 164, 8, 7, 10, 7, 12, 7, 167, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8,
3978
- 1, 8, 3, 8, 174, 8, 8, 1, 8, 5, 8, 177, 8, 8, 10, 8, 12, 8, 180, 9, 8, 1, 9, 1, 9, 1, 10, 1,
3979
- 10, 1, 10, 1, 10, 1, 10, 3, 10, 189, 8, 10, 1, 11, 1, 11, 3, 11, 193, 8, 11, 1, 11, 1, 11,
3980
- 1, 11, 5, 11, 198, 8, 11, 10, 11, 12, 11, 201, 9, 11, 1, 11, 3, 11, 204, 8, 11, 1, 11,
3981
- 3, 11, 207, 8, 11, 1, 11, 3, 11, 210, 8, 11, 1, 11, 3, 11, 213, 8, 11, 1, 11, 3, 11, 216,
3982
- 8, 11, 1, 11, 3, 11, 219, 8, 11, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 225, 8, 13, 1, 13, 3,
3983
- 13, 228, 8, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 235, 8, 13, 1, 14, 1, 14, 1, 14,
3984
- 1, 14, 5, 14, 241, 8, 14, 10, 14, 12, 14, 244, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
3985
- 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 256, 8, 15, 10, 15, 12, 15, 259, 9, 15, 1, 16,
3986
- 3, 16, 262, 8, 16, 1, 16, 1, 16, 3, 16, 266, 8, 16, 1, 16, 1, 16, 3, 16, 270, 8, 16, 1,
3987
- 16, 1, 16, 3, 16, 274, 8, 16, 1, 16, 3, 16, 277, 8, 16, 1, 17, 1, 17, 3, 17, 281, 8, 17,
3988
- 1, 17, 3, 17, 284, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 291, 8, 18, 1, 19, 1,
3989
- 19, 1, 19, 1, 20, 1, 20, 1, 20, 3, 20, 299, 8, 20, 1, 20, 1, 20, 1, 20, 5, 20, 304, 8, 20,
3990
- 10, 20, 12, 20, 307, 9, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22,
3991
- 317, 8, 22, 10, 22, 12, 22, 320, 9, 22, 1, 23, 1, 23, 3, 23, 324, 8, 23, 1, 23, 1, 23,
3992
- 3, 23, 328, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 334, 8, 24, 1, 25, 1, 25, 1, 25, 1,
3993
- 25, 3, 25, 340, 8, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 348, 8, 26, 10,
3994
- 26, 12, 26, 351, 9, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 361,
3995
- 8, 27, 10, 27, 12, 27, 364, 9, 27, 1, 27, 3, 27, 367, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28,
3996
- 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 377, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30,
3997
- 384, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 391, 8, 30, 10, 30, 12, 30, 394,
3998
- 9, 30, 1, 30, 1, 30, 1, 30, 3, 30, 399, 8, 30, 1, 31, 1, 31, 3, 31, 403, 8, 31, 1, 32, 1,
3999
- 32, 1, 32, 1, 32, 3, 32, 409, 8, 32, 1, 32, 1, 32, 3, 32, 413, 8, 32, 1, 32, 1, 32, 3, 32,
4000
- 417, 8, 32, 1, 33, 1, 33, 3, 33, 421, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5,
4001
- 33, 429, 8, 33, 10, 33, 12, 33, 432, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1,
4002
- 33, 5, 33, 441, 8, 33, 10, 33, 12, 33, 444, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1,
4003
- 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 459, 8, 33, 10, 33, 12, 33,
4004
- 462, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 471, 8, 33, 10, 33,
4005
- 12, 33, 474, 9, 33, 1, 33, 1, 33, 3, 33, 478, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34,
4006
- 484, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 492, 8, 34, 1, 34, 1, 34, 1,
4007
- 34, 1, 34, 1, 34, 3, 34, 499, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1,
4008
- 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 518, 8, 34, 1,
4009
- 35, 1, 35, 1, 35, 1, 35, 3, 35, 524, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1,
4010
- 37, 1, 37, 3, 37, 534, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 542, 8, 37,
4011
- 10, 37, 12, 37, 545, 9, 37, 1, 38, 1, 38, 3, 38, 549, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39,
4012
- 3, 39, 555, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 562, 8, 39, 10, 39, 12, 39,
4013
- 565, 9, 39, 1, 39, 1, 39, 1, 39, 3, 39, 570, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1,
4014
- 39, 3, 39, 578, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 586, 8, 39, 1, 39,
4015
- 1, 39, 1, 39, 1, 39, 3, 39, 592, 8, 39, 1, 39, 1, 39, 3, 39, 596, 8, 39, 1, 39, 1, 39, 1,
4016
- 39, 3, 39, 601, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 606, 8, 39, 1, 40, 1, 40, 1, 41, 1, 41,
4017
- 1, 41, 1, 41, 3, 41, 614, 8, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
4018
- 1, 41, 5, 41, 625, 8, 41, 10, 41, 12, 41, 628, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42,
4019
- 634, 8, 42, 1, 42, 1, 42, 1, 42, 5, 42, 639, 8, 42, 10, 42, 12, 42, 642, 9, 42, 3, 42,
4020
- 644, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 650, 8, 42, 11, 42, 12, 42, 651, 1, 42,
4021
- 1, 42, 3, 42, 656, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 663, 8, 42, 11, 42,
4022
- 12, 42, 664, 1, 42, 1, 42, 3, 42, 669, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42,
4023
- 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 685, 8, 42, 10, 42, 12, 42,
4024
- 688, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42,
4025
- 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 710, 8, 42, 1, 43,
4026
- 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45,
4027
- 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 734, 8, 45, 1, 45, 3, 45,
4028
- 737, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 744, 8, 45, 1, 45, 3, 45, 747, 8,
4029
- 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 753, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 759,
4030
- 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 767, 8, 45, 1, 46, 1, 46, 1, 46,
4031
- 1, 46, 5, 46, 773, 8, 46, 10, 46, 12, 46, 776, 9, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47,
4032
- 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 792, 8, 48, 1, 49,
4033
- 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 799, 8, 49, 1, 50, 1, 50, 1, 50, 5, 50, 804, 8, 50, 10,
4034
- 50, 12, 50, 807, 9, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 0,
4035
- 3, 30, 74, 82, 55, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36,
4036
- 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
4037
- 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 0, 8, 3, 0, 36, 36, 52,
4038
- 52, 87, 87, 2, 0, 6, 6, 30, 30, 2, 0, 10, 10, 29, 29, 2, 0, 39, 39, 57, 57, 1, 0, 95, 100,
4039
- 1, 0, 101, 102, 1, 0, 103, 105, 22, 0, 5, 6, 10, 10, 12, 15, 18, 18, 20, 21, 24, 27, 29,
4040
- 29, 31, 31, 38, 40, 43, 43, 46, 46, 50, 51, 56, 58, 60, 60, 63, 66, 70, 70, 75, 75, 78,
4041
- 78, 80, 80, 82, 86, 88, 88, 90, 91, 912, 0, 113, 1, 0, 0, 0, 2, 118, 1, 0, 0, 0, 4, 120,
4042
- 1, 0, 0, 0, 6, 131, 1, 0, 0, 0, 8, 134, 1, 0, 0, 0, 10, 138, 1, 0, 0, 0, 12, 150, 1, 0, 0,
4043
- 0, 14, 159, 1, 0, 0, 0, 16, 170, 1, 0, 0, 0, 18, 181, 1, 0, 0, 0, 20, 188, 1, 0, 0, 0, 22,
4044
- 190, 1, 0, 0, 0, 24, 220, 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 236, 1, 0, 0, 0, 30, 245,
4045
- 1, 0, 0, 0, 32, 276, 1, 0, 0, 0, 34, 278, 1, 0, 0, 0, 36, 290, 1, 0, 0, 0, 38, 292, 1, 0,
4046
- 0, 0, 40, 295, 1, 0, 0, 0, 42, 308, 1, 0, 0, 0, 44, 311, 1, 0, 0, 0, 46, 321, 1, 0, 0, 0,
4047
- 48, 329, 1, 0, 0, 0, 50, 335, 1, 0, 0, 0, 52, 343, 1, 0, 0, 0, 54, 354, 1, 0, 0, 0, 56, 368,
4048
- 1, 0, 0, 0, 58, 372, 1, 0, 0, 0, 60, 378, 1, 0, 0, 0, 62, 402, 1, 0, 0, 0, 64, 404, 1, 0,
4049
- 0, 0, 66, 420, 1, 0, 0, 0, 68, 479, 1, 0, 0, 0, 70, 519, 1, 0, 0, 0, 72, 527, 1, 0, 0, 0,
4050
- 74, 533, 1, 0, 0, 0, 76, 546, 1, 0, 0, 0, 78, 605, 1, 0, 0, 0, 80, 607, 1, 0, 0, 0, 82, 613,
4051
- 1, 0, 0, 0, 84, 709, 1, 0, 0, 0, 86, 711, 1, 0, 0, 0, 88, 716, 1, 0, 0, 0, 90, 766, 1, 0,
4052
- 0, 0, 92, 768, 1, 0, 0, 0, 94, 779, 1, 0, 0, 0, 96, 791, 1, 0, 0, 0, 98, 798, 1, 0, 0, 0,
4053
- 100, 800, 1, 0, 0, 0, 102, 808, 1, 0, 0, 0, 104, 810, 1, 0, 0, 0, 106, 812, 1, 0, 0, 0,
4054
- 108, 814, 1, 0, 0, 0, 110, 112, 3, 2, 1, 0, 111, 110, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0,
4055
- 113, 111, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 116, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0,
4056
- 116, 117, 5, 0, 0, 1, 117, 1, 1, 0, 0, 0, 118, 119, 3, 4, 2, 0, 119, 3, 1, 0, 0, 0, 120,
4057
- 122, 3, 6, 3, 0, 121, 123, 5, 108, 0, 0, 122, 121, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123,
4058
- 5, 1, 0, 0, 0, 124, 132, 3, 8, 4, 0, 125, 132, 3, 50, 25, 0, 126, 132, 3, 54, 27, 0, 127,
4059
- 132, 3, 58, 29, 0, 128, 132, 3, 60, 30, 0, 129, 132, 3, 68, 34, 0, 130, 132, 3, 70, 35,
4060
- 0, 131, 124, 1, 0, 0, 0, 131, 125, 1, 0, 0, 0, 131, 126, 1, 0, 0, 0, 131, 127, 1, 0, 0,
4061
- 0, 131, 128, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 131, 130, 1, 0, 0, 0, 132, 7, 1, 0, 0, 0,
4062
- 133, 135, 3, 10, 5, 0, 134, 133, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 136, 1, 0, 0, 0,
4063
- 136, 137, 3, 16, 8, 0, 137, 9, 1, 0, 0, 0, 138, 140, 5, 94, 0, 0, 139, 141, 5, 72, 0, 0,
4064
- 140, 139, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 147, 3, 12, 6, 0,
4065
- 143, 144, 5, 1, 0, 0, 144, 146, 3, 12, 6, 0, 145, 143, 1, 0, 0, 0, 146, 149, 1, 0, 0, 0,
4066
- 147, 145, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 11, 1, 0, 0, 0, 149, 147, 1, 0, 0, 0, 150,
4067
- 152, 3, 98, 49, 0, 151, 153, 3, 14, 7, 0, 152, 151, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153,
4068
- 154, 1, 0, 0, 0, 154, 155, 5, 9, 0, 0, 155, 156, 5, 2, 0, 0, 156, 157, 3, 8, 4, 0, 157,
4069
- 158, 5, 3, 0, 0, 158, 13, 1, 0, 0, 0, 159, 160, 5, 2, 0, 0, 160, 165, 3, 98, 49, 0, 161,
4070
- 162, 5, 1, 0, 0, 162, 164, 3, 98, 49, 0, 163, 161, 1, 0, 0, 0, 164, 167, 1, 0, 0, 0, 165,
4071
- 163, 1, 0, 0, 0, 165, 166, 1, 0, 0, 0, 166, 168, 1, 0, 0, 0, 167, 165, 1, 0, 0, 0, 168,
4072
- 169, 5, 3, 0, 0, 169, 15, 1, 0, 0, 0, 170, 178, 3, 18, 9, 0, 171, 173, 7, 0, 0, 0, 172,
4073
- 174, 5, 6, 0, 0, 173, 172, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175,
4074
- 177, 3, 18, 9, 0, 176, 171, 1, 0, 0, 0, 177, 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178,
4075
- 179, 1, 0, 0, 0, 179, 17, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 181, 182, 3, 20, 10, 0, 182,
4076
- 19, 1, 0, 0, 0, 183, 189, 3, 22, 11, 0, 184, 185, 5, 2, 0, 0, 185, 186, 3, 8, 4, 0, 186,
4077
- 187, 5, 3, 0, 0, 187, 189, 1, 0, 0, 0, 188, 183, 1, 0, 0, 0, 188, 184, 1, 0, 0, 0, 189,
4078
- 21, 1, 0, 0, 0, 190, 192, 5, 76, 0, 0, 191, 193, 3, 24, 12, 0, 192, 191, 1, 0, 0, 0, 192,
4079
- 193, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 199, 3, 26, 13, 0, 195, 196, 5, 1, 0, 0, 196,
4080
- 198, 3, 26, 13, 0, 197, 195, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0, 199, 197, 1, 0, 0, 0, 199,
4081
- 200, 1, 0, 0, 0, 200, 203, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 202, 204, 3, 28, 14, 0, 203,
4082
- 202, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 206, 1, 0, 0, 0, 205, 207, 3, 38, 19, 0, 206,
4083
- 205, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 209, 1, 0, 0, 0, 208, 210, 3, 40, 20, 0, 209,
4084
- 208, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 212, 1, 0, 0, 0, 211, 213, 3, 42, 21, 0, 212,
4085
- 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 215, 1, 0, 0, 0, 214, 216, 3, 44, 22, 0, 215,
4086
- 214, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 218, 1, 0, 0, 0, 217, 219, 3, 48, 24, 0, 218,
4087
- 217, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 23, 1, 0, 0, 0, 220, 221, 7, 1, 0, 0, 221, 25,
4088
- 1, 0, 0, 0, 222, 227, 3, 72, 36, 0, 223, 225, 5, 9, 0, 0, 224, 223, 1, 0, 0, 0, 224, 225,
4089
- 1, 0, 0, 0, 225, 226, 1, 0, 0, 0, 226, 228, 3, 98, 49, 0, 227, 224, 1, 0, 0, 0, 227, 228,
4090
- 1, 0, 0, 0, 228, 235, 1, 0, 0, 0, 229, 230, 3, 100, 50, 0, 230, 231, 5, 4, 0, 0, 231, 232,
4091
- 5, 103, 0, 0, 232, 235, 1, 0, 0, 0, 233, 235, 5, 103, 0, 0, 234, 222, 1, 0, 0, 0, 234,
4092
- 229, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 27, 1, 0, 0, 0, 236, 237, 5, 42, 0, 0, 237,
4093
- 242, 3, 30, 15, 0, 238, 239, 5, 1, 0, 0, 239, 241, 3, 30, 15, 0, 240, 238, 1, 0, 0, 0,
4094
- 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 29, 1, 0, 0, 0, 244,
4095
- 242, 1, 0, 0, 0, 245, 246, 6, 15, -1, 0, 246, 247, 3, 34, 17, 0, 247, 257, 1, 0, 0, 0,
4096
- 248, 249, 10, 2, 0, 0, 249, 250, 3, 32, 16, 0, 250, 251, 5, 55, 0, 0, 251, 252, 3, 30,
4097
- 15, 0, 252, 253, 5, 67, 0, 0, 253, 254, 3, 72, 36, 0, 254, 256, 1, 0, 0, 0, 255, 248,
4098
- 1, 0, 0, 0, 256, 259, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 31, 1,
4099
- 0, 0, 0, 259, 257, 1, 0, 0, 0, 260, 262, 5, 48, 0, 0, 261, 260, 1, 0, 0, 0, 261, 262, 1,
4100
- 0, 0, 0, 262, 277, 1, 0, 0, 0, 263, 265, 5, 58, 0, 0, 264, 266, 5, 70, 0, 0, 265, 264,
4101
- 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 277, 1, 0, 0, 0, 267, 269, 5, 75, 0, 0, 268, 270,
4102
- 5, 70, 0, 0, 269, 268, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 277, 1, 0, 0, 0, 271, 273,
4103
- 5, 43, 0, 0, 272, 274, 5, 70, 0, 0, 273, 272, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 277,
4104
- 1, 0, 0, 0, 275, 277, 5, 24, 0, 0, 276, 261, 1, 0, 0, 0, 276, 263, 1, 0, 0, 0, 276, 267,
4105
- 1, 0, 0, 0, 276, 271, 1, 0, 0, 0, 276, 275, 1, 0, 0, 0, 277, 33, 1, 0, 0, 0, 278, 283, 3,
4106
- 36, 18, 0, 279, 281, 5, 9, 0, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 282,
4107
- 1, 0, 0, 0, 282, 284, 3, 98, 49, 0, 283, 280, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 35,
4108
- 1, 0, 0, 0, 285, 291, 3, 104, 52, 0, 286, 287, 5, 2, 0, 0, 287, 288, 3, 8, 4, 0, 288, 289,
4109
- 5, 3, 0, 0, 289, 291, 1, 0, 0, 0, 290, 285, 1, 0, 0, 0, 290, 286, 1, 0, 0, 0, 291, 37, 1,
4110
- 0, 0, 0, 292, 293, 5, 93, 0, 0, 293, 294, 3, 72, 36, 0, 294, 39, 1, 0, 0, 0, 295, 296,
4111
- 5, 44, 0, 0, 296, 298, 5, 15, 0, 0, 297, 299, 3, 24, 12, 0, 298, 297, 1, 0, 0, 0, 298,
4112
- 299, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 305, 3, 72, 36, 0, 301, 302, 5, 1, 0, 0, 302,
4113
- 304, 3, 72, 36, 0, 303, 301, 1, 0, 0, 0, 304, 307, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 305,
4114
- 306, 1, 0, 0, 0, 306, 41, 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 309, 5, 45, 0, 0, 309,
4115
- 310, 3, 72, 36, 0, 310, 43, 1, 0, 0, 0, 311, 312, 5, 69, 0, 0, 312, 313, 5, 15, 0, 0, 313,
4116
- 318, 3, 46, 23, 0, 314, 315, 5, 1, 0, 0, 315, 317, 3, 46, 23, 0, 316, 314, 1, 0, 0, 0,
4117
- 317, 320, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 318, 319, 1, 0, 0, 0, 319, 45, 1, 0, 0, 0, 320,
4118
- 318, 1, 0, 0, 0, 321, 323, 3, 72, 36, 0, 322, 324, 7, 2, 0, 0, 323, 322, 1, 0, 0, 0, 323,
4119
- 324, 1, 0, 0, 0, 324, 327, 1, 0, 0, 0, 325, 326, 5, 64, 0, 0, 326, 328, 7, 3, 0, 0, 327,
4120
- 325, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 47, 1, 0, 0, 0, 329, 330, 5, 60, 0, 0, 330,
4121
- 333, 3, 72, 36, 0, 331, 332, 5, 66, 0, 0, 332, 334, 3, 72, 36, 0, 333, 331, 1, 0, 0, 0,
4122
- 333, 334, 1, 0, 0, 0, 334, 49, 1, 0, 0, 0, 335, 336, 5, 49, 0, 0, 336, 337, 5, 53, 0, 0,
4123
- 337, 339, 3, 104, 52, 0, 338, 340, 3, 52, 26, 0, 339, 338, 1, 0, 0, 0, 339, 340, 1, 0,
4124
- 0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 3, 8, 4, 0, 342, 51, 1, 0, 0, 0, 343, 344, 5, 2, 0,
4125
- 0, 344, 349, 3, 102, 51, 0, 345, 346, 5, 1, 0, 0, 346, 348, 3, 102, 51, 0, 347, 345,
4126
- 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 352,
4127
- 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 352, 353, 5, 3, 0, 0, 353, 53, 1, 0, 0, 0, 354, 355, 5,
4128
- 89, 0, 0, 355, 356, 3, 104, 52, 0, 356, 357, 5, 77, 0, 0, 357, 362, 3, 56, 28, 0, 358,
4129
- 359, 5, 1, 0, 0, 359, 361, 3, 56, 28, 0, 360, 358, 1, 0, 0, 0, 361, 364, 1, 0, 0, 0, 362,
4130
- 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 366, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 365,
4131
- 367, 3, 38, 19, 0, 366, 365, 1, 0, 0, 0, 366, 367, 1, 0, 0, 0, 367, 55, 1, 0, 0, 0, 368,
4132
- 369, 3, 102, 51, 0, 369, 370, 5, 95, 0, 0, 370, 371, 3, 72, 36, 0, 371, 57, 1, 0, 0, 0,
4133
- 372, 373, 5, 28, 0, 0, 373, 374, 5, 42, 0, 0, 374, 376, 3, 104, 52, 0, 375, 377, 3, 38,
4134
- 19, 0, 376, 375, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 59, 1, 0, 0, 0, 378, 379, 5, 23,
4135
- 0, 0, 379, 383, 5, 79, 0, 0, 380, 381, 5, 46, 0, 0, 381, 382, 5, 61, 0, 0, 382, 384, 5,
4136
- 37, 0, 0, 383, 380, 1, 0, 0, 0, 383, 384, 1, 0, 0, 0, 384, 385, 1, 0, 0, 0, 385, 386, 3,
4137
- 106, 53, 0, 386, 387, 5, 2, 0, 0, 387, 392, 3, 62, 31, 0, 388, 389, 5, 1, 0, 0, 389, 391,
4138
- 3, 62, 31, 0, 390, 388, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392, 393,
4139
- 1, 0, 0, 0, 393, 395, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 398, 5, 3, 0, 0, 396, 397,
4140
- 5, 94, 0, 0, 397, 399, 3, 92, 46, 0, 398, 396, 1, 0, 0, 0, 398, 399, 1, 0, 0, 0, 399, 61,
4141
- 1, 0, 0, 0, 400, 403, 3, 64, 32, 0, 401, 403, 3, 66, 33, 0, 402, 400, 1, 0, 0, 0, 402,
4142
- 401, 1, 0, 0, 0, 403, 63, 1, 0, 0, 0, 404, 405, 3, 102, 51, 0, 405, 408, 3, 90, 45, 0,
4143
- 406, 407, 5, 61, 0, 0, 407, 409, 5, 62, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0,
4144
- 0, 409, 412, 1, 0, 0, 0, 410, 411, 5, 27, 0, 0, 411, 413, 3, 72, 36, 0, 412, 410, 1, 0,
4145
- 0, 0, 412, 413, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 415, 5, 71, 0, 0, 415, 417, 5, 56,
4146
- 0, 0, 416, 414, 1, 0, 0, 0, 416, 417, 1, 0, 0, 0, 417, 65, 1, 0, 0, 0, 418, 419, 5, 22,
4147
- 0, 0, 419, 421, 3, 98, 49, 0, 420, 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 477, 1,
4148
- 0, 0, 0, 422, 423, 5, 71, 0, 0, 423, 424, 5, 56, 0, 0, 424, 425, 5, 2, 0, 0, 425, 430,
4149
- 3, 102, 51, 0, 426, 427, 5, 1, 0, 0, 427, 429, 3, 102, 51, 0, 428, 426, 1, 0, 0, 0, 429,
4150
- 432, 1, 0, 0, 0, 430, 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 433, 1, 0, 0, 0, 432,
4151
- 430, 1, 0, 0, 0, 433, 434, 5, 3, 0, 0, 434, 478, 1, 0, 0, 0, 435, 436, 5, 88, 0, 0, 436,
4152
- 437, 5, 2, 0, 0, 437, 442, 3, 102, 51, 0, 438, 439, 5, 1, 0, 0, 439, 441, 3, 102, 51,
4153
- 0, 440, 438, 1, 0, 0, 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0,
4154
- 0, 443, 445, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 446, 5, 3, 0, 0, 446, 478, 1, 0, 0,
4155
- 0, 447, 448, 5, 19, 0, 0, 448, 449, 5, 2, 0, 0, 449, 450, 3, 72, 36, 0, 450, 451, 5, 3,
4156
- 0, 0, 451, 478, 1, 0, 0, 0, 452, 453, 5, 41, 0, 0, 453, 454, 5, 56, 0, 0, 454, 455, 5,
4157
- 2, 0, 0, 455, 460, 3, 102, 51, 0, 456, 457, 5, 1, 0, 0, 457, 459, 3, 102, 51, 0, 458,
4158
- 456, 1, 0, 0, 0, 459, 462, 1, 0, 0, 0, 460, 458, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461,
4159
- 463, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 463, 464, 5, 3, 0, 0, 464, 465, 5, 73, 0, 0, 465,
4160
- 466, 3, 104, 52, 0, 466, 467, 5, 2, 0, 0, 467, 472, 3, 102, 51, 0, 468, 469, 5, 1, 0,
4161
- 0, 469, 471, 3, 102, 51, 0, 470, 468, 1, 0, 0, 0, 471, 474, 1, 0, 0, 0, 472, 470, 1, 0,
4162
- 0, 0, 472, 473, 1, 0, 0, 0, 473, 475, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 475, 476, 5, 3,
4163
- 0, 0, 476, 478, 1, 0, 0, 0, 477, 422, 1, 0, 0, 0, 477, 435, 1, 0, 0, 0, 477, 447, 1, 0,
4164
- 0, 0, 477, 452, 1, 0, 0, 0, 478, 67, 1, 0, 0, 0, 479, 480, 5, 7, 0, 0, 480, 483, 5, 79,
4165
- 0, 0, 481, 482, 5, 46, 0, 0, 482, 484, 5, 37, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1,
4166
- 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 517, 3, 104, 52, 0, 486, 487, 5, 5, 0, 0, 487, 491,
4167
- 5, 21, 0, 0, 488, 489, 5, 46, 0, 0, 489, 490, 5, 61, 0, 0, 490, 492, 5, 37, 0, 0, 491,
4168
- 488, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 518, 3, 64, 32, 0, 494,
4169
- 495, 5, 32, 0, 0, 495, 498, 5, 21, 0, 0, 496, 497, 5, 46, 0, 0, 497, 499, 5, 37, 0, 0,
4170
- 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 518, 3, 102, 51,
4171
- 0, 501, 502, 5, 74, 0, 0, 502, 503, 5, 85, 0, 0, 503, 518, 3, 106, 53, 0, 504, 505, 5,
4172
- 7, 0, 0, 505, 506, 5, 21, 0, 0, 506, 507, 3, 102, 51, 0, 507, 508, 5, 77, 0, 0, 508, 509,
4173
- 5, 27, 0, 0, 509, 510, 3, 72, 36, 0, 510, 518, 1, 0, 0, 0, 511, 512, 5, 7, 0, 0, 512, 513,
4174
- 5, 21, 0, 0, 513, 514, 3, 102, 51, 0, 514, 515, 5, 32, 0, 0, 515, 516, 5, 27, 0, 0, 516,
4175
- 518, 1, 0, 0, 0, 517, 486, 1, 0, 0, 0, 517, 494, 1, 0, 0, 0, 517, 501, 1, 0, 0, 0, 517,
4176
- 504, 1, 0, 0, 0, 517, 511, 1, 0, 0, 0, 518, 69, 1, 0, 0, 0, 519, 520, 5, 32, 0, 0, 520,
4177
- 523, 5, 79, 0, 0, 521, 522, 5, 46, 0, 0, 522, 524, 5, 37, 0, 0, 523, 521, 1, 0, 0, 0, 523,
4178
- 524, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 526, 3, 104, 52, 0, 526, 71, 1, 0, 0, 0, 527,
4179
- 528, 3, 74, 37, 0, 528, 73, 1, 0, 0, 0, 529, 530, 6, 37, -1, 0, 530, 534, 3, 76, 38, 0,
4180
- 531, 532, 5, 61, 0, 0, 532, 534, 3, 74, 37, 3, 533, 529, 1, 0, 0, 0, 533, 531, 1, 0, 0,
4181
- 0, 534, 543, 1, 0, 0, 0, 535, 536, 10, 2, 0, 0, 536, 537, 5, 8, 0, 0, 537, 542, 3, 74,
4182
- 37, 3, 538, 539, 10, 1, 0, 0, 539, 540, 5, 68, 0, 0, 540, 542, 3, 74, 37, 2, 541, 535,
4183
- 1, 0, 0, 0, 541, 538, 1, 0, 0, 0, 542, 545, 1, 0, 0, 0, 543, 541, 1, 0, 0, 0, 543, 544,
4184
- 1, 0, 0, 0, 544, 75, 1, 0, 0, 0, 545, 543, 1, 0, 0, 0, 546, 548, 3, 82, 41, 0, 547, 549,
4185
- 3, 78, 39, 0, 548, 547, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 77, 1, 0, 0, 0, 550, 551,
4186
- 3, 80, 40, 0, 551, 552, 3, 82, 41, 0, 552, 606, 1, 0, 0, 0, 553, 555, 5, 61, 0, 0, 554,
4187
- 553, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 1, 0, 0, 0, 556, 557, 5, 47, 0, 0, 557,
4188
- 558, 5, 2, 0, 0, 558, 563, 3, 72, 36, 0, 559, 560, 5, 1, 0, 0, 560, 562, 3, 72, 36, 0,
4189
- 561, 559, 1, 0, 0, 0, 562, 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0,
4190
- 564, 566, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 566, 567, 5, 3, 0, 0, 567, 606, 1, 0, 0, 0,
4191
- 568, 570, 5, 61, 0, 0, 569, 568, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0,
4192
- 571, 572, 5, 47, 0, 0, 572, 573, 5, 2, 0, 0, 573, 574, 3, 8, 4, 0, 574, 575, 5, 3, 0, 0,
4193
- 575, 606, 1, 0, 0, 0, 576, 578, 5, 61, 0, 0, 577, 576, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0,
4194
- 578, 579, 1, 0, 0, 0, 579, 580, 5, 11, 0, 0, 580, 581, 3, 82, 41, 0, 581, 582, 5, 8, 0,
4195
- 0, 582, 583, 3, 82, 41, 0, 583, 606, 1, 0, 0, 0, 584, 586, 5, 61, 0, 0, 585, 584, 1, 0,
4196
- 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 5, 59, 0, 0, 588, 591, 3, 82,
4197
- 41, 0, 589, 590, 5, 35, 0, 0, 590, 592, 3, 82, 41, 0, 591, 589, 1, 0, 0, 0, 591, 592,
4198
- 1, 0, 0, 0, 592, 606, 1, 0, 0, 0, 593, 595, 5, 54, 0, 0, 594, 596, 5, 61, 0, 0, 595, 594,
4199
- 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 606, 5, 62, 0, 0, 598, 600,
4200
- 5, 54, 0, 0, 599, 601, 5, 61, 0, 0, 600, 599, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 601, 602,
4201
- 1, 0, 0, 0, 602, 603, 5, 30, 0, 0, 603, 604, 5, 42, 0, 0, 604, 606, 3, 82, 41, 0, 605,
4202
- 550, 1, 0, 0, 0, 605, 554, 1, 0, 0, 0, 605, 569, 1, 0, 0, 0, 605, 577, 1, 0, 0, 0, 605,
4203
- 585, 1, 0, 0, 0, 605, 593, 1, 0, 0, 0, 605, 598, 1, 0, 0, 0, 606, 79, 1, 0, 0, 0, 607, 608,
4204
- 7, 4, 0, 0, 608, 81, 1, 0, 0, 0, 609, 610, 6, 41, -1, 0, 610, 614, 3, 84, 42, 0, 611, 612,
4205
- 7, 5, 0, 0, 612, 614, 3, 82, 41, 4, 613, 609, 1, 0, 0, 0, 613, 611, 1, 0, 0, 0, 614, 626,
4206
- 1, 0, 0, 0, 615, 616, 10, 3, 0, 0, 616, 617, 7, 6, 0, 0, 617, 625, 3, 82, 41, 4, 618, 619,
4207
- 10, 2, 0, 0, 619, 620, 7, 5, 0, 0, 620, 625, 3, 82, 41, 3, 621, 622, 10, 1, 0, 0, 622,
4208
- 623, 5, 106, 0, 0, 623, 625, 3, 82, 41, 2, 624, 615, 1, 0, 0, 0, 624, 618, 1, 0, 0, 0,
4209
- 624, 621, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0,
4210
- 627, 83, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 629, 710, 3, 96, 48, 0, 630, 631, 3, 100, 50,
4211
- 0, 631, 643, 5, 2, 0, 0, 632, 634, 3, 24, 12, 0, 633, 632, 1, 0, 0, 0, 633, 634, 1, 0,
4212
- 0, 0, 634, 635, 1, 0, 0, 0, 635, 640, 3, 72, 36, 0, 636, 637, 5, 1, 0, 0, 637, 639, 3,
4213
- 72, 36, 0, 638, 636, 1, 0, 0, 0, 639, 642, 1, 0, 0, 0, 640, 638, 1, 0, 0, 0, 640, 641,
4214
- 1, 0, 0, 0, 641, 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 643, 633, 1, 0, 0, 0, 643, 644,
4215
- 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 646, 5, 3, 0, 0, 646, 710, 1, 0, 0, 0, 647, 649,
4216
- 5, 16, 0, 0, 648, 650, 3, 86, 43, 0, 649, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 649,
4217
- 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 655, 1, 0, 0, 0, 653, 654, 5, 33, 0, 0, 654, 656,
4218
- 3, 72, 36, 0, 655, 653, 1, 0, 0, 0, 655, 656, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658,
4219
- 5, 34, 0, 0, 658, 710, 1, 0, 0, 0, 659, 660, 5, 16, 0, 0, 660, 662, 3, 72, 36, 0, 661,
4220
- 663, 3, 86, 43, 0, 662, 661, 1, 0, 0, 0, 663, 664, 1, 0, 0, 0, 664, 662, 1, 0, 0, 0, 664,
4221
- 665, 1, 0, 0, 0, 665, 668, 1, 0, 0, 0, 666, 667, 5, 33, 0, 0, 667, 669, 3, 72, 36, 0, 668,
4222
- 666, 1, 0, 0, 0, 668, 669, 1, 0, 0, 0, 669, 670, 1, 0, 0, 0, 670, 671, 5, 34, 0, 0, 671,
4223
- 710, 1, 0, 0, 0, 672, 673, 5, 17, 0, 0, 673, 674, 5, 2, 0, 0, 674, 675, 3, 72, 36, 0, 675,
4224
- 676, 5, 9, 0, 0, 676, 677, 3, 90, 45, 0, 677, 678, 5, 3, 0, 0, 678, 710, 1, 0, 0, 0, 679,
4225
- 680, 5, 20, 0, 0, 680, 681, 5, 2, 0, 0, 681, 686, 3, 72, 36, 0, 682, 683, 5, 1, 0, 0, 683,
4226
- 685, 3, 72, 36, 0, 684, 682, 1, 0, 0, 0, 685, 688, 1, 0, 0, 0, 686, 684, 1, 0, 0, 0, 686,
4227
- 687, 1, 0, 0, 0, 687, 689, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 689, 690, 5, 3, 0, 0, 690,
4228
- 710, 1, 0, 0, 0, 691, 692, 5, 63, 0, 0, 692, 693, 5, 2, 0, 0, 693, 694, 3, 82, 41, 0, 694,
4229
- 695, 5, 1, 0, 0, 695, 696, 3, 82, 41, 0, 696, 697, 5, 3, 0, 0, 697, 710, 1, 0, 0, 0, 698,
4230
- 699, 5, 2, 0, 0, 699, 700, 3, 72, 36, 0, 700, 701, 5, 3, 0, 0, 701, 710, 1, 0, 0, 0, 702,
4231
- 703, 5, 37, 0, 0, 703, 704, 5, 2, 0, 0, 704, 705, 3, 8, 4, 0, 705, 706, 5, 3, 0, 0, 706,
4232
- 710, 1, 0, 0, 0, 707, 710, 3, 88, 44, 0, 708, 710, 3, 100, 50, 0, 709, 629, 1, 0, 0, 0,
4233
- 709, 630, 1, 0, 0, 0, 709, 647, 1, 0, 0, 0, 709, 659, 1, 0, 0, 0, 709, 672, 1, 0, 0, 0,
4234
- 709, 679, 1, 0, 0, 0, 709, 691, 1, 0, 0, 0, 709, 698, 1, 0, 0, 0, 709, 702, 1, 0, 0, 0,
4235
- 709, 707, 1, 0, 0, 0, 709, 708, 1, 0, 0, 0, 710, 85, 1, 0, 0, 0, 711, 712, 5, 92, 0, 0,
4236
- 712, 713, 3, 72, 36, 0, 713, 714, 5, 81, 0, 0, 714, 715, 3, 72, 36, 0, 715, 87, 1, 0,
4237
- 0, 0, 716, 717, 5, 2, 0, 0, 717, 718, 3, 8, 4, 0, 718, 719, 5, 3, 0, 0, 719, 89, 1, 0, 0,
4238
- 0, 720, 767, 5, 14, 0, 0, 721, 767, 5, 84, 0, 0, 722, 767, 5, 78, 0, 0, 723, 767, 5, 50,
4239
- 0, 0, 724, 767, 5, 51, 0, 0, 725, 767, 5, 12, 0, 0, 726, 767, 5, 40, 0, 0, 727, 767, 5,
4240
- 31, 0, 0, 728, 736, 5, 26, 0, 0, 729, 730, 5, 2, 0, 0, 730, 733, 5, 111, 0, 0, 731, 732,
4241
- 5, 1, 0, 0, 732, 734, 5, 111, 0, 0, 733, 731, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 735,
4242
- 1, 0, 0, 0, 735, 737, 5, 3, 0, 0, 736, 729, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 767,
4243
- 1, 0, 0, 0, 738, 746, 5, 65, 0, 0, 739, 740, 5, 2, 0, 0, 740, 743, 5, 111, 0, 0, 741, 742,
4244
- 5, 1, 0, 0, 742, 744, 5, 111, 0, 0, 743, 741, 1, 0, 0, 0, 743, 744, 1, 0, 0, 0, 744, 745,
4245
- 1, 0, 0, 0, 745, 747, 5, 3, 0, 0, 746, 739, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, 767,
4246
- 1, 0, 0, 0, 748, 752, 5, 90, 0, 0, 749, 750, 5, 2, 0, 0, 750, 751, 5, 111, 0, 0, 751, 753,
4247
- 5, 3, 0, 0, 752, 749, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 767, 1, 0, 0, 0, 754, 758,
4248
- 5, 18, 0, 0, 755, 756, 5, 2, 0, 0, 756, 757, 5, 111, 0, 0, 757, 759, 5, 3, 0, 0, 758, 755,
4249
- 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 767, 1, 0, 0, 0, 760, 767, 5, 80, 0, 0, 761, 767,
4250
- 5, 25, 0, 0, 762, 767, 5, 82, 0, 0, 763, 767, 5, 83, 0, 0, 764, 767, 5, 13, 0, 0, 765,
4251
- 767, 5, 91, 0, 0, 766, 720, 1, 0, 0, 0, 766, 721, 1, 0, 0, 0, 766, 722, 1, 0, 0, 0, 766,
4252
- 723, 1, 0, 0, 0, 766, 724, 1, 0, 0, 0, 766, 725, 1, 0, 0, 0, 766, 726, 1, 0, 0, 0, 766,
4253
- 727, 1, 0, 0, 0, 766, 728, 1, 0, 0, 0, 766, 738, 1, 0, 0, 0, 766, 748, 1, 0, 0, 0, 766,
4254
- 754, 1, 0, 0, 0, 766, 760, 1, 0, 0, 0, 766, 761, 1, 0, 0, 0, 766, 762, 1, 0, 0, 0, 766,
4255
- 763, 1, 0, 0, 0, 766, 764, 1, 0, 0, 0, 766, 765, 1, 0, 0, 0, 767, 91, 1, 0, 0, 0, 768, 769,
4256
- 5, 2, 0, 0, 769, 774, 3, 94, 47, 0, 770, 771, 5, 1, 0, 0, 771, 773, 3, 94, 47, 0, 772,
4257
- 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774, 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775,
4258
- 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777, 778, 5, 3, 0, 0, 778, 93, 1, 0, 0, 0, 779, 780,
4259
- 3, 98, 49, 0, 780, 781, 5, 95, 0, 0, 781, 782, 3, 96, 48, 0, 782, 95, 1, 0, 0, 0, 783,
4260
- 792, 5, 62, 0, 0, 784, 792, 5, 86, 0, 0, 785, 792, 5, 38, 0, 0, 786, 792, 5, 111, 0, 0,
4261
- 787, 792, 5, 112, 0, 0, 788, 792, 5, 113, 0, 0, 789, 792, 5, 109, 0, 0, 790, 792, 5,
4262
- 110, 0, 0, 791, 783, 1, 0, 0, 0, 791, 784, 1, 0, 0, 0, 791, 785, 1, 0, 0, 0, 791, 786,
4263
- 1, 0, 0, 0, 791, 787, 1, 0, 0, 0, 791, 788, 1, 0, 0, 0, 791, 789, 1, 0, 0, 0, 791, 790,
4264
- 1, 0, 0, 0, 792, 97, 1, 0, 0, 0, 793, 799, 5, 114, 0, 0, 794, 799, 5, 115, 0, 0, 795, 799,
4265
- 5, 116, 0, 0, 796, 799, 5, 117, 0, 0, 797, 799, 3, 108, 54, 0, 798, 793, 1, 0, 0, 0, 798,
4266
- 794, 1, 0, 0, 0, 798, 795, 1, 0, 0, 0, 798, 796, 1, 0, 0, 0, 798, 797, 1, 0, 0, 0, 799,
4267
- 99, 1, 0, 0, 0, 800, 805, 3, 98, 49, 0, 801, 802, 5, 4, 0, 0, 802, 804, 3, 98, 49, 0, 803,
4268
- 801, 1, 0, 0, 0, 804, 807, 1, 0, 0, 0, 805, 803, 1, 0, 0, 0, 805, 806, 1, 0, 0, 0, 806,
4269
- 101, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0, 808, 809, 3, 98, 49, 0, 809, 103, 1, 0, 0, 0, 810,
4270
- 811, 3, 100, 50, 0, 811, 105, 1, 0, 0, 0, 812, 813, 3, 100, 50, 0, 813, 107, 1, 0, 0,
4271
- 0, 814, 815, 7, 7, 0, 0, 815, 109, 1, 0, 0, 0, 97, 113, 122, 131, 134, 140, 147, 152,
4272
- 165, 173, 178, 188, 192, 199, 203, 206, 209, 212, 215, 218, 224, 227, 234, 242,
4273
- 257, 261, 265, 269, 273, 276, 280, 283, 290, 298, 305, 318, 323, 327, 333, 339,
4274
- 349, 362, 366, 376, 383, 392, 398, 402, 408, 412, 416, 420, 430, 442, 460, 472,
4275
- 477, 483, 491, 498, 517, 523, 533, 541, 543, 548, 554, 563, 569, 577, 585, 591,
4276
- 595, 600, 605, 613, 624, 626, 633, 640, 643, 651, 655, 664, 668, 686, 709, 733,
4277
- 736, 743, 746, 752, 758, 766, 774, 791, 798, 805
4154
+ 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 1,
4155
+ 0, 5, 0, 120, 8, 0, 10, 0, 12, 0, 123, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 3, 2, 131,
4156
+ 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 140, 8, 3, 1, 4, 3, 4, 143, 8, 4, 1, 4,
4157
+ 1, 4, 1, 5, 1, 5, 3, 5, 149, 8, 5, 1, 5, 1, 5, 1, 5, 5, 5, 154, 8, 5, 10, 5, 12, 5, 157, 9,
4158
+ 5, 1, 6, 1, 6, 3, 6, 161, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 172,
4159
+ 8, 7, 10, 7, 12, 7, 175, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 182, 8, 8, 1, 8, 5, 8, 185,
4160
+ 8, 8, 10, 8, 12, 8, 188, 9, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 197,
4161
+ 8, 10, 1, 11, 1, 11, 3, 11, 201, 8, 11, 1, 11, 1, 11, 1, 11, 5, 11, 206, 8, 11, 10, 11,
4162
+ 12, 11, 209, 9, 11, 1, 11, 3, 11, 212, 8, 11, 1, 11, 3, 11, 215, 8, 11, 1, 11, 3, 11, 218,
4163
+ 8, 11, 1, 11, 3, 11, 221, 8, 11, 1, 11, 3, 11, 224, 8, 11, 1, 11, 3, 11, 227, 8, 11, 1,
4164
+ 12, 1, 12, 1, 13, 1, 13, 3, 13, 233, 8, 13, 1, 13, 3, 13, 236, 8, 13, 1, 13, 1, 13, 1, 13,
4165
+ 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 245, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 251, 8,
4166
+ 14, 10, 14, 12, 14, 254, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
4167
+ 1, 15, 1, 15, 5, 15, 266, 8, 15, 10, 15, 12, 15, 269, 9, 15, 1, 16, 3, 16, 272, 8, 16,
4168
+ 1, 16, 1, 16, 3, 16, 276, 8, 16, 1, 16, 1, 16, 3, 16, 280, 8, 16, 1, 16, 1, 16, 3, 16, 284,
4169
+ 8, 16, 1, 16, 3, 16, 287, 8, 16, 1, 17, 1, 17, 3, 17, 291, 8, 17, 1, 17, 3, 17, 294, 8,
4170
+ 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 301, 8, 18, 1, 19, 1, 19, 1, 19, 3, 19, 306,
4171
+ 8, 19, 1, 20, 1, 20, 1, 20, 3, 20, 311, 8, 20, 1, 20, 1, 20, 1, 20, 5, 20, 316, 8, 20, 10,
4172
+ 20, 12, 20, 319, 9, 20, 1, 21, 1, 21, 1, 21, 3, 21, 324, 8, 21, 1, 22, 1, 22, 1, 22, 1,
4173
+ 22, 1, 22, 5, 22, 331, 8, 22, 10, 22, 12, 22, 334, 9, 22, 1, 23, 1, 23, 3, 23, 338, 8,
4174
+ 23, 1, 23, 1, 23, 3, 23, 342, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 348, 8, 24, 1, 25,
4175
+ 1, 25, 1, 25, 1, 25, 3, 25, 354, 8, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26,
4176
+ 362, 8, 26, 10, 26, 12, 26, 365, 9, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27,
4177
+ 1, 27, 5, 27, 375, 8, 27, 10, 27, 12, 27, 378, 9, 27, 1, 27, 3, 27, 381, 8, 27, 1, 28,
4178
+ 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 391, 8, 29, 1, 30, 1, 30, 1, 30,
4179
+ 1, 30, 1, 30, 3, 30, 398, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 405, 8, 30, 10,
4180
+ 30, 12, 30, 408, 9, 30, 1, 30, 1, 30, 1, 30, 3, 30, 413, 8, 30, 1, 31, 1, 31, 3, 31, 417,
4181
+ 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 423, 8, 32, 1, 32, 1, 32, 3, 32, 427, 8, 32, 1,
4182
+ 32, 1, 32, 3, 32, 431, 8, 32, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 437, 8, 34, 1, 34, 1, 34,
4183
+ 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 445, 8, 34, 10, 34, 12, 34, 448, 9, 34, 1, 34, 1, 34,
4184
+ 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 457, 8, 34, 10, 34, 12, 34, 460, 9, 34, 1, 34,
4185
+ 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34,
4186
+ 475, 8, 34, 10, 34, 12, 34, 478, 9, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34,
4187
+ 5, 34, 487, 8, 34, 10, 34, 12, 34, 490, 9, 34, 1, 34, 1, 34, 3, 34, 494, 8, 34, 1, 35,
4188
+ 1, 35, 1, 35, 1, 35, 3, 35, 500, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35,
4189
+ 508, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 515, 8, 35, 1, 35, 1, 35, 1, 35, 1,
4190
+ 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1,
4191
+ 35, 3, 35, 534, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 540, 8, 36, 1, 36, 1, 36, 1, 37,
4192
+ 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 550, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4193
+ 1, 38, 5, 38, 558, 8, 38, 10, 38, 12, 38, 561, 9, 38, 1, 39, 1, 39, 3, 39, 565, 8, 39,
4194
+ 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 571, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40,
4195
+ 578, 8, 40, 10, 40, 12, 40, 581, 9, 40, 1, 40, 1, 40, 1, 40, 3, 40, 586, 8, 40, 1, 40,
4196
+ 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 594, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40,
4197
+ 1, 40, 3, 40, 602, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 608, 8, 40, 1, 40, 1, 40, 3,
4198
+ 40, 612, 8, 40, 1, 40, 1, 40, 1, 40, 3, 40, 617, 8, 40, 1, 40, 1, 40, 1, 40, 3, 40, 622,
4199
+ 8, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 630, 8, 42, 1, 42, 1, 42, 1, 42,
4200
+ 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 641, 8, 42, 10, 42, 12, 42, 644, 9, 42,
4201
+ 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 650, 8, 43, 1, 43, 1, 43, 1, 43, 5, 43, 655, 8, 43, 10,
4202
+ 43, 12, 43, 658, 9, 43, 3, 43, 660, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 4, 43, 666, 8, 43,
4203
+ 11, 43, 12, 43, 667, 1, 43, 1, 43, 3, 43, 672, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43,
4204
+ 4, 43, 679, 8, 43, 11, 43, 12, 43, 680, 1, 43, 1, 43, 3, 43, 685, 8, 43, 1, 43, 1, 43,
4205
+ 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 5, 43,
4206
+ 701, 8, 43, 10, 43, 12, 43, 704, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43,
4207
+ 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43,
4208
+ 3, 43, 726, 8, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46,
4209
+ 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46,
4210
+ 750, 8, 46, 1, 46, 3, 46, 753, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 760, 8,
4211
+ 46, 1, 46, 3, 46, 763, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 769, 8, 46, 1, 46, 1, 46,
4212
+ 1, 46, 1, 46, 3, 46, 775, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 783, 8,
4213
+ 46, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 789, 8, 47, 10, 47, 12, 47, 792, 9, 47, 1, 47, 1,
4214
+ 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3,
4215
+ 49, 808, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 815, 8, 50, 1, 51, 1, 51, 1, 51,
4216
+ 5, 51, 820, 8, 51, 10, 51, 12, 51, 823, 9, 51, 1, 52, 1, 52, 1, 52, 3, 52, 828, 8, 52,
4217
+ 1, 53, 1, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58,
4218
+ 0, 3, 30, 76, 84, 59, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
4219
+ 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
4220
+ 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
4221
+ 0, 8, 3, 0, 36, 36, 52, 52, 87, 87, 2, 0, 6, 6, 30, 30, 2, 0, 10, 10, 29, 29, 2, 0, 39, 39,
4222
+ 57, 57, 1, 0, 95, 100, 1, 0, 101, 102, 1, 0, 103, 105, 22, 0, 5, 6, 10, 10, 12, 15, 18,
4223
+ 18, 20, 21, 24, 27, 29, 29, 31, 31, 38, 40, 43, 43, 46, 46, 50, 51, 56, 58, 60, 60, 63,
4224
+ 66, 70, 70, 75, 75, 78, 78, 80, 80, 82, 86, 88, 88, 90, 91, 937, 0, 121, 1, 0, 0, 0, 2,
4225
+ 126, 1, 0, 0, 0, 4, 128, 1, 0, 0, 0, 6, 139, 1, 0, 0, 0, 8, 142, 1, 0, 0, 0, 10, 146, 1, 0,
4226
+ 0, 0, 12, 158, 1, 0, 0, 0, 14, 167, 1, 0, 0, 0, 16, 178, 1, 0, 0, 0, 18, 189, 1, 0, 0, 0,
4227
+ 20, 196, 1, 0, 0, 0, 22, 198, 1, 0, 0, 0, 24, 228, 1, 0, 0, 0, 26, 244, 1, 0, 0, 0, 28, 246,
4228
+ 1, 0, 0, 0, 30, 255, 1, 0, 0, 0, 32, 286, 1, 0, 0, 0, 34, 288, 1, 0, 0, 0, 36, 300, 1, 0,
4229
+ 0, 0, 38, 302, 1, 0, 0, 0, 40, 307, 1, 0, 0, 0, 42, 320, 1, 0, 0, 0, 44, 325, 1, 0, 0, 0,
4230
+ 46, 335, 1, 0, 0, 0, 48, 343, 1, 0, 0, 0, 50, 349, 1, 0, 0, 0, 52, 357, 1, 0, 0, 0, 54, 368,
4231
+ 1, 0, 0, 0, 56, 382, 1, 0, 0, 0, 58, 386, 1, 0, 0, 0, 60, 392, 1, 0, 0, 0, 62, 416, 1, 0,
4232
+ 0, 0, 64, 418, 1, 0, 0, 0, 66, 432, 1, 0, 0, 0, 68, 436, 1, 0, 0, 0, 70, 495, 1, 0, 0, 0,
4233
+ 72, 535, 1, 0, 0, 0, 74, 543, 1, 0, 0, 0, 76, 549, 1, 0, 0, 0, 78, 562, 1, 0, 0, 0, 80, 621,
4234
+ 1, 0, 0, 0, 82, 623, 1, 0, 0, 0, 84, 629, 1, 0, 0, 0, 86, 725, 1, 0, 0, 0, 88, 727, 1, 0,
4235
+ 0, 0, 90, 732, 1, 0, 0, 0, 92, 782, 1, 0, 0, 0, 94, 784, 1, 0, 0, 0, 96, 795, 1, 0, 0, 0,
4236
+ 98, 807, 1, 0, 0, 0, 100, 814, 1, 0, 0, 0, 102, 816, 1, 0, 0, 0, 104, 827, 1, 0, 0, 0, 106,
4237
+ 829, 1, 0, 0, 0, 108, 831, 1, 0, 0, 0, 110, 833, 1, 0, 0, 0, 112, 835, 1, 0, 0, 0, 114,
4238
+ 837, 1, 0, 0, 0, 116, 839, 1, 0, 0, 0, 118, 120, 3, 2, 1, 0, 119, 118, 1, 0, 0, 0, 120,
4239
+ 123, 1, 0, 0, 0, 121, 119, 1, 0, 0, 0, 121, 122, 1, 0, 0, 0, 122, 124, 1, 0, 0, 0, 123,
4240
+ 121, 1, 0, 0, 0, 124, 125, 5, 0, 0, 1, 125, 1, 1, 0, 0, 0, 126, 127, 3, 4, 2, 0, 127, 3,
4241
+ 1, 0, 0, 0, 128, 130, 3, 6, 3, 0, 129, 131, 5, 108, 0, 0, 130, 129, 1, 0, 0, 0, 130, 131,
4242
+ 1, 0, 0, 0, 131, 5, 1, 0, 0, 0, 132, 140, 3, 8, 4, 0, 133, 140, 3, 50, 25, 0, 134, 140,
4243
+ 3, 54, 27, 0, 135, 140, 3, 58, 29, 0, 136, 140, 3, 60, 30, 0, 137, 140, 3, 70, 35, 0,
4244
+ 138, 140, 3, 72, 36, 0, 139, 132, 1, 0, 0, 0, 139, 133, 1, 0, 0, 0, 139, 134, 1, 0, 0,
4245
+ 0, 139, 135, 1, 0, 0, 0, 139, 136, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 138, 1, 0, 0,
4246
+ 0, 140, 7, 1, 0, 0, 0, 141, 143, 3, 10, 5, 0, 142, 141, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0,
4247
+ 143, 144, 1, 0, 0, 0, 144, 145, 3, 16, 8, 0, 145, 9, 1, 0, 0, 0, 146, 148, 5, 94, 0, 0,
4248
+ 147, 149, 5, 72, 0, 0, 148, 147, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 1, 0, 0, 0,
4249
+ 150, 155, 3, 12, 6, 0, 151, 152, 5, 1, 0, 0, 152, 154, 3, 12, 6, 0, 153, 151, 1, 0, 0,
4250
+ 0, 154, 157, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 11, 1, 0, 0, 0,
4251
+ 157, 155, 1, 0, 0, 0, 158, 160, 3, 100, 50, 0, 159, 161, 3, 14, 7, 0, 160, 159, 1, 0,
4252
+ 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 163, 5, 9, 0, 0, 163, 164, 5, 2,
4253
+ 0, 0, 164, 165, 3, 8, 4, 0, 165, 166, 5, 3, 0, 0, 166, 13, 1, 0, 0, 0, 167, 168, 5, 2, 0,
4254
+ 0, 168, 173, 3, 100, 50, 0, 169, 170, 5, 1, 0, 0, 170, 172, 3, 100, 50, 0, 171, 169,
4255
+ 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 176,
4256
+ 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 176, 177, 5, 3, 0, 0, 177, 15, 1, 0, 0, 0, 178, 186, 3,
4257
+ 18, 9, 0, 179, 181, 7, 0, 0, 0, 180, 182, 5, 6, 0, 0, 181, 180, 1, 0, 0, 0, 181, 182, 1,
4258
+ 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 3, 18, 9, 0, 184, 179, 1, 0, 0, 0, 185, 188, 1,
4259
+ 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 17, 1, 0, 0, 0, 188, 186, 1, 0,
4260
+ 0, 0, 189, 190, 3, 20, 10, 0, 190, 19, 1, 0, 0, 0, 191, 197, 3, 22, 11, 0, 192, 193, 5,
4261
+ 2, 0, 0, 193, 194, 3, 8, 4, 0, 194, 195, 5, 3, 0, 0, 195, 197, 1, 0, 0, 0, 196, 191, 1,
4262
+ 0, 0, 0, 196, 192, 1, 0, 0, 0, 197, 21, 1, 0, 0, 0, 198, 200, 5, 76, 0, 0, 199, 201, 3,
4263
+ 24, 12, 0, 200, 199, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 207,
4264
+ 3, 26, 13, 0, 203, 204, 5, 1, 0, 0, 204, 206, 3, 26, 13, 0, 205, 203, 1, 0, 0, 0, 206,
4265
+ 209, 1, 0, 0, 0, 207, 205, 1, 0, 0, 0, 207, 208, 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209,
4266
+ 207, 1, 0, 0, 0, 210, 212, 3, 28, 14, 0, 211, 210, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212,
4267
+ 214, 1, 0, 0, 0, 213, 215, 3, 38, 19, 0, 214, 213, 1, 0, 0, 0, 214, 215, 1, 0, 0, 0, 215,
4268
+ 217, 1, 0, 0, 0, 216, 218, 3, 40, 20, 0, 217, 216, 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218,
4269
+ 220, 1, 0, 0, 0, 219, 221, 3, 42, 21, 0, 220, 219, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221,
4270
+ 223, 1, 0, 0, 0, 222, 224, 3, 44, 22, 0, 223, 222, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224,
4271
+ 226, 1, 0, 0, 0, 225, 227, 3, 48, 24, 0, 226, 225, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227,
4272
+ 23, 1, 0, 0, 0, 228, 229, 7, 1, 0, 0, 229, 25, 1, 0, 0, 0, 230, 235, 3, 74, 37, 0, 231,
4273
+ 233, 5, 9, 0, 0, 232, 231, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234,
4274
+ 236, 3, 100, 50, 0, 235, 232, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 245, 1, 0, 0, 0, 237,
4275
+ 238, 3, 102, 51, 0, 238, 239, 5, 4, 0, 0, 239, 240, 5, 103, 0, 0, 240, 245, 1, 0, 0, 0,
4276
+ 241, 245, 5, 103, 0, 0, 242, 243, 4, 13, 0, 0, 243, 245, 3, 108, 54, 0, 244, 230, 1,
4277
+ 0, 0, 0, 244, 237, 1, 0, 0, 0, 244, 241, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 245, 27, 1, 0,
4278
+ 0, 0, 246, 247, 5, 42, 0, 0, 247, 252, 3, 30, 15, 0, 248, 249, 5, 1, 0, 0, 249, 251, 3,
4279
+ 30, 15, 0, 250, 248, 1, 0, 0, 0, 251, 254, 1, 0, 0, 0, 252, 250, 1, 0, 0, 0, 252, 253,
4280
+ 1, 0, 0, 0, 253, 29, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 255, 256, 6, 15, -1, 0, 256, 257,
4281
+ 3, 34, 17, 0, 257, 267, 1, 0, 0, 0, 258, 259, 10, 2, 0, 0, 259, 260, 3, 32, 16, 0, 260,
4282
+ 261, 5, 55, 0, 0, 261, 262, 3, 30, 15, 0, 262, 263, 5, 67, 0, 0, 263, 264, 3, 74, 37,
4283
+ 0, 264, 266, 1, 0, 0, 0, 265, 258, 1, 0, 0, 0, 266, 269, 1, 0, 0, 0, 267, 265, 1, 0, 0,
4284
+ 0, 267, 268, 1, 0, 0, 0, 268, 31, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 270, 272, 5, 48, 0,
4285
+ 0, 271, 270, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 287, 1, 0, 0, 0, 273, 275, 5, 58, 0,
4286
+ 0, 274, 276, 5, 70, 0, 0, 275, 274, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 287, 1, 0, 0,
4287
+ 0, 277, 279, 5, 75, 0, 0, 278, 280, 5, 70, 0, 0, 279, 278, 1, 0, 0, 0, 279, 280, 1, 0,
4288
+ 0, 0, 280, 287, 1, 0, 0, 0, 281, 283, 5, 43, 0, 0, 282, 284, 5, 70, 0, 0, 283, 282, 1,
4289
+ 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 287, 1, 0, 0, 0, 285, 287, 5, 24, 0, 0, 286, 271, 1,
4290
+ 0, 0, 0, 286, 273, 1, 0, 0, 0, 286, 277, 1, 0, 0, 0, 286, 281, 1, 0, 0, 0, 286, 285, 1,
4291
+ 0, 0, 0, 287, 33, 1, 0, 0, 0, 288, 293, 3, 36, 18, 0, 289, 291, 5, 9, 0, 0, 290, 289, 1,
4292
+ 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 294, 3, 100, 50, 0, 293, 290,
4293
+ 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 35, 1, 0, 0, 0, 295, 301, 3, 110, 55, 0, 296, 297,
4294
+ 5, 2, 0, 0, 297, 298, 3, 8, 4, 0, 298, 299, 5, 3, 0, 0, 299, 301, 1, 0, 0, 0, 300, 295,
4295
+ 1, 0, 0, 0, 300, 296, 1, 0, 0, 0, 301, 37, 1, 0, 0, 0, 302, 305, 5, 93, 0, 0, 303, 306,
4296
+ 3, 74, 37, 0, 304, 306, 3, 108, 54, 0, 305, 303, 1, 0, 0, 0, 305, 304, 1, 0, 0, 0, 306,
4297
+ 39, 1, 0, 0, 0, 307, 308, 5, 44, 0, 0, 308, 310, 5, 15, 0, 0, 309, 311, 3, 24, 12, 0, 310,
4298
+ 309, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 317, 3, 74, 37, 0, 313,
4299
+ 314, 5, 1, 0, 0, 314, 316, 3, 74, 37, 0, 315, 313, 1, 0, 0, 0, 316, 319, 1, 0, 0, 0, 317,
4300
+ 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 41, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 323,
4301
+ 5, 45, 0, 0, 321, 324, 3, 74, 37, 0, 322, 324, 3, 108, 54, 0, 323, 321, 1, 0, 0, 0, 323,
4302
+ 322, 1, 0, 0, 0, 324, 43, 1, 0, 0, 0, 325, 326, 5, 69, 0, 0, 326, 327, 5, 15, 0, 0, 327,
4303
+ 332, 3, 46, 23, 0, 328, 329, 5, 1, 0, 0, 329, 331, 3, 46, 23, 0, 330, 328, 1, 0, 0, 0,
4304
+ 331, 334, 1, 0, 0, 0, 332, 330, 1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 45, 1, 0, 0, 0, 334,
4305
+ 332, 1, 0, 0, 0, 335, 337, 3, 74, 37, 0, 336, 338, 7, 2, 0, 0, 337, 336, 1, 0, 0, 0, 337,
4306
+ 338, 1, 0, 0, 0, 338, 341, 1, 0, 0, 0, 339, 340, 5, 64, 0, 0, 340, 342, 7, 3, 0, 0, 341,
4307
+ 339, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 47, 1, 0, 0, 0, 343, 344, 5, 60, 0, 0, 344,
4308
+ 347, 3, 74, 37, 0, 345, 346, 5, 66, 0, 0, 346, 348, 3, 74, 37, 0, 347, 345, 1, 0, 0, 0,
4309
+ 347, 348, 1, 0, 0, 0, 348, 49, 1, 0, 0, 0, 349, 350, 5, 49, 0, 0, 350, 351, 5, 53, 0, 0,
4310
+ 351, 353, 3, 110, 55, 0, 352, 354, 3, 52, 26, 0, 353, 352, 1, 0, 0, 0, 353, 354, 1, 0,
4311
+ 0, 0, 354, 355, 1, 0, 0, 0, 355, 356, 3, 8, 4, 0, 356, 51, 1, 0, 0, 0, 357, 358, 5, 2, 0,
4312
+ 0, 358, 363, 3, 104, 52, 0, 359, 360, 5, 1, 0, 0, 360, 362, 3, 104, 52, 0, 361, 359,
4313
+ 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 366,
4314
+ 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 366, 367, 5, 3, 0, 0, 367, 53, 1, 0, 0, 0, 368, 369, 5,
4315
+ 89, 0, 0, 369, 370, 3, 110, 55, 0, 370, 371, 5, 77, 0, 0, 371, 376, 3, 56, 28, 0, 372,
4316
+ 373, 5, 1, 0, 0, 373, 375, 3, 56, 28, 0, 374, 372, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376,
4317
+ 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379,
4318
+ 381, 3, 38, 19, 0, 380, 379, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 55, 1, 0, 0, 0, 382,
4319
+ 383, 3, 104, 52, 0, 383, 384, 5, 95, 0, 0, 384, 385, 3, 74, 37, 0, 385, 57, 1, 0, 0, 0,
4320
+ 386, 387, 5, 28, 0, 0, 387, 388, 5, 42, 0, 0, 388, 390, 3, 110, 55, 0, 389, 391, 3, 38,
4321
+ 19, 0, 390, 389, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391, 59, 1, 0, 0, 0, 392, 393, 5, 23,
4322
+ 0, 0, 393, 397, 5, 79, 0, 0, 394, 395, 5, 46, 0, 0, 395, 396, 5, 61, 0, 0, 396, 398, 5,
4323
+ 37, 0, 0, 397, 394, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 399, 1, 0, 0, 0, 399, 400, 3,
4324
+ 112, 56, 0, 400, 401, 5, 2, 0, 0, 401, 406, 3, 62, 31, 0, 402, 403, 5, 1, 0, 0, 403, 405,
4325
+ 3, 62, 31, 0, 404, 402, 1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407,
4326
+ 1, 0, 0, 0, 407, 409, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 412, 5, 3, 0, 0, 410, 411,
4327
+ 5, 94, 0, 0, 411, 413, 3, 94, 47, 0, 412, 410, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 61,
4328
+ 1, 0, 0, 0, 414, 417, 3, 64, 32, 0, 415, 417, 3, 68, 34, 0, 416, 414, 1, 0, 0, 0, 416,
4329
+ 415, 1, 0, 0, 0, 417, 63, 1, 0, 0, 0, 418, 419, 3, 66, 33, 0, 419, 422, 3, 92, 46, 0, 420,
4330
+ 421, 5, 61, 0, 0, 421, 423, 5, 62, 0, 0, 422, 420, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423,
4331
+ 426, 1, 0, 0, 0, 424, 425, 5, 27, 0, 0, 425, 427, 3, 74, 37, 0, 426, 424, 1, 0, 0, 0, 426,
4332
+ 427, 1, 0, 0, 0, 427, 430, 1, 0, 0, 0, 428, 429, 5, 71, 0, 0, 429, 431, 5, 56, 0, 0, 430,
4333
+ 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 65, 1, 0, 0, 0, 432, 433, 3, 100, 50, 0, 433,
4334
+ 67, 1, 0, 0, 0, 434, 435, 5, 22, 0, 0, 435, 437, 3, 100, 50, 0, 436, 434, 1, 0, 0, 0, 436,
4335
+ 437, 1, 0, 0, 0, 437, 493, 1, 0, 0, 0, 438, 439, 5, 71, 0, 0, 439, 440, 5, 56, 0, 0, 440,
4336
+ 441, 5, 2, 0, 0, 441, 446, 3, 104, 52, 0, 442, 443, 5, 1, 0, 0, 443, 445, 3, 104, 52,
4337
+ 0, 444, 442, 1, 0, 0, 0, 445, 448, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 446, 447, 1, 0, 0,
4338
+ 0, 447, 449, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 449, 450, 5, 3, 0, 0, 450, 494, 1, 0, 0,
4339
+ 0, 451, 452, 5, 88, 0, 0, 452, 453, 5, 2, 0, 0, 453, 458, 3, 104, 52, 0, 454, 455, 5,
4340
+ 1, 0, 0, 455, 457, 3, 104, 52, 0, 456, 454, 1, 0, 0, 0, 457, 460, 1, 0, 0, 0, 458, 456,
4341
+ 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 461, 1, 0, 0, 0, 460, 458, 1, 0, 0, 0, 461, 462,
4342
+ 5, 3, 0, 0, 462, 494, 1, 0, 0, 0, 463, 464, 5, 19, 0, 0, 464, 465, 5, 2, 0, 0, 465, 466,
4343
+ 3, 74, 37, 0, 466, 467, 5, 3, 0, 0, 467, 494, 1, 0, 0, 0, 468, 469, 5, 41, 0, 0, 469, 470,
4344
+ 5, 56, 0, 0, 470, 471, 5, 2, 0, 0, 471, 476, 3, 104, 52, 0, 472, 473, 5, 1, 0, 0, 473,
4345
+ 475, 3, 104, 52, 0, 474, 472, 1, 0, 0, 0, 475, 478, 1, 0, 0, 0, 476, 474, 1, 0, 0, 0, 476,
4346
+ 477, 1, 0, 0, 0, 477, 479, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 479, 480, 5, 3, 0, 0, 480,
4347
+ 481, 5, 73, 0, 0, 481, 482, 3, 110, 55, 0, 482, 483, 5, 2, 0, 0, 483, 488, 3, 104, 52,
4348
+ 0, 484, 485, 5, 1, 0, 0, 485, 487, 3, 104, 52, 0, 486, 484, 1, 0, 0, 0, 487, 490, 1, 0,
4349
+ 0, 0, 488, 486, 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 491, 1, 0, 0, 0, 490, 488, 1, 0,
4350
+ 0, 0, 491, 492, 5, 3, 0, 0, 492, 494, 1, 0, 0, 0, 493, 438, 1, 0, 0, 0, 493, 451, 1, 0,
4351
+ 0, 0, 493, 463, 1, 0, 0, 0, 493, 468, 1, 0, 0, 0, 494, 69, 1, 0, 0, 0, 495, 496, 5, 7, 0,
4352
+ 0, 496, 499, 5, 79, 0, 0, 497, 498, 5, 46, 0, 0, 498, 500, 5, 37, 0, 0, 499, 497, 1, 0,
4353
+ 0, 0, 499, 500, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 533, 3, 110, 55, 0, 502, 503, 5,
4354
+ 5, 0, 0, 503, 507, 5, 21, 0, 0, 504, 505, 5, 46, 0, 0, 505, 506, 5, 61, 0, 0, 506, 508,
4355
+ 5, 37, 0, 0, 507, 504, 1, 0, 0, 0, 507, 508, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 534,
4356
+ 3, 64, 32, 0, 510, 511, 5, 32, 0, 0, 511, 514, 5, 21, 0, 0, 512, 513, 5, 46, 0, 0, 513,
4357
+ 515, 5, 37, 0, 0, 514, 512, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516,
4358
+ 534, 3, 104, 52, 0, 517, 518, 5, 74, 0, 0, 518, 519, 5, 85, 0, 0, 519, 534, 3, 112, 56,
4359
+ 0, 520, 521, 5, 7, 0, 0, 521, 522, 5, 21, 0, 0, 522, 523, 3, 104, 52, 0, 523, 524, 5,
4360
+ 77, 0, 0, 524, 525, 5, 27, 0, 0, 525, 526, 3, 74, 37, 0, 526, 534, 1, 0, 0, 0, 527, 528,
4361
+ 5, 7, 0, 0, 528, 529, 5, 21, 0, 0, 529, 530, 3, 104, 52, 0, 530, 531, 5, 32, 0, 0, 531,
4362
+ 532, 5, 27, 0, 0, 532, 534, 1, 0, 0, 0, 533, 502, 1, 0, 0, 0, 533, 510, 1, 0, 0, 0, 533,
4363
+ 517, 1, 0, 0, 0, 533, 520, 1, 0, 0, 0, 533, 527, 1, 0, 0, 0, 534, 71, 1, 0, 0, 0, 535, 536,
4364
+ 5, 32, 0, 0, 536, 539, 5, 79, 0, 0, 537, 538, 5, 46, 0, 0, 538, 540, 5, 37, 0, 0, 539,
4365
+ 537, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 3, 110, 55, 0, 542,
4366
+ 73, 1, 0, 0, 0, 543, 544, 3, 76, 38, 0, 544, 75, 1, 0, 0, 0, 545, 546, 6, 38, -1, 0, 546,
4367
+ 550, 3, 78, 39, 0, 547, 548, 5, 61, 0, 0, 548, 550, 3, 76, 38, 3, 549, 545, 1, 0, 0, 0,
4368
+ 549, 547, 1, 0, 0, 0, 550, 559, 1, 0, 0, 0, 551, 552, 10, 2, 0, 0, 552, 553, 5, 8, 0, 0,
4369
+ 553, 558, 3, 76, 38, 3, 554, 555, 10, 1, 0, 0, 555, 556, 5, 68, 0, 0, 556, 558, 3, 76,
4370
+ 38, 2, 557, 551, 1, 0, 0, 0, 557, 554, 1, 0, 0, 0, 558, 561, 1, 0, 0, 0, 559, 557, 1, 0,
4371
+ 0, 0, 559, 560, 1, 0, 0, 0, 560, 77, 1, 0, 0, 0, 561, 559, 1, 0, 0, 0, 562, 564, 3, 84,
4372
+ 42, 0, 563, 565, 3, 80, 40, 0, 564, 563, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 79, 1,
4373
+ 0, 0, 0, 566, 567, 3, 82, 41, 0, 567, 568, 3, 84, 42, 0, 568, 622, 1, 0, 0, 0, 569, 571,
4374
+ 5, 61, 0, 0, 570, 569, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572, 573,
4375
+ 5, 47, 0, 0, 573, 574, 5, 2, 0, 0, 574, 579, 3, 74, 37, 0, 575, 576, 5, 1, 0, 0, 576, 578,
4376
+ 3, 74, 37, 0, 577, 575, 1, 0, 0, 0, 578, 581, 1, 0, 0, 0, 579, 577, 1, 0, 0, 0, 579, 580,
4377
+ 1, 0, 0, 0, 580, 582, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 582, 583, 5, 3, 0, 0, 583, 622,
4378
+ 1, 0, 0, 0, 584, 586, 5, 61, 0, 0, 585, 584, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587,
4379
+ 1, 0, 0, 0, 587, 588, 5, 47, 0, 0, 588, 589, 5, 2, 0, 0, 589, 590, 3, 8, 4, 0, 590, 591,
4380
+ 5, 3, 0, 0, 591, 622, 1, 0, 0, 0, 592, 594, 5, 61, 0, 0, 593, 592, 1, 0, 0, 0, 593, 594,
4381
+ 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 596, 5, 11, 0, 0, 596, 597, 3, 84, 42, 0, 597, 598,
4382
+ 5, 8, 0, 0, 598, 599, 3, 84, 42, 0, 599, 622, 1, 0, 0, 0, 600, 602, 5, 61, 0, 0, 601, 600,
4383
+ 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 604, 5, 59, 0, 0, 604, 607,
4384
+ 3, 84, 42, 0, 605, 606, 5, 35, 0, 0, 606, 608, 3, 84, 42, 0, 607, 605, 1, 0, 0, 0, 607,
4385
+ 608, 1, 0, 0, 0, 608, 622, 1, 0, 0, 0, 609, 611, 5, 54, 0, 0, 610, 612, 5, 61, 0, 0, 611,
4386
+ 610, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 613, 1, 0, 0, 0, 613, 622, 5, 62, 0, 0, 614,
4387
+ 616, 5, 54, 0, 0, 615, 617, 5, 61, 0, 0, 616, 615, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617,
4388
+ 618, 1, 0, 0, 0, 618, 619, 5, 30, 0, 0, 619, 620, 5, 42, 0, 0, 620, 622, 3, 84, 42, 0,
4389
+ 621, 566, 1, 0, 0, 0, 621, 570, 1, 0, 0, 0, 621, 585, 1, 0, 0, 0, 621, 593, 1, 0, 0, 0,
4390
+ 621, 601, 1, 0, 0, 0, 621, 609, 1, 0, 0, 0, 621, 614, 1, 0, 0, 0, 622, 81, 1, 0, 0, 0, 623,
4391
+ 624, 7, 4, 0, 0, 624, 83, 1, 0, 0, 0, 625, 626, 6, 42, -1, 0, 626, 630, 3, 86, 43, 0, 627,
4392
+ 628, 7, 5, 0, 0, 628, 630, 3, 84, 42, 4, 629, 625, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 630,
4393
+ 642, 1, 0, 0, 0, 631, 632, 10, 3, 0, 0, 632, 633, 7, 6, 0, 0, 633, 641, 3, 84, 42, 4, 634,
4394
+ 635, 10, 2, 0, 0, 635, 636, 7, 5, 0, 0, 636, 641, 3, 84, 42, 3, 637, 638, 10, 1, 0, 0,
4395
+ 638, 639, 5, 106, 0, 0, 639, 641, 3, 84, 42, 2, 640, 631, 1, 0, 0, 0, 640, 634, 1, 0,
4396
+ 0, 0, 640, 637, 1, 0, 0, 0, 641, 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 642, 643, 1, 0,
4397
+ 0, 0, 643, 85, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 645, 726, 3, 98, 49, 0, 646, 647, 3, 114,
4398
+ 57, 0, 647, 659, 5, 2, 0, 0, 648, 650, 3, 24, 12, 0, 649, 648, 1, 0, 0, 0, 649, 650, 1,
4399
+ 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 656, 3, 74, 37, 0, 652, 653, 5, 1, 0, 0, 653, 655,
4400
+ 3, 74, 37, 0, 654, 652, 1, 0, 0, 0, 655, 658, 1, 0, 0, 0, 656, 654, 1, 0, 0, 0, 656, 657,
4401
+ 1, 0, 0, 0, 657, 660, 1, 0, 0, 0, 658, 656, 1, 0, 0, 0, 659, 649, 1, 0, 0, 0, 659, 660,
4402
+ 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 662, 5, 3, 0, 0, 662, 726, 1, 0, 0, 0, 663, 665,
4403
+ 5, 16, 0, 0, 664, 666, 3, 88, 44, 0, 665, 664, 1, 0, 0, 0, 666, 667, 1, 0, 0, 0, 667, 665,
4404
+ 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 671, 1, 0, 0, 0, 669, 670, 5, 33, 0, 0, 670, 672,
4405
+ 3, 74, 37, 0, 671, 669, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0, 672, 673, 1, 0, 0, 0, 673, 674,
4406
+ 5, 34, 0, 0, 674, 726, 1, 0, 0, 0, 675, 676, 5, 16, 0, 0, 676, 678, 3, 74, 37, 0, 677,
4407
+ 679, 3, 88, 44, 0, 678, 677, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 678, 1, 0, 0, 0, 680,
4408
+ 681, 1, 0, 0, 0, 681, 684, 1, 0, 0, 0, 682, 683, 5, 33, 0, 0, 683, 685, 3, 74, 37, 0, 684,
4409
+ 682, 1, 0, 0, 0, 684, 685, 1, 0, 0, 0, 685, 686, 1, 0, 0, 0, 686, 687, 5, 34, 0, 0, 687,
4410
+ 726, 1, 0, 0, 0, 688, 689, 5, 17, 0, 0, 689, 690, 5, 2, 0, 0, 690, 691, 3, 74, 37, 0, 691,
4411
+ 692, 5, 9, 0, 0, 692, 693, 3, 92, 46, 0, 693, 694, 5, 3, 0, 0, 694, 726, 1, 0, 0, 0, 695,
4412
+ 696, 5, 20, 0, 0, 696, 697, 5, 2, 0, 0, 697, 702, 3, 74, 37, 0, 698, 699, 5, 1, 0, 0, 699,
4413
+ 701, 3, 74, 37, 0, 700, 698, 1, 0, 0, 0, 701, 704, 1, 0, 0, 0, 702, 700, 1, 0, 0, 0, 702,
4414
+ 703, 1, 0, 0, 0, 703, 705, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 705, 706, 5, 3, 0, 0, 706,
4415
+ 726, 1, 0, 0, 0, 707, 708, 5, 63, 0, 0, 708, 709, 5, 2, 0, 0, 709, 710, 3, 84, 42, 0, 710,
4416
+ 711, 5, 1, 0, 0, 711, 712, 3, 84, 42, 0, 712, 713, 5, 3, 0, 0, 713, 726, 1, 0, 0, 0, 714,
4417
+ 715, 5, 2, 0, 0, 715, 716, 3, 74, 37, 0, 716, 717, 5, 3, 0, 0, 717, 726, 1, 0, 0, 0, 718,
4418
+ 719, 5, 37, 0, 0, 719, 720, 5, 2, 0, 0, 720, 721, 3, 8, 4, 0, 721, 722, 5, 3, 0, 0, 722,
4419
+ 726, 1, 0, 0, 0, 723, 726, 3, 90, 45, 0, 724, 726, 3, 106, 53, 0, 725, 645, 1, 0, 0, 0,
4420
+ 725, 646, 1, 0, 0, 0, 725, 663, 1, 0, 0, 0, 725, 675, 1, 0, 0, 0, 725, 688, 1, 0, 0, 0,
4421
+ 725, 695, 1, 0, 0, 0, 725, 707, 1, 0, 0, 0, 725, 714, 1, 0, 0, 0, 725, 718, 1, 0, 0, 0,
4422
+ 725, 723, 1, 0, 0, 0, 725, 724, 1, 0, 0, 0, 726, 87, 1, 0, 0, 0, 727, 728, 5, 92, 0, 0,
4423
+ 728, 729, 3, 74, 37, 0, 729, 730, 5, 81, 0, 0, 730, 731, 3, 74, 37, 0, 731, 89, 1, 0,
4424
+ 0, 0, 732, 733, 5, 2, 0, 0, 733, 734, 3, 8, 4, 0, 734, 735, 5, 3, 0, 0, 735, 91, 1, 0, 0,
4425
+ 0, 736, 783, 5, 14, 0, 0, 737, 783, 5, 84, 0, 0, 738, 783, 5, 78, 0, 0, 739, 783, 5, 50,
4426
+ 0, 0, 740, 783, 5, 51, 0, 0, 741, 783, 5, 12, 0, 0, 742, 783, 5, 40, 0, 0, 743, 783, 5,
4427
+ 31, 0, 0, 744, 752, 5, 26, 0, 0, 745, 746, 5, 2, 0, 0, 746, 749, 5, 111, 0, 0, 747, 748,
4428
+ 5, 1, 0, 0, 748, 750, 5, 111, 0, 0, 749, 747, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 751,
4429
+ 1, 0, 0, 0, 751, 753, 5, 3, 0, 0, 752, 745, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 783,
4430
+ 1, 0, 0, 0, 754, 762, 5, 65, 0, 0, 755, 756, 5, 2, 0, 0, 756, 759, 5, 111, 0, 0, 757, 758,
4431
+ 5, 1, 0, 0, 758, 760, 5, 111, 0, 0, 759, 757, 1, 0, 0, 0, 759, 760, 1, 0, 0, 0, 760, 761,
4432
+ 1, 0, 0, 0, 761, 763, 5, 3, 0, 0, 762, 755, 1, 0, 0, 0, 762, 763, 1, 0, 0, 0, 763, 783,
4433
+ 1, 0, 0, 0, 764, 768, 5, 90, 0, 0, 765, 766, 5, 2, 0, 0, 766, 767, 5, 111, 0, 0, 767, 769,
4434
+ 5, 3, 0, 0, 768, 765, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 783, 1, 0, 0, 0, 770, 774,
4435
+ 5, 18, 0, 0, 771, 772, 5, 2, 0, 0, 772, 773, 5, 111, 0, 0, 773, 775, 5, 3, 0, 0, 774, 771,
4436
+ 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 783, 1, 0, 0, 0, 776, 783, 5, 80, 0, 0, 777, 783,
4437
+ 5, 25, 0, 0, 778, 783, 5, 82, 0, 0, 779, 783, 5, 83, 0, 0, 780, 783, 5, 13, 0, 0, 781,
4438
+ 783, 5, 91, 0, 0, 782, 736, 1, 0, 0, 0, 782, 737, 1, 0, 0, 0, 782, 738, 1, 0, 0, 0, 782,
4439
+ 739, 1, 0, 0, 0, 782, 740, 1, 0, 0, 0, 782, 741, 1, 0, 0, 0, 782, 742, 1, 0, 0, 0, 782,
4440
+ 743, 1, 0, 0, 0, 782, 744, 1, 0, 0, 0, 782, 754, 1, 0, 0, 0, 782, 764, 1, 0, 0, 0, 782,
4441
+ 770, 1, 0, 0, 0, 782, 776, 1, 0, 0, 0, 782, 777, 1, 0, 0, 0, 782, 778, 1, 0, 0, 0, 782,
4442
+ 779, 1, 0, 0, 0, 782, 780, 1, 0, 0, 0, 782, 781, 1, 0, 0, 0, 783, 93, 1, 0, 0, 0, 784, 785,
4443
+ 5, 2, 0, 0, 785, 790, 3, 96, 48, 0, 786, 787, 5, 1, 0, 0, 787, 789, 3, 96, 48, 0, 788,
4444
+ 786, 1, 0, 0, 0, 789, 792, 1, 0, 0, 0, 790, 788, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791,
4445
+ 793, 1, 0, 0, 0, 792, 790, 1, 0, 0, 0, 793, 794, 5, 3, 0, 0, 794, 95, 1, 0, 0, 0, 795, 796,
4446
+ 3, 100, 50, 0, 796, 797, 5, 95, 0, 0, 797, 798, 3, 98, 49, 0, 798, 97, 1, 0, 0, 0, 799,
4447
+ 808, 5, 62, 0, 0, 800, 808, 5, 86, 0, 0, 801, 808, 5, 38, 0, 0, 802, 808, 5, 111, 0, 0,
4448
+ 803, 808, 5, 112, 0, 0, 804, 808, 5, 113, 0, 0, 805, 808, 5, 109, 0, 0, 806, 808, 5,
4449
+ 110, 0, 0, 807, 799, 1, 0, 0, 0, 807, 800, 1, 0, 0, 0, 807, 801, 1, 0, 0, 0, 807, 802,
4450
+ 1, 0, 0, 0, 807, 803, 1, 0, 0, 0, 807, 804, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0, 807, 806,
4451
+ 1, 0, 0, 0, 808, 99, 1, 0, 0, 0, 809, 815, 5, 114, 0, 0, 810, 815, 5, 115, 0, 0, 811, 815,
4452
+ 5, 116, 0, 0, 812, 815, 5, 117, 0, 0, 813, 815, 3, 116, 58, 0, 814, 809, 1, 0, 0, 0, 814,
4453
+ 810, 1, 0, 0, 0, 814, 811, 1, 0, 0, 0, 814, 812, 1, 0, 0, 0, 814, 813, 1, 0, 0, 0, 815,
4454
+ 101, 1, 0, 0, 0, 816, 821, 3, 100, 50, 0, 817, 818, 5, 4, 0, 0, 818, 820, 3, 100, 50,
4455
+ 0, 819, 817, 1, 0, 0, 0, 820, 823, 1, 0, 0, 0, 821, 819, 1, 0, 0, 0, 821, 822, 1, 0, 0,
4456
+ 0, 822, 103, 1, 0, 0, 0, 823, 821, 1, 0, 0, 0, 824, 828, 3, 100, 50, 0, 825, 826, 4, 52,
4457
+ 7, 0, 826, 828, 3, 108, 54, 0, 827, 824, 1, 0, 0, 0, 827, 825, 1, 0, 0, 0, 828, 105, 1,
4458
+ 0, 0, 0, 829, 830, 3, 102, 51, 0, 830, 107, 1, 0, 0, 0, 831, 832, 1, 0, 0, 0, 832, 109,
4459
+ 1, 0, 0, 0, 833, 834, 3, 102, 51, 0, 834, 111, 1, 0, 0, 0, 835, 836, 3, 102, 51, 0, 836,
4460
+ 113, 1, 0, 0, 0, 837, 838, 3, 102, 51, 0, 838, 115, 1, 0, 0, 0, 839, 840, 7, 7, 0, 0, 840,
4461
+ 117, 1, 0, 0, 0, 100, 121, 130, 139, 142, 148, 155, 160, 173, 181, 186, 196, 200,
4462
+ 207, 211, 214, 217, 220, 223, 226, 232, 235, 244, 252, 267, 271, 275, 279, 283,
4463
+ 286, 290, 293, 300, 305, 310, 317, 323, 332, 337, 341, 347, 353, 363, 376, 380,
4464
+ 390, 397, 406, 412, 416, 422, 426, 430, 436, 446, 458, 476, 488, 493, 499, 507,
4465
+ 514, 533, 539, 549, 557, 559, 564, 570, 579, 585, 593, 601, 607, 611, 616, 621,
4466
+ 629, 640, 642, 649, 656, 659, 667, 671, 680, 684, 702, 725, 749, 752, 759, 762,
4467
+ 768, 774, 782, 790, 807, 814, 821, 827
4278
4468
  ];
4279
4469
  GenericSqlParser.vocabulary = new antlr.Vocabulary(GenericSqlParser.literalNames, GenericSqlParser.symbolicNames, []);
4280
4470
  GenericSqlParser.decisionsToDFA = GenericSqlParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4931,6 +5121,18 @@ export class SelectItemContext extends antlr.ParserRuleContext {
4931
5121
  constructor(parent, invokingState) {
4932
5122
  super(parent, invokingState);
4933
5123
  }
5124
+ get ruleIndex() {
5125
+ return GenericSqlParser.RULE_selectItem;
5126
+ }
5127
+ copyFrom(ctx) {
5128
+ super.copyFrom(ctx);
5129
+ }
5130
+ }
5131
+ export class SelectExpressionElementContext extends SelectItemContext {
5132
+ constructor(ctx) {
5133
+ super(ctx.parent, ctx.invokingState);
5134
+ super.copyFrom(ctx);
5135
+ }
4934
5136
  expression() {
4935
5137
  return this.getRuleContext(0, ExpressionContext);
4936
5138
  }
@@ -4940,28 +5142,103 @@ export class SelectItemContext extends antlr.ParserRuleContext {
4940
5142
  KW_AS() {
4941
5143
  return this.getToken(GenericSqlParser.KW_AS, 0);
4942
5144
  }
5145
+ enterRule(listener) {
5146
+ if (listener.enterSelectExpressionElement) {
5147
+ listener.enterSelectExpressionElement(this);
5148
+ }
5149
+ }
5150
+ exitRule(listener) {
5151
+ if (listener.exitSelectExpressionElement) {
5152
+ listener.exitSelectExpressionElement(this);
5153
+ }
5154
+ }
5155
+ accept(visitor) {
5156
+ if (visitor.visitSelectExpressionElement) {
5157
+ return visitor.visitSelectExpressionElement(this);
5158
+ }
5159
+ else {
5160
+ return visitor.visitChildren(this);
5161
+ }
5162
+ }
5163
+ }
5164
+ export class SelectEmptyElementContext extends SelectItemContext {
5165
+ constructor(ctx) {
5166
+ super(ctx.parent, ctx.invokingState);
5167
+ super.copyFrom(ctx);
5168
+ }
5169
+ emptyColumn() {
5170
+ return this.getRuleContext(0, EmptyColumnContext);
5171
+ }
5172
+ enterRule(listener) {
5173
+ if (listener.enterSelectEmptyElement) {
5174
+ listener.enterSelectEmptyElement(this);
5175
+ }
5176
+ }
5177
+ exitRule(listener) {
5178
+ if (listener.exitSelectEmptyElement) {
5179
+ listener.exitSelectEmptyElement(this);
5180
+ }
5181
+ }
5182
+ accept(visitor) {
5183
+ if (visitor.visitSelectEmptyElement) {
5184
+ return visitor.visitSelectEmptyElement(this);
5185
+ }
5186
+ else {
5187
+ return visitor.visitChildren(this);
5188
+ }
5189
+ }
5190
+ }
5191
+ export class SelectStarElementContext extends SelectItemContext {
5192
+ constructor(ctx) {
5193
+ super(ctx.parent, ctx.invokingState);
5194
+ super.copyFrom(ctx);
5195
+ }
4943
5196
  qualifiedName() {
4944
5197
  return this.getRuleContext(0, QualifiedNameContext);
4945
5198
  }
4946
5199
  ASTERISK() {
4947
5200
  return this.getToken(GenericSqlParser.ASTERISK, 0);
4948
5201
  }
4949
- get ruleIndex() {
4950
- return GenericSqlParser.RULE_selectItem;
5202
+ enterRule(listener) {
5203
+ if (listener.enterSelectStarElement) {
5204
+ listener.enterSelectStarElement(this);
5205
+ }
5206
+ }
5207
+ exitRule(listener) {
5208
+ if (listener.exitSelectStarElement) {
5209
+ listener.exitSelectStarElement(this);
5210
+ }
5211
+ }
5212
+ accept(visitor) {
5213
+ if (visitor.visitSelectStarElement) {
5214
+ return visitor.visitSelectStarElement(this);
5215
+ }
5216
+ else {
5217
+ return visitor.visitChildren(this);
5218
+ }
5219
+ }
5220
+ }
5221
+ export class SelectAllElementContext extends SelectItemContext {
5222
+ constructor(ctx) {
5223
+ super(ctx.parent, ctx.invokingState);
5224
+ super.copyFrom(ctx);
5225
+ }
5226
+ ASTERISK() {
5227
+ return this.getToken(GenericSqlParser.ASTERISK, 0);
4951
5228
  }
4952
5229
  enterRule(listener) {
4953
- if (listener.enterSelectItem) {
4954
- listener.enterSelectItem(this);
5230
+ if (listener.enterSelectAllElement) {
5231
+ listener.enterSelectAllElement(this);
4955
5232
  }
4956
5233
  }
4957
5234
  exitRule(listener) {
4958
- if (listener.exitSelectItem) {
4959
- listener.exitSelectItem(this);
5235
+ if (listener.exitSelectAllElement) {
5236
+ listener.exitSelectAllElement(this);
4960
5237
  }
4961
5238
  }
4962
5239
  accept(visitor) {
4963
- if (visitor.visitSelectItem) {
4964
- return visitor.visitSelectItem(this);
5240
+ if (visitor.visitSelectAllElement) {
5241
+ return visitor.visitSelectAllElement(this);
4965
5242
  }
4966
5243
  else {
4967
5244
  return visitor.visitChildren(this);
@@ -5237,6 +5514,9 @@ export class WhereClauseContext extends antlr.ParserRuleContext {
5237
5514
  expression() {
5238
5515
  return this.getRuleContext(0, ExpressionContext);
5239
5516
  }
5517
+ emptyColumn() {
5518
+ return this.getRuleContext(0, EmptyColumnContext);
5519
+ }
5240
5520
  get ruleIndex() {
5241
5521
  return GenericSqlParser.RULE_whereClause;
5242
5522
  }
@@ -5310,6 +5590,9 @@ export class HavingClauseContext extends antlr.ParserRuleContext {
5310
5590
  expression() {
5311
5591
  return this.getRuleContext(0, ExpressionContext);
5312
5592
  }
5593
+ emptyColumn() {
5594
+ return this.getRuleContext(0, EmptyColumnContext);
5595
+ }
5313
5596
  get ruleIndex() {
5314
5597
  return GenericSqlParser.RULE_havingClause;
5315
5598
  }
@@ -5734,8 +6017,8 @@ export class ColumnDefinitionContext extends antlr.ParserRuleContext {
5734
6017
  constructor(parent, invokingState) {
5735
6018
  super(parent, invokingState);
5736
6019
  }
5737
- columnRef() {
5738
- return this.getRuleContext(0, ColumnRefContext);
6020
+ columnRefCreate() {
6021
+ return this.getRuleContext(0, ColumnRefCreateContext);
5739
6022
  }
5740
6023
  dataType() {
5741
6024
  return this.getRuleContext(0, DataTypeContext);
@@ -5780,6 +6063,35 @@ export class ColumnDefinitionContext extends antlr.ParserRuleContext {
5780
6063
  }
5781
6064
  }
5782
6065
  }
6066
+ export class ColumnRefCreateContext extends antlr.ParserRuleContext {
6067
+ constructor(parent, invokingState) {
6068
+ super(parent, invokingState);
6069
+ }
6070
+ identifier() {
6071
+ return this.getRuleContext(0, IdentifierContext);
6072
+ }
6073
+ get ruleIndex() {
6074
+ return GenericSqlParser.RULE_columnRefCreate;
6075
+ }
6076
+ enterRule(listener) {
6077
+ if (listener.enterColumnRefCreate) {
6078
+ listener.enterColumnRefCreate(this);
6079
+ }
6080
+ }
6081
+ exitRule(listener) {
6082
+ if (listener.exitColumnRefCreate) {
6083
+ listener.exitColumnRefCreate(this);
6084
+ }
6085
+ }
6086
+ accept(visitor) {
6087
+ if (visitor.visitColumnRefCreate) {
6088
+ return visitor.visitColumnRefCreate(this);
6089
+ }
6090
+ else {
6091
+ return visitor.visitChildren(this);
6092
+ }
6093
+ }
6094
+ }
5783
6095
  export class TableConstraintContext extends antlr.ParserRuleContext {
5784
6096
  constructor(parent, invokingState) {
5785
6097
  super(parent, invokingState);
@@ -6735,8 +7047,8 @@ export class ColumnReferenceContext extends PrimaryExpressionContext {
6735
7047
  super(ctx.parent, ctx.invokingState);
6736
7048
  super.copyFrom(ctx);
6737
7049
  }
6738
- qualifiedName() {
6739
- return this.getRuleContext(0, QualifiedNameContext);
7050
+ columnName() {
7051
+ return this.getRuleContext(0, ColumnNameContext);
6740
7052
  }
6741
7053
  enterRule(listener) {
6742
7054
  if (listener.enterColumnReference) {
@@ -6819,8 +7131,8 @@ export class FunctionCallContext extends PrimaryExpressionContext {
6819
7131
  super(ctx.parent, ctx.invokingState);
6820
7132
  super.copyFrom(ctx);
6821
7133
  }
6822
- qualifiedName() {
6823
- return this.getRuleContext(0, QualifiedNameContext);
7134
+ functionName() {
7135
+ return this.getRuleContext(0, FunctionNameContext);
6824
7136
  }
6825
7137
  expression(i) {
6826
7138
  if (i === undefined) {
@@ -7502,6 +7814,9 @@ export class ColumnRefContext extends antlr.ParserRuleContext {
7502
7814
  identifier() {
7503
7815
  return this.getRuleContext(0, IdentifierContext);
7504
7816
  }
7817
+ emptyColumn() {
7818
+ return this.getRuleContext(0, EmptyColumnContext);
7819
+ }
7505
7820
  get ruleIndex() {
7506
7821
  return GenericSqlParser.RULE_columnRef;
7507
7822
  }
@@ -7524,6 +7839,61 @@ export class ColumnRefContext extends antlr.ParserRuleContext {
7524
7839
  }
7525
7840
  }
7526
7841
  }
7842
+ export class ColumnNameContext extends antlr.ParserRuleContext {
7843
+ constructor(parent, invokingState) {
7844
+ super(parent, invokingState);
7845
+ }
7846
+ qualifiedName() {
7847
+ return this.getRuleContext(0, QualifiedNameContext);
7848
+ }
7849
+ get ruleIndex() {
7850
+ return GenericSqlParser.RULE_columnName;
7851
+ }
7852
+ enterRule(listener) {
7853
+ if (listener.enterColumnName) {
7854
+ listener.enterColumnName(this);
7855
+ }
7856
+ }
7857
+ exitRule(listener) {
7858
+ if (listener.exitColumnName) {
7859
+ listener.exitColumnName(this);
7860
+ }
7861
+ }
7862
+ accept(visitor) {
7863
+ if (visitor.visitColumnName) {
7864
+ return visitor.visitColumnName(this);
7865
+ }
7866
+ else {
7867
+ return visitor.visitChildren(this);
7868
+ }
7869
+ }
7870
+ }
7871
+ export class EmptyColumnContext extends antlr.ParserRuleContext {
7872
+ constructor(parent, invokingState) {
7873
+ super(parent, invokingState);
7874
+ }
7875
+ get ruleIndex() {
7876
+ return GenericSqlParser.RULE_emptyColumn;
7877
+ }
7878
+ enterRule(listener) {
7879
+ if (listener.enterEmptyColumn) {
7880
+ listener.enterEmptyColumn(this);
7881
+ }
7882
+ }
7883
+ exitRule(listener) {
7884
+ if (listener.exitEmptyColumn) {
7885
+ listener.exitEmptyColumn(this);
7886
+ }
7887
+ }
7888
+ accept(visitor) {
7889
+ if (visitor.visitEmptyColumn) {
7890
+ return visitor.visitEmptyColumn(this);
7891
+ }
7892
+ else {
7893
+ return visitor.visitChildren(this);
7894
+ }
7895
+ }
7896
+ }
7527
7897
  export class TableNameContext extends antlr.ParserRuleContext {
7528
7898
  constructor(parent, invokingState) {
7529
7899
  super(parent, invokingState);
@@ -7582,6 +7952,35 @@ export class TableNameCreateContext extends antlr.ParserRuleContext {
7582
7952
  }
7583
7953
  }
7584
7954
  }
7955
+ export class FunctionNameContext extends antlr.ParserRuleContext {
7956
+ constructor(parent, invokingState) {
7957
+ super(parent, invokingState);
7958
+ }
7959
+ qualifiedName() {
7960
+ return this.getRuleContext(0, QualifiedNameContext);
7961
+ }
7962
+ get ruleIndex() {
7963
+ return GenericSqlParser.RULE_functionName;
7964
+ }
7965
+ enterRule(listener) {
7966
+ if (listener.enterFunctionName) {
7967
+ listener.enterFunctionName(this);
7968
+ }
7969
+ }
7970
+ exitRule(listener) {
7971
+ if (listener.exitFunctionName) {
7972
+ listener.exitFunctionName(this);
7973
+ }
7974
+ }
7975
+ accept(visitor) {
7976
+ if (visitor.visitFunctionName) {
7977
+ return visitor.visitFunctionName(this);
7978
+ }
7979
+ else {
7980
+ return visitor.visitChildren(this);
7981
+ }
7982
+ }
7983
+ }
7585
7984
  export class NonReservedContext extends antlr.ParserRuleContext {
7586
7985
  constructor(parent, invokingState) {
7587
7986
  super(parent, invokingState);