@sap/cds-compiler 5.5.0 → 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 +17 -1
- package/bin/cdsse.js +3 -0
- package/lib/base/message-registry.js +2 -0
- package/lib/checks/cdsMap.js +27 -0
- package/lib/checks/validator.js +3 -1
- package/lib/compiler/builtins.js +2 -0
- package/lib/compiler/define.js +1 -0
- package/lib/edm/annotations/vocabularyDefinitions.js +6 -0
- package/lib/gen/BaseParser.js +115 -76
- package/lib/gen/CdlParser.js +1106 -1104
- package/lib/gen/Dictionary.json +185 -6
- package/lib/model/cloneCsn.js +1 -5
- package/lib/parsers/AstBuildingParser.js +94 -50
- package/lib/parsers/CdlGrammar.g4 +55 -29
- package/lib/transform/db/expansion.js +3 -0
- package/lib/transform/forOdata.js +1 -1
- package/lib/transform/odata/createForeignKeys.js +92 -9
- package/lib/utils/objectUtils.js +13 -0
- 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,765],'#':'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],
|
|
@@ -498,29 +498,29 @@ definitions:['ck',248,1],
|
|
|
498
498
|
{actions:[0,124],'':0},
|
|
499
499
|
[246,330],
|
|
500
500
|
{actions:[0,124],'':0},
|
|
501
|
-
[0,
|
|
501
|
+
[0,558],
|
|
502
502
|
[0,5],
|
|
503
503
|
'extendService',
|
|
504
504
|
['mk',251,'service'],
|
|
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,8 +553,8 @@ actions:['g',284,1],
|
|
|
553
553
|
[289,36],
|
|
554
554
|
{with:['ck',290],'':290},
|
|
555
555
|
['g',291],
|
|
556
|
-
{'@':[291,
|
|
557
|
-
{'{':[293,
|
|
556
|
+
{'@':[291,770],'':292},
|
|
557
|
+
{'{':[293,558],'':293},
|
|
558
558
|
{actions:[0,124],'':0},
|
|
559
559
|
'annotateActionsBlock',
|
|
560
560
|
['mk',296,'actions'],
|
|
@@ -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,11 +812,11 @@ 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,
|
|
818
|
-
{'{':[449,
|
|
819
|
-
{excluding:[0,
|
|
817
|
+
[448,512,,,,'afterBrace'],
|
|
818
|
+
{'{':[449,558],'':449},
|
|
819
|
+
{excluding:[0,551],'':0},
|
|
820
820
|
'queryExpression',
|
|
821
821
|
{
|
|
822
822
|
'(':['c',452],
|
|
@@ -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
|
{
|
|
@@ -842,7 +842,7 @@ from:['ck',463],
|
|
|
842
842
|
all:['ck',473,1],distinct:'all',
|
|
843
843
|
Id:473,'#':473,'(':473,'*':473,'+':473,'-':473,':':473,'?':473,'@':473,'{':473,key:473,not:473,case:473,cast:473,null:473,true:473,false:473,Number:473,String:473,exists:473,QuotedLiteral:473,
|
|
844
844
|
},
|
|
845
|
-
[464,
|
|
845
|
+
[464,481],
|
|
846
846
|
{mixin:['ck',465],'':470},
|
|
847
847
|
['m',466,'{'],
|
|
848
848
|
{Id:[467,203],'':468},
|
|
@@ -853,479 +853,478 @@ Id:473,'#':473,'(':473,'*':473,'+':473,'-':473,':':473,'?':473,'@':473,'{':473,k
|
|
|
853
853
|
['m',469,'}'],
|
|
854
854
|
['mk',470,'into'],
|
|
855
855
|
{all:['ck',471],distinct:'all','':471},
|
|
856
|
-
{'{':[472,
|
|
857
|
-
{excluding:[
|
|
856
|
+
{'{':[472,558],'':472},
|
|
857
|
+
{excluding:[479,551],'':479},
|
|
858
|
+
['g',474,,,'sqlStyle','inSelectItem'],
|
|
858
859
|
{
|
|
859
|
-
'*':['c',
|
|
860
|
-
Id:[
|
|
860
|
+
'*':['c',475],
|
|
861
|
+
Id:[475,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
861
862
|
},
|
|
862
|
-
{',':['c',
|
|
863
|
+
{',':['c',476],'':477},
|
|
863
864
|
{
|
|
864
|
-
'*':['c',
|
|
865
|
-
Id:[
|
|
865
|
+
'*':['c',475],
|
|
866
|
+
Id:[475,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
866
867
|
},
|
|
867
|
-
['mk',
|
|
868
|
-
[
|
|
869
|
-
{group:[0,
|
|
868
|
+
['mk',478,'from'],
|
|
869
|
+
[479,481],
|
|
870
|
+
{group:[0,603],where:'group',having:'group','':0},
|
|
870
871
|
'querySource',
|
|
871
|
-
[
|
|
872
|
-
{',':
|
|
873
|
-
{',':['c',
|
|
874
|
-
[
|
|
872
|
+
[482,486],
|
|
873
|
+
{',':483,'':0},
|
|
874
|
+
{',':['c',484],'':0},
|
|
875
|
+
[483,486],
|
|
875
876
|
'tableExpression',
|
|
876
877
|
{
|
|
877
|
-
'(':[
|
|
878
|
-
Id:[
|
|
878
|
+
'(':[487,499],
|
|
879
|
+
Id:[488,512],
|
|
879
880
|
},
|
|
880
|
-
['g',
|
|
881
|
+
['g',488],
|
|
881
882
|
{
|
|
882
|
-
cross:['ck',
|
|
883
|
-
inner:['ck',
|
|
884
|
-
full:['ck',
|
|
885
|
-
join:['ck',
|
|
883
|
+
cross:['ck',489],
|
|
884
|
+
inner:['ck',492],
|
|
885
|
+
full:['ck',491],left:'full',right:'full',
|
|
886
|
+
join:['ck',494],
|
|
886
887
|
'':0
|
|
887
888
|
},
|
|
888
|
-
['mk',
|
|
889
|
+
['mk',490,'join'],
|
|
889
890
|
{
|
|
890
|
-
'(':[
|
|
891
|
-
Id:[
|
|
891
|
+
'(':[488,499],
|
|
892
|
+
Id:[488,512],
|
|
892
893
|
},
|
|
893
|
-
{outer:['ck',
|
|
894
|
-
{one:[
|
|
895
|
-
['mk',
|
|
896
|
-
['g',
|
|
897
|
-
[
|
|
898
|
-
['mk',
|
|
899
|
-
[
|
|
894
|
+
{outer:['ck',492],'':492},
|
|
895
|
+
{one:[493,506],many:'one',exact:'one','':493},
|
|
896
|
+
['mk',494,'join'],
|
|
897
|
+
['g',495],
|
|
898
|
+
[496,486],
|
|
899
|
+
['mk',497,'on'],
|
|
900
|
+
[488,635],
|
|
900
901
|
'tableOrQueryParens',
|
|
901
|
-
['m',
|
|
902
|
+
['m',500,'(',,,'queryOnLeft'],
|
|
902
903
|
{
|
|
903
|
-
'(':[
|
|
904
|
-
Id:[
|
|
905
|
-
select:[
|
|
904
|
+
'(':[501,499],
|
|
905
|
+
Id:[502,486,,,'table','queryOnLeft'],
|
|
906
|
+
select:[502,451],
|
|
906
907
|
},
|
|
907
908
|
{
|
|
908
|
-
full:[
|
|
909
|
-
limit:[
|
|
910
|
-
'':
|
|
909
|
+
full:[502,487,,,'table','queryOnLeft'],join:'full',left:'full',cross:'full',inner:'full',right:'full',
|
|
910
|
+
limit:[502,454,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
|
|
911
|
+
'':502
|
|
911
912
|
},
|
|
912
|
-
['m',
|
|
913
|
+
['m',503,')'],
|
|
913
914
|
{
|
|
914
|
-
as:['ck',
|
|
915
|
+
as:['ck',504,,'queryOnLeft','table'],
|
|
915
916
|
Id:['ci',0,,'queryOnLeft','tableWithoutAs'],
|
|
916
917
|
'':0
|
|
917
918
|
},
|
|
918
919
|
['mi',0],
|
|
919
920
|
'joinCardinality',
|
|
920
921
|
{
|
|
921
|
-
exact:['ck',
|
|
922
|
-
one:
|
|
923
|
-
many:['ck',
|
|
922
|
+
exact:['ck',507],
|
|
923
|
+
one:507,
|
|
924
|
+
many:['ck',508],
|
|
924
925
|
},
|
|
925
|
-
['mk',
|
|
926
|
-
['mk',
|
|
926
|
+
['mk',508,'one'],
|
|
927
|
+
['mk',509,'to'],
|
|
927
928
|
{
|
|
928
|
-
exact:['ck',
|
|
929
|
-
one:
|
|
929
|
+
exact:['ck',510],
|
|
930
|
+
one:510,
|
|
930
931
|
many:['ck',0],
|
|
931
932
|
},
|
|
932
933
|
['mk',0,'one'],
|
|
933
934
|
'fromRefWithOptAlias',
|
|
934
|
-
[
|
|
935
|
-
{':':['c',
|
|
936
|
-
[
|
|
935
|
+
[513,519],
|
|
936
|
+
{':':['c',514],'':515},
|
|
937
|
+
[515,519],
|
|
937
938
|
{
|
|
938
|
-
as:['ck',
|
|
939
|
-
Id:['ci',0
|
|
940
|
-
'':
|
|
939
|
+
as:['ck',516],
|
|
940
|
+
Id:['ci',0],
|
|
941
|
+
'':517
|
|
941
942
|
},
|
|
942
943
|
['mi',0],
|
|
943
944
|
['g',0,[]],
|
|
944
945
|
'fromPath',
|
|
945
|
-
['mi',
|
|
946
|
-
{'(':[
|
|
947
|
-
{'.':['c',
|
|
948
|
-
['miA',
|
|
949
|
-
{'(':[
|
|
946
|
+
['mi',520],
|
|
947
|
+
{'(':[521,525],'[':'(','':521},
|
|
948
|
+
{'.':['c',522,,'notAfterEntityArgOrFilter'],'':0},
|
|
949
|
+
['miA',523],
|
|
950
|
+
{'(':[521,525],'[':'(','':521},
|
|
950
951
|
'fromArgumentsAndFilter',
|
|
951
|
-
{'(':['c',
|
|
952
|
-
{Id:
|
|
953
|
-
{Id:[
|
|
952
|
+
{'(':['c',526],'':530},
|
|
953
|
+
{Id:527},
|
|
954
|
+
{Id:[528,532],'':529},
|
|
954
955
|
{
|
|
955
|
-
',':['c',
|
|
956
|
-
')':
|
|
956
|
+
',':['c',527],
|
|
957
|
+
')':529,
|
|
957
958
|
},
|
|
958
|
-
['m',
|
|
959
|
-
{'[':[0,
|
|
959
|
+
['m',530,')'],
|
|
960
|
+
{'[':[0,536],'':0},
|
|
960
961
|
'fromNamedArgument',
|
|
961
|
-
['mi',
|
|
962
|
-
['m',
|
|
963
|
-
[0,
|
|
962
|
+
['mi',533],
|
|
963
|
+
['m',534,':'],
|
|
964
|
+
[0,643],
|
|
964
965
|
'cardinalityAndFilter',
|
|
965
|
-
['m',
|
|
966
|
-
{Number:['c',
|
|
967
|
-
['m',
|
|
968
|
-
[
|
|
966
|
+
['m',537,'['],
|
|
967
|
+
{Number:['c',538,,'beforeColon'],'':539},
|
|
968
|
+
['m',539,':'],
|
|
969
|
+
[540,542],
|
|
969
970
|
['m',0,']'],
|
|
970
971
|
'filterClauses',
|
|
971
972
|
{
|
|
972
|
-
where:['ck',
|
|
973
|
-
Id:
|
|
974
|
-
group:['g',
|
|
975
|
-
'':
|
|
973
|
+
where:['ck',543],
|
|
974
|
+
Id:543,'#':543,'(':543,'+':543,'-':543,':':543,'?':543,not:543,case:543,cast:543,null:543,true:543,false:543,Number:543,String:543,exists:543,QuotedLiteral:543,
|
|
975
|
+
group:['g',544,1],limit:'group',order:'group',having:'group',
|
|
976
|
+
'':544
|
|
976
977
|
},
|
|
977
|
-
[
|
|
978
|
-
{group:
|
|
979
|
-
[
|
|
980
|
-
{having:['ck',
|
|
981
|
-
[
|
|
982
|
-
{limit:
|
|
983
|
-
[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],
|
|
984
985
|
'excludingClause',
|
|
985
|
-
['mk',
|
|
986
|
-
['m',
|
|
987
|
-
{Id:
|
|
988
|
-
{Id:['ciA',
|
|
986
|
+
['mk',552,'excluding'],
|
|
987
|
+
['m',553,'{'],
|
|
988
|
+
{Id:554},
|
|
989
|
+
{Id:['ciA',555],'':556},
|
|
989
990
|
{
|
|
990
|
-
',':['c',
|
|
991
|
-
'}':
|
|
991
|
+
',':['c',554],
|
|
992
|
+
'}':556,
|
|
992
993
|
},
|
|
993
994
|
['m',0,'}',,,'afterBrace'],
|
|
994
995
|
'selectItemsList',
|
|
995
|
-
['m',
|
|
996
|
+
['m',559,'{',,'top','inSelectItem'],
|
|
996
997
|
{
|
|
997
|
-
'*':['c',
|
|
998
|
-
Id:[
|
|
999
|
-
'':
|
|
998
|
+
'*':['c',560],
|
|
999
|
+
Id:[560,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1000
|
+
'':561
|
|
1000
1001
|
},
|
|
1001
1002
|
{
|
|
1002
|
-
',':['c',
|
|
1003
|
-
'}':
|
|
1003
|
+
',':['c',559],
|
|
1004
|
+
'}':561,
|
|
1004
1005
|
},
|
|
1005
1006
|
['m',0,'}',,,'afterBrace'],
|
|
1006
1007
|
'nestedSelectItemsList',
|
|
1007
|
-
['m',
|
|
1008
|
+
['m',564,'{',,'nested','inSelectItem'],
|
|
1008
1009
|
{
|
|
1009
|
-
'*':['c',
|
|
1010
|
-
Id:[
|
|
1011
|
-
'':
|
|
1010
|
+
'*':['c',565],
|
|
1011
|
+
Id:[565,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1012
|
+
'':566
|
|
1012
1013
|
},
|
|
1013
1014
|
{
|
|
1014
|
-
',':['c',
|
|
1015
|
-
'}':
|
|
1015
|
+
',':['c',564],
|
|
1016
|
+
'}':566,
|
|
1016
1017
|
},
|
|
1017
1018
|
['m',0,'}',,,'afterBrace'],
|
|
1018
1019
|
'selectItemDef',
|
|
1019
|
-
{'@':[
|
|
1020
|
-
{virtual:['ck',
|
|
1021
|
-
|
|
1022
|
-
{
|
|
1023
|
-
Id:[571,641],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1024
|
-
'{':[578,562],
|
|
1025
|
-
},
|
|
1020
|
+
{'@':[568,773],'':569},
|
|
1021
|
+
{virtual:['ck',570,1,'modifierRestriction'],'':570},
|
|
1022
|
+
['g',571,,,'key','columnExpr'],
|
|
1023
|
+
{key:['ck',572,,'modifierRestriction'],'':572},
|
|
1026
1024
|
{
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
'':573
|
|
1025
|
+
Id:[573,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1026
|
+
'{':[580,563],
|
|
1030
1027
|
},
|
|
1031
|
-
['mi',573],
|
|
1032
1028
|
{
|
|
1033
|
-
'
|
|
1034
|
-
|
|
1035
|
-
'':
|
|
1029
|
+
as:['ck',574],
|
|
1030
|
+
Id:['ci',577],
|
|
1031
|
+
'.':['c',575],
|
|
1032
|
+
'':577
|
|
1036
1033
|
},
|
|
1037
|
-
[
|
|
1038
|
-
{excluding:[581,550],'':581},
|
|
1034
|
+
['mi',577],
|
|
1039
1035
|
{
|
|
1040
|
-
'{':[
|
|
1041
|
-
'*':['c',
|
|
1036
|
+
'{':[576,563],
|
|
1037
|
+
'*':['c',0],
|
|
1042
1038
|
},
|
|
1043
|
-
{excluding:[
|
|
1044
|
-
{
|
|
1045
|
-
[
|
|
1046
|
-
['
|
|
1047
|
-
['
|
|
1048
|
-
|
|
1049
|
-
|
|
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},
|
|
1050
1049
|
{
|
|
1051
|
-
type:[
|
|
1052
|
-
localized:['ck',
|
|
1053
|
-
Id:
|
|
1054
|
-
redirected:['ck',
|
|
1055
|
-
association:['ck',
|
|
1056
|
-
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'],
|
|
1057
1056
|
},
|
|
1058
|
-
[
|
|
1059
|
-
['mk',
|
|
1060
|
-
[
|
|
1057
|
+
[600,404],
|
|
1058
|
+
['mk',589,'to'],
|
|
1059
|
+
[590,40],
|
|
1061
1060
|
{
|
|
1062
|
-
on:['ck',
|
|
1063
|
-
'{':[
|
|
1064
|
-
'':
|
|
1061
|
+
on:['ck',591],
|
|
1062
|
+
'{':[600,193],
|
|
1063
|
+
'':600
|
|
1065
1064
|
},
|
|
1066
|
-
[
|
|
1067
|
-
{'[':[591,426],'':591},
|
|
1068
|
-
['mk',594,'to'],
|
|
1065
|
+
[600,635],
|
|
1069
1066
|
{'[':[593,426],'':593},
|
|
1070
|
-
['mk',
|
|
1071
|
-
{
|
|
1072
|
-
[596,
|
|
1073
|
-
['
|
|
1074
|
-
[598,
|
|
1075
|
-
['
|
|
1076
|
-
|
|
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},
|
|
1077
1076
|
'whereGroupByHaving',
|
|
1078
|
-
{where:['ck',
|
|
1079
|
-
[
|
|
1080
|
-
{group:[
|
|
1081
|
-
{having:['ck',
|
|
1082
|
-
[0,
|
|
1077
|
+
{where:['ck',604],'':605},
|
|
1078
|
+
[605,635],
|
|
1079
|
+
{group:[606,609],'':606},
|
|
1080
|
+
{having:['ck',607],'':0},
|
|
1081
|
+
[0,635],
|
|
1083
1082
|
'groupByClause',
|
|
1084
|
-
['mk',
|
|
1085
|
-
['mk',
|
|
1086
|
-
[
|
|
1087
|
-
{',':['c',
|
|
1088
|
-
[
|
|
1083
|
+
['mk',610,'group'],
|
|
1084
|
+
['mk',611,'by'],
|
|
1085
|
+
[612,643],
|
|
1086
|
+
{',':['c',613],'':0},
|
|
1087
|
+
[612,643],
|
|
1089
1088
|
'orderByLimitOffset',
|
|
1090
|
-
{order:[
|
|
1091
|
-
{limit:['ck',
|
|
1092
|
-
[
|
|
1093
|
-
{offset:['ck',
|
|
1094
|
-
[0,
|
|
1089
|
+
{order:[616,621],'':616},
|
|
1090
|
+
{limit:['ck',617],'':0},
|
|
1091
|
+
[618,643],
|
|
1092
|
+
{offset:['ck',619],'':0},
|
|
1093
|
+
[0,643],
|
|
1095
1094
|
'orderByClause',
|
|
1096
|
-
['mk',
|
|
1097
|
-
['mk',
|
|
1098
|
-
[
|
|
1099
|
-
{',':['c',
|
|
1100
|
-
[
|
|
1095
|
+
['mk',622,'order'],
|
|
1096
|
+
['mk',623,'by'],
|
|
1097
|
+
[624,627],
|
|
1098
|
+
{',':['c',625],'':0},
|
|
1099
|
+
[624,627],
|
|
1101
1100
|
'orderByExpression',
|
|
1102
|
-
[
|
|
1103
|
-
{asc:['ck',
|
|
1104
|
-
{nulls:['ck',
|
|
1101
|
+
[628,643],
|
|
1102
|
+
{asc:['ck',629],desc:'asc','':629},
|
|
1103
|
+
{nulls:['ck',630],'':0},
|
|
1105
1104
|
{last:['ck',0],first:'last'},
|
|
1106
1105
|
'conditionEOF',
|
|
1107
|
-
[
|
|
1106
|
+
[633,643],
|
|
1108
1107
|
['m',0,'EOF'],
|
|
1109
1108
|
'condition',
|
|
1110
|
-
[0,
|
|
1109
|
+
[0,643],
|
|
1111
1110
|
'valuePath',
|
|
1112
|
-
['mi',
|
|
1113
|
-
{'(':[
|
|
1114
|
-
{'.':['c',
|
|
1115
|
-
['miA',
|
|
1116
|
-
{'(':[
|
|
1111
|
+
['mi',638],
|
|
1112
|
+
{'(':[639,704],'[':'(','':639},
|
|
1113
|
+
{'.':['c',640,,'isDotForPath'],'':0},
|
|
1114
|
+
['miA',641],
|
|
1115
|
+
{'(':[639,704],'[':'(','':639},
|
|
1117
1116
|
'expression',
|
|
1118
1117
|
{
|
|
1119
|
-
'(':[
|
|
1120
|
-
'#':[
|
|
1121
|
-
':':['c',
|
|
1122
|
-
'?':['c',
|
|
1123
|
-
Id:[
|
|
1124
|
-
new:[
|
|
1125
|
-
exists:['ck',
|
|
1126
|
-
case:[
|
|
1127
|
-
cast:[
|
|
1128
|
-
'+':['c',
|
|
1129
|
-
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],
|
|
1130
1129
|
},
|
|
1131
|
-
['g',
|
|
1130
|
+
['g',654],
|
|
1132
1131
|
{
|
|
1133
|
-
Id:['ciA',
|
|
1134
|
-
Number:['c',
|
|
1132
|
+
Id:['ciA',646],
|
|
1133
|
+
Number:['c',654,,'hide_'],
|
|
1135
1134
|
},
|
|
1136
|
-
{'.':[
|
|
1137
|
-
{over:['ck',
|
|
1138
|
-
[
|
|
1139
|
-
['g',
|
|
1135
|
+
{'.':[654,639],'':654},
|
|
1136
|
+
{over:['ck',648],'':649},
|
|
1137
|
+
[649,731],
|
|
1138
|
+
['g',654],
|
|
1140
1139
|
{
|
|
1141
|
-
'(':['c',
|
|
1142
|
-
Id:[
|
|
1143
|
-
'?':['c',
|
|
1140
|
+
'(':['c',651],
|
|
1141
|
+
Id:[654,637],
|
|
1142
|
+
'?':['c',654,,'hide_'],
|
|
1144
1143
|
},
|
|
1145
|
-
[
|
|
1146
|
-
['m',
|
|
1147
|
-
[
|
|
1144
|
+
[652,451],
|
|
1145
|
+
['m',654,')'],
|
|
1146
|
+
[654,643],
|
|
1148
1147
|
{
|
|
1149
|
-
'*':['c',
|
|
1150
|
-
'+':['c',
|
|
1151
|
-
'||':['c',
|
|
1152
|
-
and:['ck',
|
|
1153
|
-
or:['ck',
|
|
1154
|
-
'?':['c',
|
|
1155
|
-
'<':['c',
|
|
1156
|
-
is:['ck',
|
|
1157
|
-
not:['ck',
|
|
1158
|
-
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',
|
|
1159
1158
|
'':0
|
|
1160
1159
|
},
|
|
1161
|
-
[
|
|
1162
|
-
['m',
|
|
1163
|
-
{all:['ck',
|
|
1164
|
-
[
|
|
1165
|
-
{not:['ck',
|
|
1166
|
-
['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'],
|
|
1167
1166
|
{
|
|
1168
|
-
between:['ck',
|
|
1169
|
-
in:['ck',
|
|
1170
|
-
like:['ck',
|
|
1167
|
+
between:['ck',662],
|
|
1168
|
+
in:['ck',665],
|
|
1169
|
+
like:['ck',666],
|
|
1171
1170
|
},
|
|
1172
|
-
[
|
|
1173
|
-
['mk',
|
|
1174
|
-
[
|
|
1175
|
-
[
|
|
1176
|
-
[
|
|
1177
|
-
{escape:['ck',
|
|
1178
|
-
[
|
|
1179
|
-
['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],
|
|
1180
1179
|
'expressionOrQueryParens',
|
|
1181
|
-
['m',
|
|
1180
|
+
['m',672,'(',,,'queryOnLeft'],
|
|
1182
1181
|
{
|
|
1183
|
-
'(':[671
|
|
1184
|
-
Id:[
|
|
1185
|
-
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],
|
|
1186
1185
|
},
|
|
1187
1186
|
{
|
|
1188
|
-
'*':[
|
|
1189
|
-
',':[
|
|
1190
|
-
limit:[
|
|
1191
|
-
'':
|
|
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
|
|
1192
1191
|
},
|
|
1193
|
-
{',':[
|
|
1194
|
-
{',':[
|
|
1192
|
+
{',':[676,678],'':676},
|
|
1193
|
+
{',':[676,678],'':676},
|
|
1195
1194
|
['m',0,')'],
|
|
1196
1195
|
'continueExpressionslist',
|
|
1197
|
-
['m',
|
|
1198
|
-
{Id:
|
|
1199
|
-
{Id:[
|
|
1200
|
-
{',':['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},
|
|
1201
1200
|
'newAndValuePath',
|
|
1202
|
-
['mk',
|
|
1203
|
-
[0,
|
|
1201
|
+
['mk',684,'new'],
|
|
1202
|
+
[0,637],
|
|
1204
1203
|
'caseExpression',
|
|
1205
|
-
['mk',
|
|
1204
|
+
['mk',687,'case'],
|
|
1206
1205
|
{
|
|
1207
|
-
Id:[
|
|
1208
|
-
when:['g',
|
|
1209
|
-
'':
|
|
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
|
|
1210
1209
|
},
|
|
1211
|
-
{when:
|
|
1212
|
-
{when:['ck',
|
|
1213
|
-
[
|
|
1214
|
-
['mk',
|
|
1215
|
-
[
|
|
1216
|
-
{else:['ck',
|
|
1217
|
-
[
|
|
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],
|
|
1218
1217
|
['mk',0,'end'],
|
|
1219
1218
|
'castFunction',
|
|
1220
|
-
['mk',
|
|
1221
|
-
['m',
|
|
1222
|
-
[
|
|
1223
|
-
['mk',
|
|
1224
|
-
[
|
|
1219
|
+
['mk',698,'cast'],
|
|
1220
|
+
['m',699,'('],
|
|
1221
|
+
[700,643],
|
|
1222
|
+
['mk',701,'as'],
|
|
1223
|
+
[702,404],
|
|
1225
1224
|
['m',0,')'],
|
|
1226
1225
|
'argumentsAndFilter',
|
|
1227
|
-
{'(':['c',
|
|
1228
|
-
{Id:['ciA',
|
|
1229
|
-
{Id:[
|
|
1230
|
-
{',':['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},
|
|
1231
1230
|
{
|
|
1232
|
-
Id:[
|
|
1233
|
-
')':['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:')',
|
|
1234
1233
|
},
|
|
1235
|
-
{order:['ck',
|
|
1236
|
-
['mk',
|
|
1237
|
-
[
|
|
1234
|
+
{order:['ck',710],'':723},
|
|
1235
|
+
['mk',711,'by'],
|
|
1236
|
+
[723,746],
|
|
1238
1237
|
{
|
|
1239
|
-
':':['c',
|
|
1240
|
-
'=>':['c',
|
|
1238
|
+
':':['c',713],
|
|
1239
|
+
'=>':['c',718],
|
|
1241
1240
|
},
|
|
1242
|
-
[
|
|
1243
|
-
{',':['c',
|
|
1241
|
+
[714,643],
|
|
1242
|
+
{',':['c',715],'':723},
|
|
1244
1243
|
{
|
|
1245
|
-
Id:['ciA',
|
|
1246
|
-
')':
|
|
1244
|
+
Id:['ciA',716],
|
|
1245
|
+
')':723,
|
|
1247
1246
|
},
|
|
1248
|
-
['m',
|
|
1249
|
-
[
|
|
1250
|
-
[
|
|
1251
|
-
{',':['c',
|
|
1247
|
+
['m',717,':'],
|
|
1248
|
+
[714,643],
|
|
1249
|
+
[719,643],
|
|
1250
|
+
{',':['c',720],'':723},
|
|
1252
1251
|
{
|
|
1253
|
-
Id:['ciA',
|
|
1254
|
-
')':
|
|
1252
|
+
Id:['ciA',721],
|
|
1253
|
+
')':723,
|
|
1255
1254
|
},
|
|
1256
|
-
['m',
|
|
1257
|
-
[
|
|
1258
|
-
['m',
|
|
1259
|
-
{'[':[0,
|
|
1255
|
+
['m',722,'=>'],
|
|
1256
|
+
[719,643],
|
|
1257
|
+
['m',724,')'],
|
|
1258
|
+
{'[':[0,536],'':0},
|
|
1260
1259
|
'funcExpression',
|
|
1261
1260
|
{
|
|
1262
1261
|
' lookahead':'lGenericIntroOrExpr',
|
|
1263
|
-
Id:[
|
|
1264
|
-
GenericExpr:['ckA',
|
|
1265
|
-
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],
|
|
1266
1265
|
},
|
|
1267
|
-
[
|
|
1266
|
+
[728,643],
|
|
1268
1267
|
{
|
|
1269
1268
|
' lookahead':'lGenericSeparator',
|
|
1270
|
-
GenericSeparator:['ckA',
|
|
1269
|
+
GenericSeparator:['ckA',729],
|
|
1271
1270
|
'':0
|
|
1272
1271
|
},
|
|
1273
1272
|
{
|
|
1274
1273
|
' lookahead':'lGenericExpr',
|
|
1275
|
-
Id:[
|
|
1276
|
-
GenericExpr:['ckA',
|
|
1274
|
+
Id:[728,643],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1275
|
+
GenericExpr:['ckA',728],
|
|
1277
1276
|
},
|
|
1278
1277
|
'overClause',
|
|
1279
|
-
['m',
|
|
1280
|
-
{partition:['ck',
|
|
1281
|
-
['mk',
|
|
1282
|
-
[
|
|
1283
|
-
{order:['ck',
|
|
1284
|
-
['mk',
|
|
1285
|
-
[
|
|
1286
|
-
{rows:['ck',
|
|
1287
|
-
[
|
|
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],
|
|
1288
1287
|
['m',0,')'],
|
|
1289
1288
|
'expressionsAsXpr',
|
|
1290
|
-
[
|
|
1291
|
-
{',':['c',
|
|
1292
|
-
[
|
|
1289
|
+
[743,643],
|
|
1290
|
+
{',':['c',744],'':0},
|
|
1291
|
+
[743,643],
|
|
1293
1292
|
'orderByClauseAsXpr',
|
|
1294
|
-
[
|
|
1295
|
-
{',':['c',
|
|
1296
|
-
[
|
|
1293
|
+
[747,750],
|
|
1294
|
+
{',':['c',748],'':0},
|
|
1295
|
+
[747,750],
|
|
1297
1296
|
'orderBySpecAsXpr',
|
|
1298
|
-
[
|
|
1299
|
-
{asc:['ck',
|
|
1300
|
-
{nulls:['ck',
|
|
1297
|
+
[751,643],
|
|
1298
|
+
{asc:['ck',752],desc:'asc','':752},
|
|
1299
|
+
{nulls:['ck',753],'':0},
|
|
1301
1300
|
{last:['ck',0],first:'last'},
|
|
1302
1301
|
'windowFrameClause',
|
|
1303
1302
|
{
|
|
1304
|
-
unbounded:['ck',
|
|
1305
|
-
Number:['c',
|
|
1306
|
-
current:['ck',
|
|
1307
|
-
between:['ck',
|
|
1303
|
+
unbounded:['ck',756],
|
|
1304
|
+
Number:['c',756],
|
|
1305
|
+
current:['ck',757],
|
|
1306
|
+
between:['ck',758],
|
|
1308
1307
|
},
|
|
1309
1308
|
['mk',0,'preceding'],
|
|
1310
1309
|
['mk',0,'row'],
|
|
1311
|
-
[
|
|
1312
|
-
['mk',
|
|
1313
|
-
[0,
|
|
1310
|
+
[759,762],
|
|
1311
|
+
['mk',760,'and'],
|
|
1312
|
+
[0,762],
|
|
1314
1313
|
'windowFrameBoundSpec',
|
|
1315
1314
|
{
|
|
1316
|
-
unbounded:['ck',
|
|
1317
|
-
Number:['c',
|
|
1318
|
-
current:['ck',
|
|
1315
|
+
unbounded:['ck',763],
|
|
1316
|
+
Number:['c',763],
|
|
1317
|
+
current:['ck',765],
|
|
1319
1318
|
},
|
|
1320
1319
|
{
|
|
1321
|
-
following:['ck',
|
|
1322
|
-
preceding:['ck',
|
|
1320
|
+
following:['ck',764],
|
|
1321
|
+
preceding:['ck',764],
|
|
1323
1322
|
},
|
|
1324
1323
|
['g',0,[]],
|
|
1325
1324
|
['mk',0,'row'],
|
|
1326
1325
|
'literalValue',
|
|
1327
1326
|
{
|
|
1328
|
-
'#':['c',
|
|
1327
|
+
'#':['c',768],
|
|
1329
1328
|
null:['ck',0],
|
|
1330
1329
|
true:['ck',0],false:'true',
|
|
1331
1330
|
Number:['c',0],
|
|
@@ -1334,98 +1333,98 @@ QuotedLiteral:['c',0],
|
|
|
1334
1333
|
},
|
|
1335
1334
|
['mi',0],
|
|
1336
1335
|
'annoAssignStd',
|
|
1337
|
-
['m',
|
|
1336
|
+
['m',771,'@',,,'annoInSameLine'],
|
|
1338
1337
|
{
|
|
1339
|
-
'(':[0,
|
|
1340
|
-
Id:[0,
|
|
1338
|
+
'(':[0,779],
|
|
1339
|
+
Id:[0,784],
|
|
1341
1340
|
},
|
|
1342
1341
|
'annoAssignCol',
|
|
1343
|
-
['m',
|
|
1342
|
+
['m',774,'@'],
|
|
1344
1343
|
{
|
|
1345
|
-
'(':[0,
|
|
1346
|
-
Id:[0,
|
|
1344
|
+
'(':[0,779],
|
|
1345
|
+
Id:[0,784],
|
|
1347
1346
|
},
|
|
1348
1347
|
'annoAssignMid',
|
|
1349
|
-
['m',
|
|
1348
|
+
['m',777,'@',,,'annoInSameLine'],
|
|
1350
1349
|
{
|
|
1351
|
-
'(':[0,
|
|
1352
|
-
Id:[0,
|
|
1350
|
+
'(':[0,779],
|
|
1351
|
+
Id:[0,788],
|
|
1353
1352
|
},
|
|
1354
1353
|
'annoAssignParen',
|
|
1355
|
-
['m',
|
|
1356
|
-
{Id:[
|
|
1354
|
+
['m',780,'(',,,'annoInSameLine'],
|
|
1355
|
+
{Id:[781,784],'':782},
|
|
1357
1356
|
{
|
|
1358
|
-
',':['c',
|
|
1359
|
-
')':
|
|
1357
|
+
',':['c',780],
|
|
1358
|
+
')':782,
|
|
1360
1359
|
},
|
|
1361
1360
|
['m',0,')'],
|
|
1362
1361
|
'annoAssignBase',
|
|
1363
|
-
[
|
|
1364
|
-
{':':['c',
|
|
1365
|
-
[0,
|
|
1362
|
+
[785,788],
|
|
1363
|
+
{':':['c',786,,'annoInSameLine'],'':0},
|
|
1364
|
+
[0,810],
|
|
1366
1365
|
'annoNamePath',
|
|
1367
|
-
['miA',
|
|
1368
|
-
{'.':['c',
|
|
1366
|
+
['miA',789],
|
|
1367
|
+
{'.':['c',790],'':792},
|
|
1369
1368
|
{
|
|
1370
|
-
Id:['ciA',
|
|
1371
|
-
'@':['c',
|
|
1369
|
+
Id:['ciA',789],
|
|
1370
|
+
'@':['c',791],
|
|
1372
1371
|
},
|
|
1373
|
-
['miA',
|
|
1374
|
-
{'#':[0,
|
|
1372
|
+
['miA',789],
|
|
1373
|
+
{'#':[0,801,,'annoInSameLine'],'':0},
|
|
1375
1374
|
'annoPath',
|
|
1376
1375
|
{
|
|
1377
|
-
Id:['ciA',
|
|
1378
|
-
'@':['c',
|
|
1376
|
+
Id:['ciA',796],
|
|
1377
|
+
'@':['c',795],
|
|
1379
1378
|
},
|
|
1380
|
-
['miA',
|
|
1381
|
-
{'.':['c',
|
|
1379
|
+
['miA',796],
|
|
1380
|
+
{'.':['c',797],'':799},
|
|
1382
1381
|
{
|
|
1383
|
-
Id:['ciA',
|
|
1384
|
-
'@':['c',
|
|
1382
|
+
Id:['ciA',796],
|
|
1383
|
+
'@':['c',798],
|
|
1385
1384
|
},
|
|
1386
|
-
['miA',
|
|
1387
|
-
{'#':[0,
|
|
1385
|
+
['miA',796],
|
|
1386
|
+
{'#':[0,801],'':0},
|
|
1388
1387
|
'annoPathVariant',
|
|
1389
|
-
['m',
|
|
1390
|
-
['miA',
|
|
1391
|
-
{'.':['c',
|
|
1392
|
-
['miA',
|
|
1388
|
+
['m',802,'#'],
|
|
1389
|
+
['miA',803],
|
|
1390
|
+
{'.':['c',804],'':0},
|
|
1391
|
+
['miA',803],
|
|
1393
1392
|
'annoStructValue',
|
|
1394
|
-
[
|
|
1395
|
-
{':':['c',
|
|
1396
|
-
[0,
|
|
1393
|
+
[807,794],
|
|
1394
|
+
{':':['c',808],'':0},
|
|
1395
|
+
[0,810],
|
|
1397
1396
|
'annoValue',
|
|
1398
1397
|
{
|
|
1399
|
-
'#':[0,
|
|
1400
|
-
'+':['c',
|
|
1401
|
-
Id:[0,
|
|
1402
|
-
'{':['c',
|
|
1403
|
-
'[':['c',
|
|
1404
|
-
'(':['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],
|
|
1405
1404
|
},
|
|
1406
1405
|
['m',0,'Number'],
|
|
1407
|
-
{Id:[
|
|
1406
|
+
{Id:[813,806],'@':'Id','':814},
|
|
1408
1407
|
{
|
|
1409
|
-
',':['c',
|
|
1410
|
-
'}':
|
|
1408
|
+
',':['c',812],
|
|
1409
|
+
'}':814,
|
|
1411
1410
|
},
|
|
1412
|
-
['g',
|
|
1411
|
+
['g',815],
|
|
1413
1412
|
['m',0,'}'],
|
|
1414
1413
|
{
|
|
1415
|
-
Id:[
|
|
1416
|
-
'...':['c',
|
|
1417
|
-
'':
|
|
1414
|
+
Id:[820,810],'#':'Id','(':'Id','+':'Id','-':'Id','@':'Id','[':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1415
|
+
'...':['c',817,,'arrayAnno','ellipsis'],
|
|
1416
|
+
'':821
|
|
1418
1417
|
},
|
|
1419
|
-
{up:['ck',
|
|
1420
|
-
['mk',
|
|
1421
|
-
[
|
|
1422
|
-
['g',819],
|
|
1418
|
+
{up:['ck',818],'':820},
|
|
1419
|
+
['mk',819,'to'],
|
|
1420
|
+
[820,810],
|
|
1423
1421
|
{
|
|
1424
|
-
',':['c',
|
|
1425
|
-
']':
|
|
1422
|
+
',':['c',816],
|
|
1423
|
+
']':821,
|
|
1426
1424
|
},
|
|
1425
|
+
['g',822],
|
|
1427
1426
|
['m',0,']'],
|
|
1428
|
-
[
|
|
1427
|
+
[824,635],
|
|
1429
1428
|
['m',0,')'],
|
|
1430
1429
|
]
|
|
1431
1430
|
class CdlParser extends AstBuildingParser{
|
|
@@ -1689,7 +1688,7 @@ this.rule_(64,$next)
|
|
|
1689
1688
|
for(;;)switch(this.s){
|
|
1690
1689
|
case 64:switch(this.lk()){
|
|
1691
1690
|
case'aspect':this.ck(66);continue
|
|
1692
|
-
case'abstract':if(this.ck(65)){ this.warning( 'syntax-deprecated-abstract', this.lb().
|
|
1691
|
+
case'abstract':if(this.ck(65)){ this.warning( 'syntax-deprecated-abstract', this.combineLocation( this.lb(), this.la() ) ); }continue
|
|
1693
1692
|
default:this.e();continue
|
|
1694
1693
|
}
|
|
1695
1694
|
case 65:this.mk(66,'entity');continue
|
|
@@ -2218,7 +2217,7 @@ default:this.s=209;continue
|
|
|
2218
2217
|
}
|
|
2219
2218
|
case 209:this.mk(210,'of');continue
|
|
2220
2219
|
case 210:switch(this.lk()){
|
|
2221
|
-
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
|
|
2222
2221
|
default:this.s=211;continue
|
|
2223
2222
|
}
|
|
2224
2223
|
case 211:if(this.simplePath(_={category:'artref'},212)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
|
|
@@ -2272,8 +2271,9 @@ case 226:switch(this.lk()){
|
|
|
2272
2271
|
case'actions':this.annotateActionsBlock({art:$.art},0);continue
|
|
2273
2272
|
default:this.gr([';']);continue
|
|
2274
2273
|
}
|
|
2274
|
+
case 0:{ this.checkWith( keyword ); }
|
|
2275
2275
|
default:
|
|
2276
|
-
this.
|
|
2276
|
+
this.attachLocation( $.art )
|
|
2277
2277
|
return this.exit_()
|
|
2278
2278
|
}
|
|
2279
2279
|
}
|
|
@@ -2354,8 +2354,9 @@ default:this.gr([';']);continue
|
|
|
2354
2354
|
}
|
|
2355
2355
|
case 247:this.selectItemsList({query:$.art,start:this.lb()},0);continue
|
|
2356
2356
|
case 248:this.artifactsBlock({art:$.art,start:this.lb()},0);continue
|
|
2357
|
+
case 0:{ this.checkWith( keyword ); }
|
|
2357
2358
|
default:
|
|
2358
|
-
this.
|
|
2359
|
+
this.attachLocation( $.art )
|
|
2359
2360
|
return this.exit_()
|
|
2360
2361
|
}
|
|
2361
2362
|
}
|
|
@@ -2843,7 +2844,7 @@ default:this.s=370;continue
|
|
|
2843
2844
|
}
|
|
2844
2845
|
case 370:this.mk(371,'to');continue
|
|
2845
2846
|
case 371:switch(this.lk()){
|
|
2846
|
-
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
|
|
2847
2848
|
default:this.s=372;continue
|
|
2848
2849
|
}
|
|
2849
2850
|
case 372:this.typeAssocProperties({art:$.art,assoc,card},0);continue
|
|
@@ -2853,7 +2854,7 @@ default:this.s=374;continue
|
|
|
2853
2854
|
}
|
|
2854
2855
|
case 374:this.mk(375,'of');continue
|
|
2855
2856
|
case 375:switch(this.lk()){
|
|
2856
|
-
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
|
|
2857
2858
|
default:this.s=376;continue
|
|
2858
2859
|
}
|
|
2859
2860
|
case 376:switch(this.l()){
|
|
@@ -3113,10 +3114,9 @@ $.query??={}
|
|
|
3113
3114
|
let tab;let _
|
|
3114
3115
|
this.rule_(445,$next)
|
|
3115
3116
|
for(;;)switch(this.s){
|
|
3116
|
-
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
|
|
3117
3118
|
case 446:this.mk(447,'on');continue
|
|
3118
|
-
case 447:if(this.fromRefWithOptAlias(_={},448)){tab=_.expr;
|
|
3119
|
-
$.query.from = tab; }continue
|
|
3119
|
+
case 447:if(this.fromRefWithOptAlias(_={},448)){tab=_.expr;this.afterBrace(); $.query.from = tab; }continue
|
|
3120
3120
|
case 448:switch(this.l()){
|
|
3121
3121
|
case'{':this.selectItemsList({query:$.query,start:undefined},449);continue
|
|
3122
3122
|
default:this.s=449;continue
|
|
@@ -3207,26 +3207,27 @@ case'{':this.selectItemsList({query:$.query,start:undefined},472);continue
|
|
|
3207
3207
|
default:this.s=472;continue
|
|
3208
3208
|
}
|
|
3209
3209
|
case 472:switch(this.lk()){
|
|
3210
|
-
case'excluding':this.excludingClause({query:$.query},
|
|
3211
|
-
default:this.s=
|
|
3212
|
-
}
|
|
3213
|
-
case 473:switch(this.l()){
|
|
3214
|
-
case'*':if(this.c(474)){ $.query.columns = [ this.valueWithLocation() ]; }continue
|
|
3215
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:($.query.columns = [])},474);continue
|
|
3216
|
-
default:this.e();continue
|
|
3210
|
+
case'excluding':this.excludingClause({query:$.query},479);continue
|
|
3211
|
+
default:this.s=479;continue
|
|
3217
3212
|
}
|
|
3213
|
+
case 473:this.s=474;{this.inSelectItem(0,'sqlStyle'); ; }continue
|
|
3218
3214
|
case 474:switch(this.l()){
|
|
3219
|
-
case'
|
|
3220
|
-
|
|
3215
|
+
case'*':if(this.c(475)){ $.query.columns = [ this.valueWithLocation() ]; }continue
|
|
3216
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:($.query.columns = [])},475);continue
|
|
3217
|
+
default:this.e();continue
|
|
3221
3218
|
}
|
|
3222
3219
|
case 475:switch(this.l()){
|
|
3223
|
-
case'
|
|
3224
|
-
|
|
3220
|
+
case',':this.c(476);continue
|
|
3221
|
+
default:this.s=477;continue
|
|
3222
|
+
}
|
|
3223
|
+
case 476:switch(this.l()){
|
|
3224
|
+
case'*':if(this.c(475)){ $.query.columns.push( this.valueWithLocation() ); }continue
|
|
3225
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},475);continue
|
|
3225
3226
|
default:this.e();continue
|
|
3226
3227
|
}
|
|
3227
|
-
case
|
|
3228
|
-
case
|
|
3229
|
-
case
|
|
3228
|
+
case 477:this.mk(478,'from');continue
|
|
3229
|
+
case 478:this.querySource({query:$.query},479);continue
|
|
3230
|
+
case 479:switch(this.lk()){
|
|
3230
3231
|
case'group':case'where':case'having':this.whereGroupByHaving({query:$.query},0);continue
|
|
3231
3232
|
default:this.gr(['limit','minus','order','union','except','intersect']);continue
|
|
3232
3233
|
}
|
|
@@ -3237,19 +3238,19 @@ return this.exit_()
|
|
|
3237
3238
|
}
|
|
3238
3239
|
querySource($,$next){
|
|
3239
3240
|
let tab;let _
|
|
3240
|
-
this.rule_(
|
|
3241
|
+
this.rule_(481,$next)
|
|
3241
3242
|
for(;;)switch(this.s){
|
|
3242
|
-
case
|
|
3243
|
-
case
|
|
3244
|
-
case',':this.s=
|
|
3243
|
+
case 481:if(this.tableExpression(_={},482)){tab=_.expr; $.query.from = tab; }continue
|
|
3244
|
+
case 482:switch(this.l()){
|
|
3245
|
+
case',':this.s=483;{ const { location } = this.la();
|
|
3245
3246
|
$.query.from = { op: { val: 'join', location }, join: { val: 'cross', location }, args: [tab] }; }continue
|
|
3246
3247
|
default:this.gr(['group','limit','minus','order','union','where','except','having','intersect']);continue
|
|
3247
3248
|
}
|
|
3248
|
-
case
|
|
3249
|
-
case',':this.c(
|
|
3249
|
+
case 483:switch(this.l()){
|
|
3250
|
+
case',':this.c(484);continue
|
|
3250
3251
|
default:this.gr(['group','limit','minus','order','union','where','except','having','intersect']);continue
|
|
3251
3252
|
}
|
|
3252
|
-
case
|
|
3253
|
+
case 484:if(this.tableExpression(_={},483)){tab=_.expr; $.query.from.args.push( tab ); }continue
|
|
3253
3254
|
case 0:
|
|
3254
3255
|
this.attachLocation($.query.from)
|
|
3255
3256
|
default:return this.exit_()
|
|
@@ -3258,91 +3259,91 @@ default:return this.exit_()
|
|
|
3258
3259
|
tableExpression($,$next,$startState){
|
|
3259
3260
|
$.expr??={}
|
|
3260
3261
|
let join;let tab;let card;let cond;let _
|
|
3261
|
-
this.rule_($startState??
|
|
3262
|
+
this.rule_($startState??486,$next)
|
|
3262
3263
|
for(;;)switch(this.s){
|
|
3263
|
-
case
|
|
3264
|
-
case'(':this.tableOrQueryParens($,
|
|
3265
|
-
case'Id':this.fromRefWithOptAlias($,
|
|
3264
|
+
case 486:switch(this.l()){
|
|
3265
|
+
case'(':this.tableOrQueryParens($,487);continue
|
|
3266
|
+
case'Id':this.fromRefWithOptAlias($,488);continue
|
|
3266
3267
|
default:this.e();continue
|
|
3267
3268
|
}
|
|
3268
|
-
case
|
|
3269
|
-
case
|
|
3270
|
-
case'cross':if(this.ck(
|
|
3271
|
-
case'inner':if(this.ck(
|
|
3272
|
-
case'full':case'left':case'right':if(this.ck(
|
|
3273
|
-
case'join':if(this.ck(
|
|
3269
|
+
case 487:this.s=488;{ $.expr = this.taggedIfQuery( $.expr ); }continue
|
|
3270
|
+
case 488:switch(this.lk()){
|
|
3271
|
+
case'cross':if(this.ck(489))join=this.lb();continue
|
|
3272
|
+
case'inner':if(this.ck(492))join=this.lb();continue
|
|
3273
|
+
case'full':case'left':case'right':if(this.ck(491))join=this.lb();continue
|
|
3274
|
+
case'join':if(this.ck(494)){ join = undefined; }continue
|
|
3274
3275
|
default:this.gr([]);continue
|
|
3275
3276
|
}
|
|
3276
|
-
case
|
|
3277
|
-
case
|
|
3278
|
-
case'(':if(this.tableOrQueryParens(_={},
|
|
3277
|
+
case 489:if(this.mk(490,'join')){ if ($.expr?.join?.val !== 'cross' || $.expr.$parens) $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( undefined, join ), args: [ $.expr ] }; }continue
|
|
3278
|
+
case 490:switch(this.l()){
|
|
3279
|
+
case'(':if(this.tableOrQueryParens(_={},488)){tab=_.expr; $.expr.args.push( this.taggedIfQuery( tab ) );
|
|
3279
3280
|
this.attachLocation( $.expr ); }continue
|
|
3280
|
-
case'Id':if(this.fromRefWithOptAlias(_={},
|
|
3281
|
+
case'Id':if(this.fromRefWithOptAlias(_={},488)){tab=_.expr; $.expr.args.push( tab );
|
|
3281
3282
|
this.attachLocation( $.expr ); }continue
|
|
3282
3283
|
default:this.e();continue
|
|
3283
3284
|
}
|
|
3284
|
-
case 490:switch(this.lk()){
|
|
3285
|
-
case'outer':this.ck(491);continue
|
|
3286
|
-
default:this.s=491;continue
|
|
3287
|
-
}
|
|
3288
3285
|
case 491:switch(this.lk()){
|
|
3289
|
-
case'
|
|
3286
|
+
case'outer':this.ck(492);continue
|
|
3290
3287
|
default:this.s=492;continue
|
|
3291
3288
|
}
|
|
3292
|
-
case 492:this.
|
|
3293
|
-
case
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
case
|
|
3289
|
+
case 492:switch(this.lk()){
|
|
3290
|
+
case'one':case'many':case'exact':this.joinCardinality(card={},493);continue
|
|
3291
|
+
default:this.s=493;continue
|
|
3292
|
+
}
|
|
3293
|
+
case 493:this.mk(494,'join');continue
|
|
3294
|
+
case 494:this.s=495;{ $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( join?.keyword || 'inner', join ), args: [ $.expr ] }; if (card) $.expr.cardinality = card; card = undefined; }continue
|
|
3295
|
+
case 495:if(this.tableExpression(_={},496)){tab=_.expr; $.expr.args.push( tab ); this.attachLocation( $.expr ); }continue
|
|
3296
|
+
case 496:this.mk(497,'on');continue
|
|
3297
|
+
case 497:if(this.condition(_={},488)){cond=_.expr; $.expr.on = cond;
|
|
3297
3298
|
this.attachLocation( $.expr ); }continue
|
|
3298
3299
|
default:return this.exit_()
|
|
3299
3300
|
}
|
|
3300
3301
|
}
|
|
3301
3302
|
tableOrQueryParens($,$next){
|
|
3302
3303
|
$.expr??=undefined
|
|
3303
|
-
this.rule_(
|
|
3304
|
+
this.rule_(499,$next)
|
|
3304
3305
|
for(;;)switch(this.s){
|
|
3305
|
-
case
|
|
3306
|
-
case
|
|
3307
|
-
case'(':this.tableOrQueryParens($,
|
|
3308
|
-
case'Id':if(this.tableExpression($,
|
|
3309
|
-
case'select':this.queryExpression($,
|
|
3306
|
+
case 499:if(this.m(500,'(')){this.queryOnLeft()}continue;
|
|
3307
|
+
case 500:switch(this.lk()){
|
|
3308
|
+
case'(':this.tableOrQueryParens($,501);continue
|
|
3309
|
+
case'Id':if(this.tableExpression($,502)){this.queryOnLeft(0,'table')}continue;
|
|
3310
|
+
case'select':this.queryExpression($,502);continue
|
|
3310
3311
|
default:this.ei();continue
|
|
3311
3312
|
}
|
|
3312
|
-
case
|
|
3313
|
-
case'full':case'join':case'left':case'cross':case'inner':case'right':if(this.tableExpression($,
|
|
3314
|
-
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(
|
|
3315
|
-
default:this.s=
|
|
3313
|
+
case 501:switch(this.lk()){
|
|
3314
|
+
case'full':case'join':case'left':case'cross':case'inner':case'right':if(this.tableExpression($,502,487)){this.queryOnLeft(0,'table')}continue;
|
|
3315
|
+
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(502,'queryOnLeft')&&this.queryExpression($,502,454);continue
|
|
3316
|
+
default:this.s=502;continue
|
|
3316
3317
|
}
|
|
3317
|
-
case
|
|
3318
|
-
case
|
|
3319
|
-
case'as':this.gc(0,'queryOnLeft','table')&&this.ck(
|
|
3318
|
+
case 502:if(this.m(503,')')){ this.surroundByParens( $.expr ); }continue
|
|
3319
|
+
case 503:switch(this.lk()){
|
|
3320
|
+
case'as':this.gc(0,'queryOnLeft','table')&&this.ck(504);continue
|
|
3320
3321
|
case'Id':if(this.gc(0,'queryOnLeft','tableWithoutAs')&&this.ci(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.fragileAlias(); }continue
|
|
3321
3322
|
default:this.gi(0,['full','join','left','cross','inner','right']);continue
|
|
3322
3323
|
}
|
|
3323
|
-
case
|
|
3324
|
+
case 504:if(this.mi(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.identAst(); }continue
|
|
3324
3325
|
default:return this.exit_()
|
|
3325
3326
|
}
|
|
3326
3327
|
}
|
|
3327
3328
|
joinCardinality($,$next){
|
|
3328
3329
|
$.sourceMax??=undefined;$.targetMax??=undefined
|
|
3329
|
-
this.rule_(
|
|
3330
|
+
this.rule_(506,$next)
|
|
3330
3331
|
for(;;)switch(this.s){
|
|
3331
|
-
case
|
|
3332
|
-
case'exact':if(this.ck(
|
|
3333
|
-
case'one':this.s=
|
|
3334
|
-
case'many':if(this.ck(
|
|
3332
|
+
case 506:switch(this.lk()){
|
|
3333
|
+
case'exact':if(this.ck(507)){ $.sourceMin = this.valueWithLocation( 1 ); }continue
|
|
3334
|
+
case'one':this.s=507;continue
|
|
3335
|
+
case'many':if(this.ck(508)){ $.sourceMax = this.valueWithLocation( '*' ); }continue
|
|
3335
3336
|
default:this.e();continue
|
|
3336
3337
|
}
|
|
3337
|
-
case
|
|
3338
|
-
case
|
|
3339
|
-
case
|
|
3340
|
-
case'exact':if(this.ck(
|
|
3341
|
-
case'one':this.s=
|
|
3338
|
+
case 507:if(this.mk(508,'one')){ $.sourceMax = this.valueWithLocation( 1 ); }continue
|
|
3339
|
+
case 508:this.mk(509,'to');continue
|
|
3340
|
+
case 509:switch(this.lk()){
|
|
3341
|
+
case'exact':if(this.ck(510)){ $.targetMin = this.valueWithLocation( 1 ); }continue
|
|
3342
|
+
case'one':this.s=510;continue
|
|
3342
3343
|
case'many':if(this.ck(0)){ $.targetMax = this.valueWithLocation( '*' ); }continue
|
|
3343
3344
|
default:this.e();continue
|
|
3344
3345
|
}
|
|
3345
|
-
case
|
|
3346
|
+
case 510:if(this.mk(0,'one')){ $.targetMax = this.valueWithLocation( 1 ); }continue
|
|
3346
3347
|
default:
|
|
3347
3348
|
this.attachLocation( $ )
|
|
3348
3349
|
return this.exit_()
|
|
@@ -3350,25 +3351,25 @@ return this.exit_()
|
|
|
3350
3351
|
}
|
|
3351
3352
|
fromRefWithOptAlias($,$next){
|
|
3352
3353
|
$.expr??={}
|
|
3353
|
-
this.rule_(
|
|
3354
|
+
this.rule_(512,$next)
|
|
3354
3355
|
{ $.expr.path = []; }
|
|
3355
3356
|
for(;;)switch(this.s){
|
|
3356
|
-
case
|
|
3357
|
-
case
|
|
3358
|
-
case':':if(this.c(
|
|
3357
|
+
case 512:this.fromPath({table:$.expr,category:'artref'},513);continue
|
|
3358
|
+
case 513:switch(this.l()){
|
|
3359
|
+
case':':if(this.c(514)){ if (!$.expr.scope) $.expr.scope = $.expr.path.length; else {
|
|
3359
3360
|
this.warning( 'syntax-invalid-path-separator', this.lb(),
|
|
3360
3361
|
{ '#': 'colon', code: ':', newcode: '.' } );
|
|
3361
3362
|
} }continue
|
|
3362
|
-
default:this.s=
|
|
3363
|
+
default:this.s=515;continue
|
|
3363
3364
|
}
|
|
3364
|
-
case
|
|
3365
|
-
case
|
|
3366
|
-
case'as':this.ck(
|
|
3367
|
-
case'Id':if(this.
|
|
3368
|
-
default:this.giR(
|
|
3365
|
+
case 514:this.fromPath({table:$.expr,category:'ref'},515);continue
|
|
3366
|
+
case 515:switch(this.lk()){
|
|
3367
|
+
case'as':this.ck(516);continue
|
|
3368
|
+
case'Id':if(this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
|
|
3369
|
+
default:this.giR(517);continue
|
|
3369
3370
|
}
|
|
3370
|
-
case
|
|
3371
|
-
case
|
|
3371
|
+
case 516:if(this.mi(0,'FromAlias')){ $.expr.name = this.identAst(); }continue
|
|
3372
|
+
case 517:if(this.gr([])){ this.classifyImplicitName( $.expr.scope ? 'FromElemImplicit' : 'FromImplicit', $.expr ); }continue
|
|
3372
3373
|
default:
|
|
3373
3374
|
this.attachLocation( $.expr )
|
|
3374
3375
|
return this.exit_()
|
|
@@ -3376,25 +3377,25 @@ return this.exit_()
|
|
|
3376
3377
|
}
|
|
3377
3378
|
fromPath($,$next){
|
|
3378
3379
|
let pathItem
|
|
3379
|
-
this.rule_(
|
|
3380
|
+
this.rule_(519,$next)
|
|
3380
3381
|
for(;;)switch(this.s){
|
|
3381
|
-
case
|
|
3382
|
-
case 519:switch(this.l()){
|
|
3383
|
-
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},520)){ pathItem = null; }continue
|
|
3384
|
-
default:this.s=520;continue
|
|
3385
|
-
}
|
|
3382
|
+
case 519:if(this.mi(520,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
|
|
3386
3383
|
case 520:switch(this.l()){
|
|
3387
|
-
case'
|
|
3384
|
+
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},521)){ pathItem = null; }continue
|
|
3385
|
+
default:this.s=521;continue
|
|
3386
|
+
}
|
|
3387
|
+
case 521:switch(this.l()){
|
|
3388
|
+
case'.':if(this.gc(0,'notAfterEntityArgOrFilter')&&this.c(522)){ if (!pathItem && !$.table.scope) {
|
|
3388
3389
|
$.table.scope = $.table.path.length; $.category = 'ref';
|
|
3389
3390
|
this.warning( 'syntax-invalid-path-separator', this.lb(),
|
|
3390
3391
|
{ '#': 'dot', code: '.', newcode: ':' } );
|
|
3391
3392
|
} }continue
|
|
3392
3393
|
default:this.gr(['Id','as']);continue
|
|
3393
3394
|
}
|
|
3394
|
-
case
|
|
3395
|
-
case
|
|
3396
|
-
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},
|
|
3397
|
-
default:this.s=
|
|
3395
|
+
case 522:if(this.miA(523,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
|
|
3396
|
+
case 523:switch(this.l()){
|
|
3397
|
+
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},521)){ pathItem = null; }continue
|
|
3398
|
+
default:this.s=521;continue
|
|
3398
3399
|
}
|
|
3399
3400
|
default:
|
|
3400
3401
|
this.attachLocation( $.table.path )
|
|
@@ -3402,27 +3403,27 @@ return this.exit_()
|
|
|
3402
3403
|
}
|
|
3403
3404
|
}
|
|
3404
3405
|
fromArgumentsAndFilter($,$next){
|
|
3405
|
-
this.rule_(
|
|
3406
|
+
this.rule_(525,$next)
|
|
3406
3407
|
for(;;)switch(this.s){
|
|
3407
|
-
case
|
|
3408
|
-
case'(':if(this.c(
|
|
3409
|
-
default:this.s=
|
|
3408
|
+
case 525:switch(this.l()){
|
|
3409
|
+
case'(':if(this.c(526)){ $.pathStep.args = this.createDict(); $.pathStep.$syntax = ':'; }continue
|
|
3410
|
+
default:this.s=530;continue
|
|
3410
3411
|
}
|
|
3411
|
-
case
|
|
3412
|
-
case'Id':this.s=
|
|
3412
|
+
case 526:switch(this.lk()){
|
|
3413
|
+
case'Id':this.s=527;continue
|
|
3413
3414
|
default:this.ei();continue
|
|
3414
3415
|
}
|
|
3415
|
-
case 526:switch(this.l()){
|
|
3416
|
-
case'Id':this.fromNamedArgument($,527);continue
|
|
3417
|
-
default:this.s=528;continue
|
|
3418
|
-
}
|
|
3419
3416
|
case 527:switch(this.l()){
|
|
3420
|
-
case'
|
|
3421
|
-
|
|
3417
|
+
case'Id':this.fromNamedArgument($,528);continue
|
|
3418
|
+
default:this.s=529;continue
|
|
3419
|
+
}
|
|
3420
|
+
case 528:switch(this.l()){
|
|
3421
|
+
case',':this.c(527);continue
|
|
3422
|
+
case')':this.s=529;continue
|
|
3422
3423
|
default:this.e();continue
|
|
3423
3424
|
}
|
|
3424
|
-
case
|
|
3425
|
-
case
|
|
3425
|
+
case 529:this.m(530,')');continue
|
|
3426
|
+
case 530:switch(this.l()){
|
|
3426
3427
|
case'[':this.cardinalityAndFilter($,0);continue
|
|
3427
3428
|
default:this.gr(['Id','.','as']);continue
|
|
3428
3429
|
}
|
|
@@ -3431,219 +3432,220 @@ default:return this.exit_()
|
|
|
3431
3432
|
}
|
|
3432
3433
|
fromNamedArgument($,$next){
|
|
3433
3434
|
let name;let expr;let _
|
|
3434
|
-
this.rule_(
|
|
3435
|
+
this.rule_(532,$next)
|
|
3435
3436
|
for(;;)switch(this.s){
|
|
3436
|
-
case
|
|
3437
|
-
case
|
|
3438
|
-
case
|
|
3437
|
+
case 532:if(this.mi(533,'paramname'))name=this.lb();continue
|
|
3438
|
+
case 533:this.m(534,':');continue
|
|
3439
|
+
case 534:if(this.expression(_={},0)){expr=_.expr; this.addDef( expr, $.pathStep, 'args', 0, this.identAst( name ) ); }continue
|
|
3439
3440
|
default:return this.exit_()
|
|
3440
3441
|
}
|
|
3441
3442
|
}
|
|
3442
3443
|
cardinalityAndFilter($,$next){
|
|
3443
|
-
this.rule_(
|
|
3444
|
+
this.rule_(536,$next)
|
|
3444
3445
|
for(;;)switch(this.s){
|
|
3445
|
-
case
|
|
3446
|
-
case
|
|
3447
|
-
case'Number':if(this.gc(
|
|
3448
|
-
default:this.s=
|
|
3449
|
-
}
|
|
3450
|
-
case
|
|
3451
|
-
case
|
|
3452
|
-
case
|
|
3446
|
+
case 536:this.m(537,'[');continue
|
|
3447
|
+
case 537:switch(this.l()){
|
|
3448
|
+
case'Number':if(this.gc(539,'beforeColon')&&this.c(538)){ $.pathStep.cardinality = { targetMax: this.unsignedIntegerLiteral(), location: this.lb().location }; }continue
|
|
3449
|
+
default:this.s=539;continue
|
|
3450
|
+
}
|
|
3451
|
+
case 538:this.m(539,':');continue
|
|
3452
|
+
case 539:this.filterClauses({pathStep:$.pathStep},540);continue
|
|
3453
|
+
case 540:this.m(0,']');continue
|
|
3453
3454
|
default:return this.exit_()
|
|
3454
3455
|
}
|
|
3455
3456
|
}
|
|
3456
3457
|
filterClauses($,$next){
|
|
3457
3458
|
let cond;let _
|
|
3458
|
-
this.rule_(
|
|
3459
|
+
this.rule_(542,$next)
|
|
3459
3460
|
for(;;)switch(this.s){
|
|
3460
|
-
case
|
|
3461
|
-
case'where':this.ck(
|
|
3462
|
-
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=
|
|
3463
|
-
case'group':case'limit':case'order':case'having':this.gP(
|
|
3464
|
-
default:this.gi(
|
|
3465
|
-
}
|
|
3466
|
-
case
|
|
3467
|
-
case
|
|
3468
|
-
case'group':this.s=
|
|
3469
|
-
default:this.s=
|
|
3470
|
-
}
|
|
3471
|
-
case
|
|
3472
|
-
case
|
|
3473
|
-
case'having':if(this.ck(
|
|
3474
|
-
default:this.s=
|
|
3475
|
-
}
|
|
3476
|
-
case
|
|
3477
|
-
case
|
|
3478
|
-
case'limit':case'order':this.s=
|
|
3461
|
+
case 542:switch(this.lk()){
|
|
3462
|
+
case'where':this.ck(543);continue
|
|
3463
|
+
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=543;continue
|
|
3464
|
+
case'group':case'limit':case'order':case'having':this.gP(544);continue
|
|
3465
|
+
default:this.gi(544);continue
|
|
3466
|
+
}
|
|
3467
|
+
case 543:if(this.condition(_={},544)){cond=_.expr; $.pathStep.where = cond; }continue
|
|
3468
|
+
case 544:switch(this.lk()){
|
|
3469
|
+
case'group':this.s=545;{ this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'group by' }); }continue
|
|
3470
|
+
default:this.s=546;continue
|
|
3471
|
+
}
|
|
3472
|
+
case 545:this.groupByClause({query:$.pathStep},546);continue
|
|
3473
|
+
case 546:switch(this.lk()){
|
|
3474
|
+
case'having':if(this.ck(547)){ this.csnParseOnly('syntax-unexpected-sql-clause', -1, { keyword: 'having' }); }continue
|
|
3475
|
+
default:this.s=548;continue
|
|
3476
|
+
}
|
|
3477
|
+
case 547:if(this.condition(_={},548)){cond=_.expr; $.pathStep.having = cond; }continue
|
|
3478
|
+
case 548:switch(this.lk()){
|
|
3479
|
+
case'limit':case'order':this.s=549;{ if (this.lk() === 'limit') this.csnParseOnly('syntax-unexpected-sql-clause', 0, { keyword: 'limit' } ); else this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'order by' } ); }continue
|
|
3479
3480
|
default:this.gr([']']);continue
|
|
3480
3481
|
}
|
|
3481
|
-
case
|
|
3482
|
+
case 549:this.orderByLimitOffset({query:$.pathStep},0);continue
|
|
3482
3483
|
default:return this.exit_()
|
|
3483
3484
|
}
|
|
3484
3485
|
}
|
|
3485
3486
|
excludingClause($,$next){
|
|
3486
|
-
this.rule_(
|
|
3487
|
+
this.rule_(551,$next)
|
|
3487
3488
|
for(;;)switch(this.s){
|
|
3488
|
-
case
|
|
3489
|
-
case
|
|
3490
|
-
case 552:switch(this.l()){
|
|
3491
|
-
case'Id':this.s=553;continue
|
|
3492
|
-
default:this.e();continue
|
|
3493
|
-
}
|
|
3489
|
+
case 551:this.mk(552,'excluding');continue
|
|
3490
|
+
case 552:if(this.m(553,'{')){ $.query.excludingDict = this.createDict(); }continue
|
|
3494
3491
|
case 553:switch(this.l()){
|
|
3495
|
-
case'Id':
|
|
3496
|
-
default:this.
|
|
3492
|
+
case'Id':this.s=554;continue
|
|
3493
|
+
default:this.e();continue
|
|
3497
3494
|
}
|
|
3498
3495
|
case 554:switch(this.l()){
|
|
3499
|
-
case',':this.
|
|
3500
|
-
|
|
3496
|
+
case'Id':if(this.ciA(555,'ref')){ this.addDef( { location: this.lb().location }, $.query, 'excludingDict', '', this.identAst() ); }continue
|
|
3497
|
+
default:this.s=556;continue
|
|
3498
|
+
}
|
|
3499
|
+
case 555:switch(this.l()){
|
|
3500
|
+
case',':this.c(554);continue
|
|
3501
|
+
case'}':this.s=556;continue
|
|
3501
3502
|
default:this.e();continue
|
|
3502
3503
|
}
|
|
3503
|
-
case
|
|
3504
|
+
case 556:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.excludingDict ); }continue
|
|
3504
3505
|
default:return this.exit_()
|
|
3505
3506
|
}
|
|
3506
3507
|
}
|
|
3507
3508
|
selectItemsList($,$next){
|
|
3508
|
-
this.rule_(
|
|
3509
|
+
this.rule_(558,$next)
|
|
3509
3510
|
for(;;)switch(this.s){
|
|
3510
|
-
case
|
|
3511
|
-
case 558:switch(this.l()){
|
|
3512
|
-
case'*':if(this.c(559)){ $.query.columns.push( this.valueWithLocation() ); }continue
|
|
3513
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},559);continue
|
|
3514
|
-
default:this.s=560;continue
|
|
3515
|
-
}
|
|
3511
|
+
case 558:if(this.m(559,'{')){this.inSelectItem(0,'top'); $.query.columns = this.createArray( $.start ); }continue
|
|
3516
3512
|
case 559:switch(this.l()){
|
|
3517
|
-
case'
|
|
3518
|
-
case'
|
|
3513
|
+
case'*':if(this.c(560)){ $.query.columns.push( this.valueWithLocation() ); }continue
|
|
3514
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},560);continue
|
|
3515
|
+
default:this.s=561;continue
|
|
3516
|
+
}
|
|
3517
|
+
case 560:switch(this.l()){
|
|
3518
|
+
case',':this.c(559);continue
|
|
3519
|
+
case'}':this.s=561;continue
|
|
3519
3520
|
default:this.e();continue
|
|
3520
3521
|
}
|
|
3521
|
-
case
|
|
3522
|
+
case 561:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.columns ); }continue
|
|
3522
3523
|
default:return this.exit_()
|
|
3523
3524
|
}
|
|
3524
3525
|
}
|
|
3525
3526
|
nestedSelectItemsList($,$next){
|
|
3526
|
-
this.rule_(
|
|
3527
|
+
this.rule_(563,$next)
|
|
3527
3528
|
for(;;)switch(this.s){
|
|
3528
|
-
case
|
|
3529
|
-
case 563:switch(this.l()){
|
|
3530
|
-
case'*':if(this.c(564)){ $.query[$.clause].push( this.valueWithLocation() ); }continue
|
|
3531
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause]},564);continue
|
|
3532
|
-
default:this.s=565;continue
|
|
3533
|
-
}
|
|
3529
|
+
case 563:if(this.m(564,'{')){this.inSelectItem(0,'nested'); $.query[$.clause] = this.createArray(); }continue
|
|
3534
3530
|
case 564:switch(this.l()){
|
|
3535
|
-
case'
|
|
3536
|
-
case'
|
|
3531
|
+
case'*':if(this.c(565)){ $.query[$.clause].push( this.valueWithLocation() ); }continue
|
|
3532
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause]},565);continue
|
|
3533
|
+
default:this.s=566;continue
|
|
3534
|
+
}
|
|
3535
|
+
case 565:switch(this.l()){
|
|
3536
|
+
case',':this.c(564);continue
|
|
3537
|
+
case'}':this.s=566;continue
|
|
3537
3538
|
default:this.e();continue
|
|
3538
3539
|
}
|
|
3539
|
-
case
|
|
3540
|
+
case 566:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query[$.clause] ); }continue
|
|
3540
3541
|
default:return this.exit_()
|
|
3541
3542
|
}
|
|
3542
3543
|
}
|
|
3543
3544
|
selectItemDef($,$next){
|
|
3544
3545
|
let art=new XsnArtifact();let alias
|
|
3545
3546
|
let expr;let as;let target;let cond;let assoc;let card;let _
|
|
3546
|
-
this.rule_(
|
|
3547
|
+
this.rule_(568,$next)
|
|
3547
3548
|
{ $.columns.push( art );
|
|
3548
3549
|
this.docComment( art ); }
|
|
3549
3550
|
for(;;)switch(this.s){
|
|
3550
|
-
case
|
|
3551
|
-
case'@':this.annoAssignCol({art},
|
|
3552
|
-
default:this.s=568;continue
|
|
3553
|
-
}
|
|
3554
|
-
case 568:switch(this.lk()){
|
|
3555
|
-
case'virtual':if(this.lP(['Id','#','(','+','-',':','?','{','key','not','case','cast','null','true','false','Number','String','exists','QuotedLiteral'])&&this.gc(569,'modifierRestriction')&&this.ck(569)){ art.virtual = this.valueWithLocation( true ); }continue
|
|
3551
|
+
case 568:switch(this.l()){
|
|
3552
|
+
case'@':this.annoAssignCol({art},568);continue
|
|
3556
3553
|
default:this.s=569;continue
|
|
3557
3554
|
}
|
|
3558
3555
|
case 569:switch(this.lk()){
|
|
3559
|
-
case'
|
|
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
|
-
case'
|
|
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
|
|
3563
|
+
}
|
|
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
|
|
3565
3567
|
default:this.e();continue
|
|
3566
3568
|
}
|
|
3567
|
-
case
|
|
3568
|
-
case'as':if(this.ck(
|
|
3569
|
-
case'Id':if(this.ci(
|
|
3570
|
-
|
|
3571
|
-
}
|
|
3572
|
-
case 572:if(this.mi(573,'ItemAlias')){ art.name = this.identAst(); }continue
|
|
3573
|
-
case 573:switch(this.l()){
|
|
3574
|
-
case'{':this.s=574;{ this.reportExpandInline( art, false ); }continue
|
|
3575
|
-
case'.':if(this.c(576)){ 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 );
|
|
3576
3573
|
this.reportExpandInline( art, as || true );
|
|
3577
3574
|
if (alias) alias.token.parsedAs = alias.parsedAs; }continue
|
|
3578
|
-
default:this.
|
|
3575
|
+
default:if(this.gi(577)){ alias = this.classifyImplicitName( 'ItemImplicit', expr ); }continue
|
|
3579
3576
|
}
|
|
3580
|
-
case 574:this.
|
|
3581
|
-
case 575:switch(this.
|
|
3582
|
-
case'
|
|
3583
|
-
|
|
3584
|
-
}
|
|
3585
|
-
case 576:switch(this.l()){
|
|
3586
|
-
case'{':this.nestedSelectItemsList({query:art,clause:'inline'},577);continue
|
|
3587
|
-
case'*':if(this.c(581)){ art.inline = [ this.valueWithLocation() ]; }continue
|
|
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
|
|
3588
3581
|
default:this.e();continue
|
|
3589
3582
|
}
|
|
3590
|
-
case
|
|
3591
|
-
case'excluding':this.excludingClause({query:art},
|
|
3592
|
-
default:this.
|
|
3583
|
+
case 576:switch(this.lk()){
|
|
3584
|
+
case'excluding':this.excludingClause({query:art},0);continue
|
|
3585
|
+
default:this.gr([',']);continue
|
|
3593
3586
|
}
|
|
3594
|
-
case
|
|
3595
|
-
case'
|
|
3596
|
-
default:this.s=
|
|
3587
|
+
case 577:switch(this.l()){
|
|
3588
|
+
case'{':this.s=578;{ this.reportExpandInline( art, false ); }continue
|
|
3589
|
+
default:this.s=583;continue
|
|
3597
3590
|
}
|
|
3598
|
-
case
|
|
3599
|
-
case
|
|
3600
|
-
case
|
|
3601
|
-
case 582:switch(this.l()){
|
|
3602
|
-
case'@':this.annoAssignMid({art},582);continue
|
|
3591
|
+
case 578:this.nestedSelectItemsList({query:art,clause:'expand'},579);continue
|
|
3592
|
+
case 579:switch(this.lk()){
|
|
3593
|
+
case'excluding':this.excludingClause({query:art},583);continue
|
|
3603
3594
|
default:this.s=583;continue
|
|
3604
3595
|
}
|
|
3605
|
-
case
|
|
3606
|
-
case'
|
|
3596
|
+
case 580:switch(this.lk()){
|
|
3597
|
+
case'excluding':this.excludingClause({query:art},581);continue
|
|
3598
|
+
default:this.s=581;continue
|
|
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
|
|
3603
|
+
case 584:switch(this.l()){
|
|
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
|
|
3607
3609
|
default:this.gr([',']);continue
|
|
3608
3610
|
}
|
|
3609
|
-
case
|
|
3610
|
-
case'type':this.lP()&&this.typeTypeOf({art},
|
|
3611
|
-
case'localized':if(this.ckP(
|
|
3612
|
-
case'Id':this.s=
|
|
3613
|
-
case'redirected':this.ckP(
|
|
3614
|
-
case'association':if(this.
|
|
3615
|
-
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
|
|
3616
3618
|
default:this.ei();continue
|
|
3617
3619
|
}
|
|
3618
|
-
case
|
|
3619
|
-
case
|
|
3620
|
-
case
|
|
3621
|
-
case
|
|
3622
|
-
case'on':this.ck(
|
|
3623
|
-
case'{':this.foreignKeysBlock({art},
|
|
3624
|
-
default:this.s=
|
|
3625
|
-
}
|
|
3626
|
-
case 589:if(this.condition(_={},598)){cond=_.expr; art.on = cond; }continue
|
|
3627
|
-
case 590:switch(this.l()){
|
|
3628
|
-
case'[':this.cardinality({art},591);continue
|
|
3629
|
-
default:this.s=591;continue
|
|
3620
|
+
case 587:this.typeRefOptArgs({art},600);continue
|
|
3621
|
+
case 588:this.mk(589,'to');continue
|
|
3622
|
+
case 589:if(this.simplePath(_={category:'artref'},590)){target=_.ref; art.target = target; }continue
|
|
3623
|
+
case 590:switch(this.lk()){
|
|
3624
|
+
case'on':this.ck(591);continue
|
|
3625
|
+
case'{':this.foreignKeysBlock({art},600);continue
|
|
3626
|
+
default:this.s=600;continue
|
|
3630
3627
|
}
|
|
3631
|
-
case 591:this.
|
|
3628
|
+
case 591:if(this.condition(_={},600)){cond=_.expr; art.on = cond; }continue
|
|
3632
3629
|
case 592:switch(this.l()){
|
|
3633
3630
|
case'[':this.cardinality({art},593);continue
|
|
3634
3631
|
default:this.s=593;continue
|
|
3635
3632
|
}
|
|
3636
|
-
case 593:this.mk(
|
|
3637
|
-
case 594:switch(this.
|
|
3638
|
-
case'
|
|
3633
|
+
case 593:this.mk(596,'to');continue
|
|
3634
|
+
case 594:switch(this.l()){
|
|
3635
|
+
case'[':this.cardinality({art},595);continue
|
|
3639
3636
|
default:this.s=595;continue
|
|
3640
3637
|
}
|
|
3641
|
-
case 595:
|
|
3642
|
-
case 596:this.
|
|
3643
|
-
case
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
case
|
|
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
|
|
3647
3649
|
default:this.gr([',']);continue
|
|
3648
3650
|
}
|
|
3649
3651
|
default:
|
|
@@ -3653,90 +3655,90 @@ return this.exit_()
|
|
|
3653
3655
|
}
|
|
3654
3656
|
whereGroupByHaving($,$next){
|
|
3655
3657
|
let cond;let _
|
|
3656
|
-
this.rule_(
|
|
3658
|
+
this.rule_(603,$next)
|
|
3657
3659
|
for(;;)switch(this.s){
|
|
3658
|
-
case 601:switch(this.lk()){
|
|
3659
|
-
case'where':this.ck(602);continue
|
|
3660
|
-
default:this.s=603;continue
|
|
3661
|
-
}
|
|
3662
|
-
case 602:if(this.condition(_={},603)){cond=_.expr; $.query.where = cond; }continue
|
|
3663
3660
|
case 603:switch(this.lk()){
|
|
3664
|
-
case'
|
|
3665
|
-
default:this.s=
|
|
3661
|
+
case'where':this.ck(604);continue
|
|
3662
|
+
default:this.s=605;continue
|
|
3666
3663
|
}
|
|
3667
|
-
case 604:
|
|
3668
|
-
case
|
|
3664
|
+
case 604:if(this.condition(_={},605)){cond=_.expr; $.query.where = cond; }continue
|
|
3665
|
+
case 605:switch(this.lk()){
|
|
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
|
|
3669
3671
|
default:this.gr(['limit','order']);continue
|
|
3670
3672
|
}
|
|
3671
|
-
case
|
|
3673
|
+
case 607:if(this.condition(_={},0)){cond=_.expr; $.query.having = cond; }continue
|
|
3672
3674
|
default:return this.exit_()
|
|
3673
3675
|
}
|
|
3674
3676
|
}
|
|
3675
3677
|
groupByClause($,$next){
|
|
3676
3678
|
let expr;let _
|
|
3677
|
-
this.rule_(
|
|
3679
|
+
this.rule_(609,$next)
|
|
3678
3680
|
for(;;)switch(this.s){
|
|
3679
|
-
case
|
|
3680
|
-
case
|
|
3681
|
-
case
|
|
3682
|
-
case
|
|
3683
|
-
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
|
|
3684
3686
|
default:this.gr(['limit','order','having']);continue
|
|
3685
3687
|
}
|
|
3686
|
-
case
|
|
3688
|
+
case 613:if(this.expression(_={},612)){expr=_.expr; $.query.groupBy.push( expr ); }continue
|
|
3687
3689
|
default:return this.exit_()
|
|
3688
3690
|
}
|
|
3689
3691
|
}
|
|
3690
3692
|
orderByLimitOffset($,$next){
|
|
3691
3693
|
let expr;let _
|
|
3692
|
-
this.rule_(
|
|
3694
|
+
this.rule_(615,$next)
|
|
3693
3695
|
for(;;)switch(this.s){
|
|
3694
|
-
case
|
|
3695
|
-
case'order':this.orderByClause($,
|
|
3696
|
-
default:this.s=
|
|
3696
|
+
case 615:switch(this.lk()){
|
|
3697
|
+
case'order':this.orderByClause($,616);continue
|
|
3698
|
+
default:this.s=616;continue
|
|
3697
3699
|
}
|
|
3698
|
-
case
|
|
3699
|
-
case'limit':this.ck(
|
|
3700
|
+
case 616:switch(this.lk()){
|
|
3701
|
+
case'limit':this.ck(617);continue
|
|
3700
3702
|
default:this.gr([]);continue
|
|
3701
3703
|
}
|
|
3702
|
-
case
|
|
3703
|
-
case
|
|
3704
|
-
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
|
|
3705
3707
|
default:this.gr([]);continue
|
|
3706
3708
|
}
|
|
3707
|
-
case
|
|
3709
|
+
case 619:if(this.expression(_={},0)){expr=_.expr; $.query.limit.offset = expr; }continue
|
|
3708
3710
|
default:return this.exit_()
|
|
3709
3711
|
}
|
|
3710
3712
|
}
|
|
3711
3713
|
orderByClause($,$next){
|
|
3712
3714
|
let expr;let _
|
|
3713
|
-
this.rule_(
|
|
3715
|
+
this.rule_(621,$next)
|
|
3714
3716
|
for(;;)switch(this.s){
|
|
3715
|
-
case
|
|
3716
|
-
case
|
|
3717
|
-
case
|
|
3718
|
-
case
|
|
3719
|
-
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
|
|
3720
3722
|
default:this.gr(['limit']);continue
|
|
3721
3723
|
}
|
|
3722
|
-
case
|
|
3724
|
+
case 625:if(this.orderByExpression(_={},624)){expr=_.expr; $.query.orderBy.push( expr ); }continue
|
|
3723
3725
|
default:return this.exit_()
|
|
3724
3726
|
}
|
|
3725
3727
|
}
|
|
3726
3728
|
orderByExpression($,$next){
|
|
3727
3729
|
$.expr??=undefined
|
|
3728
|
-
this.rule_(
|
|
3730
|
+
this.rule_(627,$next)
|
|
3729
3731
|
for(;;)switch(this.s){
|
|
3730
|
-
case
|
|
3731
|
-
case
|
|
3732
|
-
case'asc':case'desc':if(this.ck(
|
|
3733
|
-
default:this.s=
|
|
3732
|
+
case 627:this.expression($,628);continue
|
|
3733
|
+
case 628:switch(this.lk()){
|
|
3734
|
+
case'asc':case'desc':if(this.ck(629)){ $.expr.sort = this.valueWithLocation(); }continue
|
|
3735
|
+
default:this.s=629;continue
|
|
3734
3736
|
}
|
|
3735
|
-
case
|
|
3736
|
-
case'nulls':this.ck(
|
|
3737
|
+
case 629:switch(this.lk()){
|
|
3738
|
+
case'nulls':this.ck(630);continue
|
|
3737
3739
|
default:this.gr([',','limit']);continue
|
|
3738
3740
|
}
|
|
3739
|
-
case
|
|
3741
|
+
case 630:switch(this.lk()){
|
|
3740
3742
|
case'last':case'first':if(this.ck(0)){ $.expr.nulls = this.valueWithLocation(); }continue
|
|
3741
3743
|
default:this.e();continue
|
|
3742
3744
|
}
|
|
@@ -3746,39 +3748,39 @@ default:return this.exit_()
|
|
|
3746
3748
|
conditionEOF($,$next){
|
|
3747
3749
|
$.cond??=undefined
|
|
3748
3750
|
let _
|
|
3749
|
-
this.rule_(
|
|
3751
|
+
this.rule_(632,$next)
|
|
3750
3752
|
for(;;)switch(this.s){
|
|
3751
|
-
case
|
|
3752
|
-
case
|
|
3753
|
+
case 632:if(this.expression(_={},633))$.cond=_.expr;continue
|
|
3754
|
+
case 633:this.m(0,'EOF');continue
|
|
3753
3755
|
default:return this.exit_()
|
|
3754
3756
|
}
|
|
3755
3757
|
}
|
|
3756
3758
|
condition($,$next){
|
|
3757
3759
|
$.expr??=undefined
|
|
3758
|
-
this.rule_(
|
|
3760
|
+
this.rule_(635,$next)
|
|
3759
3761
|
for(;;)switch(this.s){
|
|
3760
|
-
case
|
|
3762
|
+
case 635:this.expression($,0);continue
|
|
3761
3763
|
default:return this.exit_()
|
|
3762
3764
|
}
|
|
3763
3765
|
}
|
|
3764
3766
|
valuePath($,$next,$startState){
|
|
3765
3767
|
$.expr??={ path: [] }
|
|
3766
3768
|
let pathItem
|
|
3767
|
-
this.rule_($startState??
|
|
3769
|
+
this.rule_($startState??637,$next)
|
|
3768
3770
|
for(;;)switch(this.s){
|
|
3769
|
-
case
|
|
3770
|
-
case
|
|
3771
|
-
case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},
|
|
3772
|
-
default:this.s=
|
|
3771
|
+
case 637:if(this.mi(638,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
|
|
3772
|
+
case 638:switch(this.l()){
|
|
3773
|
+
case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},639);continue
|
|
3774
|
+
default:this.s=639;continue
|
|
3773
3775
|
}
|
|
3774
|
-
case
|
|
3775
|
-
case'.':this.gc(0,'isDotForPath')&&this.c(
|
|
3776
|
+
case 639:switch(this.l()){
|
|
3777
|
+
case'.':this.gc(0,'isDotForPath')&&this.c(640);continue
|
|
3776
3778
|
default:this.gr(['*','+','-','/','<','=','>','?','!=','<=','<>','>=','in','is','or','||','and','not','like','between']);continue
|
|
3777
3779
|
}
|
|
3778
|
-
case
|
|
3779
|
-
case
|
|
3780
|
-
case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},
|
|
3781
|
-
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
|
|
3782
3784
|
}
|
|
3783
3785
|
default:
|
|
3784
3786
|
this.attachLocation( $.expr )
|
|
@@ -3788,141 +3790,141 @@ return this.exit_()
|
|
|
3788
3790
|
expression($,$next,$startState){
|
|
3789
3791
|
$.expr??={}
|
|
3790
3792
|
let e;let open;let _
|
|
3791
|
-
this.rule_($startState??
|
|
3793
|
+
this.rule_($startState??643,$next)
|
|
3792
3794
|
for(;;)switch(this.s){
|
|
3793
|
-
case
|
|
3794
|
-
case'(':this.expressionOrQueryParens($,
|
|
3795
|
-
case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,
|
|
3796
|
-
case':':if(this.c(
|
|
3797
|
-
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: '?' } );
|
|
3798
3800
|
$.expr = this.attachLocation({ param: this.valueWithLocation(), scope: 'param' }); }continue
|
|
3799
|
-
case'Id':if(this.valuePath(_={},
|
|
3800
|
-
case'new':this.lP()&&this.newAndValuePath($,
|
|
3801
|
-
case'exists':if(this.ck(
|
|
3802
|
-
case'case':this.caseExpression($,
|
|
3803
|
-
case'cast':this.castFunction($,
|
|
3804
|
-
case'+':case'-':if(this.ec('precRight_',30)&&this.c(
|
|
3805
|
-
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
|
|
3806
3808
|
default:this.ei();continue
|
|
3807
3809
|
}
|
|
3808
|
-
case
|
|
3809
|
-
case
|
|
3810
|
-
case'Id':if(this.ciA(
|
|
3811
|
-
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 } );
|
|
3812
3814
|
$.expr = this.attachLocation({ param: this.unsignedIntegerLiteral(), scope: 'param' }); }continue
|
|
3813
3815
|
default:this.e();continue
|
|
3814
3816
|
}
|
|
3815
|
-
case
|
|
3816
|
-
case'.':if(this.valuePath($,
|
|
3817
|
-
default:this.s=
|
|
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
|
|
3818
3820
|
}
|
|
3819
|
-
case
|
|
3820
|
-
case'over':if(this.ck(
|
|
3821
|
-
default:this.s=
|
|
3821
|
+
case 647:switch(this.lk()){
|
|
3822
|
+
case'over':if(this.ck(648)){ this.pushXprToken( $.expr.suffix = [] ); }continue
|
|
3823
|
+
default:this.s=649;continue
|
|
3822
3824
|
}
|
|
3823
|
-
case
|
|
3824
|
-
case
|
|
3825
|
-
case
|
|
3826
|
-
case'(':if(this.c(
|
|
3827
|
-
case'Id':if(this.valuePath(_={},
|
|
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';
|
|
3828
3830
|
$.expr.args.push( e ); this.attachLocation( $.expr ); }continue
|
|
3829
|
-
case'?':if(this.c(
|
|
3831
|
+
case'?':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
|
|
3830
3832
|
$.expr.args.push( { param: this.valueWithLocation(), scope: 'param' } ); this.attachLocation( $.expr ); }continue
|
|
3831
3833
|
default:this.e();continue
|
|
3832
3834
|
}
|
|
3833
|
-
case
|
|
3834
|
-
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 ) ) );
|
|
3835
3837
|
this.attachLocation( $.expr ); }continue
|
|
3836
|
-
case
|
|
3837
|
-
case
|
|
3838
|
-
case'*':case'/':if(this.gc(0,'precLeft_',24)&&this.c(
|
|
3839
|
-
case'+':case'-':if(this.gc(0,'precLeft_',22)&&this.c(
|
|
3840
|
-
case'||':if(this.gc(0,'precLeft_',20)&&this.c(
|
|
3841
|
-
case'and':if(this.gc(0,'precLeft_',4)&&this.ck(
|
|
3842
|
-
case'or':if(this.gc(0,'precLeft_',2)&&this.ck(
|
|
3843
|
-
case'?':if(this.gc(0,'precLeft_',0)&&this.c(
|
|
3844
|
-
case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(
|
|
3845
|
-
case'is':if(this.gc(0,'precNone_',10)&&this.ck(
|
|
3846
|
-
case'not':if(this.gc(0,'isNegatedRelation','10')&&this.ck(
|
|
3847
|
-
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
|
|
3848
3850
|
default:this.gr([]);continue
|
|
3849
3851
|
}
|
|
3850
|
-
case
|
|
3851
|
-
case
|
|
3852
|
-
case 655:switch(this.lk()){
|
|
3853
|
-
case'all':case'any':case'some':if(this.ck(656)){ this.pushXprToken( $.expr ); }continue
|
|
3854
|
-
default:this.s=656;continue
|
|
3855
|
-
}
|
|
3856
|
-
case 656:if(this.expression(_={},667)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3852
|
+
case 655:if(this.expression(_={},656)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3853
|
+
case 656:if(this.m(658,':')){ this.pushXprToken( $.expr ); }continue
|
|
3857
3854
|
case 657:switch(this.lk()){
|
|
3858
|
-
case'
|
|
3855
|
+
case'all':case'any':case'some':if(this.ck(658)){ this.pushXprToken( $.expr ); }continue
|
|
3859
3856
|
default:this.s=658;continue
|
|
3860
3857
|
}
|
|
3861
|
-
case 658:if(this.
|
|
3858
|
+
case 658:if(this.expression(_={},669)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3862
3859
|
case 659:switch(this.lk()){
|
|
3863
|
-
case'
|
|
3864
|
-
|
|
3865
|
-
|
|
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
|
|
3866
3868
|
default:this.e();continue
|
|
3867
3869
|
}
|
|
3868
|
-
case
|
|
3869
|
-
case
|
|
3870
|
-
case
|
|
3871
|
-
case
|
|
3872
|
-
case 664:if(this.expression(_={},665)){e=_.expr; $.expr.args?.push( e ); }continue
|
|
3873
|
-
case 665:switch(this.lk()){
|
|
3874
|
-
case'escape':if(this.ck(666)){ this.pushXprToken( $.expr ); }continue
|
|
3875
|
-
default:this.s=667;continue
|
|
3876
|
-
}
|
|
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
|
|
3877
3874
|
case 666:if(this.expression(_={},667)){e=_.expr; $.expr.args?.push( e ); }continue
|
|
3878
|
-
case 667:this.
|
|
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
|
|
3879
3881
|
default:return this.exit_()
|
|
3880
3882
|
}
|
|
3881
3883
|
}
|
|
3882
3884
|
expressionOrQueryParens($,$next){
|
|
3883
3885
|
$.expr??=undefined
|
|
3884
|
-
this.rule_(
|
|
3886
|
+
this.rule_(671,$next)
|
|
3885
3887
|
for(;;)switch(this.s){
|
|
3886
|
-
case
|
|
3887
|
-
case
|
|
3888
|
-
case'(':this.expressionOrQueryParens($,
|
|
3889
|
-
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($,
|
|
3890
|
-
case'select':this.queryExpression($,
|
|
3888
|
+
case 671:if(this.m(672,'(')){this.queryOnLeft()}continue;
|
|
3889
|
+
case 672:switch(this.lk()){
|
|
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
|
|
3891
3893
|
default:this.ei();continue
|
|
3892
3894
|
}
|
|
3893
|
-
case
|
|
3894
|
-
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($,
|
|
3895
|
-
case',':if(this.continueExpressionslist($,
|
|
3896
|
-
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(
|
|
3897
|
-
default:this.s=
|
|
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
|
|
3898
3900
|
}
|
|
3899
|
-
case
|
|
3900
|
-
case',':this.continueExpressionslist($,
|
|
3901
|
-
default:this.s=
|
|
3901
|
+
case 674:switch(this.l()){
|
|
3902
|
+
case',':this.continueExpressionslist($,676);continue
|
|
3903
|
+
default:this.s=676;continue
|
|
3902
3904
|
}
|
|
3903
|
-
case
|
|
3904
|
-
case',':this.continueExpressionslist($,
|
|
3905
|
-
default:this.s=
|
|
3905
|
+
case 675:switch(this.l()){
|
|
3906
|
+
case',':this.continueExpressionslist($,676);continue
|
|
3907
|
+
default:this.s=676;continue
|
|
3906
3908
|
}
|
|
3907
|
-
case
|
|
3909
|
+
case 676:if(this.m(0,')')){ this.surroundByParens( $.expr ); }continue
|
|
3908
3910
|
default:return this.exit_()
|
|
3909
3911
|
}
|
|
3910
3912
|
}
|
|
3911
3913
|
continueExpressionslist($,$next){
|
|
3912
3914
|
let e;let _
|
|
3913
|
-
this.rule_(
|
|
3915
|
+
this.rule_(678,$next)
|
|
3914
3916
|
for(;;)switch(this.s){
|
|
3915
|
-
case
|
|
3916
|
-
case
|
|
3917
|
-
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
|
|
3918
3920
|
default:this.ei();continue
|
|
3919
3921
|
}
|
|
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':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
|
|
3922
3924
|
default:this.gi(0,[')']);continue
|
|
3923
3925
|
}
|
|
3924
|
-
case
|
|
3925
|
-
case',':this.c(
|
|
3926
|
+
case 681:switch(this.l()){
|
|
3927
|
+
case',':this.c(680);continue
|
|
3926
3928
|
default:this.gr([')']);continue
|
|
3927
3929
|
}
|
|
3928
3930
|
case 0:{ this.attachLocation( $.expr ); }
|
|
@@ -3934,10 +3936,10 @@ return this.exit_()
|
|
|
3934
3936
|
newAndValuePath($,$next){
|
|
3935
3937
|
$.expr??=undefined
|
|
3936
3938
|
let e;let _
|
|
3937
|
-
this.rule_(
|
|
3939
|
+
this.rule_(683,$next)
|
|
3938
3940
|
for(;;)switch(this.s){
|
|
3939
|
-
case
|
|
3940
|
-
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 );
|
|
3941
3943
|
if (e.op?.val !== 'ixpr') $.expr.args.push( e ); else $.expr.args.push( ...e.args ); }continue
|
|
3942
3944
|
default:
|
|
3943
3945
|
this.attachLocation( $.expr )
|
|
@@ -3947,31 +3949,31 @@ return this.exit_()
|
|
|
3947
3949
|
caseExpression($,$next){
|
|
3948
3950
|
$.expr??=undefined
|
|
3949
3951
|
let e;let _
|
|
3950
|
-
this.rule_(
|
|
3952
|
+
this.rule_(686,$next)
|
|
3951
3953
|
for(;;)switch(this.s){
|
|
3952
|
-
case
|
|
3953
|
-
case
|
|
3954
|
-
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(_={},
|
|
3955
|
-
case'when':this.gP(
|
|
3956
|
-
default:this.gi(
|
|
3957
|
-
}
|
|
3958
|
-
case
|
|
3959
|
-
case'when':this.s=
|
|
3954
|
+
case 686:if(this.mk(687,'case')){ $.expr.op = { val: 'ixpr', location: this.lb().location }; $.expr.args = []; this.pushXprToken( $.expr ); }continue
|
|
3955
|
+
case 687:switch(this.lk()){
|
|
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
|
|
3959
|
+
}
|
|
3960
|
+
case 688:switch(this.lk()){
|
|
3961
|
+
case'when':this.s=689;continue
|
|
3960
3962
|
default:this.e();continue
|
|
3961
3963
|
}
|
|
3962
|
-
case
|
|
3963
|
-
case'when':if(this.ck(
|
|
3964
|
-
default:this.s=691;continue
|
|
3965
|
-
}
|
|
3966
|
-
case 688:if(this.expression(_={},689)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3967
|
-
case 689:if(this.mk(690,'then')){ this.pushXprToken( $.expr ); }continue
|
|
3968
|
-
case 690:if(this.expression(_={},687)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3969
|
-
case 691:switch(this.lk()){
|
|
3970
|
-
case'else':if(this.ck(692)){ this.pushXprToken( $.expr ); }continue
|
|
3964
|
+
case 689:switch(this.lk()){
|
|
3965
|
+
case'when':if(this.ck(690)){ this.pushXprToken( $.expr ); }continue
|
|
3971
3966
|
default:this.s=693;continue
|
|
3972
3967
|
}
|
|
3973
|
-
case
|
|
3974
|
-
case
|
|
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
|
|
3975
3977
|
default:
|
|
3976
3978
|
this.attachLocation( $.expr )
|
|
3977
3979
|
return this.exit_()
|
|
@@ -3980,14 +3982,14 @@ return this.exit_()
|
|
|
3980
3982
|
castFunction($,$next){
|
|
3981
3983
|
$.expr??=undefined
|
|
3982
3984
|
let arg;let _
|
|
3983
|
-
this.rule_(
|
|
3985
|
+
this.rule_(697,$next)
|
|
3984
3986
|
for(;;)switch(this.s){
|
|
3985
|
-
case
|
|
3986
|
-
case
|
|
3987
|
-
case
|
|
3988
|
-
case
|
|
3989
|
-
case
|
|
3990
|
-
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
|
|
3991
3993
|
default:
|
|
3992
3994
|
this.attachLocation( $.expr )
|
|
3993
3995
|
return this.exit_()
|
|
@@ -3995,66 +3997,66 @@ return this.exit_()
|
|
|
3995
3997
|
}
|
|
3996
3998
|
argumentsAndFilter($,$next){
|
|
3997
3999
|
let open;let expr;let id;let _
|
|
3998
|
-
this.rule_(
|
|
4000
|
+
this.rule_(704,$next)
|
|
3999
4001
|
for(;;)switch(this.s){
|
|
4000
|
-
case 702:switch(this.l()){
|
|
4001
|
-
case'(':if(this.c(703)){open=this.lb();this.prepareSpecialFunction(); $.pathStep.args = this.createArray(); }continue
|
|
4002
|
-
default:this.s=722;continue
|
|
4003
|
-
}
|
|
4004
|
-
case 703:switch(this.l()){
|
|
4005
|
-
case'Id':if(this.gc(704,'isNamedArg')&&this.ciA(710,'paramname'))id=this.lb();continue
|
|
4006
|
-
default:this.s=704;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'
|
|
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
|
-
case 706:switch(this.
|
|
4017
|
-
case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'
|
|
4018
|
-
|
|
4010
|
+
case 706:switch(this.l()){
|
|
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
|
|
4013
|
+
}
|
|
4014
|
+
case 707:switch(this.l()){
|
|
4015
|
+
case',':if(this.c(708)){this.nextFunctionArgument()}continue;
|
|
4016
|
+
default:this.s=709;continue
|
|
4017
|
+
}
|
|
4018
|
+
case 708:switch(this.lk()){
|
|
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
|
|
4019
4021
|
default:this.ei();continue
|
|
4020
4022
|
}
|
|
4021
|
-
case
|
|
4022
|
-
case'order':if(this.ck(
|
|
4023
|
-
default:this.s=
|
|
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
|
|
4024
4026
|
}
|
|
4025
|
-
case
|
|
4026
|
-
case
|
|
4027
|
-
case
|
|
4028
|
-
case':':if(this.c(
|
|
4029
|
-
case'=>':if(this.c(
|
|
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
|
|
4030
4032
|
default:this.e();continue
|
|
4031
4033
|
}
|
|
4032
|
-
case
|
|
4033
|
-
case
|
|
4034
|
-
case',':this.c(
|
|
4035
|
-
default:this.s=
|
|
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
|
|
4036
4038
|
}
|
|
4037
|
-
case
|
|
4038
|
-
case'Id':if(this.ciA(
|
|
4039
|
-
case')':this.s=
|
|
4039
|
+
case 715:switch(this.l()){
|
|
4040
|
+
case'Id':if(this.ciA(716,'paramname'))id=this.lb();continue
|
|
4041
|
+
case')':this.s=723;continue
|
|
4040
4042
|
default:this.e();continue
|
|
4041
4043
|
}
|
|
4042
|
-
case
|
|
4043
|
-
case
|
|
4044
|
-
case
|
|
4045
|
-
case
|
|
4046
|
-
case',':this.c(
|
|
4047
|
-
default:this.s=
|
|
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
|
|
4047
|
+
case 719:switch(this.l()){
|
|
4048
|
+
case',':this.c(720);continue
|
|
4049
|
+
default:this.s=723;continue
|
|
4048
4050
|
}
|
|
4049
|
-
case
|
|
4050
|
-
case'Id':if(this.ciA(
|
|
4051
|
-
case')':this.s=
|
|
4051
|
+
case 720:switch(this.l()){
|
|
4052
|
+
case'Id':if(this.ciA(721,'paramname'))id=this.lb();continue
|
|
4053
|
+
case')':this.s=723;continue
|
|
4052
4054
|
default:this.e();continue
|
|
4053
4055
|
}
|
|
4054
|
-
case
|
|
4055
|
-
case
|
|
4056
|
-
case
|
|
4057
|
-
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()){
|
|
4058
4060
|
case'[':this.cardinalityAndFilter($,0);continue
|
|
4059
4061
|
default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','>=','in','is','or','||','and','not','like','between']);continue
|
|
4060
4062
|
}
|
|
@@ -4065,22 +4067,22 @@ funcExpression($,$next){
|
|
|
4065
4067
|
$.expr??=undefined
|
|
4066
4068
|
let args
|
|
4067
4069
|
let tok;let e;let _
|
|
4068
|
-
this.rule_(
|
|
4070
|
+
this.rule_(726,$next)
|
|
4069
4071
|
for(;;)switch(this.s){
|
|
4070
|
-
case
|
|
4071
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
4072
|
-
case'GenericExpr':if(this.ckA(
|
|
4073
|
-
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
|
|
4074
4076
|
default:this.e();continue
|
|
4075
4077
|
}
|
|
4076
|
-
case
|
|
4077
|
-
case
|
|
4078
|
-
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
|
|
4079
4081
|
default:this.gr([')',',','order']);continue
|
|
4080
4082
|
}
|
|
4081
|
-
case
|
|
4082
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
4083
|
-
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
|
|
4084
4086
|
default:this.e();continue
|
|
4085
4087
|
}
|
|
4086
4088
|
default:
|
|
@@ -4090,27 +4092,27 @@ return this.exit_()
|
|
|
4090
4092
|
}
|
|
4091
4093
|
overClause($,$next){
|
|
4092
4094
|
let over=[]
|
|
4093
|
-
this.rule_(
|
|
4095
|
+
this.rule_(731,$next)
|
|
4094
4096
|
for(;;)switch(this.s){
|
|
4095
|
-
case
|
|
4096
|
-
case
|
|
4097
|
-
case'partition':if(this.ck(
|
|
4098
|
-
default:this.s=
|
|
4099
|
-
}
|
|
4100
|
-
case
|
|
4101
|
-
case
|
|
4102
|
-
case
|
|
4103
|
-
case'order':if(this.ck(
|
|
4104
|
-
default:this.s=736;continue
|
|
4105
|
-
}
|
|
4106
|
-
case 734:if(this.mk(735,'by')){ this.pushXprToken( over ); }continue
|
|
4107
|
-
case 735:this.orderByClauseAsXpr({outer:over},736);continue
|
|
4108
|
-
case 736:switch(this.lk()){
|
|
4109
|
-
case'rows':if(this.ck(737)){ this.pushXprToken( over ); }continue
|
|
4097
|
+
case 731:this.m(732,'(');continue
|
|
4098
|
+
case 732:switch(this.lk()){
|
|
4099
|
+
case'partition':if(this.ck(733)){ this.pushXprToken( over ); }continue
|
|
4100
|
+
default:this.s=735;continue
|
|
4101
|
+
}
|
|
4102
|
+
case 733:if(this.mk(734,'by')){ this.pushXprToken( over ); }continue
|
|
4103
|
+
case 734:this.expressionsAsXpr({outer:over},735);continue
|
|
4104
|
+
case 735:switch(this.lk()){
|
|
4105
|
+
case'order':if(this.ck(736)){ this.pushXprToken( over ); }continue
|
|
4110
4106
|
default:this.s=738;continue
|
|
4111
4107
|
}
|
|
4112
|
-
case
|
|
4113
|
-
case
|
|
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
|
|
4114
4116
|
default:
|
|
4115
4117
|
$.outer.push( this.surroundByParens( this.ixprAst( over ) ) )
|
|
4116
4118
|
return this.exit_()
|
|
@@ -4119,14 +4121,14 @@ return this.exit_()
|
|
|
4119
4121
|
expressionsAsXpr($,$next){
|
|
4120
4122
|
let args=[]
|
|
4121
4123
|
let expr;let _
|
|
4122
|
-
this.rule_(
|
|
4124
|
+
this.rule_(742,$next)
|
|
4123
4125
|
for(;;)switch(this.s){
|
|
4124
|
-
case
|
|
4125
|
-
case
|
|
4126
|
-
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
|
|
4127
4129
|
default:this.gr([')','rows','order']);continue
|
|
4128
4130
|
}
|
|
4129
|
-
case
|
|
4131
|
+
case 744:if(this.expression(_={},743)){expr=_.expr; args.push( expr ); }continue
|
|
4130
4132
|
default:
|
|
4131
4133
|
$.outer.push( this.ixprAst( args ) )
|
|
4132
4134
|
return this.exit_()
|
|
@@ -4134,14 +4136,14 @@ return this.exit_()
|
|
|
4134
4136
|
}
|
|
4135
4137
|
orderByClauseAsXpr($,$next){
|
|
4136
4138
|
let args=[]
|
|
4137
|
-
this.rule_(
|
|
4139
|
+
this.rule_(746,$next)
|
|
4138
4140
|
for(;;)switch(this.s){
|
|
4139
|
-
case
|
|
4140
|
-
case
|
|
4141
|
-
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
|
|
4142
4144
|
default:this.gr([')']);continue
|
|
4143
4145
|
}
|
|
4144
|
-
case
|
|
4146
|
+
case 748:this.orderBySpecAsXpr({args},747);continue
|
|
4145
4147
|
default:
|
|
4146
4148
|
$.outer.push( this.ixprAst( args ) )
|
|
4147
4149
|
return this.exit_()
|
|
@@ -4149,18 +4151,18 @@ return this.exit_()
|
|
|
4149
4151
|
}
|
|
4150
4152
|
orderBySpecAsXpr($,$next){
|
|
4151
4153
|
let expr;let _
|
|
4152
|
-
this.rule_(
|
|
4154
|
+
this.rule_(750,$next)
|
|
4153
4155
|
for(;;)switch(this.s){
|
|
4154
|
-
case
|
|
4155
|
-
case
|
|
4156
|
-
case'asc':case'desc':if(this.ck(
|
|
4157
|
-
default:this.s=
|
|
4156
|
+
case 750:if(this.expression(_={},751)){expr=_.expr; $.args.push( expr ); }continue
|
|
4157
|
+
case 751:switch(this.lk()){
|
|
4158
|
+
case'asc':case'desc':if(this.ck(752)){ this.pushXprToken( $.args ); }continue
|
|
4159
|
+
default:this.s=752;continue
|
|
4158
4160
|
}
|
|
4159
|
-
case
|
|
4160
|
-
case'nulls':if(this.ck(
|
|
4161
|
+
case 752:switch(this.lk()){
|
|
4162
|
+
case'nulls':if(this.ck(753)){ this.pushXprToken( $.args ); }continue
|
|
4161
4163
|
default:this.gr([')',',']);continue
|
|
4162
4164
|
}
|
|
4163
|
-
case
|
|
4165
|
+
case 753:switch(this.lk()){
|
|
4164
4166
|
case'last':case'first':if(this.ck(0)){ this.pushXprToken( $.args ); }continue
|
|
4165
4167
|
default:this.e();continue
|
|
4166
4168
|
}
|
|
@@ -4169,50 +4171,50 @@ default:return this.exit_()
|
|
|
4169
4171
|
}
|
|
4170
4172
|
windowFrameClause($,$next){
|
|
4171
4173
|
let args=[]
|
|
4172
|
-
this.rule_(
|
|
4174
|
+
this.rule_(755,$next)
|
|
4173
4175
|
for(;;)switch(this.s){
|
|
4174
|
-
case
|
|
4175
|
-
case'unbounded':if(this.ck(
|
|
4176
|
-
case'Number':if(this.c(
|
|
4177
|
-
case'current':if(this.ck(
|
|
4178
|
-
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
|
|
4179
4181
|
default:this.e();continue
|
|
4180
4182
|
}
|
|
4181
|
-
case
|
|
4182
|
-
case
|
|
4183
|
-
case
|
|
4184
|
-
case
|
|
4185
|
-
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
|
|
4186
4188
|
default:
|
|
4187
4189
|
$.outer.push( this.ixprAst( args ) )
|
|
4188
4190
|
return this.exit_()
|
|
4189
4191
|
}
|
|
4190
4192
|
}
|
|
4191
4193
|
windowFrameBoundSpec($,$next){
|
|
4192
|
-
this.rule_(
|
|
4194
|
+
this.rule_(762,$next)
|
|
4193
4195
|
for(;;)switch(this.s){
|
|
4194
|
-
case
|
|
4195
|
-
case'unbounded':if(this.ck(
|
|
4196
|
-
case'Number':if(this.c(
|
|
4197
|
-
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
|
|
4198
4200
|
default:this.e();continue
|
|
4199
4201
|
}
|
|
4200
|
-
case
|
|
4201
|
-
case'following':this.ck(
|
|
4202
|
-
case'preceding':this.ck(
|
|
4202
|
+
case 763:switch(this.lk()){
|
|
4203
|
+
case'following':this.ck(764);continue
|
|
4204
|
+
case'preceding':this.ck(764);continue
|
|
4203
4205
|
default:this.e();continue
|
|
4204
4206
|
}
|
|
4205
|
-
case
|
|
4206
|
-
case
|
|
4207
|
+
case 764:if(this.gr([])){ this.pushXprToken( $.args ); }continue
|
|
4208
|
+
case 765:if(this.mk(0,'row')){ this.pushXprToken( $.args ); }continue
|
|
4207
4209
|
default:return this.exit_()
|
|
4208
4210
|
}
|
|
4209
4211
|
}
|
|
4210
4212
|
literalValue($,$next){
|
|
4211
4213
|
$.expr??={}
|
|
4212
|
-
this.rule_(
|
|
4214
|
+
this.rule_(767,$next)
|
|
4213
4215
|
for(;;)switch(this.s){
|
|
4214
|
-
case
|
|
4215
|
-
case'#':if(this.c(
|
|
4216
|
+
case 767:switch(this.lk()){
|
|
4217
|
+
case'#':if(this.c(768)){ this.reportUnexpectedSpace(); }continue
|
|
4216
4218
|
case'null':if(this.ck(0)){ $.expr = { literal: 'null', val: null }; }continue
|
|
4217
4219
|
case'true':case'false':if(this.ck(0)){ $.expr = { literal: 'boolean', val: this.lb().keyword === 'true' }; }continue
|
|
4218
4220
|
case'Number':if(this.c(0)){ $.expr = this.numberLiteral(); }continue
|
|
@@ -4220,17 +4222,17 @@ case'String':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
|
|
|
4220
4222
|
case'QuotedLiteral':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
|
|
4221
4223
|
default:this.e();continue
|
|
4222
4224
|
}
|
|
4223
|
-
case
|
|
4225
|
+
case 768:if(this.mi(0,'enumref')){ $.expr = { literal: 'enum', sym: this.identAst() } }continue
|
|
4224
4226
|
default:
|
|
4225
4227
|
this.attachLocation( $.expr )
|
|
4226
4228
|
return this.exit_()
|
|
4227
4229
|
}
|
|
4228
4230
|
}
|
|
4229
4231
|
annoAssignStd($,$next){
|
|
4230
|
-
this.rule_(
|
|
4232
|
+
this.rule_(770,$next)
|
|
4231
4233
|
for(;;)switch(this.s){
|
|
4232
|
-
case
|
|
4233
|
-
case
|
|
4234
|
+
case 770:if(this.m(771,'@')){this.annoInSameLine(); this.reportUnexpectedSpace(); }continue
|
|
4235
|
+
case 771:switch(this.l()){
|
|
4234
4236
|
case'(':this.annoAssignParen($,0);continue
|
|
4235
4237
|
case'Id':this.annoAssignBase($,0);continue
|
|
4236
4238
|
default:this.e();continue
|
|
@@ -4241,10 +4243,10 @@ return this.exit_()
|
|
|
4241
4243
|
}
|
|
4242
4244
|
}
|
|
4243
4245
|
annoAssignCol($,$next){
|
|
4244
|
-
this.rule_(
|
|
4246
|
+
this.rule_(773,$next)
|
|
4245
4247
|
for(;;)switch(this.s){
|
|
4246
|
-
case
|
|
4247
|
-
case
|
|
4248
|
+
case 773:if(this.m(774,'@')){ this.reportUnexpectedSpace(); }continue
|
|
4249
|
+
case 774:switch(this.l()){
|
|
4248
4250
|
case'(':this.annoAssignParen($,0);continue
|
|
4249
4251
|
case'Id':this.annoAssignBase($,0);continue
|
|
4250
4252
|
default:this.e();continue
|
|
@@ -4256,10 +4258,10 @@ return this.exit_()
|
|
|
4256
4258
|
}
|
|
4257
4259
|
annoAssignMid($,$next){
|
|
4258
4260
|
let name;let _
|
|
4259
|
-
this.rule_(
|
|
4261
|
+
this.rule_(776,$next)
|
|
4260
4262
|
for(;;)switch(this.s){
|
|
4261
|
-
case
|
|
4262
|
-
case
|
|
4263
|
+
case 776:if(this.m(777,'@')){this.annoInSameLine(); this.reportUnexpectedSpace(); }continue
|
|
4264
|
+
case 777:switch(this.l()){
|
|
4263
4265
|
case'(':this.annoAssignParen($,0);continue
|
|
4264
4266
|
case'Id':if(this.annoNamePath(_={category:'anno'},0)){name=_.name; this.assignAnnotation( $.art, {}, name ); this.warnIfColonFollows( name ); }continue
|
|
4265
4267
|
default:this.e();continue
|
|
@@ -4270,33 +4272,33 @@ return this.exit_()
|
|
|
4270
4272
|
}
|
|
4271
4273
|
}
|
|
4272
4274
|
annoAssignParen($,$next){
|
|
4273
|
-
this.rule_(
|
|
4275
|
+
this.rule_(779,$next)
|
|
4274
4276
|
for(;;)switch(this.s){
|
|
4275
|
-
case
|
|
4276
|
-
case
|
|
4277
|
-
case'Id':this.annoAssignBase({art:$.art},
|
|
4278
|
-
default:this.s=
|
|
4279
|
-
}
|
|
4280
|
-
case
|
|
4281
|
-
case',':this.c(
|
|
4282
|
-
case')':this.s=
|
|
4277
|
+
case 779:if(this.m(780,'(')){this.annoInSameLine()}continue;
|
|
4278
|
+
case 780:switch(this.l()){
|
|
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
|
|
4283
4285
|
default:this.e();continue
|
|
4284
4286
|
}
|
|
4285
|
-
case
|
|
4287
|
+
case 782:this.m(0,')');continue
|
|
4286
4288
|
default:return this.exit_()
|
|
4287
4289
|
}
|
|
4288
4290
|
}
|
|
4289
4291
|
annoAssignBase($,$next){
|
|
4290
4292
|
let value={}
|
|
4291
4293
|
let name;let _
|
|
4292
|
-
this.rule_(
|
|
4294
|
+
this.rule_(784,$next)
|
|
4293
4295
|
for(;;)switch(this.s){
|
|
4294
|
-
case
|
|
4295
|
-
case
|
|
4296
|
-
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
|
|
4297
4299
|
default:this.gr([]);continue
|
|
4298
4300
|
}
|
|
4299
|
-
case
|
|
4301
|
+
case 786:if(this.annoValue(_={},0))value=_.value;continue
|
|
4300
4302
|
default:
|
|
4301
4303
|
this.assignAnnotation( $.art, value, name || {} )
|
|
4302
4304
|
return this.exit_()
|
|
@@ -4305,20 +4307,20 @@ return this.exit_()
|
|
|
4305
4307
|
annoNamePath($,$next){
|
|
4306
4308
|
$.name??=new XsnName()
|
|
4307
4309
|
let at
|
|
4308
|
-
this.rule_(
|
|
4310
|
+
this.rule_(788,$next)
|
|
4309
4311
|
for(;;)switch(this.s){
|
|
4310
|
-
case
|
|
4311
|
-
case
|
|
4312
|
-
case'.':this.c(
|
|
4313
|
-
default:this.s=
|
|
4314
|
-
}
|
|
4315
|
-
case 788:switch(this.l()){
|
|
4316
|
-
case'Id':if(this.ciA(787,$.category)){ $.name.path.push( this.identAst() ); }continue
|
|
4317
|
-
case'@':if(this.c(789))at=this.lb();continue
|
|
4318
|
-
default:this.e();continue
|
|
4312
|
+
case 788:if(this.miA(789,$.category)){ $.name.path = [ this.identAst() ]; }continue
|
|
4313
|
+
case 789:switch(this.l()){
|
|
4314
|
+
case'.':this.c(790);continue
|
|
4315
|
+
default:this.s=792;continue
|
|
4319
4316
|
}
|
|
4320
|
-
case 789:if(this.miA(787,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
|
|
4321
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
|
|
4320
|
+
default:this.e();continue
|
|
4321
|
+
}
|
|
4322
|
+
case 791:if(this.miA(789,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
|
|
4323
|
+
case 792:switch(this.l()){
|
|
4322
4324
|
case'#':this.gc(0,'annoInSameLine')&&this.annoPathVariant({nameOrRef:$.name},0);continue
|
|
4323
4325
|
default:this.gr([]);continue
|
|
4324
4326
|
}
|
|
@@ -4329,25 +4331,25 @@ return this.exit_()
|
|
|
4329
4331
|
}
|
|
4330
4332
|
annoPath($,$next){
|
|
4331
4333
|
let at
|
|
4332
|
-
this.rule_(
|
|
4334
|
+
this.rule_(794,$next)
|
|
4333
4335
|
for(;;)switch(this.s){
|
|
4334
|
-
case
|
|
4335
|
-
case'Id':if(this.ciA(
|
|
4336
|
-
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
|
|
4337
4339
|
default:this.e();continue
|
|
4338
4340
|
}
|
|
4339
|
-
case
|
|
4340
|
-
case
|
|
4341
|
-
case'.':this.c(
|
|
4342
|
-
default:this.s=
|
|
4341
|
+
case 795:if(this.miA(796,$.category)){ $.nameOrRef.path = [ this.identAstWithPrefix( at ) ]; }continue
|
|
4342
|
+
case 796:switch(this.l()){
|
|
4343
|
+
case'.':this.c(797);continue
|
|
4344
|
+
default:this.s=799;continue
|
|
4343
4345
|
}
|
|
4344
|
-
case
|
|
4345
|
-
case'Id':if(this.ciA(
|
|
4346
|
-
case'@':if(this.c(
|
|
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
|
|
4347
4349
|
default:this.e();continue
|
|
4348
4350
|
}
|
|
4349
|
-
case
|
|
4350
|
-
case
|
|
4351
|
+
case 798:if(this.miA(796,$.category)){ $.nameOrRef.path.push( this.identAstWithPrefix( at ) ); }continue
|
|
4352
|
+
case 799:switch(this.l()){
|
|
4351
4353
|
case'#':this.annoPathVariant({nameOrRef:$.nameOrRef},0);continue
|
|
4352
4354
|
default:this.gr([]);continue
|
|
4353
4355
|
}
|
|
@@ -4357,15 +4359,15 @@ return this.exit_()
|
|
|
4357
4359
|
}
|
|
4358
4360
|
}
|
|
4359
4361
|
annoPathVariant($,$next){
|
|
4360
|
-
this.rule_(
|
|
4362
|
+
this.rule_(801,$next)
|
|
4361
4363
|
for(;;)switch(this.s){
|
|
4362
|
-
case
|
|
4363
|
-
case
|
|
4364
|
-
case
|
|
4365
|
-
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
|
|
4366
4368
|
default:this.gr([]);continue
|
|
4367
4369
|
}
|
|
4368
|
-
case
|
|
4370
|
+
case 804:if(this.miA(803,'variant')){ $.nameOrRef.variant.path.push( this.identAst() ); }continue
|
|
4369
4371
|
default:
|
|
4370
4372
|
this.attachLocation( $.nameOrRef.variant )
|
|
4371
4373
|
return this.exit_()
|
|
@@ -4375,14 +4377,14 @@ annoStructValue($,$next){
|
|
|
4375
4377
|
$.value??={}
|
|
4376
4378
|
let name=new XsnName()
|
|
4377
4379
|
let _
|
|
4378
|
-
this.rule_(
|
|
4380
|
+
this.rule_(806,$next)
|
|
4379
4381
|
for(;;)switch(this.s){
|
|
4380
|
-
case
|
|
4381
|
-
case
|
|
4382
|
-
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
|
|
4383
4385
|
default:if(this.gr([',','}'])){ this.attachLocation( $.value ); }continue
|
|
4384
4386
|
}
|
|
4385
|
-
case
|
|
4387
|
+
case 808:if(this.annoValue(_={},0))$.value=_.value;continue
|
|
4386
4388
|
default:
|
|
4387
4389
|
$.value.name = name
|
|
4388
4390
|
return this.exit_()
|
|
@@ -4391,51 +4393,51 @@ return this.exit_()
|
|
|
4391
4393
|
annoValue($,$next){
|
|
4392
4394
|
$.value??={}
|
|
4393
4395
|
let sign;let sub;let ellipsis;let upTo;let _
|
|
4394
|
-
this.rule_(
|
|
4396
|
+
this.rule_(810,$next)
|
|
4395
4397
|
for(;;)switch(this.s){
|
|
4396
|
-
case
|
|
4398
|
+
case 810:switch(this.lk()){
|
|
4397
4399
|
case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':if(this.literalValue(_={},0)){$.value=_.expr; this.adjustAnnoNumber( $.value ); }continue
|
|
4398
|
-
case'+':case'-':if(this.c(
|
|
4400
|
+
case'+':case'-':if(this.c(811))sign=this.lb();continue
|
|
4399
4401
|
case'Id':case'@':this.annoPath({nameOrRef:$.value,category:'annoref'},0);continue
|
|
4400
|
-
case'{':if(this.c(
|
|
4402
|
+
case'{':if(this.c(812)){ if (!this.dynamic_.arrayAnno) $.value.$flatten = [];
|
|
4401
4403
|
else { $.value.struct = Object.create(null); $.value.literal = 'struct'; } }continue
|
|
4402
|
-
case'[':if(this.c(
|
|
4403
|
-
case'(':this.c(
|
|
4404
|
+
case'[':if(this.c(816)){this.arrayAnno(); $.value.val = []; $.value.literal = 'array' }continue
|
|
4405
|
+
case'(':this.c(823);continue
|
|
4404
4406
|
default:this.ei();continue
|
|
4405
4407
|
}
|
|
4406
|
-
case
|
|
4407
|
-
case
|
|
4408
|
-
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 );
|
|
4409
4411
|
else this.addDef( sub, $.value, 'struct', null, sub.name ); }continue
|
|
4410
|
-
default:this.s=
|
|
4412
|
+
default:this.s=814;continue
|
|
4411
4413
|
}
|
|
4412
|
-
case
|
|
4413
|
-
case',':this.c(
|
|
4414
|
-
case'}':this.s=
|
|
4414
|
+
case 813:switch(this.l()){
|
|
4415
|
+
case',':this.c(812);continue
|
|
4416
|
+
case'}':this.s=814;continue
|
|
4415
4417
|
default:this.e();continue
|
|
4416
4418
|
}
|
|
4417
|
-
case
|
|
4418
|
-
case
|
|
4419
|
-
case
|
|
4420
|
-
case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},
|
|
4421
|
-
case'...':if(this.gc(
|
|
4422
|
-
default:this.s=
|
|
4423
|
-
}
|
|
4424
|
-
case
|
|
4425
|
-
case'up':this.ck(
|
|
4426
|
-
default:this.s=
|
|
4427
|
-
}
|
|
4428
|
-
case
|
|
4429
|
-
case
|
|
4430
|
-
case
|
|
4431
|
-
case
|
|
4432
|
-
case'
|
|
4433
|
-
case']':this.s=820;continue
|
|
4419
|
+
case 814:this.s=815;{ this.ec( 'arrayAnno', 'orNotEmpty' ); }continue
|
|
4420
|
+
case 815:this.m(0,'}');continue
|
|
4421
|
+
case 816:switch(this.l()){
|
|
4422
|
+
case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},820)){sub=_.value; $.value.val.push( sub ) }continue
|
|
4423
|
+
case'...':if(this.gc(821,'arrayAnno','ellipsis')&&this.c(817))ellipsis=this.lb();continue
|
|
4424
|
+
default:this.s=821;continue
|
|
4425
|
+
}
|
|
4426
|
+
case 817:switch(this.lk()){
|
|
4427
|
+
case'up':this.ck(818);continue
|
|
4428
|
+
default:this.s=820;{ $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location } ); }continue
|
|
4429
|
+
}
|
|
4430
|
+
case 818:this.mk(819,'to');continue
|
|
4431
|
+
case 819:if(this.annoValue(_={},820)){upTo=_.value; $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location, upTo: upTo } ); }continue
|
|
4432
|
+
case 820:switch(this.l()){
|
|
4433
|
+
case',':this.c(816);continue
|
|
4434
|
+
case']':this.s=821;continue
|
|
4434
4435
|
default:this.e();continue
|
|
4435
4436
|
}
|
|
4436
|
-
case
|
|
4437
|
-
case
|
|
4438
|
-
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
|
|
4439
4441
|
default:
|
|
4440
4442
|
this.attachLocation( $.value )
|
|
4441
4443
|
return this.exit_()
|