dt-sql-parser 4.5.0 → 4.5.1-beta.0

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 = 111;
25
+ this.state = 119;
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 = 108;
31
+ this.state = 116;
32
32
  this.statements();
33
33
  }
34
34
  }
35
- this.state = 113;
35
+ this.state = 121;
36
36
  this.errorHandler.sync(this);
37
37
  _la = this.tokenStream.LA(1);
38
38
  }
39
- this.state = 114;
39
+ this.state = 122;
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 = 116;
64
+ this.state = 124;
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 = 118;
90
+ this.state = 126;
91
91
  this.statement();
92
- this.state = 120;
92
+ this.state = 128;
93
93
  this.errorHandler.sync(this);
94
94
  _la = this.tokenStream.LA(1);
95
95
  if (_la === 108) {
96
96
  {
97
- this.state = 119;
97
+ this.state = 127;
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 = 129;
122
+ this.state = 137;
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 = 122;
131
+ this.state = 130;
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 = 123;
139
+ this.state = 131;
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 = 124;
147
+ this.state = 132;
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 = 125;
155
+ this.state = 133;
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 = 126;
163
+ this.state = 134;
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 = 127;
171
+ this.state = 135;
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 = 128;
179
+ this.state = 136;
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 = 132;
209
+ this.state = 140;
210
210
  this.errorHandler.sync(this);
211
211
  _la = this.tokenStream.LA(1);
212
212
  if (_la === 94) {
213
213
  {
214
- this.state = 131;
214
+ this.state = 139;
215
215
  this.withClause();
216
216
  }
217
217
  }
218
- this.state = 134;
218
+ this.state = 142;
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 = 136;
244
+ this.state = 144;
245
245
  this.match(GenericSqlParser.KW_WITH);
246
- this.state = 138;
246
+ this.state = 146;
247
247
  this.errorHandler.sync(this);
248
248
  _la = this.tokenStream.LA(1);
249
249
  if (_la === 72) {
250
250
  {
251
- this.state = 137;
251
+ this.state = 145;
252
252
  this.match(GenericSqlParser.KW_RECURSIVE);
253
253
  }
254
254
  }
255
- this.state = 140;
255
+ this.state = 148;
256
256
  this.namedQuery();
257
- this.state = 145;
257
+ this.state = 153;
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 = 141;
263
+ this.state = 149;
264
264
  this.match(GenericSqlParser.T__0);
265
- this.state = 142;
265
+ this.state = 150;
266
266
  this.namedQuery();
267
267
  }
268
268
  }
269
- this.state = 147;
269
+ this.state = 155;
270
270
  this.errorHandler.sync(this);
271
271
  _la = this.tokenStream.LA(1);
272
272
  }
