@sap/cds-compiler 5.5.2 → 5.6.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.
@@ -1,4 +1,4 @@
1
- // Parser generated by redepage v0.1.18
1
+ // Parser generated by redepage v0.1.19
2
2
  'use strict;'
3
3
  const { XsnSource, XsnArtifact, XsnName } = require( '../compiler/xsn-model' )
4
4
  const AstBuildingParser = require('../parsers/AstBuildingParser')
@@ -133,7 +133,7 @@ Id:['g',6,,'afterBrace'],'@':'Id',
133
133
  },
134
134
  ['m',0,'}',,,'afterBrace'],
135
135
  'artifactDefOrExtend',
136
- {'@':[10,769],'':11},
136
+ {'@':[10,770],'':11},
137
137
  {
138
138
  define:['ck',12],
139
139
  type:12,view:12,event:12,action:12,aspect:12,entity:12,context:12,service:12,abstract:12,function:12,annotation:12,
@@ -147,7 +147,7 @@ annotation:[0,54,,'vocabularyRestriction'],
147
147
  type:[0,59],
148
148
  aspect:[0,64],abstract:'aspect',
149
149
  entity:[0,74],
150
- view:[0,88],
150
+ view:[0,88,,'hide_'],
151
151
  event:[0,100],
152
152
  action:[0,112],
153
153
  function:[0,118],
@@ -155,10 +155,10 @@ function:[0,118],
155
155
  {
156
156
  Id:[0,228],
157
157
  service:[0,250,1],
158
- context:[0,257,1],
159
- type:[0,264,1],
160
- aspect:[0,276,1],entity:'aspect',
161
- projection:[0,287,1],
158
+ context:[0,257,1,'hide_'],
159
+ type:[0,264,1,'hide_'],
160
+ aspect:[0,276,1,'hide_'],entity:'aspect',
161
+ projection:[0,287,1,'hide_'],
162
162
  },
163
163
  [0,215],
164
164
  'namespaceDeclaration',
@@ -199,31 +199,31 @@ Id:[22,32],
199
199
  'serviceDef',
200
200
  ['mk',45,'service'],
201
201
  [46,36],
202
- {'@':[46,775],'':47},
202
+ {'@':[46,776],'':47},
203
203
  {'{':[0,5],'':0},
204
204
  'contextDef',
205
205
  ['mk',50,'context'],
206
206
  [51,36],
207
- {'@':[51,775],'':52},
207
+ {'@':[51,776],'':52},
208
208
  {'{':[0,5],'':0},
209
209
  'annotationDef',
210
210
  ['mk',55,'annotation'],
211
211
  [56,36],
212
- {'@':[56,775],'':57},
212
+ {'@':[56,776],'':57},
213
213
  [0,346],
214
214
  'typeDef',
215
215
  ['mk',60,'type'],
216
216
  [61,36],
217
- {'@':[61,775],'':62},
217
+ {'@':[61,776],'':62},
218
218
  [0,346],
219
219
  'aspectDef',
220
220
  {
221
221
  aspect:['ck',66],
222
- abstract:['ck',65],
222
+ abstract:['ck',65,,'hide_'],
223
223
  },
224
224
  ['mk',66,'entity'],
225
225
  [67,36],
226
- {'@':[67,775],'':68},
226
+ {'@':[67,776],'':68},
227
227
  {
228
228
  '{':[72,157],
229
229
  ':':['c',69],
@@ -240,7 +240,7 @@ abstract:['ck',65],
240
240
  'entityDef',
241
241
  ['mk',75,'entity'],
242
242
  [76,36],
243
- {'@':[76,775],'':77},
243
+ {'@':[76,776],'':77},
244
244
  {'(':[78,141],'':78},
245
245
  {
246
246
  ':':['c',79],
@@ -258,16 +258,16 @@ as:['ck',83],
258
258
  '(':[86,451],select:'(',
259
259
  projection:[84,445],
260
260
  },
261
- {group:[85,602],where:'group',having:'group','':85},
262
- {limit:[86,614],order:'limit','':86},
261
+ {group:[85,603],where:'group',having:'group','':85},
262
+ {limit:[86,615],order:'limit','':86},
263
263
  {actions:[0,124],'':0},
264
264
  'viewDef',
265
265
  ['mk',89,'view'],
266
266
  [90,36],
267
- {'@':[90,775],'':91},
267
+ {'@':[90,776],'':91},
268
268
  {
269
269
  '(':[97,141],
270
- with:['ck',92],
270
+ with:['ck',92,,'hide_'],
271
271
  '':97
272
272
  },
273
273
  ['mk',93,'parameters'],
@@ -280,7 +280,7 @@ with:['ck',92],
280
280
  'eventDef',
281
281
  ['mk',101,'event'],
282
282
  [102,36],
283
- {'@':[102,775],'':103},
283
+ {'@':[102,776],'':103},
284
284
  {
285
285
  '{':[0,157],
286
286
  ':':['c',104],
@@ -298,17 +298,17 @@ projection:[0,445,1],
298
298
  '{':109,
299
299
  },
300
300
  [0,157],
301
- {'@':[110,769],'':0},
301
+ {'@':[110,770],'':0},
302
302
  'actionMainDef',
303
303
  ['mk',113,'action'],
304
304
  [114,36],
305
- {'@':[114,775],'':115},
305
+ {'@':[114,776],'':115},
306
306
  [116,141],
307
307
  {returns:[0,153],'':0},
308
308
  'functionMainDef',
309
309
  ['mk',119,'function'],
310
310
  [120,36],
311
- {'@':[120,775],'':121},
311
+ {'@':[120,776],'':121},
312
312
  [122,141],
313
313
  [0,153],
314
314
  'actionsBlock',
@@ -322,17 +322,17 @@ Id:['g',126,,'afterBrace'],'@':'Id',
322
322
  },
323
323
  ['m',0,'}',,,'afterBrace'],
324
324
  'boundActionFunctionDef',
325
- {'@':[130,769],'':131},
325
+ {'@':[130,770],'':131},
326
326
  {
327
327
  action:['ck',132],
328
328
  function:['ck',136],
329
329
  },
330
330
  ['mi',133],
331
- {'@':[133,775],'':134},
331
+ {'@':[133,776],'':134},
332
332
  [135,141],
333
333
  {returns:[0,153],'':0},
334
334
  ['mi',137],
335
- {'@':[137,775],'':138},
335
+ {'@':[137,776],'':138},
336
336
  [139,141],
337
337
  [0,153],
338
338
  'paramsList',
@@ -344,9 +344,9 @@ function:['ck',136],
344
344
  },
345
345
  ['m',0,')'],
346
346
  'paramDef',
347
- {'@':[146,769],'':147},
347
+ {'@':[146,770],'':147},
348
348
  ['miA',148],
349
- {'@':[148,775],'':149},
349
+ {'@':[148,776],'':149},
350
350
  {
351
351
  '{':[150,157],
352
352
  ':':['c',151],
@@ -355,7 +355,7 @@ function:['ck',136],
355
355
  [0,357],
356
356
  'returnsSpec',
357
357
  ['mk',154,'returns',,'default','elementRestriction'],
358
- {'@':[154,769],'':155},
358
+ {'@':[154,770],'':155},
359
359
  [0,357],
360
360
  'elementsBlock',
361
361
  ['m',158,'{'],
@@ -367,13 +367,13 @@ Id:['g',158,,'afterBrace'],'@':'Id',
367
367
  },
368
368
  ['m',0,'}',,,'afterBrace'],
369
369
  'elementDef',
370
- {'@':[162,769],'':163},
370
+ {'@':[162,770],'':163},
371
371
  {virtual:['ck',164,1],'':164},
372
372
  {key:['ck',165],'':165},
373
- {masked:['ck',166,1],'':166},
374
- {element:['ck',167,1],'':167},
373
+ {masked:['ck',166,1,'hide_'],'':166},
374
+ {element:['ck',167,1,'hide_'],'':167},
375
375
  ['mi',168,,,'elem','elementRestriction'],
376
- {'@':[168,775],'':169},
376
+ {'@':[168,776],'':169},
377
377
  {
378
378
  '{':[170,157],
379
379
  ':':['c',171],
@@ -382,10 +382,10 @@ Id:['g',158,,'afterBrace'],'@':'Id',
382
382
  {not:[172,438],null:'not','':172},
383
383
  [172,357],
384
384
  {'=':['c',173,,'elementRestriction','calc'],'':0},
385
- [174,642],
385
+ [174,643],
386
386
  {stored:['ck',175],'':175},
387
387
  ['g',176],
388
- {'@':[176,769,,'elementRestriction','anno'],'':0},
388
+ {'@':[176,770,,'elementRestriction','anno'],'':0},
389
389
  'enumSymbolsBlock',
390
390
  ['mk',179,'enum'],
391
391
  ['m',180,'{'],
@@ -396,19 +396,19 @@ Id:['g',158,,'afterBrace'],'@':'Id',
396
396
  },
397
397
  ['m',0,'}',,,'afterBrace'],
398
398
  'enumSymbolDef',
399
- {'@':[184,769],'':185},
399
+ {'@':[184,770],'':185},
400
400
  ['mi',186],
401
- {'@':[186,769],'':187},
401
+ {'@':[186,770],'':187},
402
402
  {'=':['c',188],'':0},
403
403
  {
404
404
  String:['c',190],
405
405
  Number:['c',190],
406
406
  '+':['c',189],'-':'+',
407
- Id:[190,766],'#':'Id',QuotedLiteral:'Id',
407
+ Id:[190,767,,'hide_'],'#':'Id',QuotedLiteral:'Id',
408
408
  },
409
409
  ['m',190,'Number'],
410
410
  ['g',191],
411
- {'@':[191,769],'':0},
411
+ {'@':[191,770],'':0},
412
412
  'foreignKeysBlock',
413
413
  ['m',194,'{'],
414
414
  {Id:[195,198],'@':'Id','':196},
@@ -418,7 +418,7 @@ Id:[190,766],'#':'Id',QuotedLiteral:'Id',
418
418
  },
419
419
  ['m',0,'}'],
420
420
  'foreignKeyDef',
421
- {'@':[198,769],'':199},
421
+ {'@':[198,770],'':199},
422
422
  [200,40],
423
423
  {as:['ck',201],'':0},
424
424
  ['mi',0],
@@ -433,10 +433,10 @@ composition:['ck',208],
433
433
  ['mk',210,'to'],
434
434
  {'[':[209,426],'':209},
435
435
  ['mk',210,'of'],
436
- {one:['ck',211,1],many:'one','':211},
436
+ {one:['ck',211,1,'noRepeatedCardinality'],many:'one','':211},
437
437
  [212,40],
438
438
  ['mk',213,'on'],
439
- [0,634],
439
+ [0,635],
440
440
  'annotateArtifact',
441
441
  [216,36],
