@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.
- package/CHANGELOG.md +12 -1
- package/bin/cdsse.js +3 -0
- package/lib/base/message-registry.js +2 -0
- package/lib/compiler/builtins.js +2 -0
- package/lib/edm/annotations/vocabularyDefinitions.js +6 -0
- package/lib/gen/BaseParser.js +115 -76
- package/lib/gen/CdlParser.js +839 -841
- package/lib/gen/Dictionary.json +185 -6
- package/lib/parsers/AstBuildingParser.js +63 -28
- package/lib/parsers/CdlGrammar.g4 +36 -22
- package/lib/transform/db/expansion.js +3 -0
- package/lib/transform/forOdata.js +1 -1
- package/lib/transform/odata/createForeignKeys.js +92 -9
- package/package.json +1 -1
package/lib/gen/CdlParser.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Parser generated by redepage v0.1.
|
|
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,
|
|
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,
|
|
202
|
+
{'@':[46,776],'':47},
|
|
203
203
|
{'{':[0,5],'':0},
|
|
204
204
|
'contextDef',
|
|
205
205
|
['mk',50,'context'],
|
|
206
206
|
[51,36],
|
|
207
|
-
{'@':[51,
|
|
207
|
+
{'@':[51,776],'':52},
|
|
208
208
|
{'{':[0,5],'':0},
|
|
209
209
|
'annotationDef',
|
|
210
210
|
['mk',55,'annotation'],
|
|
211
211
|
[56,36],
|
|
212
|
-
{'@':[56,
|
|
212
|
+
{'@':[56,776],'':57},
|
|
213
213
|
[0,346],
|
|
214
214
|
'typeDef',
|
|
215
215
|
['mk',60,'type'],
|
|
216
216
|
[61,36],
|
|
217
|
-
{'@':[61,
|
|
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,
|
|
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,
|
|
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,
|
|
262
|
-
{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,
|
|
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,
|
|
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,
|
|
301
|
+
{'@':[110,770],'':0},
|
|
302
302
|
'actionMainDef',
|
|
303
303
|
['mk',113,'action'],
|
|
304
304
|
[114,36],
|
|
305
|
-
{'@':[114,
|
|
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,
|
|
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,
|
|
325
|
+
{'@':[130,770],'':131},
|
|
326
326
|
{
|
|
327
327
|
action:['ck',132],
|
|
328
328
|
function:['ck',136],
|
|
329
329
|
},
|
|
330
330
|
['mi',133],
|
|
331
|
-
{'@':[133,
|
|
331
|
+
{'@':[133,776],'':134},
|
|
332
332
|
[135,141],
|
|
333
333
|
{returns:[0,153],'':0},
|
|
334
334
|
['mi',137],
|
|
335
|
-
{'@':[137,
|
|
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,
|
|
347
|
+
{'@':[146,770],'':147},
|
|
348
348
|
['miA',148],
|
|
349
|
-
{'@':[148,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
385
|
+
[174,643],
|
|
386
386
|
{stored:['ck',175],'':175},
|
|
387
387
|
['g',176],
|
|
388
|
-
{'@':[176,
|
|
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,
|
|
399
|
+
{'@':[184,770],'':185},
|
|
400
400
|
['mi',186],
|
|
401
|
-
{'@':[186,
|
|
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,
|
|
407
|
+
Id:[190,767,,'hide_'],'#':'Id',QuotedLiteral:'Id',
|
|
408
408
|
},
|
|
409
409
|
['m',190,'Number'],
|
|
410
410
|
['g',191],
|
|
411
|
-
{'@':[191,
|
|
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,
|
|
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,
|
|
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,
|
|
450
|
+
{'@':[220,770],'':221},
|
|
451
451
|
{'{':[0,320],'':0},
|
|
452
452
|
['g',223],
|
|
453
|
-
{'@':[223,
|
|
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,
|
|
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,
|
|
480
|
+
{'@':[236,770],'':237},
|
|
481
481
|
{'{':[238,330],'':0},
|
|
482
482
|
{actions:[0,124],'':0},
|
|
483
|
-
{'@':[239,
|
|
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,
|
|
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,
|
|
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,
|
|
521
|
+
{'@':[267,770],'':268},
|
|
522
522
|
{'{':[0,330],'':0},
|
|
523
|
-
{'@':[269,
|
|
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,
|
|
541
|
-
{'@':[280,
|
|
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,
|
|
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,
|
|
570
|
+
{'@':[301,770],'':302},
|
|
571
571
|
['mi',303],
|
|
572
|
-
{'@':[303,
|
|
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,
|
|
584
|
+
{'@':[312,770],'':313},
|
|
585
585
|
['mi',314],
|
|
586
|
-
{'@':[314,
|
|
586
|
+
{'@':[314,770],'':0},
|
|
587
587
|
'annotateReturns',
|
|
588
588
|
['mk',317,'returns'],
|
|
589
|
-
{'@':[317,
|
|
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,
|
|
601
|
+
{'@':[325,770],'':326},
|
|
602
602
|
['mi',327],
|
|
603
|
-
{'@':[327,
|
|
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,
|
|
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,
|
|
623
|
+
{'@':[340,770],'':341},
|
|
624
624
|
{'{':[0,330],'':0},
|
|
625
|
-
{'@':[342,
|
|
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,
|
|
671
|
+
{'@':[359,770],'':360},
|
|
672
672
|
{not:[361,438,,'elementRestriction','notNull'],null:'not','':362},
|
|
673
|
-
{'@':[361,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
718
|
-
{'@':[390,
|
|
717
|
+
[390,635],
|
|
718
|
+
{'@':[390,770],'':0},
|
|
719
719
|
{'@':[0,393],not:'@',null:'@',default:'@','':0},
|
|
720
720
|
'typeProperties',
|
|
721
721
|
{
|
|
722
|
-
'@':[393,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
979
|
-
{group:545,'':546},
|
|
980
|
-
[546,
|
|
981
|
-
{having:['ck',547],'':548},
|
|
982
|
-
[548,
|
|
983
|
-
{limit:549,order:
|
|
984
|
-
[0,
|
|
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,
|
|
1020
|
+
{'@':[568,773],'':569},
|
|
1021
1021
|
{virtual:['ck',570,1,'modifierRestriction'],'':570},
|
|
1022
|
-
|
|
1022
|
+
['g',571,,,'key','columnExpr'],
|
|
1023
|
+
{key:['ck',572,,'modifierRestriction'],'':572},
|
|
1023
1024
|
{
|
|
1024
|
-
Id:[
|
|
1025
|
-
'{':[
|
|
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',
|
|
1029
|
-
Id:['ci',
|
|
1030
|
-
'':
|
|
1029
|
+
as:['ck',574],
|
|
1030
|
+
Id:['ci',577],
|
|
1031
|
+
'.':['c',575],
|
|
1032
|
+
'':577
|
|
1031
1033
|
},
|
|
1032
|
-
['mi',
|
|
1034
|
+
['mi',577],
|
|
1033
1035
|
{
|
|
1034
|
-
'{':
|
|
1035
|
-
'
|
|
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:[
|
|
1045
|
-
{
|
|
1046
|
-
[
|
|
1047
|
-
['
|
|
1048
|
-
['
|
|
1049
|
-
|
|
1050
|
-
|
|
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:[
|
|
1053
|
-
localized:['ck',
|
|
1054
|
-
Id:
|
|
1055
|
-
redirected:['ck',
|
|
1056
|
-
association:['ck',
|
|
1057
|
-
composition:['ck',
|
|
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
|
-
[
|
|
1060
|
-
['mk',
|
|
1061
|
-
[
|
|
1057
|
+
[600,404],
|
|
1058
|
+
['mk',589,'to'],
|
|
1059
|
+
[590,40],
|
|
1062
1060
|
{
|
|
1063
|
-
on:['ck',
|
|
1064
|
-
'{':[
|
|
1065
|
-
'':
|
|
1061
|
+
on:['ck',591],
|
|
1062
|
+
'{':[600,193],
|
|
1063
|
+
'':600
|
|
1066
1064
|
},
|
|
1067
|
-
[
|
|
1068
|
-
{'[':[
|
|
1069
|
-
['mk',
|
|
1070
|
-
{'[':[
|
|
1071
|
-
['mk',
|
|
1072
|
-
{one:['ck',
|
|
1073
|
-
[
|
|
1074
|
-
['mk',
|
|
1075
|
-
[
|
|
1076
|
-
['g',
|
|
1077
|
-
{'@':[
|
|
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',
|
|
1080
|
-
[
|
|
1081
|
-
{group:[
|
|
1082
|
-
{having:['ck',
|
|
1083
|
-
[0,
|
|
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',
|
|
1086
|
-
['mk',
|
|
1087
|
-
[
|
|
1088
|
-
{',':['c',
|
|
1089
|
-
[
|
|
1083
|
+
['mk',610,'group'],
|
|
1084
|
+
['mk',611,'by'],
|
|
1085
|
+
[612,643],
|
|
1086
|
+
{',':['c',613],'':0},
|
|
1087
|
+
[612,643],
|
|
1090
1088
|
'orderByLimitOffset',
|
|
1091
|
-
{order:[
|
|
1092
|
-
{limit:['ck',
|
|
1093
|
-
[
|
|
1094
|
-
{offset:['ck',
|
|
1095
|
-
[0,
|
|
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',
|
|
1098
|
-
['mk',
|
|
1099
|
-
[
|
|
1100
|
-
{',':['c',
|
|
1101
|
-
[
|
|
1095
|
+
['mk',622,'order'],
|
|
1096
|
+
['mk',623,'by'],
|
|
1097
|
+
[624,627],
|
|
1098
|
+
{',':['c',625],'':0},
|
|
1099
|
+
[624,627],
|
|
1102
1100
|
'orderByExpression',
|
|
1103
|
-
[
|
|
1104
|
-
{asc:['ck',
|
|
1105
|
-
{nulls:['ck',
|
|
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
|
-
[
|
|
1106
|
+
[633,643],
|
|
1109
1107
|
['m',0,'EOF'],
|
|
1110
1108
|
'condition',
|
|
1111
|
-
[0,
|
|
1109
|
+
[0,643],
|
|
1112
1110
|
'valuePath',
|
|
1113
|
-
['mi',
|
|
1114
|
-
{'(':[
|
|
1115
|
-
{'.':['c',
|
|
1116
|
-
['miA',
|
|
1117
|
-
{'(':[
|
|
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
|
-
'(':[
|
|
1121
|
-
'#':[
|
|
1122
|
-
':':['c',
|
|
1123
|
-
'?':['c',
|
|
1124
|
-
Id:[
|
|
1125
|
-
new:[
|
|
1126
|
-
exists:['ck',
|
|
1127
|
-
case:[
|
|
1128
|
-
cast:[
|
|
1129
|
-
'+':['c',
|
|
1130
|
-
not:['ck',
|
|
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',
|
|
1130
|
+
['g',654],
|
|
1133
1131
|
{
|
|
1134
|
-
Id:['ciA',
|
|
1135
|
-
Number:['c',
|
|
1132
|
+
Id:['ciA',646],
|
|
1133
|
+
Number:['c',654,,'hide_'],
|
|
1136
1134
|
},
|
|
1137
|
-
{'.':[
|
|
1138
|
-
{over:['ck',
|
|
1139
|
-
[
|
|
1140
|
-
['g',
|
|
1135
|
+
{'.':[654,639],'':654},
|
|
1136
|
+
{over:['ck',648],'':649},
|
|
1137
|
+
[649,731],
|
|
1138
|
+
['g',654],
|
|
1141
1139
|
{
|
|
1142
|
-
'(':['c',
|
|
1143
|
-
Id:[
|
|
1144
|
-
'?':['c',
|
|
1140
|
+
'(':['c',651],
|
|
1141
|
+
Id:[654,637],
|
|
1142
|
+
'?':['c',654,,'hide_'],
|
|
1145
1143
|
},
|
|
1146
|
-
[
|
|
1147
|
-
['m',
|
|
1148
|
-
[
|
|
1144
|
+
[652,451],
|
|
1145
|
+
['m',654,')'],
|
|
1146
|
+
[654,643],
|
|
1149
1147
|
{
|
|
1150
|
-
'*':['c',
|
|
1151
|
-
'+':['c',
|
|
1152
|
-
'||':['c',
|
|
1153
|
-
and:['ck',
|
|
1154
|
-
or:['ck',
|
|
1155
|
-
'?':['c',
|
|
1156
|
-
'<':['c',
|
|
1157
|
-
is:['ck',
|
|
1158
|
-
not:['ck',
|
|
1159
|
-
in:['g',
|
|
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
|
-
[
|
|
1163
|
-
['m',
|
|
1164
|
-
{all:['ck',
|
|
1165
|
-
[
|
|
1166
|
-
{not:['ck',
|
|
1167
|
-
['mk',
|
|
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',
|
|
1170
|
-
in:['ck',
|
|
1171
|
-
like:['ck',
|
|
1167
|
+
between:['ck',662],
|
|
1168
|
+
in:['ck',665],
|
|
1169
|
+
like:['ck',666],
|
|
1172
1170
|
},
|
|
1173
|
-
[
|
|
1174
|
-
['mk',
|
|
1175
|
-
[
|
|
1176
|
-
[
|
|
1177
|
-
[
|
|
1178
|
-
{escape:['ck',
|
|
1179
|
-
[
|
|
1180
|
-
['g',
|
|
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',
|
|
1180
|
+
['m',672,'(',,,'queryOnLeft'],
|
|
1183
1181
|
{
|
|
1184
|
-
'(':[
|
|
1185
|
-
Id:[
|
|
1186
|
-
select:[
|
|
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
|
-
'*':[
|
|
1190
|
-
',':[
|
|
1191
|
-
limit:[
|
|
1192
|
-
'':
|
|
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
|
-
{',':[
|
|
1195
|
-
{',':[
|
|
1192
|
+
{',':[676,678],'':676},
|
|
1193
|
+
{',':[676,678],'':676},
|
|
1196
1194
|
['m',0,')'],
|
|
1197
1195
|
'continueExpressionslist',
|
|
1198
|
-
['m',
|
|
1199
|
-
{Id:
|
|
1200
|
-
{Id:[
|
|
1201
|
-
{',':['c',
|
|
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',
|
|
1204
|
-
[0,
|
|
1201
|
+
['mk',684,'new'],
|
|
1202
|
+
[0,637],
|
|
1205
1203
|
'caseExpression',
|
|
1206
|
-
['mk',
|
|
1204
|
+
['mk',687,'case'],
|
|
1207
1205
|
{
|
|
1208
|
-
Id:[
|
|
1209
|
-
when:['g',
|
|
1210
|
-
'':
|
|
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:
|
|
1213
|
-
{when:['ck',
|
|
1214
|
-
[
|
|
1215
|
-
['mk',
|
|
1216
|
-
[
|
|
1217
|
-
{else:['ck',
|
|
1218
|
-
[
|
|
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',
|
|
1222
|
-
['m',
|
|
1223
|
-
[
|
|
1224
|
-
['mk',
|
|
1225
|
-
[
|
|
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',
|
|
1229
|
-
{Id:['ciA',
|
|
1230
|
-
{Id:[
|
|
1231
|
-
{',':['c',
|
|
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:[
|
|
1234
|
-
')':['g',
|
|
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',
|
|
1237
|
-
['mk',
|
|
1238
|
-
[
|
|
1234
|
+
{order:['ck',710],'':723},
|
|
1235
|
+
['mk',711,'by'],
|
|
1236
|
+
[723,746],
|
|
1239
1237
|
{
|
|
1240
|
-
':':['c',
|
|
1241
|
-
'=>':['c',
|
|
1238
|
+
':':['c',713],
|
|
1239
|
+
'=>':['c',718],
|
|
1242
1240
|
},
|
|
1243
|
-
[
|
|
1244
|
-
{',':['c',
|
|
1241
|
+
[714,643],
|
|
1242
|
+
{',':['c',715],'':723},
|
|
1245
1243
|
{
|
|
1246
|
-
Id:['ciA',
|
|
1247
|
-
')':
|
|
1244
|
+
Id:['ciA',716],
|
|
1245
|
+
')':723,
|
|
1248
1246
|
},
|
|
1249
|
-
['m',
|
|
1250
|
-
[
|
|
1251
|
-
[
|
|
1252
|
-
{',':['c',
|
|
1247
|
+
['m',717,':'],
|
|
1248
|
+
[714,643],
|
|
1249
|
+
[719,643],
|
|
1250
|
+
{',':['c',720],'':723},
|
|
1253
1251
|
{
|
|
1254
|
-
Id:['ciA',
|
|
1255
|
-
')':
|
|
1252
|
+
Id:['ciA',721],
|
|
1253
|
+
')':723,
|
|
1256
1254
|
},
|
|
1257
|
-
['m',
|
|
1258
|
-
[
|
|
1259
|
-
['m',
|
|
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:[
|
|
1265
|
-
GenericExpr:['ckA',
|
|
1266
|
-
GenericIntro:['ckA',
|
|
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
|
-
[
|
|
1266
|
+
[728,643],
|
|
1269
1267
|
{
|
|
1270
1268
|
' lookahead':'lGenericSeparator',
|
|
1271
|
-
GenericSeparator:['ckA',
|
|
1269
|
+
GenericSeparator:['ckA',729],
|
|
1272
1270
|
'':0
|
|
1273
1271
|
},
|
|
1274
1272
|
{
|
|
1275
1273
|
' lookahead':'lGenericExpr',
|
|
1276
|
-
Id:[
|
|
1277
|
-
GenericExpr:['ckA',
|
|
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',
|
|
1281
|
-
{partition:['ck',
|
|
1282
|
-
['mk',
|
|
1283
|
-
[
|
|
1284
|
-
{order:['ck',
|
|
1285
|
-
['mk',
|
|
1286
|
-
[
|
|
1287
|
-
{rows:['ck',
|
|
1288
|
-
[
|
|
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
|
-
[
|
|
1292
|
-
{',':['c',
|
|
1293
|
-
[
|
|
1289
|
+
[743,643],
|
|
1290
|
+
{',':['c',744],'':0},
|
|
1291
|
+
[743,643],
|
|
1294
1292
|
'orderByClauseAsXpr',
|
|
1295
|
-
[
|
|
1296
|
-
{',':['c',
|
|
1297
|
-
[
|
|
1293
|
+
[747,750],
|
|
1294
|
+
{',':['c',748],'':0},
|
|
1295
|
+
[747,750],
|
|
1298
1296
|
'orderBySpecAsXpr',
|
|
1299
|
-
[
|
|
1300
|
-
{asc:['ck',
|
|
1301
|
-
{nulls:['ck',
|
|
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',
|
|
1306
|
-
Number:['c',
|
|
1307
|
-
current:['ck',
|
|
1308
|
-
between:['ck',
|
|
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
|
-
[
|
|
1313
|
-
['mk',
|
|
1314
|
-
[0,
|
|
1310
|
+
[759,762],
|
|
1311
|
+
['mk',760,'and'],
|
|
1312
|
+
[0,762],
|
|
1315
1313
|
'windowFrameBoundSpec',
|
|
1316
1314
|
{
|
|
1317
|
-
unbounded:['ck',
|
|
1318
|
-
Number:['c',
|
|
1319
|
-
current:['ck',
|
|
1315
|
+
unbounded:['ck',763],
|
|
1316
|
+
Number:['c',763],
|
|
1317
|
+
current:['ck',765],
|
|
1320
1318
|
},
|
|
1321
1319
|
{
|
|
1322
|
-
following:['ck',
|
|
1323
|
-
preceding:['ck',
|
|
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',
|
|
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',
|
|
1336
|
+
['m',771,'@',,,'annoInSameLine'],
|
|
1339
1337
|
{
|
|
1340
|
-
'(':[0,
|
|
1341
|
-
Id:[0,
|
|
1338
|
+
'(':[0,779],
|
|
1339
|
+
Id:[0,784],
|
|
1342
1340
|
},
|
|
1343
1341
|
'annoAssignCol',
|
|
1344
|
-
['m',
|
|
1342
|
+
['m',774,'@'],
|
|
1345
1343
|
{
|
|
1346
|
-
'(':[0,
|
|
1347
|
-
Id:[0,
|
|
1344
|
+
'(':[0,779],
|
|
1345
|
+
Id:[0,784],
|
|
1348
1346
|
},
|
|
1349
1347
|
'annoAssignMid',
|
|
1350
|
-
['m',
|
|
1348
|
+
['m',777,'@',,,'annoInSameLine'],
|
|
1351
1349
|
{
|
|
1352
|
-
'(':[0,
|
|
1353
|
-
Id:[0,
|
|
1350
|
+
'(':[0,779],
|
|
1351
|
+
Id:[0,788],
|
|
1354
1352
|
},
|
|
1355
1353
|
'annoAssignParen',
|
|
1356
|
-
['m',
|
|
1357
|
-
{Id:[
|
|
1354
|
+
['m',780,'(',,,'annoInSameLine'],
|
|
1355
|
+
{Id:[781,784],'':782},
|
|
1358
1356
|
{
|
|
1359
|
-
',':['c',
|
|
1360
|
-
')':
|
|
1357
|
+
',':['c',780],
|
|
1358
|
+
')':782,
|
|
1361
1359
|
},
|
|
1362
1360
|
['m',0,')'],
|
|
1363
1361
|
'annoAssignBase',
|
|
1364
|
-
[
|
|
1365
|
-
{':':['c',
|
|
1366
|
-
[0,
|
|
1362
|
+
[785,788],
|
|
1363
|
+
{':':['c',786,,'annoInSameLine'],'':0},
|
|
1364
|
+
[0,810],
|
|
1367
1365
|
'annoNamePath',
|
|
1368
|
-
['miA',
|
|
1369
|
-
{'.':['c',
|
|
1366
|
+
['miA',789],
|
|
1367
|
+
{'.':['c',790],'':792},
|
|
1370
1368
|
{
|
|
1371
|
-
Id:['ciA',
|
|
1372
|
-
'@':['c',
|
|
1369
|
+
Id:['ciA',789],
|
|
1370
|
+
'@':['c',791],
|
|
1373
1371
|
},
|
|
1374
|
-
['miA',
|
|
1375
|
-
{'#':[0,
|
|
1372
|
+
['miA',789],
|
|
1373
|
+
{'#':[0,801,,'annoInSameLine'],'':0},
|
|
1376
1374
|
'annoPath',
|
|
1377
1375
|
{
|
|
1378
|
-
Id:['ciA',
|
|
1379
|
-
'@':['c',
|
|
1376
|
+
Id:['ciA',796],
|
|
1377
|
+
'@':['c',795],
|
|
1380
1378
|
},
|
|
1381
|
-
['miA',
|
|
1382
|
-
{'.':['c',
|
|
1379
|
+
['miA',796],
|
|
1380
|
+
{'.':['c',797],'':799},
|
|
1383
1381
|
{
|
|
1384
|
-
Id:['ciA',
|
|
1385
|
-
'@':['c',
|
|
1382
|
+
Id:['ciA',796],
|
|
1383
|
+
'@':['c',798],
|
|
1386
1384
|
},
|
|
1387
|
-
['miA',
|
|
1388
|
-
{'#':[0,
|
|
1385
|
+
['miA',796],
|
|
1386
|
+
{'#':[0,801],'':0},
|
|
1389
1387
|
'annoPathVariant',
|
|
1390
|
-
['m',
|
|
1391
|
-
['miA',
|
|
1392
|
-
{'.':['c',
|
|
1393
|
-
['miA',
|
|
1388
|
+
['m',802,'#'],
|
|
1389
|
+
['miA',803],
|
|
1390
|
+
{'.':['c',804],'':0},
|
|
1391
|
+
['miA',803],
|
|
1394
1392
|
'annoStructValue',
|
|
1395
|
-
[
|
|
1396
|
-
{':':['c',
|
|
1397
|
-
[0,
|
|
1393
|
+
[807,794],
|
|
1394
|
+
{':':['c',808],'':0},
|
|
1395
|
+
[0,810],
|
|
1398
1396
|
'annoValue',
|
|
1399
1397
|
{
|
|
1400
|
-
'#':[0,
|
|
1401
|
-
'+':['c',
|
|
1402
|
-
Id:[0,
|
|
1403
|
-
'{':['c',
|
|
1404
|
-
'[':['c',
|
|
1405
|
-
'(':['c',
|
|
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:[
|
|
1406
|
+
{Id:[813,806],'@':'Id','':814},
|
|
1409
1407
|
{
|
|
1410
|
-
',':['c',
|
|
1411
|
-
'}':
|
|
1408
|
+
',':['c',812],
|
|
1409
|
+
'}':814,
|
|
1412
1410
|
},
|
|
1413
|
-
['g',
|
|
1411
|
+
['g',815],
|
|
1414
1412
|
['m',0,'}'],
|
|
1415
1413
|
{
|
|
1416
|
-
Id:[
|
|
1417
|
-
'...':['c',
|
|
1418
|
-
'':
|
|
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',
|
|
1421
|
-
['mk',
|
|
1422
|
-
[
|
|
1418
|
+
{up:['ck',818],'':820},
|
|
1419
|
+
['mk',819,'to'],
|
|
1420
|
+
[820,810],
|
|
1423
1421
|
{
|
|
1424
|
-
',':['c',
|
|
1425
|
-
']':
|
|
1422
|
+
',':['c',816],
|
|
1423
|
+
']':821,
|
|
1426
1424
|
},
|
|
1427
|
-
['g',
|
|
1425
|
+
['g',822],
|
|
1428
1426
|
['m',0,']'],
|
|
1429
|
-
[
|
|
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.
|
|
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.
|
|
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.
|
|
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;
|
|
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.
|
|
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:
|
|
3563
|
-
case
|
|
3564
|
-
|
|
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
|
|
3567
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
3568
|
-
case'{':this.nestedSelectItemsList({query:art,clause:'expand'},
|
|
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
|
|
3572
|
-
case'as':if(this.ck(
|
|
3573
|
-
case'Id':if(this.ci(
|
|
3574
|
-
|
|
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.
|
|
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},
|
|
3587
|
-
default:this.
|
|
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.
|
|
3591
|
-
|
|
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},
|
|
3600
|
-
default:this.s=
|
|
3593
|
+
case'excluding':this.excludingClause({query:art},583);continue
|
|
3594
|
+
default:this.s=583;continue
|
|
3601
3595
|
}
|
|
3602
|
-
case 580:this.
|
|
3603
|
-
case
|
|
3604
|
-
|
|
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'
|
|
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
|
|
3614
|
-
case'type':this.lP()&&this.typeTypeOf({art},
|
|
3615
|
-
case'localized':if(this.ckP(
|
|
3616
|
-
case'Id':this.s=
|
|
3617
|
-
case'redirected':this.ckP(
|
|
3618
|
-
case'association':if(this.
|
|
3619
|
-
case'composition':if(this.
|
|
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
|
|
3623
|
-
case
|
|
3624
|
-
case
|
|
3625
|
-
case
|
|
3626
|
-
case'on':this.ck(
|
|
3627
|
-
case'{':this.foreignKeysBlock({art},
|
|
3628
|
-
default:this.s=
|
|
3629
|
-
}
|
|
3630
|
-
case
|
|
3631
|
-
case
|
|
3632
|
-
case'[':this.cardinality({art},
|
|
3633
|
-
default:this.s=
|
|
3634
|
-
}
|
|
3635
|
-
case
|
|
3636
|
-
case
|
|
3637
|
-
case'[':this.cardinality({art},
|
|
3638
|
-
default:this.s=
|
|
3639
|
-
}
|
|
3640
|
-
case
|
|
3641
|
-
case
|
|
3642
|
-
case'one':case'many':if(this.
|
|
3643
|
-
default:this.s=
|
|
3644
|
-
}
|
|
3645
|
-
case
|
|
3646
|
-
case
|
|
3647
|
-
case
|
|
3648
|
-
case
|
|
3649
|
-
case
|
|
3650
|
-
case'@':this.annoAssignStd({art},
|
|
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_(
|
|
3658
|
+
this.rule_(603,$next)
|
|
3661
3659
|
for(;;)switch(this.s){
|
|
3662
|
-
case
|
|
3663
|
-
case'where':this.ck(
|
|
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'
|
|
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
|
|
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_(
|
|
3679
|
+
this.rule_(609,$next)
|
|
3682
3680
|
for(;;)switch(this.s){
|
|
3683
|
-
case
|
|
3684
|
-
case
|
|
3685
|
-
case
|
|
3686
|
-
case
|
|
3687
|
-
case',':this.c(
|
|
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
|
|
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_(
|
|
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'
|
|
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
|
|
3707
|
-
case
|
|
3708
|
-
case'offset':this.ck(
|
|
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
|
|
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_(
|
|
3715
|
+
this.rule_(621,$next)
|
|
3718
3716
|
for(;;)switch(this.s){
|
|
3719
|
-
case
|
|
3720
|
-
case
|
|
3721
|
-
case
|
|
3722
|
-
case
|
|
3723
|
-
case',':this.c(
|
|
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
|
|
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_(
|
|
3730
|
+
this.rule_(627,$next)
|
|
3733
3731
|
for(;;)switch(this.s){
|
|
3734
|
-
case
|
|
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'
|
|
3741
|
-
default:this.
|
|
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_(
|
|
3751
|
+
this.rule_(632,$next)
|
|
3754
3752
|
for(;;)switch(this.s){
|
|
3755
|
-
case
|
|
3756
|
-
case
|
|
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_(
|
|
3760
|
+
this.rule_(635,$next)
|
|
3763
3761
|
for(;;)switch(this.s){
|
|
3764
|
-
case
|
|
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??
|
|
3769
|
+
this.rule_($startState??637,$next)
|
|
3772
3770
|
for(;;)switch(this.s){
|
|
3773
|
-
case
|
|
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'
|
|
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
|
|
3783
|
-
case
|
|
3784
|
-
case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},
|
|
3785
|
-
default:this.s=
|
|
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??
|
|
3793
|
+
this.rule_($startState??643,$next)
|
|
3796
3794
|
for(;;)switch(this.s){
|
|
3797
|
-
case
|
|
3798
|
-
case'(':this.expressionOrQueryParens($,
|
|
3799
|
-
case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,
|
|
3800
|
-
case':':if(this.c(
|
|
3801
|
-
case'?':if(this.c(
|
|
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(_={},
|
|
3804
|
-
case'new':this.lP()&&this.newAndValuePath($,
|
|
3805
|
-
case'exists':if(this.ck(
|
|
3806
|
-
case'case':this.caseExpression($,
|
|
3807
|
-
case'cast':this.castFunction($,
|
|
3808
|
-
case'+':case'-':if(this.ec('precRight_',30)&&this.c(
|
|
3809
|
-
case'not':if(this.ec('precRight_',8)&&this.ck(
|
|
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
|
|
3813
|
-
case
|
|
3814
|
-
case'Id':if(this.ciA(
|
|
3815
|
-
case'Number':if(this.c(
|
|
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
|
|
3820
|
-
case'.':if(this.valuePath($,
|
|
3821
|
-
default:this.s=
|
|
3822
|
-
}
|
|
3823
|
-
case
|
|
3824
|
-
case'over':if(this.ck(
|
|
3825
|
-
default:this.s=
|
|
3826
|
-
}
|
|
3827
|
-
case
|
|
3828
|
-
case
|
|
3829
|
-
case
|
|
3830
|
-
case'(':if(this.c(
|
|
3831
|
-
case'Id':if(this.valuePath(_={},
|
|
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(
|
|
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
|
|
3838
|
-
case
|
|
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
|
|
3841
|
-
case
|
|
3842
|
-
case'*':case'/':if(this.gc(0,'precLeft_',24)&&this.c(
|
|
3843
|
-
case'+':case'-':if(this.gc(0,'precLeft_',22)&&this.c(
|
|
3844
|
-
case'||':if(this.gc(0,'precLeft_',20)&&this.c(
|
|
3845
|
-
case'and':if(this.gc(0,'precLeft_',4)&&this.ck(
|
|
3846
|
-
case'or':if(this.gc(0,'precLeft_',2)&&this.ck(
|
|
3847
|
-
case'?':if(this.gc(0,'precLeft_',0)&&this.c(
|
|
3848
|
-
case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(
|
|
3849
|
-
case'is':if(this.gc(0,'precNone_',10)&&this.ck(
|
|
3850
|
-
case'not':if(this.gc(0,'isNegatedRelation','10')&&this.ck(
|
|
3851
|
-
case'in':case'like':case'between':if(this.gc(0,'precNone_',10)&&this.g(
|
|
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
|
|
3855
|
-
case
|
|
3856
|
-
case
|
|
3857
|
-
case'all':case'any':case'some':if(this.ck(
|
|
3858
|
-
default:this.s=
|
|
3859
|
-
}
|
|
3860
|
-
case
|
|
3861
|
-
case
|
|
3862
|
-
case'not':if(this.ck(
|
|
3863
|
-
default:this.s=
|
|
3864
|
-
}
|
|
3865
|
-
case
|
|
3866
|
-
case
|
|
3867
|
-
case'between':if(this.ck(
|
|
3868
|
-
case'in':if(this.ck(
|
|
3869
|
-
case'like':if(this.ck(
|
|
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
|
|
3873
|
-
case
|
|
3874
|
-
case
|
|
3875
|
-
case
|
|
3876
|
-
case
|
|
3877
|
-
case
|
|
3878
|
-
case'escape':if(this.ck(
|
|
3879
|
-
default:this.s=
|
|
3880
|
-
}
|
|
3881
|
-
case
|
|
3882
|
-
case
|
|
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_(
|
|
3886
|
+
this.rule_(671,$next)
|
|
3889
3887
|
for(;;)switch(this.s){
|
|
3890
|
-
case
|
|
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'
|
|
3899
|
-
case'
|
|
3900
|
-
case'
|
|
3901
|
-
default:this.
|
|
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.
|
|
3904
|
-
case'
|
|
3905
|
-
|
|
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($,
|
|
3909
|
-
default:this.s=
|
|
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
|
|
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_(
|
|
3915
|
+
this.rule_(678,$next)
|
|
3918
3916
|
for(;;)switch(this.s){
|
|
3919
|
-
case
|
|
3920
|
-
case
|
|
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=
|
|
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
|
|
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(_={},
|
|
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
|
|
3929
|
-
case',':this.c(
|
|
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_(
|
|
3939
|
+
this.rule_(683,$next)
|
|
3942
3940
|
for(;;)switch(this.s){
|
|
3943
|
-
case
|
|
3944
|
-
case
|
|
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_(
|
|
3952
|
+
this.rule_(686,$next)
|
|
3955
3953
|
for(;;)switch(this.s){
|
|
3956
|
-
case
|
|
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'
|
|
3964
|
-
|
|
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':
|
|
3968
|
-
default:this.
|
|
3969
|
-
}
|
|
3970
|
-
case 689:
|
|
3971
|
-
case
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
case
|
|
3975
|
-
|
|
3976
|
-
}
|
|
3977
|
-
case 693:
|
|
3978
|
-
case
|
|
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_(
|
|
3985
|
+
this.rule_(697,$next)
|
|
3988
3986
|
for(;;)switch(this.s){
|
|
3989
|
-
case
|
|
3990
|
-
case
|
|
3991
|
-
case
|
|
3992
|
-
case
|
|
3993
|
-
case
|
|
3994
|
-
case
|
|
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_(
|
|
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'
|
|
4010
|
-
default:this.s=
|
|
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':
|
|
4014
|
-
default:this.s=
|
|
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'
|
|
4018
|
-
default:this.s=
|
|
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.
|
|
4021
|
-
case'
|
|
4022
|
-
|
|
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'
|
|
4027
|
-
|
|
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
|
|
4037
|
-
case
|
|
4038
|
-
|
|
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
|
|
4042
|
-
case
|
|
4043
|
-
case
|
|
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
|
|
4047
|
-
case
|
|
4048
|
-
case
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
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'
|
|
4055
|
-
|
|
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
|
|
4059
|
-
case
|
|
4060
|
-
case
|
|
4061
|
-
case
|
|
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_(
|
|
4070
|
+
this.rule_(726,$next)
|
|
4073
4071
|
for(;;)switch(this.s){
|
|
4074
|
-
case
|
|
4075
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
4076
|
-
case'GenericExpr':if(this.ckA(
|
|
4077
|
-
case'GenericIntro':if(this.ckA(
|
|
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
|
|
4081
|
-
case
|
|
4082
|
-
case'GenericSeparator':if(this.ckA(
|
|
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
|
|
4086
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
4087
|
-
case'GenericExpr':if(this.ckA(
|
|
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_(
|
|
4095
|
+
this.rule_(731,$next)
|
|
4098
4096
|
for(;;)switch(this.s){
|
|
4099
|
-
case
|
|
4100
|
-
case
|
|
4101
|
-
case'partition':if(this.ck(
|
|
4102
|
-
default:this.s=
|
|
4103
|
-
}
|
|
4104
|
-
case
|
|
4105
|
-
case
|
|
4106
|
-
case
|
|
4107
|
-
case'order':if(this.ck(
|
|
4108
|
-
default:this.s=
|
|
4109
|
-
}
|
|
4110
|
-
case
|
|
4111
|
-
case
|
|
4112
|
-
case
|
|
4113
|
-
case'rows':if(this.ck(
|
|
4114
|
-
default:this.s=
|
|
4115
|
-
}
|
|
4116
|
-
case
|
|
4117
|
-
case
|
|
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_(
|
|
4124
|
+
this.rule_(742,$next)
|
|
4127
4125
|
for(;;)switch(this.s){
|
|
4128
|
-
case
|
|
4129
|
-
case
|
|
4130
|
-
case',':if(this.c(
|
|
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
|
|
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_(
|
|
4139
|
+
this.rule_(746,$next)
|
|
4142
4140
|
for(;;)switch(this.s){
|
|
4143
|
-
case
|
|
4144
|
-
case
|
|
4145
|
-
case',':if(this.c(
|
|
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
|
|
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_(
|
|
4154
|
+
this.rule_(750,$next)
|
|
4157
4155
|
for(;;)switch(this.s){
|
|
4158
|
-
case
|
|
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'
|
|
4165
|
-
default:this.
|
|
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_(
|
|
4174
|
+
this.rule_(755,$next)
|
|
4177
4175
|
for(;;)switch(this.s){
|
|
4178
|
-
case
|
|
4179
|
-
case'unbounded':if(this.ck(
|
|
4180
|
-
case'Number':if(this.c(
|
|
4181
|
-
case'current':if(this.ck(
|
|
4182
|
-
case'between':if(this.ck(
|
|
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
|
|
4186
|
-
case
|
|
4187
|
-
case
|
|
4188
|
-
case
|
|
4189
|
-
case
|
|
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_(
|
|
4194
|
+
this.rule_(762,$next)
|
|
4197
4195
|
for(;;)switch(this.s){
|
|
4198
|
-
case
|
|
4199
|
-
case'unbounded':if(this.ck(
|
|
4200
|
-
case'Number':if(this.c(
|
|
4201
|
-
case'current':if(this.ck(
|
|
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
|
|
4205
|
-
case'following':this.ck(
|
|
4206
|
-
case'preceding':this.ck(
|
|
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
|
|
4210
|
-
case
|
|
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_(
|
|
4214
|
+
this.rule_(767,$next)
|
|
4217
4215
|
for(;;)switch(this.s){
|
|
4218
|
-
case
|
|
4219
|
-
case'#':if(this.c(
|
|
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
|
|
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_(
|
|
4232
|
+
this.rule_(770,$next)
|
|
4235
4233
|
for(;;)switch(this.s){
|
|
4236
|
-
case
|
|
4237
|
-
case
|
|
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_(
|
|
4246
|
+
this.rule_(773,$next)
|
|
4249
4247
|
for(;;)switch(this.s){
|
|
4250
|
-
case
|
|
4251
|
-
case
|
|
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_(
|
|
4261
|
+
this.rule_(776,$next)
|
|
4264
4262
|
for(;;)switch(this.s){
|
|
4265
|
-
case
|
|
4266
|
-
case
|
|
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_(
|
|
4275
|
+
this.rule_(779,$next)
|
|
4278
4276
|
for(;;)switch(this.s){
|
|
4279
|
-
case
|
|
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'
|
|
4286
|
-
|
|
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
|
|
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_(
|
|
4294
|
+
this.rule_(784,$next)
|
|
4297
4295
|
for(;;)switch(this.s){
|
|
4298
|
-
case
|
|
4299
|
-
case
|
|
4300
|
-
case':':this.gc(0,'annoInSameLine')&&this.c(
|
|
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
|
|
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_(
|
|
4310
|
+
this.rule_(788,$next)
|
|
4313
4311
|
for(;;)switch(this.s){
|
|
4314
|
-
case
|
|
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'
|
|
4321
|
-
|
|
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
|
|
4325
|
-
case
|
|
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_(
|
|
4334
|
+
this.rule_(794,$next)
|
|
4337
4335
|
for(;;)switch(this.s){
|
|
4338
|
-
case
|
|
4339
|
-
case'Id':if(this.ciA(
|
|
4340
|
-
case'@':if(this.c(
|
|
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
|
|
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'
|
|
4350
|
-
|
|
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
|
|
4354
|
-
case
|
|
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_(
|
|
4362
|
+
this.rule_(801,$next)
|
|
4365
4363
|
for(;;)switch(this.s){
|
|
4366
|
-
case
|
|
4367
|
-
case
|
|
4368
|
-
case
|
|
4369
|
-
case'.':this.c(
|
|
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
|
|
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_(
|
|
4380
|
+
this.rule_(806,$next)
|
|
4383
4381
|
for(;;)switch(this.s){
|
|
4384
|
-
case
|
|
4385
|
-
case
|
|
4386
|
-
case':':this.c(
|
|
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
|
|
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_(
|
|
4396
|
+
this.rule_(810,$next)
|
|
4399
4397
|
for(;;)switch(this.s){
|
|
4400
|
-
case
|
|
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(
|
|
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(
|
|
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(
|
|
4407
|
-
case'(':this.c(
|
|
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
|
|
4411
|
-
case
|
|
4412
|
-
case'Id':case'@':if(this.annoStructValue(_={},
|
|
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=
|
|
4412
|
+
default:this.s=814;continue
|
|
4415
4413
|
}
|
|
4416
|
-
case
|
|
4417
|
-
case',':this.c(
|
|
4418
|
-
case'}':this.s=
|
|
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
|
|
4422
|
-
case
|
|
4423
|
-
case
|
|
4424
|
-
case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},
|
|
4425
|
-
case'...':if(this.gc(
|
|
4426
|
-
default:this.s=
|
|
4427
|
-
}
|
|
4428
|
-
case
|
|
4429
|
-
case'up':this.ck(
|
|
4430
|
-
default:this.s=
|
|
4431
|
-
}
|
|
4432
|
-
case
|
|
4433
|
-
case
|
|
4434
|
-
case
|
|
4435
|
-
case',':this.c(
|
|
4436
|
-
case']':this.s=
|
|
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
|
|
4440
|
-
case
|
|
4441
|
-
case
|
|
4442
|
-
case
|
|
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_()
|