@@ -293,15 +293,15 @@ export class GenericSqlParser extends SQLParserBase {
293
293
  try {
294
294
  this.enterOuterAlt(localContext, 1);
295
295
  {
296
- this.state = 148;
296
+ this.state = 156;
297
297
  localContext._name = this.identifier();
298
- this.state = 149;
298
+ this.state = 157;
299
299
  this.match(GenericSqlParser.KW_AS);
300
- this.state = 150;
300
+ this.state = 158;
301
301
  this.match(GenericSqlParser.T__1);
302
- this.state = 151;
302
+ this.state = 159;
303
303
  this.queryStatement();
304
- this.state = 152;
304
+ this.state = 160;
305
305
  this.match(GenericSqlParser.T__2);
306
306
  }
307
307
  }
@@ -327,15 +327,15 @@ export class GenericSqlParser extends SQLParserBase {
327
327
  try {
328
328
  this.enterOuterAlt(localContext, 1);
329
329
  {
330
- this.state = 154;
331
- this.queryTerm();
332
330
  this.state = 162;
331
+ this.queryTerm();
332
+ this.state = 170;
333
333
  this.errorHandler.sync(this);
334
334
  _la = this.tokenStream.LA(1);
335
335
  while (_la === 36 || _la === 52 || _la === 87) {
336
336
  {
337
337
  {
338
- this.state = 155;
338
+ this.state = 163;
339
339
  _la = this.tokenStream.LA(1);
340
340
  if (!(_la === 36 || _la === 52 || _la === 87)) {
341
341
  this.errorHandler.recoverInline(this);
@@ -344,20 +344,20 @@ export class GenericSqlParser extends SQLParserBase {
344
344
  this.errorHandler.reportMatch(this);
345
345
  this.consume();
346
346
  }
347
- this.state = 157;
347
+ this.state = 165;
348
348
  this.errorHandler.sync(this);
349
349
  _la = this.tokenStream.LA(1);
350
350
  if (_la === 6) {
351
351
  {
352
- this.state = 156;
352
+ this.state = 164;
353
353
  this.match(GenericSqlParser.KW_ALL);
354
354
  }
355
355
  }
356
- this.state = 159;
356
+ this.state = 167;
357
357
  this.queryTerm();
358
358
  }
359
359
  }
360
- this.state = 164;
360
+ this.state = 172;
361
361
  this.errorHandler.sync(this);
362
362
  _la = this.tokenStream.LA(1);
363
363
  }
@@ -384,7 +384,7 @@ export class GenericSqlParser extends SQLParserBase {
384
384
  try {
385
385
  this.enterOuterAlt(localContext, 1);
386
386
  {
387
- this.state = 165;
387
+ this.state = 173;
388
388
  this.queryPrimary();
389
389
  }
390
390
  }
@@ -407,24 +407,24 @@ export class GenericSqlParser extends SQLParserBase {
407
407
  let localContext = new QueryPrimaryContext(this.context, this.state);
408
408
  this.enterRule(localContext, 18, GenericSqlParser.RULE_queryPrimary);
409
409
  try {
410
- this.state = 172;
410
+ this.state = 180;
411
411
  this.errorHandler.sync(this);
412
412
  switch (this.tokenStream.LA(1)) {
413
413
  case GenericSqlParser.KW_SELECT:
414
414
  this.enterOuterAlt(localContext, 1);
415
415
  {
416
- this.state = 167;
416
+ this.state = 175;
417
417
  this.querySpecification();
418
418
  }
419
419
  break;
420
420
  case GenericSqlParser.T__1:
421
421
  this.enterOuterAlt(localContext, 2);
422
422
  {
423
- this.state = 168;
423
+ this.state = 176;
424
424
  this.match(GenericSqlParser.T__1);
425
- this.state = 169;
425
+ this.state = 177;
426
426
  this.queryStatement();
427
- this.state = 170;
427
+ this.state = 178;
428
428
  this.match(GenericSqlParser.T__2);
429
429
  }
430
430
  break;
@@ -454,87 +454,87 @@ export class GenericSqlParser extends SQLParserBase {
454
454
  try {
455
455
  this.enterOuterAlt(localContext, 1);
456
456
  {
457
- this.state = 174;
457
+ this.state = 182;
458
458
  this.match(GenericSqlParser.KW_SELECT);
459
- this.state = 176;
459
+ this.state = 184;
460
460
  this.errorHandler.sync(this);
461
461
  switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
462
462
  case 1:
463
463
  {
464
- this.state = 175;
464
+ this.state = 183;
465
465
  this.setQuantifier();
466
466
  }
467
467
  break;
468
468
  }
469
- this.state = 178;
469
+ this.state = 186;
470
470
  this.selectItem();
471
- this.state = 183;
471
+ this.state = 191;
472
472
  this.errorHandler.sync(this);
473
473
  _la = this.tokenStream.LA(1);
474
474
  while (_la === 1) {
475
475
  {
476
476
  {
477
- this.state = 179;
477
+ this.state = 187;
478
478
  this.match(GenericSqlParser.T__0);
479
- this.state = 180;
479
+ this.state = 188;
480
480
  this.selectItem();
481
481
  }
482
482
  }
483
- this.state = 185;
483
+ this.state = 193;
484
484
  this.errorHandler.sync(this);
485
485
  _la = this.tokenStream.LA(1);
486
486
  }
487
- this.state = 187;
487
+ this.state = 195;
488
488
  this.errorHandler.sync(this);
489
489
  _la = this.tokenStream.LA(1);
490
490
  if (_la === 42) {
491
491
  {
492
- this.state = 186;
492
+ this.state = 194;
493
493
  this.fromClause();
494
494
  }
495
495
  }
496
- this.state = 190;
496
+ this.state = 198;
497
497
  this.errorHandler.sync(this);
498
498
  _la = this.tokenStream.LA(1);
499
499
  if (_la === 93) {
500
500
  {
501
- this.state = 189;
501
+ this.state = 197;
502
502
  this.whereClause();
503
503
  }
504
504
  }
505
- this.state = 193;
505
+ this.state = 201;
506
506
  this.errorHandler.sync(this);
507
507
  _la = this.tokenStream.LA(1);
508
508
  if (_la === 44) {
509
509
  {
510
- this.state = 192;
510
+ this.state = 200;
511
511
  this.groupByClause();
512
512
  }
513
513
  }
514
- this.state = 196;
514
+ this.state = 204;
515
515
  this.errorHandler.sync(this);
516
516
  _la = this.tokenStream.LA(1);
517
517
  if (_la === 45) {
518
518
  {
519
- this.state = 195;
519
+ this.state = 203;
520
520
  this.havingClause();
521
521
  }
522
522
  }
523
- this.state = 199;
523
+ this.state = 207;
524
524
  this.errorHandler.sync(this);
525
525
  _la = this.tokenStream.LA(1);
526
526
  if (_la === 69) {
527
527
  {
528
- this.state = 198;
528
+ this.state = 206;
529
529
  this.orderByClause();
530
530
  }
531
531
  }
532
- this.state = 202;
532
+ this.state = 210;
533
533
  this.errorHandler.sync(this);
534
534
  _la = this.tokenStream.LA(1);
535
535
  if (_la === 60) {
536
536
  {
537
- this.state = 201;
537
+ this.state = 209;
538
538
  this.limitClause();
539
539
  }
540
540
  }
@@ -562,7 +562,7 @@ export class GenericSqlParser extends SQLParserBase {
562
562
  try {
563
563
  this.enterOuterAlt(localContext, 1);
564
564
  {
565
- this.state = 204;
565
+ this.state = 212;
566
566
  _la = this.tokenStream.LA(1);
567
567
  if (!(_la === 6 || _la === 30)) {
568
568
  this.errorHandler.recoverInline(this);
@@ -593,29 +593,30 @@ export class GenericSqlParser extends SQLParserBase {
593
593
  this.enterRule(localContext, 24, GenericSqlParser.RULE_selectItem);
594
594
  let _la;
595
595
  try {
596
- this.state = 218;
596
+ this.state = 228;
597
597
  this.errorHandler.sync(this);
598
598
  switch (this.interpreter.adaptivePredict(this.tokenStream, 19, this.context)) {
599
599
  case 1:
600
+ localContext = new SelectExpressionElementContext(localContext);
600
601
  this.enterOuterAlt(localContext, 1);
601
602
  {
602
- this.state = 206;
603
+ this.state = 214;
603
604
  this.expression();
604
- this.state = 211;
605
+ this.state = 219;
605
606
  this.errorHandler.sync(this);
606
607
  switch (this.interpreter.adaptivePredict(this.tokenStream, 18, this.context)) {
607
608
  case 1:
608
609
  {
609
- this.state = 208;
610
+ this.state = 216;
610
611
  this.errorHandler.sync(this);
611
612
  _la = this.tokenStream.LA(1);
612
613
  if (_la === 9) {
613
614
  {
614
- this.state = 207;
615
+ this.state = 215;
615
616
  this.match(GenericSqlParser.KW_AS);
616
617
  }
617
618
  }
618
- this.state = 210;
619
+ this.state = 218;
619
620
  this.identifier();
620
621
  }
621
622
  break;
@@ -623,23 +624,37 @@ export class GenericSqlParser extends SQLParserBase {
623
624
  }
624
625
  break;
625
626
  case 2:
627
+ localContext = new SelectStarElementContext(localContext);
626
628
  this.enterOuterAlt(localContext, 2);
627
629
  {
628
- this.state = 213;
630
+ this.state = 221;
629
631
  this.qualifiedName();
630
- this.state = 214;
632
+ this.state = 222;
631
633
  this.match(GenericSqlParser.T__3);
632
- this.state = 215;
634
+ this.state = 223;
633
635
  this.match(GenericSqlParser.ASTERISK);
634
636
  }
635
637
  break;
636
638
  case 3:
639
+ localContext = new SelectAllElementContext(localContext);
637
640
  this.enterOuterAlt(localContext, 3);
638
641
  {
639
- this.state = 217;
642
+ this.state = 225;
640
643
  this.match(GenericSqlParser.ASTERISK);
641
644
  }
642
645
  break;
646
+ case 4:
647
+ localContext = new SelectEmptyElementContext(localContext);
648
+ this.enterOuterAlt(localContext, 4);
649
+ {
650
+ this.state = 226;
651
+ if (!(this.shouldMatchEmpty())) {
652
+ throw this.createFailedPredicateException("this.shouldMatchEmpty()");
653
+ }
654
+ this.state = 227;
655
+ this.emptyColumn();
656
+ }
657
+ break;
643
658
  }
644
659
  }
645
660
  catch (re) {
@@ -664,23 +679,23 @@ export class GenericSqlParser extends SQLParserBase {
664
679
  try {
665
680
  this.enterOuterAlt(localContext, 1);
666
681
  {
667
- this.state = 220;
682
+ this.state = 230;
668
683
  this.match(GenericSqlParser.KW_FROM);
669
- this.state = 221;
684
+ this.state = 231;
670
685
  this.relation(0);
671
- this.state = 226;
686
+ this.state = 236;
672
687
  this.errorHandler.sync(this);
673
688
  _la = this.tokenStream.LA(1);
674
689
  while (_la === 1) {
675
690
  {
676
691
  {
677
- this.state = 222;
692
+ this.state = 232;
678
693
  this.match(GenericSqlParser.T__0);
679
- this.state = 223;
694
+ this.state = 233;
680
695
  this.relation(0);
681
696
  }
682
697
  }
683
- this.state = 228;
698
+ this.state = 238;
684
699
  this.errorHandler.sync(this);
685
700
  _la = this.tokenStream.LA(1);
686
701
  }
@@ -719,11 +734,11 @@ export class GenericSqlParser extends SQLParserBase {
719
734
  localContext = new SimpleRelationContext(localContext);
720
735
  this.context = localContext;
721
736
  previousContext = localContext;
722
- this.state = 230;
737
+ this.state = 240;
723
738
  this.aliasedRelation();
724
739
  }
725
740
  this.context.stop = this.tokenStream.LT(-1);
726
- this.state = 241;
741
+ this.state = 251;
727
742
  this.errorHandler.sync(this);
728
743
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 21, this.context);
729
744
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -737,24 +752,24 @@ export class GenericSqlParser extends SQLParserBase {
737
752
  localContext = new JoinRelationContext(new RelationContext(parentContext, parentState));
738
753
  localContext._left = previousContext;
739
754
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_relation);
740
- this.state = 232;
755
+ this.state = 242;
741
756
  if (!(this.precpred(this.context, 2))) {
742
757
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
743
758
  }
744
- this.state = 233;
759
+ this.state = 243;
745
760
  this.joinType();
746
- this.state = 234;
761
+ this.state = 244;
747
762
  this.match(GenericSqlParser.KW_JOIN);
748
- this.state = 235;
763
+ this.state = 245;
749
764
  localContext._right = this.relation(0);
750
- this.state = 236;
765
+ this.state = 246;
751
766
  this.match(GenericSqlParser.KW_ON);
752
- this.state = 237;
767
+ this.state = 247;
753
768
  localContext._condition = this.expression();
754
769
  }
755
770
  }
756
771
  }
757
- this.state = 243;
772
+ this.state = 253;
758
773
  this.errorHandler.sync(this);
759
774
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 21, this.context);
760
775
  }
@@ -780,19 +795,19 @@ export class GenericSqlParser extends SQLParserBase {
780
795
  this.enterRule(localContext, 30, GenericSqlParser.RULE_joinType);
781
796
  let _la;
782
797
  try {
783
- this.state = 260;
798
+ this.state = 270;
784
799
  this.errorHandler.sync(this);
785
800
  switch (this.tokenStream.LA(1)) {
786
801
  case GenericSqlParser.KW_INNER:
787
802
  case GenericSqlParser.KW_JOIN:
788
803
  this.enterOuterAlt(localContext, 1);
789
804
  {
790
- this.state = 245;
805
+ this.state = 255;
791
806
  this.errorHandler.sync(this);
792
807
  _la = this.tokenStream.LA(1);
793
808
  if (_la === 48) {
794
809
  {
795
- this.state = 244;
810
+ this.state = 254;
796
811
  this.match(GenericSqlParser.KW_INNER);
797
812
  }
798
813
  }
@@ -801,14 +816,14 @@ export class GenericSqlParser extends SQLParserBase {
801
816
  case GenericSqlParser.KW_LEFT:
802
817
  this.enterOuterAlt(localContext, 2);
803
818
  {
804
- this.state = 247;
819
+ this.state = 257;
805
820
  this.match(GenericSqlParser.KW_LEFT);
806
- this.state = 249;
821
+ this.state = 259;
807
822
  this.errorHandler.sync(this);
808
823
  _la = this.tokenStream.LA(1);
809
824
  if (_la === 70) {
810
825
  {
811
- this.state = 248;
826
+ this.state = 258;
812
827
  this.match(GenericSqlParser.KW_OUTER);
813
828
  }
814
829
  }
@@ -817,14 +832,14 @@ export class GenericSqlParser extends SQLParserBase {
817
832
  case GenericSqlParser.KW_RIGHT:
818
833
  this.enterOuterAlt(localContext, 3);
819
834
  {
820
- this.state = 251;
835
+ this.state = 261;
821
836
  this.match(GenericSqlParser.KW_RIGHT);
822
- this.state = 253;
837
+ this.state = 263;
823
838
  this.errorHandler.sync(this);
824
839
  _la = this.tokenStream.LA(1);
825
840
  if (_la === 70) {
826
841
  {
827
- this.state = 252;
842
+ this.state = 262;
828
843
  this.match(GenericSqlParser.KW_OUTER);
829
844
  }
830
845
  }
@@ -833,14 +848,14 @@ export class GenericSqlParser extends SQLParserBase {
833
848
  case GenericSqlParser.KW_FULL:
834
849
  this.enterOuterAlt(localContext, 4);
835
850
  {
836
- this.state = 255;
851
+ this.state = 265;
837
852
  this.match(GenericSqlParser.KW_FULL);
838
- this.state = 257;
853
+ this.state = 267;
839
854
  this.errorHandler.sync(this);
840
855
  _la = this.tokenStream.LA(1);
841
856
  if (_la === 70) {
842
857
  {
843
- this.state = 256;
858
+ this.state = 266;
844
859
  this.match(GenericSqlParser.KW_OUTER);
845
860
  }
846
861
  }
@@ -849,7 +864,7 @@ export class GenericSqlParser extends SQLParserBase {
849
864
  case GenericSqlParser.KW_CROSS:
850
865
  this.enterOuterAlt(localContext, 5);
851
866
  {
852
- this.state = 259;
867
+ this.state = 269;
853
868
  this.match(GenericSqlParser.KW_CROSS);
854
869
  }
855
870
  break;
@@ -879,23 +894,23 @@ export class GenericSqlParser extends SQLParserBase {
879
894
  try {
880
895
  this.enterOuterAlt(localContext, 1);
881
896
  {
882
- this.state = 262;
897
+ this.state = 272;
883
898
  this.relationPrimary();
884
- this.state = 267;
899
+ this.state = 277;
885
900
  this.errorHandler.sync(this);
886
901
  switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
887
902
  case 1:
888
903
  {
889
- this.state = 264;
904
+ this.state = 274;
890
905
  this.errorHandler.sync(this);
891
906
  _la = this.tokenStream.LA(1);
892
907
  if (_la === 9) {
893
908
  {
894
- this.state = 263;
909
+ this.state = 273;
895
910
  this.match(GenericSqlParser.KW_AS);
896
911
  }
897
912
  }
898
- this.state = 266;
913
+ this.state = 276;
899
914
  this.identifier();
900
915
  }
901
916
  break;
@@ -921,7 +936,7 @@ export class GenericSqlParser extends SQLParserBase {
921
936
  let localContext = new RelationPrimaryContext(this.context, this.state);
922
937
  this.enterRule(localContext, 34, GenericSqlParser.RULE_relationPrimary);
923
938
  try {
924
- this.state = 274;
939
+ this.state = 284;
925
940
  this.errorHandler.sync(this);
926
941
  switch (this.tokenStream.LA(1)) {
927
942
  case GenericSqlParser.KW_ADD:
@@ -974,7 +989,7 @@ export class GenericSqlParser extends SQLParserBase {
974
989
  localContext = new TableNameRelationContext(localContext);
975
990
  this.enterOuterAlt(localContext, 1);
976
991
  {
977
- this.state = 269;
992
+ this.state = 279;
978
993
  this.tableName();
979
994
  }
980
995
  break;
@@ -982,11 +997,11 @@ export class GenericSqlParser extends SQLParserBase {
982
997
  localContext = new SubqueryRelationContext(localContext);
983
998
  this.enterOuterAlt(localContext, 2);
984
999
  {
985
- this.state = 270;
1000
+ this.state = 280;
986
1001
  this.match(GenericSqlParser.T__1);
987
- this.state = 271;
1002
+ this.state = 281;
988
1003
  this.queryStatement();
989
- this.state = 272;
1004
+ this.state = 282;
990
1005
  this.match(GenericSqlParser.T__2);
991
1006
  }
992
1007
  break;
@@ -1015,10 +1030,24 @@ export class GenericSqlParser extends SQLParserBase {
1015
1030
  try {
1016
1031
  this.enterOuterAlt(localContext, 1);
1017
1032
  {
1018
- this.state = 276;
1033
+ this.state = 286;
1019
1034
  this.match(GenericSqlParser.KW_WHERE);
1020
- this.state = 277;
1021
- this.expression();
1035
+ this.state = 289;
1036
+ this.errorHandler.sync(this);
1037
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1038
+ case 1:
1039
+ {
1040
+ this.state = 287;
1041
+ this.expression();
1042
+ }
1043
+ break;
1044
+ case 2:
1045
+ {
1046
+ this.state = 288;
1047
+ this.emptyColumn();
1048
+ }
1049
+ break;
1050
+ }
1022
1051
  }
1023
1052
  }
1024
1053
  catch (re) {
@@ -1043,35 +1072,35 @@ export class GenericSqlParser extends SQLParserBase {
1043
1072
  try {
1044
1073
  this.enterOuterAlt(localContext, 1);
1045
1074
  {
1046
- this.state = 279;
1075
+ this.state = 291;
1047
1076
  this.match(GenericSqlParser.KW_GROUP);
1048
- this.state = 280;
1077
+ this.state = 292;
1049
1078
  this.match(GenericSqlParser.KW_BY);
1050
- this.state = 282;
1079
+ this.state = 294;
1051
1080
  this.errorHandler.sync(this);
1052
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1081
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1053
1082
  case 1:
1054
1083
  {
1055
- this.state = 281;
1084
+ this.state = 293;
1056
1085
  this.setQuantifier();
1057
1086
  }
1058
1087
  break;
1059
1088
  }
1060
- this.state = 284;
1089
+ this.state = 296;
1061
1090
  this.expression();
1062
- this.state = 289;
1091
+ this.state = 301;
1063
1092
  this.errorHandler.sync(this);
1064
1093
  _la = this.tokenStream.LA(1);
1065
1094
  while (_la === 1) {
1066
1095
  {
1067
1096
  {
1068
- this.state = 285;
1097
+ this.state = 297;
1069
1098
  this.match(GenericSqlParser.T__0);
1070
- this.state = 286;
1099
+ this.state = 298;
1071
1100
  this.expression();
1072
1101
  }
1073
1102
  }
1074
- this.state = 291;
1103
+ this.state = 303;
1075
1104
  this.errorHandler.sync(this);
1076
1105
  _la = this.tokenStream.LA(1);
1077
1106
  }
@@ -1098,10 +1127,24 @@ export class GenericSqlParser extends SQLParserBase {
1098
1127
  try {
1099
1128
  this.enterOuterAlt(localContext, 1);
1100
1129
  {
1101
- this.state = 292;
1130
+ this.state = 304;
1102
1131
  this.match(GenericSqlParser.KW_HAVING);
1103
- this.state = 293;
1104
- this.expression();
1132
+ this.state = 307;
1133
+ this.errorHandler.sync(this);
1134
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1135
+ case 1:
1136
+ {
1137
+ this.state = 305;
1138
+ this.expression();
1139
+ }
1140
+ break;
1141
+ case 2:
1142
+ {
1143
+ this.state = 306;
1144
+ this.emptyColumn();
1145
+ }
1146
+ break;
1147
+ }
1105
1148
  }
1106
1149
  }
1107
1150
  catch (re) {
@@ -1126,25 +1169,25 @@ export class GenericSqlParser extends SQLParserBase {
1126
1169
  try {
1127
1170
  this.enterOuterAlt(localContext, 1);
1128
1171
  {
1129
- this.state = 295;
1172
+ this.state = 309;
1130
1173
  this.match(GenericSqlParser.KW_ORDER);
1131
- this.state = 296;
1174
+ this.state = 310;
1132
1175
  this.match(GenericSqlParser.KW_BY);
1133
- this.state = 297;
1176
+ this.state = 311;
1134
1177
  this.sortItem();
1135
- this.state = 302;
1178
+ this.state = 316;
1136
1179
  this.errorHandler.sync(this);
1137
1180
  _la = this.tokenStream.LA(1);
1138
1181
  while (_la === 1) {
1139
1182
  {
1140
1183
  {
1141
- this.state = 298;
1184
+ this.state = 312;
1142
1185
  this.match(GenericSqlParser.T__0);
1143
- this.state = 299;
1186
+ this.state = 313;
1144
1187
  this.sortItem();
1145
1188
  }
1146
1189
  }
1147
- this.state = 304;
1190
+ this.state = 318;
1148
1191
  this.errorHandler.sync(this);
1149
1192
  _la = this.tokenStream.LA(1);
1150
1193
  }
@@ -1172,14 +1215,14 @@ export class GenericSqlParser extends SQLParserBase {
1172
1215
  try {
1173
1216
  this.enterOuterAlt(localContext, 1);
1174
1217
  {
1175
- this.state = 305;
1218
+ this.state = 319;
1176
1219
  this.expression();
1177
- this.state = 307;
1220
+ this.state = 321;
1178
1221
  this.errorHandler.sync(this);
1179
1222
  _la = this.tokenStream.LA(1);
1180
1223
  if (_la === 10 || _la === 29) {
1181
1224
  {
1182
- this.state = 306;
1225
+ this.state = 320;
1183
1226
  localContext._ordering = this.tokenStream.LT(1);
1184
1227
  _la = this.tokenStream.LA(1);
1185
1228
  if (!(_la === 10 || _la === 29)) {
@@ -1191,14 +1234,14 @@ export class GenericSqlParser extends SQLParserBase {
1191
1234
  }
1192
1235
  }
1193
1236
  }
1194
- this.state = 311;
1237
+ this.state = 325;
1195
1238
  this.errorHandler.sync(this);
1196
1239
  _la = this.tokenStream.LA(1);
1197
1240
  if (_la === 64) {
1198
1241
  {
1199
- this.state = 309;
1242
+ this.state = 323;
1200
1243
  this.match(GenericSqlParser.KW_NULLS);
1201
- this.state = 310;
1244
+ this.state = 324;
1202
1245
  localContext._nullOrdering = this.tokenStream.LT(1);
1203
1246
  _la = this.tokenStream.LA(1);
1204
1247
  if (!(_la === 39 || _la === 57)) {
@@ -1234,18 +1277,18 @@ export class GenericSqlParser extends SQLParserBase {
1234
1277
  try {
1235
1278
  this.enterOuterAlt(localContext, 1);
1236
1279
  {
1237
- this.state = 313;
1280
+ this.state = 327;
1238
1281
  this.match(GenericSqlParser.KW_LIMIT);
1239
- this.state = 314;
1282
+ this.state = 328;
1240
1283
  localContext._limit = this.expression();
1241
- this.state = 317;
1284
+ this.state = 331;
1242
1285
  this.errorHandler.sync(this);
1243
1286
  _la = this.tokenStream.LA(1);
1244
1287
  if (_la === 66) {
1245
1288
  {
1246
- this.state = 315;
1289
+ this.state = 329;
1247
1290
  this.match(GenericSqlParser.KW_OFFSET);
1248
- this.state = 316;
1291
+ this.state = 330;
1249
1292
  localContext._offset = this.expression();
1250
1293
  }
1251
1294
  }
@@ -1272,23 +1315,23 @@ export class GenericSqlParser extends SQLParserBase {
1272
1315
  try {
1273
1316
  this.enterOuterAlt(localContext, 1);
1274
1317
  {
1275
- this.state = 319;
1318
+ this.state = 333;
1276
1319
  this.match(GenericSqlParser.KW_INSERT);
1277
- this.state = 320;
1320
+ this.state = 334;
1278
1321
  this.match(GenericSqlParser.KW_INTO);
1279
- this.state = 321;
1322
+ this.state = 335;
1280
1323
  this.tableName();
1281
- this.state = 323;
1324
+ this.state = 337;
1282
1325
  this.errorHandler.sync(this);
1283
- switch (this.interpreter.adaptivePredict(this.tokenStream, 36, this.context)) {
1326
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 38, this.context)) {
1284
1327
  case 1:
1285
1328
  {
1286
- this.state = 322;
1329
+ this.state = 336;
1287
1330
  this.columnList();
1288
1331
  }
1289
1332
  break;
1290
1333
  }
1291
- this.state = 325;
1334
+ this.state = 339;
1292
1335
  this.queryStatement();
1293
1336
  }
1294
1337
  }
@@ -1314,27 +1357,27 @@ export class GenericSqlParser extends SQLParserBase {
1314
1357
  try {
1315
1358
  this.enterOuterAlt(localContext, 1);
1316
1359
  {
1317
- this.state = 327;
1360
+ this.state = 341;
1318
1361
  this.match(GenericSqlParser.T__1);
1319
- this.state = 328;
1362
+ this.state = 342;
1320
1363
  this.columnRef();
1321
- this.state = 333;
1364
+ this.state = 347;
1322
1365
  this.errorHandler.sync(this);
1323
1366
  _la = this.tokenStream.LA(1);
1324
1367
  while (_la === 1) {
1325
1368
  {
1326
1369
  {
1327
- this.state = 329;
1370
+ this.state = 343;
1328
1371
  this.match(GenericSqlParser.T__0);
1329
- this.state = 330;
1372
+ this.state = 344;
1330
1373
  this.columnRef();
1331
1374
  }
1332
1375
  }
1333
- this.state = 335;
1376
+ this.state = 349;
1334
1377
  this.errorHandler.sync(this);
1335
1378
  _la = this.tokenStream.LA(1);
1336
1379
  }
1337
- this.state = 336;
1380
+ this.state = 350;
1338
1381
  this.match(GenericSqlParser.T__2);
1339
1382
  }
1340
1383
  }
@@ -1360,36 +1403,36 @@ export class GenericSqlParser extends SQLParserBase {
1360
1403
  try {
1361
1404
  this.enterOuterAlt(localContext, 1);
1362
1405
  {
1363
- this.state = 338;
1406
+ this.state = 352;
1364
1407
  this.match(GenericSqlParser.KW_UPDATE);
1365
- this.state = 339;
1408
+ this.state = 353;
1366
1409
  this.tableName();
1367
- this.state = 340;
1410
+ this.state = 354;
1368
1411
  this.match(GenericSqlParser.KW_SET);
1369
- this.state = 341;
1412
+ this.state = 355;
1370
1413
  this.updateAssignment();
1371
- this.state = 346;
1414
+ this.state = 360;
1372
1415
  this.errorHandler.sync(this);
1373
1416
  _la = this.tokenStream.LA(1);
1374
1417
  while (_la === 1) {
1375
1418
  {
1376
1419
  {
1377
- this.state = 342;
1420
+ this.state = 356;
1378
1421
  this.match(GenericSqlParser.T__0);
1379
- this.state = 343;
1422
+ this.state = 357;
1380
1423
  this.updateAssignment();
1381
1424
  }
1382
1425
  }
1383
- this.state = 348;
1426
+ this.state = 362;
1384
1427
  this.errorHandler.sync(this);
1385
1428
  _la = this.tokenStream.LA(1);
1386
1429
  }
1387
- this.state = 350;
1430
+ this.state = 364;
1388
1431
  this.errorHandler.sync(this);
1389
1432
  _la = this.tokenStream.LA(1);
1390
1433
  if (_la === 93) {
1391
1434
  {
1392
- this.state = 349;
1435
+ this.state = 363;
1393
1436
  this.whereClause();
1394
1437
  }
1395
1438
  }
@@ -1416,11 +1459,11 @@ export class GenericSqlParser extends SQLParserBase {
1416
1459
  try {
1417
1460
  this.enterOuterAlt(localContext, 1);
1418
1461
  {
1419
- this.state = 352;
1462
+ this.state = 366;
1420
1463
  this.columnRef();
1421
- this.state = 353;
1464
+ this.state = 367;
1422
1465
  this.match(GenericSqlParser.EQ);
1423
- this.state = 354;
1466
+ this.state = 368;
1424
1467
  this.expression();
1425
1468
  }
1426
1469
  }
@@ -1446,18 +1489,18 @@ export class GenericSqlParser extends SQLParserBase {
1446
1489
  try {
1447
1490
  this.enterOuterAlt(localContext, 1);
1448
1491
  {
1449
- this.state = 356;
1492
+ this.state = 370;
1450
1493
  this.match(GenericSqlParser.KW_DELETE);
1451
- this.state = 357;
1494
+ this.state = 371;
1452
1495
  this.match(GenericSqlParser.KW_FROM);
1453
- this.state = 358;
1496
+ this.state = 372;
1454
1497
  this.tableName();
1455
- this.state = 360;
1498
+ this.state = 374;
1456
1499
  this.errorHandler.sync(this);
1457
1500
  _la = this.tokenStream.LA(1);
1458
1501
  if (_la === 93) {
1459
1502
  {
1460
- this.state = 359;
1503
+ this.state = 373;
1461
1504
  this.whereClause();
1462
1505
  }
1463
1506
  }
@@ -1485,56 +1528,56 @@ export class GenericSqlParser extends SQLParserBase {
1485
1528
  try {
1486
1529
  this.enterOuterAlt(localContext, 1);
1487
1530
  {
1488
- this.state = 362;
1531
+ this.state = 376;
1489
1532
  this.match(GenericSqlParser.KW_CREATE);
1490
- this.state = 363;
1533
+ this.state = 377;
1491
1534
  this.match(GenericSqlParser.KW_TABLE);
1492
- this.state = 367;
1535
+ this.state = 381;
1493
1536
  this.errorHandler.sync(this);
1494
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context)) {
1537
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 43, this.context)) {
1495
1538
  case 1:
1496
1539
  {
1497
- this.state = 364;
1540
+ this.state = 378;
1498
1541
  this.match(GenericSqlParser.KW_IF);
1499
- this.state = 365;
1542
+ this.state = 379;
1500
1543
  this.match(GenericSqlParser.KW_NOT);
1501
- this.state = 366;
1544
+ this.state = 380;
1502
1545
  this.match(GenericSqlParser.KW_EXISTS);
1503
1546
  }
1504
1547
  break;
1505
1548
  }
1506
- this.state = 369;
1549
+ this.state = 383;
1507
1550
  this.tableNameCreate();
1508
- this.state = 370;
1551
+ this.state = 384;
1509
1552
  this.match(GenericSqlParser.T__1);
1510
- this.state = 371;
1553
+ this.state = 385;
1511
1554
  this.tableElement();
1512
- this.state = 376;
1555
+ this.state = 390;
1513
1556
  this.errorHandler.sync(this);
1514
1557
  _la = this.tokenStream.LA(1);
1515
1558
  while (_la === 1) {
1516
1559
  {
1517
1560
  {
1518
- this.state = 372;
1561
+ this.state = 386;
1519
1562
  this.match(GenericSqlParser.T__0);
1520
- this.state = 373;
1563
+ this.state = 387;
1521
1564
  this.tableElement();
1522
1565
  }
1523
1566
  }
1524
- this.state = 378;
1567
+ this.state = 392;
1525
1568
  this.errorHandler.sync(this);
1526
1569
  _la = this.tokenStream.LA(1);
1527
1570
  }
1528
- this.state = 379;
1571
+ this.state = 393;
1529
1572
  this.match(GenericSqlParser.T__2);
1530
- this.state = 382;
1573
+ this.state = 396;
1531
1574
  this.errorHandler.sync(this);
1532
- switch (this.interpreter.adaptivePredict(this.tokenStream, 43, this.context)) {
1575
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
1533
1576
  case 1:
1534
1577
  {
1535
- this.state = 380;
1578
+ this.state = 394;
1536
1579
  this.match(GenericSqlParser.KW_WITH);
1537
- this.state = 381;
1580
+ this.state = 395;
1538
1581
  this.properties();
1539
1582
  }
1540
1583
  break;
@@ -1560,20 +1603,20 @@ export class GenericSqlParser extends SQLParserBase {
1560
1603
  let localContext = new TableElementContext(this.context, this.state);
1561
1604
  this.enterRule(localContext, 60, GenericSqlParser.RULE_tableElement);
1562
1605
  try {
1563
- this.state = 386;
1606
+ this.state = 400;
1564
1607
  this.errorHandler.sync(this);
1565
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
1608
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context)) {
1566
1609
  case 1:
1567
1610
  this.enterOuterAlt(localContext, 1);
1568
1611
  {
1569
- this.state = 384;
1612
+ this.state = 398;
1570
1613
  this.columnDefinition();
1571
1614
  }
1572
1615
  break;
1573
1616
  case 2:
1574
1617
  this.enterOuterAlt(localContext, 2);
1575
1618
  {
1576
- this.state = 385;
1619
+ this.state = 399;
1577
1620
  this.tableConstraint();
1578
1621
  }
1579
1622
  break;
@@ -1601,40 +1644,40 @@ export class GenericSqlParser extends SQLParserBase {
1601
1644
  try {
1602
1645
  this.enterOuterAlt(localContext, 1);
1603
1646
  {
1604
- this.state = 388;
1605
- this.columnRef();
1606
- this.state = 389;
1607
- this.dataType();
1608
- this.state = 392;
1647
+ this.state = 402;
1648
+ this.columnRefCreate();
1649
+ this.state = 403;
1650
+ localContext._colType = this.dataType();
1651
+ this.state = 406;
1609
1652
  this.errorHandler.sync(this);
1610
1653
  _la = this.tokenStream.LA(1);
1611
1654
  if (_la === 61) {
1612
1655
  {
1613
- this.state = 390;
1656
+ this.state = 404;
1614
1657
  this.match(GenericSqlParser.KW_NOT);
1615
- this.state = 391;
1658
+ this.state = 405;
1616
1659
  this.match(GenericSqlParser.KW_NULL);
1617
1660
  }
1618
1661
  }
1619
- this.state = 396;
1662
+ this.state = 410;
1620
1663
  this.errorHandler.sync(this);
1621
1664
  _la = this.tokenStream.LA(1);
1622
1665
  if (_la === 27) {
1623
1666
  {
1624
- this.state = 394;
1667
+ this.state = 408;
1625
1668
  this.match(GenericSqlParser.KW_DEFAULT);
1626
- this.state = 395;
1669
+ this.state = 409;
1627
1670
  this.expression();
1628
1671
  }
1629
1672
  }
1630
- this.state = 400;
1673
+ this.state = 414;
1631
1674
  this.errorHandler.sync(this);
1632
1675
  _la = this.tokenStream.LA(1);
1633
1676
  if (_la === 71) {
1634
1677
  {
1635
- this.state = 398;
1678
+ this.state = 412;
1636
1679
  this.match(GenericSqlParser.KW_PRIMARY);
1637
- this.state = 399;
1680
+ this.state = 413;
1638
1681
  this.match(GenericSqlParser.KW_KEY);
1639
1682
  }
1640
1683
  }
@@ -1655,150 +1698,175 @@ export class GenericSqlParser extends SQLParserBase {
1655
1698
  }
1656
1699
  return localContext;
1657
1700
  }
1701
+ columnRefCreate() {
1702
+ let localContext = new ColumnRefCreateContext(this.context, this.state);
1703
+ this.enterRule(localContext, 64, GenericSqlParser.RULE_columnRefCreate);
1704
+ try {
1705
+ this.enterOuterAlt(localContext, 1);
1706
+ {
1707
+ this.state = 416;
1708
+ this.identifier();
1709
+ }
1710
+ }
1711
+ catch (re) {
1712
+ if (re instanceof antlr.RecognitionException) {
1713
+ localContext.exception = re;
1714
+ this.errorHandler.reportError(this, re);
1715
+ this.errorHandler.recover(this, re);
1716
+ }
1717
+ else {
1718
+ throw re;
1719
+ }
1720
+ }
1721
+ finally {
1722
+ this.exitRule();
1723
+ }
1724
+ return localContext;
1725
+ }
1658
1726
  tableConstraint() {
1659
1727
  let localContext = new TableConstraintContext(this.context, this.state);
1660
- this.enterRule(localContext, 64, GenericSqlParser.RULE_tableConstraint);
1728
+ this.enterRule(localContext, 66, GenericSqlParser.RULE_tableConstraint);
1661
1729
  let _la;
1662
1730
  try {
1663
1731
  this.enterOuterAlt(localContext, 1);
1664
1732
  {
1665
- this.state = 404;
1733
+ this.state = 420;
1666
1734
  this.errorHandler.sync(this);
1667
1735
  _la = this.tokenStream.LA(1);
1668
1736
  if (_la === 22) {
1669
1737
  {
1670
- this.state = 402;
1738
+ this.state = 418;
1671
1739
  this.match(GenericSqlParser.KW_CONSTRAINT);
1672
- this.state = 403;
1740
+ this.state = 419;
1673
1741
  this.identifier();
1674
1742
  }
1675
1743
  }
1676
- this.state = 461;
1744
+ this.state = 477;
1677
1745
  this.errorHandler.sync(this);
1678
1746
  switch (this.tokenStream.LA(1)) {
1679
1747
  case GenericSqlParser.KW_PRIMARY:
1680
1748
  {
1681
- this.state = 406;
1749
+ this.state = 422;
1682
1750
  this.match(GenericSqlParser.KW_PRIMARY);
1683
- this.state = 407;
1751
+ this.state = 423;
1684
1752
  this.match(GenericSqlParser.KW_KEY);
1685
- this.state = 408;
1753
+ this.state = 424;
1686
1754
  this.match(GenericSqlParser.T__1);
1687
- this.state = 409;
1755
+ this.state = 425;
1688
1756
  this.columnRef();
1689
- this.state = 414;
1757
+ this.state = 430;
1690
1758
  this.errorHandler.sync(this);
1691
1759
  _la = this.tokenStream.LA(1);
1692
1760
  while (_la === 1) {
1693
1761
  {
1694
1762
  {
1695
- this.state = 410;
1763
+ this.state = 426;
1696
1764
  this.match(GenericSqlParser.T__0);
1697
- this.state = 411;
1765
+ this.state = 427;
1698
1766
  this.columnRef();
1699
1767
  }
1700
1768
  }
1701
- this.state = 416;
1769
+ this.state = 432;
1702
1770
  this.errorHandler.sync(this);
1703
1771
  _la = this.tokenStream.LA(1);
1704
1772
  }
1705
- this.state = 417;
1773
+ this.state = 433;
1706
1774
  this.match(GenericSqlParser.T__2);
1707
1775
  }
1708
1776
  break;
1709
1777
  case GenericSqlParser.KW_UNIQUE:
1710
1778
  {
1711
- this.state = 419;
1779
+ this.state = 435;
1712
1780
  this.match(GenericSqlParser.KW_UNIQUE);
1713
- this.state = 420;
1781
+ this.state = 436;
1714
1782
  this.match(GenericSqlParser.T__1);
1715
- this.state = 421;
1783
+ this.state = 437;
1716
1784
  this.columnRef();
1717
- this.state = 426;
1785
+ this.state = 442;
1718
1786
  this.errorHandler.sync(this);
1719
1787
  _la = this.tokenStream.LA(1);
1720
1788
  while (_la === 1) {
1721
1789
  {
1722
1790
  {
1723
- this.state = 422;
1791
+ this.state = 438;
1724
1792
  this.match(GenericSqlParser.T__0);
1725
- this.state = 423;
1793
+ this.state = 439;
1726
1794
  this.columnRef();
1727
1795
  }
1728
1796
  }
1729
- this.state = 428;
1797
+ this.state = 444;
1730
1798
  this.errorHandler.sync(this);
1731
1799
  _la = this.tokenStream.LA(1);
1732
1800
  }
1733
- this.state = 429;
1801
+ this.state = 445;
1734
1802
  this.match(GenericSqlParser.T__2);
1735
1803
  }
1736
1804
  break;
1737
1805
  case GenericSqlParser.KW_CHECK:
1738
1806
  {
1739
- this.state = 431;
1807
+ this.state = 447;
1740
1808
  this.match(GenericSqlParser.KW_CHECK);
1741
- this.state = 432;
1809
+ this.state = 448;
1742
1810
  this.match(GenericSqlParser.T__1);
1743
- this.state = 433;
1811
+ this.state = 449;
1744
1812
  this.expression();
1745
- this.state = 434;
1813
+ this.state = 450;
1746
1814
  this.match(GenericSqlParser.T__2);
1747
1815
  }
1748
1816
  break;
1749
1817
  case GenericSqlParser.KW_FOREIGN:
1750
1818
  {
1751
- this.state = 436;
1819
+ this.state = 452;
1752
1820
  this.match(GenericSqlParser.KW_FOREIGN);
1753
- this.state = 437;
1821
+ this.state = 453;
1754
1822
  this.match(GenericSqlParser.KW_KEY);
1755
- this.state = 438;
1823
+ this.state = 454;
1756
1824
  this.match(GenericSqlParser.T__1);
1757
- this.state = 439;
1825
+ this.state = 455;
1758
1826
  this.columnRef();
1759
- this.state = 444;
1827
+ this.state = 460;
1760
1828
  this.errorHandler.sync(this);
1761
1829
  _la = this.tokenStream.LA(1);
1762
1830
  while (_la === 1) {
1763
1831
  {
1764
1832
  {
1765
- this.state = 440;
1833
+ this.state = 456;
1766
1834
  this.match(GenericSqlParser.T__0);
1767
- this.state = 441;
1835
+ this.state = 457;
1768
1836
  this.columnRef();
1769
1837
  }
1770
1838
  }
1771
- this.state = 446;
1839
+ this.state = 462;
1772
1840
  this.errorHandler.sync(this);
1773
1841
  _la = this.tokenStream.LA(1);
1774
1842
  }
1775
- this.state = 447;
1843
+ this.state = 463;
1776
1844
  this.match(GenericSqlParser.T__2);
1777
- this.state = 448;
1845
+ this.state = 464;
1778
1846
  this.match(GenericSqlParser.KW_REFERENCES);
1779
- this.state = 449;
1847
+ this.state = 465;
1780
1848
  this.tableName();
1781
- this.state = 450;
1849
+ this.state = 466;
1782
1850
  this.match(GenericSqlParser.T__1);
1783
- this.state = 451;
1851
+ this.state = 467;
1784
1852
  this.columnRef();
1785
- this.state = 456;
1853
+ this.state = 472;
1786
1854
  this.errorHandler.sync(this);
1787
1855
  _la = this.tokenStream.LA(1);
1788
1856
  while (_la === 1) {
1789
1857
  {
1790
1858
  {
1791
- this.state = 452;
1859
+ this.state = 468;
1792
1860
  this.match(GenericSqlParser.T__0);
1793
- this.state = 453;
1861
+ this.state = 469;
1794
1862
  this.columnRef();
1795
1863
  }
1796
1864
  }
1797
- this.state = 458;
1865
+ this.state = 474;
1798
1866
  this.errorHandler.sync(this);
1799
1867
  _la = this.tokenStream.LA(1);
1800
1868
  }
1801
- this.state = 459;
1869
+ this.state = 475;
1802
1870
  this.match(GenericSqlParser.T__2);
1803
1871
  }
1804
1872
  break;
@@ -1824,114 +1892,114 @@ export class GenericSqlParser extends SQLParserBase {
1824
1892
  }
1825
1893
  alterTableStatement() {
1826
1894
  let localContext = new AlterTableStatementContext(this.context, this.state);
1827
- this.enterRule(localContext, 66, GenericSqlParser.RULE_alterTableStatement);
1895
+ this.enterRule(localContext, 68, GenericSqlParser.RULE_alterTableStatement);
1828
1896
  try {
1829
1897
  this.enterOuterAlt(localContext, 1);
1830
1898
  {
1831
- this.state = 463;
1899
+ this.state = 479;
1832
1900
  this.match(GenericSqlParser.KW_ALTER);
1833
- this.state = 464;
1901
+ this.state = 480;
1834
1902
  this.match(GenericSqlParser.KW_TABLE);
1835
- this.state = 467;
1903
+ this.state = 483;
1836
1904
  this.errorHandler.sync(this);
1837
- switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
1905
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
1838
1906
  case 1:
1839
1907
  {
1840
- this.state = 465;
1908
+ this.state = 481;
1841
1909
  this.match(GenericSqlParser.KW_IF);
1842
- this.state = 466;
1910
+ this.state = 482;
1843
1911
  this.match(GenericSqlParser.KW_EXISTS);
1844
1912
  }
1845
1913
  break;
1846
1914
  }
1847
- this.state = 469;
1915
+ this.state = 485;
1848
1916
  this.tableName();
1849
- this.state = 501;
1917
+ this.state = 517;
1850
1918
  this.errorHandler.sync(this);
1851
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
1919
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
1852
1920
  case 1:
1853
1921
  {
1854
- this.state = 470;
1922
+ this.state = 486;
1855
1923
  this.match(GenericSqlParser.KW_ADD);
1856
- this.state = 471;
1924
+ this.state = 487;
1857
1925
  this.match(GenericSqlParser.KW_COLUMN);
1858
- this.state = 475;
1926
+ this.state = 491;
1859
1927
  this.errorHandler.sync(this);
1860
- switch (this.interpreter.adaptivePredict(this.tokenStream, 55, this.context)) {
1928
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
1861
1929
  case 1:
1862
1930
  {
1863
- this.state = 472;
1931
+ this.state = 488;
1864
1932
  this.match(GenericSqlParser.KW_IF);
1865
- this.state = 473;
1933
+ this.state = 489;
1866
1934
  this.match(GenericSqlParser.KW_NOT);
1867
- this.state = 474;
1935
+ this.state = 490;
1868
1936
  this.match(GenericSqlParser.KW_EXISTS);
1869
1937
  }
1870
1938
  break;
1871
1939
  }
1872
- this.state = 477;
1940
+ this.state = 493;
1873
1941
  this.columnDefinition();
1874
1942
  }
1875
1943
  break;
1876
1944
  case 2:
1877
1945
  {
1878
- this.state = 478;
1946
+ this.state = 494;
1879
1947
  this.match(GenericSqlParser.KW_DROP);
1880
- this.state = 479;
1948
+ this.state = 495;
1881
1949
  this.match(GenericSqlParser.KW_COLUMN);
1882
- this.state = 482;
1950
+ this.state = 498;
1883
1951
  this.errorHandler.sync(this);
1884
- switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
1952
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
1885
1953
  case 1:
1886
1954
  {
1887
- this.state = 480;
1955
+ this.state = 496;
1888
1956
  this.match(GenericSqlParser.KW_IF);
1889
- this.state = 481;
1957
+ this.state = 497;
1890
1958
  this.match(GenericSqlParser.KW_EXISTS);
1891
1959
  }
1892
1960
  break;
1893
1961
  }
1894
- this.state = 484;
1962
+ this.state = 500;
1895
1963
  this.columnRef();
1896
1964
  }
1897
1965
  break;
1898
1966
  case 3:
1899
1967
  {
1900
- this.state = 485;
1968
+ this.state = 501;
1901
1969
  this.match(GenericSqlParser.KW_RENAME);
1902
- this.state = 486;
1970
+ this.state = 502;
1903
1971
  this.match(GenericSqlParser.KW_TO);
1904
- this.state = 487;
1972
+ this.state = 503;
1905
1973
  this.tableNameCreate();
1906
1974
  }
1907
1975
  break;
1908
1976
  case 4:
1909
1977
  {
1910
- this.state = 488;
1978
+ this.state = 504;
1911
1979
  this.match(GenericSqlParser.KW_ALTER);
1912
- this.state = 489;
1980
+ this.state = 505;
1913
1981
  this.match(GenericSqlParser.KW_COLUMN);
1914
- this.state = 490;
1982
+ this.state = 506;
1915
1983
  this.columnRef();
1916
- this.state = 491;
1984
+ this.state = 507;
1917
1985
  this.match(GenericSqlParser.KW_SET);
1918
- this.state = 492;
1986
+ this.state = 508;
1919
1987
  this.match(GenericSqlParser.KW_DEFAULT);
1920
- this.state = 493;
1988
+ this.state = 509;
1921
1989
  this.expression();
1922
1990
  }
1923
1991
  break;
1924
1992
  case 5:
1925
1993
  {
1926
- this.state = 495;
1994
+ this.state = 511;
1927
1995
  this.match(GenericSqlParser.KW_ALTER);
1928
- this.state = 496;
1996
+ this.state = 512;
1929
1997
  this.match(GenericSqlParser.KW_COLUMN);
1930
- this.state = 497;
1998
+ this.state = 513;
1931
1999
  this.columnRef();
1932
- this.state = 498;
2000
+ this.state = 514;
1933
2001
  this.match(GenericSqlParser.KW_DROP);
1934
- this.state = 499;
2002
+ this.state = 515;
1935
2003
  this.match(GenericSqlParser.KW_DEFAULT);
1936
2004
  }
1937
2005
  break;
@@ -1955,27 +2023,27 @@ export class GenericSqlParser extends SQLParserBase {
1955
2023
  }
1956
2024
  dropTableStatement() {
1957
2025
  let localContext = new DropTableStatementContext(this.context, this.state);
1958
- this.enterRule(localContext, 68, GenericSqlParser.RULE_dropTableStatement);
2026
+ this.enterRule(localContext, 70, GenericSqlParser.RULE_dropTableStatement);
1959
2027
  try {
1960
2028
  this.enterOuterAlt(localContext, 1);
1961
2029
  {
1962
- this.state = 503;
2030
+ this.state = 519;
1963
2031
  this.match(GenericSqlParser.KW_DROP);
1964
- this.state = 504;
2032
+ this.state = 520;
1965
2033
  this.match(GenericSqlParser.KW_TABLE);
1966
- this.state = 507;
2034
+ this.state = 523;
1967
2035
  this.errorHandler.sync(this);
1968
- switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2036
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
1969
2037
  case 1:
1970
2038
  {
1971
- this.state = 505;
2039
+ this.state = 521;
1972
2040
  this.match(GenericSqlParser.KW_IF);
1973
- this.state = 506;
2041
+ this.state = 522;
1974
2042
  this.match(GenericSqlParser.KW_EXISTS);
1975
2043
  }
1976
2044
  break;
1977
2045
  }
1978
- this.state = 509;
2046
+ this.state = 525;
1979
2047
  this.tableName();
1980
2048
  }
1981
2049
  }
@@ -1996,11 +2064,11 @@ export class GenericSqlParser extends SQLParserBase {
1996
2064
  }
1997
2065
  expression() {
1998
2066
  let localContext = new ExpressionContext(this.context, this.state);
1999
- this.enterRule(localContext, 70, GenericSqlParser.RULE_expression);
2067
+ this.enterRule(localContext, 72, GenericSqlParser.RULE_expression);
2000
2068
  try {
2001
2069
  this.enterOuterAlt(localContext, 1);
2002
2070
  {
2003
- this.state = 511;
2071
+ this.state = 527;
2004
2072
  this.booleanExpression(0);
2005
2073
  }
2006
2074
  }
@@ -2027,13 +2095,13 @@ export class GenericSqlParser extends SQLParserBase {
2027
2095
  let parentState = this.state;
2028
2096
  let localContext = new BooleanExpressionContext(this.context, parentState);
2029
2097
  let previousContext = localContext;
2030
- let _startState = 72;
2031
- this.enterRecursionRule(localContext, 72, GenericSqlParser.RULE_booleanExpression, _p);
2098
+ let _startState = 74;
2099
+ this.enterRecursionRule(localContext, 74, GenericSqlParser.RULE_booleanExpression, _p);
2032
2100
  try {
2033
2101
  let alternative;
2034
2102
  this.enterOuterAlt(localContext, 1);
2035
2103
  {
2036
- this.state = 517;
2104
+ this.state = 533;
2037
2105
  this.errorHandler.sync(this);
2038
2106
  switch (this.tokenStream.LA(1)) {
2039
2107
  case GenericSqlParser.T__1:
@@ -2099,7 +2167,7 @@ export class GenericSqlParser extends SQLParserBase {
2099
2167
  localContext = new PredicatedContext(localContext);
2100
2168
  this.context = localContext;
2101
2169
  previousContext = localContext;
2102
- this.state = 514;
2170
+ this.state = 530;
2103
2171
  this.predicatedExpression();
2104
2172
  }
2105
2173
  break;
@@ -2108,9 +2176,9 @@ export class GenericSqlParser extends SQLParserBase {
2108
2176
  localContext = new NotExpressionContext(localContext);
2109
2177
  this.context = localContext;
2110
2178
  previousContext = localContext;
2111
- this.state = 515;
2179
+ this.state = 531;
2112
2180
  this.match(GenericSqlParser.KW_NOT);
2113
- this.state = 516;
2181
+ this.state = 532;
2114
2182
  this.booleanExpression(3);
2115
2183
  }
2116
2184
  break;
@@ -2118,9 +2186,9 @@ export class GenericSqlParser extends SQLParserBase {
2118
2186
  throw new antlr.NoViableAltException(this);
2119
2187
  }
2120
2188
  this.context.stop = this.tokenStream.LT(-1);
2121
- this.state = 527;
2189
+ this.state = 543;
2122
2190
  this.errorHandler.sync(this);
2123
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 61, this.context);
2191
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2124
2192
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2125
2193
  if (alternative === 1) {
2126
2194
  if (this._parseListeners != null) {
@@ -2128,21 +2196,21 @@ export class GenericSqlParser extends SQLParserBase {
2128
2196
  }
2129
2197
  previousContext = localContext;
2130
2198
  {
2131
- this.state = 525;
2199
+ this.state = 541;
2132
2200
  this.errorHandler.sync(this);
2133
- switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
2201
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2134
2202
  case 1:
2135
2203
  {
2136
2204
  localContext = new AndExpressionContext(new BooleanExpressionContext(parentContext, parentState));
2137
2205
  localContext._left = previousContext;
2138
2206
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_booleanExpression);
2139
- this.state = 519;
2207
+ this.state = 535;
2140
2208
  if (!(this.precpred(this.context, 2))) {
2141
2209
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
2142
2210
  }
2143
- this.state = 520;
2211
+ this.state = 536;
2144
2212
  this.match(GenericSqlParser.KW_AND);
2145
- this.state = 521;
2213
+ this.state = 537;
2146
2214
  localContext._right = this.booleanExpression(3);
2147
2215
  }
2148
2216
  break;
@@ -2151,22 +2219,22 @@ export class GenericSqlParser extends SQLParserBase {
2151
2219
  localContext = new OrExpressionContext(new BooleanExpressionContext(parentContext, parentState));
2152
2220
  localContext._left = previousContext;
2153
2221
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_booleanExpression);
2154
- this.state = 522;
2222
+ this.state = 538;
2155
2223
  if (!(this.precpred(this.context, 1))) {
2156
2224
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2157
2225
  }
2158
- this.state = 523;
2226
+ this.state = 539;
2159
2227
  this.match(GenericSqlParser.KW_OR);
2160
- this.state = 524;
2228
+ this.state = 540;
2161
2229
  localContext._right = this.booleanExpression(2);
2162
2230
  }
2163
2231
  break;
2164
2232
  }
2165
2233
  }
2166
2234
  }
2167
- this.state = 529;
2235
+ this.state = 545;
2168
2236
  this.errorHandler.sync(this);
2169
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 61, this.context);
2237
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2170
2238
  }
2171
2239
  }
2172
2240
  }
@@ -2187,18 +2255,18 @@ export class GenericSqlParser extends SQLParserBase {
2187
2255
  }
2188
2256
  predicatedExpression() {
2189
2257
  let localContext = new PredicatedExpressionContext(this.context, this.state);
2190
- this.enterRule(localContext, 74, GenericSqlParser.RULE_predicatedExpression);
2258
+ this.enterRule(localContext, 76, GenericSqlParser.RULE_predicatedExpression);
2191
2259
  try {
2192
2260
  this.enterOuterAlt(localContext, 1);
2193
2261
  {
2194
- this.state = 530;
2262
+ this.state = 546;
2195
2263
  this.valueExpression(0);
2196
- this.state = 532;
2264
+ this.state = 548;
2197
2265
  this.errorHandler.sync(this);
2198
- switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2266
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2199
2267
  case 1:
2200
2268
  {
2201
- this.state = 531;
2269
+ this.state = 547;
2202
2270
  this.predicate();
2203
2271
  }
2204
2272
  break;
@@ -2222,19 +2290,19 @@ export class GenericSqlParser extends SQLParserBase {
2222
2290
  }
2223
2291
  predicate() {
2224
2292
  let localContext = new PredicateContext(this.context, this.state);
2225
- this.enterRule(localContext, 76, GenericSqlParser.RULE_predicate);
2293
+ this.enterRule(localContext, 78, GenericSqlParser.RULE_predicate);
2226
2294
  let _la;
2227
2295
  try {
2228
- this.state = 589;
2296
+ this.state = 605;
2229
2297
  this.errorHandler.sync(this);
2230
- switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context)) {
2298
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
2231
2299
  case 1:
2232
2300
  localContext = new ComparisonPredicateContext(localContext);
2233
2301
  this.enterOuterAlt(localContext, 1);
2234
2302
  {
2235
- this.state = 534;
2303
+ this.state = 550;
2236
2304
  this.comparisonOperator();
2237
- this.state = 535;
2305
+ this.state = 551;
2238
2306
  localContext._right = this.valueExpression(0);
2239
2307
  }
2240
2308
  break;
@@ -2242,38 +2310,38 @@ export class GenericSqlParser extends SQLParserBase {
2242
2310
  localContext = new InPredicateContext(localContext);
2243
2311
  this.enterOuterAlt(localContext, 2);
2244
2312
  {
2245
- this.state = 538;
2313
+ this.state = 554;
2246
2314
  this.errorHandler.sync(this);
2247
2315
  _la = this.tokenStream.LA(1);
2248
2316
  if (_la === 61) {
2249
2317
  {
2250
- this.state = 537;
2318
+ this.state = 553;
2251
2319
  this.match(GenericSqlParser.KW_NOT);
2252
2320
  }
2253
2321
  }
2254
- this.state = 540;
2322
+ this.state = 556;
2255
2323
  this.match(GenericSqlParser.KW_IN);
2256
- this.state = 541;
2324
+ this.state = 557;
2257
2325
  this.match(GenericSqlParser.T__1);
2258
- this.state = 542;
2326
+ this.state = 558;
2259
2327
  this.expression();
2260
- this.state = 547;
2328
+ this.state = 563;
2261
2329
  this.errorHandler.sync(this);
2262
2330
  _la = this.tokenStream.LA(1);
2263
2331
  while (_la === 1) {
2264
2332
  {
2265
2333
  {
2266
- this.state = 543;
2334
+ this.state = 559;
2267
2335
  this.match(GenericSqlParser.T__0);
2268
- this.state = 544;
2336
+ this.state = 560;
2269
2337
  this.expression();
2270
2338
  }
2271
2339
  }
2272
- this.state = 549;
2340
+ this.state = 565;
2273
2341
  this.errorHandler.sync(this);
2274
2342
  _la = this.tokenStream.LA(1);
2275
2343
  }
2276
- this.state = 550;
2344
+ this.state = 566;
2277
2345
  this.match(GenericSqlParser.T__2);
2278
2346
  }
2279
2347
  break;
@@ -2281,22 +2349,22 @@ export class GenericSqlParser extends SQLParserBase {
2281
2349
  localContext = new InSubqueryPredicateContext(localContext);
2282
2350
  this.enterOuterAlt(localContext, 3);
2283
2351
  {
2284
- this.state = 553;
2352
+ this.state = 569;
2285
2353
  this.errorHandler.sync(this);
2286
2354
  _la = this.tokenStream.LA(1);
2287
2355
  if (_la === 61) {
2288
2356
  {
2289
- this.state = 552;
2357
+ this.state = 568;
2290
2358
  this.match(GenericSqlParser.KW_NOT);
2291
2359
  }
2292
2360
  }
2293
- this.state = 555;
2361
+ this.state = 571;
2294
2362
  this.match(GenericSqlParser.KW_IN);
2295
- this.state = 556;
2363
+ this.state = 572;
2296
2364
  this.match(GenericSqlParser.T__1);
2297
- this.state = 557;
2365
+ this.state = 573;
2298
2366
  this.queryStatement();
2299
- this.state = 558;
2367
+ this.state = 574;
2300
2368
  this.match(GenericSqlParser.T__2);
2301
2369
  }
2302
2370
  break;
@@ -2304,22 +2372,22 @@ export class GenericSqlParser extends SQLParserBase {
2304
2372
  localContext = new BetweenPredicateContext(localContext);
2305
2373
  this.enterOuterAlt(localContext, 4);
2306
2374
  {
2307
- this.state = 561;
2375
+ this.state = 577;
2308
2376
  this.errorHandler.sync(this);
2309
2377
  _la = this.tokenStream.LA(1);
2310
2378
  if (_la === 61) {
2311
2379
  {
2312
- this.state = 560;
2380
+ this.state = 576;
2313
2381
  this.match(GenericSqlParser.KW_NOT);
2314
2382
  }
2315
2383
  }
2316
- this.state = 563;
2384
+ this.state = 579;
2317
2385
  this.match(GenericSqlParser.KW_BETWEEN);
2318
- this.state = 564;
2386
+ this.state = 580;
2319
2387
  localContext._lower = this.valueExpression(0);
2320
- this.state = 565;
2388
+ this.state = 581;
2321
2389
  this.match(GenericSqlParser.KW_AND);
2322
- this.state = 566;
2390
+ this.state = 582;
2323
2391
  localContext._upper = this.valueExpression(0);
2324
2392
  }
2325
2393
  break;
@@ -2327,27 +2395,27 @@ export class GenericSqlParser extends SQLParserBase {
2327
2395
  localContext = new LikePredicateContext(localContext);
2328
2396
  this.enterOuterAlt(localContext, 5);
2329
2397
  {
2330
- this.state = 569;
2398
+ this.state = 585;
2331
2399
  this.errorHandler.sync(this);
2332
2400
  _la = this.tokenStream.LA(1);
2333
2401
  if (_la === 61) {
2334
2402
  {
2335
- this.state = 568;
2403
+ this.state = 584;
2336
2404
  this.match(GenericSqlParser.KW_NOT);
2337
2405
  }
2338
2406
  }
2339
- this.state = 571;
2407
+ this.state = 587;
2340
2408
  this.match(GenericSqlParser.KW_LIKE);
2341
- this.state = 572;
2409
+ this.state = 588;
2342
2410
  localContext._pattern = this.valueExpression(0);
2343
- this.state = 575;
2411
+ this.state = 591;
2344
2412
  this.errorHandler.sync(this);
2345
- switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
2413
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
2346
2414
  case 1:
2347
2415
  {
2348
- this.state = 573;
2416
+ this.state = 589;
2349
2417
  this.match(GenericSqlParser.KW_ESCAPE);
2350
- this.state = 574;
2418
+ this.state = 590;
2351
2419
  localContext._escape = this.valueExpression(0);
2352
2420
  }
2353
2421
  break;
@@ -2358,18 +2426,18 @@ export class GenericSqlParser extends SQLParserBase {
2358
2426
  localContext = new NullPredicateContext(localContext);
2359
2427
  this.enterOuterAlt(localContext, 6);
2360
2428
  {
2361
- this.state = 577;
2429
+ this.state = 593;
2362
2430
  this.match(GenericSqlParser.KW_IS);
2363
- this.state = 579;
2431
+ this.state = 595;
2364
2432
  this.errorHandler.sync(this);
2365
2433
  _la = this.tokenStream.LA(1);
2366
2434
  if (_la === 61) {
2367
2435
  {
2368
- this.state = 578;
2436
+ this.state = 594;
2369
2437
  this.match(GenericSqlParser.KW_NOT);
2370
2438
  }
2371
2439
  }
2372
- this.state = 581;
2440
+ this.state = 597;
2373
2441
  this.match(GenericSqlParser.KW_NULL);
2374
2442
  }
2375
2443
  break;
@@ -2377,22 +2445,22 @@ export class GenericSqlParser extends SQLParserBase {
2377
2445
  localContext = new DistinctFromPredicateContext(localContext);
2378
2446
  this.enterOuterAlt(localContext, 7);
2379
2447
  {
2380
- this.state = 582;
2448
+ this.state = 598;
2381
2449
  this.match(GenericSqlParser.KW_IS);
2382
- this.state = 584;
2450
+ this.state = 600;
2383
2451
  this.errorHandler.sync(this);
2384
2452
  _la = this.tokenStream.LA(1);
2385
2453
  if (_la === 61) {
2386
2454
  {
2387
- this.state = 583;
2455
+ this.state = 599;
2388
2456
  this.match(GenericSqlParser.KW_NOT);
2389
2457
  }
2390
2458
  }
2391
- this.state = 586;
2459
+ this.state = 602;
2392
2460
  this.match(GenericSqlParser.KW_DISTINCT);
2393
- this.state = 587;
2461
+ this.state = 603;
2394
2462
  this.match(GenericSqlParser.KW_FROM);
2395
- this.state = 588;
2463
+ this.state = 604;
2396
2464
  localContext._right = this.valueExpression(0);
2397
2465
  }
2398
2466
  break;
@@ -2415,12 +2483,12 @@ export class GenericSqlParser extends SQLParserBase {
2415
2483
  }
2416
2484
  comparisonOperator() {
2417
2485
  let localContext = new ComparisonOperatorContext(this.context, this.state);
2418
- this.enterRule(localContext, 78, GenericSqlParser.RULE_comparisonOperator);
2486
+ this.enterRule(localContext, 80, GenericSqlParser.RULE_comparisonOperator);
2419
2487
  let _la;
2420
2488
  try {
2421
2489
  this.enterOuterAlt(localContext, 1);
2422
2490
  {
2423
- this.state = 591;
2491
+ this.state = 607;
2424
2492
  _la = this.tokenStream.LA(1);
2425
2493
  if (!(((((_la - 95)) & ~0x1F) === 0 && ((1 << (_la - 95)) & 63) !== 0))) {
2426
2494
  this.errorHandler.recoverInline(this);
@@ -2454,14 +2522,14 @@ export class GenericSqlParser extends SQLParserBase {
2454
2522
  let parentState = this.state;
2455
2523
  let localContext = new ValueExpressionContext(this.context, parentState);
2456
2524
  let previousContext = localContext;
2457
- let _startState = 80;
2458
- this.enterRecursionRule(localContext, 80, GenericSqlParser.RULE_valueExpression, _p);
2525
+ let _startState = 82;
2526
+ this.enterRecursionRule(localContext, 82, GenericSqlParser.RULE_valueExpression, _p);
2459
2527
  let _la;
2460
2528
  try {
2461
2529
  let alternative;
2462
2530
  this.enterOuterAlt(localContext, 1);
2463
2531
  {
2464
- this.state = 597;
2532
+ this.state = 613;
2465
2533
  this.errorHandler.sync(this);
2466
2534
  switch (this.tokenStream.LA(1)) {
2467
2535
  case GenericSqlParser.T__1:
@@ -2525,7 +2593,7 @@ export class GenericSqlParser extends SQLParserBase {
2525
2593
  localContext = new ValueExpressionDefaultContext(localContext);
2526
2594
  this.context = localContext;
2527
2595
  previousContext = localContext;
2528
- this.state = 594;
2596
+ this.state = 610;
2529
2597
  this.primaryExpression();
2530
2598
  }
2531
2599
  break;
@@ -2535,7 +2603,7 @@ export class GenericSqlParser extends SQLParserBase {
2535
2603
  localContext = new ArithmeticUnaryContext(localContext);
2536
2604
  this.context = localContext;
2537
2605
  previousContext = localContext;
2538
- this.state = 595;
2606
+ this.state = 611;
2539
2607
  localContext._operator = this.tokenStream.LT(1);
2540
2608
  _la = this.tokenStream.LA(1);
2541
2609
  if (!(_la === 101 || _la === 102)) {
@@ -2545,7 +2613,7 @@ export class GenericSqlParser extends SQLParserBase {
2545
2613
  this.errorHandler.reportMatch(this);
2546
2614
  this.consume();
2547
2615
  }
2548
- this.state = 596;
2616
+ this.state = 612;
2549
2617
  this.valueExpression(4);
2550
2618
  }
2551
2619
  break;
@@ -2553,9 +2621,9 @@ export class GenericSqlParser extends SQLParserBase {
2553
2621
  throw new antlr.NoViableAltException(this);
2554
2622
  }
2555
2623
  this.context.stop = this.tokenStream.LT(-1);
2556
- this.state = 610;
2624
+ this.state = 626;
2557
2625
  this.errorHandler.sync(this);
2558
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
2626
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 76, this.context);
2559
2627
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2560
2628
  if (alternative === 1) {
2561
2629
  if (this._parseListeners != null) {
@@ -2563,19 +2631,19 @@ export class GenericSqlParser extends SQLParserBase {
2563
2631
  }
2564
2632
  previousContext = localContext;
2565
2633
  {
2566
- this.state = 608;
2634
+ this.state = 624;
2567
2635
  this.errorHandler.sync(this);
2568
- switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
2636
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
2569
2637
  case 1:
2570
2638
  {
2571
2639
  localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState));
2572
2640
  localContext._left = previousContext;
2573
2641
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2574
- this.state = 599;
2642
+ this.state = 615;
2575
2643
  if (!(this.precpred(this.context, 3))) {
2576
2644
  throw this.createFailedPredicateException("this.precpred(this.context, 3)");
2577
2645
  }
2578
- this.state = 600;
2646
+ this.state = 616;
2579
2647
  localContext._operator = this.tokenStream.LT(1);
2580
2648
  _la = this.tokenStream.LA(1);
2581
2649
  if (!(((((_la - 103)) & ~0x1F) === 0 && ((1 << (_la - 103)) & 7) !== 0))) {
@@ -2585,7 +2653,7 @@ export class GenericSqlParser extends SQLParserBase {
2585
2653
  this.errorHandler.reportMatch(this);
2586
2654
  this.consume();
2587
2655
  }
2588
- this.state = 601;
2656
+ this.state = 617;
2589
2657
  localContext._right = this.valueExpression(4);
2590
2658
  }
2591
2659
  break;
@@ -2594,11 +2662,11 @@ export class GenericSqlParser extends SQLParserBase {
2594
2662
  localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState));
2595
2663
  localContext._left = previousContext;
2596
2664
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2597
- this.state = 602;
2665
+ this.state = 618;
2598
2666
  if (!(this.precpred(this.context, 2))) {
2599
2667
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
2600
2668
  }
2601
- this.state = 603;
2669
+ this.state = 619;
2602
2670
  localContext._operator = this.tokenStream.LT(1);
2603
2671
  _la = this.tokenStream.LA(1);
2604
2672
  if (!(_la === 101 || _la === 102)) {
@@ -2608,7 +2676,7 @@ export class GenericSqlParser extends SQLParserBase {
2608
2676
  this.errorHandler.reportMatch(this);
2609
2677
  this.consume();
2610
2678
  }
2611
- this.state = 604;
2679
+ this.state = 620;
2612
2680
  localContext._right = this.valueExpression(3);
2613
2681
  }
2614
2682
  break;
@@ -2617,22 +2685,22 @@ export class GenericSqlParser extends SQLParserBase {
2617
2685
  localContext = new ConcatenationContext(new ValueExpressionContext(parentContext, parentState));
2618
2686
  localContext._left = previousContext;
2619
2687
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2620
- this.state = 605;
2688
+ this.state = 621;
2621
2689
  if (!(this.precpred(this.context, 1))) {
2622
2690
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2623
2691
  }
2624
- this.state = 606;
2692
+ this.state = 622;
2625
2693
  this.match(GenericSqlParser.CONCAT);
2626
- this.state = 607;
2694
+ this.state = 623;
2627
2695
  localContext._right = this.valueExpression(2);
2628
2696
  }
2629
2697
  break;
2630
2698
  }
2631
2699
  }
2632
2700
  }
2633
- this.state = 612;
2701
+ this.state = 628;
2634
2702
  this.errorHandler.sync(this);
2635
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
2703
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 76, this.context);
2636
2704
  }
2637
2705
  }
2638
2706
  }
@@ -2653,17 +2721,17 @@ export class GenericSqlParser extends SQLParserBase {
2653
2721
  }
2654
2722
  primaryExpression() {
2655
2723
  let localContext = new PrimaryExpressionContext(this.context, this.state);
2656
- this.enterRule(localContext, 82, GenericSqlParser.RULE_primaryExpression);
2724
+ this.enterRule(localContext, 84, GenericSqlParser.RULE_primaryExpression);
2657
2725
  let _la;
2658
2726
  try {
2659
- this.state = 693;
2727
+ this.state = 709;
2660
2728
  this.errorHandler.sync(this);
2661
- switch (this.interpreter.adaptivePredict(this.tokenStream, 83, this.context)) {
2729
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context)) {
2662
2730
  case 1:
2663
2731
  localContext = new LiteralExpressionContext(localContext);
2664
2732
  this.enterOuterAlt(localContext, 1);
2665
2733
  {
2666
- this.state = 613;
2734
+ this.state = 629;
2667
2735
  this.literal();
2668
2736
  }
2669
2737
  break;
@@ -2671,46 +2739,46 @@ export class GenericSqlParser extends SQLParserBase {
2671
2739
  localContext = new FunctionCallContext(localContext);
2672
2740
  this.enterOuterAlt(localContext, 2);
2673
2741
  {
2674
- this.state = 614;
2675
- this.qualifiedName();
2676
- this.state = 615;
2742
+ this.state = 630;
2743
+ this.functionName();
2744
+ this.state = 631;
2677
2745
  this.match(GenericSqlParser.T__1);
2678
- this.state = 627;
2746
+ this.state = 643;
2679
2747
  this.errorHandler.sync(this);
2680
2748
  _la = this.tokenStream.LA(1);
2681
2749
  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)) {
2682
2750
  {
2683
- this.state = 617;
2751
+ this.state = 633;
2684
2752
  this.errorHandler.sync(this);
2685
- switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
2753
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
2686
2754
  case 1:
2687
2755
  {
2688
- this.state = 616;
2756
+ this.state = 632;
2689
2757
  this.setQuantifier();
2690
2758
  }
2691
2759
  break;
2692
2760
  }
2693
- this.state = 619;
2761
+ this.state = 635;
2694
2762
  this.expression();
2695
- this.state = 624;
2763
+ this.state = 640;
2696
2764
  this.errorHandler.sync(this);
2697
2765
  _la = this.tokenStream.LA(1);
2698
2766
  while (_la === 1) {
2699
2767
  {
2700
2768
  {
2701
- this.state = 620;
2769
+ this.state = 636;
2702
2770
  this.match(GenericSqlParser.T__0);
2703
- this.state = 621;
2771
+ this.state = 637;
2704
2772
  this.expression();
2705
2773
  }
2706
2774
  }
2707
- this.state = 626;
2775
+ this.state = 642;
2708
2776
  this.errorHandler.sync(this);
2709
2777
  _la = this.tokenStream.LA(1);
2710
2778
  }
2711
2779
  }
2712
2780
  }
2713
- this.state = 629;
2781
+ this.state = 645;
2714
2782
  this.match(GenericSqlParser.T__2);
2715
2783
  }
2716
2784
  break;
@@ -2718,34 +2786,34 @@ export class GenericSqlParser extends SQLParserBase {
2718
2786
  localContext = new SearchedCaseExpressionContext(localContext);
2719
2787
  this.enterOuterAlt(localContext, 3);
2720
2788
  {
2721
- this.state = 631;
2789
+ this.state = 647;
2722
2790
  this.match(GenericSqlParser.KW_CASE);
2723
- this.state = 633;
2791
+ this.state = 649;
2724
2792
  this.errorHandler.sync(this);
2725
2793
  _la = this.tokenStream.LA(1);
2726
2794
  do {
2727
2795
  {
2728
2796
  {
2729
- this.state = 632;
2797
+ this.state = 648;
2730
2798
  this.whenClause();
2731
2799
  }
2732
2800
  }
2733
- this.state = 635;
2801
+ this.state = 651;
2734
2802
  this.errorHandler.sync(this);
2735
2803
  _la = this.tokenStream.LA(1);
2736
2804
  } while (_la === 92);
2737
- this.state = 639;
2805
+ this.state = 655;
2738
2806
  this.errorHandler.sync(this);
2739
2807
  _la = this.tokenStream.LA(1);
2740
2808
  if (_la === 33) {
2741
2809
  {
2742
- this.state = 637;
2810
+ this.state = 653;
2743
2811
  this.match(GenericSqlParser.KW_ELSE);
2744
- this.state = 638;
2812
+ this.state = 654;
2745
2813
  this.expression();
2746
2814
  }
2747
2815
  }
2748
- this.state = 641;
2816
+ this.state = 657;
2749
2817
  this.match(GenericSqlParser.KW_END);
2750
2818
  }
2751
2819
  break;
@@ -2753,36 +2821,36 @@ export class GenericSqlParser extends SQLParserBase {
2753
2821
  localContext = new SimpleCaseExpressionContext(localContext);
2754
2822
  this.enterOuterAlt(localContext, 4);
2755
2823
  {
2756
- this.state = 643;
2824
+ this.state = 659;
2757
2825
  this.match(GenericSqlParser.KW_CASE);
2758
- this.state = 644;
2826
+ this.state = 660;
2759
2827
  this.expression();
2760
- this.state = 646;
2828
+ this.state = 662;
2761
2829
  this.errorHandler.sync(this);
2762
2830
  _la = this.tokenStream.LA(1);
2763
2831
  do {
2764
2832
  {
2765
2833
  {
2766
- this.state = 645;
2834
+ this.state = 661;
2767
2835
  this.whenClause();
2768
2836
  }
2769
2837
  }
2770
- this.state = 648;
2838
+ this.state = 664;
2771
2839
  this.errorHandler.sync(this);
2772
2840
  _la = this.tokenStream.LA(1);
2773
2841
  } while (_la === 92);
2774
- this.state = 652;
2842
+ this.state = 668;
2775
2843
  this.errorHandler.sync(this);
2776
2844
  _la = this.tokenStream.LA(1);
2777
2845
  if (_la === 33) {
2778
2846
  {
2779
- this.state = 650;
2847
+ this.state = 666;
2780
2848
  this.match(GenericSqlParser.KW_ELSE);
2781
- this.state = 651;
2849
+ this.state = 667;
2782
2850
  this.expression();
2783
2851
  }
2784
2852
  }
2785
- this.state = 654;
2853
+ this.state = 670;
2786
2854
  this.match(GenericSqlParser.KW_END);
2787
2855
  }
2788
2856
  break;
@@ -2790,17 +2858,17 @@ export class GenericSqlParser extends SQLParserBase {
2790
2858
  localContext = new CastExpressionContext(localContext);
2791
2859
  this.enterOuterAlt(localContext, 5);
2792
2860
  {
2793
- this.state = 656;
2861
+ this.state = 672;
2794
2862
  this.match(GenericSqlParser.KW_CAST);
2795
- this.state = 657;
2863
+ this.state = 673;
2796
2864
  this.match(GenericSqlParser.T__1);
2797
- this.state = 658;
2865
+ this.state = 674;
2798
2866
  this.expression();
2799
- this.state = 659;
2867
+ this.state = 675;
2800
2868
  this.match(GenericSqlParser.KW_AS);
2801
- this.state = 660;
2869
+ this.state = 676;
2802
2870
  this.dataType();
2803
- this.state = 661;
2871
+ this.state = 677;
2804
2872
  this.match(GenericSqlParser.T__2);
2805
2873
  }
2806
2874
  break;
@@ -2808,29 +2876,29 @@ export class GenericSqlParser extends SQLParserBase {
2808
2876
  localContext = new CoalesceExpressionContext(localContext);
2809
2877
  this.enterOuterAlt(localContext, 6);
2810
2878
  {
2811
- this.state = 663;
2879
+ this.state = 679;
2812
2880
  this.match(GenericSqlParser.KW_COALESCE);
2813
- this.state = 664;
2881
+ this.state = 680;
2814
2882
  this.match(GenericSqlParser.T__1);
2815
- this.state = 665;
2883
+ this.state = 681;
2816
2884
  this.expression();
2817
- this.state = 670;
2885
+ this.state = 686;
2818
2886
  this.errorHandler.sync(this);
2819
2887
  _la = this.tokenStream.LA(1);
2820
2888
  while (_la === 1) {
2821
2889
  {
2822
2890
  {
2823
- this.state = 666;
2891
+ this.state = 682;
2824
2892
  this.match(GenericSqlParser.T__0);
2825
- this.state = 667;
2893
+ this.state = 683;
2826
2894
  this.expression();
2827
2895
  }
2828
2896
  }
2829
- this.state = 672;
2897
+ this.state = 688;
2830
2898
  this.errorHandler.sync(this);
2831
2899
  _la = this.tokenStream.LA(1);
2832
2900
  }
2833
- this.state = 673;
2901
+ this.state = 689;
2834
2902
  this.match(GenericSqlParser.T__2);
2835
2903
  }
2836
2904
  break;
@@ -2838,17 +2906,17 @@ export class GenericSqlParser extends SQLParserBase {
2838
2906
  localContext = new NullIfExpressionContext(localContext);
2839
2907
  this.enterOuterAlt(localContext, 7);
2840
2908
  {
2841
- this.state = 675;
2909
+ this.state = 691;
2842
2910
  this.match(GenericSqlParser.KW_NULLIF);
2843
- this.state = 676;
2911
+ this.state = 692;
2844
2912
  this.match(GenericSqlParser.T__1);
2845
- this.state = 677;
2913
+ this.state = 693;
2846
2914
  this.valueExpression(0);
2847
- this.state = 678;
2915
+ this.state = 694;
2848
2916
  this.match(GenericSqlParser.T__0);
2849
- this.state = 679;
2917
+ this.state = 695;
2850
2918
  this.valueExpression(0);
2851
- this.state = 680;
2919
+ this.state = 696;
2852
2920
  this.match(GenericSqlParser.T__2);
2853
2921
  }
2854
2922
  break;
@@ -2856,11 +2924,11 @@ export class GenericSqlParser extends SQLParserBase {
2856
2924
  localContext = new ParenthesizedExpressionContext(localContext);
2857
2925
  this.enterOuterAlt(localContext, 8);
2858
2926
  {
2859
- this.state = 682;
2927
+ this.state = 698;
2860
2928
  this.match(GenericSqlParser.T__1);
2861
- this.state = 683;
2929
+ this.state = 699;
2862
2930
  this.expression();
2863
- this.state = 684;
2931
+ this.state = 700;
2864
2932
  this.match(GenericSqlParser.T__2);
2865
2933
  }
2866
2934
  break;
@@ -2868,13 +2936,13 @@ export class GenericSqlParser extends SQLParserBase {
2868
2936
  localContext = new ExistsExpressionContext(localContext);
2869
2937
  this.enterOuterAlt(localContext, 9);
2870
2938
  {
2871
- this.state = 686;
2939
+ this.state = 702;
2872
2940
  this.match(GenericSqlParser.KW_EXISTS);
2873
- this.state = 687;
2941
+ this.state = 703;
2874
2942
  this.match(GenericSqlParser.T__1);
2875
- this.state = 688;
2943
+ this.state = 704;
2876
2944
  this.queryStatement();
2877
- this.state = 689;
2945
+ this.state = 705;
2878
2946
  this.match(GenericSqlParser.T__2);
2879
2947
  }
2880
2948
  break;
@@ -2882,7 +2950,7 @@ export class GenericSqlParser extends SQLParserBase {
2882
2950
  localContext = new SubqueryExpressionDefaultContext(localContext);
2883
2951
  this.enterOuterAlt(localContext, 10);
2884
2952
  {
2885
- this.state = 691;
2953
+ this.state = 707;
2886
2954
  this.subqueryExpression();
2887
2955
  }
2888
2956
  break;
@@ -2890,8 +2958,8 @@ export class GenericSqlParser extends SQLParserBase {
2890
2958
  localContext = new ColumnReferenceContext(localContext);
2891
2959
  this.enterOuterAlt(localContext, 11);
2892
2960
  {
2893
- this.state = 692;
2894
- this.qualifiedName();
2961
+ this.state = 708;
2962
+ this.columnName();
2895
2963
  }
2896
2964
  break;
2897
2965
  }
@@ -2913,17 +2981,17 @@ export class GenericSqlParser extends SQLParserBase {
2913
2981
  }
2914
2982
  whenClause() {
2915
2983
  let localContext = new WhenClauseContext(this.context, this.state);
2916
- this.enterRule(localContext, 84, GenericSqlParser.RULE_whenClause);
2984
+ this.enterRule(localContext, 86, GenericSqlParser.RULE_whenClause);
2917
2985
  try {
2918
2986
  this.enterOuterAlt(localContext, 1);
2919
2987
  {
2920
- this.state = 695;
2988
+ this.state = 711;
2921
2989
  this.match(GenericSqlParser.KW_WHEN);
2922
- this.state = 696;
2990
+ this.state = 712;
2923
2991
  localContext._condition = this.expression();
2924
- this.state = 697;
2992
+ this.state = 713;
2925
2993
  this.match(GenericSqlParser.KW_THEN);
2926
- this.state = 698;
2994
+ this.state = 714;
2927
2995
  localContext._result = this.expression();
2928
2996
  }
2929
2997
  }
@@ -2944,15 +3012,15 @@ export class GenericSqlParser extends SQLParserBase {
2944
3012
  }
2945
3013
  subqueryExpression() {
2946
3014
  let localContext = new SubqueryExpressionContext(this.context, this.state);
2947
- this.enterRule(localContext, 86, GenericSqlParser.RULE_subqueryExpression);
3015
+ this.enterRule(localContext, 88, GenericSqlParser.RULE_subqueryExpression);
2948
3016
  try {
2949
3017
  this.enterOuterAlt(localContext, 1);
2950
3018
  {
2951
- this.state = 700;
3019
+ this.state = 716;
2952
3020
  this.match(GenericSqlParser.T__1);
2953
- this.state = 701;
3021
+ this.state = 717;
2954
3022
  this.queryStatement();
2955
- this.state = 702;
3023
+ this.state = 718;
2956
3024
  this.match(GenericSqlParser.T__2);
2957
3025
  }
2958
3026
  }
@@ -2973,94 +3041,94 @@ export class GenericSqlParser extends SQLParserBase {
2973
3041
  }
2974
3042
  dataType() {
2975
3043
  let localContext = new DataTypeContext(this.context, this.state);
2976
- this.enterRule(localContext, 88, GenericSqlParser.RULE_dataType);
3044
+ this.enterRule(localContext, 90, GenericSqlParser.RULE_dataType);
2977
3045
  let _la;
2978
3046
  try {
2979
- this.state = 750;
3047
+ this.state = 766;
2980
3048
  this.errorHandler.sync(this);
2981
3049
  switch (this.tokenStream.LA(1)) {
2982
3050
  case GenericSqlParser.KW_BOOLEAN:
2983
3051
  this.enterOuterAlt(localContext, 1);
2984
3052
  {
2985
- this.state = 704;
3053
+ this.state = 720;
2986
3054
  this.match(GenericSqlParser.KW_BOOLEAN);
2987
3055
  }
2988
3056
  break;
2989
3057
  case GenericSqlParser.KW_TINYINT:
2990
3058
  this.enterOuterAlt(localContext, 2);
2991
3059
  {
2992
- this.state = 705;
3060
+ this.state = 721;
2993
3061
  this.match(GenericSqlParser.KW_TINYINT);
2994
3062
  }
2995
3063
  break;
2996
3064
  case GenericSqlParser.KW_SMALLINT:
2997
3065
  this.enterOuterAlt(localContext, 3);
2998
3066
  {
2999
- this.state = 706;
3067
+ this.state = 722;
3000
3068
  this.match(GenericSqlParser.KW_SMALLINT);
3001
3069
  }
3002
3070
  break;
3003
3071
  case GenericSqlParser.KW_INT:
3004
3072
  this.enterOuterAlt(localContext, 4);
3005
3073
  {
3006
- this.state = 707;
3074
+ this.state = 723;
3007
3075
  this.match(GenericSqlParser.KW_INT);
3008
3076
  }
3009
3077
  break;
3010
3078
  case GenericSqlParser.KW_INTEGER:
3011
3079
  this.enterOuterAlt(localContext, 5);
3012
3080
  {
3013
- this.state = 708;
3081
+ this.state = 724;
3014
3082
  this.match(GenericSqlParser.KW_INTEGER);
3015
3083
  }
3016
3084
  break;
3017
3085
  case GenericSqlParser.KW_BIGINT:
3018
3086
  this.enterOuterAlt(localContext, 6);
3019
3087
  {
3020
- this.state = 709;
3088
+ this.state = 725;
3021
3089
  this.match(GenericSqlParser.KW_BIGINT);
3022
3090
  }
3023
3091
  break;
3024
3092
  case GenericSqlParser.KW_FLOAT:
3025
3093
  this.enterOuterAlt(localContext, 7);
3026
3094
  {
3027
- this.state = 710;
3095
+ this.state = 726;
3028
3096
  this.match(GenericSqlParser.KW_FLOAT);
3029
3097
  }
3030
3098
  break;
3031
3099
  case GenericSqlParser.KW_DOUBLE:
3032
3100
  this.enterOuterAlt(localContext, 8);
3033
3101
  {
3034
- this.state = 711;
3102
+ this.state = 727;
3035
3103
  this.match(GenericSqlParser.KW_DOUBLE);
3036
3104
  }
3037
3105
  break;
3038
3106
  case GenericSqlParser.KW_DECIMAL:
3039
3107
  this.enterOuterAlt(localContext, 9);
3040
3108
  {
3041
- this.state = 712;
3109
+ this.state = 728;
3042
3110
  this.match(GenericSqlParser.KW_DECIMAL);
3043
- this.state = 720;
3111
+ this.state = 736;
3044
3112
  this.errorHandler.sync(this);
3045
- switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context)) {
3113
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context)) {
3046
3114
  case 1:
3047
3115
  {
3048
- this.state = 713;
3116
+ this.state = 729;
3049
3117
  this.match(GenericSqlParser.T__1);
3050
- this.state = 714;
3118
+ this.state = 730;
3051
3119
  localContext._precision = this.match(GenericSqlParser.INTEGER_VALUE);
3052
- this.state = 717;
3120
+ this.state = 733;
3053
3121
  this.errorHandler.sync(this);
3054
3122
  _la = this.tokenStream.LA(1);
3055
3123
  if (_la === 1) {
3056
3124
  {
3057
- this.state = 715;
3125
+ this.state = 731;
3058
3126
  this.match(GenericSqlParser.T__0);
3059
- this.state = 716;
3127
+ this.state = 732;
3060
3128
  localContext._scale = this.match(GenericSqlParser.INTEGER_VALUE);
3061
3129
  }
3062
3130
  }
3063
- this.state = 719;
3131
+ this.state = 735;
3064
3132
  this.match(GenericSqlParser.T__2);
3065
3133
  }
3066
3134
  break;
@@ -3070,29 +3138,29 @@ export class GenericSqlParser extends SQLParserBase {
3070
3138
  case GenericSqlParser.KW_NUMERIC:
3071
3139
  this.enterOuterAlt(localContext, 10);
3072
3140
  {
3073
- this.state = 722;
3141
+ this.state = 738;
3074
3142
  this.match(GenericSqlParser.KW_NUMERIC);
3075
- this.state = 730;
3143
+ this.state = 746;
3076
3144
  this.errorHandler.sync(this);
3077
- switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context)) {
3145
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context)) {
3078
3146
  case 1:
3079
3147
  {
3080
- this.state = 723;
3148
+ this.state = 739;
3081
3149
  this.match(GenericSqlParser.T__1);
3082
- this.state = 724;
3150
+ this.state = 740;
3083
3151
  localContext._precision = this.match(GenericSqlParser.INTEGER_VALUE);
3084
- this.state = 727;
3152
+ this.state = 743;
3085
3153
  this.errorHandler.sync(this);
3086
3154
  _la = this.tokenStream.LA(1);
3087
3155
  if (_la === 1) {
3088
3156
  {
3089
- this.state = 725;
3157
+ this.state = 741;
3090
3158
  this.match(GenericSqlParser.T__0);
3091
- this.state = 726;
3159
+ this.state = 742;
3092
3160
  localContext._scale = this.match(GenericSqlParser.INTEGER_VALUE);
3093
3161
  }
3094
3162
  }
3095
- this.state = 729;
3163
+ this.state = 745;
3096
3164
  this.match(GenericSqlParser.T__2);
3097
3165
  }
3098
3166
  break;
@@ -3102,18 +3170,18 @@ export class GenericSqlParser extends SQLParserBase {
3102
3170
  case GenericSqlParser.KW_VARCHAR:
3103
3171
  this.enterOuterAlt(localContext, 11);
3104
3172
  {
3105
- this.state = 732;
3173
+ this.state = 748;
3106
3174
  this.match(GenericSqlParser.KW_VARCHAR);
3107
- this.state = 736;
3175
+ this.state = 752;
3108
3176
  this.errorHandler.sync(this);
3109
- switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context)) {
3177
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 90, this.context)) {
3110
3178
  case 1:
3111
3179
  {
3112
- this.state = 733;
3180
+ this.state = 749;
3113
3181
  this.match(GenericSqlParser.T__1);
3114
- this.state = 734;
3182
+ this.state = 750;
3115
3183
  localContext._maxLength = this.match(GenericSqlParser.INTEGER_VALUE);
3116
- this.state = 735;
3184
+ this.state = 751;
3117
3185
  this.match(GenericSqlParser.T__2);
3118
3186
  }
3119
3187
  break;
@@ -3123,18 +3191,18 @@ export class GenericSqlParser extends SQLParserBase {
3123
3191
  case GenericSqlParser.KW_CHAR:
3124
3192
  this.enterOuterAlt(localContext, 12);
3125
3193
  {
3126
- this.state = 738;
3194
+ this.state = 754;
3127
3195
  this.match(GenericSqlParser.KW_CHAR);
3128
- this.state = 742;
3196
+ this.state = 758;
3129
3197
  this.errorHandler.sync(this);
3130
- switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context)) {
3198
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 91, this.context)) {
3131
3199
  case 1:
3132
3200
  {
3133
- this.state = 739;
3201
+ this.state = 755;
3134
3202
  this.match(GenericSqlParser.T__1);
3135
- this.state = 740;
3203
+ this.state = 756;
3136
3204
  localContext._length = this.match(GenericSqlParser.INTEGER_VALUE);
3137
- this.state = 741;
3205
+ this.state = 757;
3138
3206
  this.match(GenericSqlParser.T__2);
3139
3207
  }
3140
3208
  break;
@@ -3144,42 +3212,42 @@ export class GenericSqlParser extends SQLParserBase {
3144
3212
  case GenericSqlParser.KW_TEXT:
3145
3213
  this.enterOuterAlt(localContext, 13);
3146
3214
  {
3147
- this.state = 744;
3215
+ this.state = 760;
3148
3216
  this.match(GenericSqlParser.KW_TEXT);
3149
3217
  }
3150
3218
  break;
3151
3219
  case GenericSqlParser.KW_DATE:
3152
3220
  this.enterOuterAlt(localContext, 14);
3153
3221
  {
3154
- this.state = 745;
3222
+ this.state = 761;
3155
3223
  this.match(GenericSqlParser.KW_DATE);
3156
3224
  }
3157
3225
  break;
3158
3226
  case GenericSqlParser.KW_TIME:
3159
3227
  this.enterOuterAlt(localContext, 15);
3160
3228
  {
3161
- this.state = 746;
3229
+ this.state = 762;
3162
3230
  this.match(GenericSqlParser.KW_TIME);
3163
3231
  }
3164
3232
  break;
3165
3233
  case GenericSqlParser.KW_TIMESTAMP:
3166
3234
  this.enterOuterAlt(localContext, 16);
3167
3235
  {
3168
- this.state = 747;
3236
+ this.state = 763;
3169
3237
  this.match(GenericSqlParser.KW_TIMESTAMP);
3170
3238
  }
3171
3239
  break;
3172
3240
  case GenericSqlParser.KW_BINARY:
3173
3241
  this.enterOuterAlt(localContext, 17);
3174
3242
  {
3175
- this.state = 748;
3243
+ this.state = 764;
3176
3244
  this.match(GenericSqlParser.KW_BINARY);
3177
3245
  }
3178
3246
  break;
3179
3247
  case GenericSqlParser.KW_VARBINARY:
3180
3248
  this.enterOuterAlt(localContext, 18);
3181
3249
  {
3182
- this.state = 749;
3250
+ this.state = 765;
3183
3251
  this.match(GenericSqlParser.KW_VARBINARY);
3184
3252
  }
3185
3253
  break;
@@ -3204,32 +3272,32 @@ export class GenericSqlParser extends SQLParserBase {
3204
3272
  }
3205
3273
  properties() {
3206
3274
  let localContext = new PropertiesContext(this.context, this.state);
3207
- this.enterRule(localContext, 90, GenericSqlParser.RULE_properties);
3275
+ this.enterRule(localContext, 92, GenericSqlParser.RULE_properties);
3208
3276
  let _la;
3209
3277
  try {
3210
3278
  this.enterOuterAlt(localContext, 1);
3211
3279
  {
3212
- this.state = 752;
3280
+ this.state = 768;
3213
3281
  this.match(GenericSqlParser.T__1);
3214
- this.state = 753;
3282
+ this.state = 769;
3215
3283
  this.property();
3216
- this.state = 758;
3284
+ this.state = 774;
3217
3285
  this.errorHandler.sync(this);
3218
3286
  _la = this.tokenStream.LA(1);
3219
3287
  while (_la === 1) {
3220
3288
  {
3221
3289
  {
3222
- this.state = 754;
3290
+ this.state = 770;
3223
3291
  this.match(GenericSqlParser.T__0);
3224
- this.state = 755;
3292
+ this.state = 771;
3225
3293
  this.property();
3226
3294
  }
3227
3295
  }
3228
- this.state = 760;
3296
+ this.state = 776;
3229
3297
  this.errorHandler.sync(this);
3230
3298
  _la = this.tokenStream.LA(1);
3231
3299
  }
3232
- this.state = 761;
3300
+ this.state = 777;
3233
3301
  this.match(GenericSqlParser.T__2);
3234
3302
  }
3235
3303
  }
@@ -3250,15 +3318,15 @@ export class GenericSqlParser extends SQLParserBase {
3250
3318
  }
3251
3319
  property() {
3252
3320
  let localContext = new PropertyContext(this.context, this.state);
3253
- this.enterRule(localContext, 92, GenericSqlParser.RULE_property);
3321
+ this.enterRule(localContext, 94, GenericSqlParser.RULE_property);
3254
3322
  try {
3255
3323
  this.enterOuterAlt(localContext, 1);
3256
3324
  {
3257
- this.state = 763;
3325
+ this.state = 779;
3258
3326
  this.identifier();
3259
- this.state = 764;
3327
+ this.state = 780;
3260
3328
  this.match(GenericSqlParser.EQ);
3261
- this.state = 765;
3329
+ this.state = 781;
3262
3330
  this.literal();
3263
3331
  }
3264
3332
  }
@@ -3279,16 +3347,16 @@ export class GenericSqlParser extends SQLParserBase {
3279
3347
  }
3280
3348
  literal() {
3281
3349
  let localContext = new LiteralContext(this.context, this.state);
3282
- this.enterRule(localContext, 94, GenericSqlParser.RULE_literal);
3350
+ this.enterRule(localContext, 96, GenericSqlParser.RULE_literal);
3283
3351
  try {
3284
- this.state = 775;
3352
+ this.state = 791;
3285
3353
  this.errorHandler.sync(this);
3286
3354
  switch (this.tokenStream.LA(1)) {
3287
3355
  case GenericSqlParser.KW_NULL:
3288
3356
  localContext = new NullLiteralContext(localContext);
3289
3357
  this.enterOuterAlt(localContext, 1);
3290
3358
  {
3291
- this.state = 767;
3359
+ this.state = 783;
3292
3360
  this.match(GenericSqlParser.KW_NULL);
3293
3361
  }
3294
3362
  break;
@@ -3296,7 +3364,7 @@ export class GenericSqlParser extends SQLParserBase {
3296
3364
  localContext = new BooleanLiteralContext(localContext);
3297
3365
  this.enterOuterAlt(localContext, 2);
3298
3366
  {
3299
- this.state = 768;
3367
+ this.state = 784;
3300
3368
  this.match(GenericSqlParser.KW_TRUE);
3301
3369
  }
3302
3370
  break;
@@ -3304,7 +3372,7 @@ export class GenericSqlParser extends SQLParserBase {
3304
3372
  localContext = new BooleanLiteralContext(localContext);
3305
3373
  this.enterOuterAlt(localContext, 3);
3306
3374
  {
3307
- this.state = 769;
3375
+ this.state = 785;
3308
3376
  this.match(GenericSqlParser.KW_FALSE);
3309
3377
  }
3310
3378
  break;
@@ -3312,7 +3380,7 @@ export class GenericSqlParser extends SQLParserBase {
3312
3380
  localContext = new IntegerLiteralContext(localContext);
3313
3381
  this.enterOuterAlt(localContext, 4);
3314
3382
  {
3315
- this.state = 770;
3383
+ this.state = 786;
3316
3384
  this.match(GenericSqlParser.INTEGER_VALUE);
3317
3385
  }
3318
3386
  break;
@@ -3320,7 +3388,7 @@ export class GenericSqlParser extends SQLParserBase {
3320
3388
  localContext = new DecimalLiteralContext(localContext);
3321
3389
  this.enterOuterAlt(localContext, 5);
3322
3390
  {
3323
- this.state = 771;
3391
+ this.state = 787;
3324
3392
  this.match(GenericSqlParser.DECIMAL_VALUE);
3325
3393
  }
3326
3394
  break;
@@ -3328,7 +3396,7 @@ export class GenericSqlParser extends SQLParserBase {
3328
3396
  localContext = new DoubleLiteralContext(localContext);
3329
3397
  this.enterOuterAlt(localContext, 6);
3330
3398
  {
3331
- this.state = 772;
3399
+ this.state = 788;
3332
3400
  this.match(GenericSqlParser.DOUBLE_VALUE);
3333
3401
  }
3334
3402
  break;
@@ -3336,7 +3404,7 @@ export class GenericSqlParser extends SQLParserBase {
3336
3404
  localContext = new StringLiteralContext(localContext);
3337
3405
  this.enterOuterAlt(localContext, 7);
3338
3406
  {
3339
- this.state = 773;
3407
+ this.state = 789;
3340
3408
  this.match(GenericSqlParser.STRING);
3341
3409
  }
3342
3410
  break;
@@ -3344,7 +3412,7 @@ export class GenericSqlParser extends SQLParserBase {
3344
3412
  localContext = new BinaryLiteralContext(localContext);
3345
3413
  this.enterOuterAlt(localContext, 8);
3346
3414
  {
3347
- this.state = 774;
3415
+ this.state = 790;
3348
3416
  this.match(GenericSqlParser.BINARY_LITERAL);
3349
3417
  }
3350
3418
  break;
@@ -3369,36 +3437,36 @@ export class GenericSqlParser extends SQLParserBase {
3369
3437
  }
3370
3438
  identifier() {
3371
3439
  let localContext = new IdentifierContext(this.context, this.state);
3372
- this.enterRule(localContext, 96, GenericSqlParser.RULE_identifier);
3440
+ this.enterRule(localContext, 98, GenericSqlParser.RULE_identifier);
3373
3441
  try {
3374
- this.state = 782;
3442
+ this.state = 798;
3375
3443
  this.errorHandler.sync(this);
3376
3444
  switch (this.tokenStream.LA(1)) {
3377
3445
  case GenericSqlParser.IDENTIFIER:
3378
3446
  this.enterOuterAlt(localContext, 1);
3379
3447
  {
3380
- this.state = 777;
3448
+ this.state = 793;
3381
3449
  this.match(GenericSqlParser.IDENTIFIER);
3382
3450
  }
3383
3451
  break;
3384
3452
  case GenericSqlParser.DIGIT_IDENTIFIER:
3385
3453
  this.enterOuterAlt(localContext, 2);
3386
3454
  {
3387
- this.state = 778;
3455
+ this.state = 794;
3388
3456
  this.match(GenericSqlParser.DIGIT_IDENTIFIER);
3389
3457
  }
3390
3458
  break;
3391
3459
  case GenericSqlParser.QUOTED_IDENTIFIER:
3392
3460
  this.enterOuterAlt(localContext, 3);
3393
3461
  {
3394
- this.state = 779;
3462
+ this.state = 795;
3395
3463
  this.match(GenericSqlParser.QUOTED_IDENTIFIER);
3396
3464
  }
3397
3465
  break;
3398
3466
  case GenericSqlParser.BACKQUOTED_IDENTIFIER:
3399
3467
  this.enterOuterAlt(localContext, 4);
3400
3468
  {
3401
- this.state = 780;
3469
+ this.state = 796;
3402
3470
  this.match(GenericSqlParser.BACKQUOTED_IDENTIFIER);
3403
3471
  }
3404
3472
  break;
@@ -3447,7 +3515,7 @@ export class GenericSqlParser extends SQLParserBase {
3447
3515
  case GenericSqlParser.KW_VARBINARY:
3448
3516
  this.enterOuterAlt(localContext, 5);
3449
3517
  {
3450
- this.state = 781;
3518
+ this.state = 797;
3451
3519
  this.nonReserved();
3452
3520
  }
3453
3521
  break;
@@ -3472,30 +3540,30 @@ export class GenericSqlParser extends SQLParserBase {
3472
3540
  }
3473
3541
  qualifiedName() {
3474
3542
  let localContext = new QualifiedNameContext(this.context, this.state);
3475
- this.enterRule(localContext, 98, GenericSqlParser.RULE_qualifiedName);
3543
+ this.enterRule(localContext, 100, GenericSqlParser.RULE_qualifiedName);
3476
3544
  try {
3477
3545
  let alternative;
3478
3546
  this.enterOuterAlt(localContext, 1);
3479
3547
  {
3480
- this.state = 784;
3548
+ this.state = 800;
3481
3549
  this.identifier();
3482
- this.state = 789;
3550
+ this.state = 805;
3483
3551
  this.errorHandler.sync(this);
3484
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 94, this.context);
3552
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 96, this.context);
3485
3553
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3486
3554
  if (alternative === 1) {
3487
3555
  {
3488
3556
  {
3489
- this.state = 785;
3557
+ this.state = 801;
3490
3558
  this.match(GenericSqlParser.T__3);
3491
- this.state = 786;
3559
+ this.state = 802;
3492
3560
  this.identifier();
3493
3561
  }
3494
3562
  }
3495
3563
  }
3496
- this.state = 791;
3564
+ this.state = 807;
3497
3565
  this.errorHandler.sync(this);
3498
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 94, this.context);
3566
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 96, this.context);
3499
3567
  }
3500
3568
  }
3501
3569
  }
@@ -3516,12 +3584,78 @@ export class GenericSqlParser extends SQLParserBase {
3516
3584
  }
3517
3585
  columnRef() {
3518
3586
  let localContext = new ColumnRefContext(this.context, this.state);
3519
- this.enterRule(localContext, 100, GenericSqlParser.RULE_columnRef);
3587
+ this.enterRule(localContext, 102, GenericSqlParser.RULE_columnRef);
3588
+ try {
3589
+ this.state = 811;
3590
+ this.errorHandler.sync(this);
3591
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 97, this.context)) {
3592
+ case 1:
3593
+ this.enterOuterAlt(localContext, 1);
3594
+ {
3595
+ this.state = 808;
3596
+ this.identifier();
3597
+ }
3598
+ break;
3599
+ case 2:
3600
+ this.enterOuterAlt(localContext, 2);
3601
+ {
3602
+ this.state = 809;
3603
+ if (!(this.shouldMatchEmpty())) {
3604
+ throw this.createFailedPredicateException("this.shouldMatchEmpty()");
3605
+ }
3606
+ this.state = 810;
3607
+ this.emptyColumn();
3608
+ }
3609
+ break;
3610
+ }
3611
+ }
3612
+ catch (re) {
3613
+ if (re instanceof antlr.RecognitionException) {
3614
+ localContext.exception = re;
3615
+ this.errorHandler.reportError(this, re);
3616
+ this.errorHandler.recover(this, re);
3617
+ }
3618
+ else {
3619
+ throw re;
3620
+ }
3621
+ }
3622
+ finally {
3623
+ this.exitRule();
3624
+ }
3625
+ return localContext;
3626
+ }
3627
+ columnName() {
3628
+ let localContext = new ColumnNameContext(this.context, this.state);
3629
+ this.enterRule(localContext, 104, GenericSqlParser.RULE_columnName);
3520
3630
  try {
3521
3631
  this.enterOuterAlt(localContext, 1);
3522
3632
  {
3523
- this.state = 792;
3524
- this.identifier();
3633
+ this.state = 813;
3634
+ this.qualifiedName();
3635
+ }
3636
+ }
3637
+ catch (re) {
3638
+ if (re instanceof antlr.RecognitionException) {
3639
+ localContext.exception = re;
3640
+ this.errorHandler.reportError(this, re);
3641
+ this.errorHandler.recover(this, re);
3642
+ }
3643
+ else {
3644
+ throw re;
3645
+ }
3646
+ }
3647
+ finally {
3648
+ this.exitRule();
3649
+ }
3650
+ return localContext;
3651
+ }
3652
+ emptyColumn() {
3653
+ let localContext = new EmptyColumnContext(this.context, this.state);
3654
+ this.enterRule(localContext, 106, GenericSqlParser.RULE_emptyColumn);
3655
+ try {
3656
+ this.enterOuterAlt(localContext, 1);
3657
+ // tslint:disable-next-line:no-empty
3658
+ {
3525
3659
  }
3526
3660
  }
3527
3661
  catch (re) {
@@ -3541,11 +3675,11 @@ export class GenericSqlParser extends SQLParserBase {
3541
3675
  }
3542
3676
  tableName() {
3543
3677
  let localContext = new TableNameContext(this.context, this.state);
3544
- this.enterRule(localContext, 102, GenericSqlParser.RULE_tableName);
3678
+ this.enterRule(localContext, 108, GenericSqlParser.RULE_tableName);
3545
3679
  try {
3546
3680
  this.enterOuterAlt(localContext, 1);
3547
3681
  {
3548
- this.state = 794;
3682
+ this.state = 817;
3549
3683
  this.qualifiedName();
3550
3684
  }
3551
3685
  }
@@ -3566,11 +3700,36 @@ export class GenericSqlParser extends SQLParserBase {
3566
3700
  }
3567
3701
  tableNameCreate() {
3568
3702
  let localContext = new TableNameCreateContext(this.context, this.state);
3569
- this.enterRule(localContext, 104, GenericSqlParser.RULE_tableNameCreate);
3703
+ this.enterRule(localContext, 110, GenericSqlParser.RULE_tableNameCreate);
3704
+ try {
3705
+ this.enterOuterAlt(localContext, 1);
3706
+ {
3707
+ this.state = 819;
3708
+ this.qualifiedName();
3709
+ }
3710
+ }
3711
+ catch (re) {
3712
+ if (re instanceof antlr.RecognitionException) {
3713
+ localContext.exception = re;
3714
+ this.errorHandler.reportError(this, re);
3715
+ this.errorHandler.recover(this, re);
3716
+ }
3717
+ else {
3718
+ throw re;
3719
+ }
3720
+ }
3721
+ finally {
3722
+ this.exitRule();
3723
+ }
3724
+ return localContext;
3725
+ }
3726
+ functionName() {
3727
+ let localContext = new FunctionNameContext(this.context, this.state);
3728
+ this.enterRule(localContext, 112, GenericSqlParser.RULE_functionName);
3570
3729
  try {
3571
3730
  this.enterOuterAlt(localContext, 1);
3572
3731
  {
3573
- this.state = 796;
3732
+ this.state = 821;
3574
3733
  this.qualifiedName();
3575
3734
  }
3576
3735
  }
@@ -3591,12 +3750,12 @@ export class GenericSqlParser extends SQLParserBase {
3591
3750
  }
3592
3751
  nonReserved() {
3593
3752
  let localContext = new NonReservedContext(this.context, this.state);
3594
- this.enterRule(localContext, 106, GenericSqlParser.RULE_nonReserved);
3753
+ this.enterRule(localContext, 114, GenericSqlParser.RULE_nonReserved);
3595
3754
  let _la;
3596
3755
  try {
3597
3756
  this.enterOuterAlt(localContext, 1);
3598
3757
  {
3599
- this.state = 798;
3758
+ this.state = 823;
3600
3759
  _la = this.tokenStream.LA(1);
3601
3760
  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))) {
3602
3761
  this.errorHandler.recoverInline(this);
@@ -3624,42 +3783,60 @@ export class GenericSqlParser extends SQLParserBase {
3624
3783
  }
3625
3784
  sempred(localContext, ruleIndex, predIndex) {
3626
3785
  switch (ruleIndex) {
3786
+ case 12:
3787
+ return this.selectItem_sempred(localContext, predIndex);
3627
3788
  case 14:
3628
3789
  return this.relation_sempred(localContext, predIndex);
3629
- case 36:
3790
+ case 37:
3630
3791
  return this.booleanExpression_sempred(localContext, predIndex);
3631
- case 40:
3792
+ case 41:
3632
3793
  return this.valueExpression_sempred(localContext, predIndex);
3794
+ case 51:
3795
+ return this.columnRef_sempred(localContext, predIndex);
3633
3796
  }
3634
3797
  return true;
3635
3798
  }
3636
- relation_sempred(localContext, predIndex) {
3799
+ selectItem_sempred(localContext, predIndex) {
3637
3800
  switch (predIndex) {
3638
3801
  case 0:
3639
- return this.precpred(this.context, 2);
3802
+ return this.shouldMatchEmpty();
3640
3803
  }
3641
3804
  return true;
3642
3805
  }
3643
- booleanExpression_sempred(localContext, predIndex) {
3806
+ relation_sempred(localContext, predIndex) {
3644
3807
  switch (predIndex) {
3645
3808
  case 1:
3646
3809
  return this.precpred(this.context, 2);
3810
+ }
3811
+ return true;
3812
+ }
3813
+ booleanExpression_sempred(localContext, predIndex) {
3814
+ switch (predIndex) {
3647
3815
  case 2:
3816
+ return this.precpred(this.context, 2);
3817
+ case 3:
3648
3818
  return this.precpred(this.context, 1);
3649
3819
  }
3650
3820
  return true;
3651
3821
  }
3652
3822
  valueExpression_sempred(localContext, predIndex) {
3653
3823
  switch (predIndex) {
3654
- case 3:
3655
- return this.precpred(this.context, 3);
3656
3824
  case 4:
3657
- return this.precpred(this.context, 2);
3825
+ return this.precpred(this.context, 3);
3658
3826
  case 5:
3827
+ return this.precpred(this.context, 2);
3828
+ case 6:
3659
3829
  return this.precpred(this.context, 1);
3660
3830
  }
3661
3831
  return true;
3662
3832
  }
3833
+ columnRef_sempred(localContext, predIndex) {
3834
+ switch (predIndex) {
3835
+ case 7:
3836
+ return this.shouldMatchEmpty();
3837
+ }
3838
+ return true;
3839
+ }
3663
3840
  static get _ATN() {
3664
3841
  if (!GenericSqlParser.__ATN) {
3665
3842
  GenericSqlParser.__ATN = new antlr.ATNDeserializer().deserialize(GenericSqlParser._serializedATN);
@@ -3824,28 +4001,32 @@ GenericSqlParser.RULE_deleteStatement = 28;
3824
4001
  GenericSqlParser.RULE_createTableStatement = 29;
3825
4002
  GenericSqlParser.RULE_tableElement = 30;
3826
4003
  GenericSqlParser.RULE_columnDefinition = 31;
3827
- GenericSqlParser.RULE_tableConstraint = 32;
3828
- GenericSqlParser.RULE_alterTableStatement = 33;
3829
- GenericSqlParser.RULE_dropTableStatement = 34;
3830
- GenericSqlParser.RULE_expression = 35;
3831
- GenericSqlParser.RULE_booleanExpression = 36;
3832
- GenericSqlParser.RULE_predicatedExpression = 37;
3833
- GenericSqlParser.RULE_predicate = 38;
3834
- GenericSqlParser.RULE_comparisonOperator = 39;
3835
- GenericSqlParser.RULE_valueExpression = 40;
3836
- GenericSqlParser.RULE_primaryExpression = 41;
3837
- GenericSqlParser.RULE_whenClause = 42;
3838
- GenericSqlParser.RULE_subqueryExpression = 43;
3839
- GenericSqlParser.RULE_dataType = 44;
3840
- GenericSqlParser.RULE_properties = 45;
3841
- GenericSqlParser.RULE_property = 46;
3842
- GenericSqlParser.RULE_literal = 47;
3843
- GenericSqlParser.RULE_identifier = 48;
3844
- GenericSqlParser.RULE_qualifiedName = 49;
3845
- GenericSqlParser.RULE_columnRef = 50;
3846
- GenericSqlParser.RULE_tableName = 51;
3847
- GenericSqlParser.RULE_tableNameCreate = 52;
3848
- GenericSqlParser.RULE_nonReserved = 53;
4004
+ GenericSqlParser.RULE_columnRefCreate = 32;
4005
+ GenericSqlParser.RULE_tableConstraint = 33;
4006
+ GenericSqlParser.RULE_alterTableStatement = 34;
4007
+ GenericSqlParser.RULE_dropTableStatement = 35;
4008
+ GenericSqlParser.RULE_expression = 36;
4009
+ GenericSqlParser.RULE_booleanExpression = 37;
4010
+ GenericSqlParser.RULE_predicatedExpression = 38;
4011
+ GenericSqlParser.RULE_predicate = 39;
4012
+ GenericSqlParser.RULE_comparisonOperator = 40;
4013
+ GenericSqlParser.RULE_valueExpression = 41;
4014
+ GenericSqlParser.RULE_primaryExpression = 42;
4015
+ GenericSqlParser.RULE_whenClause = 43;
4016
+ GenericSqlParser.RULE_subqueryExpression = 44;
4017
+ GenericSqlParser.RULE_dataType = 45;
4018
+ GenericSqlParser.RULE_properties = 46;
4019
+ GenericSqlParser.RULE_property = 47;
4020
+ GenericSqlParser.RULE_literal = 48;
4021
+ GenericSqlParser.RULE_identifier = 49;
4022
+ GenericSqlParser.RULE_qualifiedName = 50;
4023
+ GenericSqlParser.RULE_columnRef = 51;
4024
+ GenericSqlParser.RULE_columnName = 52;
4025
+ GenericSqlParser.RULE_emptyColumn = 53;
4026
+ GenericSqlParser.RULE_tableName = 54;
4027
+ GenericSqlParser.RULE_tableNameCreate = 55;
4028
+ GenericSqlParser.RULE_functionName = 56;
4029
+ GenericSqlParser.RULE_nonReserved = 57;
3849
4030
  GenericSqlParser.literalNames = [
3850
4031
  null, "','", "'('", "')'", "'.'", "'ADD'", "'ALL'", "'ALTER'", "'AND'",
3851
4032
  "'AS'", "'ASC'", "'BETWEEN'", "'BIGINT'", "'BINARY'", "'BOOLEAN'",
@@ -3897,15 +4078,15 @@ GenericSqlParser.ruleNames = [
3897
4078
  "groupByClause", "havingClause", "orderByClause", "sortItem", "limitClause",
3898
4079
  "insertStatement", "columnList", "updateStatement", "updateAssignment",
3899
4080
  "deleteStatement", "createTableStatement", "tableElement", "columnDefinition",
3900
- "tableConstraint", "alterTableStatement", "dropTableStatement",
4081
+ "columnRefCreate", "tableConstraint", "alterTableStatement", "dropTableStatement",
3901
4082
  "expression", "booleanExpression", "predicatedExpression", "predicate",
3902
4083
  "comparisonOperator", "valueExpression", "primaryExpression", "whenClause",
3903
4084
  "subqueryExpression", "dataType", "properties", "property", "literal",
3904
- "identifier", "qualifiedName", "columnRef", "tableName", "tableNameCreate",
3905
- "nonReserved",
4085
+ "identifier", "qualifiedName", "columnRef", "columnName", "emptyColumn",
4086
+ "tableName", "tableNameCreate", "functionName", "nonReserved",
3906
4087
  ];
3907
4088
  GenericSqlParser._serializedATN = [
3908
- 4, 1, 122, 801, 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,
4089
+ 4, 1, 122, 826, 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,
3909
4090
  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,
3910
4091
  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,
3911
4092
  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,
@@ -3913,305 +4094,315 @@ GenericSqlParser._serializedATN = [
3913
4094
  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,
3914
4095
  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,
3915
4096
  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,
3916
- 52, 2, 53, 7, 53, 1, 0, 5, 0, 110, 8, 0, 10, 0, 12, 0, 113, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1,
3917
- 2, 1, 2, 3, 2, 121, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 130, 8, 3, 1, 4, 3,
3918
- 4, 133, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 3, 5, 139, 8, 5, 1, 5, 1, 5, 1, 5, 5, 5, 144, 8, 5, 10,
3919
- 5, 12, 5, 147, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 3, 7, 158, 8, 7, 1,
3920
- 7, 5, 7, 161, 8, 7, 10, 7, 12, 7, 164, 9, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9,
3921
- 173, 8, 9, 1, 10, 1, 10, 3, 10, 177, 8, 10, 1, 10, 1, 10, 1, 10, 5, 10, 182, 8, 10, 10,
3922
- 10, 12, 10, 185, 9, 10, 1, 10, 3, 10, 188, 8, 10, 1, 10, 3, 10, 191, 8, 10, 1, 10, 3, 10,
3923
- 194, 8, 10, 1, 10, 3, 10, 197, 8, 10, 1, 10, 3, 10, 200, 8, 10, 1, 10, 3, 10, 203, 8, 10,
3924
- 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 209, 8, 12, 1, 12, 3, 12, 212, 8, 12, 1, 12, 1, 12, 1,
3925
- 12, 1, 12, 1, 12, 3, 12, 219, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 225, 8, 13, 10,
3926
- 13, 12, 13, 228, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1,
3927
- 14, 5, 14, 240, 8, 14, 10, 14, 12, 14, 243, 9, 14, 1, 15, 3, 15, 246, 8, 15, 1, 15, 1,
3928
- 15, 3, 15, 250, 8, 15, 1, 15, 1, 15, 3, 15, 254, 8, 15, 1, 15, 1, 15, 3, 15, 258, 8, 15,
3929
- 1, 15, 3, 15, 261, 8, 15, 1, 16, 1, 16, 3, 16, 265, 8, 16, 1, 16, 3, 16, 268, 8, 16, 1,
3930
- 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 275, 8, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1,
3931
- 19, 3, 19, 283, 8, 19, 1, 19, 1, 19, 1, 19, 5, 19, 288, 8, 19, 10, 19, 12, 19, 291, 9,
3932
- 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 301, 8, 21, 10, 21, 12,
3933
- 21, 304, 9, 21, 1, 22, 1, 22, 3, 22, 308, 8, 22, 1, 22, 1, 22, 3, 22, 312, 8, 22, 1, 23,
3934
- 1, 23, 1, 23, 1, 23, 3, 23, 318, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 324, 8, 24, 1,
3935
- 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 332, 8, 25, 10, 25, 12, 25, 335, 9, 25, 1,
3936
- 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 345, 8, 26, 10, 26, 12, 26,
3937
- 348, 9, 26, 1, 26, 3, 26, 351, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1,
3938
- 28, 3, 28, 361, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 368, 8, 29, 1, 29, 1, 29,
3939
- 1, 29, 1, 29, 1, 29, 5, 29, 375, 8, 29, 10, 29, 12, 29, 378, 9, 29, 1, 29, 1, 29, 1, 29,
3940
- 3, 29, 383, 8, 29, 1, 30, 1, 30, 3, 30, 387, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 393,
3941
- 8, 31, 1, 31, 1, 31, 3, 31, 397, 8, 31, 1, 31, 1, 31, 3, 31, 401, 8, 31, 1, 32, 1, 32, 3,
3942
- 32, 405, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 413, 8, 32, 10, 32, 12,
3943
- 32, 416, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 425, 8, 32, 10,
3944
- 32, 12, 32, 428, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
3945
- 32, 1, 32, 1, 32, 1, 32, 5, 32, 443, 8, 32, 10, 32, 12, 32, 446, 9, 32, 1, 32, 1, 32, 1,
3946
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 455, 8, 32, 10, 32, 12, 32, 458, 9, 32, 1, 32, 1,
3947
- 32, 3, 32, 462, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 468, 8, 33, 1, 33, 1, 33, 1, 33,
3948
- 1, 33, 1, 33, 1, 33, 3, 33, 476, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 483, 8,
3949
- 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1,
3950
- 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 502, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 508,
3951
- 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 518, 8, 36, 1, 36,
3952
- 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 5, 36, 526, 8, 36, 10, 36, 12, 36, 529, 9, 36, 1, 37,
3953
- 1, 37, 3, 37, 533, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 539, 8, 38, 1, 38, 1, 38, 1,
3954
- 38, 1, 38, 1, 38, 5, 38, 546, 8, 38, 10, 38, 12, 38, 549, 9, 38, 1, 38, 1, 38, 1, 38, 3,
3955
- 38, 554, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 562, 8, 38, 1, 38, 1, 38,
3956
- 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 570, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 576, 8,
3957
- 38, 1, 38, 1, 38, 3, 38, 580, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 585, 8, 38, 1, 38, 1, 38,
3958
- 1, 38, 3, 38, 590, 8, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 598, 8, 40, 1,
3959
- 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40, 609, 8, 40, 10, 40, 12,
3960
- 40, 612, 9, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 618, 8, 41, 1, 41, 1, 41, 1, 41, 5, 41,
3961
- 623, 8, 41, 10, 41, 12, 41, 626, 9, 41, 3, 41, 628, 8, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3962
- 4, 41, 634, 8, 41, 11, 41, 12, 41, 635, 1, 41, 1, 41, 3, 41, 640, 8, 41, 1, 41, 1, 41,
3963
- 1, 41, 1, 41, 1, 41, 4, 41, 647, 8, 41, 11, 41, 12, 41, 648, 1, 41, 1, 41, 3, 41, 653,
3964
- 8, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3965
- 1, 41, 1, 41, 5, 41, 669, 8, 41, 10, 41, 12, 41, 672, 9, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3966
- 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3967
- 1, 41, 1, 41, 1, 41, 3, 41, 694, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43,
3968
- 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44,
3969
- 1, 44, 1, 44, 3, 44, 718, 8, 44, 1, 44, 3, 44, 721, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1,
3970
- 44, 3, 44, 728, 8, 44, 1, 44, 3, 44, 731, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 737,
3971
- 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 743, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44,
3972
- 1, 44, 3, 44, 751, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 5, 45, 757, 8, 45, 10, 45, 12, 45,
3973
- 760, 9, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47,
3974
- 1, 47, 1, 47, 1, 47, 3, 47, 776, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 783, 8,
3975
- 48, 1, 49, 1, 49, 1, 49, 5, 49, 788, 8, 49, 10, 49, 12, 49, 791, 9, 49, 1, 50, 1, 50, 1,
3976
- 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 0, 3, 28, 72, 80, 54, 0, 2, 4, 6, 8, 10, 12,
3977
- 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3978
- 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3979
- 102, 104, 106, 0, 8, 3, 0, 36, 36, 52, 52, 87, 87, 2, 0, 6, 6, 30, 30, 2, 0, 10, 10, 29,
3980
- 29, 2, 0, 39, 39, 57, 57, 1, 0, 95, 100, 1, 0, 101, 102, 1, 0, 103, 105, 22, 0, 5, 6, 10,
3981
- 10, 12, 15, 18, 18, 20, 21, 24, 27, 29, 29, 31, 31, 38, 40, 43, 43, 46, 46, 50, 51, 56,
3982
- 58, 60, 60, 63, 66, 70, 70, 75, 75, 78, 78, 80, 80, 82, 86, 88, 88, 90, 91, 895, 0, 111,
3983
- 1, 0, 0, 0, 2, 116, 1, 0, 0, 0, 4, 118, 1, 0, 0, 0, 6, 129, 1, 0, 0, 0, 8, 132, 1, 0, 0, 0,
3984
- 10, 136, 1, 0, 0, 0, 12, 148, 1, 0, 0, 0, 14, 154, 1, 0, 0, 0, 16, 165, 1, 0, 0, 0, 18, 172,
3985
- 1, 0, 0, 0, 20, 174, 1, 0, 0, 0, 22, 204, 1, 0, 0, 0, 24, 218, 1, 0, 0, 0, 26, 220, 1, 0,
3986
- 0, 0, 28, 229, 1, 0, 0, 0, 30, 260, 1, 0, 0, 0, 32, 262, 1, 0, 0, 0, 34, 274, 1, 0, 0, 0,
3987
- 36, 276, 1, 0, 0, 0, 38, 279, 1, 0, 0, 0, 40, 292, 1, 0, 0, 0, 42, 295, 1, 0, 0, 0, 44, 305,
3988
- 1, 0, 0, 0, 46, 313, 1, 0, 0, 0, 48, 319, 1, 0, 0, 0, 50, 327, 1, 0, 0, 0, 52, 338, 1, 0,
3989
- 0, 0, 54, 352, 1, 0, 0, 0, 56, 356, 1, 0, 0, 0, 58, 362, 1, 0, 0, 0, 60, 386, 1, 0, 0, 0,
3990
- 62, 388, 1, 0, 0, 0, 64, 404, 1, 0, 0, 0, 66, 463, 1, 0, 0, 0, 68, 503, 1, 0, 0, 0, 70, 511,
3991
- 1, 0, 0, 0, 72, 517, 1, 0, 0, 0, 74, 530, 1, 0, 0, 0, 76, 589, 1, 0, 0, 0, 78, 591, 1, 0,
3992
- 0, 0, 80, 597, 1, 0, 0, 0, 82, 693, 1, 0, 0, 0, 84, 695, 1, 0, 0, 0, 86, 700, 1, 0, 0, 0,
3993
- 88, 750, 1, 0, 0, 0, 90, 752, 1, 0, 0, 0, 92, 763, 1, 0, 0, 0, 94, 775, 1, 0, 0, 0, 96, 782,
3994
- 1, 0, 0, 0, 98, 784, 1, 0, 0, 0, 100, 792, 1, 0, 0, 0, 102, 794, 1, 0, 0, 0, 104, 796, 1,
3995
- 0, 0, 0, 106, 798, 1, 0, 0, 0, 108, 110, 3, 2, 1, 0, 109, 108, 1, 0, 0, 0, 110, 113, 1,
3996
- 0, 0, 0, 111, 109, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 114, 1, 0, 0, 0, 113, 111, 1,
3997
- 0, 0, 0, 114, 115, 5, 0, 0, 1, 115, 1, 1, 0, 0, 0, 116, 117, 3, 4, 2, 0, 117, 3, 1, 0, 0,
3998
- 0, 118, 120, 3, 6, 3, 0, 119, 121, 5, 108, 0, 0, 120, 119, 1, 0, 0, 0, 120, 121, 1, 0,
3999
- 0, 0, 121, 5, 1, 0, 0, 0, 122, 130, 3, 8, 4, 0, 123, 130, 3, 48, 24, 0, 124, 130, 3, 52,
4000
- 26, 0, 125, 130, 3, 56, 28, 0, 126, 130, 3, 58, 29, 0, 127, 130, 3, 66, 33, 0, 128, 130,
4001
- 3, 68, 34, 0, 129, 122, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 129, 124, 1, 0, 0, 0, 129, 125,
4002
- 1, 0, 0, 0, 129, 126, 1, 0, 0, 0, 129, 127, 1, 0, 0, 0, 129, 128, 1, 0, 0, 0, 130, 7, 1,
4003
- 0, 0, 0, 131, 133, 3, 10, 5, 0, 132, 131, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 134, 1,
4004
- 0, 0, 0, 134, 135, 3, 14, 7, 0, 135, 9, 1, 0, 0, 0, 136, 138, 5, 94, 0, 0, 137, 139, 5,
4005
- 72, 0, 0, 138, 137, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 145, 3,
4006
- 12, 6, 0, 141, 142, 5, 1, 0, 0, 142, 144, 3, 12, 6, 0, 143, 141, 1, 0, 0, 0, 144, 147,
4007
- 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 11, 1, 0, 0, 0, 147, 145, 1,
4008
- 0, 0, 0, 148, 149, 3, 96, 48, 0, 149, 150, 5, 9, 0, 0, 150, 151, 5, 2, 0, 0, 151, 152,
4009
- 3, 8, 4, 0, 152, 153, 5, 3, 0, 0, 153, 13, 1, 0, 0, 0, 154, 162, 3, 16, 8, 0, 155, 157,
4010
- 7, 0, 0, 0, 156, 158, 5, 6, 0, 0, 157, 156, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 159,
4011
- 1, 0, 0, 0, 159, 161, 3, 16, 8, 0, 160, 155, 1, 0, 0, 0, 161, 164, 1, 0, 0, 0, 162, 160,
4012
- 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 15, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 165, 166, 3,
4013
- 18, 9, 0, 166, 17, 1, 0, 0, 0, 167, 173, 3, 20, 10, 0, 168, 169, 5, 2, 0, 0, 169, 170,
4014
- 3, 8, 4, 0, 170, 171, 5, 3, 0, 0, 171, 173, 1, 0, 0, 0, 172, 167, 1, 0, 0, 0, 172, 168,
4015
- 1, 0, 0, 0, 173, 19, 1, 0, 0, 0, 174, 176, 5, 76, 0, 0, 175, 177, 3, 22, 11, 0, 176, 175,
4016
- 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 183, 3, 24, 12, 0, 179, 180,
4017
- 5, 1, 0, 0, 180, 182, 3, 24, 12, 0, 181, 179, 1, 0, 0, 0, 182, 185, 1, 0, 0, 0, 183, 181,
4018
- 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 187, 1, 0, 0, 0, 185, 183, 1, 0, 0, 0, 186, 188,
4019
- 3, 26, 13, 0, 187, 186, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 190, 1, 0, 0, 0, 189, 191,
4020
- 3, 36, 18, 0, 190, 189, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 193, 1, 0, 0, 0, 192, 194,
4021
- 3, 38, 19, 0, 193, 192, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 196, 1, 0, 0, 0, 195, 197,
4022
- 3, 40, 20, 0, 196, 195, 1, 0, 0, 0, 196, 197, 1, 0, 0, 0, 197, 199, 1, 0, 0, 0, 198, 200,
4023
- 3, 42, 21, 0, 199, 198, 1, 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 202, 1, 0, 0, 0, 201, 203,
4024
- 3, 46, 23, 0, 202, 201, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 21, 1, 0, 0, 0, 204, 205,
4025
- 7, 1, 0, 0, 205, 23, 1, 0, 0, 0, 206, 211, 3, 70, 35, 0, 207, 209, 5, 9, 0, 0, 208, 207,
4026
- 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 212, 3, 96, 48, 0, 211, 208,
4027
- 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 219, 1, 0, 0, 0, 213, 214, 3, 98, 49, 0, 214, 215,
4028
- 5, 4, 0, 0, 215, 216, 5, 103, 0, 0, 216, 219, 1, 0, 0, 0, 217, 219, 5, 103, 0, 0, 218,
4029
- 206, 1, 0, 0, 0, 218, 213, 1, 0, 0, 0, 218, 217, 1, 0, 0, 0, 219, 25, 1, 0, 0, 0, 220, 221,
4030
- 5, 42, 0, 0, 221, 226, 3, 28, 14, 0, 222, 223, 5, 1, 0, 0, 223, 225, 3, 28, 14, 0, 224,
4031
- 222, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227,
4032
- 27, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 229, 230, 6, 14, -1, 0, 230, 231, 3, 32, 16, 0, 231,
4033
- 241, 1, 0, 0, 0, 232, 233, 10, 2, 0, 0, 233, 234, 3, 30, 15, 0, 234, 235, 5, 55, 0, 0,
4034
- 235, 236, 3, 28, 14, 0, 236, 237, 5, 67, 0, 0, 237, 238, 3, 70, 35, 0, 238, 240, 1, 0,
4035
- 0, 0, 239, 232, 1, 0, 0, 0, 240, 243, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 241, 242, 1, 0,
4036
- 0, 0, 242, 29, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 244, 246, 5, 48, 0, 0, 245, 244, 1, 0,
4037
- 0, 0, 245, 246, 1, 0, 0, 0, 246, 261, 1, 0, 0, 0, 247, 249, 5, 58, 0, 0, 248, 250, 5, 70,
4038
- 0, 0, 249, 248, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 261, 1, 0, 0, 0, 251, 253, 5, 75,
4039
- 0, 0, 252, 254, 5, 70, 0, 0, 253, 252, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 261, 1, 0,
4040
- 0, 0, 255, 257, 5, 43, 0, 0, 256, 258, 5, 70, 0, 0, 257, 256, 1, 0, 0, 0, 257, 258, 1,
4041
- 0, 0, 0, 258, 261, 1, 0, 0, 0, 259, 261, 5, 24, 0, 0, 260, 245, 1, 0, 0, 0, 260, 247, 1,
4042
- 0, 0, 0, 260, 251, 1, 0, 0, 0, 260, 255, 1, 0, 0, 0, 260, 259, 1, 0, 0, 0, 261, 31, 1, 0,
4043
- 0, 0, 262, 267, 3, 34, 17, 0, 263, 265, 5, 9, 0, 0, 264, 263, 1, 0, 0, 0, 264, 265, 1,
4044
- 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 268, 3, 96, 48, 0, 267, 264, 1, 0, 0, 0, 267, 268,
4045
- 1, 0, 0, 0, 268, 33, 1, 0, 0, 0, 269, 275, 3, 102, 51, 0, 270, 271, 5, 2, 0, 0, 271, 272,
4046
- 3, 8, 4, 0, 272, 273, 5, 3, 0, 0, 273, 275, 1, 0, 0, 0, 274, 269, 1, 0, 0, 0, 274, 270,
4047
- 1, 0, 0, 0, 275, 35, 1, 0, 0, 0, 276, 277, 5, 93, 0, 0, 277, 278, 3, 70, 35, 0, 278, 37,
4048
- 1, 0, 0, 0, 279, 280, 5, 44, 0, 0, 280, 282, 5, 15, 0, 0, 281, 283, 3, 22, 11, 0, 282,
4049
- 281, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 289, 3, 70, 35, 0, 285,
4050
- 286, 5, 1, 0, 0, 286, 288, 3, 70, 35, 0, 287, 285, 1, 0, 0, 0, 288, 291, 1, 0, 0, 0, 289,
4051
- 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 39, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 292, 293,
4052
- 5, 45, 0, 0, 293, 294, 3, 70, 35, 0, 294, 41, 1, 0, 0, 0, 295, 296, 5, 69, 0, 0, 296, 297,
4053
- 5, 15, 0, 0, 297, 302, 3, 44, 22, 0, 298, 299, 5, 1, 0, 0, 299, 301, 3, 44, 22, 0, 300,
4054
- 298, 1, 0, 0, 0, 301, 304, 1, 0, 0, 0, 302, 300, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303,
4055
- 43, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 305, 307, 3, 70, 35, 0, 306, 308, 7, 2, 0, 0, 307,
4056
- 306, 1, 0, 0, 0, 307, 308, 1, 0, 0, 0, 308, 311, 1, 0, 0, 0, 309, 310, 5, 64, 0, 0, 310,
4057
- 312, 7, 3, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 45, 1, 0, 0, 0, 313, 314,
4058
- 5, 60, 0, 0, 314, 317, 3, 70, 35, 0, 315, 316, 5, 66, 0, 0, 316, 318, 3, 70, 35, 0, 317,
4059
- 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 47, 1, 0, 0, 0, 319, 320, 5, 49, 0, 0, 320,
4060
- 321, 5, 53, 0, 0, 321, 323, 3, 102, 51, 0, 322, 324, 3, 50, 25, 0, 323, 322, 1, 0, 0,
4061
- 0, 323, 324, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 3, 8, 4, 0, 326, 49, 1, 0, 0, 0,
4062
- 327, 328, 5, 2, 0, 0, 328, 333, 3, 100, 50, 0, 329, 330, 5, 1, 0, 0, 330, 332, 3, 100,
4063
- 50, 0, 331, 329, 1, 0, 0, 0, 332, 335, 1, 0, 0, 0, 333, 331, 1, 0, 0, 0, 333, 334, 1, 0,
4064
- 0, 0, 334, 336, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 336, 337, 5, 3, 0, 0, 337, 51, 1, 0, 0,
4065
- 0, 338, 339, 5, 89, 0, 0, 339, 340, 3, 102, 51, 0, 340, 341, 5, 77, 0, 0, 341, 346, 3,
4066
- 54, 27, 0, 342, 343, 5, 1, 0, 0, 343, 345, 3, 54, 27, 0, 344, 342, 1, 0, 0, 0, 345, 348,
4067
- 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 350, 1, 0, 0, 0, 348, 346,
4068
- 1, 0, 0, 0, 349, 351, 3, 36, 18, 0, 350, 349, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 53,
4069
- 1, 0, 0, 0, 352, 353, 3, 100, 50, 0, 353, 354, 5, 95, 0, 0, 354, 355, 3, 70, 35, 0, 355,
4070
- 55, 1, 0, 0, 0, 356, 357, 5, 28, 0, 0, 357, 358, 5, 42, 0, 0, 358, 360, 3, 102, 51, 0,
4071
- 359, 361, 3, 36, 18, 0, 360, 359, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 57, 1, 0, 0, 0,
4072
- 362, 363, 5, 23, 0, 0, 363, 367, 5, 79, 0, 0, 364, 365, 5, 46, 0, 0, 365, 366, 5, 61,
4073
- 0, 0, 366, 368, 5, 37, 0, 0, 367, 364, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, 369, 1, 0,
4074
- 0, 0, 369, 370, 3, 104, 52, 0, 370, 371, 5, 2, 0, 0, 371, 376, 3, 60, 30, 0, 372, 373,
4075
- 5, 1, 0, 0, 373, 375, 3, 60, 30, 0, 374, 372, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376, 374,
4076
- 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 379, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379, 382,
4077
- 5, 3, 0, 0, 380, 381, 5, 94, 0, 0, 381, 383, 3, 90, 45, 0, 382, 380, 1, 0, 0, 0, 382, 383,
4078
- 1, 0, 0, 0, 383, 59, 1, 0, 0, 0, 384, 387, 3, 62, 31, 0, 385, 387, 3, 64, 32, 0, 386, 384,
4079
- 1, 0, 0, 0, 386, 385, 1, 0, 0, 0, 387, 61, 1, 0, 0, 0, 388, 389, 3, 100, 50, 0, 389, 392,
4080
- 3, 88, 44, 0, 390, 391, 5, 61, 0, 0, 391, 393, 5, 62, 0, 0, 392, 390, 1, 0, 0, 0, 392,
4081
- 393, 1, 0, 0, 0, 393, 396, 1, 0, 0, 0, 394, 395, 5, 27, 0, 0, 395, 397, 3, 70, 35, 0, 396,
4082
- 394, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 400, 1, 0, 0, 0, 398, 399, 5, 71, 0, 0, 399,
4083
- 401, 5, 56, 0, 0, 400, 398, 1, 0, 0, 0, 400, 401, 1, 0, 0, 0, 401, 63, 1, 0, 0, 0, 402,
4084
- 403, 5, 22, 0, 0, 403, 405, 3, 96, 48, 0, 404, 402, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405,
4085
- 461, 1, 0, 0, 0, 406, 407, 5, 71, 0, 0, 407, 408, 5, 56, 0, 0, 408, 409, 5, 2, 0, 0, 409,
4086
- 414, 3, 100, 50, 0, 410, 411, 5, 1, 0, 0, 411, 413, 3, 100, 50, 0, 412, 410, 1, 0, 0,
4087
- 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 417, 1, 0, 0,
4088
- 0, 416, 414, 1, 0, 0, 0, 417, 418, 5, 3, 0, 0, 418, 462, 1, 0, 0, 0, 419, 420, 5, 88, 0,
4089
- 0, 420, 421, 5, 2, 0, 0, 421, 426, 3, 100, 50, 0, 422, 423, 5, 1, 0, 0, 423, 425, 3, 100,
4090
- 50, 0, 424, 422, 1, 0, 0, 0, 425, 428, 1, 0, 0, 0, 426, 424, 1, 0, 0, 0, 426, 427, 1, 0,
4091
- 0, 0, 427, 429, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 429, 430, 5, 3, 0, 0, 430, 462, 1, 0,
4092
- 0, 0, 431, 432, 5, 19, 0, 0, 432, 433, 5, 2, 0, 0, 433, 434, 3, 70, 35, 0, 434, 435, 5,
4093
- 3, 0, 0, 435, 462, 1, 0, 0, 0, 436, 437, 5, 41, 0, 0, 437, 438, 5, 56, 0, 0, 438, 439,
4094
- 5, 2, 0, 0, 439, 444, 3, 100, 50, 0, 440, 441, 5, 1, 0, 0, 441, 443, 3, 100, 50, 0, 442,
4095
- 440, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445,
4096
- 447, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 448, 5, 3, 0, 0, 448, 449, 5, 73, 0, 0, 449,
4097
- 450, 3, 102, 51, 0, 450, 451, 5, 2, 0, 0, 451, 456, 3, 100, 50, 0, 452, 453, 5, 1, 0,
4098
- 0, 453, 455, 3, 100, 50, 0, 454, 452, 1, 0, 0, 0, 455, 458, 1, 0, 0, 0, 456, 454, 1, 0,
4099
- 0, 0, 456, 457, 1, 0, 0, 0, 457, 459, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 459, 460, 5, 3,
4100
- 0, 0, 460, 462, 1, 0, 0, 0, 461, 406, 1, 0, 0, 0, 461, 419, 1, 0, 0, 0, 461, 431, 1, 0,
4101
- 0, 0, 461, 436, 1, 0, 0, 0, 462, 65, 1, 0, 0, 0, 463, 464, 5, 7, 0, 0, 464, 467, 5, 79,
4102
- 0, 0, 465, 466, 5, 46, 0, 0, 466, 468, 5, 37, 0, 0, 467, 465, 1, 0, 0, 0, 467, 468, 1,
4103
- 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 501, 3, 102, 51, 0, 470, 471, 5, 5, 0, 0, 471, 475,
4104
- 5, 21, 0, 0, 472, 473, 5, 46, 0, 0, 473, 474, 5, 61, 0, 0, 474, 476, 5, 37, 0, 0, 475,
4105
- 472, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 502, 3, 62, 31, 0, 478,
4106
- 479, 5, 32, 0, 0, 479, 482, 5, 21, 0, 0, 480, 481, 5, 46, 0, 0, 481, 483, 5, 37, 0, 0,
4107
- 482, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 502, 3, 100, 50,
4108
- 0, 485, 486, 5, 74, 0, 0, 486, 487, 5, 85, 0, 0, 487, 502, 3, 104, 52, 0, 488, 489, 5,
4109
- 7, 0, 0, 489, 490, 5, 21, 0, 0, 490, 491, 3, 100, 50, 0, 491, 492, 5, 77, 0, 0, 492, 493,
4110
- 5, 27, 0, 0, 493, 494, 3, 70, 35, 0, 494, 502, 1, 0, 0, 0, 495, 496, 5, 7, 0, 0, 496, 497,
4111
- 5, 21, 0, 0, 497, 498, 3, 100, 50, 0, 498, 499, 5, 32, 0, 0, 499, 500, 5, 27, 0, 0, 500,
4112
- 502, 1, 0, 0, 0, 501, 470, 1, 0, 0, 0, 501, 478, 1, 0, 0, 0, 501, 485, 1, 0, 0, 0, 501,
4113
- 488, 1, 0, 0, 0, 501, 495, 1, 0, 0, 0, 502, 67, 1, 0, 0, 0, 503, 504, 5, 32, 0, 0, 504,
4114
- 507, 5, 79, 0, 0, 505, 506, 5, 46, 0, 0, 506, 508, 5, 37, 0, 0, 507, 505, 1, 0, 0, 0, 507,
4115
- 508, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 510, 3, 102, 51, 0, 510, 69, 1, 0, 0, 0, 511,
4116
- 512, 3, 72, 36, 0, 512, 71, 1, 0, 0, 0, 513, 514, 6, 36, -1, 0, 514, 518, 3, 74, 37, 0,
4117
- 515, 516, 5, 61, 0, 0, 516, 518, 3, 72, 36, 3, 517, 513, 1, 0, 0, 0, 517, 515, 1, 0, 0,
4118
- 0, 518, 527, 1, 0, 0, 0, 519, 520, 10, 2, 0, 0, 520, 521, 5, 8, 0, 0, 521, 526, 3, 72,
4119
- 36, 3, 522, 523, 10, 1, 0, 0, 523, 524, 5, 68, 0, 0, 524, 526, 3, 72, 36, 2, 525, 519,
4120
- 1, 0, 0, 0, 525, 522, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 527, 528,
4121
- 1, 0, 0, 0, 528, 73, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 530, 532, 3, 80, 40, 0, 531, 533,
4122
- 3, 76, 38, 0, 532, 531, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 75, 1, 0, 0, 0, 534, 535,
4123
- 3, 78, 39, 0, 535, 536, 3, 80, 40, 0, 536, 590, 1, 0, 0, 0, 537, 539, 5, 61, 0, 0, 538,
4124
- 537, 1, 0, 0, 0, 538, 539, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 541, 5, 47, 0, 0, 541,
4125
- 542, 5, 2, 0, 0, 542, 547, 3, 70, 35, 0, 543, 544, 5, 1, 0, 0, 544, 546, 3, 70, 35, 0,
4126
- 545, 543, 1, 0, 0, 0, 546, 549, 1, 0, 0, 0, 547, 545, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0,
4127
- 548, 550, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 550, 551, 5, 3, 0, 0, 551, 590, 1, 0, 0, 0,
4128
- 552, 554, 5, 61, 0, 0, 553, 552, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0,
4129
- 555, 556, 5, 47, 0, 0, 556, 557, 5, 2, 0, 0, 557, 558, 3, 8, 4, 0, 558, 559, 5, 3, 0, 0,
4130
- 559, 590, 1, 0, 0, 0, 560, 562, 5, 61, 0, 0, 561, 560, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0,
4131
- 562, 563, 1, 0, 0, 0, 563, 564, 5, 11, 0, 0, 564, 565, 3, 80, 40, 0, 565, 566, 5, 8, 0,
4132
- 0, 566, 567, 3, 80, 40, 0, 567, 590, 1, 0, 0, 0, 568, 570, 5, 61, 0, 0, 569, 568, 1, 0,
4133
- 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 572, 5, 59, 0, 0, 572, 575, 3, 80,
4134
- 40, 0, 573, 574, 5, 35, 0, 0, 574, 576, 3, 80, 40, 0, 575, 573, 1, 0, 0, 0, 575, 576,
4135
- 1, 0, 0, 0, 576, 590, 1, 0, 0, 0, 577, 579, 5, 54, 0, 0, 578, 580, 5, 61, 0, 0, 579, 578,
4136
- 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 590, 5, 62, 0, 0, 582, 584,
4137
- 5, 54, 0, 0, 583, 585, 5, 61, 0, 0, 584, 583, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 586,
4138
- 1, 0, 0, 0, 586, 587, 5, 30, 0, 0, 587, 588, 5, 42, 0, 0, 588, 590, 3, 80, 40, 0, 589,
4139
- 534, 1, 0, 0, 0, 589, 538, 1, 0, 0, 0, 589, 553, 1, 0, 0, 0, 589, 561, 1, 0, 0, 0, 589,
4140
- 569, 1, 0, 0, 0, 589, 577, 1, 0, 0, 0, 589, 582, 1, 0, 0, 0, 590, 77, 1, 0, 0, 0, 591, 592,
4141
- 7, 4, 0, 0, 592, 79, 1, 0, 0, 0, 593, 594, 6, 40, -1, 0, 594, 598, 3, 82, 41, 0, 595, 596,
4142
- 7, 5, 0, 0, 596, 598, 3, 80, 40, 4, 597, 593, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 598, 610,
4143
- 1, 0, 0, 0, 599, 600, 10, 3, 0, 0, 600, 601, 7, 6, 0, 0, 601, 609, 3, 80, 40, 4, 602, 603,
4144
- 10, 2, 0, 0, 603, 604, 7, 5, 0, 0, 604, 609, 3, 80, 40, 3, 605, 606, 10, 1, 0, 0, 606,
4145
- 607, 5, 106, 0, 0, 607, 609, 3, 80, 40, 2, 608, 599, 1, 0, 0, 0, 608, 602, 1, 0, 0, 0,
4146
- 608, 605, 1, 0, 0, 0, 609, 612, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0,
4147
- 611, 81, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 613, 694, 3, 94, 47, 0, 614, 615, 3, 98, 49,
4148
- 0, 615, 627, 5, 2, 0, 0, 616, 618, 3, 22, 11, 0, 617, 616, 1, 0, 0, 0, 617, 618, 1, 0,
4149
- 0, 0, 618, 619, 1, 0, 0, 0, 619, 624, 3, 70, 35, 0, 620, 621, 5, 1, 0, 0, 621, 623, 3,
4150
- 70, 35, 0, 622, 620, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625,
4151
- 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 627, 617, 1, 0, 0, 0, 627, 628,
4152
- 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 630, 5, 3, 0, 0, 630, 694, 1, 0, 0, 0, 631, 633,
4153
- 5, 16, 0, 0, 632, 634, 3, 84, 42, 0, 633, 632, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 633,
4154
- 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 638, 5, 33, 0, 0, 638, 640,
4155
- 3, 70, 35, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 642,
4156
- 5, 34, 0, 0, 642, 694, 1, 0, 0, 0, 643, 644, 5, 16, 0, 0, 644, 646, 3, 70, 35, 0, 645,
4157
- 647, 3, 84, 42, 0, 646, 645, 1, 0, 0, 0, 647, 648, 1, 0, 0, 0, 648, 646, 1, 0, 0, 0, 648,
4158
- 649, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 651, 5, 33, 0, 0, 651, 653, 3, 70, 35, 0, 652,
4159
- 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 5, 34, 0, 0, 655,
4160
- 694, 1, 0, 0, 0, 656, 657, 5, 17, 0, 0, 657, 658, 5, 2, 0, 0, 658, 659, 3, 70, 35, 0, 659,
4161
- 660, 5, 9, 0, 0, 660, 661, 3, 88, 44, 0, 661, 662, 5, 3, 0, 0, 662, 694, 1, 0, 0, 0, 663,
4162
- 664, 5, 20, 0, 0, 664, 665, 5, 2, 0, 0, 665, 670, 3, 70, 35, 0, 666, 667, 5, 1, 0, 0, 667,
4163
- 669, 3, 70, 35, 0, 668, 666, 1, 0, 0, 0, 669, 672, 1, 0, 0, 0, 670, 668, 1, 0, 0, 0, 670,
4164
- 671, 1, 0, 0, 0, 671, 673, 1, 0, 0, 0, 672, 670, 1, 0, 0, 0, 673, 674, 5, 3, 0, 0, 674,
4165
- 694, 1, 0, 0, 0, 675, 676, 5, 63, 0, 0, 676, 677, 5, 2, 0, 0, 677, 678, 3, 80, 40, 0, 678,
4166
- 679, 5, 1, 0, 0, 679, 680, 3, 80, 40, 0, 680, 681, 5, 3, 0, 0, 681, 694, 1, 0, 0, 0, 682,
4167
- 683, 5, 2, 0, 0, 683, 684, 3, 70, 35, 0, 684, 685, 5, 3, 0, 0, 685, 694, 1, 0, 0, 0, 686,
4168
- 687, 5, 37, 0, 0, 687, 688, 5, 2, 0, 0, 688, 689, 3, 8, 4, 0, 689, 690, 5, 3, 0, 0, 690,
4169
- 694, 1, 0, 0, 0, 691, 694, 3, 86, 43, 0, 692, 694, 3, 98, 49, 0, 693, 613, 1, 0, 0, 0,
4170
- 693, 614, 1, 0, 0, 0, 693, 631, 1, 0, 0, 0, 693, 643, 1, 0, 0, 0, 693, 656, 1, 0, 0, 0,
4171
- 693, 663, 1, 0, 0, 0, 693, 675, 1, 0, 0, 0, 693, 682, 1, 0, 0, 0, 693, 686, 1, 0, 0, 0,
4172
- 693, 691, 1, 0, 0, 0, 693, 692, 1, 0, 0, 0, 694, 83, 1, 0, 0, 0, 695, 696, 5, 92, 0, 0,
4173
- 696, 697, 3, 70, 35, 0, 697, 698, 5, 81, 0, 0, 698, 699, 3, 70, 35, 0, 699, 85, 1, 0,
4174
- 0, 0, 700, 701, 5, 2, 0, 0, 701, 702, 3, 8, 4, 0, 702, 703, 5, 3, 0, 0, 703, 87, 1, 0, 0,
4175
- 0, 704, 751, 5, 14, 0, 0, 705, 751, 5, 84, 0, 0, 706, 751, 5, 78, 0, 0, 707, 751, 5, 50,
4176
- 0, 0, 708, 751, 5, 51, 0, 0, 709, 751, 5, 12, 0, 0, 710, 751, 5, 40, 0, 0, 711, 751, 5,
4177
- 31, 0, 0, 712, 720, 5, 26, 0, 0, 713, 714, 5, 2, 0, 0, 714, 717, 5, 111, 0, 0, 715, 716,
4178
- 5, 1, 0, 0, 716, 718, 5, 111, 0, 0, 717, 715, 1, 0, 0, 0, 717, 718, 1, 0, 0, 0, 718, 719,
4179
- 1, 0, 0, 0, 719, 721, 5, 3, 0, 0, 720, 713, 1, 0, 0, 0, 720, 721, 1, 0, 0, 0, 721, 751,
4180
- 1, 0, 0, 0, 722, 730, 5, 65, 0, 0, 723, 724, 5, 2, 0, 0, 724, 727, 5, 111, 0, 0, 725, 726,
4181
- 5, 1, 0, 0, 726, 728, 5, 111, 0, 0, 727, 725, 1, 0, 0, 0, 727, 728, 1, 0, 0, 0, 728, 729,
4182
- 1, 0, 0, 0, 729, 731, 5, 3, 0, 0, 730, 723, 1, 0, 0, 0, 730, 731, 1, 0, 0, 0, 731, 751,
4183
- 1, 0, 0, 0, 732, 736, 5, 90, 0, 0, 733, 734, 5, 2, 0, 0, 734, 735, 5, 111, 0, 0, 735, 737,
4184
- 5, 3, 0, 0, 736, 733, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 751, 1, 0, 0, 0, 738, 742,
4185
- 5, 18, 0, 0, 739, 740, 5, 2, 0, 0, 740, 741, 5, 111, 0, 0, 741, 743, 5, 3, 0, 0, 742, 739,
4186
- 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743, 751, 1, 0, 0, 0, 744, 751, 5, 80, 0, 0, 745, 751,
4187
- 5, 25, 0, 0, 746, 751, 5, 82, 0, 0, 747, 751, 5, 83, 0, 0, 748, 751, 5, 13, 0, 0, 749,
4188
- 751, 5, 91, 0, 0, 750, 704, 1, 0, 0, 0, 750, 705, 1, 0, 0, 0, 750, 706, 1, 0, 0, 0, 750,
4189
- 707, 1, 0, 0, 0, 750, 708, 1, 0, 0, 0, 750, 709, 1, 0, 0, 0, 750, 710, 1, 0, 0, 0, 750,
4190
- 711, 1, 0, 0, 0, 750, 712, 1, 0, 0, 0, 750, 722, 1, 0, 0, 0, 750, 732, 1, 0, 0, 0, 750,
4191
- 738, 1, 0, 0, 0, 750, 744, 1, 0, 0, 0, 750, 745, 1, 0, 0, 0, 750, 746, 1, 0, 0, 0, 750,
4192
- 747, 1, 0, 0, 0, 750, 748, 1, 0, 0, 0, 750, 749, 1, 0, 0, 0, 751, 89, 1, 0, 0, 0, 752, 753,
4193
- 5, 2, 0, 0, 753, 758, 3, 92, 46, 0, 754, 755, 5, 1, 0, 0, 755, 757, 3, 92, 46, 0, 756,
4194
- 754, 1, 0, 0, 0, 757, 760, 1, 0, 0, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759,
4195
- 761, 1, 0, 0, 0, 760, 758, 1, 0, 0, 0, 761, 762, 5, 3, 0, 0, 762, 91, 1, 0, 0, 0, 763, 764,
4196
- 3, 96, 48, 0, 764, 765, 5, 95, 0, 0, 765, 766, 3, 94, 47, 0, 766, 93, 1, 0, 0, 0, 767,
4197
- 776, 5, 62, 0, 0, 768, 776, 5, 86, 0, 0, 769, 776, 5, 38, 0, 0, 770, 776, 5, 111, 0, 0,
4198
- 771, 776, 5, 112, 0, 0, 772, 776, 5, 113, 0, 0, 773, 776, 5, 109, 0, 0, 774, 776, 5,
4199
- 110, 0, 0, 775, 767, 1, 0, 0, 0, 775, 768, 1, 0, 0, 0, 775, 769, 1, 0, 0, 0, 775, 770,
4200
- 1, 0, 0, 0, 775, 771, 1, 0, 0, 0, 775, 772, 1, 0, 0, 0, 775, 773, 1, 0, 0, 0, 775, 774,
4201
- 1, 0, 0, 0, 776, 95, 1, 0, 0, 0, 777, 783, 5, 114, 0, 0, 778, 783, 5, 115, 0, 0, 779, 783,
4202
- 5, 116, 0, 0, 780, 783, 5, 117, 0, 0, 781, 783, 3, 106, 53, 0, 782, 777, 1, 0, 0, 0, 782,
4203
- 778, 1, 0, 0, 0, 782, 779, 1, 0, 0, 0, 782, 780, 1, 0, 0, 0, 782, 781, 1, 0, 0, 0, 783,
4204
- 97, 1, 0, 0, 0, 784, 789, 3, 96, 48, 0, 785, 786, 5, 4, 0, 0, 786, 788, 3, 96, 48, 0, 787,
4205
- 785, 1, 0, 0, 0, 788, 791, 1, 0, 0, 0, 789, 787, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790,
4206
- 99, 1, 0, 0, 0, 791, 789, 1, 0, 0, 0, 792, 793, 3, 96, 48, 0, 793, 101, 1, 0, 0, 0, 794,
4207
- 795, 3, 98, 49, 0, 795, 103, 1, 0, 0, 0, 796, 797, 3, 98, 49, 0, 797, 105, 1, 0, 0, 0,
4208
- 798, 799, 7, 7, 0, 0, 799, 107, 1, 0, 0, 0, 95, 111, 120, 129, 132, 138, 145, 157, 162,
4209
- 172, 176, 183, 187, 190, 193, 196, 199, 202, 208, 211, 218, 226, 241, 245, 249,
4210
- 253, 257, 260, 264, 267, 274, 282, 289, 302, 307, 311, 317, 323, 333, 346, 350,
4211
- 360, 367, 376, 382, 386, 392, 396, 400, 404, 414, 426, 444, 456, 461, 467, 475,
4212
- 482, 501, 507, 517, 525, 527, 532, 538, 547, 553, 561, 569, 575, 579, 584, 589,
4213
- 597, 608, 610, 617, 624, 627, 635, 639, 648, 652, 670, 693, 717, 720, 727, 730,
4214
- 736, 742, 750, 758, 775, 782, 789
4097
+ 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 1, 0, 5, 0, 118,
4098
+ 8, 0, 10, 0, 12, 0, 121, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 3, 2, 129, 8, 2, 1, 3, 1,
4099
+ 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 138, 8, 3, 1, 4, 3, 4, 141, 8, 4, 1, 4, 1, 4, 1, 5, 1,
4100
+ 5, 3, 5, 147, 8, 5, 1, 5, 1, 5, 1, 5, 5, 5, 152, 8, 5, 10, 5, 12, 5, 155, 9, 5, 1, 6, 1, 6,
4101
+ 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 3, 7, 166, 8, 7, 1, 7, 5, 7, 169, 8, 7, 10, 7, 12,
4102
+ 7, 172, 9, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 181, 8, 9, 1, 10, 1, 10, 3, 10,
4103
+ 185, 8, 10, 1, 10, 1, 10, 1, 10, 5, 10, 190, 8, 10, 10, 10, 12, 10, 193, 9, 10, 1, 10,
4104
+ 3, 10, 196, 8, 10, 1, 10, 3, 10, 199, 8, 10, 1, 10, 3, 10, 202, 8, 10, 1, 10, 3, 10, 205,
4105
+ 8, 10, 1, 10, 3, 10, 208, 8, 10, 1, 10, 3, 10, 211, 8, 10, 1, 11, 1, 11, 1, 12, 1, 12, 3,
4106
+ 12, 217, 8, 12, 1, 12, 3, 12, 220, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12,
4107
+ 3, 12, 229, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 235, 8, 13, 10, 13, 12, 13, 238,
4108
+ 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 250,
4109
+ 8, 14, 10, 14, 12, 14, 253, 9, 14, 1, 15, 3, 15, 256, 8, 15, 1, 15, 1, 15, 3, 15, 260,
4110
+ 8, 15, 1, 15, 1, 15, 3, 15, 264, 8, 15, 1, 15, 1, 15, 3, 15, 268, 8, 15, 1, 15, 3, 15, 271,
4111
+ 8, 15, 1, 16, 1, 16, 3, 16, 275, 8, 16, 1, 16, 3, 16, 278, 8, 16, 1, 17, 1, 17, 1, 17, 1,
4112
+ 17, 1, 17, 3, 17, 285, 8, 17, 1, 18, 1, 18, 1, 18, 3, 18, 290, 8, 18, 1, 19, 1, 19, 1, 19,
4113
+ 3, 19, 295, 8, 19, 1, 19, 1, 19, 1, 19, 5, 19, 300, 8, 19, 10, 19, 12, 19, 303, 9, 19,
4114
+ 1, 20, 1, 20, 1, 20, 3, 20, 308, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 315, 8,
4115
+ 21, 10, 21, 12, 21, 318, 9, 21, 1, 22, 1, 22, 3, 22, 322, 8, 22, 1, 22, 1, 22, 3, 22, 326,
4116
+ 8, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 332, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24,
4117
+ 338, 8, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 346, 8, 25, 10, 25, 12, 25,
4118
+ 349, 9, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 359, 8, 26, 10,
4119
+ 26, 12, 26, 362, 9, 26, 1, 26, 3, 26, 365, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1,
4120
+ 28, 1, 28, 1, 28, 3, 28, 375, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 382, 8, 29,
4121
+ 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 389, 8, 29, 10, 29, 12, 29, 392, 9, 29, 1, 29,
4122
+ 1, 29, 1, 29, 3, 29, 397, 8, 29, 1, 30, 1, 30, 3, 30, 401, 8, 30, 1, 31, 1, 31, 1, 31, 1,
4123
+ 31, 3, 31, 407, 8, 31, 1, 31, 1, 31, 3, 31, 411, 8, 31, 1, 31, 1, 31, 3, 31, 415, 8, 31,
4124
+ 1, 32, 1, 32, 1, 33, 1, 33, 3, 33, 421, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
4125
+ 5, 33, 429, 8, 33, 10, 33, 12, 33, 432, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
4126
+ 1, 33, 5, 33, 441, 8, 33, 10, 33, 12, 33, 444, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
4127
+ 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 459, 8, 33, 10, 33, 12, 33,
4128
+ 462, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 471, 8, 33, 10, 33,
4129
+ 12, 33, 474, 9, 33, 1, 33, 1, 33, 3, 33, 478, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34,
4130
+ 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,
4131
+ 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,
4132
+ 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,
4133
+ 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,
4134
+ 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,
4135
+ 10, 37, 12, 37, 545, 9, 37, 1, 38, 1, 38, 3, 38, 549, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39,
4136
+ 3, 39, 555, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 562, 8, 39, 10, 39, 12, 39,
4137
+ 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,
4138
+ 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,
4139
+ 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,
4140
+ 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,
4141
+ 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,
4142
+ 1, 41, 5, 41, 625, 8, 41, 10, 41, 12, 41, 628, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42,
4143
+ 634, 8, 42, 1, 42, 1, 42, 1, 42, 5, 42, 639, 8, 42, 10, 42, 12, 42, 642, 9, 42, 3, 42,
4144
+ 644, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 650, 8, 42, 11, 42, 12, 42, 651, 1, 42,
4145
+ 1, 42, 3, 42, 656, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 663, 8, 42, 11, 42,
4146
+ 12, 42, 664, 1, 42, 1, 42, 3, 42, 669, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42,
4147
+ 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,
4148
+ 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,
4149
+ 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,
4150
+ 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,
4151
+ 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,
4152
+ 737, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 744, 8, 45, 1, 45, 3, 45, 747, 8,
4153
+ 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,
4154
+ 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,
4155
+ 1, 46, 5, 46, 773, 8, 46, 10, 46, 12, 46, 776, 9, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47,
4156
+ 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,
4157
+ 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,
4158
+ 50, 12, 50, 807, 9, 50, 1, 51, 1, 51, 1, 51, 3, 51, 812, 8, 51, 1, 52, 1, 52, 1, 53, 1,
4159
+ 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 0, 3, 28, 74, 82, 58,
4160
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
4161
+ 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
4162
+ 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 0, 8, 3, 0, 36, 36, 52,
4163
+ 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,
4164
+ 1, 0, 101, 102, 1, 0, 103, 105, 22, 0, 5, 6, 10, 10, 12, 15, 18, 18, 20, 21, 24, 27, 29,
4165
+ 29, 31, 31, 38, 40, 43, 43, 46, 46, 50, 51, 56, 58, 60, 60, 63, 66, 70, 70, 75, 75, 78,
4166
+ 78, 80, 80, 82, 86, 88, 88, 90, 91, 920, 0, 119, 1, 0, 0, 0, 2, 124, 1, 0, 0, 0, 4, 126,
4167
+ 1, 0, 0, 0, 6, 137, 1, 0, 0, 0, 8, 140, 1, 0, 0, 0, 10, 144, 1, 0, 0, 0, 12, 156, 1, 0, 0,
4168
+ 0, 14, 162, 1, 0, 0, 0, 16, 173, 1, 0, 0, 0, 18, 180, 1, 0, 0, 0, 20, 182, 1, 0, 0, 0, 22,
4169
+ 212, 1, 0, 0, 0, 24, 228, 1, 0, 0, 0, 26, 230, 1, 0, 0, 0, 28, 239, 1, 0, 0, 0, 30, 270,
4170
+ 1, 0, 0, 0, 32, 272, 1, 0, 0, 0, 34, 284, 1, 0, 0, 0, 36, 286, 1, 0, 0, 0, 38, 291, 1, 0,
4171
+ 0, 0, 40, 304, 1, 0, 0, 0, 42, 309, 1, 0, 0, 0, 44, 319, 1, 0, 0, 0, 46, 327, 1, 0, 0, 0,
4172
+ 48, 333, 1, 0, 0, 0, 50, 341, 1, 0, 0, 0, 52, 352, 1, 0, 0, 0, 54, 366, 1, 0, 0, 0, 56, 370,
4173
+ 1, 0, 0, 0, 58, 376, 1, 0, 0, 0, 60, 400, 1, 0, 0, 0, 62, 402, 1, 0, 0, 0, 64, 416, 1, 0,
4174
+ 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,
4175
+ 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,
4176
+ 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,
4177
+ 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,
4178
+ 100, 800, 1, 0, 0, 0, 102, 811, 1, 0, 0, 0, 104, 813, 1, 0, 0, 0, 106, 815, 1, 0, 0, 0,
4179
+ 108, 817, 1, 0, 0, 0, 110, 819, 1, 0, 0, 0, 112, 821, 1, 0, 0, 0, 114, 823, 1, 0, 0, 0,
4180
+ 116, 118, 3, 2, 1, 0, 117, 116, 1, 0, 0, 0, 118, 121, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0,
4181
+ 119, 120, 1, 0, 0, 0, 120, 122, 1, 0, 0, 0, 121, 119, 1, 0, 0, 0, 122, 123, 5, 0, 0, 1,
4182
+ 123, 1, 1, 0, 0, 0, 124, 125, 3, 4, 2, 0, 125, 3, 1, 0, 0, 0, 126, 128, 3, 6, 3, 0, 127,
4183
+ 129, 5, 108, 0, 0, 128, 127, 1, 0, 0, 0, 128, 129, 1, 0, 0, 0, 129, 5, 1, 0, 0, 0, 130,
4184
+ 138, 3, 8, 4, 0, 131, 138, 3, 48, 24, 0, 132, 138, 3, 52, 26, 0, 133, 138, 3, 56, 28,
4185
+ 0, 134, 138, 3, 58, 29, 0, 135, 138, 3, 68, 34, 0, 136, 138, 3, 70, 35, 0, 137, 130,
4186
+ 1, 0, 0, 0, 137, 131, 1, 0, 0, 0, 137, 132, 1, 0, 0, 0, 137, 133, 1, 0, 0, 0, 137, 134,
4187
+ 1, 0, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 7, 1, 0, 0, 0, 139, 141, 3,
4188
+ 10, 5, 0, 140, 139, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 143, 3,
4189
+ 14, 7, 0, 143, 9, 1, 0, 0, 0, 144, 146, 5, 94, 0, 0, 145, 147, 5, 72, 0, 0, 146, 145, 1,
4190
+ 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 153, 3, 12, 6, 0, 149, 150, 5,
4191
+ 1, 0, 0, 150, 152, 3, 12, 6, 0, 151, 149, 1, 0, 0, 0, 152, 155, 1, 0, 0, 0, 153, 151, 1,
4192
+ 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 11, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 156, 157, 3, 98,
4193
+ 49, 0, 157, 158, 5, 9, 0, 0, 158, 159, 5, 2, 0, 0, 159, 160, 3, 8, 4, 0, 160, 161, 5, 3,
4194
+ 0, 0, 161, 13, 1, 0, 0, 0, 162, 170, 3, 16, 8, 0, 163, 165, 7, 0, 0, 0, 164, 166, 5, 6,
4195
+ 0, 0, 165, 164, 1, 0, 0, 0, 165, 166, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 169, 3, 16,
4196
+ 8, 0, 168, 163, 1, 0, 0, 0, 169, 172, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 170, 171, 1, 0,
4197
+ 0, 0, 171, 15, 1, 0, 0, 0, 172, 170, 1, 0, 0, 0, 173, 174, 3, 18, 9, 0, 174, 17, 1, 0, 0,
4198
+ 0, 175, 181, 3, 20, 10, 0, 176, 177, 5, 2, 0, 0, 177, 178, 3, 8, 4, 0, 178, 179, 5, 3,
4199
+ 0, 0, 179, 181, 1, 0, 0, 0, 180, 175, 1, 0, 0, 0, 180, 176, 1, 0, 0, 0, 181, 19, 1, 0, 0,
4200
+ 0, 182, 184, 5, 76, 0, 0, 183, 185, 3, 22, 11, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0,
4201
+ 0, 0, 185, 186, 1, 0, 0, 0, 186, 191, 3, 24, 12, 0, 187, 188, 5, 1, 0, 0, 188, 190, 3,
4202
+ 24, 12, 0, 189, 187, 1, 0, 0, 0, 190, 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 191, 192,
4203
+ 1, 0, 0, 0, 192, 195, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 194, 196, 3, 26, 13, 0, 195, 194,
4204
+ 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 198, 1, 0, 0, 0, 197, 199, 3, 36, 18, 0, 198, 197,
4205
+ 1, 0, 0, 0, 198, 199, 1, 0, 0, 0, 199, 201, 1, 0, 0, 0, 200, 202, 3, 38, 19, 0, 201, 200,
4206
+ 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 204, 1, 0, 0, 0, 203, 205, 3, 40, 20, 0, 204, 203,
4207
+ 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 207, 1, 0, 0, 0, 206, 208, 3, 42, 21, 0, 207, 206,
4208
+ 1, 0, 0, 0, 207, 208, 1, 0, 0, 0, 208, 210, 1, 0, 0, 0, 209, 211, 3, 46, 23, 0, 210, 209,
4209
+ 1, 0, 0, 0, 210, 211, 1, 0, 0, 0, 211, 21, 1, 0, 0, 0, 212, 213, 7, 1, 0, 0, 213, 23, 1,
4210
+ 0, 0, 0, 214, 219, 3, 72, 36, 0, 215, 217, 5, 9, 0, 0, 216, 215, 1, 0, 0, 0, 216, 217,
4211
+ 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218, 220, 3, 98, 49, 0, 219, 216, 1, 0, 0, 0, 219, 220,
4212
+ 1, 0, 0, 0, 220, 229, 1, 0, 0, 0, 221, 222, 3, 100, 50, 0, 222, 223, 5, 4, 0, 0, 223, 224,
4213
+ 5, 103, 0, 0, 224, 229, 1, 0, 0, 0, 225, 229, 5, 103, 0, 0, 226, 227, 4, 12, 0, 0, 227,
4214
+ 229, 3, 106, 53, 0, 228, 214, 1, 0, 0, 0, 228, 221, 1, 0, 0, 0, 228, 225, 1, 0, 0, 0, 228,
4215
+ 226, 1, 0, 0, 0, 229, 25, 1, 0, 0, 0, 230, 231, 5, 42, 0, 0, 231, 236, 3, 28, 14, 0, 232,
4216
+ 233, 5, 1, 0, 0, 233, 235, 3, 28, 14, 0, 234, 232, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236,
4217
+ 234, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 27, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 240,
4218
+ 6, 14, -1, 0, 240, 241, 3, 32, 16, 0, 241, 251, 1, 0, 0, 0, 242, 243, 10, 2, 0, 0, 243,
4219
+ 244, 3, 30, 15, 0, 244, 245, 5, 55, 0, 0, 245, 246, 3, 28, 14, 0, 246, 247, 5, 67, 0,
4220
+ 0, 247, 248, 3, 72, 36, 0, 248, 250, 1, 0, 0, 0, 249, 242, 1, 0, 0, 0, 250, 253, 1, 0,
4221
+ 0, 0, 251, 249, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 29, 1, 0, 0, 0, 253, 251, 1, 0, 0,
4222
+ 0, 254, 256, 5, 48, 0, 0, 255, 254, 1, 0, 0, 0, 255, 256, 1, 0, 0, 0, 256, 271, 1, 0, 0,
4223
+ 0, 257, 259, 5, 58, 0, 0, 258, 260, 5, 70, 0, 0, 259, 258, 1, 0, 0, 0, 259, 260, 1, 0,
4224
+ 0, 0, 260, 271, 1, 0, 0, 0, 261, 263, 5, 75, 0, 0, 262, 264, 5, 70, 0, 0, 263, 262, 1,
4225
+ 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 271, 1, 0, 0, 0, 265, 267, 5, 43, 0, 0, 266, 268, 5,
4226
+ 70, 0, 0, 267, 266, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 271, 5,
4227
+ 24, 0, 0, 270, 255, 1, 0, 0, 0, 270, 257, 1, 0, 0, 0, 270, 261, 1, 0, 0, 0, 270, 265, 1,
4228
+ 0, 0, 0, 270, 269, 1, 0, 0, 0, 271, 31, 1, 0, 0, 0, 272, 277, 3, 34, 17, 0, 273, 275, 5,
4229
+ 9, 0, 0, 274, 273, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 278, 3,
4230
+ 98, 49, 0, 277, 274, 1, 0, 0, 0, 277, 278, 1, 0, 0, 0, 278, 33, 1, 0, 0, 0, 279, 285, 3,
4231
+ 108, 54, 0, 280, 281, 5, 2, 0, 0, 281, 282, 3, 8, 4, 0, 282, 283, 5, 3, 0, 0, 283, 285,
4232
+ 1, 0, 0, 0, 284, 279, 1, 0, 0, 0, 284, 280, 1, 0, 0, 0, 285, 35, 1, 0, 0, 0, 286, 289, 5,
4233
+ 93, 0, 0, 287, 290, 3, 72, 36, 0, 288, 290, 3, 106, 53, 0, 289, 287, 1, 0, 0, 0, 289,
4234
+ 288, 1, 0, 0, 0, 290, 37, 1, 0, 0, 0, 291, 292, 5, 44, 0, 0, 292, 294, 5, 15, 0, 0, 293,
4235
+ 295, 3, 22, 11, 0, 294, 293, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296,
4236
+ 301, 3, 72, 36, 0, 297, 298, 5, 1, 0, 0, 298, 300, 3, 72, 36, 0, 299, 297, 1, 0, 0, 0,
4237
+ 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 39, 1, 0, 0, 0, 303,
4238
+ 301, 1, 0, 0, 0, 304, 307, 5, 45, 0, 0, 305, 308, 3, 72, 36, 0, 306, 308, 3, 106, 53,
4239
+ 0, 307, 305, 1, 0, 0, 0, 307, 306, 1, 0, 0, 0, 308, 41, 1, 0, 0, 0, 309, 310, 5, 69, 0,
4240
+ 0, 310, 311, 5, 15, 0, 0, 311, 316, 3, 44, 22, 0, 312, 313, 5, 1, 0, 0, 313, 315, 3, 44,
4241
+ 22, 0, 314, 312, 1, 0, 0, 0, 315, 318, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317, 1, 0,
4242
+ 0, 0, 317, 43, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 319, 321, 3, 72, 36, 0, 320, 322, 7, 2,
4243
+ 0, 0, 321, 320, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 324, 5, 64,
4244
+ 0, 0, 324, 326, 7, 3, 0, 0, 325, 323, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 45, 1, 0, 0,
4245
+ 0, 327, 328, 5, 60, 0, 0, 328, 331, 3, 72, 36, 0, 329, 330, 5, 66, 0, 0, 330, 332, 3,
4246
+ 72, 36, 0, 331, 329, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 47, 1, 0, 0, 0, 333, 334, 5,
4247
+ 49, 0, 0, 334, 335, 5, 53, 0, 0, 335, 337, 3, 108, 54, 0, 336, 338, 3, 50, 25, 0, 337,
4248
+ 336, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 340, 3, 8, 4, 0, 340,
4249
+ 49, 1, 0, 0, 0, 341, 342, 5, 2, 0, 0, 342, 347, 3, 102, 51, 0, 343, 344, 5, 1, 0, 0, 344,
4250
+ 346, 3, 102, 51, 0, 345, 343, 1, 0, 0, 0, 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347,
4251
+ 348, 1, 0, 0, 0, 348, 350, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 350, 351, 5, 3, 0, 0, 351,
4252
+ 51, 1, 0, 0, 0, 352, 353, 5, 89, 0, 0, 353, 354, 3, 108, 54, 0, 354, 355, 5, 77, 0, 0,
4253
+ 355, 360, 3, 54, 27, 0, 356, 357, 5, 1, 0, 0, 357, 359, 3, 54, 27, 0, 358, 356, 1, 0,
4254
+ 0, 0, 359, 362, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 364, 1, 0,
4255
+ 0, 0, 362, 360, 1, 0, 0, 0, 363, 365, 3, 36, 18, 0, 364, 363, 1, 0, 0, 0, 364, 365, 1,
4256
+ 0, 0, 0, 365, 53, 1, 0, 0, 0, 366, 367, 3, 102, 51, 0, 367, 368, 5, 95, 0, 0, 368, 369,
4257
+ 3, 72, 36, 0, 369, 55, 1, 0, 0, 0, 370, 371, 5, 28, 0, 0, 371, 372, 5, 42, 0, 0, 372, 374,
4258
+ 3, 108, 54, 0, 373, 375, 3, 36, 18, 0, 374, 373, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375,
4259
+ 57, 1, 0, 0, 0, 376, 377, 5, 23, 0, 0, 377, 381, 5, 79, 0, 0, 378, 379, 5, 46, 0, 0, 379,
4260
+ 380, 5, 61, 0, 0, 380, 382, 5, 37, 0, 0, 381, 378, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382,
4261
+ 383, 1, 0, 0, 0, 383, 384, 3, 110, 55, 0, 384, 385, 5, 2, 0, 0, 385, 390, 3, 60, 30, 0,
4262
+ 386, 387, 5, 1, 0, 0, 387, 389, 3, 60, 30, 0, 388, 386, 1, 0, 0, 0, 389, 392, 1, 0, 0,
4263
+ 0, 390, 388, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391, 393, 1, 0, 0, 0, 392, 390, 1, 0, 0,
4264
+ 0, 393, 396, 5, 3, 0, 0, 394, 395, 5, 94, 0, 0, 395, 397, 3, 92, 46, 0, 396, 394, 1, 0,
4265
+ 0, 0, 396, 397, 1, 0, 0, 0, 397, 59, 1, 0, 0, 0, 398, 401, 3, 62, 31, 0, 399, 401, 3, 66,
4266
+ 33, 0, 400, 398, 1, 0, 0, 0, 400, 399, 1, 0, 0, 0, 401, 61, 1, 0, 0, 0, 402, 403, 3, 64,
4267
+ 32, 0, 403, 406, 3, 90, 45, 0, 404, 405, 5, 61, 0, 0, 405, 407, 5, 62, 0, 0, 406, 404,
4268
+ 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 410, 1, 0, 0, 0, 408, 409, 5, 27, 0, 0, 409, 411,
4269
+ 3, 72, 36, 0, 410, 408, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 414, 1, 0, 0, 0, 412, 413,
4270
+ 5, 71, 0, 0, 413, 415, 5, 56, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 63,
4271
+ 1, 0, 0, 0, 416, 417, 3, 98, 49, 0, 417, 65, 1, 0, 0, 0, 418, 419, 5, 22, 0, 0, 419, 421,
4272
+ 3, 98, 49, 0, 420, 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 477, 1, 0, 0, 0, 422, 423,
4273
+ 5, 71, 0, 0, 423, 424, 5, 56, 0, 0, 424, 425, 5, 2, 0, 0, 425, 430, 3, 102, 51, 0, 426,
4274
+ 427, 5, 1, 0, 0, 427, 429, 3, 102, 51, 0, 428, 426, 1, 0, 0, 0, 429, 432, 1, 0, 0, 0, 430,
4275
+ 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 433, 1, 0, 0, 0, 432, 430, 1, 0, 0, 0, 433,
4276
+ 434, 5, 3, 0, 0, 434, 478, 1, 0, 0, 0, 435, 436, 5, 88, 0, 0, 436, 437, 5, 2, 0, 0, 437,
4277
+ 442, 3, 102, 51, 0, 438, 439, 5, 1, 0, 0, 439, 441, 3, 102, 51, 0, 440, 438, 1, 0, 0,
4278
+ 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443, 445, 1, 0, 0,
4279
+ 0, 444, 442, 1, 0, 0, 0, 445, 446, 5, 3, 0, 0, 446, 478, 1, 0, 0, 0, 447, 448, 5, 19, 0,
4280
+ 0, 448, 449, 5, 2, 0, 0, 449, 450, 3, 72, 36, 0, 450, 451, 5, 3, 0, 0, 451, 478, 1, 0,
4281
+ 0, 0, 452, 453, 5, 41, 0, 0, 453, 454, 5, 56, 0, 0, 454, 455, 5, 2, 0, 0, 455, 460, 3,
4282
+ 102, 51, 0, 456, 457, 5, 1, 0, 0, 457, 459, 3, 102, 51, 0, 458, 456, 1, 0, 0, 0, 459,
4283
+ 462, 1, 0, 0, 0, 460, 458, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 463, 1, 0, 0, 0, 462,
4284
+ 460, 1, 0, 0, 0, 463, 464, 5, 3, 0, 0, 464, 465, 5, 73, 0, 0, 465, 466, 3, 108, 54, 0,
4285
+ 466, 467, 5, 2, 0, 0, 467, 472, 3, 102, 51, 0, 468, 469, 5, 1, 0, 0, 469, 471, 3, 102,
4286
+ 51, 0, 470, 468, 1, 0, 0, 0, 471, 474, 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 472, 473, 1, 0,
4287
+ 0, 0, 473, 475, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 475, 476, 5, 3, 0, 0, 476, 478, 1, 0,
4288
+ 0, 0, 477, 422, 1, 0, 0, 0, 477, 435, 1, 0, 0, 0, 477, 447, 1, 0, 0, 0, 477, 452, 1, 0,
4289
+ 0, 0, 478, 67, 1, 0, 0, 0, 479, 480, 5, 7, 0, 0, 480, 483, 5, 79, 0, 0, 481, 482, 5, 46,
4290
+ 0, 0, 482, 484, 5, 37, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 485, 1, 0,
4291
+ 0, 0, 485, 517, 3, 108, 54, 0, 486, 487, 5, 5, 0, 0, 487, 491, 5, 21, 0, 0, 488, 489,
4292
+ 5, 46, 0, 0, 489, 490, 5, 61, 0, 0, 490, 492, 5, 37, 0, 0, 491, 488, 1, 0, 0, 0, 491, 492,
4293
+ 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 518, 3, 62, 31, 0, 494, 495, 5, 32, 0, 0, 495, 498,
4294
+ 5, 21, 0, 0, 496, 497, 5, 46, 0, 0, 497, 499, 5, 37, 0, 0, 498, 496, 1, 0, 0, 0, 498, 499,
4295
+ 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 518, 3, 102, 51, 0, 501, 502, 5, 74, 0, 0, 502,
4296
+ 503, 5, 85, 0, 0, 503, 518, 3, 110, 55, 0, 504, 505, 5, 7, 0, 0, 505, 506, 5, 21, 0, 0,
4297
+ 506, 507, 3, 102, 51, 0, 507, 508, 5, 77, 0, 0, 508, 509, 5, 27, 0, 0, 509, 510, 3, 72,
4298
+ 36, 0, 510, 518, 1, 0, 0, 0, 511, 512, 5, 7, 0, 0, 512, 513, 5, 21, 0, 0, 513, 514, 3,
4299
+ 102, 51, 0, 514, 515, 5, 32, 0, 0, 515, 516, 5, 27, 0, 0, 516, 518, 1, 0, 0, 0, 517, 486,
4300
+ 1, 0, 0, 0, 517, 494, 1, 0, 0, 0, 517, 501, 1, 0, 0, 0, 517, 504, 1, 0, 0, 0, 517, 511,
4301
+ 1, 0, 0, 0, 518, 69, 1, 0, 0, 0, 519, 520, 5, 32, 0, 0, 520, 523, 5, 79, 0, 0, 521, 522,
4302
+ 5, 46, 0, 0, 522, 524, 5, 37, 0, 0, 523, 521, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525,
4303
+ 1, 0, 0, 0, 525, 526, 3, 108, 54, 0, 526, 71, 1, 0, 0, 0, 527, 528, 3, 74, 37, 0, 528,
4304
+ 73, 1, 0, 0, 0, 529, 530, 6, 37, -1, 0, 530, 534, 3, 76, 38, 0, 531, 532, 5, 61, 0, 0,
4305
+ 532, 534, 3, 74, 37, 3, 533, 529, 1, 0, 0, 0, 533, 531, 1, 0, 0, 0, 534, 543, 1, 0, 0,
4306
+ 0, 535, 536, 10, 2, 0, 0, 536, 537, 5, 8, 0, 0, 537, 542, 3, 74, 37, 3, 538, 539, 10,
4307
+ 1, 0, 0, 539, 540, 5, 68, 0, 0, 540, 542, 3, 74, 37, 2, 541, 535, 1, 0, 0, 0, 541, 538,
4308
+ 1, 0, 0, 0, 542, 545, 1, 0, 0, 0, 543, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 75, 1,
4309
+ 0, 0, 0, 545, 543, 1, 0, 0, 0, 546, 548, 3, 82, 41, 0, 547, 549, 3, 78, 39, 0, 548, 547,
4310
+ 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 77, 1, 0, 0, 0, 550, 551, 3, 80, 40, 0, 551, 552,
4311
+ 3, 82, 41, 0, 552, 606, 1, 0, 0, 0, 553, 555, 5, 61, 0, 0, 554, 553, 1, 0, 0, 0, 554, 555,
4312
+ 1, 0, 0, 0, 555, 556, 1, 0, 0, 0, 556, 557, 5, 47, 0, 0, 557, 558, 5, 2, 0, 0, 558, 563,
4313
+ 3, 72, 36, 0, 559, 560, 5, 1, 0, 0, 560, 562, 3, 72, 36, 0, 561, 559, 1, 0, 0, 0, 562,
4314
+ 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 566, 1, 0, 0, 0, 565,
4315
+ 563, 1, 0, 0, 0, 566, 567, 5, 3, 0, 0, 567, 606, 1, 0, 0, 0, 568, 570, 5, 61, 0, 0, 569,
4316
+ 568, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 572, 5, 47, 0, 0, 572,
4317
+ 573, 5, 2, 0, 0, 573, 574, 3, 8, 4, 0, 574, 575, 5, 3, 0, 0, 575, 606, 1, 0, 0, 0, 576,
4318
+ 578, 5, 61, 0, 0, 577, 576, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579,
4319
+ 580, 5, 11, 0, 0, 580, 581, 3, 82, 41, 0, 581, 582, 5, 8, 0, 0, 582, 583, 3, 82, 41, 0,
4320
+ 583, 606, 1, 0, 0, 0, 584, 586, 5, 61, 0, 0, 585, 584, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0,
4321
+ 586, 587, 1, 0, 0, 0, 587, 588, 5, 59, 0, 0, 588, 591, 3, 82, 41, 0, 589, 590, 5, 35,
4322
+ 0, 0, 590, 592, 3, 82, 41, 0, 591, 589, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 606, 1,
4323
+ 0, 0, 0, 593, 595, 5, 54, 0, 0, 594, 596, 5, 61, 0, 0, 595, 594, 1, 0, 0, 0, 595, 596,
4324
+ 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 606, 5, 62, 0, 0, 598, 600, 5, 54, 0, 0, 599, 601,
4325
+ 5, 61, 0, 0, 600, 599, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 603,
4326
+ 5, 30, 0, 0, 603, 604, 5, 42, 0, 0, 604, 606, 3, 82, 41, 0, 605, 550, 1, 0, 0, 0, 605,
4327
+ 554, 1, 0, 0, 0, 605, 569, 1, 0, 0, 0, 605, 577, 1, 0, 0, 0, 605, 585, 1, 0, 0, 0, 605,
4328
+ 593, 1, 0, 0, 0, 605, 598, 1, 0, 0, 0, 606, 79, 1, 0, 0, 0, 607, 608, 7, 4, 0, 0, 608, 81,
4329
+ 1, 0, 0, 0, 609, 610, 6, 41, -1, 0, 610, 614, 3, 84, 42, 0, 611, 612, 7, 5, 0, 0, 612,
4330
+ 614, 3, 82, 41, 4, 613, 609, 1, 0, 0, 0, 613, 611, 1, 0, 0, 0, 614, 626, 1, 0, 0, 0, 615,
4331
+ 616, 10, 3, 0, 0, 616, 617, 7, 6, 0, 0, 617, 625, 3, 82, 41, 4, 618, 619, 10, 2, 0, 0,
4332
+ 619, 620, 7, 5, 0, 0, 620, 625, 3, 82, 41, 3, 621, 622, 10, 1, 0, 0, 622, 623, 5, 106,
4333
+ 0, 0, 623, 625, 3, 82, 41, 2, 624, 615, 1, 0, 0, 0, 624, 618, 1, 0, 0, 0, 624, 621, 1,
4334
+ 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 83, 1, 0,
4335
+ 0, 0, 628, 626, 1, 0, 0, 0, 629, 710, 3, 96, 48, 0, 630, 631, 3, 112, 56, 0, 631, 643,
4336
+ 5, 2, 0, 0, 632, 634, 3, 22, 11, 0, 633, 632, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 634, 635,
4337
+ 1, 0, 0, 0, 635, 640, 3, 72, 36, 0, 636, 637, 5, 1, 0, 0, 637, 639, 3, 72, 36, 0, 638,
4338
+ 636, 1, 0, 0, 0, 639, 642, 1, 0, 0, 0, 640, 638, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641,
4339
+ 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 643, 633, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644,
4340
+ 645, 1, 0, 0, 0, 645, 646, 5, 3, 0, 0, 646, 710, 1, 0, 0, 0, 647, 649, 5, 16, 0, 0, 648,
4341
+ 650, 3, 86, 43, 0, 649, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 651,
4342
+ 652, 1, 0, 0, 0, 652, 655, 1, 0, 0, 0, 653, 654, 5, 33, 0, 0, 654, 656, 3, 72, 36, 0, 655,
4343
+ 653, 1, 0, 0, 0, 655, 656, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658, 5, 34, 0, 0, 658,
4344
+ 710, 1, 0, 0, 0, 659, 660, 5, 16, 0, 0, 660, 662, 3, 72, 36, 0, 661, 663, 3, 86, 43, 0,
4345
+ 662, 661, 1, 0, 0, 0, 663, 664, 1, 0, 0, 0, 664, 662, 1, 0, 0, 0, 664, 665, 1, 0, 0, 0,
4346
+ 665, 668, 1, 0, 0, 0, 666, 667, 5, 33, 0, 0, 667, 669, 3, 72, 36, 0, 668, 666, 1, 0, 0,
4347
+ 0, 668, 669, 1, 0, 0, 0, 669, 670, 1, 0, 0, 0, 670, 671, 5, 34, 0, 0, 671, 710, 1, 0, 0,
4348
+ 0, 672, 673, 5, 17, 0, 0, 673, 674, 5, 2, 0, 0, 674, 675, 3, 72, 36, 0, 675, 676, 5, 9,
4349
+ 0, 0, 676, 677, 3, 90, 45, 0, 677, 678, 5, 3, 0, 0, 678, 710, 1, 0, 0, 0, 679, 680, 5,
4350
+ 20, 0, 0, 680, 681, 5, 2, 0, 0, 681, 686, 3, 72, 36, 0, 682, 683, 5, 1, 0, 0, 683, 685,
4351
+ 3, 72, 36, 0, 684, 682, 1, 0, 0, 0, 685, 688, 1, 0, 0, 0, 686, 684, 1, 0, 0, 0, 686, 687,
4352
+ 1, 0, 0, 0, 687, 689, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 689, 690, 5, 3, 0, 0, 690, 710,
4353
+ 1, 0, 0, 0, 691, 692, 5, 63, 0, 0, 692, 693, 5, 2, 0, 0, 693, 694, 3, 82, 41, 0, 694, 695,
4354
+ 5, 1, 0, 0, 695, 696, 3, 82, 41, 0, 696, 697, 5, 3, 0, 0, 697, 710, 1, 0, 0, 0, 698, 699,
4355
+ 5, 2, 0, 0, 699, 700, 3, 72, 36, 0, 700, 701, 5, 3, 0, 0, 701, 710, 1, 0, 0, 0, 702, 703,
4356
+ 5, 37, 0, 0, 703, 704, 5, 2, 0, 0, 704, 705, 3, 8, 4, 0, 705, 706, 5, 3, 0, 0, 706, 710,
4357
+ 1, 0, 0, 0, 707, 710, 3, 88, 44, 0, 708, 710, 3, 104, 52, 0, 709, 629, 1, 0, 0, 0, 709,
4358
+ 630, 1, 0, 0, 0, 709, 647, 1, 0, 0, 0, 709, 659, 1, 0, 0, 0, 709, 672, 1, 0, 0, 0, 709,
4359
+ 679, 1, 0, 0, 0, 709, 691, 1, 0, 0, 0, 709, 698, 1, 0, 0, 0, 709, 702, 1, 0, 0, 0, 709,
4360
+ 707, 1, 0, 0, 0, 709, 708, 1, 0, 0, 0, 710, 85, 1, 0, 0, 0, 711, 712, 5, 92, 0, 0, 712,
4361
+ 713, 3, 72, 36, 0, 713, 714, 5, 81, 0, 0, 714, 715, 3, 72, 36, 0, 715, 87, 1, 0, 0, 0,
4362
+ 716, 717, 5, 2, 0, 0, 717, 718, 3, 8, 4, 0, 718, 719, 5, 3, 0, 0, 719, 89, 1, 0, 0, 0, 720,
4363
+ 767, 5, 14, 0, 0, 721, 767, 5, 84, 0, 0, 722, 767, 5, 78, 0, 0, 723, 767, 5, 50, 0, 0,
4364
+ 724, 767, 5, 51, 0, 0, 725, 767, 5, 12, 0, 0, 726, 767, 5, 40, 0, 0, 727, 767, 5, 31,
4365
+ 0, 0, 728, 736, 5, 26, 0, 0, 729, 730, 5, 2, 0, 0, 730, 733, 5, 111, 0, 0, 731, 732, 5,
4366
+ 1, 0, 0, 732, 734, 5, 111, 0, 0, 733, 731, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 735,
4367
+ 1, 0, 0, 0, 735, 737, 5, 3, 0, 0, 736, 729, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 767,
4368
+ 1, 0, 0, 0, 738, 746, 5, 65, 0, 0, 739, 740, 5, 2, 0, 0, 740, 743, 5, 111, 0, 0, 741, 742,
4369
+ 5, 1, 0, 0, 742, 744, 5, 111, 0, 0, 743, 741, 1, 0, 0, 0, 743, 744, 1, 0, 0, 0, 744, 745,
4370
+ 1, 0, 0, 0, 745, 747, 5, 3, 0, 0, 746, 739, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, 767,
4371
+ 1, 0, 0, 0, 748, 752, 5, 90, 0, 0, 749, 750, 5, 2, 0, 0, 750, 751, 5, 111, 0, 0, 751, 753,
4372
+ 5, 3, 0, 0, 752, 749, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 767, 1, 0, 0, 0, 754, 758,
4373
+ 5, 18, 0, 0, 755, 756, 5, 2, 0, 0, 756, 757, 5, 111, 0, 0, 757, 759, 5, 3, 0, 0, 758, 755,
4374
+ 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 767, 1, 0, 0, 0, 760, 767, 5, 80, 0, 0, 761, 767,
4375
+ 5, 25, 0, 0, 762, 767, 5, 82, 0, 0, 763, 767, 5, 83, 0, 0, 764, 767, 5, 13, 0, 0, 765,
4376
+ 767, 5, 91, 0, 0, 766, 720, 1, 0, 0, 0, 766, 721, 1, 0, 0, 0, 766, 722, 1, 0, 0, 0, 766,
4377
+ 723, 1, 0, 0, 0, 766, 724, 1, 0, 0, 0, 766, 725, 1, 0, 0, 0, 766, 726, 1, 0, 0, 0, 766,
4378
+ 727, 1, 0, 0, 0, 766, 728, 1, 0, 0, 0, 766, 738, 1, 0, 0, 0, 766, 748, 1, 0, 0, 0, 766,
4379
+ 754, 1, 0, 0, 0, 766, 760, 1, 0, 0, 0, 766, 761, 1, 0, 0, 0, 766, 762, 1, 0, 0, 0, 766,
4380
+ 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,
4381
+ 5, 2, 0, 0, 769, 774, 3, 94, 47, 0, 770, 771, 5, 1, 0, 0, 771, 773, 3, 94, 47, 0, 772,
4382
+ 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774, 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775,
4383
+ 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,
4384
+ 3, 98, 49, 0, 780, 781, 5, 95, 0, 0, 781, 782, 3, 96, 48, 0, 782, 95, 1, 0, 0, 0, 783,
4385
+ 792, 5, 62, 0, 0, 784, 792, 5, 86, 0, 0, 785, 792, 5, 38, 0, 0, 786, 792, 5, 111, 0, 0,
4386
+ 787, 792, 5, 112, 0, 0, 788, 792, 5, 113, 0, 0, 789, 792, 5, 109, 0, 0, 790, 792, 5,
4387
+ 110, 0, 0, 791, 783, 1, 0, 0, 0, 791, 784, 1, 0, 0, 0, 791, 785, 1, 0, 0, 0, 791, 786,
4388
+ 1, 0, 0, 0, 791, 787, 1, 0, 0, 0, 791, 788, 1, 0, 0, 0, 791, 789, 1, 0, 0, 0, 791, 790,
4389
+ 1, 0, 0, 0, 792, 97, 1, 0, 0, 0, 793, 799, 5, 114, 0, 0, 794, 799, 5, 115, 0, 0, 795, 799,
4390
+ 5, 116, 0, 0, 796, 799, 5, 117, 0, 0, 797, 799, 3, 114, 57, 0, 798, 793, 1, 0, 0, 0, 798,
4391
+ 794, 1, 0, 0, 0, 798, 795, 1, 0, 0, 0, 798, 796, 1, 0, 0, 0, 798, 797, 1, 0, 0, 0, 799,
4392
+ 99, 1, 0, 0, 0, 800, 805, 3, 98, 49, 0, 801, 802, 5, 4, 0, 0, 802, 804, 3, 98, 49, 0, 803,
4393
+ 801, 1, 0, 0, 0, 804, 807, 1, 0, 0, 0, 805, 803, 1, 0, 0, 0, 805, 806, 1, 0, 0, 0, 806,
4394
+ 101, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0, 808, 812, 3, 98, 49, 0, 809, 810, 4, 51, 7, 0, 810,
4395
+ 812, 3, 106, 53, 0, 811, 808, 1, 0, 0, 0, 811, 809, 1, 0, 0, 0, 812, 103, 1, 0, 0, 0, 813,
4396
+ 814, 3, 100, 50, 0, 814, 105, 1, 0, 0, 0, 815, 816, 1, 0, 0, 0, 816, 107, 1, 0, 0, 0, 817,
4397
+ 818, 3, 100, 50, 0, 818, 109, 1, 0, 0, 0, 819, 820, 3, 100, 50, 0, 820, 111, 1, 0, 0,
4398
+ 0, 821, 822, 3, 100, 50, 0, 822, 113, 1, 0, 0, 0, 823, 824, 7, 7, 0, 0, 824, 115, 1, 0,
4399
+ 0, 0, 98, 119, 128, 137, 140, 146, 153, 165, 170, 180, 184, 191, 195, 198, 201, 204,
4400
+ 207, 210, 216, 219, 228, 236, 251, 255, 259, 263, 267, 270, 274, 277, 284, 289,
4401
+ 294, 301, 307, 316, 321, 325, 331, 337, 347, 360, 364, 374, 381, 390, 396, 400,
4402
+ 406, 410, 414, 420, 430, 442, 460, 472, 477, 483, 491, 498, 517, 523, 533, 541,
4403
+ 543, 548, 554, 563, 569, 577, 585, 591, 595, 600, 605, 613, 624, 626, 633, 640,
4404
+ 643, 651, 655, 664, 668, 686, 709, 733, 736, 743, 746, 752, 758, 766, 774, 791,
4405
+ 798, 805, 811
4215
4406
  ];
4216
4407
  GenericSqlParser.vocabulary = new antlr.Vocabulary(GenericSqlParser.literalNames, GenericSqlParser.symbolicNames, []);
4217
4408
  GenericSqlParser.decisionsToDFA = GenericSqlParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4833,6 +5024,18 @@ export class SelectItemContext extends antlr.ParserRuleContext {
4833
5024
  constructor(parent, invokingState) {
4834
5025
  super(parent, invokingState);
4835
5026
  }
5027
+ get ruleIndex() {
5028
+ return GenericSqlParser.RULE_selectItem;
5029
+ }
5030
+ copyFrom(ctx) {
5031
+ super.copyFrom(ctx);
5032
+ }
5033
+ }
5034
+ export class SelectExpressionElementContext extends SelectItemContext {
5035
+ constructor(ctx) {
5036
+ super(ctx.parent, ctx.invokingState);
5037
+ super.copyFrom(ctx);
5038
+ }
4836
5039
  expression() {
4837
5040
  return this.getRuleContext(0, ExpressionContext);
4838
5041
  }
@@ -4842,28 +5045,103 @@ export class SelectItemContext extends antlr.ParserRuleContext {
4842
5045
  KW_AS() {
4843
5046
  return this.getToken(GenericSqlParser.KW_AS, 0);
4844
5047
  }
5048
+ enterRule(listener) {
5049
+ if (listener.enterSelectExpressionElement) {
5050
+ listener.enterSelectExpressionElement(this);
5051
+ }
5052
+ }
5053
+ exitRule(listener) {
5054
+ if (listener.exitSelectExpressionElement) {
5055
+ listener.exitSelectExpressionElement(this);
5056
+ }
5057
+ }
5058
+ accept(visitor) {
5059
+ if (visitor.visitSelectExpressionElement) {
5060
+ return visitor.visitSelectExpressionElement(this);
5061
+ }
5062
+ else {
5063
+ return visitor.visitChildren(this);
5064
+ }
5065
+ }
5066
+ }
5067
+ export class SelectEmptyElementContext extends SelectItemContext {
5068
+ constructor(ctx) {
5069
+ super(ctx.parent, ctx.invokingState);
5070
+ super.copyFrom(ctx);
5071
+ }
5072
+ emptyColumn() {
5073
+ return this.getRuleContext(0, EmptyColumnContext);
5074
+ }
5075
+ enterRule(listener) {
5076
+ if (listener.enterSelectEmptyElement) {
5077
+ listener.enterSelectEmptyElement(this);
5078
+ }
5079
+ }
5080
+ exitRule(listener) {
5081
+ if (listener.exitSelectEmptyElement) {
5082
+ listener.exitSelectEmptyElement(this);
5083
+ }
5084
+ }
5085
+ accept(visitor) {
5086
+ if (visitor.visitSelectEmptyElement) {
5087
+ return visitor.visitSelectEmptyElement(this);
5088
+ }
5089
+ else {
5090
+ return visitor.visitChildren(this);
5091
+ }
5092
+ }
5093
+ }
5094
+ export class SelectStarElementContext extends SelectItemContext {
5095
+ constructor(ctx) {
5096
+ super(ctx.parent, ctx.invokingState);
5097
+ super.copyFrom(ctx);
5098
+ }
4845
5099
  qualifiedName() {
4846
5100
  return this.getRuleContext(0, QualifiedNameContext);
4847
5101
  }
4848
5102
  ASTERISK() {
4849
5103
  return this.getToken(GenericSqlParser.ASTERISK, 0);
4850
5104
  }
4851
- get ruleIndex() {
4852
- return GenericSqlParser.RULE_selectItem;
5105
+ enterRule(listener) {
5106
+ if (listener.enterSelectStarElement) {
5107
+ listener.enterSelectStarElement(this);
5108
+ }
5109
+ }
5110
+ exitRule(listener) {
5111
+ if (listener.exitSelectStarElement) {
5112
+ listener.exitSelectStarElement(this);
5113
+ }
5114
+ }
5115
+ accept(visitor) {
5116
+ if (visitor.visitSelectStarElement) {
5117
+ return visitor.visitSelectStarElement(this);
5118
+ }
5119
+ else {
5120
+ return visitor.visitChildren(this);
5121
+ }
5122
+ }
5123
+ }
5124
+ export class SelectAllElementContext extends SelectItemContext {
5125
+ constructor(ctx) {
5126
+ super(ctx.parent, ctx.invokingState);
5127
+ super.copyFrom(ctx);
5128
+ }
5129
+ ASTERISK() {
5130
+ return this.getToken(GenericSqlParser.ASTERISK, 0);
4853
5131
  }
4854
5132
  enterRule(listener) {
4855
- if (listener.enterSelectItem) {
4856
- listener.enterSelectItem(this);
5133
+ if (listener.enterSelectAllElement) {
5134
+ listener.enterSelectAllElement(this);
4857
5135
  }
4858
5136
  }
4859
5137
  exitRule(listener) {
4860
- if (listener.exitSelectItem) {
4861
- listener.exitSelectItem(this);
5138
+ if (listener.exitSelectAllElement) {
5139
+ listener.exitSelectAllElement(this);
4862
5140
  }
4863
5141
  }
4864
5142
  accept(visitor) {
4865
- if (visitor.visitSelectItem) {
4866
- return visitor.visitSelectItem(this);
5143
+ if (visitor.visitSelectAllElement) {
5144
+ return visitor.visitSelectAllElement(this);
4867
5145
  }
4868
5146
  else {
4869
5147
  return visitor.visitChildren(this);
@@ -5139,6 +5417,9 @@ export class WhereClauseContext extends antlr.ParserRuleContext {
5139
5417
  expression() {
5140
5418
  return this.getRuleContext(0, ExpressionContext);
5141
5419
  }
5420
+ emptyColumn() {
5421
+ return this.getRuleContext(0, EmptyColumnContext);
5422
+ }
5142
5423
  get ruleIndex() {
5143
5424
  return GenericSqlParser.RULE_whereClause;
5144
5425
  }
@@ -5212,6 +5493,9 @@ export class HavingClauseContext extends antlr.ParserRuleContext {
5212
5493
  expression() {
5213
5494
  return this.getRuleContext(0, ExpressionContext);
5214
5495
  }
5496
+ emptyColumn() {
5497
+ return this.getRuleContext(0, EmptyColumnContext);
5498
+ }
5215
5499
  get ruleIndex() {
5216
5500
  return GenericSqlParser.RULE_havingClause;
5217
5501
  }
@@ -5636,8 +5920,8 @@ export class ColumnDefinitionContext extends antlr.ParserRuleContext {
5636
5920
  constructor(parent, invokingState) {
5637
5921
  super(parent, invokingState);
5638
5922
  }
5639
- columnRef() {
5640
- return this.getRuleContext(0, ColumnRefContext);
5923
+ columnRefCreate() {
5924
+ return this.getRuleContext(0, ColumnRefCreateContext);
5641
5925
  }
5642
5926
  dataType() {
5643
5927
  return this.getRuleContext(0, DataTypeContext);
@@ -5682,6 +5966,35 @@ export class ColumnDefinitionContext extends antlr.ParserRuleContext {
5682
5966
  }
5683
5967
  }
5684
5968
  }
5969
+ export class ColumnRefCreateContext extends antlr.ParserRuleContext {
5970
+ constructor(parent, invokingState) {
5971
+ super(parent, invokingState);
5972
+ }
5973
+ identifier() {
5974
+ return this.getRuleContext(0, IdentifierContext);
5975
+ }
5976
+ get ruleIndex() {
5977
+ return GenericSqlParser.RULE_columnRefCreate;
5978
+ }
5979
+ enterRule(listener) {
5980
+ if (listener.enterColumnRefCreate) {
5981
+ listener.enterColumnRefCreate(this);
5982
+ }
5983
+ }
5984
+ exitRule(listener) {
5985
+ if (listener.exitColumnRefCreate) {
5986
+ listener.exitColumnRefCreate(this);
5987
+ }
5988
+ }
5989
+ accept(visitor) {
5990
+ if (visitor.visitColumnRefCreate) {
5991
+ return visitor.visitColumnRefCreate(this);
5992
+ }
5993
+ else {
5994
+ return visitor.visitChildren(this);
5995
+ }
5996
+ }
5997
+ }
5685
5998
  export class TableConstraintContext extends antlr.ParserRuleContext {
5686
5999
  constructor(parent, invokingState) {
5687
6000
  super(parent, invokingState);
@@ -6637,8 +6950,8 @@ export class ColumnReferenceContext extends PrimaryExpressionContext {
6637
6950
  super(ctx.parent, ctx.invokingState);
6638
6951
  super.copyFrom(ctx);
6639
6952
  }
6640
- qualifiedName() {
6641
- return this.getRuleContext(0, QualifiedNameContext);
6953
+ columnName() {
6954
+ return this.getRuleContext(0, ColumnNameContext);
6642
6955
  }
6643
6956
  enterRule(listener) {
6644
6957
  if (listener.enterColumnReference) {
@@ -6721,8 +7034,8 @@ export class FunctionCallContext extends PrimaryExpressionContext {
6721
7034
  super(ctx.parent, ctx.invokingState);
6722
7035
  super.copyFrom(ctx);
6723
7036
  }
6724
- qualifiedName() {
6725
- return this.getRuleContext(0, QualifiedNameContext);
7037
+ functionName() {
7038
+ return this.getRuleContext(0, FunctionNameContext);
6726
7039
  }
6727
7040
  expression(i) {
6728
7041
  if (i === undefined) {
@@ -7404,6 +7717,9 @@ export class ColumnRefContext extends antlr.ParserRuleContext {
7404
7717
  identifier() {
7405
7718
  return this.getRuleContext(0, IdentifierContext);
7406
7719
  }
7720
+ emptyColumn() {
7721
+ return this.getRuleContext(0, EmptyColumnContext);
7722
+ }
7407
7723
  get ruleIndex() {
7408
7724
  return GenericSqlParser.RULE_columnRef;
7409
7725
  }
@@ -7426,6 +7742,61 @@ export class ColumnRefContext extends antlr.ParserRuleContext {
7426
7742
  }
7427
7743
  }
7428
7744
  }
7745
+ export class ColumnNameContext extends antlr.ParserRuleContext {
7746
+ constructor(parent, invokingState) {
7747
+ super(parent, invokingState);
7748
+ }
7749
+ qualifiedName() {
7750
+ return this.getRuleContext(0, QualifiedNameContext);
7751
+ }
7752
+ get ruleIndex() {
7753
+ return GenericSqlParser.RULE_columnName;
7754
+ }
7755
+ enterRule(listener) {
7756
+ if (listener.enterColumnName) {
7757
+ listener.enterColumnName(this);
7758
+ }
7759
+ }
7760
+ exitRule(listener) {
7761
+ if (listener.exitColumnName) {
7762
+ listener.exitColumnName(this);
7763
+ }
7764
+ }
7765
+ accept(visitor) {
7766
+ if (visitor.visitColumnName) {
7767
+ return visitor.visitColumnName(this);
7768
+ }
7769
+ else {
7770
+ return visitor.visitChildren(this);
7771
+ }
7772
+ }
7773
+ }
7774
+ export class EmptyColumnContext extends antlr.ParserRuleContext {
7775
+ constructor(parent, invokingState) {
7776
+ super(parent, invokingState);
7777
+ }
7778
+ get ruleIndex() {
7779
+ return GenericSqlParser.RULE_emptyColumn;
7780
+ }
7781
+ enterRule(listener) {
7782
+ if (listener.enterEmptyColumn) {
7783
+ listener.enterEmptyColumn(this);
7784
+ }
7785
+ }
7786
+ exitRule(listener) {
7787
+ if (listener.exitEmptyColumn) {
7788
+ listener.exitEmptyColumn(this);
7789
+ }
7790
+ }
7791
+ accept(visitor) {
7792
+ if (visitor.visitEmptyColumn) {
7793
+ return visitor.visitEmptyColumn(this);
7794
+ }
7795
+ else {
7796
+ return visitor.visitChildren(this);
7797
+ }
7798
+ }
7799
+ }
7429
7800
  export class TableNameContext extends antlr.ParserRuleContext {
7430
7801
  constructor(parent, invokingState) {
7431
7802
  super(parent, invokingState);
@@ -7484,6 +7855,35 @@ export class TableNameCreateContext extends antlr.ParserRuleContext {
7484
7855
  }
7485
7856
  }
7486
7857
  }
7858
+ export class FunctionNameContext extends antlr.ParserRuleContext {
7859
+ constructor(parent, invokingState) {
7860
+ super(parent, invokingState);
7861
+ }
7862
+ qualifiedName() {
7863
+ return this.getRuleContext(0, QualifiedNameContext);
7864
+ }
7865
+ get ruleIndex() {
7866
+ return GenericSqlParser.RULE_functionName;
7867
+ }
7868
+ enterRule(listener) {
7869
+ if (listener.enterFunctionName) {
7870
+ listener.enterFunctionName(this);
7871
+ }
7872
+ }
7873
+ exitRule(listener) {
7874
+ if (listener.exitFunctionName) {
7875
+ listener.exitFunctionName(this);
7876
+ }
7877
+ }
7878
+ accept(visitor) {
7879
+ if (visitor.visitFunctionName) {
7880
+ return visitor.visitFunctionName(this);
7881
+ }
7882
+ else {
7883
+ return visitor.visitChildren(this);
7884
+ }
7885
+ }
7886
+ }
7487
7887
  export class NonReservedContext extends antlr.ParserRuleContext {
7488
7888
  constructor(parent, invokingState) {
7489
7889
  super(parent, invokingState);