442
442
  {
@@ -447,10 +447,10 @@ with:['ck',222],
447
447
  [218,36],
448
448
  {with:['ck',219],'':219},
449
449
  ['g',220],
450
- {'@':[220,769],'':221},
450
+ {'@':[220,770],'':221},
451
451
  {'{':[0,320],'':0},
452
452
  ['g',223],
453
- {'@':[223,769],'':224},
453
+ {'@':[223,770],'':224},
454
454
  {'(':[225,307],'':225},
455
455
  {
456
456
  returns:[0,316],
@@ -468,7 +468,7 @@ with:['ck',239],
468
468
  [231,36],
469
469
  {with:['ck',232],'':232},
470
470
  ['g',233],
471
- {'@':[233,769],'':234},
471
+ {'@':[233,770],'':234},
472
472
  {
473
473
  elements:['ck',235],
474
474
  '{':235,
@@ -477,10 +477,10 @@ enum:[0,178],
477
477
  '':0
478
478
  },
479
479
  [0,330],
480
- {'@':[236,769],'':237},
480
+ {'@':[236,770],'':237},
481
481
  {'{':[238,330],'':0},
482
482
  {actions:[0,124],'':0},
483
- {'@':[239,769],'':240},
483
+ {'@':[239,770],'':240},
484
484
  {
485
485
  Id:[241,40],
486
486
  elements:['ck',245,1],
@@ -505,22 +505,22 @@ definitions:['ck',248,1],
505
505
  [252,36],
506
506
  {with:['ck',253],'':253},
507
507
  ['g',254],
508
- {'@':[254,769],'':255},
508
+ {'@':[254,770],'':255},
509
509
  {'{':[0,5],'':0},
510
510
  'extendContext',
511
511
  ['mk',258,'context'],
512
512
  [259,36],
513
513
  {with:['ck',260],'':260},
514
514
  ['g',261],
515
- {'@':[261,769],'':262},
515
+ {'@':[261,770],'':262},
516
516
  {'{':[0,5],'':0},
517
517
  'extendType',
518
518
  ['mk',265,'type'],
519
519
  [266,36],
520
520
  {with:['ck',269],'':267},
521
- {'@':[267,769],'':268},
521
+ {'@':[267,770],'':268},
522
522
  {'{':[0,330],'':0},
523
- {'@':[269,769],'':270},
523
+ {'@':[269,770],'':270},
524
524
  {
525
525
  Id:[271,40],
526
526
  elements:['ck',274,1],
@@ -537,8 +537,8 @@ enum:[0,178,1],
537
537
  {aspect:['ck',277],entity:'aspect'},
538
538
  [278,36],
539
539
  {with:['ck',280],'':279},
540
- {'@':[279,769],'':284},
541
- {'@':[280,769],'':281},
540
+ {'@':[279,770],'':284},
541
+ {'@':[280,770],'':281},
542
542
  {
543
543
  Id:[282,40],
544
544
  actions:['g',284,1],
@@ -553,7 +553,7 @@ actions:['g',284,1],
553
553
  [289,36],
554
554
  {with:['ck',290],'':290},
555
555
  ['g',291],
556
- {'@':[291,769],'':292},
556
+ {'@':[291,770],'':292},
557
557
  {'{':[293,558],'':293},
558
558
  {actions:[0,124],'':0},
559
559
  'annotateActionsBlock',
@@ -567,9 +567,9 @@ Id:['g',297,,'afterBrace'],'@':'Id',
567
567
  },
568
568
  ['m',0,'}',,,'afterBrace'],
569
569
  'annotateBoundAction',
570
- {'@':[301,769],'':302},
570
+ {'@':[301,770],'':302},
571
571
  ['mi',303],
572
- {'@':[303,769],'':304},
572
+ {'@':[303,770],'':304},
573
573
  {'(':[305,307],'':305},
574
574
  {returns:[0,316,1],'':0},
575
575
  'annotateParamsBlock',
@@ -581,12 +581,12 @@ Id:['g',297,,'afterBrace'],'@':'Id',
581
581
  },
582
582
  ['m',0,')'],
583
583
  'annotateParam',
584
- {'@':[312,769],'':313},
584
+ {'@':[312,770],'':313},
585
585
  ['mi',314],
586
- {'@':[314,769],'':0},
586
+ {'@':[314,770],'':0},
587
587
  'annotateReturns',
588
588
  ['mk',317,'returns'],
589
- {'@':[317,769],'':318},
589
+ {'@':[317,770],'':318},
590
590
  {'{':[0,320],'':0},
591
591
  'annotateElementsBlock',
592
592
  ['m',321,'{'],
@@ -598,9 +598,9 @@ Id:['g',321,,'afterBrace'],'@':'Id',
598
598
  },
599
599
  ['m',0,'}',,,'afterBrace'],
600
600
  'annotateElement',
601
- {'@':[325,769],'':326},
601
+ {'@':[325,770],'':326},
602
602
  ['mi',327],
603
- {'@':[327,769],'':328},
603
+ {'@':[327,770],'':328},
604
604
  {'{':[0,320],'':0},
605
605
  'extendElementsBlock',
606
606
  ['m',331,'{'],
@@ -612,7 +612,7 @@ Id:['g',331,,'afterBrace'],'@':'Id',
612
612
  },
613
613
  ['m',0,'}',,,'afterBrace'],
614
614
  'elementDefOrExtend',
615
- {'@':[335,769],'':336},
615
+ {'@':[335,770],'':336},
616
616
  {
617
617
  Id:[0,162],'@':'Id',key:'Id',
618
618
  extend:['ck',337,1],
@@ -620,9 +620,9 @@ extend:['ck',337,1],
620
620
  {element:['ck',338,1],'':338},
621
621
  ['mi',339],
622
622
  {with:['ck',342],'':340},
623
- {'@':[340,769],'':341},
623
+ {'@':[340,770],'':341},
624
624
  {'{':[0,330],'':0},
625
- {'@':[342,769],'':343},
625
+ {'@':[342,770],'':343},
626
626
  {
627
627
  elements:['ck',344],
628
628
  '{':344,
@@ -668,9 +668,9 @@ many:['ck',378,1,,'calc','elementRestriction'],
668
668
  '{':[384,157,,,'calc','elementRestriction'],
669
669
  },
670
670
  ['g',359],
671
- {'@':[359,769],'':360},
671
+ {'@':[359,770],'':360},
672
672
  {not:[361,438,,'elementRestriction','notNull'],null:'not','':362},
673
- {'@':[361,769],'':362},
673
+ {'@':[361,770],'':362},
674
674
  {
675
675
  enum:[363,178,,,'anno','elementRestriction'],
676
676
  '@':[0,393],not:'@',null:'@',default:'@',
@@ -678,17 +678,17 @@ enum:[363,178,,,'anno','elementRestriction'],
678
678
  },
679
679
  {not:[364,438,,'elementRestriction','notNull'],null:'not','':364},
680
680
  {default:['ck',365,,'elementRestriction','default'],'':366},
681
- [366,642],
681
+ [366,643],
682
682
  {not:[0,438,,'elementRestriction','notNull'],null:'not','':0},
683
683
  [368,404],
684
684
  {'@':[0,393],not:'@',null:'@',default:'@','':0},
685
685
  {'[':[370,426],'':370},
686
686
  ['mk',371,'to'],
687
- {one:['ck',372,1],many:'one','':372},
687
+ {one:['ck',372,1,'noRepeatedCardinality'],many:'one','':372},
688
688
  [0,386],
689
689
  {'[':[374,426],'':374},
690
690
  ['mk',375,'of'],
691
- {one:['ck',376,1],many:'one','':376},
691
+ {one:['ck',376,1,'noRepeatedCardinality'],many:'one','':376},
692
692
  {
693
693
  Id:[0,386],
694
694
  '{':[0,157],
@@ -701,30 +701,30 @@ type:[379,396,1],
701
701
  },
702
702
  {not:[380,438,,'elementRestriction','notNull'],null:'not','':380},
703
703
  {enum:[383,178],'':381},
704
- {'@':[381,769],'':382},
704
+ {'@':[381,770],'':382},
705
705
  ['g',0,[]],
706
706
  {not:[0,438,,'elementRestriction','notNull'],null:'not','':0},
707
707
  {not:[0,438],null:'not','':0},
708
708
  'typeAssocProperties',
709
709
  [387,40],
710
- {'@':[387,769],'':388},
710
+ {'@':[387,770],'':388},
711
711
  {
712
712
  on:['ck',389],
713
713
  '{':[391,193],
714
714
  '@':[0,393],not:'@',null:'@',default:'@',
715
715
  '':0
716
716
  },
717
- [390,634],
718
- {'@':[390,769],'':0},
717
+ [390,635],
718
+ {'@':[390,770],'':0},
719
719
  {'@':[0,393],not:'@',null:'@',default:'@','':0},
720
720
  'typeProperties',
721
721
  {
722
- '@':[393,769],
722
+ '@':[393,770],
723
723
  not:[393,438,,'elementRestriction','notNull'],null:'not',
724
724
  default:['ck',394,,'elementRestriction','default'],
725
725
  '':0
726
726
  },
727
- [393,642],
727
+ [393,643],
728
728
  'typeTypeOf',
729
729
  ['mk',397,'type'],
730
730
  ['mk',398,'of'],
@@ -812,9 +812,9 @@ not:['ck',439],
812
812
  {';':['c',443],'':443},
813
813
  ['m',0,'EOF'],
814
814
  'projectionSpec',
815
- ['mk',446,'projection'],
815
+ ['mk',446,'projection',,,'afterBrace'],
816
816
  ['mk',447,'on'],
817
- [448,512],
817
+ [448,512,,,,'afterBrace'],
818
818
  {'{':[449,558],'':449},
819
819
  {excluding:[0,551],'':0},
820
820
  'queryExpression',
@@ -834,7 +834,7 @@ union:['ck',456,,'precLeft_',2],
834
834
  {all:['ck',457],distinct:'all','':457},
835
835
  [454,451],
836
836
  {limit:['g',459,,'precPost_',0],order:'limit','':0},
837
- [0,614],
837
+ [0,615],
838
838
  'selectQuery',
839
839
  ['mk',462,'select'],
840
840
  {
@@ -867,7 +867,7 @@ Id:[475,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':
867
867
  },
868
868
  ['mk',478,'from'],
869
869
  [479,481],
870
- {group:[0,602],where:'group',having:'group','':0},
870
+ {group:[0,603],where:'group',having:'group','':0},
871
871
  'querySource',
872
872
  [482,486],
873
873
  {',':483,'':0},
@@ -897,7 +897,7 @@ Id:[488,512],
897
897
  ['g',495],
898
898
  [496,486],
899
899
  ['mk',497,'on'],
900
- [488,634],
900
+ [488,635],
901
901
  'tableOrQueryParens',
902
902
  ['m',500,'(',,,'queryOnLeft'],
903
903
  {
@@ -937,7 +937,7 @@ many:['ck',0],
937
937
  [515,519],
938
938
  {
939
939
  as:['ck',516],
940
- Id:['ci',0,,'tableWithoutAs'],
940
+ Id:['ci',0],
941
941
  '':517
942
942
  },
943
943
  ['mi',0],
@@ -945,7 +945,7 @@ Id:['ci',0,,'tableWithoutAs'],
945
945
  'fromPath',
946
946
  ['mi',520],
947
947
  {'(':[521,525],'[':'(','':521},
948
- {'.':['c',522],'':0},
948
+ {'.':['c',522,,'notAfterEntityArgOrFilter'],'':0},
949
949
  ['miA',523],
950
950
  {'(':[521,525],'[':'(','':521},
951
951
  'fromArgumentsAndFilter',
@@ -961,7 +961,7 @@ Id:['ci',0,,'tableWithoutAs'],
961
961
  'fromNamedArgument',
962
962
  ['mi',533],
963
963
  ['m',534,':'],
964
- [0,642],
964
+ [0,643],
965
965
  'cardinalityAndFilter',
966
966
  ['m',537,'['],
967
967
  {Number:['c',538,,'beforeColon'],'':539},
@@ -975,13 +975,13 @@ Id:543,'#':543,'(':543,'+':543,'-':543,':':543,'?':543,not:543,case:543,cast:543
975
975
  group:['g',544,1],limit:'group',order:'group',having:'group',
976
976
  '':544
977
977
  },
978
- [544,634],
979
- {group:545,'':546},
980
- [546,608],
981
- {having:['ck',547],'':548},
982
- [548,634],
983
- {limit:549,order:549,'':0},
984
- [0,614],
978
+ [544,635],
979
+ {group:['g',545,,'hide_'],'':546},
980
+ [546,609],
981
+ {having:['ck',547,,'hide_'],'':548},
982
+ [548,635],
983
+ {limit:['g',549,,'hide_'],order:'limit','':0},
984
+ [0,615],
985
985
  'excludingClause',
986
986
  ['mk',552,'excluding'],
987
987
  ['m',553,'{'],
@@ -1017,316 +1017,314 @@ Id:[565,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':
1017
1017
  },
1018
1018
  ['m',0,'}',,,'afterBrace'],
1019
1019
  'selectItemDef',
1020
- {'@':[568,772],'':569},
1020
+ {'@':[568,773],'':569},
1021
1021
  {virtual:['ck',570,1,'modifierRestriction'],'':570},
1022
- {key:['ck',571,,'modifierRestriction'],'':571},
1022
+ ['g',571,,,'key','columnExpr'],
1023
+ {key:['ck',572,,'modifierRestriction'],'':572},
1023
1024
  {
1024
- Id:[572,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1025
- '{':[579,563],
1025
+ Id:[573,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1026
+ '{':[580,563],
1026
1027
  },
1027
1028
  {
1028
- as:['ck',573],
1029
- Id:['ci',574],
1030
- '':574
1029
+ as:['ck',574],
1030
+ Id:['ci',577],
1031
+ '.':['c',575],
1032
+ '':577
1031
1033
  },
1032
- ['mi',574],
1034
+ ['mi',577],
1033
1035
  {
1034
- '{':575,
1035
- '.':['c',577],
1036
- '':582
1037
- },
1038
- [576,563],
1039
- {excluding:[582,551],'':582},
1040
- {
1041
- '{':[578,563],
1042
- '*':['c',582],
1036
+ '{':[576,563],
1037
+ '*':['c',0],
1043
1038
  },
1044
- {excluding:[582,551],'':582},
1045
- {excluding:[580,551],'':580},
1046
- ['mk',581,'as'],
1047
- ['mi',582],
1048
- ['g',583],
1049
- {'@':[583,775],'':584},
1050
- {':':['c',585],'':0},
1039
+ {excluding:[0,551],'':0},
1040
+ {'{':578,'':583},
1041
+ [579,563],
1042
+ {excluding:[583,551],'':583},
1043
+ {excluding:[581,551],'':581},
1044
+ ['mk',582,'as'],
1045
+ ['mi',583],
1046
+ ['g',584,,,,'columnExpr'],
1047
+ {'@':[584,776],'':585},
1048
+ {':':['c',586],'':0},
1051
1049
  {
1052
- type:[599,396,1],
1053
- localized:['ck',586,1],
1054
- Id:586,
1055
- redirected:['ck',587,1],
1056
- association:['ck',591,1],
1057
- composition:['ck',593,1],
1050
+ type:[600,396,1],
1051
+ localized:['ck',587,1],
1052
+ Id:587,
1053
+ redirected:['ck',588,1],
1054
+ association:['ck',592,1,'columnExpr'],
1055
+ composition:['ck',594,1,'columnExpr'],
1058
1056
  },
1059
- [599,404],
1060
- ['mk',588,'to'],
1061
- [589,40],
1057
+ [600,404],
1058
+ ['mk',589,'to'],
1059
+ [590,40],
1062
1060
  {
1063
- on:['ck',590],
1064
- '{':[599,193],
1065
- '':599
1061
+ on:['ck',591],
1062
+ '{':[600,193],
1063
+ '':600
1066
1064
  },
1067
- [599,634],
1068
- {'[':[592,426],'':592},
1069
- ['mk',595,'to'],
1070
- {'[':[594,426],'':594},
1071
- ['mk',595,'of'],
1072
- {one:['ck',596,1],many:'one','':596},
1073
- [597,40],
1074
- ['mk',598,'on'],
1075
- [599,634],
1076
- ['g',600],
1077
- {'@':[600,769],'':0},
1065
+ [600,635],
1066
+ {'[':[593,426],'':593},
1067
+ ['mk',596,'to'],
1068
+ {'[':[595,426],'':595},
1069
+ ['mk',596,'of'],
1070
+ {one:['ck',597,1,'noRepeatedCardinality'],many:'one','':597},
1071
+ [598,40],
1072
+ ['mk',599,'on'],
1073
+ [600,635],
1074
+ ['g',601],
1075
+ {'@':[601,770],'':0},
1078
1076
  'whereGroupByHaving',
1079
- {where:['ck',603],'':604},
1080
- [604,634],
1081
- {group:[605,608],'':605},
1082
- {having:['ck',606],'':0},
1083
- [0,634],
1077
+ {where:['ck',604],'':605},
1078
+ [605,635],
1079
+ {group:[606,609],'':606},
1080
+ {having:['ck',607],'':0},
1081
+ [0,635],
1084
1082
  'groupByClause',
1085
- ['mk',609,'group'],
1086
- ['mk',610,'by'],
1087
- [611,642],
1088
- {',':['c',612],'':0},
1089
- [611,642],
1083
+ ['mk',610,'group'],
1084
+ ['mk',611,'by'],
1085
+ [612,643],
1086
+ {',':['c',613],'':0},
1087
+ [612,643],
1090
1088
  'orderByLimitOffset',
1091
- {order:[615,620],'':615},
1092
- {limit:['ck',616],'':0},
1093
- [617,642],
1094
- {offset:['ck',618],'':0},
1095
- [0,642],
1089
+ {order:[616,621],'':616},
1090
+ {limit:['ck',617],'':0},
1091
+ [618,643],
1092
+ {offset:['ck',619],'':0},
1093
+ [0,643],
1096
1094
  'orderByClause',
1097
- ['mk',621,'order'],
1098
- ['mk',622,'by'],
1099
- [623,626],
1100
- {',':['c',624],'':0},
1101
- [623,626],
1095
+ ['mk',622,'order'],
1096
+ ['mk',623,'by'],
1097
+ [624,627],
1098
+ {',':['c',625],'':0},
1099
+ [624,627],
1102
1100
  'orderByExpression',
1103
- [627,642],
1104
- {asc:['ck',628],desc:'asc','':628},
1105
- {nulls:['ck',629],'':0},
1101
+ [628,643],
1102
+ {asc:['ck',629],desc:'asc','':629},
1103
+ {nulls:['ck',630],'':0},
1106
1104
  {last:['ck',0],first:'last'},
1107
1105
  'conditionEOF',
1108
- [632,642],
1106
+ [633,643],
1109
1107
  ['m',0,'EOF'],
1110
1108
  'condition',
1111
- [0,642],
1109
+ [0,643],
1112
1110
  'valuePath',
1113
- ['mi',637],
1114
- {'(':[638,703],'[':'(','':638},
1115
- {'.':['c',639,,'isDotForPath'],'':0},
1116
- ['miA',640],
1117
- {'(':[638,703],'[':'(','':638},
1111
+ ['mi',638],
1112
+ {'(':[639,704],'[':'(','':639},
1113
+ {'.':['c',640,,'isDotForPath'],'':0},
1114
+ ['miA',641],
1115
+ {'(':[639,704],'[':'(','':639},
1118
1116
  'expression',
1119
1117
  {
1120
- '(':[643,670],
1121
- '#':[653,766],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1122
- ':':['c',644],
1123
- '?':['c',653],
1124
- Id:[646,636],
1125
- new:[653,682,1],
1126
- exists:['ck',649],
1127
- case:[653,685],
1128
- cast:[653,696],
1129
- '+':['c',652,,'precRight_',30],'-':'+',
1130
- not:['ck',652,,'precRight_',8],
1118
+ '(':[644,671],
1119
+ '#':[654,767],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1120
+ ':':['c',645],
1121
+ '?':['c',654,,'hide_'],
1122
+ Id:[647,637],
1123
+ new:[654,683,1],
1124
+ exists:['ck',650],
1125
+ case:[654,686],
1126
+ cast:[654,697],
1127
+ '+':['c',653,,'precRight_',30],'-':'+',
1128
+ not:['ck',653,,'precRight_',8],
1131
1129
  },
1132
- ['g',653],
1130
+ ['g',654],
1133
1131
  {
1134
- Id:['ciA',645],
1135
- Number:['c',653],
1132
+ Id:['ciA',646],
1133
+ Number:['c',654,,'hide_'],
1136
1134
  },
1137
- {'.':[653,638],'':653},
1138
- {over:['ck',647],'':648},
1139
- [648,730],
1140
- ['g',653],
1135
+ {'.':[654,639],'':654},
1136
+ {over:['ck',648],'':649},
1137
+ [649,731],
1138
+ ['g',654],
1141
1139
  {
1142
- '(':['c',650],
1143
- Id:[653,636],
1144
- '?':['c',653],
1140
+ '(':['c',651],
1141
+ Id:[654,637],
1142
+ '?':['c',654,,'hide_'],
1145
1143
  },
1146
- [651,451],
1147
- ['m',653,')'],
1148
- [653,642],
1144
+ [652,451],
1145
+ ['m',654,')'],
1146
+ [654,643],
1149
1147
  {
1150
- '*':['c',657,,'precLeft_',24],'/':'*',
1151
- '+':['c',657,,'precLeft_',22],'-':'+',
1152
- '||':['c',657,,'precLeft_',20],
1153
- and:['ck',657,,'precLeft_',4],
1154
- or:['ck',657,,'precLeft_',2],
1155
- '?':['c',654,,'precLeft_',0],
1156
- '<':['c',656,,'precNone_',10],'=':'<','>':'<','!=':'<','<=':'<','<>':'<','>=':'<',
1157
- is:['ck',658,,'precNone_',10],
1158
- not:['ck',660,,'isNegatedRelation','10'],
1159
- in:['g',660,,'precNone_',10],like:'in',between:'in',
1148
+ '*':['c',658,,'precLeft_',24],'/':'*',
1149
+ '+':['c',658,,'precLeft_',22],'-':'+',
1150
+ '||':['c',658,,'precLeft_',20],
1151
+ and:['ck',658,,'precLeft_',4],
1152
+ or:['ck',658,,'precLeft_',2],
1153
+ '?':['c',655,,'precLeft_',0],
1154
+ '<':['c',657,,'precNone_',10],'=':'<','>':'<','!=':'<','<=':'<','<>':'<','>=':'<',
1155
+ is:['ck',659,,'precNone_',10],
1156
+ not:['ck',661,,'isNegatedRelation','10'],
1157
+ in:['g',661,,'precNone_',10],like:'in',between:'in',
1160
1158
  '':0
1161
1159
  },
1162
- [655,642],
1163
- ['m',657,':'],
1164
- {all:['ck',657],any:'all',some:'all','':657},
1165
- [668,642],
1166
- {not:['ck',659],'':659},
1167
- ['mk',668,'null'],
1160
+ [656,643],
1161
+ ['m',658,':'],
1162
+ {all:['ck',658],any:'all',some:'all','':658},
1163
+ [669,643],
1164
+ {not:['ck',660],'':660},
1165
+ ['mk',669,'null'],
1168
1166
  {
1169
- between:['ck',661],
1170
- in:['ck',664],
1171
- like:['ck',665],
1167
+ between:['ck',662],
1168
+ in:['ck',665],
1169
+ like:['ck',666],
1172
1170
  },
1173
- [662,642],
1174
- ['mk',663,'and'],
1175
- [668,642],
1176
- [668,642],
1177
- [666,642],
1178
- {escape:['ck',667],'':668},
1179
- [668,642],
1180
- ['g',653],
1171
+ [663,643],
1172
+ ['mk',664,'and'],
1173
+ [669,643],
1174
+ [669,643],
1175
+ [667,643],
1176
+ {escape:['ck',668],'':669},
1177
+ [669,643],
1178
+ ['g',654],
1181
1179
  'expressionOrQueryParens',
1182
- ['m',671,'(',,,'queryOnLeft'],
1180
+ ['m',672,'(',,,'queryOnLeft'],
1183
1181
  {
1184
- '(':[672,670],
1185
- Id:[674,642,,,'expr','queryOnLeft'],'#':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1186
- select:[675,451],
1182
+ '(':[673,671],
1183
+ Id:[675,643,,,'expr','queryOnLeft'],'#':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1184
+ select:[676,451],
1187
1185
  },
1188
1186
  {
1189
- '*':[673,643,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
1190
- ',':[675,677,,,'expr','queryOnLeft'],
1191
- limit:[675,454,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
1192
- '':675
1187
+ '*':[674,644,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
1188
+ ',':[676,678,,,'expr','queryOnLeft'],
1189
+ limit:[676,454,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
1190
+ '':676
1193
1191
  },
1194
- {',':[675,677],'':675},
1195
- {',':[675,677],'':675},
1192
+ {',':[676,678],'':676},
1193
+ {',':[676,678],'':676},
1196
1194
  ['m',0,')'],
1197
1195
  'continueExpressionslist',
1198
- ['m',678,','],
1199
- {Id:679,'#':679,'(':679,'+':679,'-':679,':':679,'?':679,not:679,case:679,cast:679,null:679,true:679,false:679,Number:679,String:679,exists:679,QuotedLiteral:679},
1200
- {Id:[680,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id','':0},
1201
- {',':['c',679],'':0},
1196
+ ['m',679,','],
1197
+ {Id:680,'#':680,'(':680,'+':680,'-':680,':':680,'?':680,not:680,case:680,cast:680,null:680,true:680,false:680,Number:680,String:680,exists:680,QuotedLiteral:680},
1198
+ {Id:[681,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id','':0},
1199
+ {',':['c',680],'':0},
1202
1200
  'newAndValuePath',
1203
- ['mk',683,'new'],
1204
- [0,636],
1201
+ ['mk',684,'new'],
1202
+ [0,637],
1205
1203
  'caseExpression',
1206
- ['mk',686,'case'],
1204
+ ['mk',687,'case'],
1207
1205
  {
1208
- Id:[687,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1209
- when:['g',687,1],
1210
- '':687
1206
+ Id:[688,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1207
+ when:['g',688,1],
1208
+ '':688
1211
1209
  },
1212
- {when:688},
1213
- {when:['ck',689],'':692},
1214
- [690,642],
1215
- ['mk',691,'then'],
1216
- [688,642],
1217
- {else:['ck',693],'':694},
1218
- [694,642],
1210
+ {when:689},
1211
+ {when:['ck',690],'':693},
1212
+ [691,643],
1213
+ ['mk',692,'then'],
1214
+ [689,643],
1215
+ {else:['ck',694],'':695},
1216
+ [695,643],
1219
1217
  ['mk',0,'end'],
1220
1218
  'castFunction',
1221
- ['mk',697,'cast'],
1222
- ['m',698,'('],
1223
- [699,642],
1224
- ['mk',700,'as'],
1225
- [701,404],
1219
+ ['mk',698,'cast'],
1220
+ ['m',699,'('],
1221
+ [700,643],
1222
+ ['mk',701,'as'],
1223
+ [702,404],
1226
1224
  ['m',0,')'],
1227
1225
  'argumentsAndFilter',
1228
- {'(':['c',704,,,,'prepareSpecialFunction'],'':723},
1229
- {Id:['ciA',711,,'isNamedArg'],'':705},
1230
- {Id:[706,725],'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Id_all:'Id',Number:'Id',String:'Id',QuotedLiteral:'Id','':722},
1231
- {',':['c',707,,,,'nextFunctionArgument'],'':708},
1226
+ {'(':['c',705,,,,'prepareSpecialFunction'],'':724},
1227
+ {Id:['ciA',712,,'isNamedArg'],'':706},
1228
+ {Id:[707,726],'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Id_all:'Id',Number:'Id',String:'Id',QuotedLiteral:'Id','':723},
1229
+ {',':['c',708,,,,'nextFunctionArgument'],'':709},
1232
1230
  {
1233
- Id:[706,725],'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Id_all:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1234
- ')':['g',708,1],order:')',
1231
+ Id:[707,726],'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Id_all:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1232
+ ')':['g',709,1],order:')',
1235
1233
  },
1236
- {order:['ck',709],'':722},
1237
- ['mk',710,'by'],
1238
- [722,745],
1234
+ {order:['ck',710],'':723},
1235
+ ['mk',711,'by'],
1236
+ [723,746],
1239
1237
  {
1240
- ':':['c',712],
1241
- '=>':['c',717],
1238
+ ':':['c',713],
1239
+ '=>':['c',718],
1242
1240
  },
1243
- [713,642],
1244
- {',':['c',714],'':722},
1241
+ [714,643],
1242
+ {',':['c',715],'':723},
1245
1243
  {
1246
- Id:['ciA',715],
1247
- ')':722,
1244
+ Id:['ciA',716],
1245
+ ')':723,
1248
1246
  },
1249
- ['m',716,':'],
1250
- [713,642],
1251
- [718,642],
1252
- {',':['c',719],'':722},
1247
+ ['m',717,':'],
1248
+ [714,643],
1249
+ [719,643],
1250
+ {',':['c',720],'':723},
1253
1251
  {
1254
- Id:['ciA',720],
1255
- ')':722,
1252
+ Id:['ciA',721],
1253
+ ')':723,
1256
1254
  },
1257
- ['m',721,'=>'],
1258
- [718,642],
1259
- ['m',723,')'],
1255
+ ['m',722,'=>'],
1256
+ [719,643],
1257
+ ['m',724,')'],
1260
1258
  {'[':[0,536],'':0},
1261
1259
  'funcExpression',
1262
1260
  {
1263
1261
  ' lookahead':'lGenericIntroOrExpr',
1264
- Id:[727,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1265
- GenericExpr:['ckA',727],
1266
- GenericIntro:['ckA',726],
1262
+ Id:[728,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1263
+ GenericExpr:['ckA',728],
1264
+ GenericIntro:['ckA',727],
1267
1265
  },
1268
- [727,642],
1266
+ [728,643],
1269
1267
  {
1270
1268
  ' lookahead':'lGenericSeparator',
1271
- GenericSeparator:['ckA',728],
1269
+ GenericSeparator:['ckA',729],
1272
1270
  '':0
1273
1271
  },
1274
1272
  {
1275
1273
  ' lookahead':'lGenericExpr',
1276
- Id:[727,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1277
- GenericExpr:['ckA',727],
1274
+ Id:[728,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1275
+ GenericExpr:['ckA',728],
1278
1276
  },
1279
1277
  'overClause',
1280
- ['m',731,'('],
1281
- {partition:['ck',732],'':734},
1282
- ['mk',733,'by'],
1283
- [734,741],
1284
- {order:['ck',735],'':737},
1285
- ['mk',736,'by'],
1286
- [737,745],
1287
- {rows:['ck',738],'':739},
1288
- [739,754],
1278
+ ['m',732,'('],
1279
+ {partition:['ck',733],'':735},
1280
+ ['mk',734,'by'],
1281
+ [735,742],
1282
+ {order:['ck',736],'':738},
1283
+ ['mk',737,'by'],
1284
+ [738,746],
1285
+ {rows:['ck',739],'':740},
1286
+ [740,755],
1289
1287
  ['m',0,')'],
1290
1288
  'expressionsAsXpr',
1291
- [742,642],
1292
- {',':['c',743],'':0},
1293
- [742,642],
1289
+ [743,643],
1290
+ {',':['c',744],'':0},
1291
+ [743,643],
1294
1292
  'orderByClauseAsXpr',
1295
- [746,749],
1296
- {',':['c',747],'':0},
1297
- [746,749],
1293
+ [747,750],
1294
+ {',':['c',748],'':0},
1295
+ [747,750],
1298
1296
  'orderBySpecAsXpr',
1299
- [750,642],
1300
- {asc:['ck',751],desc:'asc','':751},
1301
- {nulls:['ck',752],'':0},
1297
+ [751,643],
1298
+ {asc:['ck',752],desc:'asc','':752},
1299
+ {nulls:['ck',753],'':0},
1302
1300
  {last:['ck',0],first:'last'},
1303
1301
  'windowFrameClause',
1304
1302
  {
1305
- unbounded:['ck',755],
1306
- Number:['c',755],
1307
- current:['ck',756],
1308
- between:['ck',757],
1303
+ unbounded:['ck',756],
1304
+ Number:['c',756],
1305
+ current:['ck',757],
1306
+ between:['ck',758],
1309
1307
  },
1310
1308
  ['mk',0,'preceding'],
1311
1309
  ['mk',0,'row'],
1312
- [758,761],
1313
- ['mk',759,'and'],
1314
- [0,761],
1310
+ [759,762],
1311
+ ['mk',760,'and'],
1312
+ [0,762],
1315
1313
  'windowFrameBoundSpec',
1316
1314
  {
1317
- unbounded:['ck',762],
1318
- Number:['c',762],
1319
- current:['ck',764],
1315
+ unbounded:['ck',763],
1316
+ Number:['c',763],
1317
+ current:['ck',765],
1320
1318
  },
1321
1319
  {
1322
- following:['ck',763],
1323
- preceding:['ck',763],
1320
+ following:['ck',764],
1321
+ preceding:['ck',764],
1324
1322
  },
1325
1323
  ['g',0,[]],
1326
1324
  ['mk',0,'row'],
1327
1325
  'literalValue',
1328
1326
  {
1329
- '#':['c',767],
1327
+ '#':['c',768],
1330
1328
  null:['ck',0],
1331
1329
  true:['ck',0],false:'true',
1332
1330
  Number:['c',0],
@@ -1335,98 +1333,98 @@ QuotedLiteral:['c',0],
1335
1333
  },
1336
1334
  ['mi',0],
1337
1335
  'annoAssignStd',
1338
- ['m',770,'@',,,'annoInSameLine'],
1336
+ ['m',771,'@',,,'annoInSameLine'],
1339
1337
  {
1340
- '(':[0,778],
1341
- Id:[0,783],
1338
+ '(':[0,779],
1339
+ Id:[0,784],
1342
1340
  },
1343
1341
  'annoAssignCol',
1344
- ['m',773,'@'],
1342
+ ['m',774,'@'],
1345
1343
  {
1346
- '(':[0,778],
1347
- Id:[0,783],
1344
+ '(':[0,779],
1345
+ Id:[0,784],
1348
1346
  },
1349
1347
  'annoAssignMid',
1350
- ['m',776,'@',,,'annoInSameLine'],
1348
+ ['m',777,'@',,,'annoInSameLine'],
1351
1349
  {
1352
- '(':[0,778],
1353
- Id:[0,787],
1350
+ '(':[0,779],
1351
+ Id:[0,788],
1354
1352
  },
1355
1353
  'annoAssignParen',
1356
- ['m',779,'(',,,'annoInSameLine'],
1357
- {Id:[780,783],'':781},
1354
+ ['m',780,'(',,,'annoInSameLine'],
1355
+ {Id:[781,784],'':782},
1358
1356
  {
1359
- ',':['c',779],
1360
- ')':781,
1357
+ ',':['c',780],
1358
+ ')':782,
1361
1359
  },
1362
1360
  ['m',0,')'],
1363
1361
  'annoAssignBase',
1364
- [784,787],
1365
- {':':['c',785,,'annoInSameLine'],'':0},
1366
- [0,809],
1362
+ [785,788],
1363
+ {':':['c',786,,'annoInSameLine'],'':0},
1364
+ [0,810],
1367
1365
  'annoNamePath',
1368
- ['miA',788],
1369
- {'.':['c',789],'':791},
1366
+ ['miA',789],
1367
+ {'.':['c',790],'':792},
1370
1368
  {
1371
- Id:['ciA',788],
1372
- '@':['c',790],
1369
+ Id:['ciA',789],
1370
+ '@':['c',791],
1373
1371
  },
1374
- ['miA',788],
1375
- {'#':[0,800,,'annoInSameLine'],'':0},
1372
+ ['miA',789],
1373
+ {'#':[0,801,,'annoInSameLine'],'':0},
1376
1374
  'annoPath',
1377
1375
  {
1378
- Id:['ciA',795],
1379
- '@':['c',794],
1376
+ Id:['ciA',796],
1377
+ '@':['c',795],
1380
1378
  },
1381
- ['miA',795],
1382
- {'.':['c',796],'':798},
1379
+ ['miA',796],
1380
+ {'.':['c',797],'':799},
1383
1381
  {
1384
- Id:['ciA',795],
1385
- '@':['c',797],
1382
+ Id:['ciA',796],
1383
+ '@':['c',798],
1386
1384
  },
1387
- ['miA',795],
1388
- {'#':[0,800],'':0},
1385
+ ['miA',796],
1386
+ {'#':[0,801],'':0},
1389
1387
  'annoPathVariant',
1390
- ['m',801,'#'],
1391
- ['miA',802],
1392
- {'.':['c',803],'':0},
1393
- ['miA',802],
1388
+ ['m',802,'#'],
1389
+ ['miA',803],
1390
+ {'.':['c',804],'':0},
1391
+ ['miA',803],
1394
1392
  'annoStructValue',
1395
- [806,793],
1396
- {':':['c',807],'':0},
1397
- [0,809],
1393
+ [807,794],
1394
+ {':':['c',808],'':0},
1395
+ [0,810],
1398
1396
  'annoValue',
1399
1397
  {
1400
- '#':[0,766],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1401
- '+':['c',810],'-':'+',
1402
- Id:[0,793],'@':'Id',
1403
- '{':['c',811],
1404
- '[':['c',815,,,,'arrayAnno'],
1405
- '(':['c',822],
1398
+ '#':[0,767],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1399
+ '+':['c',811],'-':'+',
1400
+ Id:[0,794],'@':'Id',
1401
+ '{':['c',812],
1402
+ '[':['c',816,,,,'arrayAnno'],
1403
+ '(':['c',823],
1406
1404
  },
1407
1405
  ['m',0,'Number'],
1408
- {Id:[812,805],'@':'Id','':813},
1406
+ {Id:[813,806],'@':'Id','':814},
1409
1407
  {
1410
- ',':['c',811],
1411
- '}':813,
1408
+ ',':['c',812],
1409
+ '}':814,
1412
1410
  },
1413
- ['g',814],
1411
+ ['g',815],
1414
1412
  ['m',0,'}'],
1415
1413
  {
1416
- Id:[819,809],'#':'Id','(':'Id','+':'Id','-':'Id','@':'Id','[':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1417
- '...':['c',816,,'arrayAnno','ellipsis'],
1418
- '':820
1414
+ Id:[820,810],'#':'Id','(':'Id','+':'Id','-':'Id','@':'Id','[':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1415
+ '...':['c',817,,'arrayAnno','ellipsis'],
1416
+ '':821
1419
1417
  },
1420
- {up:['ck',817],'':819},
1421
- ['mk',818,'to'],
1422
- [819,809],
1418
+ {up:['ck',818],'':820},
1419
+ ['mk',819,'to'],
1420
+ [820,810],
1423
1421
  {
1424
- ',':['c',815],
1425
- ']':820,
1422
+ ',':['c',816],
1423
+ ']':821,
1426
1424
  },
1427
- ['g',821],
1425
+ ['g',822],
1428
1426
  ['m',0,']'],
1429
- [823,634],
1427
+ [824,635],
1430
1428
  ['m',0,')'],
1431
1429
  ]
1432
1430
  class CdlParser extends AstBuildingParser{
@@ -2219,7 +2217,7 @@ default:this.s=209;continue
2219
2217
  }
2220
2218
  case 209:this.mk(210,'of');continue
2221
2219
  case 210:switch(this.lk()){
2222
- case'one':case'many':if(this.ckP(211,['Id']))card=this.lb();continue
2220
+ case'one':case'many':if(this.lP(['Id'])&&this.gc(211,'noRepeatedCardinality')&&this.ck(211))card=this.lb();continue
2223
2221
  default:this.s=211;continue
2224
2222
  }
2225
2223
  case 211:if(this.simplePath(_={category:'artref'},212)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
@@ -2846,7 +2844,7 @@ default:this.s=370;continue
2846
2844
  }
2847
2845
  case 370:this.mk(371,'to');continue
2848
2846
  case 371:switch(this.lk()){
2849
- case'one':case'many':if(this.ckP(372,['Id']))card=this.lb();continue
2847
+ case'one':case'many':if(this.lP(['Id'])&&this.gc(372,'noRepeatedCardinality')&&this.ck(372))card=this.lb();continue
2850
2848
  default:this.s=372;continue
2851
2849
  }
2852
2850
  case 372:this.typeAssocProperties({art:$.art,assoc,card},0);continue
@@ -2856,7 +2854,7 @@ default:this.s=374;continue
2856
2854
  }
2857
2855
  case 374:this.mk(375,'of');continue
2858
2856
  case 375:switch(this.lk()){
2859
- case'one':case'many':if(this.ckP(376,['Id','{']))card=this.lb();continue
2857
+ case'one':case'many':if(this.lP(['Id','{'])&&this.gc(376,'noRepeatedCardinality')&&this.ck(376))card=this.lb();continue
2860
2858
  default:this.s=376;continue
2861
2859
  }
2862
2860
  case 376:switch(this.l()){
@@ -3116,10 +3114,9 @@ $.query??={}
3116
3114
  let tab;let _
3117
3115
  this.rule_(445,$next)
3118
3116
  for(;;)switch(this.s){
3119
- case 445:if(this.mk(446,'projection')){ $.query = { op: this.valueWithLocation( 'SELECT' ) }; }continue
3117
+ case 445:if(this.mk(446,'projection')){this.afterBrace(); $.query = { op: this.valueWithLocation( 'SELECT' ) }; }continue
3120
3118
  case 446:this.mk(447,'on');continue
3121
- case 447:if(this.fromRefWithOptAlias(_={},448)){tab=_.expr; this.afterBrace();
3122
- $.query.from = tab; }continue
3119
+ case 447:if(this.fromRefWithOptAlias(_={},448)){tab=_.expr;this.afterBrace(); $.query.from = tab; }continue
3123
3120
  case 448:switch(this.l()){
3124
3121
  case'{':this.selectItemsList({query:$.query,start:undefined},449);continue
3125
3122
  default:this.s=449;continue
@@ -3368,7 +3365,7 @@ default:this.s=515;continue
3368
3365
  case 514:this.fromPath({table:$.expr,category:'ref'},515);continue
3369
3366
  case 515:switch(this.lk()){
3370
3367
  case'as':this.ck(516);continue
3371
- case'Id':if(this.gc(517,'tableWithoutAs')&&this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
3368
+ case'Id':if(this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
3372
3369
  default:this.giR(517);continue
3373
3370
  }
3374
3371
  case 516:if(this.mi(0,'FromAlias')){ $.expr.name = this.identAst(); }continue
@@ -3388,7 +3385,7 @@ case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},521)){ pathIt
3388
3385
  default:this.s=521;continue
3389
3386
  }
3390
3387
  case 521:switch(this.l()){
3391
- case'.':if(this.c(522)){ if (!pathItem && !$.table.scope) {
3388
+ case'.':if(this.gc(0,'notAfterEntityArgOrFilter')&&this.c(522)){ if (!pathItem && !$.table.scope) {
3392
3389
  $.table.scope = $.table.path.length; $.category = 'ref';
3393
3390
  this.warning( 'syntax-invalid-path-separator', this.lb(),
3394
3391
  { '#': 'dot', code: '.', newcode: ':' } );
@@ -3559,95 +3556,96 @@ case 569:switch(this.lk()){
3559
3556
  case'virtual':if(this.lP(['Id','#','(','+','-',':','?','{','key','not','case','cast','null','true','false','Number','String','exists','QuotedLiteral'])&&this.gc(570,'modifierRestriction')&&this.ck(570)){ art.virtual = this.valueWithLocation( true ); }continue
3560
3557
  default:this.s=570;continue
3561
3558
  }
3562
- case 570:switch(this.lk()){
3563
- case'key':if(this.gc(571,'modifierRestriction')&&this.ck(571)){ art.key = this.valueWithLocation( true ); }continue
3564
- default:this.s=571;continue
3559
+ case 570:this.s=571;{this.columnExpr(0,'key'); ; }continue
3560
+ case 571:switch(this.lk()){
3561
+ case'key':if(this.gc(572,'modifierRestriction')&&this.ck(572)){ art.key = this.valueWithLocation( true ); }continue
3562
+ default:this.s=572;continue
3565
3563
  }
3566
- case 571:switch(this.l()){
3567
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},572)){expr=_.expr; art.value = expr; }continue
3568
- case'{':this.nestedSelectItemsList({query:art,clause:'expand'},579);continue
3564
+ case 572:switch(this.l()){
3565
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},573)){expr=_.expr; art.value = expr; }continue
3566
+ case'{':this.nestedSelectItemsList({query:art,clause:'expand'},580);continue
3569
3567
  default:this.e();continue
3570
3568
  }
3571
- case 572:switch(this.lk()){
3572
- case'as':if(this.ck(573))as=this.lb();continue
3573
- case'Id':if(this.ci(574,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3574
- default:if(this.gi(574)){ alias = this.classifyImplicitName( 'ItemImplicit', expr ); }continue
3575
- }
3576
- case 573:if(this.mi(574,'ItemAlias')){ art.name = this.identAst(); }continue
3577
- case 574:switch(this.l()){
3578
- case'{':this.s=575;{ this.reportExpandInline( art, false ); }continue
3579
- case'.':if(this.c(577)){ this.reportUnexpectedSpace( this.lb(), this.la().location, true );
3569
+ case 573:switch(this.lk()){
3570
+ case'as':if(this.ck(574))as=this.lb();continue
3571
+ case'Id':if(this.ci(577,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3572
+ case'.':if(this.c(575)){ this.reportUnexpectedSpace( this.lb(), this.la().location, true );
3580
3573
  this.reportExpandInline( art, as || true );
3581
3574
  if (alias) alias.token.parsedAs = alias.parsedAs; }continue
3582
- default:this.s=582;continue
3575
+ default:if(this.gi(577)){ alias = this.classifyImplicitName( 'ItemImplicit', expr ); }continue
3576
+ }
3577
+ case 574:if(this.mi(577,'ItemAlias')){ art.name = this.identAst(); }continue
3578
+ case 575:switch(this.l()){
3579
+ case'{':this.nestedSelectItemsList({query:art,clause:'inline'},576);continue
3580
+ case'*':if(this.c(0)){ art.inline = [ this.valueWithLocation() ]; }continue
3581
+ default:this.e();continue
3583
3582
  }
3584
- case 575:this.nestedSelectItemsList({query:art,clause:'expand'},576);continue
3585
3583
  case 576:switch(this.lk()){
3586
- case'excluding':this.excludingClause({query:art},582);continue
3587
- default:this.s=582;continue
3584
+ case'excluding':this.excludingClause({query:art},0);continue
3585
+ default:this.gr([',']);continue
3588
3586
  }
3589
3587
  case 577:switch(this.l()){
3590
- case'{':this.nestedSelectItemsList({query:art,clause:'inline'},578);continue
3591
- case'*':if(this.c(582)){ art.inline = [ this.valueWithLocation() ]; }continue
3592
- default:this.e();continue
3593
- }
3594
- case 578:switch(this.lk()){
3595
- case'excluding':this.excludingClause({query:art},582);continue
3596
- default:this.s=582;continue
3588
+ case'{':this.s=578;{ this.reportExpandInline( art, false ); }continue
3589
+ default:this.s=583;continue
3597
3590
  }
3591
+ case 578:this.nestedSelectItemsList({query:art,clause:'expand'},579);continue
3598
3592
  case 579:switch(this.lk()){
3599
- case'excluding':this.excludingClause({query:art},580);continue
3600
- default:this.s=580;continue
3593
+ case'excluding':this.excludingClause({query:art},583);continue
3594
+ default:this.s=583;continue
3601
3595
  }
3602
- case 580:this.mk(581,'as');continue
3603
- case 581:if(this.mi(582,'ItemAlias')){ art.name = this.identAst(); }continue
3604
- case 582:this.s=583;{ this.docComment( art ); }continue
3605
- case 583:switch(this.l()){
3606
- case'@':this.annoAssignMid({art},583);continue
3607
- default:this.s=584;continue
3596
+ case 580:switch(this.lk()){
3597
+ case'excluding':this.excludingClause({query:art},581);continue
3598
+ default:this.s=581;continue
3608
3599
  }
3600
+ case 581:this.mk(582,'as');continue
3601
+ case 582:if(this.mi(583,'ItemAlias')){ art.name = this.identAst(); }continue
3602
+ case 583:this.s=584;{this.columnExpr(); this.docComment( art ); }continue
3609
3603
  case 584:switch(this.l()){
3610
- case':':this.c(585);continue
3604
+ case'@':this.annoAssignMid({art},584);continue
3605
+ default:this.s=585;continue
3606
+ }
3607
+ case 585:switch(this.l()){
3608
+ case':':this.c(586);continue
3611
3609
  default:this.gr([',']);continue
3612
3610
  }
3613
- case 585:switch(this.lk()){
3614
- case'type':this.lP()&&this.typeTypeOf({art},599);continue
3615
- case'localized':if(this.ckP(586,['Id'])){ art.localized = this.valueWithLocation( true ); }continue
3616
- case'Id':this.s=586;continue
3617
- case'redirected':this.ckP(587,['to']);continue
3618
- case'association':if(this.ckP(591,['[','to'])){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3619
- case'composition':if(this.ckP(593,['[','of'])){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3611
+ case 586:switch(this.lk()){
3612
+ case'type':this.lP()&&this.typeTypeOf({art},600);continue
3613
+ case'localized':if(this.ckP(587,['Id'])){ art.localized = this.valueWithLocation( true ); }continue
3614
+ case'Id':this.s=587;continue
3615
+ case'redirected':this.ckP(588,['to']);continue
3616
+ case'association':if(this.lP(['[','to'])&&this.ec('columnExpr')&&this.ck(592)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3617
+ case'composition':if(this.lP(['[','of'])&&this.ec('columnExpr')&&this.ck(594)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3620
3618
  default:this.ei();continue
3621
3619
  }
3622
- case 586:this.typeRefOptArgs({art},599);continue
3623
- case 587:this.mk(588,'to');continue
3624
- case 588:if(this.simplePath(_={category:'artref'},589)){target=_.ref; art.target = target; }continue
3625
- case 589:switch(this.lk()){
3626
- case'on':this.ck(590);continue
3627
- case'{':this.foreignKeysBlock({art},599);continue
3628
- default:this.s=599;continue
3629
- }
3630
- case 590:if(this.condition(_={},599)){cond=_.expr; art.on = cond; }continue
3631
- case 591:switch(this.l()){
3632
- case'[':this.cardinality({art},592);continue
3633
- default:this.s=592;continue
3634
- }
3635
- case 592:this.mk(595,'to');continue
3636
- case 593:switch(this.l()){
3637
- case'[':this.cardinality({art},594);continue
3638
- default:this.s=594;continue
3639
- }
3640
- case 594:this.mk(595,'of');continue
3641
- case 595:switch(this.lk()){
3642
- case'one':case'many':if(this.ckP(596,['Id']))card=this.lb();continue
3643
- default:this.s=596;continue
3644
- }
3645
- case 596:if(this.simplePath(_={category:'artref'},597)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
3646
- case 597:this.mk(598,'on');continue
3647
- case 598:if(this.condition(_={},599)){expr=_.expr; art.on = expr; }continue
3648
- case 599:this.s=600;{ this.docComment( art ); }continue
3649
- case 600:switch(this.l()){
3650
- case'@':this.annoAssignStd({art},600);continue
3620
+ case 587:this.typeRefOptArgs({art},600);continue
3621
+ case 588:this.mk(589,'to');continue
3622
+ case 589:if(this.simplePath(_={category:'artref'},590)){target=_.ref; art.target = target; }continue
3623
+ case 590:switch(this.lk()){
3624
+ case'on':this.ck(591);continue
3625
+ case'{':this.foreignKeysBlock({art},600);continue
3626
+ default:this.s=600;continue
3627
+ }
3628
+ case 591:if(this.condition(_={},600)){cond=_.expr; art.on = cond; }continue
3629
+ case 592:switch(this.l()){
3630
+ case'[':this.cardinality({art},593);continue
3631
+ default:this.s=593;continue
3632
+ }
3633
+ case 593:this.mk(596,'to');continue
3634
+ case 594:switch(this.l()){
3635
+ case'[':this.cardinality({art},595);continue
3636
+ default:this.s=595;continue
3637
+ }
3638
+ case 595:this.mk(596,'of');continue
3639
+ case 596:switch(this.lk()){
3640
+ case'one':case'many':if(this.lP(['Id'])&&this.gc(597,'noRepeatedCardinality')&&this.ck(597))card=this.lb();continue
3641
+ default:this.s=597;continue
3642
+ }
3643
+ case 597:if(this.simplePath(_={category:'artref'},598)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
3644
+ case 598:this.mk(599,'on');continue
3645
+ case 599:if(this.condition(_={},600)){expr=_.expr; art.on = expr; }continue
3646
+ case 600:this.s=601;{ this.docComment( art ); }continue
3647
+ case 601:switch(this.l()){
3648
+ case'@':this.annoAssignStd({art},601);continue
3651
3649
  default:this.gr([',']);continue
3652
3650
  }
3653
3651
  default:
@@ -3657,90 +3655,90 @@ return this.exit_()
3657
3655
  }
3658
3656
  whereGroupByHaving($,$next){
3659
3657
  let cond;let _
3660
- this.rule_(602,$next)
3658
+ this.rule_(603,$next)
3661
3659
  for(;;)switch(this.s){
3662
- case 602:switch(this.lk()){
3663
- case'where':this.ck(603);continue
3664
- default:this.s=604;continue
3665
- }
3666
- case 603:if(this.condition(_={},604)){cond=_.expr; $.query.where = cond; }continue
3667
- case 604:switch(this.lk()){
3668
- case'group':this.groupByClause($,605);continue
3660
+ case 603:switch(this.lk()){
3661
+ case'where':this.ck(604);continue
3669
3662
  default:this.s=605;continue
3670
3663
  }
3664
+ case 604:if(this.condition(_={},605)){cond=_.expr; $.query.where = cond; }continue
3671
3665
  case 605:switch(this.lk()){
3672
- case'having':this.ck(606);continue
3666
+ case'group':this.groupByClause($,606);continue
3667
+ default:this.s=606;continue
3668
+ }
3669
+ case 606:switch(this.lk()){
3670
+ case'having':this.ck(607);continue
3673
3671
  default:this.gr(['limit','order']);continue
3674
3672
  }
3675
- case 606:if(this.condition(_={},0)){cond=_.expr; $.query.having = cond; }continue
3673
+ case 607:if(this.condition(_={},0)){cond=_.expr; $.query.having = cond; }continue
3676
3674
  default:return this.exit_()
3677
3675
  }
3678
3676
  }
3679
3677
  groupByClause($,$next){
3680
3678
  let expr;let _
3681
- this.rule_(608,$next)
3679
+ this.rule_(609,$next)
3682
3680
  for(;;)switch(this.s){
3683
- case 608:this.mk(609,'group');continue
3684
- case 609:this.mk(610,'by');continue
3685
- case 610:if(this.expression(_={},611)){expr=_.expr; $.query.groupBy = [ expr ]; }continue
3686
- case 611:switch(this.l()){
3687
- case',':this.c(612);continue
3681
+ case 609:this.mk(610,'group');continue
3682
+ case 610:this.mk(611,'by');continue
3683
+ case 611:if(this.expression(_={},612)){expr=_.expr; $.query.groupBy = [ expr ]; }continue
3684
+ case 612:switch(this.l()){
3685
+ case',':this.c(613);continue
3688
3686
  default:this.gr(['limit','order','having']);continue
3689
3687
  }
3690
- case 612:if(this.expression(_={},611)){expr=_.expr; $.query.groupBy.push( expr ); }continue
3688
+ case 613:if(this.expression(_={},612)){expr=_.expr; $.query.groupBy.push( expr ); }continue
3691
3689
  default:return this.exit_()
3692
3690
  }
3693
3691
  }
3694
3692
  orderByLimitOffset($,$next){
3695
3693
  let expr;let _
3696
- this.rule_(614,$next)
3694
+ this.rule_(615,$next)
3697
3695
  for(;;)switch(this.s){
3698
- case 614:switch(this.lk()){
3699
- case'order':this.orderByClause($,615);continue
3700
- default:this.s=615;continue
3701
- }
3702
3696
  case 615:switch(this.lk()){
3703
- case'limit':this.ck(616);continue
3697
+ case'order':this.orderByClause($,616);continue
3698
+ default:this.s=616;continue
3699
+ }
3700
+ case 616:switch(this.lk()){
3701
+ case'limit':this.ck(617);continue
3704
3702
  default:this.gr([]);continue
3705
3703
  }
3706
- case 616:if(this.expression(_={},617)){expr=_.expr; $.query.limit = { rows: expr }; }continue
3707
- case 617:switch(this.lk()){
3708
- case'offset':this.ck(618);continue
3704
+ case 617:if(this.expression(_={},618)){expr=_.expr; $.query.limit = { rows: expr }; }continue
3705
+ case 618:switch(this.lk()){
3706
+ case'offset':this.ck(619);continue
3709
3707
  default:this.gr([]);continue
3710
3708
  }
3711
- case 618:if(this.expression(_={},0)){expr=_.expr; $.query.limit.offset = expr; }continue
3709
+ case 619:if(this.expression(_={},0)){expr=_.expr; $.query.limit.offset = expr; }continue
3712
3710
  default:return this.exit_()
3713
3711
  }
3714
3712
  }
3715
3713
  orderByClause($,$next){
3716
3714
  let expr;let _
3717
- this.rule_(620,$next)
3715
+ this.rule_(621,$next)
3718
3716
  for(;;)switch(this.s){
3719
- case 620:this.mk(621,'order');continue
3720
- case 621:this.mk(622,'by');continue
3721
- case 622:if(this.orderByExpression(_={},623)){expr=_.expr; $.query.orderBy = [ expr ]; }continue
3722
- case 623:switch(this.l()){
3723
- case',':this.c(624);continue
3717
+ case 621:this.mk(622,'order');continue
3718
+ case 622:this.mk(623,'by');continue
3719
+ case 623:if(this.orderByExpression(_={},624)){expr=_.expr; $.query.orderBy = [ expr ]; }continue
3720
+ case 624:switch(this.l()){
3721
+ case',':this.c(625);continue
3724
3722
  default:this.gr(['limit']);continue
3725
3723
  }
3726
- case 624:if(this.orderByExpression(_={},623)){expr=_.expr; $.query.orderBy.push( expr ); }continue
3724
+ case 625:if(this.orderByExpression(_={},624)){expr=_.expr; $.query.orderBy.push( expr ); }continue
3727
3725
  default:return this.exit_()
3728
3726
  }
3729
3727
  }
3730
3728
  orderByExpression($,$next){
3731
3729
  $.expr??=undefined
3732
- this.rule_(626,$next)
3730
+ this.rule_(627,$next)
3733
3731
  for(;;)switch(this.s){
3734
- case 626:this.expression($,627);continue
3735
- case 627:switch(this.lk()){
3736
- case'asc':case'desc':if(this.ck(628)){ $.expr.sort = this.valueWithLocation(); }continue
3737
- default:this.s=628;continue
3738
- }
3732
+ case 627:this.expression($,628);continue
3739
3733
  case 628:switch(this.lk()){
3740
- case'nulls':this.ck(629);continue
3741
- default:this.gr([',','limit']);continue
3734
+ case'asc':case'desc':if(this.ck(629)){ $.expr.sort = this.valueWithLocation(); }continue
3735
+ default:this.s=629;continue
3742
3736
  }
3743
3737
  case 629:switch(this.lk()){
3738
+ case'nulls':this.ck(630);continue
3739
+ default:this.gr([',','limit']);continue
3740
+ }
3741
+ case 630:switch(this.lk()){
3744
3742
  case'last':case'first':if(this.ck(0)){ $.expr.nulls = this.valueWithLocation(); }continue
3745
3743
  default:this.e();continue
3746
3744
  }
@@ -3750,39 +3748,39 @@ default:return this.exit_()
3750
3748
  conditionEOF($,$next){
3751
3749
  $.cond??=undefined
3752
3750
  let _
3753
- this.rule_(631,$next)
3751
+ this.rule_(632,$next)
3754
3752
  for(;;)switch(this.s){
3755
- case 631:if(this.expression(_={},632))$.cond=_.expr;continue
3756
- case 632:this.m(0,'EOF');continue
3753
+ case 632:if(this.expression(_={},633))$.cond=_.expr;continue
3754
+ case 633:this.m(0,'EOF');continue
3757
3755
  default:return this.exit_()
3758
3756
  }
3759
3757
  }
3760
3758
  condition($,$next){
3761
3759
  $.expr??=undefined
3762
- this.rule_(634,$next)
3760
+ this.rule_(635,$next)
3763
3761
  for(;;)switch(this.s){
3764
- case 634:this.expression($,0);continue
3762
+ case 635:this.expression($,0);continue
3765
3763
  default:return this.exit_()
3766
3764
  }
3767
3765
  }
3768
3766
  valuePath($,$next,$startState){
3769
3767
  $.expr??={ path: [] }
3770
3768
  let pathItem
3771
- this.rule_($startState??636,$next)
3769
+ this.rule_($startState??637,$next)
3772
3770
  for(;;)switch(this.s){
3773
- case 636:if(this.mi(637,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3774
- case 637:switch(this.l()){
3775
- case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},638);continue
3776
- default:this.s=638;continue
3777
- }
3771
+ case 637:if(this.mi(638,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3778
3772
  case 638:switch(this.l()){
3779
- case'.':this.gc(0,'isDotForPath')&&this.c(639);continue
3773
+ case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},639);continue
3774
+ default:this.s=639;continue
3775
+ }
3776
+ case 639:switch(this.l()){
3777
+ case'.':this.gc(0,'isDotForPath')&&this.c(640);continue
3780
3778
  default:this.gr(['*','+','-','/','<','=','>','?','!=','<=','<>','>=','in','is','or','||','and','not','like','between']);continue
3781
3779
  }
3782
- case 639:if(this.miA(640,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3783
- case 640:switch(this.l()){
3784
- case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},638)){ pathItem = null; }continue
3785
- default:this.s=638;continue
3780
+ case 640:if(this.miA(641,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3781
+ case 641:switch(this.l()){
3782
+ case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},639)){ pathItem = null; }continue
3783
+ default:this.s=639;continue
3786
3784
  }
3787
3785
  default:
3788
3786
  this.attachLocation( $.expr )
@@ -3792,141 +3790,141 @@ return this.exit_()
3792
3790
  expression($,$next,$startState){
3793
3791
  $.expr??={}
3794
3792
  let e;let open;let _
3795
- this.rule_($startState??642,$next)
3793
+ this.rule_($startState??643,$next)
3796
3794
  for(;;)switch(this.s){
3797
- case 642:switch(this.lk()){
3798
- case'(':this.expressionOrQueryParens($,643);continue
3799
- case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,653);continue
3800
- case':':if(this.c(644)){ this.reportUnexpectedSpace(); }continue
3801
- case'?':if(this.c(653)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3795
+ case 643:switch(this.lk()){
3796
+ case'(':this.expressionOrQueryParens($,644);continue
3797
+ case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,654);continue
3798
+ case':':if(this.c(645)){ this.reportUnexpectedSpace(); }continue
3799
+ case'?':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3802
3800
  $.expr = this.attachLocation({ param: this.valueWithLocation(), scope: 'param' }); }continue
3803
- case'Id':if(this.valuePath(_={},646)){e=_.expr; $.expr = this.valuePathAst( e ); }continue
3804
- case'new':this.lP()&&this.newAndValuePath($,653);continue
3805
- case'exists':if(this.ck(649)){ $.expr = this.applyOpToken(); }continue
3806
- case'case':this.caseExpression($,653);continue
3807
- case'cast':this.castFunction($,653);continue
3808
- case'+':case'-':if(this.ec('precRight_',30)&&this.c(652)){ $.expr = this.applyOpToken(); }continue
3809
- case'not':if(this.ec('precRight_',8)&&this.ck(652)){ $.expr = this.applyOpToken(); }continue
3801
+ case'Id':if(this.valuePath(_={},647)){e=_.expr; $.expr = this.valuePathAst( e ); }continue
3802
+ case'new':this.lP()&&this.newAndValuePath($,654);continue
3803
+ case'exists':if(this.ck(650)){ $.expr = this.applyOpToken(); }continue
3804
+ case'case':this.caseExpression($,654);continue
3805
+ case'cast':this.castFunction($,654);continue
3806
+ case'+':case'-':if(this.ec('precRight_',30)&&this.c(653)){ $.expr = this.applyOpToken(); }continue
3807
+ case'not':if(this.ec('precRight_',8)&&this.ck(653)){ $.expr = this.applyOpToken(); }continue
3810
3808
  default:this.ei();continue
3811
3809
  }
3812
- case 643:this.s=653;{ $.expr = this.taggedIfQuery( $.expr ); }continue
3813
- case 644:switch(this.l()){
3814
- case'Id':if(this.ciA(645,'paramref')){ $.expr = { path: [ this.identAst() ], location: this.startLocation(), scope: 'param' }; }continue
3815
- case'Number':if(this.c(653)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'positional', code: ':' + this.lb().text } );
3810
+ case 644:this.s=654;{ $.expr = this.taggedIfQuery( $.expr ); }continue
3811
+ case 645:switch(this.l()){
3812
+ case'Id':if(this.ciA(646,'paramref')){ $.expr = { path: [ this.identAst() ], location: this.startLocation(), scope: 'param' }; }continue
3813
+ case'Number':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'positional', code: ':' + this.lb().text } );
3816
3814
  $.expr = this.attachLocation({ param: this.unsignedIntegerLiteral(), scope: 'param' }); }continue
3817
3815
  default:this.e();continue
3818
3816
  }
3819
- case 645:switch(this.l()){
3820
- case'.':if(this.valuePath($,653,638)){ $.expr = this.valuePathAst( $.expr ); }continue
3821
- default:this.s=653;{ this.attachLocation( $.expr ); }continue
3822
- }
3823
- case 646:switch(this.lk()){
3824
- case'over':if(this.ck(647)){ this.pushXprToken( $.expr.suffix = [] ); }continue
3825
- default:this.s=648;continue
3826
- }
3827
- case 647:this.overClause(e={outer:$.expr.suffix},648);continue
3828
- case 648:this.s=653;{ this.attachLocation( $.expr ); }continue
3829
- case 649:switch(this.l()){
3830
- case'(':if(this.c(650))open=this.lb();continue
3831
- case'Id':if(this.valuePath(_={},653)){e=_.expr; e = this.valuePathAst( e ); e.$expected = 'exists';
3817
+ case 646:switch(this.l()){
3818
+ case'.':if(this.valuePath($,654,639)){ $.expr = this.valuePathAst( $.expr ); }continue
3819
+ default:this.s=654;{ this.attachLocation( $.expr ); }continue
3820
+ }
3821
+ case 647:switch(this.lk()){
3822
+ case'over':if(this.ck(648)){ this.pushXprToken( $.expr.suffix = [] ); }continue
3823
+ default:this.s=649;continue
3824
+ }
3825
+ case 648:this.overClause(e={outer:$.expr.suffix},649);continue
3826
+ case 649:this.s=654;{ this.attachLocation( $.expr ); }continue
3827
+ case 650:switch(this.l()){
3828
+ case'(':if(this.c(651))open=this.lb();continue
3829
+ case'Id':if(this.valuePath(_={},654)){e=_.expr; e = this.valuePathAst( e ); e.$expected = 'exists';
3832
3830
  $.expr.args.push( e ); this.attachLocation( $.expr ); }continue
3833
- case'?':if(this.c(653)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3831
+ case'?':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3834
3832
  $.expr.args.push( { param: this.valueWithLocation(), scope: 'param' } ); this.attachLocation( $.expr ); }continue
3835
3833
  default:this.e();continue
3836
3834
  }
3837
- case 650:if(this.queryExpression(_={},651))e=_.expr;continue
3838
- case 651:if(this.m(653,')')){ $.expr.args.push( this.taggedIfQuery( this.surroundByParens( e, open ) ) );
3835
+ case 651:if(this.queryExpression(_={},652))e=_.expr;continue
3836
+ case 652:if(this.m(654,')')){ $.expr.args.push( this.taggedIfQuery( this.surroundByParens( e, open ) ) );
3839
3837
  this.attachLocation( $.expr ); }continue
3840
- case 652:if(this.expression(_={},653)){e=_.expr; $.expr = this.signedExpression( $.expr, e ); }continue
3841
- case 653:switch(this.lk()){
3842
- case'*':case'/':if(this.gc(0,'precLeft_',24)&&this.c(657)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3843
- case'+':case'-':if(this.gc(0,'precLeft_',22)&&this.c(657)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3844
- case'||':if(this.gc(0,'precLeft_',20)&&this.c(657)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3845
- case'and':if(this.gc(0,'precLeft_',4)&&this.ck(657)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3846
- case'or':if(this.gc(0,'precLeft_',2)&&this.ck(657)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3847
- case'?':if(this.gc(0,'precLeft_',0)&&this.c(654)){ $.expr = this.applyOpToken( $.expr, '?:' ); }continue
3848
- case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(656)){ $.expr = this.applyOpToken( $.expr ); }continue
3849
- case'is':if(this.gc(0,'precNone_',10)&&this.ck(658)){ $.expr = this.applyOpToken( $.expr ); }continue
3850
- case'not':if(this.gc(0,'isNegatedRelation','10')&&this.ck(660)){ $.expr = this.applyOpToken( $.expr ); }continue
3851
- case'in':case'like':case'between':if(this.gc(0,'precNone_',10)&&this.g(660)){ $.expr = { op: { val: 'ixpr', location: this.la().location }, args: [ $.expr ] }; }continue
3838
+ case 653:if(this.expression(_={},654)){e=_.expr; $.expr = this.signedExpression( $.expr, e ); }continue
3839
+ case 654:switch(this.lk()){
3840
+ case'*':case'/':if(this.gc(0,'precLeft_',24)&&this.c(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3841
+ case'+':case'-':if(this.gc(0,'precLeft_',22)&&this.c(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3842
+ case'||':if(this.gc(0,'precLeft_',20)&&this.c(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3843
+ case'and':if(this.gc(0,'precLeft_',4)&&this.ck(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3844
+ case'or':if(this.gc(0,'precLeft_',2)&&this.ck(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3845
+ case'?':if(this.gc(0,'precLeft_',0)&&this.c(655)){ $.expr = this.applyOpToken( $.expr, '?:' ); }continue
3846
+ case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(657)){ $.expr = this.applyOpToken( $.expr ); }continue
3847
+ case'is':if(this.gc(0,'precNone_',10)&&this.ck(659)){ $.expr = this.applyOpToken( $.expr ); }continue
3848
+ case'not':if(this.gc(0,'isNegatedRelation','10')&&this.ck(661)){ $.expr = this.applyOpToken( $.expr ); }continue
3849
+ case'in':case'like':case'between':if(this.gc(0,'precNone_',10)&&this.g(661)){ $.expr = { op: { val: 'ixpr', location: this.la().location }, args: [ $.expr ] }; }continue
3852
3850
  default:this.gr([]);continue
3853
3851
  }
3854
- case 654:if(this.expression(_={},655)){e=_.expr; $.expr.args.push( e ); }continue
3855
- case 655:if(this.m(657,':')){ this.pushXprToken( $.expr ); }continue
3856
- case 656:switch(this.lk()){
3857
- case'all':case'any':case'some':if(this.ck(657)){ this.pushXprToken( $.expr ); }continue
3858
- default:this.s=657;continue
3859
- }
3860
- case 657:if(this.expression(_={},668)){e=_.expr; $.expr.args.push( e ); }continue
3861
- case 658:switch(this.lk()){
3862
- case'not':if(this.ck(659)){ this.pushXprToken( $.expr ); }continue
3863
- default:this.s=659;continue
3864
- }
3865
- case 659:if(this.mk(668,'null')){ this.pushXprToken( $.expr ); }continue
3866
- case 660:switch(this.lk()){
3867
- case'between':if(this.ck(661)){ this.pushXprToken( $.expr ); }continue
3868
- case'in':if(this.ck(664)){ this.pushXprToken( $.expr ); }continue
3869
- case'like':if(this.ck(665)){ this.pushXprToken( $.expr ); }continue
3852
+ case 655:if(this.expression(_={},656)){e=_.expr; $.expr.args.push( e ); }continue
3853
+ case 656:if(this.m(658,':')){ this.pushXprToken( $.expr ); }continue
3854
+ case 657:switch(this.lk()){
3855
+ case'all':case'any':case'some':if(this.ck(658)){ this.pushXprToken( $.expr ); }continue
3856
+ default:this.s=658;continue
3857
+ }
3858
+ case 658:if(this.expression(_={},669)){e=_.expr; $.expr.args.push( e ); }continue
3859
+ case 659:switch(this.lk()){
3860
+ case'not':if(this.ck(660)){ this.pushXprToken( $.expr ); }continue
3861
+ default:this.s=660;continue
3862
+ }
3863
+ case 660:if(this.mk(669,'null')){ this.pushXprToken( $.expr ); }continue
3864
+ case 661:switch(this.lk()){
3865
+ case'between':if(this.ck(662)){ this.pushXprToken( $.expr ); }continue
3866
+ case'in':if(this.ck(665)){ this.pushXprToken( $.expr ); }continue
3867
+ case'like':if(this.ck(666)){ this.pushXprToken( $.expr ); }continue
3870
3868
  default:this.e();continue
3871
3869
  }
3872
- case 661:if(this.expression(_={},662)){e=_.expr; $.expr.args?.push( e ); }continue
3873
- case 662:if(this.mk(663,'and')){ this.pushXprToken( $.expr ); }continue
3874
- case 663:if(this.expression(_={},668)){e=_.expr; $.expr.args?.push( e ); }continue
3875
- case 664:if(this.expression(_={},668)){e=_.expr; $.expr.args?.push( this.secureParens( e ) ); }continue
3876
- case 665:if(this.expression(_={},666)){e=_.expr; $.expr.args?.push( e ); }continue
3877
- case 666:switch(this.lk()){
3878
- case'escape':if(this.ck(667)){ this.pushXprToken( $.expr ); }continue
3879
- default:this.s=668;continue
3880
- }
3881
- case 667:if(this.expression(_={},668)){e=_.expr; $.expr.args?.push( e ); }continue
3882
- case 668:this.s=653;{ this.attachLocation( $.expr ); }continue
3870
+ case 662:if(this.expression(_={},663)){e=_.expr; $.expr.args?.push( e ); }continue
3871
+ case 663:if(this.mk(664,'and')){ this.pushXprToken( $.expr ); }continue
3872
+ case 664:if(this.expression(_={},669)){e=_.expr; $.expr.args?.push( e ); }continue
3873
+ case 665:if(this.expression(_={},669)){e=_.expr; $.expr.args?.push( this.secureParens( e ) ); }continue
3874
+ case 666:if(this.expression(_={},667)){e=_.expr; $.expr.args?.push( e ); }continue
3875
+ case 667:switch(this.lk()){
3876
+ case'escape':if(this.ck(668)){ this.pushXprToken( $.expr ); }continue
3877
+ default:this.s=669;continue
3878
+ }
3879
+ case 668:if(this.expression(_={},669)){e=_.expr; $.expr.args?.push( e ); }continue
3880
+ case 669:this.s=654;{ this.attachLocation( $.expr ); }continue
3883
3881
  default:return this.exit_()
3884
3882
  }
3885
3883
  }
3886
3884
  expressionOrQueryParens($,$next){
3887
3885
  $.expr??=undefined
3888
- this.rule_(670,$next)
3886
+ this.rule_(671,$next)
3889
3887
  for(;;)switch(this.s){
3890
- case 670:if(this.m(671,'(')){this.queryOnLeft()}continue;
3891
- case 671:switch(this.lk()){
3892
- case'(':this.expressionOrQueryParens($,672);continue
3893
- case'Id':case'#':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression($,674)){this.queryOnLeft(0,'expr')}continue;
3894
- case'select':this.queryExpression($,675);continue
3895
- default:this.ei();continue
3896
- }
3888
+ case 671:if(this.m(672,'(')){this.queryOnLeft()}continue;
3897
3889
  case 672:switch(this.lk()){
3898
- case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression($,673,643)){this.queryOnLeft(0,'expr')}continue;
3899
- case',':if(this.continueExpressionslist($,675)){this.queryOnLeft(0,'expr')}continue;
3900
- case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(675,'queryOnLeft')&&this.queryExpression($,675,454);continue
3901
- default:this.s=675;continue
3890
+ case'(':this.expressionOrQueryParens($,673);continue
3891
+ case'Id':case'#':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression($,675)){this.queryOnLeft(0,'expr')}continue;
3892
+ case'select':this.queryExpression($,676);continue
3893
+ default:this.ei();continue
3902
3894
  }
3903
- case 673:switch(this.l()){
3904
- case',':this.continueExpressionslist($,675);continue
3905
- default:this.s=675;continue
3895
+ case 673:switch(this.lk()){
3896
+ case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression($,674,644)){this.queryOnLeft(0,'expr')}continue;
3897
+ case',':if(this.continueExpressionslist($,676)){this.queryOnLeft(0,'expr')}continue;
3898
+ case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(676,'queryOnLeft')&&this.queryExpression($,676,454);continue
3899
+ default:this.s=676;continue
3906
3900
  }
3907
3901
  case 674:switch(this.l()){
3908
- case',':this.continueExpressionslist($,675);continue
3909
- default:this.s=675;continue
3902
+ case',':this.continueExpressionslist($,676);continue
3903
+ default:this.s=676;continue
3904
+ }
3905
+ case 675:switch(this.l()){
3906
+ case',':this.continueExpressionslist($,676);continue
3907
+ default:this.s=676;continue
3910
3908
  }
3911
- case 675:if(this.m(0,')')){ this.surroundByParens( $.expr ); }continue
3909
+ case 676:if(this.m(0,')')){ this.surroundByParens( $.expr ); }continue
3912
3910
  default:return this.exit_()
3913
3911
  }
3914
3912
  }
3915
3913
  continueExpressionslist($,$next){
3916
3914
  let e;let _
3917
- this.rule_(677,$next)
3915
+ this.rule_(678,$next)
3918
3916
  for(;;)switch(this.s){
3919
- case 677:if(this.m(678,',')){ $.expr = { op: this.valueWithLocation( 'list' ), args: [ $.expr ], location: { ... $.expr.$parens?.at( -1 ) ?? $.expr.location } }; }continue
3920
- case 678:switch(this.lk()){
3921
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':this.s=679;continue
3917
+ case 678:if(this.m(679,',')){ $.expr = { op: this.valueWithLocation( 'list' ), args: [ $.expr ], location: { ... $.expr.$parens?.at( -1 ) ?? $.expr.location } }; }continue
3918
+ case 679:switch(this.lk()){
3919
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':this.s=680;continue
3922
3920
  default:this.ei();continue
3923
3921
  }
3924
- case 679:switch(this.lk()){
3925
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},680)){e=_.expr; $.expr.args.push( e ); }continue
3922
+ case 680:switch(this.lk()){
3923
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},681)){e=_.expr; $.expr.args.push( e ); }continue
3926
3924
  default:this.gi(0,[')']);continue
3927
3925
  }
3928
- case 680:switch(this.l()){
3929
- case',':this.c(679);continue
3926
+ case 681:switch(this.l()){
3927
+ case',':this.c(680);continue
3930
3928
  default:this.gr([')']);continue
3931
3929
  }
3932
3930
  case 0:{ this.attachLocation( $.expr ); }
@@ -3938,10 +3936,10 @@ return this.exit_()
3938
3936
  newAndValuePath($,$next){
3939
3937
  $.expr??=undefined
3940
3938
  let e;let _
3941
- this.rule_(682,$next)
3939
+ this.rule_(683,$next)
3942
3940
  for(;;)switch(this.s){
3943
- case 682:if(this.mk(683,'new')){ $.expr = this.applyOpToken(); }continue
3944
- case 683:if(this.valuePath(_={},0)){e=_.expr; e = this.valuePathAst( e );
3941
+ case 683:if(this.mk(684,'new')){ $.expr = this.applyOpToken(); }continue
3942
+ case 684:if(this.valuePath(_={},0)){e=_.expr; e = this.valuePathAst( e );
3945
3943
  if (e.op?.val !== 'ixpr') $.expr.args.push( e ); else $.expr.args.push( ...e.args ); }continue
3946
3944
  default:
3947
3945
  this.attachLocation( $.expr )
@@ -3951,31 +3949,31 @@ return this.exit_()
3951
3949
  caseExpression($,$next){
3952
3950
  $.expr??=undefined
3953
3951
  let e;let _
3954
- this.rule_(685,$next)
3952
+ this.rule_(686,$next)
3955
3953
  for(;;)switch(this.s){
3956
- case 685:if(this.mk(686,'case')){ $.expr.op = { val: 'ixpr', location: this.lb().location }; $.expr.args = []; this.pushXprToken( $.expr ); }continue
3957
- case 686:switch(this.lk()){
3958
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},687)){e=_.expr; $.expr.args.push( e ); }continue
3959
- case'when':this.gP(687);continue
3960
- default:this.gi(687);continue
3961
- }
3954
+ case 686:if(this.mk(687,'case')){ $.expr.op = { val: 'ixpr', location: this.lb().location }; $.expr.args = []; this.pushXprToken( $.expr ); }continue
3962
3955
  case 687:switch(this.lk()){
3963
- case'when':this.s=688;continue
3964
- default:this.e();continue
3956
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},688)){e=_.expr; $.expr.args.push( e ); }continue
3957
+ case'when':this.gP(688);continue
3958
+ default:this.gi(688);continue
3965
3959
  }
3966
3960
  case 688:switch(this.lk()){
3967
- case'when':if(this.ck(689)){ this.pushXprToken( $.expr ); }continue
3968
- default:this.s=692;continue
3969
- }
3970
- case 689:if(this.expression(_={},690)){e=_.expr; $.expr.args.push( e ); }continue
3971
- case 690:if(this.mk(691,'then')){ this.pushXprToken( $.expr ); }continue
3972
- case 691:if(this.expression(_={},688)){e=_.expr; $.expr.args.push( e ); }continue
3973
- case 692:switch(this.lk()){
3974
- case'else':if(this.ck(693)){ this.pushXprToken( $.expr ); }continue
3975
- default:this.s=694;continue
3976
- }
3977
- case 693:if(this.expression(_={},694)){e=_.expr; $.expr.args.push( e ); }continue
3978
- case 694:if(this.mk(0,'end')){ this.pushXprToken( $.expr ); }continue
3961
+ case'when':this.s=689;continue
3962
+ default:this.e();continue
3963
+ }
3964
+ case 689:switch(this.lk()){
3965
+ case'when':if(this.ck(690)){ this.pushXprToken( $.expr ); }continue
3966
+ default:this.s=693;continue
3967
+ }
3968
+ case 690:if(this.expression(_={},691)){e=_.expr; $.expr.args.push( e ); }continue
3969
+ case 691:if(this.mk(692,'then')){ this.pushXprToken( $.expr ); }continue
3970
+ case 692:if(this.expression(_={},689)){e=_.expr; $.expr.args.push( e ); }continue
3971
+ case 693:switch(this.lk()){
3972
+ case'else':if(this.ck(694)){ this.pushXprToken( $.expr ); }continue
3973
+ default:this.s=695;continue
3974
+ }
3975
+ case 694:if(this.expression(_={},695)){e=_.expr; $.expr.args.push( e ); }continue
3976
+ case 695:if(this.mk(0,'end')){ this.pushXprToken( $.expr ); }continue
3979
3977
  default:
3980
3978
  this.attachLocation( $.expr )
3981
3979
  return this.exit_()
@@ -3984,14 +3982,14 @@ return this.exit_()
3984
3982
  castFunction($,$next){
3985
3983
  $.expr??=undefined
3986
3984
  let arg;let _
3987
- this.rule_(696,$next)
3985
+ this.rule_(697,$next)
3988
3986
  for(;;)switch(this.s){
3989
- case 696:if(this.mk(697,'cast')){ $.expr.op = this.valueWithLocation(); }continue
3990
- case 697:if(this.m(698,'(')){ $.expr.args = this.createArray(); }continue
3991
- case 698:if(this.expression(_={},699)){arg=_.expr; $.expr.args?.push( arg ); }continue
3992
- case 699:this.mk(700,'as');continue
3993
- case 700:this.typeRefOptArgs({art:$.expr},701);continue
3994
- case 701:if(this.m(0,')')){ this.finalizeDictOrArray( $.expr.args ); }continue
3987
+ case 697:if(this.mk(698,'cast')){ $.expr.op = this.valueWithLocation(); }continue
3988
+ case 698:if(this.m(699,'(')){ $.expr.args = this.createArray(); }continue
3989
+ case 699:if(this.expression(_={},700)){arg=_.expr; $.expr.args?.push( arg ); }continue
3990
+ case 700:this.mk(701,'as');continue
3991
+ case 701:this.typeRefOptArgs({art:$.expr},702);continue
3992
+ case 702:if(this.m(0,')')){ this.finalizeDictOrArray( $.expr.args ); }continue
3995
3993
  default:
3996
3994
  this.attachLocation( $.expr )
3997
3995
  return this.exit_()
@@ -3999,66 +3997,66 @@ return this.exit_()
3999
3997
  }
4000
3998
  argumentsAndFilter($,$next){
4001
3999
  let open;let expr;let id;let _
4002
- this.rule_(703,$next)
4000
+ this.rule_(704,$next)
4003
4001
  for(;;)switch(this.s){
4004
- case 703:switch(this.l()){
4005
- case'(':if(this.c(704)){open=this.lb();this.prepareSpecialFunction(); $.pathStep.args = this.createArray(); }continue
4006
- default:this.s=723;continue
4007
- }
4008
4002
  case 704:switch(this.l()){
4009
- case'Id':if(this.gc(705,'isNamedArg')&&this.ciA(711,'paramname'))id=this.lb();continue
4010
- default:this.s=705;continue
4003
+ case'(':if(this.c(705)){open=this.lb();this.prepareSpecialFunction(); $.pathStep.args = this.createArray(); }continue
4004
+ default:this.s=724;continue
4011
4005
  }
4012
4006
  case 705:switch(this.l()){
4013
- case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'Id_all':case'Number':case'String':case'QuotedLiteral':if(this.funcExpression(_={},706)){expr=_.expr; $.pathStep.args.push( expr ); }continue
4014
- default:this.s=722;continue
4007
+ case'Id':if(this.gc(706,'isNamedArg')&&this.ciA(712,'paramname'))id=this.lb();continue
4008
+ default:this.s=706;continue
4015
4009
  }
4016
4010
  case 706:switch(this.l()){
4017
- case',':if(this.c(707)){this.nextFunctionArgument()}continue;
4018
- default:this.s=708;continue
4011
+ case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'Id_all':case'Number':case'String':case'QuotedLiteral':if(this.funcExpression(_={},707)){expr=_.expr; $.pathStep.args.push( expr ); }continue
4012
+ default:this.s=723;continue
4019
4013
  }
4020
- case 707:switch(this.lk()){
4021
- case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Id_all':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.funcExpression(_={},706)){expr=_.expr; $.pathStep.args.push( expr ); }continue
4022
- case')':case'order':this.gP(708);continue
4023
- default:this.ei();continue
4014
+ case 707:switch(this.l()){
4015
+ case',':if(this.c(708)){this.nextFunctionArgument()}continue;
4016
+ default:this.s=709;continue
4024
4017
  }
4025
4018
  case 708:switch(this.lk()){
4026
- case'order':if(this.ck(709)){ expr = $.pathStep.args[$.pathStep.args.length - 1] = this.applyOpToken( expr ); }continue
4027
- default:this.s=722;continue
4028
- }
4029
- case 709:if(this.mk(710,'by')){ this.pushXprToken( expr ); }continue
4030
- case 710:if(this.orderByClauseAsXpr({outer:expr.args},722)){ this.attachLocation( expr ); }continue
4031
- case 711:switch(this.l()){
4032
- case':':if(this.c(712)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
4033
- case'=>':if(this.c(717)){ $.pathStep.args = this.createDict(); }continue
4034
- default:this.e();continue
4019
+ case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Id_all':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.funcExpression(_={},707)){expr=_.expr; $.pathStep.args.push( expr ); }continue
4020
+ case')':case'order':this.gP(709);continue
4021
+ default:this.ei();continue
4035
4022
  }
4036
- case 712:if(this.expression(_={},713)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4037
- case 713:switch(this.l()){
4038
- case',':this.c(714);continue
4039
- default:this.s=722;continue
4023
+ case 709:switch(this.lk()){
4024
+ case'order':if(this.ck(710)){ expr = $.pathStep.args[$.pathStep.args.length - 1] = this.applyOpToken( expr ); }continue
4025
+ default:this.s=723;continue
4040
4026
  }
4041
- case 714:switch(this.l()){
4042
- case'Id':if(this.ciA(715,'paramname'))id=this.lb();continue
4043
- case')':this.s=722;continue
4027
+ case 710:if(this.mk(711,'by')){ this.pushXprToken( expr ); }continue
4028
+ case 711:if(this.orderByClauseAsXpr({outer:expr.args},723)){ this.attachLocation( expr ); }continue
4029
+ case 712:switch(this.l()){
4030
+ case':':if(this.c(713)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
4031
+ case'=>':if(this.c(718)){ $.pathStep.args = this.createDict(); }continue
4044
4032
  default:this.e();continue
4045
4033
  }
4046
- case 715:this.m(716,':');continue
4047
- case 716:if(this.expression(_={},713)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4048
- case 717:if(this.expression(_={},718)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4049
- case 718:switch(this.l()){
4050
- case',':this.c(719);continue
4051
- default:this.s=722;continue
4034
+ case 713:if(this.expression(_={},714)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4035
+ case 714:switch(this.l()){
4036
+ case',':this.c(715);continue
4037
+ default:this.s=723;continue
4038
+ }
4039
+ case 715:switch(this.l()){
4040
+ case'Id':if(this.ciA(716,'paramname'))id=this.lb();continue
4041
+ case')':this.s=723;continue
4042
+ default:this.e();continue
4052
4043
  }
4044
+ case 716:this.m(717,':');continue
4045
+ case 717:if(this.expression(_={},714)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4046
+ case 718:if(this.expression(_={},719)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4053
4047
  case 719:switch(this.l()){
4054
- case'Id':if(this.ciA(720,'paramname'))id=this.lb();continue
4055
- case')':this.s=722;continue
4048
+ case',':this.c(720);continue
4049
+ default:this.s=723;continue
4050
+ }
4051
+ case 720:switch(this.l()){
4052
+ case'Id':if(this.ciA(721,'paramname'))id=this.lb();continue
4053
+ case')':this.s=723;continue
4056
4054
  default:this.e();continue
4057
4055
  }
4058
- case 720:this.m(721,'=>');continue
4059
- case 721:if(this.expression(_={},718)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4060
- case 722:if(this.m(723,')')){ this.finalizeDictOrArray( $.pathStep.args ); }continue
4061
- case 723:switch(this.l()){
4056
+ case 721:this.m(722,'=>');continue
4057
+ case 722:if(this.expression(_={},719)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4058
+ case 723:if(this.m(724,')')){ this.finalizeDictOrArray( $.pathStep.args ); }continue
4059
+ case 724:switch(this.l()){
4062
4060
  case'[':this.cardinalityAndFilter($,0);continue
4063
4061
  default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','>=','in','is','or','||','and','not','like','between']);continue
4064
4062
  }
@@ -4069,22 +4067,22 @@ funcExpression($,$next){
4069
4067
  $.expr??=undefined
4070
4068
  let args
4071
4069
  let tok;let e;let _
4072
- this.rule_(725,$next)
4070
+ this.rule_(726,$next)
4073
4071
  for(;;)switch(this.s){
4074
- case 725:switch(this.lGenericIntroOrExpr()){
4075
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},727))$.expr=_.expr;continue
4076
- case'GenericExpr':if(this.ckA(727)){tok=this.lb(); $.expr = { val: tok.keyword ?? tok.type, location: tok.location, literal: 'token' }; }continue
4077
- case'GenericIntro':if(this.ckA(726)){ $.expr = this.applyOpToken(); args = $.expr.args; }continue
4072
+ case 726:switch(this.lGenericIntroOrExpr()){
4073
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},728))$.expr=_.expr;continue
4074
+ case'GenericExpr':if(this.ckA(728)){tok=this.lb(); $.expr = { val: tok.keyword ?? tok.type, location: tok.location, literal: 'token' }; }continue
4075
+ case'GenericIntro':if(this.ckA(727)){ $.expr = this.applyOpToken(); args = $.expr.args; }continue
4078
4076
  default:this.e();continue
4079
4077
  }
4080
- case 726:if(this.expression(_={},727)){e=_.expr; $.expr.args.push( e ); }continue
4081
- case 727:switch(this.lGenericSeparator()){
4082
- case'GenericSeparator':if(this.ckA(728)){ if (args) this.pushXprToken( args ); else { $.expr= this.applyOpToken( $.expr ); args = $.expr.args; } }continue
4078
+ case 727:if(this.expression(_={},728)){e=_.expr; $.expr.args.push( e ); }continue
4079
+ case 728:switch(this.lGenericSeparator()){
4080
+ case'GenericSeparator':if(this.ckA(729)){ if (args) this.pushXprToken( args ); else { $.expr= this.applyOpToken( $.expr ); args = $.expr.args; } }continue
4083
4081
  default:this.gr([')',',','order']);continue
4084
4082
  }
4085
- case 728:switch(this.lGenericExpr()){
4086
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},727)){e=_.expr; args.push( e ); }continue
4087
- case'GenericExpr':if(this.ckA(727)){ this.pushXprToken( args ); }continue
4083
+ case 729:switch(this.lGenericExpr()){
4084
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},728)){e=_.expr; args.push( e ); }continue
4085
+ case'GenericExpr':if(this.ckA(728)){ this.pushXprToken( args ); }continue
4088
4086
  default:this.e();continue
4089
4087
  }
4090
4088
  default:
@@ -4094,27 +4092,27 @@ return this.exit_()
4094
4092
  }
4095
4093
  overClause($,$next){
4096
4094
  let over=[]
4097
- this.rule_(730,$next)
4095
+ this.rule_(731,$next)
4098
4096
  for(;;)switch(this.s){
4099
- case 730:this.m(731,'(');continue
4100
- case 731:switch(this.lk()){
4101
- case'partition':if(this.ck(732)){ this.pushXprToken( over ); }continue
4102
- default:this.s=734;continue
4103
- }
4104
- case 732:if(this.mk(733,'by')){ this.pushXprToken( over ); }continue
4105
- case 733:this.expressionsAsXpr({outer:over},734);continue
4106
- case 734:switch(this.lk()){
4107
- case'order':if(this.ck(735)){ this.pushXprToken( over ); }continue
4108
- default:this.s=737;continue
4109
- }
4110
- case 735:if(this.mk(736,'by')){ this.pushXprToken( over ); }continue
4111
- case 736:this.orderByClauseAsXpr({outer:over},737);continue
4112
- case 737:switch(this.lk()){
4113
- case'rows':if(this.ck(738)){ this.pushXprToken( over ); }continue
4114
- default:this.s=739;continue
4115
- }
4116
- case 738:this.windowFrameClause({outer:over},739);continue
4117
- case 739:this.m(0,')');continue
4097
+ case 731:this.m(732,'(');continue
4098
+ case 732:switch(this.lk()){
4099
+ case'partition':if(this.ck(733)){ this.pushXprToken( over ); }continue
4100
+ default:this.s=735;continue
4101
+ }
4102
+ case 733:if(this.mk(734,'by')){ this.pushXprToken( over ); }continue
4103
+ case 734:this.expressionsAsXpr({outer:over},735);continue
4104
+ case 735:switch(this.lk()){
4105
+ case'order':if(this.ck(736)){ this.pushXprToken( over ); }continue
4106
+ default:this.s=738;continue
4107
+ }
4108
+ case 736:if(this.mk(737,'by')){ this.pushXprToken( over ); }continue
4109
+ case 737:this.orderByClauseAsXpr({outer:over},738);continue
4110
+ case 738:switch(this.lk()){
4111
+ case'rows':if(this.ck(739)){ this.pushXprToken( over ); }continue
4112
+ default:this.s=740;continue
4113
+ }
4114
+ case 739:this.windowFrameClause({outer:over},740);continue
4115
+ case 740:this.m(0,')');continue
4118
4116
  default:
4119
4117
  $.outer.push( this.surroundByParens( this.ixprAst( over ) ) )
4120
4118
  return this.exit_()
@@ -4123,14 +4121,14 @@ return this.exit_()
4123
4121
  expressionsAsXpr($,$next){
4124
4122
  let args=[]
4125
4123
  let expr;let _
4126
- this.rule_(741,$next)
4124
+ this.rule_(742,$next)
4127
4125
  for(;;)switch(this.s){
4128
- case 741:if(this.expression(_={},742)){expr=_.expr; args.push( expr ); }continue
4129
- case 742:switch(this.l()){
4130
- case',':if(this.c(743)){ this.pushXprToken( args ); }continue
4126
+ case 742:if(this.expression(_={},743)){expr=_.expr; args.push( expr ); }continue
4127
+ case 743:switch(this.l()){
4128
+ case',':if(this.c(744)){ this.pushXprToken( args ); }continue
4131
4129
  default:this.gr([')','rows','order']);continue
4132
4130
  }
4133
- case 743:if(this.expression(_={},742)){expr=_.expr; args.push( expr ); }continue
4131
+ case 744:if(this.expression(_={},743)){expr=_.expr; args.push( expr ); }continue
4134
4132
  default:
4135
4133
  $.outer.push( this.ixprAst( args ) )
4136
4134
  return this.exit_()
@@ -4138,14 +4136,14 @@ return this.exit_()
4138
4136
  }
4139
4137
  orderByClauseAsXpr($,$next){
4140
4138
  let args=[]
4141
- this.rule_(745,$next)
4139
+ this.rule_(746,$next)
4142
4140
  for(;;)switch(this.s){
4143
- case 745:this.orderBySpecAsXpr({args},746);continue
4144
- case 746:switch(this.l()){
4145
- case',':if(this.c(747)){ this.pushXprToken( args ); }continue
4141
+ case 746:this.orderBySpecAsXpr({args},747);continue
4142
+ case 747:switch(this.l()){
4143
+ case',':if(this.c(748)){ this.pushXprToken( args ); }continue
4146
4144
  default:this.gr([')']);continue
4147
4145
  }
4148
- case 747:this.orderBySpecAsXpr({args},746);continue
4146
+ case 748:this.orderBySpecAsXpr({args},747);continue
4149
4147
  default:
4150
4148
  $.outer.push( this.ixprAst( args ) )
4151
4149
  return this.exit_()
@@ -4153,18 +4151,18 @@ return this.exit_()
4153
4151
  }
4154
4152
  orderBySpecAsXpr($,$next){
4155
4153
  let expr;let _
4156
- this.rule_(749,$next)
4154
+ this.rule_(750,$next)
4157
4155
  for(;;)switch(this.s){
4158
- case 749:if(this.expression(_={},750)){expr=_.expr; $.args.push( expr ); }continue
4159
- case 750:switch(this.lk()){
4160
- case'asc':case'desc':if(this.ck(751)){ this.pushXprToken( $.args ); }continue
4161
- default:this.s=751;continue
4162
- }
4156
+ case 750:if(this.expression(_={},751)){expr=_.expr; $.args.push( expr ); }continue
4163
4157
  case 751:switch(this.lk()){
4164
- case'nulls':if(this.ck(752)){ this.pushXprToken( $.args ); }continue
4165
- default:this.gr([')',',']);continue
4158
+ case'asc':case'desc':if(this.ck(752)){ this.pushXprToken( $.args ); }continue
4159
+ default:this.s=752;continue
4166
4160
  }
4167
4161
  case 752:switch(this.lk()){
4162
+ case'nulls':if(this.ck(753)){ this.pushXprToken( $.args ); }continue
4163
+ default:this.gr([')',',']);continue
4164
+ }
4165
+ case 753:switch(this.lk()){
4168
4166
  case'last':case'first':if(this.ck(0)){ this.pushXprToken( $.args ); }continue
4169
4167
  default:this.e();continue
4170
4168
  }
@@ -4173,50 +4171,50 @@ default:return this.exit_()
4173
4171
  }
4174
4172
  windowFrameClause($,$next){
4175
4173
  let args=[]
4176
- this.rule_(754,$next)
4174
+ this.rule_(755,$next)
4177
4175
  for(;;)switch(this.s){
4178
- case 754:switch(this.lk()){
4179
- case'unbounded':if(this.ck(755)){ this.pushXprToken( args ); }continue
4180
- case'Number':if(this.c(755)){ args.push( this.unsignedIntegerLiteral() ); }continue
4181
- case'current':if(this.ck(756)){ this.pushXprToken( args ); }continue
4182
- case'between':if(this.ck(757)){ this.pushXprToken( args ); }continue
4176
+ case 755:switch(this.lk()){
4177
+ case'unbounded':if(this.ck(756)){ this.pushXprToken( args ); }continue
4178
+ case'Number':if(this.c(756)){ args.push( this.unsignedIntegerLiteral() ); }continue
4179
+ case'current':if(this.ck(757)){ this.pushXprToken( args ); }continue
4180
+ case'between':if(this.ck(758)){ this.pushXprToken( args ); }continue
4183
4181
  default:this.e();continue
4184
4182
  }
4185
- case 755:if(this.mk(0,'preceding')){ this.pushXprToken( args ); }continue
4186
- case 756:if(this.mk(0,'row')){ this.pushXprToken( args ); }continue
4187
- case 757:this.windowFrameBoundSpec({args},758);continue
4188
- case 758:if(this.mk(759,'and')){ this.pushXprToken( args ); }continue
4189
- case 759:this.windowFrameBoundSpec({args},0);continue
4183
+ case 756:if(this.mk(0,'preceding')){ this.pushXprToken( args ); }continue
4184
+ case 757:if(this.mk(0,'row')){ this.pushXprToken( args ); }continue
4185
+ case 758:this.windowFrameBoundSpec({args},759);continue
4186
+ case 759:if(this.mk(760,'and')){ this.pushXprToken( args ); }continue
4187
+ case 760:this.windowFrameBoundSpec({args},0);continue
4190
4188
  default:
4191
4189
  $.outer.push( this.ixprAst( args ) )
4192
4190
  return this.exit_()
4193
4191
  }
4194
4192
  }
4195
4193
  windowFrameBoundSpec($,$next){
4196
- this.rule_(761,$next)
4194
+ this.rule_(762,$next)
4197
4195
  for(;;)switch(this.s){
4198
- case 761:switch(this.lk()){
4199
- case'unbounded':if(this.ck(762)){ this.pushXprToken( $.args ); }continue
4200
- case'Number':if(this.c(762)){ $.args.push( this.unsignedIntegerLiteral() ); }continue
4201
- case'current':if(this.ck(764)){ this.pushXprToken( $.args ); }continue
4196
+ case 762:switch(this.lk()){
4197
+ case'unbounded':if(this.ck(763)){ this.pushXprToken( $.args ); }continue
4198
+ case'Number':if(this.c(763)){ $.args.push( this.unsignedIntegerLiteral() ); }continue
4199
+ case'current':if(this.ck(765)){ this.pushXprToken( $.args ); }continue
4202
4200
  default:this.e();continue
4203
4201
  }
4204
- case 762:switch(this.lk()){
4205
- case'following':this.ck(763);continue
4206
- case'preceding':this.ck(763);continue
4202
+ case 763:switch(this.lk()){
4203
+ case'following':this.ck(764);continue
4204
+ case'preceding':this.ck(764);continue
4207
4205
  default:this.e();continue
4208
4206
  }
4209
- case 763:if(this.gr([])){ this.pushXprToken( $.args ); }continue
4210
- case 764:if(this.mk(0,'row')){ this.pushXprToken( $.args ); }continue
4207
+ case 764:if(this.gr([])){ this.pushXprToken( $.args ); }continue
4208
+ case 765:if(this.mk(0,'row')){ this.pushXprToken( $.args ); }continue
4211
4209
  default:return this.exit_()
4212
4210
  }
4213
4211
  }
4214
4212
  literalValue($,$next){
4215
4213
  $.expr??={}
4216
- this.rule_(766,$next)
4214
+ this.rule_(767,$next)
4217
4215
  for(;;)switch(this.s){
4218
- case 766:switch(this.lk()){
4219
- case'#':if(this.c(767)){ this.reportUnexpectedSpace(); }continue
4216
+ case 767:switch(this.lk()){
4217
+ case'#':if(this.c(768)){ this.reportUnexpectedSpace(); }continue
4220
4218
  case'null':if(this.ck(0)){ $.expr = { literal: 'null', val: null }; }continue
4221
4219
  case'true':case'false':if(this.ck(0)){ $.expr = { literal: 'boolean', val: this.lb().keyword === 'true' }; }continue
4222
4220
  case'Number':if(this.c(0)){ $.expr = this.numberLiteral(); }continue
@@ -4224,17 +4222,17 @@ case'String':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
4224
4222
  case'QuotedLiteral':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
4225
4223
  default:this.e();continue
4226
4224
  }
4227
- case 767:if(this.mi(0,'enumref')){ $.expr = { literal: 'enum', sym: this.identAst() } }continue
4225
+ case 768:if(this.mi(0,'enumref')){ $.expr = { literal: 'enum', sym: this.identAst() } }continue
4228
4226
  default:
4229
4227
  this.attachLocation( $.expr )
4230
4228
  return this.exit_()
4231
4229
  }
4232
4230
  }
4233
4231
  annoAssignStd($,$next){
4234
- this.rule_(769,$next)
4232
+ this.rule_(770,$next)
4235
4233
  for(;;)switch(this.s){
4236
- case 769:if(this.m(770,'@')){this.annoInSameLine(); this.reportUnexpectedSpace(); }continue
4237
- case 770:switch(this.l()){
4234
+ case 770:if(this.m(771,'@')){this.annoInSameLine(); this.reportUnexpectedSpace(); }continue
4235
+ case 771:switch(this.l()){
4238
4236
  case'(':this.annoAssignParen($,0);continue
4239
4237
  case'Id':this.annoAssignBase($,0);continue
4240
4238
  default:this.e();continue
@@ -4245,10 +4243,10 @@ return this.exit_()
4245
4243
  }
4246
4244
  }
4247
4245
  annoAssignCol($,$next){
4248
- this.rule_(772,$next)
4246
+ this.rule_(773,$next)
4249
4247
  for(;;)switch(this.s){
4250
- case 772:if(this.m(773,'@')){ this.reportUnexpectedSpace(); }continue
4251
- case 773:switch(this.l()){
4248
+ case 773:if(this.m(774,'@')){ this.reportUnexpectedSpace(); }continue
4249
+ case 774:switch(this.l()){
4252
4250
  case'(':this.annoAssignParen($,0);continue
4253
4251
  case'Id':this.annoAssignBase($,0);continue
4254
4252
  default:this.e();continue
@@ -4260,10 +4258,10 @@ return this.exit_()
4260
4258
  }
4261
4259
  annoAssignMid($,$next){
4262
4260
  let name;let _
4263
- this.rule_(775,$next)
4261
+ this.rule_(776,$next)
4264
4262
  for(;;)switch(this.s){
4265
- case 775:if(this.m(776,'@')){this.annoInSameLine(); this.reportUnexpectedSpace(); }continue
4266
- case 776:switch(this.l()){
4263
+ case 776:if(this.m(777,'@')){this.annoInSameLine(); this.reportUnexpectedSpace(); }continue
4264
+ case 777:switch(this.l()){
4267
4265
  case'(':this.annoAssignParen($,0);continue
4268
4266
  case'Id':if(this.annoNamePath(_={category:'anno'},0)){name=_.name; this.assignAnnotation( $.art, {}, name ); this.warnIfColonFollows( name ); }continue
4269
4267
  default:this.e();continue
@@ -4274,33 +4272,33 @@ return this.exit_()
4274
4272
  }
4275
4273
  }
4276
4274
  annoAssignParen($,$next){
4277
- this.rule_(778,$next)
4275
+ this.rule_(779,$next)
4278
4276
  for(;;)switch(this.s){
4279
- case 778:if(this.m(779,'(')){this.annoInSameLine()}continue;
4280
- case 779:switch(this.l()){
4281
- case'Id':this.annoAssignBase({art:$.art},780);continue
4282
- default:this.s=781;continue
4283
- }
4277
+ case 779:if(this.m(780,'(')){this.annoInSameLine()}continue;
4284
4278
  case 780:switch(this.l()){
4285
- case',':this.c(779);continue
4286
- case')':this.s=781;continue
4279
+ case'Id':this.annoAssignBase({art:$.art},781);continue
4280
+ default:this.s=782;continue
4281
+ }
4282
+ case 781:switch(this.l()){
4283
+ case',':this.c(780);continue
4284
+ case')':this.s=782;continue
4287
4285
  default:this.e();continue
4288
4286
  }
4289
- case 781:this.m(0,')');continue
4287
+ case 782:this.m(0,')');continue
4290
4288
  default:return this.exit_()
4291
4289
  }
4292
4290
  }
4293
4291
  annoAssignBase($,$next){
4294
4292
  let value={}
4295
4293
  let name;let _
4296
- this.rule_(783,$next)
4294
+ this.rule_(784,$next)
4297
4295
  for(;;)switch(this.s){
4298
- case 783:if(this.annoNamePath(_={category:'anno'},784))name=_.name;continue
4299
- case 784:switch(this.l()){
4300
- case':':this.gc(0,'annoInSameLine')&&this.c(785);continue
4296
+ case 784:if(this.annoNamePath(_={category:'anno'},785))name=_.name;continue
4297
+ case 785:switch(this.l()){
4298
+ case':':this.gc(0,'annoInSameLine')&&this.c(786);continue
4301
4299
  default:this.gr([]);continue
4302
4300
  }
4303
- case 785:if(this.annoValue(_={},0))value=_.value;continue
4301
+ case 786:if(this.annoValue(_={},0))value=_.value;continue
4304
4302
  default:
4305
4303
  this.assignAnnotation( $.art, value, name || {} )
4306
4304
  return this.exit_()
@@ -4309,20 +4307,20 @@ return this.exit_()
4309
4307
  annoNamePath($,$next){
4310
4308
  $.name??=new XsnName()
4311
4309
  let at
4312
- this.rule_(787,$next)
4310
+ this.rule_(788,$next)
4313
4311
  for(;;)switch(this.s){
4314
- case 787:if(this.miA(788,$.category)){ $.name.path = [ this.identAst() ]; }continue
4315
- case 788:switch(this.l()){
4316
- case'.':this.c(789);continue
4317
- default:this.s=791;continue
4318
- }
4312
+ case 788:if(this.miA(789,$.category)){ $.name.path = [ this.identAst() ]; }continue
4319
4313
  case 789:switch(this.l()){
4320
- case'Id':if(this.ciA(788,$.category)){ $.name.path.push( this.identAst() ); }continue
4321
- case'@':if(this.c(790))at=this.lb();continue
4314
+ case'.':this.c(790);continue
4315
+ default:this.s=792;continue
4316
+ }
4317
+ case 790:switch(this.l()){
4318
+ case'Id':if(this.ciA(789,$.category)){ $.name.path.push( this.identAst() ); }continue
4319
+ case'@':if(this.c(791))at=this.lb();continue
4322
4320
  default:this.e();continue
4323
4321
  }
4324
- case 790:if(this.miA(788,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
4325
- case 791:switch(this.l()){
4322
+ case 791:if(this.miA(789,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
4323
+ case 792:switch(this.l()){
4326
4324
  case'#':this.gc(0,'annoInSameLine')&&this.annoPathVariant({nameOrRef:$.name},0);continue
4327
4325
  default:this.gr([]);continue
4328
4326
  }
@@ -4333,25 +4331,25 @@ return this.exit_()
4333
4331
  }
4334
4332
  annoPath($,$next){
4335
4333
  let at
4336
- this.rule_(793,$next)
4334
+ this.rule_(794,$next)
4337
4335
  for(;;)switch(this.s){
4338
- case 793:switch(this.l()){
4339
- case'Id':if(this.ciA(795,$.category)){ $.nameOrRef.path = [ this.identAst() ]; }continue
4340
- case'@':if(this.c(794))at=this.lb();continue
4336
+ case 794:switch(this.l()){
4337
+ case'Id':if(this.ciA(796,$.category)){ $.nameOrRef.path = [ this.identAst() ]; }continue
4338
+ case'@':if(this.c(795))at=this.lb();continue
4341
4339
  default:this.e();continue
4342
4340
  }
4343
- case 794:if(this.miA(795,$.category)){ $.nameOrRef.path = [ this.identAstWithPrefix( at ) ]; }continue
4344
- case 795:switch(this.l()){
4345
- case'.':this.c(796);continue
4346
- default:this.s=798;continue
4347
- }
4341
+ case 795:if(this.miA(796,$.category)){ $.nameOrRef.path = [ this.identAstWithPrefix( at ) ]; }continue
4348
4342
  case 796:switch(this.l()){
4349
- case'Id':if(this.ciA(795,$.category)){ $.nameOrRef.path.push( this.identAst() ); }continue
4350
- case'@':if(this.c(797))at=this.lb();continue
4343
+ case'.':this.c(797);continue
4344
+ default:this.s=799;continue
4345
+ }
4346
+ case 797:switch(this.l()){
4347
+ case'Id':if(this.ciA(796,$.category)){ $.nameOrRef.path.push( this.identAst() ); }continue
4348
+ case'@':if(this.c(798))at=this.lb();continue
4351
4349
  default:this.e();continue
4352
4350
  }
4353
- case 797:if(this.miA(795,$.category)){ $.nameOrRef.path.push( this.identAstWithPrefix( at ) ); }continue
4354
- case 798:switch(this.l()){
4351
+ case 798:if(this.miA(796,$.category)){ $.nameOrRef.path.push( this.identAstWithPrefix( at ) ); }continue
4352
+ case 799:switch(this.l()){
4355
4353
  case'#':this.annoPathVariant({nameOrRef:$.nameOrRef},0);continue
4356
4354
  default:this.gr([]);continue
4357
4355
  }
@@ -4361,15 +4359,15 @@ return this.exit_()
4361
4359
  }
4362
4360
  }
4363
4361
  annoPathVariant($,$next){
4364
- this.rule_(800,$next)
4362
+ this.rule_(801,$next)
4365
4363
  for(;;)switch(this.s){
4366
- case 800:if(this.m(801,'#')){ this.reportUnexpectedSpace(); }continue
4367
- case 801:if(this.miA(802,'variant')){ $.nameOrRef.variant = { path: [ this.identAst() ] }; }continue
4368
- case 802:switch(this.l()){
4369
- case'.':this.c(803);continue
4364
+ case 801:if(this.m(802,'#')){ this.reportUnexpectedSpace(); }continue
4365
+ case 802:if(this.miA(803,'variant')){ $.nameOrRef.variant = { path: [ this.identAst() ] }; }continue
4366
+ case 803:switch(this.l()){
4367
+ case'.':this.c(804);continue
4370
4368
  default:this.gr([]);continue
4371
4369
  }
4372
- case 803:if(this.miA(802,'variant')){ $.nameOrRef.variant.path.push( this.identAst() ); }continue
4370
+ case 804:if(this.miA(803,'variant')){ $.nameOrRef.variant.path.push( this.identAst() ); }continue
4373
4371
  default:
4374
4372
  this.attachLocation( $.nameOrRef.variant )
4375
4373
  return this.exit_()
@@ -4379,14 +4377,14 @@ annoStructValue($,$next){
4379
4377
  $.value??={}
4380
4378
  let name=new XsnName()
4381
4379
  let _
4382
- this.rule_(805,$next)
4380
+ this.rule_(806,$next)
4383
4381
  for(;;)switch(this.s){
4384
- case 805:if(this.annoPath({nameOrRef:name,category:'name'},806)){ this.attachLocation( name ); }continue
4385
- case 806:switch(this.l()){
4386
- case':':this.c(807);continue
4382
+ case 806:if(this.annoPath({nameOrRef:name,category:'name'},807)){ this.attachLocation( name ); }continue
4383
+ case 807:switch(this.l()){
4384
+ case':':this.c(808);continue
4387
4385
  default:if(this.gr([',','}'])){ this.attachLocation( $.value ); }continue
4388
4386
  }
4389
- case 807:if(this.annoValue(_={},0))$.value=_.value;continue
4387
+ case 808:if(this.annoValue(_={},0))$.value=_.value;continue
4390
4388
  default:
4391
4389
  $.value.name = name
4392
4390
  return this.exit_()
@@ -4395,51 +4393,51 @@ return this.exit_()
4395
4393
  annoValue($,$next){
4396
4394
  $.value??={}
4397
4395
  let sign;let sub;let ellipsis;let upTo;let _
4398
- this.rule_(809,$next)
4396
+ this.rule_(810,$next)
4399
4397
  for(;;)switch(this.s){
4400
- case 809:switch(this.lk()){
4398
+ case 810:switch(this.lk()){
4401
4399
  case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':if(this.literalValue(_={},0)){$.value=_.expr; this.adjustAnnoNumber( $.value ); }continue
4402
- case'+':case'-':if(this.c(810))sign=this.lb();continue
4400
+ case'+':case'-':if(this.c(811))sign=this.lb();continue
4403
4401
  case'Id':case'@':this.annoPath({nameOrRef:$.value,category:'annoref'},0);continue
4404
- case'{':if(this.c(811)){ if (!this.dynamic_.arrayAnno) $.value.$flatten = [];
4402
+ case'{':if(this.c(812)){ if (!this.dynamic_.arrayAnno) $.value.$flatten = [];
4405
4403
  else { $.value.struct = Object.create(null); $.value.literal = 'struct'; } }continue
4406
- case'[':if(this.c(815)){this.arrayAnno(); $.value.val = []; $.value.literal = 'array' }continue
4407
- case'(':this.c(822);continue
4404
+ case'[':if(this.c(816)){this.arrayAnno(); $.value.val = []; $.value.literal = 'array' }continue
4405
+ case'(':this.c(823);continue
4408
4406
  default:this.ei();continue
4409
4407
  }
4410
- case 810:if(this.m(0,'Number')){ this.adjustAnnoNumber( $.value = this.numberLiteral( sign ) ); }continue
4411
- case 811:switch(this.l()){
4412
- case'Id':case'@':if(this.annoStructValue(_={},812)){sub=_.value; if ($.value.$flatten) $.value.$flatten.push( sub );
4408
+ case 811:if(this.m(0,'Number')){ this.adjustAnnoNumber( $.value = this.numberLiteral( sign ) ); }continue
4409
+ case 812:switch(this.l()){
4410
+ case'Id':case'@':if(this.annoStructValue(_={},813)){sub=_.value; if ($.value.$flatten) $.value.$flatten.push( sub );
4413
4411
  else this.addDef( sub, $.value, 'struct', null, sub.name ); }continue
4414
- default:this.s=813;continue
4412
+ default:this.s=814;continue
4415
4413
  }
4416
- case 812:switch(this.l()){
4417
- case',':this.c(811);continue
4418
- case'}':this.s=813;continue
4414
+ case 813:switch(this.l()){
4415
+ case',':this.c(812);continue
4416
+ case'}':this.s=814;continue
4419
4417
  default:this.e();continue
4420
4418
  }
4421
- case 813:this.s=814;{ this.ec( 'arrayAnno', 'orNotEmpty' ); }continue
4422
- case 814:this.m(0,'}');continue
4423
- case 815:switch(this.l()){
4424
- case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},819)){sub=_.value; $.value.val.push( sub ) }continue
4425
- case'...':if(this.gc(820,'arrayAnno','ellipsis')&&this.c(816))ellipsis=this.lb();continue
4426
- default:this.s=820;continue
4427
- }
4428
- case 816:switch(this.lk()){
4429
- case'up':this.ck(817);continue
4430
- default:this.s=819;{ $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location } ); }continue
4431
- }
4432
- case 817:this.mk(818,'to');continue
4433
- case 818:if(this.annoValue(_={},819)){upTo=_.value; $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location, upTo: upTo } ); }continue
4434
- case 819:switch(this.l()){
4435
- case',':this.c(815);continue
4436
- case']':this.s=820;continue
4419
+ case 814:this.s=815;{ this.ec( 'arrayAnno', 'orNotEmpty' ); }continue
4420
+ case 815:this.m(0,'}');continue
4421
+ case 816:switch(this.l()){
4422
+ case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},820)){sub=_.value; $.value.val.push( sub ) }continue
4423
+ case'...':if(this.gc(821,'arrayAnno','ellipsis')&&this.c(817))ellipsis=this.lb();continue
4424
+ default:this.s=821;continue
4425
+ }
4426
+ case 817:switch(this.lk()){
4427
+ case'up':this.ck(818);continue
4428
+ default:this.s=820;{ $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location } ); }continue
4429
+ }
4430
+ case 818:this.mk(819,'to');continue
4431
+ case 819:if(this.annoValue(_={},820)){upTo=_.value; $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location, upTo: upTo } ); }continue
4432
+ case 820:switch(this.l()){
4433
+ case',':this.c(816);continue
4434
+ case']':this.s=821;continue
4437
4435
  default:this.e();continue
4438
4436
  }
4439
- case 820:this.s=821;{ this.ec( 'arrayAnno', 'bracket' ); }continue
4440
- case 821:this.m(0,']');continue
4441
- case 822:if(this.condition(_={},823))$.value=_.expr;continue
4442
- case 823:if(this.m(0,')')){ $.value.$tokenTexts = this.ruleTokensText(); }continue
4437
+ case 821:this.s=822;{ this.ec( 'arrayAnno', 'bracket' ); }continue
4438
+ case 822:this.m(0,']');continue
4439
+ case 823:if(this.condition(_={},824))$.value=_.expr;continue
4440
+ case 824:if(this.m(0,')')){ $.value.$tokenTexts = this.ruleTokensText(); }continue
4443
4441
  default:
4444
4442
  this.attachLocation( $.value )
4445
4443
  return this.exit_()