@sap/cds-compiler 6.0.14 → 6.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/bin/cdsc.js +6 -2
- package/bin/cdsse.js +1 -1
- package/bin/cdsv2m.js +1 -1
- package/lib/api/main.js +29 -7
- package/lib/api/options.js +2 -0
- package/lib/base/builtins.js +9 -0
- package/lib/base/keywords.js +1 -1
- package/lib/base/message-registry.js +5 -3
- package/lib/base/messages.js +3 -3
- package/lib/base/model.js +1 -0
- package/lib/base/node-helpers.js +10 -2
- package/lib/base/optionProcessorHelper.js +7 -2
- package/lib/checks/assocOutsideService.js +3 -1
- package/lib/checks/featureFlags.js +4 -1
- package/lib/compiler/assert-consistency.js +3 -1
- package/lib/compiler/base.js +1 -1
- package/lib/compiler/builtins.js +1 -1
- package/lib/compiler/checks.js +38 -21
- package/lib/compiler/define.js +24 -5
- package/lib/compiler/extend.js +1 -1
- package/lib/compiler/finalize-parse-cdl.js +9 -1
- package/lib/compiler/generate.js +4 -4
- package/lib/compiler/index.js +10 -1
- package/lib/compiler/lsp-api.js +2 -0
- package/lib/compiler/populate.js +8 -8
- package/lib/compiler/propagator.js +1 -1
- package/lib/compiler/resolve.js +15 -14
- package/lib/compiler/shared.js +6 -7
- package/lib/compiler/tweak-assocs.js +6 -6
- package/lib/compiler/utils.js +9 -16
- package/lib/compiler/xpr-rewrite.js +2 -2
- package/lib/gen/BaseParser.js +43 -37
- package/lib/gen/CdlGrammar.checksum +1 -1
- package/lib/gen/CdlParser.js +1424 -1433
- package/lib/gen/Dictionary.json +1 -7
- package/lib/gen/cdlKeywords.json +26 -0
- package/lib/inspect/inspectPropagation.js +1 -1
- package/lib/json/from-csn.js +2 -2
- package/lib/json/to-csn.js +9 -5
- package/lib/language/multiLineStringParser.js +1 -1
- package/lib/main.d.ts +10 -2
- package/lib/model/cloneCsn.js +1 -0
- package/lib/optionProcessor.js +13 -7
- package/lib/parsers/AstBuildingParser.js +24 -21
- package/lib/parsers/identifiers.js +2 -30
- package/lib/render/toCdl.js +63 -9
- package/lib/render/toSql.js +127 -108
- package/lib/render/utils/sql.js +67 -0
- package/lib/transform/addTenantFields.js +4 -4
- package/lib/transform/db/killAnnotations.js +1 -0
- package/lib/transform/db/processSqlServices.js +20 -2
- package/lib/transform/draft/db.js +1 -1
- package/lib/transform/draft/odata.js +14 -4
- package/lib/transform/forOdata.js +91 -2
- package/lib/transform/forRelationalDB.js +1 -1
- package/lib/transform/odata/flattening.js +1 -1
- package/lib/transform/transformUtils.js +2 -2
- package/lib/transform/translateAssocsToJoins.js +2 -26
- package/lib/utils/moduleResolve.js +1 -1
- package/package.json +2 -2
package/lib/gen/CdlParser.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Parser generated by redepage v0.2.
|
|
1
|
+
// Parser generated by redepage v0.2.7
|
|
2
2
|
'use strict;'
|
|
3
3
|
const { XsnSource, XsnArtifact, XsnName } = require( '../compiler/xsn-model' )
|
|
4
4
|
const AstBuildingParser = require('../parsers/AstBuildingParser')
|
|
@@ -133,10 +133,10 @@ Id:['g',6,,'afterBrace'],'@':'Id',
|
|
|
133
133
|
},
|
|
134
134
|
['m',0,'}',,,'afterBrace'],
|
|
135
135
|
'artifactDefOrExtend',
|
|
136
|
-
{'@':[10,
|
|
136
|
+
{'@':[10,773],'':11},
|
|
137
137
|
{
|
|
138
|
-
define:['ck',12],
|
|
139
138
|
type:12,view:12,event:12,action:12,aspect:12,entity:12,context:12,service:12,abstract:12,function:12,annotation:12,
|
|
139
|
+
define:['ck',12],
|
|
140
140
|
extend:['ck',13,,'extensionRestriction'],
|
|
141
141
|
annotate:['ck',14,,'extensionRestriction'],
|
|
142
142
|
},
|
|
@@ -198,22 +198,22 @@ Id:[22,31],
|
|
|
198
198
|
'serviceDef',
|
|
199
199
|
['mk',44,'service',,,'vocabularyRestriction'],
|
|
200
200
|
[45,35],
|
|
201
|
-
{'@':[45,
|
|
201
|
+
{'@':[45,779],'':46},
|
|
202
202
|
{'{':[0,5],'':0},
|
|
203
203
|
'contextDef',
|
|
204
204
|
['mk',49,'context',,,'vocabularyRestriction'],
|
|
205
205
|
[50,35],
|
|
206
|
-
{'@':[50,
|
|
206
|
+
{'@':[50,779],'':51},
|
|
207
207
|
{'{':[0,5],'':0},
|
|
208
208
|
'annotationDef',
|
|
209
209
|
['mk',54,'annotation'],
|
|
210
210
|
[55,35],
|
|
211
|
-
{'@':[55,
|
|
211
|
+
{'@':[55,779],'':56},
|
|
212
212
|
[0,347],
|
|
213
213
|
'typeDef',
|
|
214
214
|
['mk',59,'type'],
|
|
215
215
|
[60,35],
|
|
216
|
-
{'@':[60,
|
|
216
|
+
{'@':[60,779],'':61},
|
|
217
217
|
[0,347],
|
|
218
218
|
'aspectDef',
|
|
219
219
|
{
|
|
@@ -222,7 +222,7 @@ abstract:['ck',64,,'hide_'],
|
|
|
222
222
|
},
|
|
223
223
|
['mk',65,'entity'],
|
|
224
224
|
[66,35],
|
|
225
|
-
{'@':[66,
|
|
225
|
+
{'@':[66,779],'':67},
|
|
226
226
|
{
|
|
227
227
|
'{':[71,158],
|
|
228
228
|
':':['c',68],
|
|
@@ -239,11 +239,11 @@ abstract:['ck',64,,'hide_'],
|
|
|
239
239
|
'entityDef',
|
|
240
240
|
['mk',74,'entity'],
|
|
241
241
|
[75,35],
|
|
242
|
-
{'@':[75,
|
|
242
|
+
{'@':[75,779],'':76},
|
|
243
243
|
{'(':[77,142],'':77},
|
|
244
244
|
{
|
|
245
|
-
':':['c',78],
|
|
246
245
|
'{':81,
|
|
246
|
+
':':['c',78],
|
|
247
247
|
as:['ck',82],
|
|
248
248
|
},
|
|
249
249
|
{Id:79},
|
|
@@ -254,18 +254,18 @@ as:['ck',82],
|
|
|
254
254
|
},
|
|
255
255
|
[87,158],
|
|
256
256
|
{
|
|
257
|
-
'(':[87,
|
|
257
|
+
'(':[87,452],select:'(',
|
|
258
258
|
projection:['g',83,,,'sloppy','afterBrace'],
|
|
259
259
|
},
|
|
260
|
-
[84,
|
|
261
|
-
{group:[85,
|
|
262
|
-
{limit:[86,
|
|
260
|
+
[84,446],
|
|
261
|
+
{group:[85,608],where:'group',having:'group','':85},
|
|
262
|
+
{limit:[86,620],order:'limit','':86},
|
|
263
263
|
['g',87,,,'normal','afterBrace'],
|
|
264
264
|
{actions:[0,125],'':0},
|
|
265
265
|
'viewDef',
|
|
266
266
|
['mk',90,'view'],
|
|
267
267
|
[91,35],
|
|
268
|
-
{'@':[91,
|
|
268
|
+
{'@':[91,779],'':92},
|
|
269
269
|
{
|
|
270
270
|
'(':[98,142],
|
|
271
271
|
with:['ck',93,,'hide_'],
|
|
@@ -277,11 +277,11 @@ with:['ck',93,,'hide_'],
|
|
|
277
277
|
[95,147],
|
|
278
278
|
['g',98],
|
|
279
279
|
['mk',99,'as'],
|
|
280
|
-
[0,
|
|
280
|
+
[0,452],
|
|
281
281
|
'eventDef',
|
|
282
282
|
['mk',102,'event'],
|
|
283
283
|
[103,35],
|
|
284
|
-
{'@':[103,
|
|
284
|
+
{'@':[103,779],'':104},
|
|
285
285
|
{
|
|
286
286
|
'{':[0,158],
|
|
287
287
|
':':['c',105],
|
|
@@ -289,7 +289,7 @@ with:['ck',93,,'hide_'],
|
|
|
289
289
|
{
|
|
290
290
|
'{':[0,158],
|
|
291
291
|
Id:[106,39],
|
|
292
|
-
projection:[0,
|
|
292
|
+
projection:[0,446,1],
|
|
293
293
|
},
|
|
294
294
|
{',':107,'{':107,'':111},
|
|
295
295
|
{',':['c',108],'':110},
|
|
@@ -299,17 +299,17 @@ projection:[0,447,1],
|
|
|
299
299
|
'{':110,
|
|
300
300
|
},
|
|
301
301
|
[0,158],
|
|
302
|
-
{'@':[111,
|
|
302
|
+
{'@':[111,773],'':0},
|
|
303
303
|
'actionMainDef',
|
|
304
304
|
['mk',114,'action'],
|
|
305
305
|
[115,35],
|
|
306
|
-
{'@':[115,
|
|
306
|
+
{'@':[115,779],'':116},
|
|
307
307
|
[117,142],
|
|
308
308
|
{returns:[0,154],'':0},
|
|
309
309
|
'functionMainDef',
|
|
310
310
|
['mk',120,'function'],
|
|
311
311
|
[121,35],
|
|
312
|
-
{'@':[121,
|
|
312
|
+
{'@':[121,779],'':122},
|
|
313
313
|
[123,142],
|
|
314
314
|
[0,154],
|
|
315
315
|
'actionsBlock',
|
|
@@ -323,17 +323,17 @@ Id:['g',127,,'afterBrace'],'@':'Id',
|
|
|
323
323
|
},
|
|
324
324
|
['m',0,'}',,,'afterBrace'],
|
|
325
325
|
'boundActionFunctionDef',
|
|
326
|
-
{'@':[131,
|
|
326
|
+
{'@':[131,773],'':132},
|
|
327
327
|
{
|
|
328
328
|
action:['ck',133],
|
|
329
329
|
function:['ck',137],
|
|
330
330
|
},
|
|
331
331
|
['mi',134],
|
|
332
|
-
{'@':[134,
|
|
332
|
+
{'@':[134,779],'':135},
|
|
333
333
|
[136,142],
|
|
334
334
|
{returns:[0,154],'':0},
|
|
335
335
|
['mi',138],
|
|
336
|
-
{'@':[138,
|
|
336
|
+
{'@':[138,779],'':139},
|
|
337
337
|
[140,142],
|
|
338
338
|
[0,154],
|
|
339
339
|
'paramsList',
|
|
@@ -345,18 +345,18 @@ function:['ck',137],
|
|
|
345
345
|
},
|
|
346
346
|
['m',0,')'],
|
|
347
347
|
'paramDef',
|
|
348
|
-
{'@':[147,
|
|
348
|
+
{'@':[147,773],'':148},
|
|
349
349
|
['miA',149],
|
|
350
|
-
{'@':[149,
|
|
350
|
+
{'@':[149,779],'':150},
|
|
351
351
|
{
|
|
352
352
|
'{':[151,158],
|
|
353
353
|
':':['c',152],
|
|
354
354
|
},
|
|
355
|
-
{not:[0,
|
|
355
|
+
{not:[0,439],null:'not','':0},
|
|
356
356
|
[0,358],
|
|
357
357
|
'returnsSpec',
|
|
358
358
|
['mk',155,'returns',,'default','elementRestriction'],
|
|
359
|
-
{'@':[155,
|
|
359
|
+
{'@':[155,773],'':156},
|
|
360
360
|
[0,358],
|
|
361
361
|
'elementsBlock',
|
|
362
362
|
['m',159,'{'],
|
|
@@ -368,25 +368,25 @@ Id:['g',159,,'afterBrace'],'@':'Id',
|
|
|
368
368
|
},
|
|
369
369
|
['m',0,'}',,,'afterBrace'],
|
|
370
370
|
'elementDef',
|
|
371
|
-
{'@':[163,
|
|
371
|
+
{'@':[163,773],'':164},
|
|
372
372
|
{virtual:['ck',165,1],'':165},
|
|
373
373
|
{key:['ck',166],'':166},
|
|
374
374
|
{masked:['ck',167,1,'hide_'],'':167},
|
|
375
375
|
{element:['ck',168,1,'hide_'],'':168},
|
|
376
376
|
['mi',169,,,'elem','elementRestriction'],
|
|
377
|
-
{'@':[169,
|
|
377
|
+
{'@':[169,779],'':170},
|
|
378
378
|
{
|
|
379
379
|
'{':[171,158],
|
|
380
380
|
':':['c',172],
|
|
381
381
|
'':173
|
|
382
382
|
},
|
|
383
|
-
{not:[173,
|
|
383
|
+
{not:[173,439],null:'not','':173},
|
|
384
384
|
[173,358],
|
|
385
385
|
{'=':['c',174,,'elementRestriction','calc'],'':0},
|
|
386
|
-
[175,
|
|
386
|
+
[175,642],
|
|
387
387
|
{stored:['ck',176],'':176},
|
|
388
388
|
['g',177],
|
|
389
|
-
{'@':[177,
|
|
389
|
+
{'@':[177,773,,'elementRestriction','anno'],'':0},
|
|
390
390
|
'enumSymbolsBlock',
|
|
391
391
|
['mk',180,'enum'],
|
|
392
392
|
['m',181,'{'],
|
|
@@ -397,19 +397,19 @@ Id:['g',159,,'afterBrace'],'@':'Id',
|
|
|
397
397
|
},
|
|
398
398
|
['m',0,'}',,,'afterBrace'],
|
|
399
399
|
'enumSymbolDef',
|
|
400
|
-
{'@':[185,
|
|
400
|
+
{'@':[185,773],'':186},
|
|
401
401
|
['mi',187],
|
|
402
|
-
{'@':[187,
|
|
402
|
+
{'@':[187,773],'':188},
|
|
403
403
|
{'=':['c',189],'':0},
|
|
404
404
|
{
|
|
405
405
|
String:['c',191],
|
|
406
406
|
Number:['c',191],
|
|
407
407
|
'+':['c',190],'-':'+',
|
|
408
|
-
Id:[191,
|
|
408
|
+
Id:[191,770,,'hide_'],'#':'Id',QuotedLiteral:'Id',
|
|
409
409
|
},
|
|
410
410
|
['m',191,'Number'],
|
|
411
411
|
['g',192],
|
|
412
|
-
{'@':[192,
|
|
412
|
+
{'@':[192,773],'':0},
|
|
413
413
|
'foreignKeysBlock',
|
|
414
414
|
['m',195,'{'],
|
|
415
415
|
{Id:[196,199],'@':'Id','':197},
|
|
@@ -419,7 +419,7 @@ Id:[191,772,,'hide_'],'#':'Id',QuotedLiteral:'Id',
|
|
|
419
419
|
},
|
|
420
420
|
['m',0,'}'],
|
|
421
421
|
'foreignKeyDef',
|
|
422
|
-
{'@':[199,
|
|
422
|
+
{'@':[199,773],'':200},
|
|
423
423
|
[201,39],
|
|
424
424
|
{as:['ck',202],'':0},
|
|
425
425
|
['mi',0],
|
|
@@ -430,14 +430,14 @@ Id:[191,772,,'hide_'],'#':'Id',QuotedLiteral:'Id',
|
|
|
430
430
|
association:['ck',207],
|
|
431
431
|
composition:['ck',209],
|
|
432
432
|
},
|
|
433
|
-
{'[':[208,
|
|
433
|
+
{'[':[208,427],'':208},
|
|
434
434
|
['mk',211,'to'],
|
|
435
|
-
{'[':[210,
|
|
435
|
+
{'[':[210,427],'':210},
|
|
436
436
|
['mk',211,'of'],
|
|
437
437
|
{one:['ck',212,1,'noRepeatedCardinality'],many:'one','':212},
|
|
438
438
|
[213,39],
|
|
439
439
|
['mk',214,'on'],
|
|
440
|
-
[0,
|
|
440
|
+
[0,640],
|
|
441
441
|
'annotateArtifact',
|
|
442
442
|
[217,35],
|
|
443
443
|
{
|
|
@@ -448,10 +448,10 @@ with:['ck',223],
|
|
|
448
448
|
[219,35],
|
|
449
449
|
{with:['ck',220],'':220},
|
|
450
450
|
['g',221],
|
|
451
|
-
{'@':[221,
|
|
451
|
+
{'@':[221,773],'':222},
|
|
452
452
|
{'{':[0,321],'':0},
|
|
453
453
|
['g',224],
|
|
454
|
-
{'@':[224,
|
|
454
|
+
{'@':[224,773],'':225},
|
|
455
455
|
{'(':[226,308],'':226},
|
|
456
456
|
{
|
|
457
457
|
returns:[0,317],
|
|
@@ -469,26 +469,26 @@ with:['ck',240],
|
|
|
469
469
|
[232,35],
|
|
470
470
|
{with:['ck',233],'':233},
|
|
471
471
|
['g',234],
|
|
472
|
-
{'@':[234,
|
|
472
|
+
{'@':[234,773],'':235},
|
|
473
473
|
{
|
|
474
|
-
elements:['ck',236],
|
|
475
474
|
'{':236,
|
|
475
|
+
elements:['ck',236],
|
|
476
476
|
enum:[0,179],
|
|
477
|
-
'(':[0,
|
|
477
|
+
'(':[0,418],
|
|
478
478
|
'':0
|
|
479
479
|
},
|
|
480
480
|
[0,331],
|
|
481
|
-
{'@':[237,
|
|
481
|
+
{'@':[237,773],'':238},
|
|
482
482
|
{'{':[239,331],'':0},
|
|
483
483
|
{actions:[0,125],'':0},
|
|
484
|
-
{'@':[240,
|
|
484
|
+
{'@':[240,773],'':241},
|
|
485
485
|
{
|
|
486
486
|
Id:[242,39],
|
|
487
|
-
elements:['ck',246,1],
|
|
488
487
|
'{':246,
|
|
488
|
+
elements:['ck',246,1],
|
|
489
489
|
actions:[0,125,1],
|
|
490
490
|
enum:[0,179,1],
|
|
491
|
-
'(':[0,
|
|
491
|
+
'(':[0,418],
|
|
492
492
|
columns:['ck',248,1],
|
|
493
493
|
definitions:['ck',249,1],
|
|
494
494
|
'':0
|
|
@@ -499,35 +499,35 @@ definitions:['ck',249,1],
|
|
|
499
499
|
{actions:[0,125],'':0},
|
|
500
500
|
[247,331],
|
|
501
501
|
{actions:[0,125],'':0},
|
|
502
|
-
[0,
|
|
502
|
+
[0,558],
|
|
503
503
|
[0,5],
|
|
504
504
|
'extendService',
|
|
505
505
|
['mk',252,'service'],
|
|
506
506
|
[253,35],
|
|
507
507
|
{with:['ck',254],'':254},
|
|
508
508
|
['g',255],
|
|
509
|
-
{'@':[255,
|
|
509
|
+
{'@':[255,773],'':256},
|
|
510
510
|
{'{':[0,5],'':0},
|
|
511
511
|
'extendContext',
|
|
512
512
|
['mk',259,'context'],
|
|
513
513
|
[260,35],
|
|
514
514
|
{with:['ck',261],'':261},
|
|
515
515
|
['g',262],
|
|
516
|
-
{'@':[262,
|
|
516
|
+
{'@':[262,773],'':263},
|
|
517
517
|
{'{':[0,5],'':0},
|
|
518
518
|
'extendType',
|
|
519
519
|
['mk',266,'type'],
|
|
520
520
|
[267,35],
|
|
521
521
|
{with:['ck',270],'':268},
|
|
522
|
-
{'@':[268,
|
|
522
|
+
{'@':[268,773],'':269},
|
|
523
523
|
{'{':[0,331],'':0},
|
|
524
|
-
{'@':[270,
|
|
524
|
+
{'@':[270,773],'':271},
|
|
525
525
|
{
|
|
526
526
|
Id:[272,39],
|
|
527
|
-
elements:['ck',275,1],
|
|
528
527
|
'{':275,
|
|
528
|
+
elements:['ck',275,1],
|
|
529
529
|
enum:[0,179,1],
|
|
530
|
-
'(':[0,
|
|
530
|
+
'(':[0,418],
|
|
531
531
|
'':0
|
|
532
532
|
},
|
|
533
533
|
{',':['c',273],'':274},
|
|
@@ -538,8 +538,8 @@ enum:[0,179,1],
|
|
|
538
538
|
{aspect:['ck',278],entity:'aspect'},
|
|
539
539
|
[279,35],
|
|
540
540
|
{with:['ck',281],'':280},
|
|
541
|
-
{'@':[280,
|
|
542
|
-
{'@':[281,
|
|
541
|
+
{'@':[280,773],'':285},
|
|
542
|
+
{'@':[281,773],'':282},
|
|
543
543
|
{
|
|
544
544
|
Id:[283,39],
|
|
545
545
|
actions:['g',285,1],
|
|
@@ -554,8 +554,8 @@ actions:['g',285,1],
|
|
|
554
554
|
[290,35],
|
|
555
555
|
{with:['ck',291],'':291},
|
|
556
556
|
['g',292],
|
|
557
|
-
{'@':[292,
|
|
558
|
-
{'{':[294,
|
|
557
|
+
{'@':[292,773],'':293},
|
|
558
|
+
{'{':[294,558],'':294},
|
|
559
559
|
{actions:[0,125],'':0},
|
|
560
560
|
'annotateActionsBlock',
|
|
561
561
|
['mk',297,'actions'],
|
|
@@ -568,9 +568,9 @@ Id:['g',298,,'afterBrace'],'@':'Id',
|
|
|
568
568
|
},
|
|
569
569
|
['m',0,'}',,,'afterBrace'],
|
|
570
570
|
'annotateBoundAction',
|
|
571
|
-
{'@':[302,
|
|
571
|
+
{'@':[302,773],'':303},
|
|
572
572
|
['mi',304],
|
|
573
|
-
{'@':[304,
|
|
573
|
+
{'@':[304,773],'':305},
|
|
574
574
|
{'(':[306,308],'':306},
|
|
575
575
|
{returns:[0,317,1],'':0},
|
|
576
576
|
'annotateParamsBlock',
|
|
@@ -582,12 +582,12 @@ Id:['g',298,,'afterBrace'],'@':'Id',
|
|
|
582
582
|
},
|
|
583
583
|
['m',0,')'],
|
|
584
584
|
'annotateParam',
|
|
585
|
-
{'@':[313,
|
|
585
|
+
{'@':[313,773],'':314},
|
|
586
586
|
['mi',315],
|
|
587
|
-
{'@':[315,
|
|
587
|
+
{'@':[315,773],'':0},
|
|
588
588
|
'annotateReturns',
|
|
589
589
|
['mk',318,'returns'],
|
|
590
|
-
{'@':[318,
|
|
590
|
+
{'@':[318,773],'':319},
|
|
591
591
|
{'{':[0,321],'':0},
|
|
592
592
|
'annotateElementsBlock',
|
|
593
593
|
['m',322,'{'],
|
|
@@ -599,9 +599,9 @@ Id:['g',322,,'afterBrace'],'@':'Id',
|
|
|
599
599
|
},
|
|
600
600
|
['m',0,'}',,,'afterBrace'],
|
|
601
601
|
'annotateElement',
|
|
602
|
-
{'@':[326,
|
|
602
|
+
{'@':[326,773],'':327},
|
|
603
603
|
['mi',328],
|
|
604
|
-
{'@':[328,
|
|
604
|
+
{'@':[328,773],'':329},
|
|
605
605
|
{'{':[0,321],'':0},
|
|
606
606
|
'extendElementsBlock',
|
|
607
607
|
['m',332,'{'],
|
|
@@ -613,7 +613,7 @@ Id:['g',332,,'afterBrace'],'@':'Id',
|
|
|
613
613
|
},
|
|
614
614
|
['m',0,'}',,,'afterBrace'],
|
|
615
615
|
'elementDefOrExtend',
|
|
616
|
-
{'@':[336,
|
|
616
|
+
{'@':[336,773],'':337},
|
|
617
617
|
{
|
|
618
618
|
Id:[0,163],'@':'Id',key:'Id',
|
|
619
619
|
extend:['ck',338,1],
|
|
@@ -621,14 +621,14 @@ extend:['ck',338,1],
|
|
|
621
621
|
{element:['ck',339,1],'':339},
|
|
622
622
|
['mi',340],
|
|
623
623
|
{with:['ck',343],'':341},
|
|
624
|
-
{'@':[341,
|
|
624
|
+
{'@':[341,773],'':342},
|
|
625
625
|
{'{':[0,331],'':0},
|
|
626
|
-
{'@':[343,
|
|
626
|
+
{'@':[343,773],'':344},
|
|
627
627
|
{
|
|
628
|
-
elements:['ck',345],
|
|
629
628
|
'{':345,
|
|
629
|
+
elements:['ck',345],
|
|
630
630
|
enum:[0,179],
|
|
631
|
-
'(':[0,
|
|
631
|
+
'(':[0,418],
|
|
632
632
|
'':0
|
|
633
633
|
},
|
|
634
634
|
[0,331],
|
|
@@ -637,14 +637,14 @@ enum:[0,179],
|
|
|
637
637
|
'{':[348,158],
|
|
638
638
|
':':['c',349],
|
|
639
639
|
},
|
|
640
|
-
{not:[0,
|
|
640
|
+
{not:[0,439],null:'not','':0},
|
|
641
641
|
{
|
|
642
|
-
projection:[0,
|
|
642
|
+
projection:[0,446,1],
|
|
643
643
|
'{':[0,358,1],many:'{',type:'{',array:'{',localized:'{',association:'{',composition:'{',
|
|
644
644
|
Id:[350,39],
|
|
645
645
|
},
|
|
646
646
|
{
|
|
647
|
-
'(':[351,
|
|
647
|
+
'(':[351,405],':':'(',
|
|
648
648
|
'@':[0,359],not:'@',enum:'@',null:'@',default:'@',
|
|
649
649
|
',':352,'{':352,
|
|
650
650
|
'':0
|
|
@@ -657,149 +657,148 @@ Id:[350,39],
|
|
|
657
657
|
'{':355,
|
|
658
658
|
},
|
|
659
659
|
[356,158],
|
|
660
|
-
{not:[0,
|
|
660
|
+
{not:[0,439],null:'not','':0},
|
|
661
661
|
'typeExpression',
|
|
662
662
|
{
|
|
663
|
-
Id:[359,
|
|
664
|
-
type:[359,
|
|
663
|
+
Id:[359,404],
|
|
664
|
+
type:[359,396,1],
|
|
665
665
|
localized:['ck',368,1],
|
|
666
666
|
association:['ck',370,1,,'calc','elementRestriction'],
|
|
667
667
|
composition:['ck',374,1,,'calc','elementRestriction'],
|
|
668
668
|
array:['ck',378,1,,'calc','elementRestriction'],
|
|
669
669
|
many:['ck',379,1,,'calc','elementRestriction'],
|
|
670
|
-
'{':[
|
|
670
|
+
'{':[384,158,,,'calc','elementRestriction'],
|
|
671
671
|
},
|
|
672
672
|
['g',360],
|
|
673
|
-
{'@':[360,
|
|
674
|
-
{not:[362,
|
|
675
|
-
{'@':[362,
|
|
673
|
+
{'@':[360,773],'':361},
|
|
674
|
+
{not:[362,439,,'elementRestriction','notNull'],null:'not','':363},
|
|
675
|
+
{'@':[362,773],'':363},
|
|
676
676
|
{
|
|
677
677
|
enum:[364,179,,,'anno','elementRestriction'],
|
|
678
|
-
'@':[0,
|
|
678
|
+
'@':[0,393],not:'@',null:'@',default:'@',
|
|
679
679
|
'':0
|
|
680
680
|
},
|
|
681
|
-
{not:[365,
|
|
681
|
+
{not:[365,439,,'elementRestriction','notNull'],null:'not','':365},
|
|
682
682
|
{default:['ck',366,,'elementRestriction','default'],'':367},
|
|
683
|
-
[367,
|
|
684
|
-
{not:[0,
|
|
685
|
-
[369,
|
|
686
|
-
{'@':[0,
|
|
687
|
-
{'[':[371,
|
|
683
|
+
[367,642],
|
|
684
|
+
{not:[0,439,,'elementRestriction','notNull'],null:'not','':0},
|
|
685
|
+
[369,404],
|
|
686
|
+
{'@':[0,393],not:'@',null:'@',default:'@','':0},
|
|
687
|
+
{'[':[371,427],'':371},
|
|
688
688
|
['mk',372,'to'],
|
|
689
689
|
{one:['ck',373,1,'noRepeatedCardinality'],many:'one','':373},
|
|
690
|
-
[0,
|
|
691
|
-
{'[':[375,
|
|
690
|
+
[0,386],
|
|
691
|
+
{'[':[375,427],'':375},
|
|
692
692
|
['mk',376,'of'],
|
|
693
693
|
{one:['ck',377,1,'noRepeatedCardinality'],many:'one','':377},
|
|
694
694
|
{
|
|
695
|
-
Id:[0,
|
|
695
|
+
Id:[0,386],
|
|
696
696
|
'{':[0,158],
|
|
697
697
|
},
|
|
698
698
|
['mk',379,'of'],
|
|
699
699
|
{
|
|
700
|
-
Id:[380,
|
|
701
|
-
type:[380,
|
|
702
|
-
'{':[
|
|
700
|
+
Id:[380,404],
|
|
701
|
+
type:[380,396,1],
|
|
702
|
+
'{':[383,158],
|
|
703
703
|
},
|
|
704
|
-
{not:[381,
|
|
705
|
-
{enum:[
|
|
706
|
-
{'@':[382,
|
|
707
|
-
['
|
|
708
|
-
{not:[0,
|
|
709
|
-
{not:[0,440],null:'not','':0},
|
|
704
|
+
{not:[381,439,,'elementRestriction','notNull'],null:'not','':381},
|
|
705
|
+
{enum:[383,179],'':382},
|
|
706
|
+
{'@':[382,773],'':0},
|
|
707
|
+
{not:[0,439,,'elementRestriction','notNull'],null:'not','':0},
|
|
708
|
+
{not:[0,439],null:'not','':0},
|
|
710
709
|
'typeAssocProperties',
|
|
711
|
-
[
|
|
712
|
-
{'@':[
|
|
710
|
+
[387,39],
|
|
711
|
+
{'@':[387,773],'':388},
|
|
713
712
|
{
|
|
714
|
-
on:['ck',
|
|
715
|
-
'{':[
|
|
716
|
-
'@':[0,
|
|
713
|
+
on:['ck',389],
|
|
714
|
+
'{':[391,194],
|
|
715
|
+
'@':[0,393],not:'@',null:'@',default:'@',
|
|
717
716
|
'':0
|
|
718
717
|
},
|
|
719
|
-
[
|
|
720
|
-
{'@':[
|
|
721
|
-
{'@':[0,
|
|
718
|
+
[390,640],
|
|
719
|
+
{'@':[390,773],'':0},
|
|
720
|
+
{'@':[0,393],not:'@',null:'@',default:'@','':0},
|
|
722
721
|
'typeProperties',
|
|
723
722
|
{
|
|
724
|
-
'@':[
|
|
725
|
-
not:[
|
|
726
|
-
default:['ck',
|
|
723
|
+
'@':[393,773],
|
|
724
|
+
not:[393,439,,'elementRestriction','notNull'],null:'not',
|
|
725
|
+
default:['ck',394,,'elementRestriction','default'],
|
|
727
726
|
'':0
|
|
728
727
|
},
|
|
729
|
-
[
|
|
728
|
+
[393,642],
|
|
730
729
|
'typeTypeOf',
|
|
731
|
-
['mk',
|
|
732
|
-
['mk',
|
|
733
|
-
[
|
|
734
|
-
{':':['c',
|
|
735
|
-
['miA',
|
|
736
|
-
{'.':['c',
|
|
737
|
-
['miA',
|
|
730
|
+
['mk',397,'type'],
|
|
731
|
+
['mk',398,'of'],
|
|
732
|
+
[399,39],
|
|
733
|
+
{':':['c',400],'':0},
|
|
734
|
+
['miA',401],
|
|
735
|
+
{'.':['c',402],'':0},
|
|
736
|
+
['miA',401],
|
|
738
737
|
'typeRefOptArgs',
|
|
739
|
-
[
|
|
738
|
+
[405,39],
|
|
740
739
|
{
|
|
741
|
-
':':['c',
|
|
742
|
-
'(':['c',
|
|
740
|
+
':':['c',406],
|
|
741
|
+
'(':['c',410],
|
|
743
742
|
'':0
|
|
744
743
|
},
|
|
745
|
-
['miA',
|
|
746
|
-
{'.':['c',
|
|
747
|
-
['miA',
|
|
748
|
-
['g',0
|
|
744
|
+
['miA',407],
|
|
745
|
+
{'.':['c',408],'':409},
|
|
746
|
+
['miA',407],
|
|
747
|
+
['g',0],
|
|
749
748
|
{
|
|
750
|
-
Number:['c',
|
|
751
|
-
Id:
|
|
749
|
+
Number:['c',411],
|
|
750
|
+
Id:414,
|
|
752
751
|
},
|
|
753
|
-
{',':['c',
|
|
752
|
+
{',':['c',412],'':413},
|
|
754
753
|
{
|
|
755
|
-
Number:['c',
|
|
756
|
-
floating:['ck',
|
|
757
|
-
')':
|
|
754
|
+
Number:['c',411],
|
|
755
|
+
floating:['ck',411],variable:'floating',
|
|
756
|
+
')':413,
|
|
758
757
|
},
|
|
759
|
-
['g',
|
|
760
|
-
{Id:[
|
|
758
|
+
['g',416],
|
|
759
|
+
{Id:[415,423],'':416},
|
|
761
760
|
{
|
|
762
|
-
',':['c',
|
|
763
|
-
')':
|
|
761
|
+
',':['c',414],
|
|
762
|
+
')':416,
|
|
764
763
|
},
|
|
765
764
|
['m',0,')'],
|
|
766
765
|
'typeNamedArgsList',
|
|
767
|
-
['m',
|
|
768
|
-
{Id:[
|
|
766
|
+
['m',419,'('],
|
|
767
|
+
{Id:[420,423],'':421},
|
|
769
768
|
{
|
|
770
|
-
',':['c',
|
|
771
|
-
')':
|
|
769
|
+
',':['c',419],
|
|
770
|
+
')':421,
|
|
772
771
|
},
|
|
773
772
|
['m',0,')'],
|
|
774
773
|
'typeNamedArg',
|
|
775
|
-
['mi',
|
|
776
|
-
['m',
|
|
774
|
+
['mi',424],
|
|
775
|
+
['m',425,':'],
|
|
777
776
|
{
|
|
778
777
|
Number:['c',0],
|
|
779
778
|
floating:['ck',0],variable:'floating',
|
|
780
779
|
},
|
|
781
780
|
'cardinality',
|
|
782
|
-
['m',
|
|
781
|
+
['m',428,'['],
|
|
783
782
|
{
|
|
784
|
-
'*':['c',
|
|
785
|
-
Number:['c',
|
|
786
|
-
']':
|
|
783
|
+
'*':['c',429],
|
|
784
|
+
Number:['c',431],
|
|
785
|
+
']':433,
|
|
787
786
|
},
|
|
788
|
-
{',':['c',
|
|
789
|
-
[
|
|
787
|
+
{',':['c',430],'':433},
|
|
788
|
+
[433,435],
|
|
790
789
|
{
|
|
791
|
-
',':['c',
|
|
792
|
-
'..':[
|
|
793
|
-
'':
|
|
790
|
+
',':['c',432],
|
|
791
|
+
'..':[433,436],
|
|
792
|
+
'':433
|
|
794
793
|
},
|
|
795
|
-
[
|
|
794
|
+
[433,435],
|
|
796
795
|
['m',0,']'],
|
|
797
796
|
'targetCardinality',
|
|
798
797
|
{
|
|
799
798
|
'*':['c',0],
|
|
800
|
-
Number:['c',
|
|
799
|
+
Number:['c',436],
|
|
801
800
|
},
|
|
802
|
-
{'..':['c',
|
|
801
|
+
{'..':['c',437],'':0},
|
|
803
802
|
{
|
|
804
803
|
'*':['c',0],
|
|
805
804
|
Number:['c',0],
|
|
@@ -807,538 +806,535 @@ Number:['c',0],
|
|
|
807
806
|
'nullability',
|
|
808
807
|
{
|
|
809
808
|
null:['ck',0],
|
|
810
|
-
not:['ck',
|
|
809
|
+
not:['ck',440],
|
|
811
810
|
},
|
|
812
811
|
['mk',0,'null'],
|
|
813
812
|
'queryEOF',
|
|
814
|
-
[
|
|
815
|
-
{';':['c',
|
|
813
|
+
[443,452],
|
|
814
|
+
{';':['c',444],'':444},
|
|
816
815
|
['m',0,'EOF'],
|
|
817
816
|
'projectionSpec',
|
|
818
|
-
['mk',
|
|
819
|
-
['mk',
|
|
820
|
-
[
|
|
821
|
-
{'{':[
|
|
822
|
-
{excluding:[0,
|
|
817
|
+
['mk',447,'projection'],
|
|
818
|
+
['mk',448,'on'],
|
|
819
|
+
[449,512],
|
|
820
|
+
{'{':[450,558],'':450},
|
|
821
|
+
{excluding:[0,551],'':0},
|
|
823
822
|
'queryExpression',
|
|
824
823
|
{
|
|
825
|
-
'(':['c',
|
|
826
|
-
Id:[
|
|
824
|
+
'(':['c',453],
|
|
825
|
+
Id:[455,461,,,,'orderByLimitRestriction'],
|
|
827
826
|
},
|
|
828
|
-
[
|
|
829
|
-
['m',
|
|
827
|
+
[454,452],
|
|
828
|
+
['m',455,')'],
|
|
830
829
|
{
|
|
831
|
-
intersect:['ck',
|
|
832
|
-
minus:['ck',
|
|
833
|
-
union:['ck',
|
|
834
|
-
'':
|
|
830
|
+
intersect:['ck',456,,'precLeft_',4],
|
|
831
|
+
minus:['ck',456,,'precLeft_',2],except:'minus',
|
|
832
|
+
union:['ck',457,,'precLeft_',2],
|
|
833
|
+
'':459
|
|
835
834
|
},
|
|
836
|
-
{distinct:['ck',
|
|
837
|
-
{all:['ck',
|
|
838
|
-
[
|
|
839
|
-
{limit:[0,
|
|
835
|
+
{distinct:['ck',458],'':458},
|
|
836
|
+
{all:['ck',458],distinct:'all','':458},
|
|
837
|
+
[455,452,,,,'orderByLimitRestriction'],
|
|
838
|
+
{limit:[0,620,,'orderByLimitRestriction'],order:'limit','':0},
|
|
840
839
|
'selectQuery',
|
|
841
|
-
['mk',
|
|
840
|
+
['mk',462,'select'],
|
|
842
841
|
{
|
|
843
|
-
from:['ck',
|
|
844
|
-
|
|
845
|
-
|
|
842
|
+
from:['ck',463],
|
|
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
|
+
all:['ck',473],distinct:'all',
|
|
846
845
|
},
|
|
847
|
-
[
|
|
848
|
-
{mixin:['ck',
|
|
849
|
-
['m',
|
|
850
|
-
{Id:[
|
|
846
|
+
[464,481],
|
|
847
|
+
{mixin:['ck',465],'':470},
|
|
848
|
+
['m',466,'{'],
|
|
849
|
+
{Id:[467,204],'':468},
|
|
851
850
|
{
|
|
852
|
-
';':['c',
|
|
853
|
-
'}':
|
|
851
|
+
';':['c',466],
|
|
852
|
+
'}':468,
|
|
854
853
|
},
|
|
855
|
-
['m',
|
|
856
|
-
['mk',
|
|
857
|
-
{all:['ck',
|
|
858
|
-
{'{':[
|
|
859
|
-
{excluding:[
|
|
860
|
-
['g',
|
|
854
|
+
['m',469,'}'],
|
|
855
|
+
['mk',470,'into'],
|
|
856
|
+
{all:['ck',471],distinct:'all','':471},
|
|
857
|
+
{'{':[472,558],'':472},
|
|
858
|
+
{excluding:[479,551],'':479},
|
|
859
|
+
['g',474,,,'sqlStyle','inSelectItem'],
|
|
861
860
|
{
|
|
862
|
-
'*':['c',
|
|
863
|
-
Id:[
|
|
861
|
+
'*':['c',475],
|
|
862
|
+
Id:[475,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
864
863
|
},
|
|
865
|
-
{',':['c',
|
|
864
|
+
{',':['c',476],'':477},
|
|
866
865
|
{
|
|
867
|
-
'*':['c',
|
|
868
|
-
Id:[
|
|
866
|
+
'*':['c',475],
|
|
867
|
+
Id:[475,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
869
868
|
},
|
|
870
|
-
['mk',
|
|
871
|
-
[
|
|
872
|
-
{group:[0,
|
|
869
|
+
['mk',478,'from'],
|
|
870
|
+
[479,481],
|
|
871
|
+
{group:[0,608],where:'group',having:'group','':0},
|
|
873
872
|
'querySource',
|
|
874
|
-
[
|
|
875
|
-
{',':
|
|
876
|
-
{',':['c',
|
|
877
|
-
[
|
|
873
|
+
[482,486],
|
|
874
|
+
{',':483,'':0},
|
|
875
|
+
{',':['c',484],'':0},
|
|
876
|
+
[483,486],
|
|
878
877
|
'tableExpression',
|
|
879
878
|
{
|
|
880
|
-
'(':[
|
|
881
|
-
Id:[
|
|
879
|
+
'(':[487,499],
|
|
880
|
+
Id:[488,512],
|
|
882
881
|
},
|
|
883
|
-
['g',
|
|
882
|
+
['g',488],
|
|
884
883
|
{
|
|
885
|
-
cross:['ck',
|
|
886
|
-
inner:['ck',
|
|
887
|
-
full:['ck',
|
|
888
|
-
join:['ck',
|
|
884
|
+
cross:['ck',489],
|
|
885
|
+
inner:['ck',492],
|
|
886
|
+
full:['ck',491],left:'full',right:'full',
|
|
887
|
+
join:['ck',494],
|
|
889
888
|
'':0
|
|
890
889
|
},
|
|
891
|
-
['mk',
|
|
890
|
+
['mk',490,'join'],
|
|
892
891
|
{
|
|
893
|
-
'(':[
|
|
894
|
-
Id:[
|
|
892
|
+
'(':[488,499],
|
|
893
|
+
Id:[488,512],
|
|
895
894
|
},
|
|
896
|
-
{outer:['ck',
|
|
897
|
-
{one:[
|
|
898
|
-
['mk',
|
|
899
|
-
['g',
|
|
900
|
-
[
|
|
901
|
-
['mk',
|
|
902
|
-
[
|
|
895
|
+
{outer:['ck',492],'':492},
|
|
896
|
+
{one:[493,506],many:'one',exact:'one','':493},
|
|
897
|
+
['mk',494,'join'],
|
|
898
|
+
['g',495],
|
|
899
|
+
[496,486],
|
|
900
|
+
['mk',497,'on'],
|
|
901
|
+
[488,640],
|
|
903
902
|
'tableOrQueryParens',
|
|
904
|
-
['m',
|
|
903
|
+
['m',500,'(',,,'queryOnLeft'],
|
|
905
904
|
{
|
|
906
|
-
'(':[
|
|
907
|
-
Id:[
|
|
908
|
-
select:[
|
|
905
|
+
'(':[501,499],
|
|
906
|
+
Id:[502,486,,,'table','queryOnLeft'],
|
|
907
|
+
select:[502,452],
|
|
909
908
|
},
|
|
910
909
|
{
|
|
911
|
-
full:[
|
|
912
|
-
limit:[
|
|
913
|
-
'':
|
|
910
|
+
full:[502,487,,,'table','queryOnLeft'],join:'full',left:'full',cross:'full',inner:'full',right:'full',
|
|
911
|
+
limit:[502,455,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
|
|
912
|
+
'':502
|
|
914
913
|
},
|
|
915
|
-
['m',
|
|
914
|
+
['m',503,')'],
|
|
916
915
|
{
|
|
917
|
-
as:['ck',
|
|
918
|
-
Id:['ci',0,,'
|
|
916
|
+
as:['ck',504,,'queryOnLeft','table'],
|
|
917
|
+
Id:['ci',0,,'queryOnLeftSloppyAlias'],
|
|
919
918
|
'':0
|
|
920
919
|
},
|
|
921
920
|
['mi',0],
|
|
922
921
|
'joinCardinality',
|
|
923
922
|
{
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
many:['ck',
|
|
923
|
+
one:507,
|
|
924
|
+
exact:['ck',507],
|
|
925
|
+
many:['ck',508],
|
|
927
926
|
},
|
|
928
|
-
['mk',
|
|
929
|
-
['mk',
|
|
927
|
+
['mk',508,'one'],
|
|
928
|
+
['mk',509,'to'],
|
|
930
929
|
{
|
|
931
|
-
|
|
932
|
-
|
|
930
|
+
one:510,
|
|
931
|
+
exact:['ck',510],
|
|
933
932
|
many:['ck',0],
|
|
934
933
|
},
|
|
935
934
|
['mk',0,'one'],
|
|
936
935
|
'fromRefWithOptAlias',
|
|
937
|
-
[
|
|
938
|
-
{':':['c',
|
|
939
|
-
[
|
|
936
|
+
[513,519],
|
|
937
|
+
{':':['c',514],'':515},
|
|
938
|
+
[515,519],
|
|
940
939
|
{
|
|
941
|
-
as:['ck',
|
|
942
|
-
Id:['ci',0],
|
|
943
|
-
'':
|
|
940
|
+
as:['ck',516],
|
|
941
|
+
Id:['ci',0,,'isNoKeywordInRuleFollow'],
|
|
942
|
+
'':517
|
|
944
943
|
},
|
|
945
944
|
['mi',0],
|
|
946
|
-
['g',0
|
|
945
|
+
['g',0],
|
|
947
946
|
'fromPath',
|
|
948
|
-
['mi',
|
|
949
|
-
{'(':[
|
|
950
|
-
{'.':['c',
|
|
951
|
-
['miA',
|
|
952
|
-
{'(':[
|
|
947
|
+
['mi',520],
|
|
948
|
+
{'(':[521,525],'[':'(','':521},
|
|
949
|
+
{'.':['c',522,,'notAfterEntityArgOrFilter'],'':0},
|
|
950
|
+
['miA',523],
|
|
951
|
+
{'(':[521,525],'[':'(','':521},
|
|
953
952
|
'fromArgumentsAndFilter',
|
|
954
|
-
{'(':['c',
|
|
955
|
-
{Id:
|
|
956
|
-
{Id:[
|
|
953
|
+
{'(':['c',526],'':530},
|
|
954
|
+
{Id:527},
|
|
955
|
+
{Id:[528,532],'':529},
|
|
957
956
|
{
|
|
958
|
-
',':['c',
|
|
959
|
-
')':
|
|
957
|
+
',':['c',527],
|
|
958
|
+
')':529,
|
|
960
959
|
},
|
|
961
|
-
['m',
|
|
962
|
-
{'[':[0,
|
|
960
|
+
['m',530,')'],
|
|
961
|
+
{'[':[0,536],'':0},
|
|
963
962
|
'fromNamedArgument',
|
|
964
|
-
['mi',
|
|
965
|
-
['m',
|
|
966
|
-
[0,
|
|
963
|
+
['mi',533],
|
|
964
|
+
['m',534,':'],
|
|
965
|
+
[0,642],
|
|
967
966
|
'cardinalityAndFilter',
|
|
968
|
-
['m',
|
|
969
|
-
{Number:['c',
|
|
970
|
-
['m',
|
|
971
|
-
[
|
|
967
|
+
['m',537,'['],
|
|
968
|
+
{Number:['c',538,,'beforeColon'],'':539},
|
|
969
|
+
['m',539,':'],
|
|
970
|
+
[540,542],
|
|
972
971
|
['m',0,']'],
|
|
973
972
|
'filterClauses',
|
|
974
973
|
{
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
group:['g',
|
|
978
|
-
'':
|
|
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
|
+
where:['ck',543],
|
|
976
|
+
group:['g',544,1],limit:'group',order:'group',having:'group',
|
|
977
|
+
'':544
|
|
979
978
|
},
|
|
980
|
-
[
|
|
981
|
-
{group:['g',
|
|
982
|
-
[
|
|
983
|
-
{having:['ck',
|
|
984
|
-
[
|
|
985
|
-
{
|
|
986
|
-
[0,
|
|
979
|
+
[544,640],
|
|
980
|
+
{group:['g',545,,'hide_'],'':546},
|
|
981
|
+
[546,614],
|
|
982
|
+
{having:['ck',547,,'hide_'],'':548},
|
|
983
|
+
[548,640],
|
|
984
|
+
{Id:['g',549,,'hide_'],'':0},
|
|
985
|
+
[0,620],
|
|
987
986
|
'excludingClause',
|
|
988
|
-
['mk',
|
|
989
|
-
['m',
|
|
990
|
-
{Id:
|
|
991
|
-
{Id:['ciA',
|
|
987
|
+
['mk',552,'excluding'],
|
|
988
|
+
['m',553,'{'],
|
|
989
|
+
{Id:554},
|
|
990
|
+
{Id:['ciA',555],'':556},
|
|
992
991
|
{
|
|
993
|
-
',':['c',
|
|
994
|
-
'}':
|
|
992
|
+
',':['c',554],
|
|
993
|
+
'}':556,
|
|
995
994
|
},
|
|
996
995
|
['m',0,'}',,,'afterBrace'],
|
|
997
996
|
'selectItemsList',
|
|
998
|
-
['m',
|
|
997
|
+
['m',559,'{',,'top','inSelectItem'],
|
|
999
998
|
{
|
|
1000
|
-
'*':['c',
|
|
1001
|
-
Id:[
|
|
1002
|
-
'':
|
|
999
|
+
'*':['c',560],
|
|
1000
|
+
Id:[560,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1001
|
+
'':561
|
|
1003
1002
|
},
|
|
1004
1003
|
{
|
|
1005
|
-
',':['c',
|
|
1006
|
-
'}':
|
|
1004
|
+
',':['c',559],
|
|
1005
|
+
'}':561,
|
|
1007
1006
|
},
|
|
1008
1007
|
['m',0,'}',,,'afterBrace'],
|
|
1009
1008
|
'nestedSelectItemsList',
|
|
1010
|
-
['m',
|
|
1009
|
+
['m',564,'{',,,'inSelectItem'],
|
|
1011
1010
|
{
|
|
1012
|
-
'*':['c',
|
|
1013
|
-
Id:[
|
|
1014
|
-
'':
|
|
1011
|
+
'*':['c',565],
|
|
1012
|
+
Id:[565,568],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1013
|
+
'':566
|
|
1015
1014
|
},
|
|
1016
1015
|
{
|
|
1017
|
-
',':['c',
|
|
1018
|
-
'}':
|
|
1016
|
+
',':['c',564],
|
|
1017
|
+
'}':566,
|
|
1019
1018
|
},
|
|
1020
1019
|
['m',0,'}',,,'afterBrace'],
|
|
1021
1020
|
'selectItemDef',
|
|
1022
|
-
{'@':[
|
|
1023
|
-
{virtual:['ck',
|
|
1024
|
-
['g',
|
|
1025
|
-
{key:['ck',
|
|
1021
|
+
{'@':[568,776],'':569},
|
|
1022
|
+
{virtual:['ck',570,1,'modifierRestriction'],'':570},
|
|
1023
|
+
['g',571,,,'key','columnExpr'],
|
|
1024
|
+
{key:['ck',572,,'modifierRestriction'],'':572},
|
|
1026
1025
|
{
|
|
1027
|
-
'#':[
|
|
1028
|
-
Id:[
|
|
1029
|
-
'{':[
|
|
1026
|
+
'#':[573,642,1],'(':'#','+':'#','-':'#',':':'#','?':'#',new:'#',not:'#',case:'#',cast:'#',null:'#',true:'#',false:'#',Number:'#',String:'#',exists:'#',QuotedLiteral:'#',
|
|
1027
|
+
Id:[575,671],
|
|
1028
|
+
'{':[586,563],
|
|
1030
1029
|
},
|
|
1031
1030
|
{
|
|
1032
|
-
as:['ck',
|
|
1033
|
-
Id:['ci',
|
|
1034
|
-
'':
|
|
1031
|
+
as:['ck',574],
|
|
1032
|
+
Id:['ci',583],
|
|
1033
|
+
'':583
|
|
1035
1034
|
},
|
|
1036
|
-
['mi',
|
|
1035
|
+
['mi',583],
|
|
1037
1036
|
{
|
|
1038
|
-
over:['ck',
|
|
1039
|
-
'*':[
|
|
1040
|
-
as:['ck',
|
|
1041
|
-
Id:['ci',
|
|
1042
|
-
'.':['c',
|
|
1043
|
-
'':
|
|
1037
|
+
over:['ck',576],
|
|
1038
|
+
'*':[578,643],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
|
|
1039
|
+
as:['ck',580],
|
|
1040
|
+
Id:['ci',583,,,,'nestedExpand'],
|
|
1041
|
+
'.':['c',581],
|
|
1042
|
+
'':583
|
|
1044
1043
|
},
|
|
1045
|
-
[
|
|
1046
|
-
{'*':[
|
|
1044
|
+
[577,734],
|
|
1045
|
+
{'*':[578,643],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*','':578},
|
|
1047
1046
|
{
|
|
1048
|
-
as:['ck',
|
|
1049
|
-
Id:['ci',
|
|
1050
|
-
'':
|
|
1047
|
+
as:['ck',579],
|
|
1048
|
+
Id:['ci',583],
|
|
1049
|
+
'':583
|
|
1051
1050
|
},
|
|
1052
|
-
['mi',
|
|
1053
|
-
['mi',
|
|
1051
|
+
['mi',583],
|
|
1052
|
+
['mi',583,,,,'nestedExpand'],
|
|
1054
1053
|
{
|
|
1055
|
-
'{':[
|
|
1054
|
+
'{':[582,563],
|
|
1056
1055
|
'*':['c',0],
|
|
1057
1056
|
},
|
|
1058
|
-
{excluding:[0,
|
|
1059
|
-
{'{':['g',
|
|
1060
|
-
[
|
|
1061
|
-
{excluding:[
|
|
1062
|
-
{excluding:[
|
|
1063
|
-
['mk',
|
|
1064
|
-
['mi',
|
|
1065
|
-
['g',
|
|
1066
|
-
{'@':[
|
|
1067
|
-
{':':['c',
|
|
1057
|
+
{excluding:[0,551],'':0},
|
|
1058
|
+
{'{':['g',584,,'nestedExpand'],'':589},
|
|
1059
|
+
[585,563],
|
|
1060
|
+
{excluding:[589,551],'':589},
|
|
1061
|
+
{excluding:[587,551],'':587},
|
|
1062
|
+
['mk',588,'as'],
|
|
1063
|
+
['mi',589],
|
|
1064
|
+
['g',590,,,,'columnExpr'],
|
|
1065
|
+
{'@':[590,779],'':591},
|
|
1066
|
+
{':':['c',592],'':0},
|
|
1068
1067
|
{
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
association:['ck',599,1,'columnExpr'],
|
|
1074
|
-
composition:['ck',601,1,'columnExpr'],
|
|
1068
|
+
Id:[605,358],'{':'Id',
|
|
1069
|
+
redirected:['ck',593,1],
|
|
1070
|
+
association:['ck',597,1,'columnExpr'],
|
|
1071
|
+
composition:['ck',599,1,'columnExpr'],
|
|
1075
1072
|
},
|
|
1076
|
-
[
|
|
1077
|
-
[
|
|
1078
|
-
[597,39],
|
|
1073
|
+
['mk',594,'to'],
|
|
1074
|
+
[595,39],
|
|
1079
1075
|
{
|
|
1080
|
-
on:['ck',
|
|
1081
|
-
'{':[
|
|
1082
|
-
'':
|
|
1076
|
+
on:['ck',596],
|
|
1077
|
+
'{':[605,194],
|
|
1078
|
+
'':605
|
|
1083
1079
|
},
|
|
1084
|
-
[
|
|
1085
|
-
{'[':[
|
|
1086
|
-
['mk',
|
|
1087
|
-
{'[':[
|
|
1088
|
-
['mk',
|
|
1089
|
-
{one:['ck',
|
|
1090
|
-
[
|
|
1091
|
-
['mk',
|
|
1092
|
-
[
|
|
1093
|
-
['g',
|
|
1094
|
-
{'@':[
|
|
1080
|
+
[605,640],
|
|
1081
|
+
{'[':[598,427],'':598},
|
|
1082
|
+
['mk',601,'to'],
|
|
1083
|
+
{'[':[600,427],'':600},
|
|
1084
|
+
['mk',601,'of'],
|
|
1085
|
+
{one:['ck',602,1,'noRepeatedCardinality'],many:'one','':602},
|
|
1086
|
+
[603,39],
|
|
1087
|
+
['mk',604,'on'],
|
|
1088
|
+
[605,640],
|
|
1089
|
+
['g',606],
|
|
1090
|
+
{'@':[606,773],'':0},
|
|
1095
1091
|
'whereGroupByHaving',
|
|
1096
|
-
{where:['ck',
|
|
1097
|
-
[
|
|
1098
|
-
{group:[
|
|
1099
|
-
{having:['ck',
|
|
1100
|
-
[0,
|
|
1092
|
+
{where:['ck',609],'':610},
|
|
1093
|
+
[610,640],
|
|
1094
|
+
{group:[611,614],'':611},
|
|
1095
|
+
{having:['ck',612],'':0},
|
|
1096
|
+
[0,640],
|
|
1101
1097
|
'groupByClause',
|
|
1102
|
-
['mk',
|
|
1103
|
-
['mk',
|
|
1104
|
-
[
|
|
1105
|
-
{',':['c',
|
|
1106
|
-
[
|
|
1098
|
+
['mk',615,'group'],
|
|
1099
|
+
['mk',616,'by'],
|
|
1100
|
+
[617,642],
|
|
1101
|
+
{',':['c',618],'':0},
|
|
1102
|
+
[617,642],
|
|
1107
1103
|
'orderByLimitOffset',
|
|
1108
|
-
{order:[
|
|
1109
|
-
{limit:['ck',
|
|
1110
|
-
[
|
|
1111
|
-
{offset:['ck',
|
|
1112
|
-
[0,
|
|
1104
|
+
{order:[621,626],'':621},
|
|
1105
|
+
{limit:['ck',622],'':0},
|
|
1106
|
+
[623,642],
|
|
1107
|
+
{offset:['ck',624],'':0},
|
|
1108
|
+
[0,642],
|
|
1113
1109
|
'orderByClause',
|
|
1114
|
-
['mk',
|
|
1115
|
-
['mk',
|
|
1116
|
-
[
|
|
1117
|
-
{',':['c',
|
|
1118
|
-
[
|
|
1110
|
+
['mk',627,'order'],
|
|
1111
|
+
['mk',628,'by'],
|
|
1112
|
+
[629,632],
|
|
1113
|
+
{',':['c',630],'':0},
|
|
1114
|
+
[629,632],
|
|
1119
1115
|
'orderByExpression',
|
|
1120
|
-
[
|
|
1121
|
-
{asc:['ck',
|
|
1122
|
-
{nulls:['ck',
|
|
1116
|
+
[633,642],
|
|
1117
|
+
{asc:['ck',634],desc:'asc','':634},
|
|
1118
|
+
{nulls:['ck',635],'':0},
|
|
1123
1119
|
{last:['ck',0],first:'last'},
|
|
1124
1120
|
'conditionEOF',
|
|
1125
|
-
[
|
|
1121
|
+
[638,642],
|
|
1126
1122
|
['m',0,'EOF'],
|
|
1127
1123
|
'condition',
|
|
1128
|
-
[0,
|
|
1124
|
+
[0,642],
|
|
1129
1125
|
'expression',
|
|
1130
1126
|
{
|
|
1131
|
-
'(':[
|
|
1132
|
-
'#':[
|
|
1133
|
-
':':['c',
|
|
1134
|
-
'?':['c',
|
|
1135
|
-
Id:[
|
|
1136
|
-
new:['ck',
|
|
1137
|
-
exists:['ck',
|
|
1138
|
-
case:[
|
|
1139
|
-
cast:[
|
|
1140
|
-
'+':['c',
|
|
1141
|
-
not:['ck',
|
|
1127
|
+
'(':[643,677],
|
|
1128
|
+
'#':[654,770],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
|
|
1129
|
+
':':['c',644],
|
|
1130
|
+
'?':['c',654,,'hide_'],
|
|
1131
|
+
Id:[646,671],
|
|
1132
|
+
new:['ck',649,1],
|
|
1133
|
+
exists:['ck',650],
|
|
1134
|
+
case:[654,689],
|
|
1135
|
+
cast:[654,700],
|
|
1136
|
+
'+':['c',653,,'precRight_',30],'-':'+',
|
|
1137
|
+
not:['ck',653,,'precRight_',8],
|
|
1142
1138
|
},
|
|
1143
|
-
['g',
|
|
1139
|
+
['g',654],
|
|
1144
1140
|
{
|
|
1145
|
-
Id:['ciA',
|
|
1146
|
-
Number:['c',
|
|
1141
|
+
Id:['ciA',645],
|
|
1142
|
+
Number:['c',654,,'hide_'],
|
|
1147
1143
|
},
|
|
1148
|
-
{'.':[
|
|
1149
|
-
{over:['ck',
|
|
1150
|
-
[
|
|
1151
|
-
['g',
|
|
1152
|
-
[
|
|
1144
|
+
{'.':[654,673],'':654},
|
|
1145
|
+
{over:['ck',647],'':648},
|
|
1146
|
+
[648,734],
|
|
1147
|
+
['g',654],
|
|
1148
|
+
[654,671],
|
|
1153
1149
|
{
|
|
1154
|
-
'(':['c',
|
|
1155
|
-
Id:[
|
|
1156
|
-
'?':['c',
|
|
1150
|
+
'(':['c',651],
|
|
1151
|
+
Id:[654,671],
|
|
1152
|
+
'?':['c',654,,'hide_'],
|
|
1157
1153
|
},
|
|
1158
|
-
[
|
|
1159
|
-
['m',
|
|
1160
|
-
[
|
|
1154
|
+
[652,452],
|
|
1155
|
+
['m',654,')'],
|
|
1156
|
+
[654,642],
|
|
1161
1157
|
{
|
|
1162
|
-
'*':['c',
|
|
1163
|
-
'+':['c',
|
|
1164
|
-
'||':['c',
|
|
1165
|
-
and:['ck',
|
|
1166
|
-
or:['ck',
|
|
1167
|
-
'?':['c',
|
|
1168
|
-
'<':['c',
|
|
1169
|
-
'==':['c',
|
|
1170
|
-
is:['ck',
|
|
1171
|
-
not:['ck',
|
|
1172
|
-
in:['g',
|
|
1158
|
+
'*':['c',658,,'precLeft_',24],'/':'*',
|
|
1159
|
+
'+':['c',658,,'precLeft_',22],'-':'+',
|
|
1160
|
+
'||':['c',658,,'precLeft_',20],
|
|
1161
|
+
and:['ck',658,,'precLeft_',4],
|
|
1162
|
+
or:['ck',658,,'precLeft_',2],
|
|
1163
|
+
'?':['c',655,,'precRight_',0],
|
|
1164
|
+
'<':['c',657,,'precNone_',10],'=':'<','>':'<','!=':'<','<=':'<','<>':'<','>=':'<',
|
|
1165
|
+
'==':['c',658,,'precNone_',10],
|
|
1166
|
+
is:['ck',659,,'precNone_',10],
|
|
1167
|
+
not:['ck',661,,'isNegatedRelation',10],
|
|
1168
|
+
in:['g',661,,'precNone_',10],like:'in',between:'in',
|
|
1173
1169
|
'':0
|
|
1174
1170
|
},
|
|
1175
|
-
[
|
|
1176
|
-
['m',
|
|
1177
|
-
{all:['ck',
|
|
1178
|
-
[
|
|
1179
|
-
{not:['ck',
|
|
1180
|
-
['mk',
|
|
1171
|
+
[656,642],
|
|
1172
|
+
['m',658,':'],
|
|
1173
|
+
{all:['ck',658],any:'all',some:'all','':658},
|
|
1174
|
+
[669,642],
|
|
1175
|
+
{not:['ck',660],'':660},
|
|
1176
|
+
['mk',669,'null'],
|
|
1181
1177
|
{
|
|
1182
|
-
between:['ck',
|
|
1183
|
-
in:['ck',
|
|
1184
|
-
like:['ck',
|
|
1178
|
+
between:['ck',662],
|
|
1179
|
+
in:['ck',665],
|
|
1180
|
+
like:['ck',666],
|
|
1185
1181
|
},
|
|
1186
|
-
[
|
|
1187
|
-
['mk',
|
|
1188
|
-
[
|
|
1189
|
-
[
|
|
1190
|
-
[
|
|
1191
|
-
{escape:['ck',
|
|
1192
|
-
[
|
|
1193
|
-
['g',
|
|
1182
|
+
[663,642],
|
|
1183
|
+
['mk',664,'and'],
|
|
1184
|
+
[669,642],
|
|
1185
|
+
[669,642],
|
|
1186
|
+
[667,642],
|
|
1187
|
+
{escape:['ck',668],'':669},
|
|
1188
|
+
[669,642],
|
|
1189
|
+
['g',654],
|
|
1194
1190
|
'valuePath',
|
|
1195
|
-
['mi',
|
|
1196
|
-
{'(':[
|
|
1197
|
-
{'.':['c',
|
|
1198
|
-
['miA',
|
|
1199
|
-
{'(':[
|
|
1191
|
+
['mi',672],
|
|
1192
|
+
{'(':[673,707],'[':'(','':673},
|
|
1193
|
+
{'.':['c',674,,'isDotForPath'],'':0},
|
|
1194
|
+
['miA',675],
|
|
1195
|
+
{'(':[673,707],'[':'(','':673},
|
|
1200
1196
|
'expressionOrQueryParens',
|
|
1201
|
-
['m',
|
|
1197
|
+
['m',678,'(',,,'queryOnLeft'],
|
|
1202
1198
|
{
|
|
1203
|
-
'(':[
|
|
1204
|
-
Id:[
|
|
1205
|
-
select:[
|
|
1199
|
+
'(':[679,677],
|
|
1200
|
+
Id:[681,642,,,'expr','queryOnLeft'],'#':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
|
|
1201
|
+
select:[682,452],
|
|
1206
1202
|
},
|
|
1207
1203
|
{
|
|
1208
|
-
'*':[
|
|
1209
|
-
',':[684
|
|
1210
|
-
limit:[
|
|
1211
|
-
'':
|
|
1204
|
+
'*':[680,643,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
|
|
1205
|
+
',':[682,684,,,'expr','queryOnLeft'],
|
|
1206
|
+
limit:[682,455,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
|
|
1207
|
+
'':682
|
|
1212
1208
|
},
|
|
1213
|
-
{',':[684
|
|
1214
|
-
{',':[684
|
|
1209
|
+
{',':[682,684],'':682},
|
|
1210
|
+
{',':[682,684],'':682},
|
|
1215
1211
|
['m',0,')'],
|
|
1216
1212
|
'continueExpressionslist',
|
|
1217
|
-
['m',
|
|
1218
|
-
{Id:
|
|
1219
|
-
{Id:[
|
|
1220
|
-
{',':['c',
|
|
1213
|
+
['m',685,','],
|
|
1214
|
+
{Id:686,'#':686,'(':686,'+':686,'-':686,':':686,'?':686,not:686,case:686,cast:686,null:686,true:686,false:686,Number:686,String:686,exists:686,QuotedLiteral:686},
|
|
1215
|
+
{Id:[687,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id','':0},
|
|
1216
|
+
{',':['c',686],'':0},
|
|
1221
1217
|
'caseExpression',
|
|
1222
|
-
['mk',
|
|
1223
|
-
{Id:[
|
|
1224
|
-
{when:
|
|
1225
|
-
{when:['ck',
|
|
1226
|
-
[
|
|
1227
|
-
['mk',
|
|
1228
|
-
[
|
|
1229
|
-
{else:['ck',
|
|
1230
|
-
[
|
|
1218
|
+
['mk',690,'case'],
|
|
1219
|
+
{Id:[691,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id','':691},
|
|
1220
|
+
{when:692},
|
|
1221
|
+
{when:['ck',693],'':696},
|
|
1222
|
+
[694,642],
|
|
1223
|
+
['mk',695,'then'],
|
|
1224
|
+
[692,642],
|
|
1225
|
+
{else:['ck',697],'':698},
|
|
1226
|
+
[698,642],
|
|
1231
1227
|
['mk',0,'end'],
|
|
1232
1228
|
'castFunction',
|
|
1233
|
-
['mk',
|
|
1234
|
-
['m',
|
|
1235
|
-
[
|
|
1236
|
-
['mk',
|
|
1237
|
-
[
|
|
1229
|
+
['mk',701,'cast'],
|
|
1230
|
+
['m',702,'('],
|
|
1231
|
+
[703,642],
|
|
1232
|
+
['mk',704,'as'],
|
|
1233
|
+
[705,404],
|
|
1238
1234
|
['m',0,')'],
|
|
1239
1235
|
'argumentsAndFilter',
|
|
1240
|
-
{'(':['c',
|
|
1241
|
-
{Id:['ciA',
|
|
1236
|
+
{'(':['c',708,,,,'prepareSpecialFunction'],'':727},
|
|
1237
|
+
{Id:['ciA',709,,'isNamedArg'],'':720},
|
|
1242
1238
|
{
|
|
1243
|
-
':':['c',
|
|
1244
|
-
'=>':['c',
|
|
1239
|
+
':':['c',710],
|
|
1240
|
+
'=>':['c',715],
|
|
1245
1241
|
},
|
|
1246
|
-
[
|
|
1247
|
-
{',':['c',
|
|
1242
|
+
[711,642],
|
|
1243
|
+
{',':['c',712],'':726},
|
|
1248
1244
|
{
|
|
1249
|
-
Id:['ciA',
|
|
1250
|
-
')':
|
|
1245
|
+
Id:['ciA',713],
|
|
1246
|
+
')':726,
|
|
1251
1247
|
},
|
|
1252
|
-
['m',
|
|
1253
|
-
[
|
|
1254
|
-
[
|
|
1255
|
-
{',':['c',
|
|
1248
|
+
['m',714,':'],
|
|
1249
|
+
[711,642],
|
|
1250
|
+
[716,642],
|
|
1251
|
+
{',':['c',717],'':726},
|
|
1256
1252
|
{
|
|
1257
|
-
Id:['ciA',
|
|
1258
|
-
')':
|
|
1253
|
+
Id:['ciA',718],
|
|
1254
|
+
')':726,
|
|
1259
1255
|
},
|
|
1260
|
-
['m',
|
|
1261
|
-
[
|
|
1262
|
-
{Id:[
|
|
1263
|
-
{',':['c',
|
|
1256
|
+
['m',719,'=>'],
|
|
1257
|
+
[716,642],
|
|
1258
|
+
{Id:[721,729],'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',DeleteStarFromSet:'Id','':726},
|
|
1259
|
+
{',':['c',722,,,,'nextFunctionArgument'],'':723},
|
|
1264
1260
|
{
|
|
1265
|
-
Id:[
|
|
1266
|
-
')':['g',
|
|
1261
|
+
Id:[721,729],'#':'Id','(':'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',DeleteStarFromSet:'Id',
|
|
1262
|
+
')':['g',723,1,'atRightParen'],order:')',
|
|
1267
1263
|
},
|
|
1268
|
-
{order:['ck',
|
|
1269
|
-
['mk',
|
|
1270
|
-
[
|
|
1271
|
-
['m',
|
|
1272
|
-
{'[':[0,
|
|
1264
|
+
{order:['ck',724],'':726},
|
|
1265
|
+
['mk',725,'by'],
|
|
1266
|
+
[726,749],
|
|
1267
|
+
['m',727,')'],
|
|
1268
|
+
{'[':[0,536],'':0},
|
|
1273
1269
|
'funcExpression',
|
|
1274
1270
|
{
|
|
1275
1271
|
' lookahead':'lGenericIntroOrExpr',
|
|
1276
|
-
Id:[
|
|
1277
|
-
GenericExpr:['ckA',
|
|
1278
|
-
GenericIntro:['ckA',
|
|
1272
|
+
Id:[731,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1273
|
+
GenericExpr:['ckA',731],
|
|
1274
|
+
GenericIntro:['ckA',730],
|
|
1279
1275
|
},
|
|
1280
|
-
[
|
|
1276
|
+
[731,642],
|
|
1281
1277
|
{
|
|
1282
1278
|
' lookahead':'lGenericSeparator',
|
|
1283
|
-
GenericSeparator:['ckA',
|
|
1279
|
+
GenericSeparator:['ckA',732],
|
|
1284
1280
|
'':0
|
|
1285
1281
|
},
|
|
1286
1282
|
{
|
|
1287
1283
|
' lookahead':'lGenericExpr',
|
|
1288
|
-
Id:[
|
|
1289
|
-
GenericExpr:['ckA',
|
|
1284
|
+
Id:[731,642],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1285
|
+
GenericExpr:['ckA',731],
|
|
1290
1286
|
},
|
|
1291
1287
|
'overClause',
|
|
1292
|
-
['m',
|
|
1293
|
-
{partition:['ck',
|
|
1294
|
-
['mk',
|
|
1295
|
-
[
|
|
1296
|
-
{order:['ck',
|
|
1297
|
-
['mk',
|
|
1298
|
-
[
|
|
1299
|
-
{rows:['ck',
|
|
1300
|
-
[
|
|
1288
|
+
['m',735,'('],
|
|
1289
|
+
{partition:['ck',736],'':738},
|
|
1290
|
+
['mk',737,'by'],
|
|
1291
|
+
[738,745],
|
|
1292
|
+
{order:['ck',739],'':741},
|
|
1293
|
+
['mk',740,'by'],
|
|
1294
|
+
[741,749],
|
|
1295
|
+
{rows:['ck',742],'':743},
|
|
1296
|
+
[743,758],
|
|
1301
1297
|
['m',0,')'],
|
|
1302
1298
|
'expressionsAsXpr',
|
|
1303
|
-
[
|
|
1304
|
-
{',':['c',
|
|
1305
|
-
[
|
|
1299
|
+
[746,642],
|
|
1300
|
+
{',':['c',747],'':0},
|
|
1301
|
+
[746,642],
|
|
1306
1302
|
'orderByClauseAsXpr',
|
|
1307
|
-
[
|
|
1308
|
-
{',':['c',
|
|
1309
|
-
[
|
|
1303
|
+
[750,753],
|
|
1304
|
+
{',':['c',751],'':0},
|
|
1305
|
+
[750,753],
|
|
1310
1306
|
'orderBySpecAsXpr',
|
|
1311
|
-
[
|
|
1312
|
-
{asc:['ck',
|
|
1313
|
-
{nulls:['ck',
|
|
1307
|
+
[754,642],
|
|
1308
|
+
{asc:['ck',755],desc:'asc','':755},
|
|
1309
|
+
{nulls:['ck',756],'':0},
|
|
1314
1310
|
{last:['ck',0],first:'last'},
|
|
1315
1311
|
'windowFrameClause',
|
|
1316
1312
|
{
|
|
1317
|
-
unbounded:['ck',
|
|
1318
|
-
Number:['c',
|
|
1319
|
-
current:['ck',
|
|
1320
|
-
between:['ck',
|
|
1313
|
+
unbounded:['ck',759],
|
|
1314
|
+
Number:['c',759],
|
|
1315
|
+
current:['ck',760],
|
|
1316
|
+
between:['ck',761],
|
|
1321
1317
|
},
|
|
1322
1318
|
['mk',0,'preceding'],
|
|
1323
1319
|
['mk',0,'row'],
|
|
1324
|
-
[
|
|
1325
|
-
['mk',
|
|
1326
|
-
[0,
|
|
1320
|
+
[762,765],
|
|
1321
|
+
['mk',763,'and'],
|
|
1322
|
+
[0,765],
|
|
1327
1323
|
'windowFrameBoundSpec',
|
|
1328
1324
|
{
|
|
1329
|
-
unbounded:['ck',
|
|
1330
|
-
Number:['c',
|
|
1331
|
-
current:['ck',
|
|
1325
|
+
unbounded:['ck',766],
|
|
1326
|
+
Number:['c',766],
|
|
1327
|
+
current:['ck',768],
|
|
1332
1328
|
},
|
|
1333
1329
|
{
|
|
1334
|
-
following:['ck',
|
|
1335
|
-
preceding:['ck',
|
|
1330
|
+
following:['ck',767],
|
|
1331
|
+
preceding:['ck',767],
|
|
1336
1332
|
},
|
|
1337
|
-
['g',0
|
|
1333
|
+
['g',0],
|
|
1338
1334
|
['mk',0,'row'],
|
|
1339
1335
|
'literalValue',
|
|
1340
1336
|
{
|
|
1341
|
-
'#':['c',
|
|
1337
|
+
'#':['c',771],
|
|
1342
1338
|
null:['ck',0],
|
|
1343
1339
|
true:['ck',0],false:'true',
|
|
1344
1340
|
Number:['c',0],
|
|
@@ -1347,102 +1343,102 @@ QuotedLiteral:['c',0],
|
|
|
1347
1343
|
},
|
|
1348
1344
|
['miA',0],
|
|
1349
1345
|
'annoAssignStd',
|
|
1350
|
-
['m',
|
|
1346
|
+
['m',774,'@',,,'annoInSameLine'],
|
|
1351
1347
|
{
|
|
1352
|
-
'(':[0,
|
|
1353
|
-
Id:[0,
|
|
1348
|
+
'(':[0,782],
|
|
1349
|
+
Id:[0,787],
|
|
1354
1350
|
},
|
|
1355
1351
|
'annoAssignCol',
|
|
1356
|
-
['m',
|
|
1352
|
+
['m',777,'@'],
|
|
1357
1353
|
{
|
|
1358
|
-
'(':[0,
|
|
1359
|
-
Id:[0,
|
|
1354
|
+
'(':[0,782],
|
|
1355
|
+
Id:[0,787],
|
|
1360
1356
|
},
|
|
1361
1357
|
'annoAssignMid',
|
|
1362
|
-
['m',
|
|
1358
|
+
['m',780,'@',,,'annoInSameLine'],
|
|
1363
1359
|
{
|
|
1364
|
-
'(':[0,
|
|
1365
|
-
Id:[0,
|
|
1360
|
+
'(':[0,782],
|
|
1361
|
+
Id:[0,791],
|
|
1366
1362
|
},
|
|
1367
1363
|
'annoAssignParen',
|
|
1368
|
-
['m',
|
|
1369
|
-
{Id:[
|
|
1364
|
+
['m',783,'(',,,'annoInSameLine'],
|
|
1365
|
+
{Id:[784,787],'':785},
|
|
1370
1366
|
{
|
|
1371
|
-
',':['c',
|
|
1372
|
-
')':
|
|
1367
|
+
',':['c',783],
|
|
1368
|
+
')':785,
|
|
1373
1369
|
},
|
|
1374
1370
|
['m',0,')'],
|
|
1375
1371
|
'annoAssignBase',
|
|
1376
|
-
[
|
|
1377
|
-
{':':['c',
|
|
1378
|
-
[0,
|
|
1372
|
+
[788,791],
|
|
1373
|
+
{':':['c',789,,'annoInSameLine'],'':0},
|
|
1374
|
+
[0,813],
|
|
1379
1375
|
'annoNamePath',
|
|
1380
|
-
['miA',
|
|
1381
|
-
{'.':['c',
|
|
1376
|
+
['miA',792],
|
|
1377
|
+
{'.':['c',793],'':795},
|
|
1382
1378
|
{
|
|
1383
|
-
Id:['ciA',
|
|
1384
|
-
'@':['c',
|
|
1379
|
+
Id:['ciA',792],
|
|
1380
|
+
'@':['c',794],
|
|
1385
1381
|
},
|
|
1386
|
-
['miA',
|
|
1387
|
-
{'#':[0,
|
|
1382
|
+
['miA',792],
|
|
1383
|
+
{'#':[0,804,,'annoInSameLine'],'':0},
|
|
1388
1384
|
'annoPath',
|
|
1389
1385
|
{
|
|
1390
|
-
Id:['ciA',
|
|
1391
|
-
'@':['c',
|
|
1386
|
+
Id:['ciA',799],
|
|
1387
|
+
'@':['c',798],
|
|
1392
1388
|
},
|
|
1393
|
-
['miA',
|
|
1394
|
-
{'.':['c',
|
|
1389
|
+
['miA',799],
|
|
1390
|
+
{'.':['c',800],'':802},
|
|
1395
1391
|
{
|
|
1396
|
-
Id:['ciA',
|
|
1397
|
-
'@':['c',
|
|
1392
|
+
Id:['ciA',799],
|
|
1393
|
+
'@':['c',801],
|
|
1398
1394
|
},
|
|
1399
|
-
['miA',
|
|
1400
|
-
{'#':[0,
|
|
1395
|
+
['miA',799],
|
|
1396
|
+
{'#':[0,804],'':0},
|
|
1401
1397
|
'annoPathVariant',
|
|
1402
|
-
['m',
|
|
1403
|
-
['miA',
|
|
1404
|
-
{'.':['c',
|
|
1405
|
-
['miA',
|
|
1398
|
+
['m',805,'#'],
|
|
1399
|
+
['miA',806],
|
|
1400
|
+
{'.':['c',807],'':0},
|
|
1401
|
+
['miA',806],
|
|
1406
1402
|
'annoStructValue',
|
|
1407
|
-
[
|
|
1408
|
-
{':':['c',
|
|
1409
|
-
[0,
|
|
1403
|
+
[810,797],
|
|
1404
|
+
{':':['c',811],'':0},
|
|
1405
|
+
[0,813],
|
|
1410
1406
|
'annoValue',
|
|
1411
1407
|
{
|
|
1412
|
-
'#':[0,
|
|
1413
|
-
'+':['c',
|
|
1414
|
-
Id:[0,
|
|
1415
|
-
'{':['c',
|
|
1416
|
-
'[':['c',
|
|
1417
|
-
'(':['c',
|
|
1408
|
+
'#':[0,770],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
|
|
1409
|
+
'+':['c',814],'-':'+',
|
|
1410
|
+
Id:[0,797],'@':'Id',
|
|
1411
|
+
'{':['c',815],
|
|
1412
|
+
'[':['c',819,,,,'arrayAnno'],
|
|
1413
|
+
'(':['c',826],
|
|
1418
1414
|
},
|
|
1419
1415
|
['m',0,'Number'],
|
|
1420
|
-
{Id:[
|
|
1416
|
+
{Id:[816,809],'@':'Id','':817},
|
|
1421
1417
|
{
|
|
1422
|
-
',':['c',
|
|
1423
|
-
'}':
|
|
1424
|
-
Id:['g',
|
|
1418
|
+
',':['c',815],
|
|
1419
|
+
'}':817,
|
|
1420
|
+
Id:['g',815,,'fail'],'@':'Id',
|
|
1425
1421
|
},
|
|
1426
|
-
['g',
|
|
1422
|
+
['g',818],
|
|
1427
1423
|
['m',0,'}'],
|
|
1428
1424
|
{
|
|
1429
|
-
Id:[
|
|
1430
|
-
'...':['c',
|
|
1431
|
-
'':
|
|
1425
|
+
Id:[823,813],'#':'Id','(':'Id','+':'Id','-':'Id','@':'Id','[':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
|
|
1426
|
+
'...':['c',820,,'arrayAnno','ellipsis'],
|
|
1427
|
+
'':824
|
|
1432
1428
|
},
|
|
1433
1429
|
{
|
|
1434
|
-
up:['ck',
|
|
1435
|
-
',':
|
|
1430
|
+
up:['ck',821],
|
|
1431
|
+
',':823,']':823,
|
|
1436
1432
|
},
|
|
1437
|
-
['mk',
|
|
1438
|
-
[
|
|
1433
|
+
['mk',822,'to'],
|
|
1434
|
+
[823,813],
|
|
1439
1435
|
{
|
|
1440
|
-
',':['c',
|
|
1441
|
-
']':
|
|
1436
|
+
',':['c',819],
|
|
1437
|
+
']':824,
|
|
1442
1438
|
},
|
|
1443
|
-
['g',
|
|
1439
|
+
['g',825],
|
|
1444
1440
|
['m',0,']'],
|
|
1445
|
-
[
|
|
1441
|
+
[827,640],
|
|
1446
1442
|
['m',0,')'],
|
|
1447
1443
|
]
|
|
1448
1444
|
class CdlParser extends AstBuildingParser{
|
|
@@ -1497,8 +1493,8 @@ case'@':this.annoAssignStd({art},10);continue
|
|
|
1497
1493
|
default:this.s=11;continue
|
|
1498
1494
|
}
|
|
1499
1495
|
case 11:switch(this.lk()){
|
|
1500
|
-
case'define':this.ck(12);continue
|
|
1501
1496
|
case'type':case'view':case'event':case'action':case'aspect':case'entity':case'context':case'service':case'abstract':case'function':case'annotation':this.s=12;continue
|
|
1497
|
+
case'define':this.ck(12);continue
|
|
1502
1498
|
case'extend':if(this.ec('extensionRestriction')&&this.ck(13)){ art.kind = 'extend'; }continue
|
|
1503
1499
|
case'annotate':this.ec('extensionRestriction')&&this.ck(14);continue
|
|
1504
1500
|
default:this.e();continue
|
|
@@ -1585,7 +1581,7 @@ for(;;)switch(this.s){
|
|
|
1585
1581
|
case 31:if(this.simplePath(_={category:'global'},32)){extern=_.ref; $.proxy.extern = extern; $.outer.usings.push( $.proxy ); }continue
|
|
1586
1582
|
case 32:switch(this.lk()){
|
|
1587
1583
|
case'as':this.ck(33);continue
|
|
1588
|
-
default:if(this.gr(
|
|
1584
|
+
default:if(this.gr()){ this.classifyImplicitName( 'Using' ); }continue
|
|
1589
1585
|
}
|
|
1590
1586
|
case 33:if(this.mi(0,'UsingAlias')){ $.proxy.name = this.identAst(); }continue
|
|
1591
1587
|
default:
|
|
@@ -1615,7 +1611,7 @@ for(;;)switch(this.s){
|
|
|
1615
1611
|
case 39:if(this.mi(40,$.category)){ $.ref.path = [ this.identAst() ]; }continue
|
|
1616
1612
|
case 40:switch(this.l()){
|
|
1617
1613
|
case'.':this.c(41);continue
|
|
1618
|
-
default:this.gr(
|
|
1614
|
+
default:this.gr();continue
|
|
1619
1615
|
}
|
|
1620
1616
|
case 41:if(this.miA(40,$.category)){ $.ref.path.push( this.identAst() ); }continue
|
|
1621
1617
|
default:
|
|
@@ -1753,8 +1749,8 @@ case'(':this.paramsList({art:$.art},77);continue
|
|
|
1753
1749
|
default:this.s=77;continue
|
|
1754
1750
|
}
|
|
1755
1751
|
case 77:switch(this.lk()){
|
|
1756
|
-
case':':if(this.c(78)){ $.art.includes ??= []; }continue
|
|
1757
1752
|
case'{':this.s=81;continue
|
|
1753
|
+
case':':if(this.c(78)){ $.art.includes ??= []; }continue
|
|
1758
1754
|
case'as':this.ck(82);continue
|
|
1759
1755
|
default:this.e();continue
|
|
1760
1756
|
}
|
|
@@ -1786,7 +1782,7 @@ case 85:switch(this.lk()){
|
|
|
1786
1782
|
case'limit':case'order':this.orderByLimitOffset({query},86);continue
|
|
1787
1783
|
default:this.s=86;continue
|
|
1788
1784
|
}
|
|
1789
|
-
case 86:this.s=87;{this.afterBrace('normal')
|
|
1785
|
+
case 86:this.s=87;{this.afterBrace('normal')}continue;
|
|
1790
1786
|
case 87:switch(this.lk()){
|
|
1791
1787
|
case'actions':this.actionsBlock({art:$.art},0);continue
|
|
1792
1788
|
default:this.gr([';']);continue
|
|
@@ -2317,8 +2313,8 @@ case'@':this.annoAssignStd({art:$.art},234);continue
|
|
|
2317
2313
|
default:this.s=235;continue
|
|
2318
2314
|
}
|
|
2319
2315
|
case 235:switch(this.lk()){
|
|
2320
|
-
case'elements':if(this.ck(236))elements=this.lb();continue
|
|
2321
2316
|
case'{':this.s=236;continue
|
|
2317
|
+
case'elements':if(this.ck(236))elements=this.lb();continue
|
|
2322
2318
|
case'enum':this.enumSymbolsBlock({art:$.art},0);continue
|
|
2323
2319
|
case'(':this.typeNamedArgsList({art:$.art},0);continue
|
|
2324
2320
|
default:this.gr([';']);continue
|
|
@@ -2342,8 +2338,8 @@ default:this.s=241;continue
|
|
|
2342
2338
|
}
|
|
2343
2339
|
case 241:switch(this.lk()){
|
|
2344
2340
|
case'Id':if(this.simplePath(_={category:'artref'},242)){incl=_.ref; $.art.includes = [ incl ]; }continue
|
|
2345
|
-
case'elements':if(this.ckP(246,['{']))elements=this.lb();continue
|
|
2346
2341
|
case'{':this.s=246;continue
|
|
2342
|
+
case'elements':if(this.ckP(246,['{']))elements=this.lb();continue
|
|
2347
2343
|
case'actions':this.lP()&&this.actionsBlock({art:$.art},0);continue
|
|
2348
2344
|
case'enum':this.lP()&&this.enumSymbolsBlock({art:$.art},0);continue
|
|
2349
2345
|
case'(':this.typeNamedArgsList({art:$.art},0);continue
|
|
@@ -2449,8 +2445,8 @@ default:this.s=271;continue
|
|
|
2449
2445
|
}
|
|
2450
2446
|
case 271:switch(this.lk()){
|
|
2451
2447
|
case'Id':if(this.simplePath(_={category:'artref'},272)){incl=_.ref; $.art.includes = [ incl ]; }continue
|
|
2452
|
-
case'elements':if(this.ckP(275,['{']))elements=this.lb();continue
|
|
2453
2448
|
case'{':this.s=275;continue
|
|
2449
|
+
case'elements':if(this.ckP(275,['{']))elements=this.lb();continue
|
|
2454
2450
|
case'enum':this.lP()&&this.enumSymbolsBlock({art:$.art},0);continue
|
|
2455
2451
|
case'(':this.typeNamedArgsList({art:$.art},0);continue
|
|
2456
2452
|
default:this.gi(0,[';']);continue
|
|
@@ -2744,8 +2740,8 @@ case'@':this.annoAssignStd({art},343);continue
|
|
|
2744
2740
|
default:this.s=344;continue
|
|
2745
2741
|
}
|
|
2746
2742
|
case 344:switch(this.lk()){
|
|
2747
|
-
case'elements':if(this.ck(345))elements=this.lb();continue
|
|
2748
2743
|
case'{':this.s=345;continue
|
|
2744
|
+
case'elements':if(this.ck(345))elements=this.lb();continue
|
|
2749
2745
|
case'enum':this.enumSymbolsBlock({art},0);continue
|
|
2750
2746
|
case'(':this.typeNamedArgsList({art},0);continue
|
|
2751
2747
|
default:this.gr([';']);continue
|
|
@@ -2776,7 +2772,7 @@ case'Id':if(this.simplePath(_={category:'artref'},350)){ref=_.ref; $.art.type =
|
|
|
2776
2772
|
default:this.ei();continue
|
|
2777
2773
|
}
|
|
2778
2774
|
case 350:switch(this.lk()){
|
|
2779
|
-
case'(':case':':this.typeRefOptArgs({art:$.art},351,
|
|
2775
|
+
case'(':case':':this.typeRefOptArgs({art:$.art},351,405);continue
|
|
2780
2776
|
case'@':case'not':case'enum':case'null':case'default':this.typeExpression({art:$.art},0,359);continue
|
|
2781
2777
|
case',':case'{':this.s=352;{ $.art.includes = [ $.art.type ]; delete $.art.type; }continue
|
|
2782
2778
|
default:if(this.gr([';'])){ this.docComment( $.art ); }continue
|
|
@@ -2818,7 +2814,7 @@ case'association':if(this.ckP(370,['[','to'])){assoc=this.lb();this.elementRestr
|
|
|
2818
2814
|
case'composition':if(this.ckP(374,['[','of'])){assoc=this.lb();this.elementRestriction('calc')}continue;
|
|
2819
2815
|
case'array':if(this.ckP(378,['of'])){this.elementRestriction('calc')}continue;
|
|
2820
2816
|
case'many':if(this.ckP(379,['Id','{'])){this.elementRestriction('calc'); $.art.items = { location: this.lb().location }; }continue
|
|
2821
|
-
case'{':if(this.elementsBlock({art:$.art},
|
|
2817
|
+
case'{':if(this.elementsBlock({art:$.art},384)){this.elementRestriction('calc')}continue;
|
|
2822
2818
|
default:this.ei();continue
|
|
2823
2819
|
}
|
|
2824
2820
|
case 359:this.s=360;{ this.docComment( $.art ); }continue
|
|
@@ -2837,7 +2833,7 @@ default:this.s=363;continue
|
|
|
2837
2833
|
case 363:switch(this.lk()){
|
|
2838
2834
|
case'enum':if(this.enumSymbolsBlock({art:$.art},364)){this.elementRestriction('anno')}continue;
|
|
2839
2835
|
case'@':case'not':case'null':case'default':this.typeProperties({art:$.art},0);continue
|
|
2840
|
-
default:this.gr(
|
|
2836
|
+
default:this.gr();continue
|
|
2841
2837
|
}
|
|
2842
2838
|
case 364:switch(this.lk()){
|
|
2843
2839
|
case'not':case'null':this.gc(365,'elementRestriction','notNull')&&this.nullability({art:$.art},365);continue
|
|
@@ -2850,12 +2846,12 @@ default:this.s=367;continue
|
|
|
2850
2846
|
case 366:if(this.expression(_={},367)){expr=_.expr; $.art.default = expr; }continue
|
|
2851
2847
|
case 367:switch(this.lk()){
|
|
2852
2848
|
case'not':case'null':this.gc(0,'elementRestriction','notNull')&&this.nullability({art:$.art},0);continue
|
|
2853
|
-
default:this.gr(
|
|
2849
|
+
default:this.gr();continue
|
|
2854
2850
|
}
|
|
2855
2851
|
case 368:if(this.typeRefOptArgs({art:$.art},369)){ this.docComment( $.art ); }continue
|
|
2856
2852
|
case 369:switch(this.lk()){
|
|
2857
2853
|
case'@':case'not':case'null':case'default':this.typeProperties({art:$.art},0);continue
|
|
2858
|
-
default:this.gr(
|
|
2854
|
+
default:this.gr();continue
|
|
2859
2855
|
}
|
|
2860
2856
|
case 370:switch(this.l()){
|
|
2861
2857
|
case'[':this.cardinality({art:$.art},371);continue
|
|
@@ -2885,7 +2881,7 @@ case 378:if(this.mk(379,'of')){ $.art.items = { location: this.locationOfPrevTok
|
|
|
2885
2881
|
case 379:switch(this.lk()){
|
|
2886
2882
|
case'Id':this.typeRefOptArgs({art:$.art.items},380);continue
|
|
2887
2883
|
case'type':this.lP()&&this.typeTypeOf({art:$.art.items},380);continue
|
|
2888
|
-
case'{':this.elementsBlock({art:$.art.items},
|
|
2884
|
+
case'{':this.elementsBlock({art:$.art.items},383);continue
|
|
2889
2885
|
default:this.ei();continue
|
|
2890
2886
|
}
|
|
2891
2887
|
case 380:switch(this.lk()){
|
|
@@ -2893,86 +2889,85 @@ case'not':case'null':this.gc(381,'elementRestriction','notNull')&&this.nullabili
|
|
|
2893
2889
|
default:this.s=381;continue
|
|
2894
2890
|
}
|
|
2895
2891
|
case 381:switch(this.lk()){
|
|
2896
|
-
case'enum':this.enumSymbolsBlock({art:$.art.items},
|
|
2892
|
+
case'enum':this.enumSymbolsBlock({art:$.art.items},383);continue
|
|
2897
2893
|
default:this.s=382;{ this.docComment( $.art ); }continue
|
|
2898
2894
|
}
|
|
2899
2895
|
case 382:switch(this.l()){
|
|
2900
2896
|
case'@':this.annoAssignStd({art:$.art},382);continue
|
|
2901
|
-
default:this.
|
|
2897
|
+
default:this.gr();continue
|
|
2902
2898
|
}
|
|
2903
|
-
case 383:
|
|
2904
|
-
case 384:switch(this.lk()){
|
|
2899
|
+
case 383:switch(this.lk()){
|
|
2905
2900
|
case'not':case'null':this.gc(0,'elementRestriction','notNull')&&this.nullability({art:$.art.items},0);continue
|
|
2906
|
-
default:this.gr(
|
|
2901
|
+
default:this.gr();continue
|
|
2907
2902
|
}
|
|
2908
|
-
case
|
|
2903
|
+
case 384:switch(this.lk()){
|
|
2909
2904
|
case'not':case'null':this.nullability({art:$.art},0);continue
|
|
2910
|
-
default:this.gr(
|
|
2905
|
+
default:this.gr();continue
|
|
2911
2906
|
}
|
|
2912
2907
|
default:return this.exit_()
|
|
2913
2908
|
}
|
|
2914
2909
|
}
|
|
2915
2910
|
typeAssocProperties($,$next){
|
|
2916
2911
|
let target;let cond;let _
|
|
2917
|
-
this.rule_(
|
|
2912
|
+
this.rule_(386,$next)
|
|
2918
2913
|
for(;;)switch(this.s){
|
|
2919
|
-
case
|
|
2914
|
+
case 386:if(this.simplePath(_={category:'artref'},387)){target=_.ref; this.setAssocAndComposition( $.art, $.assoc, $.card, target );
|
|
2920
2915
|
this.docComment( $.art ); }continue
|
|
2921
|
-
case
|
|
2922
|
-
case'@':this.annoAssignStd({art:$.art},
|
|
2923
|
-
default:this.s=
|
|
2916
|
+
case 387:switch(this.l()){
|
|
2917
|
+
case'@':this.annoAssignStd({art:$.art},387);continue
|
|
2918
|
+
default:this.s=388;continue
|
|
2924
2919
|
}
|
|
2925
|
-
case
|
|
2926
|
-
case'on':this.ck(
|
|
2927
|
-
case'{':if(this.foreignKeysBlock({art:$.art},
|
|
2920
|
+
case 388:switch(this.lk()){
|
|
2921
|
+
case'on':this.ck(389);continue
|
|
2922
|
+
case'{':if(this.foreignKeysBlock({art:$.art},391)){ this.docComment( $.art ); }continue
|
|
2928
2923
|
case'@':case'not':case'null':case'default':this.typeProperties({art:$.art},0);continue
|
|
2929
|
-
default:this.gr(
|
|
2924
|
+
default:this.gr();continue
|
|
2930
2925
|
}
|
|
2931
|
-
case
|
|
2926
|
+
case 389:if(this.condition(_={},390)){cond=_.expr; $.art.on = cond;
|
|
2932
2927
|
this.docComment( $.art ); }continue
|
|
2933
|
-
case
|
|
2934
|
-
case'@':this.annoAssignStd({art:$.art},
|
|
2935
|
-
default:this.gr(
|
|
2928
|
+
case 390:switch(this.l()){
|
|
2929
|
+
case'@':this.annoAssignStd({art:$.art},390);continue
|
|
2930
|
+
default:this.gr();continue
|
|
2936
2931
|
}
|
|
2937
|
-
case
|
|
2932
|
+
case 391:switch(this.lk()){
|
|
2938
2933
|
case'@':case'not':case'null':case'default':this.typeProperties({art:$.art},0);continue
|
|
2939
|
-
default:this.gr(
|
|
2934
|
+
default:this.gr();continue
|
|
2940
2935
|
}
|
|
2941
2936
|
default:return this.exit_()
|
|
2942
2937
|
}
|
|
2943
2938
|
}
|
|
2944
2939
|
typeProperties($,$next){
|
|
2945
2940
|
let expr;let _
|
|
2946
|
-
this.rule_(
|
|
2941
|
+
this.rule_(393,$next)
|
|
2947
2942
|
for(;;)switch(this.s){
|
|
2948
|
-
case
|
|
2949
|
-
case'@':this.annoAssignStd({art:$.art},
|
|
2950
|
-
case'not':case'null':if(this.gc(0,'elementRestriction','notNull')&&this.nullability({art:$.art},
|
|
2951
|
-
case'default':this.gc(0,'elementRestriction','default')&&this.ck(
|
|
2952
|
-
default:this.gr(
|
|
2943
|
+
case 393:switch(this.lk()){
|
|
2944
|
+
case'@':this.annoAssignStd({art:$.art},393);continue
|
|
2945
|
+
case'not':case'null':if(this.gc(0,'elementRestriction','notNull')&&this.nullability({art:$.art},393)){ this.docComment( $.art ); }continue
|
|
2946
|
+
case'default':this.gc(0,'elementRestriction','default')&&this.ck(394);continue
|
|
2947
|
+
default:this.gr();continue
|
|
2953
2948
|
}
|
|
2954
|
-
case
|
|
2949
|
+
case 394:if(this.expression(_={},393)){expr=_.expr; $.art.default = expr; this.docComment( $.art ); }continue
|
|
2955
2950
|
default:return this.exit_()
|
|
2956
2951
|
}
|
|
2957
2952
|
}
|
|
2958
2953
|
typeTypeOf($,$next){
|
|
2959
2954
|
let location
|
|
2960
2955
|
let type;let _
|
|
2961
|
-
this.rule_(
|
|
2956
|
+
this.rule_(396,$next)
|
|
2962
2957
|
for(;;)switch(this.s){
|
|
2963
|
-
case
|
|
2964
|
-
case
|
|
2965
|
-
case
|
|
2966
|
-
case
|
|
2967
|
-
case':':if(this.c(
|
|
2968
|
-
default:if(this.gr(['@'])){ type.scope = 'typeOf'; type.path.unshift( { id: 'type of', location } ); }continue
|
|
2969
|
-
}
|
|
2970
|
-
case
|
|
2971
|
-
case
|
|
2972
|
-
case'.':this.c(
|
|
2973
|
-
default:this.gr(['@']);continue
|
|
2974
|
-
}
|
|
2975
|
-
case
|
|
2958
|
+
case 396:this.mk(397,'type');continue
|
|
2959
|
+
case 397:if(this.mk(398,'of')){ location = this.locationOfPrevTokens( 2 ); }continue
|
|
2960
|
+
case 398:if(this.simplePath(_={category:'ref'},399)){type=_.ref; $.art.type = type; }continue
|
|
2961
|
+
case 399:switch(this.l()){
|
|
2962
|
+
case':':if(this.c(400)){ type.scope = type.path.length; }continue
|
|
2963
|
+
default:if(this.gr(['@','not','enum','null'])){ type.scope = 'typeOf'; type.path.unshift( { id: 'type of', location } ); }continue
|
|
2964
|
+
}
|
|
2965
|
+
case 400:if(this.miA(401,'ref')){ type.path.push( this.identAst() ); }continue
|
|
2966
|
+
case 401:switch(this.l()){
|
|
2967
|
+
case'.':this.c(402);continue
|
|
2968
|
+
default:this.gr(['@','not','enum','null']);continue
|
|
2969
|
+
}
|
|
2970
|
+
case 402:if(this.miA(401,'ref')){ type.path.push( this.identAst() ); }continue
|
|
2976
2971
|
case 0:
|
|
2977
2972
|
this.attachLocation( $.art.type )
|
|
2978
2973
|
default:return this.exit_()
|
|
@@ -2981,75 +2976,75 @@ default:return this.exit_()
|
|
|
2981
2976
|
typeRefOptArgs($,$next,$startState){
|
|
2982
2977
|
let type=$.art.type
|
|
2983
2978
|
let open;let tok;let _
|
|
2984
|
-
this.rule_($startState??
|
|
2979
|
+
this.rule_($startState??404,$next)
|
|
2985
2980
|
for(;;)switch(this.s){
|
|
2986
|
-
case
|
|
2987
|
-
case
|
|
2988
|
-
case':':if(this.c(
|
|
2989
|
-
case'(':if(this.c(
|
|
2990
|
-
default:this.gr(
|
|
2991
|
-
}
|
|
2992
|
-
case
|
|
2993
|
-
case
|
|
2994
|
-
case'.':this.c(
|
|
2995
|
-
default:this.s=
|
|
2996
|
-
}
|
|
2997
|
-
case
|
|
2998
|
-
case
|
|
2999
|
-
case
|
|
3000
|
-
case'Number':if(this.c(
|
|
2981
|
+
case 404:if(this.simplePath(_={category:'artref'},405)){type=_.ref; $.art.type = type; }continue
|
|
2982
|
+
case 405:switch(this.l()){
|
|
2983
|
+
case':':if(this.c(406)){ type.scope = type.path.length; }continue
|
|
2984
|
+
case'(':if(this.c(410))open=this.lb();continue
|
|
2985
|
+
default:this.gr();continue
|
|
2986
|
+
}
|
|
2987
|
+
case 406:if(this.miA(407,'ref')){ type.path.push( this.identAst() ); }continue
|
|
2988
|
+
case 407:switch(this.l()){
|
|
2989
|
+
case'.':this.c(408);continue
|
|
2990
|
+
default:this.s=409;continue
|
|
2991
|
+
}
|
|
2992
|
+
case 408:if(this.miA(407,'ref')){ type.path.push( this.identAst() ); }continue
|
|
2993
|
+
case 409:if(this.gr()){ this.attachLocation( $.art.type ); }continue
|
|
2994
|
+
case 410:switch(this.lk()){
|
|
2995
|
+
case'Number':if(this.c(411)){ $.art.$typeArgs = this.createArray( open );
|
|
3001
2996
|
$.art.$typeArgs.push( this.unsignedIntegerLiteral() ); }continue
|
|
3002
|
-
case'Id':this.s=
|
|
2997
|
+
case'Id':this.s=414;{ $.art.$typeArgs = this.createDict( open ); }continue
|
|
3003
2998
|
default:this.ei();continue
|
|
3004
2999
|
}
|
|
3005
|
-
case
|
|
3006
|
-
case',':this.c(
|
|
3007
|
-
default:this.s=
|
|
3000
|
+
case 411:switch(this.l()){
|
|
3001
|
+
case',':this.c(412);continue
|
|
3002
|
+
default:this.s=413;continue
|
|
3008
3003
|
}
|
|
3009
|
-
case
|
|
3010
|
-
case'Number':if(this.c(
|
|
3011
|
-
case'floating':case'variable':if(this.ck(
|
|
3012
|
-
case')':this.s=
|
|
3004
|
+
case 412:switch(this.lk()){
|
|
3005
|
+
case'Number':if(this.c(411)){ $.art.$typeArgs.push( this.unsignedIntegerLiteral() ); }continue
|
|
3006
|
+
case'floating':case'variable':if(this.ck(411)){tok=this.lb(); $.art.$typeArgs.push( { literal: 'string', val: tok.keyword, location: tok.location } ); }continue
|
|
3007
|
+
case')':this.s=413;continue
|
|
3013
3008
|
default:this.e();continue
|
|
3014
3009
|
}
|
|
3015
|
-
case
|
|
3016
|
-
case
|
|
3017
|
-
case'Id':this.typeNamedArg({art:$.art},
|
|
3018
|
-
default:this.s=
|
|
3010
|
+
case 413:this.s=416;{ this.checkTypeArgs( $.art ); }continue
|
|
3011
|
+
case 414:switch(this.l()){
|
|
3012
|
+
case'Id':this.typeNamedArg({art:$.art},415);continue
|
|
3013
|
+
default:this.s=416;continue
|
|
3019
3014
|
}
|
|
3020
|
-
case
|
|
3021
|
-
case',':this.c(
|
|
3022
|
-
case')':this.s=
|
|
3015
|
+
case 415:switch(this.l()){
|
|
3016
|
+
case',':this.c(414);continue
|
|
3017
|
+
case')':this.s=416;continue
|
|
3023
3018
|
default:this.e();continue
|
|
3024
3019
|
}
|
|
3025
|
-
case
|
|
3020
|
+
case 416:if(this.m(0,')')){ if ($.art.$typeArgs) this.finalizeDictOrArray( $.art.$typeArgs ); }continue
|
|
3026
3021
|
default:return this.exit_()
|
|
3027
3022
|
}
|
|
3028
3023
|
}
|
|
3029
3024
|
typeNamedArgsList($,$next){
|
|
3030
|
-
this.rule_(
|
|
3025
|
+
this.rule_(418,$next)
|
|
3031
3026
|
for(;;)switch(this.s){
|
|
3032
|
-
case
|
|
3033
|
-
case
|
|
3034
|
-
case'Id':this.typeNamedArg({art:$.art},
|
|
3035
|
-
default:this.s=
|
|
3027
|
+
case 418:if(this.m(419,'(')){ $.art.$typeArgs = this.createDict(); }continue
|
|
3028
|
+
case 419:switch(this.l()){
|
|
3029
|
+
case'Id':this.typeNamedArg({art:$.art},420);continue
|
|
3030
|
+
default:this.s=421;continue
|
|
3036
3031
|
}
|
|
3037
|
-
case
|
|
3038
|
-
case',':this.c(
|
|
3039
|
-
case')':this.s=
|
|
3032
|
+
case 420:switch(this.l()){
|
|
3033
|
+
case',':this.c(419);continue
|
|
3034
|
+
case')':this.s=421;continue
|
|
3040
3035
|
default:this.e();continue
|
|
3041
3036
|
}
|
|
3042
|
-
case
|
|
3037
|
+
case 421:if(this.m(0,')')){ this.finalizeDictOrArray( $.art.$typeArgs ); }continue
|
|
3043
3038
|
default:return this.exit_()
|
|
3044
3039
|
}
|
|
3045
3040
|
}
|
|
3046
3041
|
typeNamedArg($,$next){
|
|
3047
3042
|
let name;let tok
|
|
3048
|
-
this.rule_(
|
|
3043
|
+
this.rule_(423,$next)
|
|
3049
3044
|
for(;;)switch(this.s){
|
|
3050
|
-
case
|
|
3051
|
-
case
|
|
3052
|
-
case
|
|
3045
|
+
case 423:if(this.mi(424,'typeparamname'))name=this.lb();continue
|
|
3046
|
+
case 424:this.m(425,':');continue
|
|
3047
|
+
case 425:switch(this.lk()){
|
|
3053
3048
|
case'Number':if(this.c(0)){ this.setTypeFacet( $.art, name, this.unsignedIntegerLiteral() ); }continue
|
|
3054
3049
|
case'floating':case'variable':if(this.ck(0)){tok=this.lb(); this.setTypeFacet( $.art, name, { literal: 'string', val: tok.keyword, location: tok.location } ); }continue
|
|
3055
3050
|
default:this.e();continue
|
|
@@ -3059,46 +3054,45 @@ default:return this.exit_()
|
|
|
3059
3054
|
}
|
|
3060
3055
|
cardinality($,$next){
|
|
3061
3056
|
let card={}
|
|
3062
|
-
this.rule_(
|
|
3057
|
+
this.rule_(427,$next)
|
|
3063
3058
|
for(;;)switch(this.s){
|
|
3064
|
-
case
|
|
3065
|
-
case
|
|
3066
|
-
case'*':if(this.c(
|
|
3067
|
-
case'Number':if(this.c(
|
|
3068
|
-
case']':this.s=
|
|
3059
|
+
case 427:this.m(428,'[');continue
|
|
3060
|
+
case 428:switch(this.l()){
|
|
3061
|
+
case'*':if(this.c(429)){ card.targetMax = this.valueWithLocation(); }continue
|
|
3062
|
+
case'Number':if(this.c(431)){ card.targetMax = this.unsignedIntegerLiteral(); }continue
|
|
3063
|
+
case']':this.s=433;{ card.targetMax = this.valueWithLocation( '*' ); }continue
|
|
3069
3064
|
default:this.e();continue
|
|
3070
3065
|
}
|
|
3071
|
-
case
|
|
3072
|
-
case',':this.c(
|
|
3073
|
-
default:this.s=
|
|
3066
|
+
case 429:switch(this.l()){
|
|
3067
|
+
case',':this.c(430);continue
|
|
3068
|
+
default:this.s=433;continue
|
|
3074
3069
|
}
|
|
3075
|
-
case
|
|
3076
|
-
case
|
|
3077
|
-
case',':this.c(
|
|
3078
|
-
case'..':this.targetCardinality({card,atAlt:
|
|
3079
|
-
default:this.s=
|
|
3070
|
+
case 430:this.targetCardinality({card,atAlt:false},433);continue
|
|
3071
|
+
case 431:switch(this.l()){
|
|
3072
|
+
case',':this.c(432);continue
|
|
3073
|
+
case'..':this.targetCardinality({card,atAlt:false},433,436);continue
|
|
3074
|
+
default:this.s=433;continue
|
|
3080
3075
|
}
|
|
3081
|
-
case
|
|
3082
|
-
case
|
|
3076
|
+
case 432:this.targetCardinality({card,atAlt:false},433);continue
|
|
3077
|
+
case 433:this.m(0,']');continue
|
|
3083
3078
|
default:
|
|
3084
3079
|
$.art.cardinality = this.attachLocation(card)
|
|
3085
3080
|
return this.exit_()
|
|
3086
3081
|
}
|
|
3087
3082
|
}
|
|
3088
3083
|
targetCardinality($,$next,$startState){
|
|
3089
|
-
this.rule_($startState??
|
|
3090
|
-
{ if (!$.atAlt) $.card.sourceMax = $.card.targetMax; }
|
|
3084
|
+
this.rule_($startState??435,$next)
|
|
3091
3085
|
for(;;)switch(this.s){
|
|
3092
|
-
case
|
|
3093
|
-
case'*':if(this.c(0)){ $.card.targetMax = this.valueWithLocation(); }continue
|
|
3094
|
-
case'Number':if(this.c(
|
|
3086
|
+
case 435:switch(this.l()){
|
|
3087
|
+
case'*':if(this.c(0)){ $.card.sourceMax = $.card.targetMax; $.card.targetMax = this.valueWithLocation(); }continue
|
|
3088
|
+
case'Number':if(this.c(436)){ $.card.sourceMax = $.card.targetMax; $.card.targetMax = this.unsignedIntegerLiteral(); }continue
|
|
3095
3089
|
default:this.e();continue
|
|
3096
3090
|
}
|
|
3097
|
-
case
|
|
3098
|
-
case'..':if(this.c(
|
|
3091
|
+
case 436:switch(this.l()){
|
|
3092
|
+
case'..':if(this.c(437)){ $.card.targetMin = $.card.targetMax; }continue
|
|
3099
3093
|
default:this.gr([']']);continue
|
|
3100
3094
|
}
|
|
3101
|
-
case
|
|
3095
|
+
case 437:switch(this.l()){
|
|
3102
3096
|
case'*':if(this.c(0)){ $.card.targetMax = this.valueWithLocation(); }continue
|
|
3103
3097
|
case'Number':if(this.c(0)){ $.card.targetMax = this.unsignedIntegerLiteral(); }continue
|
|
3104
3098
|
default:this.e();continue
|
|
@@ -3107,44 +3101,44 @@ default:return this.exit_()
|
|
|
3107
3101
|
}
|
|
3108
3102
|
}
|
|
3109
3103
|
nullability($,$next){
|
|
3110
|
-
this.rule_(
|
|
3104
|
+
this.rule_(439,$next)
|
|
3111
3105
|
for(;;)switch(this.s){
|
|
3112
|
-
case
|
|
3106
|
+
case 439:switch(this.lk()){
|
|
3113
3107
|
case'null':if(this.ck(0)){ this.setNullability( $.art, false ); }continue
|
|
3114
|
-
case'not':this.ck(
|
|
3108
|
+
case'not':this.ck(440);continue
|
|
3115
3109
|
default:this.e();continue
|
|
3116
3110
|
}
|
|
3117
|
-
case
|
|
3111
|
+
case 440:if(this.mk(0,'null')){ this.setNullability( $.art, true, this.locationOfPrevTokens( 2 ) ); }continue
|
|
3118
3112
|
default:return this.exit_()
|
|
3119
3113
|
}
|
|
3120
3114
|
}
|
|
3121
3115
|
queryEOF($,$next){
|
|
3122
3116
|
$.query??=undefined
|
|
3123
3117
|
let _
|
|
3124
|
-
this.rule_(
|
|
3118
|
+
this.rule_(442,$next)
|
|
3125
3119
|
for(;;)switch(this.s){
|
|
3126
|
-
case
|
|
3127
|
-
case
|
|
3128
|
-
case';':this.c(
|
|
3129
|
-
default:this.s=
|
|
3120
|
+
case 442:if(this.queryExpression(_={},443))$.query=_.expr;continue
|
|
3121
|
+
case 443:switch(this.l()){
|
|
3122
|
+
case';':this.c(444);continue
|
|
3123
|
+
default:this.s=444;continue
|
|
3130
3124
|
}
|
|
3131
|
-
case
|
|
3125
|
+
case 444:this.m(0,'EOF');continue
|
|
3132
3126
|
default:return this.exit_()
|
|
3133
3127
|
}
|
|
3134
3128
|
}
|
|
3135
3129
|
projectionSpec($,$next){
|
|
3136
3130
|
$.query??={}
|
|
3137
3131
|
let tab;let _
|
|
3138
|
-
this.rule_(
|
|
3132
|
+
this.rule_(446,$next)
|
|
3139
3133
|
for(;;)switch(this.s){
|
|
3140
|
-
case
|
|
3141
|
-
case
|
|
3142
|
-
case
|
|
3143
|
-
case
|
|
3144
|
-
case'{':this.selectItemsList({query:$.query,start:undefined},
|
|
3145
|
-
default:this.s=
|
|
3146
|
-
}
|
|
3147
|
-
case
|
|
3134
|
+
case 446:if(this.mk(447,'projection')){ $.query = { op: this.valueWithLocation( 'SELECT' ) }; }continue
|
|
3135
|
+
case 447:this.mk(448,'on');continue
|
|
3136
|
+
case 448:if(this.fromRefWithOptAlias(_={},449)){tab=_.expr; $.query.from = tab; }continue
|
|
3137
|
+
case 449:switch(this.l()){
|
|
3138
|
+
case'{':this.selectItemsList({query:$.query,start:undefined},450);continue
|
|
3139
|
+
default:this.s=450;continue
|
|
3140
|
+
}
|
|
3141
|
+
case 450:switch(this.lk()){
|
|
3148
3142
|
case'excluding':this.excludingClause({query:$.query},0);continue
|
|
3149
3143
|
default:this.gr([';']);continue
|
|
3150
3144
|
}
|
|
@@ -3157,35 +3151,35 @@ queryExpression($,$next,$startState){
|
|
|
3157
3151
|
$.expr??={}
|
|
3158
3152
|
let op;let quantifier
|
|
3159
3153
|
let query;let _
|
|
3160
|
-
this.rule_($startState??
|
|
3154
|
+
this.rule_($startState??452,$next)
|
|
3161
3155
|
for(;;)switch(this.s){
|
|
3162
|
-
case
|
|
3163
|
-
case'(':this.c(
|
|
3164
|
-
case'Id':if(this.selectQuery(_={},
|
|
3156
|
+
case 452:switch(this.l()){
|
|
3157
|
+
case'(':this.c(453);continue
|
|
3158
|
+
case'Id':if(this.selectQuery(_={},455)){$.expr=_.query;this.orderByLimitRestriction()}continue;
|
|
3165
3159
|
default:this.e();continue
|
|
3166
3160
|
}
|
|
3167
|
-
case
|
|
3168
|
-
case
|
|
3161
|
+
case 453:this.queryExpression($,454);continue
|
|
3162
|
+
case 454:if(this.m(455,')')){ this.surroundByParens( $.expr ); }continue
|
|
3163
|
+
case 455:switch(this.lk()){
|
|
3164
|
+
case'intersect':if(this.gc(459,'precLeft_',4)&&this.ck(456)){ op = this.valueWithLocation(); }continue
|
|
3165
|
+
case'minus':case'except':if(this.gc(459,'precLeft_',2)&&this.ck(456)){ op = this.valueWithLocation(); }continue
|
|
3166
|
+
case'union':if(this.gc(459,'precLeft_',2)&&this.ck(457)){ op = this.valueWithLocation(); }continue
|
|
3167
|
+
default:this.s=459;continue
|
|
3168
|
+
}
|
|
3169
3169
|
case 456:switch(this.lk()){
|
|
3170
|
-
case'
|
|
3171
|
-
|
|
3172
|
-
case'union':if(this.gc(460,'precLeft_',2)&&this.ck(458)){ op = this.valueWithLocation(); }continue
|
|
3173
|
-
default:this.s=460;continue
|
|
3170
|
+
case'distinct':if(this.ck(458)){ quantifier = this.valueWithLocation(); }continue
|
|
3171
|
+
default:this.s=458;continue
|
|
3174
3172
|
}
|
|
3175
3173
|
case 457:switch(this.lk()){
|
|
3176
|
-
case'distinct':if(this.ck(
|
|
3177
|
-
default:this.s=
|
|
3178
|
-
}
|
|
3179
|
-
case 458:switch(this.lk()){
|
|
3180
|
-
case'all':case'distinct':if(this.ck(459)){ quantifier = this.valueWithLocation(); }continue
|
|
3181
|
-
default:this.s=459;continue
|
|
3174
|
+
case'all':case'distinct':if(this.ck(458)){ quantifier = this.valueWithLocation(); }continue
|
|
3175
|
+
default:this.s=458;continue
|
|
3182
3176
|
}
|
|
3183
|
-
case
|
|
3177
|
+
case 458:if(this.queryExpression(_={},455)){query=_.expr;this.orderByLimitRestriction(); if ($.expr.$parens || op.val !== $.expr.op?.val || quantifier?.val !== $.expr.quantifier?.val) $.expr = { op, args: [$.expr], quantifier, location: { ...$.expr.location } };
|
|
3184
3178
|
quantifier = undefined;
|
|
3185
3179
|
$.expr.args.push( query ); this.attachLocation( $.expr ); }continue
|
|
3186
|
-
case
|
|
3180
|
+
case 459:switch(this.lk()){
|
|
3187
3181
|
case'limit':case'order':this.gc(0,'orderByLimitRestriction')&&this.orderByLimitOffset({query:$.expr},0);continue
|
|
3188
|
-
default:this.gr(
|
|
3182
|
+
default:this.gr();continue
|
|
3189
3183
|
}
|
|
3190
3184
|
default:
|
|
3191
3185
|
this.attachLocation( $.expr )
|
|
@@ -3194,62 +3188,62 @@ return this.exit_()
|
|
|
3194
3188
|
}
|
|
3195
3189
|
selectQuery($,$next){
|
|
3196
3190
|
$.query??={}
|
|
3197
|
-
this.rule_(
|
|
3191
|
+
this.rule_(461,$next)
|
|
3198
3192
|
for(;;)switch(this.s){
|
|
3199
|
-
case
|
|
3200
|
-
case
|
|
3201
|
-
case'from':this.ck(
|
|
3202
|
-
case'
|
|
3203
|
-
case'
|
|
3193
|
+
case 461:if(this.mk(462,'select')){ $.query = { op: this.valueWithLocation( 'SELECT' ) }; }continue
|
|
3194
|
+
case 462:switch(this.lk()){
|
|
3195
|
+
case'from':this.ck(463);continue
|
|
3196
|
+
case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'@':case'{':case'key':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':this.s=473;continue
|
|
3197
|
+
case'all':case'distinct':if(this.ck(473)){ $.query.quantifier = this.valueWithLocation(); }continue
|
|
3204
3198
|
default:this.ei();continue
|
|
3205
3199
|
}
|
|
3206
|
-
case
|
|
3207
|
-
case
|
|
3208
|
-
case'mixin':this.ck(
|
|
3209
|
-
default:this.s=
|
|
3200
|
+
case 463:this.querySource({query:$.query},464);continue
|
|
3201
|
+
case 464:switch(this.lk()){
|
|
3202
|
+
case'mixin':this.ck(465);continue
|
|
3203
|
+
default:this.s=470;continue
|
|
3210
3204
|
}
|
|
3211
|
-
case
|
|
3212
|
-
case
|
|
3213
|
-
case'Id':this.mixinElementDef({outer:$.query},
|
|
3214
|
-
default:this.s=
|
|
3205
|
+
case 465:if(this.m(466,'{')){ $.query.mixin = this.createDict(); }continue
|
|
3206
|
+
case 466:switch(this.l()){
|
|
3207
|
+
case'Id':this.mixinElementDef({outer:$.query},467);continue
|
|
3208
|
+
default:this.s=468;continue
|
|
3215
3209
|
}
|
|
3216
|
-
case
|
|
3217
|
-
case';':this.c(
|
|
3218
|
-
case'}':this.s=
|
|
3210
|
+
case 467:switch(this.l()){
|
|
3211
|
+
case';':this.c(466);continue
|
|
3212
|
+
case'}':this.s=468;continue
|
|
3219
3213
|
default:this.e();continue
|
|
3220
3214
|
}
|
|
3221
|
-
case
|
|
3222
|
-
case
|
|
3223
|
-
case
|
|
3224
|
-
case'all':case'distinct':if(this.ck(
|
|
3215
|
+
case 468:if(this.m(469,'}')){ this.finalizeDictOrArray( $.query.mixin ); }continue
|
|
3216
|
+
case 469:this.mk(470,'into');continue
|
|
3217
|
+
case 470:switch(this.lk()){
|
|
3218
|
+
case'all':case'distinct':if(this.ck(471)){ $.query.quantifier = this.valueWithLocation(); }continue
|
|
3219
|
+
default:this.s=471;continue
|
|
3220
|
+
}
|
|
3221
|
+
case 471:switch(this.l()){
|
|
3222
|
+
case'{':this.selectItemsList({query:$.query,start:undefined},472);continue
|
|
3225
3223
|
default:this.s=472;continue
|
|
3226
3224
|
}
|
|
3227
|
-
case 472:switch(this.
|
|
3228
|
-
case'
|
|
3229
|
-
default:this.s=
|
|
3225
|
+
case 472:switch(this.lk()){
|
|
3226
|
+
case'excluding':this.excludingClause({query:$.query},479);continue
|
|
3227
|
+
default:this.s=479;continue
|
|
3230
3228
|
}
|
|
3231
|
-
case 473:
|
|
3232
|
-
case
|
|
3233
|
-
|
|
3229
|
+
case 473:this.s=474;{this.inSelectItem('sqlStyle')}continue;
|
|
3230
|
+
case 474:switch(this.l()){
|
|
3231
|
+
case'*':if(this.c(475)){ $.query.columns = [ this.valueWithLocation() ]; }continue
|
|
3232
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:($.query.columns = [])},475);continue
|
|
3233
|
+
default:this.e();continue
|
|
3234
3234
|
}
|
|
3235
|
-
case 474:this.s=475;{this.inSelectItem('sqlStyle'); ; }continue
|
|
3236
3235
|
case 475:switch(this.l()){
|
|
3237
|
-
case'
|
|
3238
|
-
|
|
3239
|
-
default:this.e();continue
|
|
3236
|
+
case',':this.c(476);continue
|
|
3237
|
+
default:this.s=477;continue
|
|
3240
3238
|
}
|
|
3241
3239
|
case 476:switch(this.l()){
|
|
3242
|
-
case'
|
|
3243
|
-
|
|
3244
|
-
}
|
|
3245
|
-
case 477:switch(this.l()){
|
|
3246
|
-
case'*':if(this.c(476)){ $.query.columns.push( this.valueWithLocation() ); }continue
|
|
3247
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},476);continue
|
|
3240
|
+
case'*':if(this.c(475)){ $.query.columns.push( this.valueWithLocation() ); }continue
|
|
3241
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},475);continue
|
|
3248
3242
|
default:this.e();continue
|
|
3249
3243
|
}
|
|
3250
|
-
case
|
|
3251
|
-
case
|
|
3252
|
-
case
|
|
3244
|
+
case 477:this.mk(478,'from');continue
|
|
3245
|
+
case 478:this.querySource({query:$.query},479);continue
|
|
3246
|
+
case 479:switch(this.lk()){
|
|
3253
3247
|
case'group':case'where':case'having':this.whereGroupByHaving({query:$.query},0);continue
|
|
3254
3248
|
default:this.gr(['limit','minus','order','union','except','intersect']);continue
|
|
3255
3249
|
}
|
|
@@ -3260,19 +3254,19 @@ return this.exit_()
|
|
|
3260
3254
|
}
|
|
3261
3255
|
querySource($,$next){
|
|
3262
3256
|
let tab;let _
|
|
3263
|
-
this.rule_(
|
|
3257
|
+
this.rule_(481,$next)
|
|
3264
3258
|
for(;;)switch(this.s){
|
|
3265
|
-
case
|
|
3266
|
-
case
|
|
3267
|
-
case',':this.s=
|
|
3259
|
+
case 481:if(this.tableExpression(_={},482)){tab=_.expr; $.query.from = tab; }continue
|
|
3260
|
+
case 482:switch(this.l()){
|
|
3261
|
+
case',':this.s=483;{ const { location } = this.la();
|
|
3268
3262
|
$.query.from = { op: { val: 'join', location }, join: { val: 'cross', location }, args: [tab] }; }continue
|
|
3269
3263
|
default:this.gr(['group','limit','minus','order','union','where','except','having','intersect']);continue
|
|
3270
3264
|
}
|
|
3271
|
-
case
|
|
3272
|
-
case',':this.c(
|
|
3265
|
+
case 483:switch(this.l()){
|
|
3266
|
+
case',':this.c(484);continue
|
|
3273
3267
|
default:this.gr(['group','limit','minus','order','union','where','except','having','intersect']);continue
|
|
3274
3268
|
}
|
|
3275
|
-
case
|
|
3269
|
+
case 484:if(this.tableExpression(_={},483)){tab=_.expr; $.query.from.args.push( tab ); }continue
|
|
3276
3270
|
case 0:
|
|
3277
3271
|
this.attachLocation($.query.from)
|
|
3278
3272
|
default:return this.exit_()
|
|
@@ -3281,91 +3275,91 @@ default:return this.exit_()
|
|
|
3281
3275
|
tableExpression($,$next,$startState){
|
|
3282
3276
|
$.expr??={}
|
|
3283
3277
|
let join;let tab;let card;let cond;let _
|
|
3284
|
-
this.rule_($startState??
|
|
3278
|
+
this.rule_($startState??486,$next)
|
|
3285
3279
|
for(;;)switch(this.s){
|
|
3286
|
-
case
|
|
3287
|
-
case'(':this.tableOrQueryParens($,
|
|
3288
|
-
case'Id':this.fromRefWithOptAlias($,
|
|
3280
|
+
case 486:switch(this.l()){
|
|
3281
|
+
case'(':this.tableOrQueryParens($,487);continue
|
|
3282
|
+
case'Id':this.fromRefWithOptAlias($,488);continue
|
|
3289
3283
|
default:this.e();continue
|
|
3290
3284
|
}
|
|
3291
|
-
case
|
|
3292
|
-
case
|
|
3293
|
-
case'cross':if(this.ck(
|
|
3294
|
-
case'inner':if(this.ck(
|
|
3295
|
-
case'full':case'left':case'right':if(this.ck(
|
|
3296
|
-
case'join':if(this.ck(
|
|
3297
|
-
default:this.gr(
|
|
3298
|
-
}
|
|
3299
|
-
case
|
|
3300
|
-
case
|
|
3301
|
-
case'(':if(this.tableOrQueryParens(_={},
|
|
3285
|
+
case 487:this.s=488;{ $.expr = this.taggedIfQuery( $.expr ); }continue
|
|
3286
|
+
case 488:switch(this.lk()){
|
|
3287
|
+
case'cross':if(this.ck(489))join=this.lb();continue
|
|
3288
|
+
case'inner':if(this.ck(492))join=this.lb();continue
|
|
3289
|
+
case'full':case'left':case'right':if(this.ck(491))join=this.lb();continue
|
|
3290
|
+
case'join':if(this.ck(494)){ join = undefined; }continue
|
|
3291
|
+
default:this.gr();continue
|
|
3292
|
+
}
|
|
3293
|
+
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
|
|
3294
|
+
case 490:switch(this.l()){
|
|
3295
|
+
case'(':if(this.tableOrQueryParens(_={},488)){tab=_.expr; const r = this.taggedIfQuery( tab ); if (r) $.expr.args.push( r );
|
|
3302
3296
|
this.attachLocation( $.expr ); }continue
|
|
3303
|
-
case'Id':if(this.fromRefWithOptAlias(_={},
|
|
3297
|
+
case'Id':if(this.fromRefWithOptAlias(_={},488)){tab=_.expr; if (tab) $.expr.args.push( tab );
|
|
3304
3298
|
this.attachLocation( $.expr ); }continue
|
|
3305
3299
|
default:this.e();continue
|
|
3306
3300
|
}
|
|
3301
|
+
case 491:switch(this.lk()){
|
|
3302
|
+
case'outer':this.ck(492);continue
|
|
3303
|
+
default:this.s=492;continue
|
|
3304
|
+
}
|
|
3307
3305
|
case 492:switch(this.lk()){
|
|
3308
|
-
case'
|
|
3306
|
+
case'one':case'many':case'exact':this.joinCardinality(card={},493);continue
|
|
3309
3307
|
default:this.s=493;continue
|
|
3310
3308
|
}
|
|
3311
|
-
case 493:
|
|
3312
|
-
case
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
case
|
|
3316
|
-
case 495:this.s=496;{ $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( join?.keyword || 'inner', join ), args: [ $.expr ] }; if (card) $.expr.cardinality = card; card = undefined; }continue
|
|
3317
|
-
case 496:if(this.tableExpression(_={},497)){tab=_.expr; $.expr.args.push( tab ); this.attachLocation( $.expr ); }continue
|
|
3318
|
-
case 497:this.mk(498,'on');continue
|
|
3319
|
-
case 498:if(this.condition(_={},489)){cond=_.expr; $.expr.on = cond;
|
|
3309
|
+
case 493:this.mk(494,'join');continue
|
|
3310
|
+
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
|
|
3311
|
+
case 495:if(this.tableExpression(_={},496)){tab=_.expr; $.expr.args.push( tab ); this.attachLocation( $.expr ); }continue
|
|
3312
|
+
case 496:this.mk(497,'on');continue
|
|
3313
|
+
case 497:if(this.condition(_={},488)){cond=_.expr; $.expr.on = cond;
|
|
3320
3314
|
this.attachLocation( $.expr ); }continue
|
|
3321
3315
|
default:return this.exit_()
|
|
3322
3316
|
}
|
|
3323
3317
|
}
|
|
3324
3318
|
tableOrQueryParens($,$next){
|
|
3325
3319
|
$.expr??=undefined
|
|
3326
|
-
this.rule_(
|
|
3320
|
+
this.rule_(499,$next)
|
|
3327
3321
|
for(;;)switch(this.s){
|
|
3328
|
-
case
|
|
3329
|
-
case
|
|
3330
|
-
case'(':this.tableOrQueryParens($,
|
|
3331
|
-
case'Id':if(this.tableExpression($,
|
|
3332
|
-
case'select':this.queryExpression($,
|
|
3322
|
+
case 499:if(this.m(500,'(')){this.queryOnLeft()}continue;
|
|
3323
|
+
case 500:switch(this.lk()){
|
|
3324
|
+
case'(':this.tableOrQueryParens($,501);continue
|
|
3325
|
+
case'Id':if(this.tableExpression($,502)){this.queryOnLeft('table')}continue;
|
|
3326
|
+
case'select':this.queryExpression($,502);continue
|
|
3333
3327
|
default:this.ei();continue
|
|
3334
3328
|
}
|
|
3335
|
-
case
|
|
3336
|
-
case'full':case'join':case'left':case'cross':case'inner':case'right':if(this.tableExpression($,
|
|
3337
|
-
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(
|
|
3338
|
-
default:this.s=
|
|
3329
|
+
case 501:switch(this.lk()){
|
|
3330
|
+
case'full':case'join':case'left':case'cross':case'inner':case'right':if(this.tableExpression($,502,487)){this.queryOnLeft('table')}continue;
|
|
3331
|
+
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(502,'queryOnLeft')&&this.queryExpression($,502,455);continue
|
|
3332
|
+
default:this.s=502;continue
|
|
3339
3333
|
}
|
|
3340
|
-
case
|
|
3341
|
-
case
|
|
3342
|
-
case'as':this.gc(0,'queryOnLeft','table')&&this.ck(
|
|
3343
|
-
case'Id':if(this.gc(0,'
|
|
3344
|
-
default:this.
|
|
3334
|
+
case 502:if(this.m(503,')')){ this.surroundByParens( $.expr ); }continue
|
|
3335
|
+
case 503:switch(this.lk()){
|
|
3336
|
+
case'as':this.gc(0,'queryOnLeft','table')&&this.ck(504);continue
|
|
3337
|
+
case'Id':if(this.gc(0,'queryOnLeftSloppyAlias')&&this.ci(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.fragileAlias(); }continue
|
|
3338
|
+
default:this.gi(0,['full','join','left','cross','inner','right']);continue
|
|
3345
3339
|
}
|
|
3346
|
-
case
|
|
3340
|
+
case 504:if(this.mi(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.identAst(); }continue
|
|
3347
3341
|
default:return this.exit_()
|
|
3348
3342
|
}
|
|
3349
3343
|
}
|
|
3350
3344
|
joinCardinality($,$next){
|
|
3351
3345
|
$.sourceMax??=undefined;$.targetMax??=undefined
|
|
3352
|
-
this.rule_(
|
|
3346
|
+
this.rule_(506,$next)
|
|
3353
3347
|
for(;;)switch(this.s){
|
|
3354
|
-
case
|
|
3355
|
-
case'
|
|
3356
|
-
case'
|
|
3357
|
-
case'many':if(this.ck(
|
|
3348
|
+
case 506:switch(this.lk()){
|
|
3349
|
+
case'one':this.s=507;continue
|
|
3350
|
+
case'exact':if(this.ck(507)){ $.sourceMin = this.valueWithLocation( 1 ); }continue
|
|
3351
|
+
case'many':if(this.ck(508)){ $.sourceMax = this.valueWithLocation( '*' ); }continue
|
|
3358
3352
|
default:this.e();continue
|
|
3359
3353
|
}
|
|
3360
|
-
case
|
|
3361
|
-
case
|
|
3362
|
-
case
|
|
3363
|
-
case'
|
|
3364
|
-
case'
|
|
3354
|
+
case 507:if(this.mk(508,'one')){ $.sourceMax = this.valueWithLocation( 1 ); }continue
|
|
3355
|
+
case 508:this.mk(509,'to');continue
|
|
3356
|
+
case 509:switch(this.lk()){
|
|
3357
|
+
case'one':this.s=510;continue
|
|
3358
|
+
case'exact':if(this.ck(510)){ $.targetMin = this.valueWithLocation( 1 ); }continue
|
|
3365
3359
|
case'many':if(this.ck(0)){ $.targetMax = this.valueWithLocation( '*' ); }continue
|
|
3366
3360
|
default:this.e();continue
|
|
3367
3361
|
}
|
|
3368
|
-
case
|
|
3362
|
+
case 510:if(this.mk(0,'one')){ $.targetMax = this.valueWithLocation( 1 ); }continue
|
|
3369
3363
|
default:
|
|
3370
3364
|
this.attachLocation( $ )
|
|
3371
3365
|
return this.exit_()
|
|
@@ -3373,25 +3367,25 @@ return this.exit_()
|
|
|
3373
3367
|
}
|
|
3374
3368
|
fromRefWithOptAlias($,$next){
|
|
3375
3369
|
$.expr??={}
|
|
3376
|
-
this.rule_(
|
|
3370
|
+
this.rule_(512,$next)
|
|
3377
3371
|
{ $.expr.path = []; }
|
|
3378
3372
|
for(;;)switch(this.s){
|
|
3379
|
-
case
|
|
3380
|
-
case
|
|
3381
|
-
case':':if(this.c(
|
|
3373
|
+
case 512:this.fromPath({table:$.expr,category:'artref'},513);continue
|
|
3374
|
+
case 513:switch(this.l()){
|
|
3375
|
+
case':':if(this.c(514)){ if (!$.expr.scope) $.expr.scope = $.expr.path.length; else {
|
|
3382
3376
|
this.warning( 'syntax-invalid-path-separator', this.lb(),
|
|
3383
3377
|
{ '#': 'colon', code: ':', newcode: '.' } );
|
|
3384
3378
|
} }continue
|
|
3385
|
-
default:this.s=
|
|
3379
|
+
default:this.s=515;continue
|
|
3386
3380
|
}
|
|
3387
|
-
case
|
|
3388
|
-
case
|
|
3389
|
-
case'as':this.ck(
|
|
3390
|
-
case'Id':if(this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
|
|
3391
|
-
default:this.
|
|
3381
|
+
case 514:this.fromPath({table:$.expr,category:'ref'},515);continue
|
|
3382
|
+
case 515:switch(this.lk()){
|
|
3383
|
+
case'as':this.ck(516);continue
|
|
3384
|
+
case'Id':if(this.gc(517,'isNoKeywordInRuleFollow')&&this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
|
|
3385
|
+
default:this.gi(517);continue
|
|
3392
3386
|
}
|
|
3393
|
-
case
|
|
3394
|
-
case
|
|
3387
|
+
case 516:if(this.mi(0,'FromAlias')){ $.expr.name = this.identAst(); }continue
|
|
3388
|
+
case 517:if(this.gr()){ this.classifyImplicitName( $.expr.scope ? 'FromElemImplicit' : 'FromImplicit', $.expr ); }continue
|
|
3395
3389
|
default:
|
|
3396
3390
|
this.attachLocation( $.expr )
|
|
3397
3391
|
return this.exit_()
|
|
@@ -3399,25 +3393,25 @@ return this.exit_()
|
|
|
3399
3393
|
}
|
|
3400
3394
|
fromPath($,$next){
|
|
3401
3395
|
let pathItem
|
|
3402
|
-
this.rule_(
|
|
3396
|
+
this.rule_(519,$next)
|
|
3403
3397
|
for(;;)switch(this.s){
|
|
3404
|
-
case
|
|
3405
|
-
case
|
|
3406
|
-
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},
|
|
3407
|
-
default:this.s=
|
|
3398
|
+
case 519:if(this.mi(520,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
|
|
3399
|
+
case 520:switch(this.l()){
|
|
3400
|
+
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},521)){ pathItem = null; }continue
|
|
3401
|
+
default:this.s=521;continue
|
|
3408
3402
|
}
|
|
3409
|
-
case
|
|
3410
|
-
case'.':if(this.gc(0,'notAfterEntityArgOrFilter')&&this.c(
|
|
3403
|
+
case 521:switch(this.l()){
|
|
3404
|
+
case'.':if(this.gc(0,'notAfterEntityArgOrFilter')&&this.c(522)){ if (!pathItem && !$.table.scope) {
|
|
3411
3405
|
$.table.scope = $.table.path.length; $.category = 'ref';
|
|
3412
3406
|
this.warning( 'syntax-invalid-path-separator', this.lb(),
|
|
3413
3407
|
{ '#': 'dot', code: '.', newcode: ':' } );
|
|
3414
3408
|
} }continue
|
|
3415
3409
|
default:this.gr(['Id','as']);continue
|
|
3416
3410
|
}
|
|
3417
|
-
case
|
|
3418
|
-
case
|
|
3419
|
-
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},
|
|
3420
|
-
default:this.s=
|
|
3411
|
+
case 522:if(this.miA(523,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
|
|
3412
|
+
case 523:switch(this.l()){
|
|
3413
|
+
case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},521)){ pathItem = null; }continue
|
|
3414
|
+
default:this.s=521;continue
|
|
3421
3415
|
}
|
|
3422
3416
|
default:
|
|
3423
3417
|
this.attachLocation( $.table.path )
|
|
@@ -3425,27 +3419,27 @@ return this.exit_()
|
|
|
3425
3419
|
}
|
|
3426
3420
|
}
|
|
3427
3421
|
fromArgumentsAndFilter($,$next){
|
|
3428
|
-
this.rule_(
|
|
3422
|
+
this.rule_(525,$next)
|
|
3429
3423
|
for(;;)switch(this.s){
|
|
3430
|
-
case
|
|
3431
|
-
case'(':if(this.c(
|
|
3432
|
-
default:this.s=
|
|
3424
|
+
case 525:switch(this.l()){
|
|
3425
|
+
case'(':if(this.c(526)){ $.pathStep.args = this.createDict(); $.pathStep.$syntax = ':'; }continue
|
|
3426
|
+
default:this.s=530;continue
|
|
3433
3427
|
}
|
|
3434
|
-
case
|
|
3435
|
-
case'Id':this.s=
|
|
3428
|
+
case 526:switch(this.lk()){
|
|
3429
|
+
case'Id':this.s=527;continue
|
|
3436
3430
|
default:this.ei();continue
|
|
3437
3431
|
}
|
|
3438
|
-
case
|
|
3439
|
-
case'Id':this.fromNamedArgument($,
|
|
3440
|
-
default:this.s=
|
|
3432
|
+
case 527:switch(this.l()){
|
|
3433
|
+
case'Id':this.fromNamedArgument($,528);continue
|
|
3434
|
+
default:this.s=529;continue
|
|
3441
3435
|
}
|
|
3442
|
-
case
|
|
3443
|
-
case',':this.c(
|
|
3444
|
-
case')':this.s=
|
|
3436
|
+
case 528:switch(this.l()){
|
|
3437
|
+
case',':this.c(527);continue
|
|
3438
|
+
case')':this.s=529;continue
|
|
3445
3439
|
default:this.e();continue
|
|
3446
3440
|
}
|
|
3447
|
-
case
|
|
3448
|
-
case
|
|
3441
|
+
case 529:this.m(530,')');continue
|
|
3442
|
+
case 530:switch(this.l()){
|
|
3449
3443
|
case'[':this.cardinalityAndFilter($,0);continue
|
|
3450
3444
|
default:this.gr(['Id','.','as']);continue
|
|
3451
3445
|
}
|
|
@@ -3454,239 +3448,236 @@ default:return this.exit_()
|
|
|
3454
3448
|
}
|
|
3455
3449
|
fromNamedArgument($,$next){
|
|
3456
3450
|
let name;let expr;let _
|
|
3457
|
-
this.rule_(
|
|
3451
|
+
this.rule_(532,$next)
|
|
3458
3452
|
for(;;)switch(this.s){
|
|
3459
|
-
case
|
|
3460
|
-
case
|
|
3461
|
-
case
|
|
3453
|
+
case 532:if(this.mi(533,'paramname'))name=this.lb();continue
|
|
3454
|
+
case 533:this.m(534,':');continue
|
|
3455
|
+
case 534:if(this.expression(_={},0)){expr=_.expr; this.addDef( expr, $.pathStep, 'args', 0, this.identAst( name ) ); }continue
|
|
3462
3456
|
default:return this.exit_()
|
|
3463
3457
|
}
|
|
3464
3458
|
}
|
|
3465
3459
|
cardinalityAndFilter($,$next){
|
|
3466
|
-
this.rule_(
|
|
3460
|
+
this.rule_(536,$next)
|
|
3467
3461
|
for(;;)switch(this.s){
|
|
3468
|
-
case
|
|
3469
|
-
case
|
|
3470
|
-
case'Number':if(this.gc(
|
|
3471
|
-
default:this.s=
|
|
3472
|
-
}
|
|
3473
|
-
case
|
|
3474
|
-
case
|
|
3475
|
-
case
|
|
3462
|
+
case 536:this.m(537,'[');continue
|
|
3463
|
+
case 537:switch(this.l()){
|
|
3464
|
+
case'Number':if(this.gc(539,'beforeColon')&&this.c(538)){ $.pathStep.cardinality = { targetMax: this.unsignedIntegerLiteral(), location: this.lb().location }; }continue
|
|
3465
|
+
default:this.s=539;continue
|
|
3466
|
+
}
|
|
3467
|
+
case 538:this.m(539,':');continue
|
|
3468
|
+
case 539:this.filterClauses({pathStep:$.pathStep},540);continue
|
|
3469
|
+
case 540:this.m(0,']');continue
|
|
3476
3470
|
default:return this.exit_()
|
|
3477
3471
|
}
|
|
3478
3472
|
}
|
|
3479
3473
|
filterClauses($,$next){
|
|
3480
3474
|
let cond;let _
|
|
3481
|
-
this.rule_(
|
|
3475
|
+
this.rule_(542,$next)
|
|
3482
3476
|
for(;;)switch(this.s){
|
|
3483
|
-
case
|
|
3484
|
-
case'
|
|
3485
|
-
case'
|
|
3486
|
-
case'group':case'limit':case'order':case'having':this.gP(
|
|
3487
|
-
default:this.gi(
|
|
3488
|
-
}
|
|
3489
|
-
case
|
|
3490
|
-
case
|
|
3491
|
-
case'group':this.s=
|
|
3492
|
-
default:this.s=
|
|
3493
|
-
}
|
|
3494
|
-
case
|
|
3495
|
-
case
|
|
3496
|
-
case'having':if(this.ck(
|
|
3497
|
-
default:this.s=
|
|
3498
|
-
}
|
|
3499
|
-
case
|
|
3500
|
-
case
|
|
3501
|
-
case'
|
|
3477
|
+
case 542:switch(this.lk()){
|
|
3478
|
+
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
|
|
3479
|
+
case'where':this.ck(543);continue
|
|
3480
|
+
case'group':case'limit':case'order':case'having':this.gP(544);continue
|
|
3481
|
+
default:this.gi(544);continue
|
|
3482
|
+
}
|
|
3483
|
+
case 543:if(this.condition(_={},544)){cond=_.expr; $.pathStep.where = cond; }continue
|
|
3484
|
+
case 544:switch(this.lk()){
|
|
3485
|
+
case'group':this.s=545;{ this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'group by' }); }continue
|
|
3486
|
+
default:this.s=546;continue
|
|
3487
|
+
}
|
|
3488
|
+
case 545:this.groupByClause({query:$.pathStep},546);continue
|
|
3489
|
+
case 546:switch(this.lk()){
|
|
3490
|
+
case'having':if(this.ck(547)){ this.csnParseOnly('syntax-unexpected-sql-clause', -1, { keyword: 'having' }); }continue
|
|
3491
|
+
default:this.s=548;continue
|
|
3492
|
+
}
|
|
3493
|
+
case 547:if(this.condition(_={},548)){cond=_.expr; $.pathStep.having = cond; }continue
|
|
3494
|
+
case 548:switch(this.l()){
|
|
3495
|
+
case'Id':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
|
|
3502
3496
|
default:this.gr([']']);continue
|
|
3503
3497
|
}
|
|
3504
|
-
case
|
|
3498
|
+
case 549:this.orderByLimitOffset({query:$.pathStep},0);continue
|
|
3505
3499
|
default:return this.exit_()
|
|
3506
3500
|
}
|
|
3507
3501
|
}
|
|
3508
3502
|
excludingClause($,$next){
|
|
3509
|
-
this.rule_(
|
|
3503
|
+
this.rule_(551,$next)
|
|
3510
3504
|
for(;;)switch(this.s){
|
|
3511
|
-
case
|
|
3512
|
-
case
|
|
3513
|
-
case
|
|
3514
|
-
case'Id':this.s=
|
|
3505
|
+
case 551:this.mk(552,'excluding');continue
|
|
3506
|
+
case 552:if(this.m(553,'{')){ $.query.excludingDict = this.createDict(); }continue
|
|
3507
|
+
case 553:switch(this.l()){
|
|
3508
|
+
case'Id':this.s=554;continue
|
|
3515
3509
|
default:this.e();continue
|
|
3516
3510
|
}
|
|
3517
|
-
case
|
|
3518
|
-
case'Id':if(this.ciA(
|
|
3519
|
-
default:this.s=
|
|
3511
|
+
case 554:switch(this.l()){
|
|
3512
|
+
case'Id':if(this.ciA(555,'ref')){ this.addDef( { location: this.lb().location }, $.query, 'excludingDict', '', this.identAst() ); }continue
|
|
3513
|
+
default:this.s=556;continue
|
|
3520
3514
|
}
|
|
3521
|
-
case
|
|
3522
|
-
case',':this.c(
|
|
3523
|
-
case'}':this.s=
|
|
3515
|
+
case 555:switch(this.l()){
|
|
3516
|
+
case',':this.c(554);continue
|
|
3517
|
+
case'}':this.s=556;continue
|
|
3524
3518
|
default:this.e();continue
|
|
3525
3519
|
}
|
|
3526
|
-
case
|
|
3520
|
+
case 556:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.excludingDict ); }continue
|
|
3527
3521
|
default:return this.exit_()
|
|
3528
3522
|
}
|
|
3529
3523
|
}
|
|
3530
3524
|
selectItemsList($,$next){
|
|
3531
|
-
this.rule_(
|
|
3525
|
+
this.rule_(558,$next)
|
|
3532
3526
|
for(;;)switch(this.s){
|
|
3533
|
-
case
|
|
3534
|
-
case
|
|
3535
|
-
case'*':if(this.c(
|
|
3536
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},
|
|
3537
|
-
default:this.s=
|
|
3527
|
+
case 558:if(this.m(559,'{')){this.inSelectItem('top'); $.query.columns = this.createArray( $.start ); }continue
|
|
3528
|
+
case 559:switch(this.l()){
|
|
3529
|
+
case'*':if(this.c(560)){ $.query.columns.push( this.valueWithLocation() ); }continue
|
|
3530
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns},560);continue
|
|
3531
|
+
default:this.s=561;continue
|
|
3538
3532
|
}
|
|
3539
|
-
case
|
|
3540
|
-
case',':this.c(
|
|
3541
|
-
case'}':this.s=
|
|
3533
|
+
case 560:switch(this.l()){
|
|
3534
|
+
case',':this.c(559);continue
|
|
3535
|
+
case'}':this.s=561;continue
|
|
3542
3536
|
default:this.e();continue
|
|
3543
3537
|
}
|
|
3544
|
-
case
|
|
3538
|
+
case 561:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.columns ); }continue
|
|
3545
3539
|
default:return this.exit_()
|
|
3546
3540
|
}
|
|
3547
3541
|
}
|
|
3548
3542
|
nestedSelectItemsList($,$next){
|
|
3549
|
-
this.rule_(
|
|
3543
|
+
this.rule_(563,$next)
|
|
3550
3544
|
for(;;)switch(this.s){
|
|
3551
|
-
case
|
|
3552
|
-
case
|
|
3553
|
-
case'*':if(this.c(
|
|
3554
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause]},
|
|
3555
|
-
default:this.s=
|
|
3545
|
+
case 563:if(this.m(564,'{')){this.inSelectItem(); $.query[$.clause] = this.createArray(); }continue
|
|
3546
|
+
case 564:switch(this.l()){
|
|
3547
|
+
case'*':if(this.c(565)){ $.query[$.clause].push( this.valueWithLocation() ); }continue
|
|
3548
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause]},565);continue
|
|
3549
|
+
default:this.s=566;continue
|
|
3556
3550
|
}
|
|
3557
|
-
case
|
|
3558
|
-
case',':this.c(
|
|
3559
|
-
case'}':this.s=
|
|
3551
|
+
case 565:switch(this.l()){
|
|
3552
|
+
case',':this.c(564);continue
|
|
3553
|
+
case'}':this.s=566;continue
|
|
3560
3554
|
default:this.e();continue
|
|
3561
3555
|
}
|
|
3562
|
-
case
|
|
3556
|
+
case 566:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query[$.clause] ); }continue
|
|
3563
3557
|
default:return this.exit_()
|
|
3564
3558
|
}
|
|
3565
3559
|
}
|
|
3566
3560
|
selectItemDef($,$next){
|
|
3567
3561
|
let art=new XsnArtifact()
|
|
3568
3562
|
let expr;let e;let target;let cond;let assoc;let card;let _
|
|
3569
|
-
this.rule_(
|
|
3563
|
+
this.rule_(568,$next)
|
|
3570
3564
|
{ $.columns.push( art );
|
|
3571
3565
|
this.docComment( art ); }
|
|
3572
3566
|
for(;;)switch(this.s){
|
|
3573
|
-
case
|
|
3574
|
-
case'@':this.annoAssignCol({art},
|
|
3567
|
+
case 568:switch(this.l()){
|
|
3568
|
+
case'@':this.annoAssignCol({art},568);continue
|
|
3569
|
+
default:this.s=569;continue
|
|
3570
|
+
}
|
|
3571
|
+
case 569:switch(this.lk()){
|
|
3572
|
+
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
|
|
3575
3573
|
default:this.s=570;continue
|
|
3576
3574
|
}
|
|
3577
|
-
case 570:
|
|
3578
|
-
case
|
|
3579
|
-
|
|
3575
|
+
case 570:this.s=571;{this.columnExpr('key')}continue;
|
|
3576
|
+
case 571:switch(this.lk()){
|
|
3577
|
+
case'key':if(this.gc(572,'modifierRestriction')&&this.ck(572)){ art.key = this.valueWithLocation( true ); }continue
|
|
3578
|
+
default:this.s=572;continue
|
|
3580
3579
|
}
|
|
3581
|
-
case 571:this.s=572;{this.columnExpr('key'); ; }continue
|
|
3582
3580
|
case 572:switch(this.lk()){
|
|
3583
|
-
case'
|
|
3584
|
-
|
|
3585
|
-
}
|
|
3586
|
-
case 573:switch(this.lk()){
|
|
3587
|
-
case'#':case'(':case'+':case'-':case':':case'?':case'new':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.lP()&&this.expression(_={},574)){expr=_.expr; art.value = expr; }continue
|
|
3588
|
-
case'Id':if(this.valuePath(_={},576)){expr=_.expr; expr = this.valuePathAst( expr ); art.value = expr; }continue
|
|
3589
|
-
case'{':this.nestedSelectItemsList({query:art,clause:'expand'},587);continue
|
|
3581
|
+
case'#':case'(':case'+':case'-':case':':case'?':case'new':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.lP()&&this.expression(_={},573)){expr=_.expr; art.value = expr; }continue
|
|
3582
|
+
case'Id':if(this.valuePath(_={},575)){expr=_.expr; expr = this.valuePathAst( expr ); art.value = expr; }continue
|
|
3583
|
+
case'{':this.nestedSelectItemsList({query:art,clause:'expand'},586);continue
|
|
3590
3584
|
default:this.ei();continue
|
|
3591
3585
|
}
|
|
3592
|
-
case
|
|
3593
|
-
case'as':this.ck(
|
|
3594
|
-
case'Id':if(this.ci(
|
|
3595
|
-
default:this.
|
|
3596
|
-
}
|
|
3597
|
-
case
|
|
3598
|
-
case
|
|
3599
|
-
case'over':if(this.ck(
|
|
3600
|
-
case'*':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(_={ expr: expr },
|
|
3601
|
-
case'as':this.ck(
|
|
3602
|
-
case'Id':if(this.ci(
|
|
3603
|
-
case'.':if(this.c(
|
|
3586
|
+
case 573:switch(this.lk()){
|
|
3587
|
+
case'as':this.ck(574);continue
|
|
3588
|
+
case'Id':if(this.ci(583,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
|
|
3589
|
+
default:this.gi(583);continue
|
|
3590
|
+
}
|
|
3591
|
+
case 574:if(this.mi(583,'ItemAlias')){ art.name = this.identAst(); }continue
|
|
3592
|
+
case 575:switch(this.lk()){
|
|
3593
|
+
case'over':if(this.ck(576)){ this.pushXprToken( expr.suffix = [] ); }continue
|
|
3594
|
+
case'*':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(_={ expr: expr },578,643)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
|
|
3595
|
+
case'as':this.ck(580);continue
|
|
3596
|
+
case'Id':if(this.ci(583,'ItemAlias')){this.nestedExpand(); art.name = this.fragileAlias( true ); }continue
|
|
3597
|
+
case'.':if(this.c(581)){ this.reportUnexpectedSpace( this.lb(), this.la().location, true );
|
|
3604
3598
|
this.reportExpandInline( art, true ); }continue
|
|
3605
|
-
default:if(this.
|
|
3599
|
+
default:if(this.gi(583)){this.nestedExpand(); this.virtualOrImplicit( art ); }continue
|
|
3606
3600
|
}
|
|
3607
|
-
case
|
|
3608
|
-
case
|
|
3609
|
-
case'*':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(_={ expr: expr },
|
|
3610
|
-
default:this.s=
|
|
3601
|
+
case 576:this.overClause({outer:expr.suffix},577);continue
|
|
3602
|
+
case 577:switch(this.lk()){
|
|
3603
|
+
case'*':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(_={ expr: expr },578,643)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
|
|
3604
|
+
default:this.s=578;continue
|
|
3611
3605
|
}
|
|
3612
|
-
case
|
|
3613
|
-
case'as':this.ck(
|
|
3614
|
-
case'Id':if(this.ci(
|
|
3615
|
-
default:this.
|
|
3616
|
-
}
|
|
3617
|
-
case
|
|
3618
|
-
case
|
|
3619
|
-
case
|
|
3620
|
-
case'{':this.nestedSelectItemsList({query:art,clause:'inline'},
|
|
3606
|
+
case 578:switch(this.lk()){
|
|
3607
|
+
case'as':this.ck(579);continue
|
|
3608
|
+
case'Id':if(this.ci(583,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
|
|
3609
|
+
default:this.gi(583);continue
|
|
3610
|
+
}
|
|
3611
|
+
case 579:if(this.mi(583,'ItemAlias')){ art.name = this.identAst(); }continue
|
|
3612
|
+
case 580:if(this.mi(583,'ItemAlias')){this.nestedExpand(); art.name = this.identAst(); }continue
|
|
3613
|
+
case 581:switch(this.l()){
|
|
3614
|
+
case'{':this.nestedSelectItemsList({query:art,clause:'inline'},582);continue
|
|
3621
3615
|
case'*':if(this.c(0)){ art.inline = [ this.valueWithLocation() ]; }continue
|
|
3622
3616
|
default:this.e();continue
|
|
3623
3617
|
}
|
|
3624
|
-
case
|
|
3618
|
+
case 582:switch(this.lk()){
|
|
3625
3619
|
case'excluding':this.excludingClause({query:art},0);continue
|
|
3626
3620
|
default:this.gr([',']);continue
|
|
3627
3621
|
}
|
|
3628
|
-
case
|
|
3629
|
-
case'{':if(this.gc(
|
|
3630
|
-
default:this.s=
|
|
3622
|
+
case 583:switch(this.l()){
|
|
3623
|
+
case'{':if(this.gc(589,'nestedExpand')&&this.g(584)){ if (!this.nestedExpand(0,true)) this.reportExpandInline( art, false ); }continue
|
|
3624
|
+
default:this.s=589;continue
|
|
3625
|
+
}
|
|
3626
|
+
case 584:this.nestedSelectItemsList({query:art,clause:'expand'},585);continue
|
|
3627
|
+
case 585:switch(this.lk()){
|
|
3628
|
+
case'excluding':this.excludingClause({query:art},589);continue
|
|
3629
|
+
default:this.s=589;continue
|
|
3631
3630
|
}
|
|
3632
|
-
case 585:this.nestedSelectItemsList({query:art,clause:'expand'},586);continue
|
|
3633
3631
|
case 586:switch(this.lk()){
|
|
3634
|
-
case'excluding':this.excludingClause({query:art},
|
|
3635
|
-
default:this.s=
|
|
3632
|
+
case'excluding':this.excludingClause({query:art},587);continue
|
|
3633
|
+
default:this.s=587;continue
|
|
3636
3634
|
}
|
|
3637
|
-
case 587:
|
|
3638
|
-
case
|
|
3639
|
-
|
|
3635
|
+
case 587:this.mk(588,'as');continue
|
|
3636
|
+
case 588:if(this.mi(589,'ItemAlias')){ art.name = this.identAst(); }continue
|
|
3637
|
+
case 589:this.s=590;{this.columnExpr(); this.docComment( art ); }continue
|
|
3638
|
+
case 590:switch(this.l()){
|
|
3639
|
+
case'@':this.annoAssignMid({art},590);continue
|
|
3640
|
+
default:this.s=591;continue
|
|
3640
3641
|
}
|
|
3641
|
-
case 588:this.mk(589,'as');continue
|
|
3642
|
-
case 589:if(this.mi(590,'ItemAlias')){ art.name = this.identAst(); }continue
|
|
3643
|
-
case 590:this.s=591;{this.columnExpr(); this.docComment( art ); }continue
|
|
3644
3642
|
case 591:switch(this.l()){
|
|
3645
|
-
case'
|
|
3646
|
-
default:this.s=592;continue
|
|
3647
|
-
}
|
|
3648
|
-
case 592:switch(this.l()){
|
|
3649
|
-
case':':this.c(593);continue
|
|
3643
|
+
case':':this.c(592);continue
|
|
3650
3644
|
default:this.gr([',']);continue
|
|
3651
3645
|
}
|
|
3652
|
-
case
|
|
3653
|
-
case'
|
|
3654
|
-
case'
|
|
3655
|
-
case'
|
|
3656
|
-
case'
|
|
3657
|
-
case'association':if(this.lP(['[','to'])&&this.ec('columnExpr')&&this.ck(599)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
|
|
3658
|
-
case'composition':if(this.lP(['[','of'])&&this.ec('columnExpr')&&this.ck(601)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
|
|
3646
|
+
case 592:switch(this.lk()){
|
|
3647
|
+
case'Id':case'{':this.typeExpression({art},605);continue
|
|
3648
|
+
case'redirected':this.ckP(593,['to']);continue
|
|
3649
|
+
case'association':if(this.lP(['[','to'])&&this.ec('columnExpr')&&this.ck(597)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
|
|
3650
|
+
case'composition':if(this.lP(['[','of'])&&this.ec('columnExpr')&&this.ck(599)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
|
|
3659
3651
|
default:this.ei();continue
|
|
3660
3652
|
}
|
|
3661
|
-
case
|
|
3662
|
-
case
|
|
3663
|
-
case
|
|
3664
|
-
case
|
|
3665
|
-
case'
|
|
3666
|
-
|
|
3667
|
-
default:this.s=607;continue
|
|
3653
|
+
case 593:this.mk(594,'to');continue
|
|
3654
|
+
case 594:if(this.simplePath(_={category:'artref'},595)){target=_.ref; art.target = target; }continue
|
|
3655
|
+
case 595:switch(this.lk()){
|
|
3656
|
+
case'on':this.ck(596);continue
|
|
3657
|
+
case'{':this.foreignKeysBlock({art},605);continue
|
|
3658
|
+
default:this.s=605;continue
|
|
3668
3659
|
}
|
|
3669
|
-
case
|
|
3660
|
+
case 596:if(this.condition(_={},605)){cond=_.expr; art.on = cond; }continue
|
|
3661
|
+
case 597:switch(this.l()){
|
|
3662
|
+
case'[':this.cardinality({art},598);continue
|
|
3663
|
+
default:this.s=598;continue
|
|
3664
|
+
}
|
|
3665
|
+
case 598:this.mk(601,'to');continue
|
|
3670
3666
|
case 599:switch(this.l()){
|
|
3671
3667
|
case'[':this.cardinality({art},600);continue
|
|
3672
3668
|
default:this.s=600;continue
|
|
3673
3669
|
}
|
|
3674
|
-
case 600:this.mk(
|
|
3675
|
-
case 601:switch(this.
|
|
3676
|
-
case'
|
|
3670
|
+
case 600:this.mk(601,'of');continue
|
|
3671
|
+
case 601:switch(this.lk()){
|
|
3672
|
+
case'one':case'many':if(this.lP(['Id'])&&this.gc(602,'noRepeatedCardinality')&&this.ck(602))card=this.lb();continue
|
|
3677
3673
|
default:this.s=602;continue
|
|
3678
3674
|
}
|
|
3679
|
-
case 602:this.
|
|
3680
|
-
case 603:
|
|
3681
|
-
case
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
case
|
|
3685
|
-
case 605:this.mk(606,'on');continue
|
|
3686
|
-
case 606:if(this.condition(_={},607)){expr=_.expr; art.on = expr; }continue
|
|
3687
|
-
case 607:this.s=608;{ this.docComment( art ); }continue
|
|
3688
|
-
case 608:switch(this.l()){
|
|
3689
|
-
case'@':this.annoAssignStd({art},608);continue
|
|
3675
|
+
case 602:if(this.simplePath(_={category:'artref'},603)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
|
|
3676
|
+
case 603:this.mk(604,'on');continue
|
|
3677
|
+
case 604:if(this.condition(_={},605)){expr=_.expr; art.on = expr; }continue
|
|
3678
|
+
case 605:this.s=606;{ this.docComment( art ); }continue
|
|
3679
|
+
case 606:switch(this.l()){
|
|
3680
|
+
case'@':this.annoAssignStd({art},606);continue
|
|
3690
3681
|
default:this.gr([',']);continue
|
|
3691
3682
|
}
|
|
3692
3683
|
default:
|
|
@@ -3696,90 +3687,90 @@ return this.exit_()
|
|
|
3696
3687
|
}
|
|
3697
3688
|
whereGroupByHaving($,$next){
|
|
3698
3689
|
let cond;let _
|
|
3699
|
-
this.rule_(
|
|
3690
|
+
this.rule_(608,$next)
|
|
3700
3691
|
for(;;)switch(this.s){
|
|
3701
|
-
case
|
|
3702
|
-
case'where':this.ck(
|
|
3703
|
-
default:this.s=
|
|
3692
|
+
case 608:switch(this.lk()){
|
|
3693
|
+
case'where':this.ck(609);continue
|
|
3694
|
+
default:this.s=610;continue
|
|
3704
3695
|
}
|
|
3705
|
-
case
|
|
3706
|
-
case
|
|
3707
|
-
case'group':this.groupByClause($,
|
|
3708
|
-
default:this.s=
|
|
3696
|
+
case 609:if(this.condition(_={},610)){cond=_.expr; $.query.where = cond; }continue
|
|
3697
|
+
case 610:switch(this.lk()){
|
|
3698
|
+
case'group':this.groupByClause($,611);continue
|
|
3699
|
+
default:this.s=611;continue
|
|
3709
3700
|
}
|
|
3710
|
-
case
|
|
3711
|
-
case'having':this.ck(
|
|
3701
|
+
case 611:switch(this.lk()){
|
|
3702
|
+
case'having':this.ck(612);continue
|
|
3712
3703
|
default:this.gr(['limit','order']);continue
|
|
3713
3704
|
}
|
|
3714
|
-
case
|
|
3705
|
+
case 612:if(this.condition(_={},0)){cond=_.expr; $.query.having = cond; }continue
|
|
3715
3706
|
default:return this.exit_()
|
|
3716
3707
|
}
|
|
3717
3708
|
}
|
|
3718
3709
|
groupByClause($,$next){
|
|
3719
3710
|
let expr;let _
|
|
3720
|
-
this.rule_(
|
|
3711
|
+
this.rule_(614,$next)
|
|
3721
3712
|
for(;;)switch(this.s){
|
|
3722
|
-
case
|
|
3723
|
-
case
|
|
3724
|
-
case
|
|
3725
|
-
case
|
|
3726
|
-
case',':this.c(
|
|
3713
|
+
case 614:this.mk(615,'group');continue
|
|
3714
|
+
case 615:this.mk(616,'by');continue
|
|
3715
|
+
case 616:if(this.expression(_={},617)){expr=_.expr; $.query.groupBy = [ expr ]; }continue
|
|
3716
|
+
case 617:switch(this.l()){
|
|
3717
|
+
case',':this.c(618);continue
|
|
3727
3718
|
default:this.gr(['limit','order','having']);continue
|
|
3728
3719
|
}
|
|
3729
|
-
case
|
|
3720
|
+
case 618:if(this.expression(_={},617)){expr=_.expr; $.query.groupBy.push( expr ); }continue
|
|
3730
3721
|
default:return this.exit_()
|
|
3731
3722
|
}
|
|
3732
3723
|
}
|
|
3733
3724
|
orderByLimitOffset($,$next){
|
|
3734
3725
|
let expr;let _
|
|
3735
|
-
this.rule_(
|
|
3726
|
+
this.rule_(620,$next)
|
|
3736
3727
|
for(;;)switch(this.s){
|
|
3737
|
-
case
|
|
3738
|
-
case'order':this.orderByClause($,
|
|
3739
|
-
default:this.s=
|
|
3728
|
+
case 620:switch(this.lk()){
|
|
3729
|
+
case'order':this.orderByClause($,621);continue
|
|
3730
|
+
default:this.s=621;continue
|
|
3740
3731
|
}
|
|
3741
|
-
case
|
|
3742
|
-
case'limit':this.ck(
|
|
3743
|
-
default:this.gr(
|
|
3732
|
+
case 621:switch(this.lk()){
|
|
3733
|
+
case'limit':this.ck(622);continue
|
|
3734
|
+
default:this.gr();continue
|
|
3744
3735
|
}
|
|
3745
|
-
case
|
|
3746
|
-
case
|
|
3747
|
-
case'offset':this.ck(
|
|
3748
|
-
default:this.gr(
|
|
3736
|
+
case 622:if(this.expression(_={},623)){expr=_.expr; $.query.limit = { rows: expr }; }continue
|
|
3737
|
+
case 623:switch(this.lk()){
|
|
3738
|
+
case'offset':this.ck(624);continue
|
|
3739
|
+
default:this.gr();continue
|
|
3749
3740
|
}
|
|
3750
|
-
case
|
|
3741
|
+
case 624:if(this.expression(_={},0)){expr=_.expr; $.query.limit.offset = expr; }continue
|
|
3751
3742
|
default:return this.exit_()
|
|
3752
3743
|
}
|
|
3753
3744
|
}
|
|
3754
3745
|
orderByClause($,$next){
|
|
3755
3746
|
let expr;let _
|
|
3756
|
-
this.rule_(
|
|
3747
|
+
this.rule_(626,$next)
|
|
3757
3748
|
for(;;)switch(this.s){
|
|
3758
|
-
case
|
|
3759
|
-
case
|
|
3760
|
-
case
|
|
3761
|
-
case
|
|
3762
|
-
case',':this.c(
|
|
3749
|
+
case 626:this.mk(627,'order');continue
|
|
3750
|
+
case 627:this.mk(628,'by');continue
|
|
3751
|
+
case 628:if(this.orderByExpression(_={},629)){expr=_.expr; $.query.orderBy = [ expr ]; }continue
|
|
3752
|
+
case 629:switch(this.l()){
|
|
3753
|
+
case',':this.c(630);continue
|
|
3763
3754
|
default:this.gr(['limit']);continue
|
|
3764
3755
|
}
|
|
3765
|
-
case
|
|
3756
|
+
case 630:if(this.orderByExpression(_={},629)){expr=_.expr; $.query.orderBy.push( expr ); }continue
|
|
3766
3757
|
default:return this.exit_()
|
|
3767
3758
|
}
|
|
3768
3759
|
}
|
|
3769
3760
|
orderByExpression($,$next){
|
|
3770
3761
|
$.expr??=undefined
|
|
3771
|
-
this.rule_(
|
|
3762
|
+
this.rule_(632,$next)
|
|
3772
3763
|
for(;;)switch(this.s){
|
|
3773
|
-
case
|
|
3774
|
-
case
|
|
3775
|
-
case'asc':case'desc':if(this.ck(
|
|
3776
|
-
default:this.s=
|
|
3764
|
+
case 632:this.expression($,633);continue
|
|
3765
|
+
case 633:switch(this.lk()){
|
|
3766
|
+
case'asc':case'desc':if(this.ck(634)){ $.expr.sort = this.valueWithLocation(); }continue
|
|
3767
|
+
default:this.s=634;continue
|
|
3777
3768
|
}
|
|
3778
|
-
case
|
|
3779
|
-
case'nulls':this.ck(
|
|
3769
|
+
case 634:switch(this.lk()){
|
|
3770
|
+
case'nulls':this.ck(635);continue
|
|
3780
3771
|
default:this.gr([',','limit']);continue
|
|
3781
3772
|
}
|
|
3782
|
-
case
|
|
3773
|
+
case 635:switch(this.lk()){
|
|
3783
3774
|
case'last':case'first':if(this.ck(0)){ $.expr.nulls = this.valueWithLocation(); }continue
|
|
3784
3775
|
default:this.e();continue
|
|
3785
3776
|
}
|
|
@@ -3789,114 +3780,114 @@ default:return this.exit_()
|
|
|
3789
3780
|
conditionEOF($,$next){
|
|
3790
3781
|
$.cond??=undefined
|
|
3791
3782
|
let _
|
|
3792
|
-
this.rule_(
|
|
3783
|
+
this.rule_(637,$next)
|
|
3793
3784
|
for(;;)switch(this.s){
|
|
3794
|
-
case
|
|
3795
|
-
case
|
|
3785
|
+
case 637:if(this.expression(_={},638))$.cond=_.expr;continue
|
|
3786
|
+
case 638:this.m(0,'EOF');continue
|
|
3796
3787
|
default:return this.exit_()
|
|
3797
3788
|
}
|
|
3798
3789
|
}
|
|
3799
3790
|
condition($,$next){
|
|
3800
3791
|
$.expr??=undefined
|
|
3801
|
-
this.rule_(
|
|
3792
|
+
this.rule_(640,$next)
|
|
3802
3793
|
for(;;)switch(this.s){
|
|
3803
|
-
case
|
|
3794
|
+
case 640:this.expression($,0);continue
|
|
3804
3795
|
default:return this.exit_()
|
|
3805
3796
|
}
|
|
3806
3797
|
}
|
|
3807
3798
|
expression($,$next,$startState){
|
|
3808
3799
|
$.expr??={}
|
|
3809
3800
|
let e;let open;let _
|
|
3810
|
-
this.rule_($startState??
|
|
3801
|
+
this.rule_($startState??642,$next)
|
|
3811
3802
|
for(;;)switch(this.s){
|
|
3812
|
-
case
|
|
3813
|
-
case'(':this.expressionOrQueryParens($,
|
|
3814
|
-
case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,
|
|
3815
|
-
case':':if(this.c(
|
|
3816
|
-
case'?':if(this.c(
|
|
3803
|
+
case 642:switch(this.lk()){
|
|
3804
|
+
case'(':this.expressionOrQueryParens($,643);continue
|
|
3805
|
+
case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,654);continue
|
|
3806
|
+
case':':if(this.c(644)){ this.reportUnexpectedSpace(); }continue
|
|
3807
|
+
case'?':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
|
|
3817
3808
|
$.expr = this.attachLocation({ param: this.valueWithLocation(), scope: 'param' }); }continue
|
|
3818
|
-
case'Id':if(this.valuePath(_={},
|
|
3819
|
-
case'new':if(this.ckP(
|
|
3820
|
-
case'exists':if(this.ck(
|
|
3821
|
-
case'case':this.caseExpression($,
|
|
3822
|
-
case'cast':this.castFunction($,
|
|
3823
|
-
case'+':case'-':if(this.ec('precRight_',30)&&this.c(
|
|
3824
|
-
case'not':if(this.ec('precRight_',8)&&this.ck(
|
|
3809
|
+
case'Id':if(this.valuePath(_={},646)){e=_.expr; $.expr = this.valuePathAst( e ); }continue
|
|
3810
|
+
case'new':if(this.ckP(649,['Id'])){ $.expr = this.applyOpToken(); }continue
|
|
3811
|
+
case'exists':if(this.ck(650)){ $.expr = this.applyOpToken(); }continue
|
|
3812
|
+
case'case':this.caseExpression($,654);continue
|
|
3813
|
+
case'cast':this.castFunction($,654);continue
|
|
3814
|
+
case'+':case'-':if(this.ec('precRight_',30)&&this.c(653)){ $.expr = this.applyOpToken(); }continue
|
|
3815
|
+
case'not':if(this.ec('precRight_',8)&&this.ck(653)){ $.expr = this.applyOpToken(); }continue
|
|
3825
3816
|
default:this.ei();continue
|
|
3826
3817
|
}
|
|
3827
|
-
case
|
|
3828
|
-
case
|
|
3829
|
-
case'Id':if(this.ciA(
|
|
3830
|
-
case'Number':if(this.c(
|
|
3818
|
+
case 643:this.s=654;{ $.expr = this.taggedIfQuery( $.expr ); }continue
|
|
3819
|
+
case 644:switch(this.l()){
|
|
3820
|
+
case'Id':if(this.ciA(645,'paramref')){ $.expr = { path: [ this.identAst() ], location: this.startLocation(), scope: 'param' }; }continue
|
|
3821
|
+
case'Number':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'positional', code: ':' + this.lb().text } );
|
|
3831
3822
|
$.expr = this.attachLocation({ param: this.unsignedIntegerLiteral(), scope: 'param' }); }continue
|
|
3832
3823
|
default:this.e();continue
|
|
3833
3824
|
}
|
|
3834
|
-
case
|
|
3835
|
-
case'.':if(this.valuePath($,
|
|
3836
|
-
default:this.s=
|
|
3825
|
+
case 645:switch(this.l()){
|
|
3826
|
+
case'.':if(this.valuePath($,654,673)){ $.expr = this.valuePathAst( $.expr ); }continue
|
|
3827
|
+
default:this.s=654;{ this.attachLocation( $.expr ); }continue
|
|
3837
3828
|
}
|
|
3838
|
-
case
|
|
3839
|
-
case'over':if(this.ck(
|
|
3840
|
-
default:this.s=
|
|
3829
|
+
case 646:switch(this.lk()){
|
|
3830
|
+
case'over':if(this.ck(647)){ this.pushXprToken( $.expr.suffix = [] ); }continue
|
|
3831
|
+
default:this.s=648;continue
|
|
3841
3832
|
}
|
|
3842
|
-
case
|
|
3843
|
-
case
|
|
3844
|
-
case
|
|
3845
|
-
case
|
|
3846
|
-
case'(':if(this.c(
|
|
3847
|
-
case'Id':if(this.valuePath(_={},
|
|
3833
|
+
case 647:this.overClause(e={outer:$.expr.suffix},648);continue
|
|
3834
|
+
case 648:this.s=654;{ this.attachLocation( $.expr ); }continue
|
|
3835
|
+
case 649:if(this.valuePath(_={},654)){e=_.expr; this.valuePathAstWithNew( $.expr, e ); }continue
|
|
3836
|
+
case 650:switch(this.l()){
|
|
3837
|
+
case'(':if(this.c(651))open=this.lb();continue
|
|
3838
|
+
case'Id':if(this.valuePath(_={},654)){e=_.expr; e = this.valuePathAst( e ); e.$expected = 'exists';
|
|
3848
3839
|
$.expr.args.push( e ); this.attachLocation( $.expr ); }continue
|
|
3849
|
-
case'?':if(this.c(
|
|
3840
|
+
case'?':if(this.c(654)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
|
|
3850
3841
|
$.expr.args.push( { param: this.valueWithLocation(), scope: 'param' } ); this.attachLocation( $.expr ); }continue
|
|
3851
3842
|
default:this.e();continue
|
|
3852
3843
|
}
|
|
3853
|
-
case
|
|
3854
|
-
case
|
|
3844
|
+
case 651:if(this.queryExpression(_={},652))e=_.expr;continue
|
|
3845
|
+
case 652:if(this.m(654,')')){ $.expr.args.push( this.taggedIfQuery( this.surroundByParens( e, open ) ) );
|
|
3855
3846
|
this.attachLocation( $.expr ); }continue
|
|
3856
|
-
case
|
|
3857
|
-
case
|
|
3858
|
-
case'*':case'/':if(this.gc(0,'precLeft_',24)&&this.c(
|
|
3859
|
-
case'+':case'-':if(this.gc(0,'precLeft_',22)&&this.c(
|
|
3860
|
-
case'||':if(this.gc(0,'precLeft_',20)&&this.c(
|
|
3861
|
-
case'and':if(this.gc(0,'precLeft_',4)&&this.ck(
|
|
3862
|
-
case'or':if(this.gc(0,'precLeft_',2)&&this.ck(
|
|
3863
|
-
case'?':if(this.gc(0,'
|
|
3864
|
-
case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(
|
|
3865
|
-
case'==':if(this.gc(0,'precNone_',10)&&this.c(
|
|
3866
|
-
case'is':if(this.gc(0,'precNone_',10)&&this.ck(
|
|
3867
|
-
case'not':if(this.gc(0,'isNegatedRelation',10)&&this.ck(
|
|
3868
|
-
case'in':case'like':case'between':if(this.gc(0,'precNone_',10)&&this.g(
|
|
3869
|
-
default:this.gr(
|
|
3870
|
-
}
|
|
3871
|
-
case
|
|
3872
|
-
case
|
|
3847
|
+
case 653:if(this.expression(_={},654)){e=_.expr; $.expr = this.signedExpression( $.expr, e ); }continue
|
|
3848
|
+
case 654:switch(this.lk()){
|
|
3849
|
+
case'*':case'/':if(this.gc(0,'precLeft_',24)&&this.c(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
|
|
3850
|
+
case'+':case'-':if(this.gc(0,'precLeft_',22)&&this.c(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
|
|
3851
|
+
case'||':if(this.gc(0,'precLeft_',20)&&this.c(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
|
|
3852
|
+
case'and':if(this.gc(0,'precLeft_',4)&&this.ck(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
|
|
3853
|
+
case'or':if(this.gc(0,'precLeft_',2)&&this.ck(658)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
|
|
3854
|
+
case'?':if(this.gc(0,'precRight_',0)&&this.c(655)){ $.expr = this.applyOpToken( $.expr, '?:' ); }continue
|
|
3855
|
+
case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(657)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3856
|
+
case'==':if(this.gc(0,'precNone_',10)&&this.c(658)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3857
|
+
case'is':if(this.gc(0,'precNone_',10)&&this.ck(659)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3858
|
+
case'not':if(this.gc(0,'isNegatedRelation',10)&&this.ck(661)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3859
|
+
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
|
|
3860
|
+
default:this.gr();continue
|
|
3861
|
+
}
|
|
3862
|
+
case 655:if(this.expression(_={},656)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3863
|
+
case 656:if(this.m(658,':')){ this.pushXprToken( $.expr ); }continue
|
|
3864
|
+
case 657:switch(this.lk()){
|
|
3865
|
+
case'all':case'any':case'some':if(this.ck(658)){ this.pushXprToken( $.expr ); }continue
|
|
3866
|
+
default:this.s=658;continue
|
|
3867
|
+
}
|
|
3868
|
+
case 658:if(this.expression(_={},669)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3873
3869
|
case 659:switch(this.lk()){
|
|
3874
|
-
case'
|
|
3870
|
+
case'not':if(this.ck(660)){ this.pushXprToken( $.expr ); }continue
|
|
3875
3871
|
default:this.s=660;continue
|
|
3876
3872
|
}
|
|
3877
|
-
case 660:if(this.
|
|
3873
|
+
case 660:if(this.mk(669,'null')){ this.pushXprToken( $.expr ); }continue
|
|
3878
3874
|
case 661:switch(this.lk()){
|
|
3879
|
-
case'
|
|
3880
|
-
|
|
3881
|
-
}
|
|
3882
|
-
case 662:if(this.mk(671,'null')){ this.pushXprToken( $.expr ); }continue
|
|
3883
|
-
case 663:switch(this.lk()){
|
|
3884
|
-
case'between':if(this.ck(664)){ this.pushXprToken( $.expr ); }continue
|
|
3885
|
-
case'in':if(this.ck(667)){ this.pushXprToken( $.expr ); }continue
|
|
3886
|
-
case'like':if(this.ck(668)){ this.pushXprToken( $.expr ); }continue
|
|
3875
|
+
case'between':if(this.ck(662)){ this.pushXprToken( $.expr ); }continue
|
|
3876
|
+
case'in':if(this.ck(665)){ this.pushXprToken( $.expr ); }continue
|
|
3877
|
+
case'like':if(this.ck(666)){ this.pushXprToken( $.expr ); }continue
|
|
3887
3878
|
default:this.e();continue
|
|
3888
3879
|
}
|
|
3889
|
-
case
|
|
3890
|
-
case
|
|
3891
|
-
case
|
|
3892
|
-
case
|
|
3893
|
-
case
|
|
3894
|
-
case
|
|
3895
|
-
case'escape':if(this.ck(
|
|
3896
|
-
default:this.s=
|
|
3880
|
+
case 662:if(this.expression(_={},663)){e=_.expr; $.expr.args?.push( e ); }continue
|
|
3881
|
+
case 663:if(this.mk(664,'and')){ this.pushXprToken( $.expr ); }continue
|
|
3882
|
+
case 664:if(this.expression(_={},669)){e=_.expr; $.expr.args?.push( e ); }continue
|
|
3883
|
+
case 665:if(this.expression(_={},669)){e=_.expr; $.expr.args?.push( this.secureParens( e ) ); }continue
|
|
3884
|
+
case 666:if(this.expression(_={},667)){e=_.expr; $.expr.args?.push( e ); }continue
|
|
3885
|
+
case 667:switch(this.lk()){
|
|
3886
|
+
case'escape':if(this.ck(668)){ this.pushXprToken( $.expr ); }continue
|
|
3887
|
+
default:this.s=669;continue
|
|
3897
3888
|
}
|
|
3898
|
-
case
|
|
3899
|
-
case
|
|
3889
|
+
case 668:if(this.expression(_={},669)){e=_.expr; $.expr.args?.push( e ); }continue
|
|
3890
|
+
case 669:this.s=654;{ this.attachLocation( $.expr ); }continue
|
|
3900
3891
|
default:
|
|
3901
3892
|
if (this.s == null) this.attachLocation( $.expr )
|
|
3902
3893
|
return this.exit_()
|
|
@@ -3905,21 +3896,21 @@ return this.exit_()
|
|
|
3905
3896
|
valuePath($,$next,$startState){
|
|
3906
3897
|
$.expr??={ path: [] }
|
|
3907
3898
|
let pathItem
|
|
3908
|
-
this.rule_($startState??
|
|
3899
|
+
this.rule_($startState??671,$next)
|
|
3909
3900
|
for(;;)switch(this.s){
|
|
3910
|
-
case
|
|
3911
|
-
case
|
|
3912
|
-
case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},
|
|
3913
|
-
default:this.s=
|
|
3901
|
+
case 671:if(this.mi(672,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
|
|
3902
|
+
case 672:switch(this.l()){
|
|
3903
|
+
case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},673);continue
|
|
3904
|
+
default:this.s=673;continue
|
|
3914
3905
|
}
|
|
3915
|
-
case
|
|
3916
|
-
case'.':this.gc(0,'isDotForPath')&&this.c(
|
|
3906
|
+
case 673:switch(this.l()){
|
|
3907
|
+
case'.':this.gc(0,'isDotForPath')&&this.c(674);continue
|
|
3917
3908
|
default:this.gr(['*','+','-','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
|
|
3918
3909
|
}
|
|
3919
|
-
case
|
|
3920
|
-
case
|
|
3921
|
-
case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},
|
|
3922
|
-
default:this.s=
|
|
3910
|
+
case 674:if(this.miA(675,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
|
|
3911
|
+
case 675:switch(this.l()){
|
|
3912
|
+
case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},673)){ pathItem = null; }continue
|
|
3913
|
+
default:this.s=673;continue
|
|
3923
3914
|
}
|
|
3924
3915
|
default:
|
|
3925
3916
|
this.attachLocation( $.expr )
|
|
@@ -3928,48 +3919,48 @@ return this.exit_()
|
|
|
3928
3919
|
}
|
|
3929
3920
|
expressionOrQueryParens($,$next){
|
|
3930
3921
|
$.expr??=undefined
|
|
3931
|
-
this.rule_(
|
|
3922
|
+
this.rule_(677,$next)
|
|
3932
3923
|
for(;;)switch(this.s){
|
|
3933
|
-
case
|
|
3934
|
-
case
|
|
3935
|
-
case'(':this.expressionOrQueryParens($,
|
|
3936
|
-
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($,
|
|
3937
|
-
case'select':this.queryExpression($,
|
|
3924
|
+
case 677:if(this.m(678,'(')){this.queryOnLeft()}continue;
|
|
3925
|
+
case 678:switch(this.lk()){
|
|
3926
|
+
case'(':this.expressionOrQueryParens($,679);continue
|
|
3927
|
+
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($,681)){this.queryOnLeft('expr')}continue;
|
|
3928
|
+
case'select':this.queryExpression($,682);continue
|
|
3938
3929
|
default:this.ei();continue
|
|
3939
3930
|
}
|
|
3940
|
-
case
|
|
3941
|
-
case'*':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($,
|
|
3942
|
-
case',':if(this.continueExpressionslist($,
|
|
3943
|
-
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(
|
|
3944
|
-
default:this.s=
|
|
3931
|
+
case 679:switch(this.lk()){
|
|
3932
|
+
case'*':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($,680,643)){this.queryOnLeft('expr')}continue;
|
|
3933
|
+
case',':if(this.continueExpressionslist($,682)){this.queryOnLeft('expr')}continue;
|
|
3934
|
+
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(682,'queryOnLeft')&&this.queryExpression($,682,455);continue
|
|
3935
|
+
default:this.s=682;continue
|
|
3945
3936
|
}
|
|
3946
|
-
case
|
|
3947
|
-
case',':this.continueExpressionslist($,
|
|
3948
|
-
default:this.s=
|
|
3937
|
+
case 680:switch(this.l()){
|
|
3938
|
+
case',':this.continueExpressionslist($,682);continue
|
|
3939
|
+
default:this.s=682;continue
|
|
3949
3940
|
}
|
|
3950
|
-
case
|
|
3951
|
-
case',':this.continueExpressionslist($,
|
|
3952
|
-
default:this.s=
|
|
3941
|
+
case 681:switch(this.l()){
|
|
3942
|
+
case',':this.continueExpressionslist($,682);continue
|
|
3943
|
+
default:this.s=682;continue
|
|
3953
3944
|
}
|
|
3954
|
-
case
|
|
3945
|
+
case 682:if(this.m(0,')')){ this.surroundByParens( $.expr ); }continue
|
|
3955
3946
|
default:return this.exit_()
|
|
3956
3947
|
}
|
|
3957
3948
|
}
|
|
3958
3949
|
continueExpressionslist($,$next){
|
|
3959
3950
|
let e;let _
|
|
3960
|
-
this.rule_(
|
|
3951
|
+
this.rule_(684,$next)
|
|
3961
3952
|
for(;;)switch(this.s){
|
|
3962
|
-
case
|
|
3963
|
-
case
|
|
3964
|
-
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=
|
|
3953
|
+
case 684:if(this.m(685,',')){ $.expr = { op: this.valueWithLocation( 'list' ), args: [ $.expr ], location: { ... $.expr.$parens?.at( -1 ) ?? $.expr.location } }; }continue
|
|
3954
|
+
case 685:switch(this.lk()){
|
|
3955
|
+
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=686;continue
|
|
3965
3956
|
default:this.ei();continue
|
|
3966
3957
|
}
|
|
3967
|
-
case
|
|
3968
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'
|
|
3969
|
-
default:this.
|
|
3958
|
+
case 686:switch(this.l()){
|
|
3959
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},687)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3960
|
+
default:this.gr([')']);continue
|
|
3970
3961
|
}
|
|
3971
|
-
case
|
|
3972
|
-
case',':this.c(
|
|
3962
|
+
case 687:switch(this.l()){
|
|
3963
|
+
case',':this.c(686);continue
|
|
3973
3964
|
default:this.gr([')']);continue
|
|
3974
3965
|
}
|
|
3975
3966
|
default:
|
|
@@ -3980,30 +3971,30 @@ return this.exit_()
|
|
|
3980
3971
|
caseExpression($,$next){
|
|
3981
3972
|
$.expr??=undefined
|
|
3982
3973
|
let e;let _
|
|
3983
|
-
this.rule_(
|
|
3974
|
+
this.rule_(689,$next)
|
|
3984
3975
|
for(;;)switch(this.s){
|
|
3985
|
-
case
|
|
3986
|
-
case
|
|
3987
|
-
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(_={},
|
|
3988
|
-
default:this.gi(
|
|
3976
|
+
case 689:if(this.mk(690,'case')){ $.expr.op = { val: 'ixpr', location: this.lb().location }; $.expr.args = []; this.pushXprToken( $.expr ); }continue
|
|
3977
|
+
case 690:switch(this.lk()){
|
|
3978
|
+
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(_={},691)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3979
|
+
default:this.gi(691);continue
|
|
3989
3980
|
}
|
|
3990
|
-
case
|
|
3991
|
-
case'when':this.s=
|
|
3981
|
+
case 691:switch(this.lk()){
|
|
3982
|
+
case'when':this.s=692;continue
|
|
3992
3983
|
default:this.e();continue
|
|
3993
3984
|
}
|
|
3994
|
-
case
|
|
3995
|
-
case'when':if(this.ck(
|
|
3985
|
+
case 692:switch(this.lk()){
|
|
3986
|
+
case'when':if(this.ck(693)){ this.pushXprToken( $.expr ); }continue
|
|
3987
|
+
default:this.s=696;continue
|
|
3988
|
+
}
|
|
3989
|
+
case 693:if(this.expression(_={},694)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3990
|
+
case 694:if(this.mk(695,'then')){ this.pushXprToken( $.expr ); }continue
|
|
3991
|
+
case 695:if(this.expression(_={},692)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3992
|
+
case 696:switch(this.lk()){
|
|
3993
|
+
case'else':if(this.ck(697)){ this.pushXprToken( $.expr ); }continue
|
|
3996
3994
|
default:this.s=698;continue
|
|
3997
3995
|
}
|
|
3998
|
-
case
|
|
3999
|
-
case
|
|
4000
|
-
case 697:if(this.expression(_={},694)){e=_.expr; $.expr.args.push( e ); }continue
|
|
4001
|
-
case 698:switch(this.lk()){
|
|
4002
|
-
case'else':if(this.ck(699)){ this.pushXprToken( $.expr ); }continue
|
|
4003
|
-
default:this.s=700;continue
|
|
4004
|
-
}
|
|
4005
|
-
case 699:if(this.expression(_={},700)){e=_.expr; $.expr.args.push( e ); }continue
|
|
4006
|
-
case 700:if(this.mk(0,'end')){ this.pushXprToken( $.expr ); }continue
|
|
3996
|
+
case 697:if(this.expression(_={},698)){e=_.expr; $.expr.args.push( e ); }continue
|
|
3997
|
+
case 698:if(this.mk(0,'end')){ this.pushXprToken( $.expr ); }continue
|
|
4007
3998
|
default:
|
|
4008
3999
|
this.attachLocation( $.expr )
|
|
4009
4000
|
return this.exit_()
|
|
@@ -4012,14 +4003,14 @@ return this.exit_()
|
|
|
4012
4003
|
castFunction($,$next){
|
|
4013
4004
|
$.expr??=undefined
|
|
4014
4005
|
let arg;let _
|
|
4015
|
-
this.rule_(
|
|
4006
|
+
this.rule_(700,$next)
|
|
4016
4007
|
for(;;)switch(this.s){
|
|
4017
|
-
case
|
|
4018
|
-
case
|
|
4019
|
-
case
|
|
4020
|
-
case
|
|
4021
|
-
case
|
|
4022
|
-
case
|
|
4008
|
+
case 700:if(this.mk(701,'cast')){ $.expr.op = this.valueWithLocation(); }continue
|
|
4009
|
+
case 701:if(this.m(702,'(')){ $.expr.args = this.createArray(); }continue
|
|
4010
|
+
case 702:if(this.expression(_={},703)){arg=_.expr; $.expr.args?.push( arg ); }continue
|
|
4011
|
+
case 703:this.mk(704,'as');continue
|
|
4012
|
+
case 704:this.typeRefOptArgs({art:$.expr},705);continue
|
|
4013
|
+
case 705:if(this.m(0,')')){ this.finalizeDictOrArray( $.expr.args ); }continue
|
|
4023
4014
|
default:
|
|
4024
4015
|
this.attachLocation( $.expr )
|
|
4025
4016
|
return this.exit_()
|
|
@@ -4027,66 +4018,66 @@ return this.exit_()
|
|
|
4027
4018
|
}
|
|
4028
4019
|
argumentsAndFilter($,$next){
|
|
4029
4020
|
let open;let id;let expr;let _
|
|
4030
|
-
this.rule_(
|
|
4021
|
+
this.rule_(707,$next)
|
|
4031
4022
|
for(;;)switch(this.s){
|
|
4032
|
-
case
|
|
4033
|
-
case'(':if(this.c(
|
|
4034
|
-
default:this.s=
|
|
4023
|
+
case 707:switch(this.l()){
|
|
4024
|
+
case'(':if(this.c(708)){open=this.lb();this.prepareSpecialFunction(); $.pathStep.args = this.createArray(); }continue
|
|
4025
|
+
default:this.s=727;continue
|
|
4035
4026
|
}
|
|
4036
|
-
case
|
|
4037
|
-
case'Id':if(this.gc(
|
|
4038
|
-
default:this.s=
|
|
4027
|
+
case 708:switch(this.l()){
|
|
4028
|
+
case'Id':if(this.gc(720,'isNamedArg')&&this.ciA(709,'paramname'))id=this.lb();continue
|
|
4029
|
+
default:this.s=720;continue
|
|
4039
4030
|
}
|
|
4040
|
-
case
|
|
4041
|
-
case':':if(this.c(
|
|
4042
|
-
case'=>':if(this.c(
|
|
4031
|
+
case 709:switch(this.l()){
|
|
4032
|
+
case':':if(this.c(710)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
|
|
4033
|
+
case'=>':if(this.c(715)){ $.pathStep.args = this.createDict(); }continue
|
|
4043
4034
|
default:this.e();continue
|
|
4044
4035
|
}
|
|
4045
|
-
case
|
|
4046
|
-
case
|
|
4047
|
-
case',':this.c(
|
|
4048
|
-
default:this.s=
|
|
4036
|
+
case 710:if(this.expression(_={},711)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4037
|
+
case 711:switch(this.l()){
|
|
4038
|
+
case',':this.c(712);continue
|
|
4039
|
+
default:this.s=726;continue
|
|
4049
4040
|
}
|
|
4050
|
-
case
|
|
4051
|
-
case'Id':if(this.ciA(
|
|
4052
|
-
case')':this.s=
|
|
4041
|
+
case 712:switch(this.l()){
|
|
4042
|
+
case'Id':if(this.ciA(713,'paramname'))id=this.lb();continue
|
|
4043
|
+
case')':this.s=726;continue
|
|
4053
4044
|
default:this.e();continue
|
|
4054
4045
|
}
|
|
4055
|
-
case
|
|
4056
|
-
case
|
|
4057
|
-
case
|
|
4058
|
-
case
|
|
4059
|
-
case',':this.c(
|
|
4060
|
-
default:this.s=
|
|
4046
|
+
case 713:this.m(714,':');continue
|
|
4047
|
+
case 714:if(this.expression(_={},711)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4048
|
+
case 715:if(this.expression(_={},716)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4049
|
+
case 716:switch(this.l()){
|
|
4050
|
+
case',':this.c(717);continue
|
|
4051
|
+
default:this.s=726;continue
|
|
4061
4052
|
}
|
|
4062
|
-
case
|
|
4063
|
-
case'Id':if(this.ciA(
|
|
4064
|
-
case')':this.s=
|
|
4053
|
+
case 717:switch(this.l()){
|
|
4054
|
+
case'Id':if(this.ciA(718,'paramname'))id=this.lb();continue
|
|
4055
|
+
case')':this.s=726;continue
|
|
4065
4056
|
default:this.e();continue
|
|
4066
4057
|
}
|
|
4067
|
-
case
|
|
4068
|
-
case
|
|
4069
|
-
case
|
|
4070
|
-
case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':case'DeleteStarFromSet':if(this.funcExpression(_={},
|
|
4071
|
-
default:this.s=
|
|
4058
|
+
case 718:this.m(719,'=>');continue
|
|
4059
|
+
case 719:if(this.expression(_={},716)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4060
|
+
case 720:switch(this.l()){
|
|
4061
|
+
case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':case'DeleteStarFromSet':if(this.funcExpression(_={},721)){expr=_.expr; $.pathStep.args.push( expr ); }continue
|
|
4062
|
+
default:this.s=726;continue
|
|
4072
4063
|
}
|
|
4073
|
-
case
|
|
4074
|
-
case',':if(this.c(
|
|
4075
|
-
default:this.s=
|
|
4064
|
+
case 721:switch(this.l()){
|
|
4065
|
+
case',':if(this.c(722)){this.nextFunctionArgument()}continue;
|
|
4066
|
+
default:this.s=723;continue
|
|
4076
4067
|
}
|
|
4077
|
-
case
|
|
4078
|
-
case'Id':case'#':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':case'DeleteStarFromSet':if(this.funcExpression(_={},
|
|
4079
|
-
case')':case'order':this.lP()&&this.ec('atRightParen')&&this.g(
|
|
4068
|
+
case 722:switch(this.lk()){
|
|
4069
|
+
case'Id':case'#':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':case'DeleteStarFromSet':if(this.funcExpression(_={},721)){expr=_.expr; $.pathStep.args.push( expr ); }continue
|
|
4070
|
+
case')':case'order':this.lP()&&this.ec('atRightParen')&&this.g(723);continue
|
|
4080
4071
|
default:this.ei();continue
|
|
4081
4072
|
}
|
|
4082
|
-
case
|
|
4083
|
-
case'order':if(this.ck(
|
|
4084
|
-
default:this.s=
|
|
4073
|
+
case 723:switch(this.lk()){
|
|
4074
|
+
case'order':if(this.ck(724)){ expr = $.pathStep.args[$.pathStep.args.length - 1] = this.applyOpToken( expr ); }continue
|
|
4075
|
+
default:this.s=726;continue
|
|
4085
4076
|
}
|
|
4086
|
-
case
|
|
4087
|
-
case
|
|
4088
|
-
case
|
|
4089
|
-
case
|
|
4077
|
+
case 724:if(this.mk(725,'by')){ this.pushXprToken( expr ); }continue
|
|
4078
|
+
case 725:if(this.orderByClauseAsXpr({outer:expr.args},726)){ this.attachLocation( expr ); }continue
|
|
4079
|
+
case 726:if(this.m(727,')')){ this.finalizeDictOrArray( $.pathStep.args ); }continue
|
|
4080
|
+
case 727:switch(this.l()){
|
|
4090
4081
|
case'[':this.cardinalityAndFilter($,0);continue
|
|
4091
4082
|
default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
|
|
4092
4083
|
}
|
|
@@ -4097,22 +4088,22 @@ funcExpression($,$next){
|
|
|
4097
4088
|
$.expr??=undefined
|
|
4098
4089
|
let args
|
|
4099
4090
|
let tok;let e;let _
|
|
4100
|
-
this.rule_(
|
|
4091
|
+
this.rule_(729,$next)
|
|
4101
4092
|
for(;;)switch(this.s){
|
|
4102
|
-
case
|
|
4103
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
4104
|
-
case'GenericExpr':if(this.ckA(
|
|
4105
|
-
case'GenericIntro':if(this.ckA(
|
|
4093
|
+
case 729:switch(this.lGenericIntroOrExpr()){
|
|
4094
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},731))$.expr=_.expr;continue
|
|
4095
|
+
case'GenericExpr':if(this.ckA(731)){tok=this.lb(); $.expr = { val: tok.keyword ?? tok.type, location: tok.location, literal: 'token' }; }continue
|
|
4096
|
+
case'GenericIntro':if(this.ckA(730)){ $.expr = this.applyOpToken(); args = $.expr.args; }continue
|
|
4106
4097
|
default:this.e();continue
|
|
4107
4098
|
}
|
|
4108
|
-
case
|
|
4109
|
-
case
|
|
4110
|
-
case'GenericSeparator':if(this.ckA(
|
|
4099
|
+
case 730:if(this.expression(_={},731)){e=_.expr; $.expr.args.push( e ); }continue
|
|
4100
|
+
case 731:switch(this.lGenericSeparator()){
|
|
4101
|
+
case'GenericSeparator':if(this.ckA(732)){ if (args) this.pushXprToken( args ); else { $.expr= this.applyOpToken( $.expr ); args = $.expr.args; } }continue
|
|
4111
4102
|
default:this.gr([')',',','order']);continue
|
|
4112
4103
|
}
|
|
4113
|
-
case
|
|
4114
|
-
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},
|
|
4115
|
-
case'GenericExpr':if(this.ckA(
|
|
4104
|
+
case 732:switch(this.lGenericExpr()){
|
|
4105
|
+
case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},731)){e=_.expr; args.push( e ); }continue
|
|
4106
|
+
case'GenericExpr':if(this.ckA(731)){ this.pushXprToken( args ); }continue
|
|
4116
4107
|
default:this.e();continue
|
|
4117
4108
|
}
|
|
4118
4109
|
default:
|
|
@@ -4122,27 +4113,27 @@ return this.exit_()
|
|
|
4122
4113
|
}
|
|
4123
4114
|
overClause($,$next){
|
|
4124
4115
|
let over=[]
|
|
4125
|
-
this.rule_(
|
|
4116
|
+
this.rule_(734,$next)
|
|
4126
4117
|
for(;;)switch(this.s){
|
|
4127
|
-
case
|
|
4128
|
-
case
|
|
4129
|
-
case'partition':if(this.ck(
|
|
4130
|
-
default:this.s=
|
|
4131
|
-
}
|
|
4132
|
-
case
|
|
4133
|
-
case
|
|
4134
|
-
case
|
|
4135
|
-
case'order':if(this.ck(
|
|
4118
|
+
case 734:this.m(735,'(');continue
|
|
4119
|
+
case 735:switch(this.lk()){
|
|
4120
|
+
case'partition':if(this.ck(736)){ this.pushXprToken( over ); }continue
|
|
4121
|
+
default:this.s=738;continue
|
|
4122
|
+
}
|
|
4123
|
+
case 736:if(this.mk(737,'by')){ this.pushXprToken( over ); }continue
|
|
4124
|
+
case 737:this.expressionsAsXpr({outer:over},738);continue
|
|
4125
|
+
case 738:switch(this.lk()){
|
|
4126
|
+
case'order':if(this.ck(739)){ this.pushXprToken( over ); }continue
|
|
4127
|
+
default:this.s=741;continue
|
|
4128
|
+
}
|
|
4129
|
+
case 739:if(this.mk(740,'by')){ this.pushXprToken( over ); }continue
|
|
4130
|
+
case 740:this.orderByClauseAsXpr({outer:over},741);continue
|
|
4131
|
+
case 741:switch(this.lk()){
|
|
4132
|
+
case'rows':if(this.ck(742)){ this.pushXprToken( over ); }continue
|
|
4136
4133
|
default:this.s=743;continue
|
|
4137
4134
|
}
|
|
4138
|
-
case
|
|
4139
|
-
case
|
|
4140
|
-
case 743:switch(this.lk()){
|
|
4141
|
-
case'rows':if(this.ck(744)){ this.pushXprToken( over ); }continue
|
|
4142
|
-
default:this.s=745;continue
|
|
4143
|
-
}
|
|
4144
|
-
case 744:this.windowFrameClause({outer:over},745);continue
|
|
4145
|
-
case 745:this.m(0,')');continue
|
|
4135
|
+
case 742:this.windowFrameClause({outer:over},743);continue
|
|
4136
|
+
case 743:this.m(0,')');continue
|
|
4146
4137
|
default:
|
|
4147
4138
|
$.outer.push( this.surroundByParens( this.ixprAst( over ) ) )
|
|
4148
4139
|
return this.exit_()
|
|
@@ -4151,14 +4142,14 @@ return this.exit_()
|
|
|
4151
4142
|
expressionsAsXpr($,$next){
|
|
4152
4143
|
let args=[]
|
|
4153
4144
|
let expr;let _
|
|
4154
|
-
this.rule_(
|
|
4145
|
+
this.rule_(745,$next)
|
|
4155
4146
|
for(;;)switch(this.s){
|
|
4156
|
-
case
|
|
4157
|
-
case
|
|
4158
|
-
case',':if(this.c(
|
|
4147
|
+
case 745:if(this.expression(_={},746)){expr=_.expr; args.push( expr ); }continue
|
|
4148
|
+
case 746:switch(this.l()){
|
|
4149
|
+
case',':if(this.c(747)){ this.pushXprToken( args ); }continue
|
|
4159
4150
|
default:this.gr([')','rows','order']);continue
|
|
4160
4151
|
}
|
|
4161
|
-
case
|
|
4152
|
+
case 747:if(this.expression(_={},746)){expr=_.expr; args.push( expr ); }continue
|
|
4162
4153
|
default:
|
|
4163
4154
|
$.outer.push( this.ixprAst( args ) )
|
|
4164
4155
|
return this.exit_()
|
|
@@ -4166,14 +4157,14 @@ return this.exit_()
|
|
|
4166
4157
|
}
|
|
4167
4158
|
orderByClauseAsXpr($,$next){
|
|
4168
4159
|
let args=[]
|
|
4169
|
-
this.rule_(
|
|
4160
|
+
this.rule_(749,$next)
|
|
4170
4161
|
for(;;)switch(this.s){
|
|
4171
|
-
case
|
|
4172
|
-
case
|
|
4173
|
-
case',':if(this.c(
|
|
4162
|
+
case 749:this.orderBySpecAsXpr({args},750);continue
|
|
4163
|
+
case 750:switch(this.l()){
|
|
4164
|
+
case',':if(this.c(751)){ this.pushXprToken( args ); }continue
|
|
4174
4165
|
default:this.gr([')']);continue
|
|
4175
4166
|
}
|
|
4176
|
-
case
|
|
4167
|
+
case 751:this.orderBySpecAsXpr({args},750);continue
|
|
4177
4168
|
default:
|
|
4178
4169
|
$.outer.push( this.ixprAst( args ) )
|
|
4179
4170
|
return this.exit_()
|
|
@@ -4181,18 +4172,18 @@ return this.exit_()
|
|
|
4181
4172
|
}
|
|
4182
4173
|
orderBySpecAsXpr($,$next){
|
|
4183
4174
|
let expr;let _
|
|
4184
|
-
this.rule_(
|
|
4175
|
+
this.rule_(753,$next)
|
|
4185
4176
|
for(;;)switch(this.s){
|
|
4186
|
-
case
|
|
4187
|
-
case
|
|
4188
|
-
case'asc':case'desc':if(this.ck(
|
|
4189
|
-
default:this.s=
|
|
4177
|
+
case 753:if(this.expression(_={},754)){expr=_.expr; $.args.push( expr ); }continue
|
|
4178
|
+
case 754:switch(this.lk()){
|
|
4179
|
+
case'asc':case'desc':if(this.ck(755)){ this.pushXprToken( $.args ); }continue
|
|
4180
|
+
default:this.s=755;continue
|
|
4190
4181
|
}
|
|
4191
|
-
case
|
|
4192
|
-
case'nulls':if(this.ck(
|
|
4182
|
+
case 755:switch(this.lk()){
|
|
4183
|
+
case'nulls':if(this.ck(756)){ this.pushXprToken( $.args ); }continue
|
|
4193
4184
|
default:this.gr([')',',']);continue
|
|
4194
4185
|
}
|
|
4195
|
-
case
|
|
4186
|
+
case 756:switch(this.lk()){
|
|
4196
4187
|
case'last':case'first':if(this.ck(0)){ this.pushXprToken( $.args ); }continue
|
|
4197
4188
|
default:this.e();continue
|
|
4198
4189
|
}
|
|
@@ -4201,50 +4192,50 @@ default:return this.exit_()
|
|
|
4201
4192
|
}
|
|
4202
4193
|
windowFrameClause($,$next){
|
|
4203
4194
|
let args=[]
|
|
4204
|
-
this.rule_(
|
|
4195
|
+
this.rule_(758,$next)
|
|
4205
4196
|
for(;;)switch(this.s){
|
|
4206
|
-
case
|
|
4207
|
-
case'unbounded':if(this.ck(
|
|
4208
|
-
case'Number':if(this.c(
|
|
4209
|
-
case'current':if(this.ck(
|
|
4210
|
-
case'between':if(this.ck(
|
|
4197
|
+
case 758:switch(this.lk()){
|
|
4198
|
+
case'unbounded':if(this.ck(759)){ this.pushXprToken( args ); }continue
|
|
4199
|
+
case'Number':if(this.c(759)){ args.push( this.unsignedIntegerLiteral() ); }continue
|
|
4200
|
+
case'current':if(this.ck(760)){ this.pushXprToken( args ); }continue
|
|
4201
|
+
case'between':if(this.ck(761)){ this.pushXprToken( args ); }continue
|
|
4211
4202
|
default:this.e();continue
|
|
4212
4203
|
}
|
|
4213
|
-
case
|
|
4214
|
-
case
|
|
4215
|
-
case
|
|
4216
|
-
case
|
|
4217
|
-
case
|
|
4204
|
+
case 759:if(this.mk(0,'preceding')){ this.pushXprToken( args ); }continue
|
|
4205
|
+
case 760:if(this.mk(0,'row')){ this.pushXprToken( args ); }continue
|
|
4206
|
+
case 761:this.windowFrameBoundSpec({args},762);continue
|
|
4207
|
+
case 762:if(this.mk(763,'and')){ this.pushXprToken( args ); }continue
|
|
4208
|
+
case 763:this.windowFrameBoundSpec({args},0);continue
|
|
4218
4209
|
default:
|
|
4219
4210
|
$.outer.push( this.ixprAst( args ) )
|
|
4220
4211
|
return this.exit_()
|
|
4221
4212
|
}
|
|
4222
4213
|
}
|
|
4223
4214
|
windowFrameBoundSpec($,$next){
|
|
4224
|
-
this.rule_(
|
|
4215
|
+
this.rule_(765,$next)
|
|
4225
4216
|
for(;;)switch(this.s){
|
|
4226
|
-
case
|
|
4227
|
-
case'unbounded':if(this.ck(
|
|
4228
|
-
case'Number':if(this.c(
|
|
4229
|
-
case'current':if(this.ck(
|
|
4217
|
+
case 765:switch(this.lk()){
|
|
4218
|
+
case'unbounded':if(this.ck(766)){ this.pushXprToken( $.args ); }continue
|
|
4219
|
+
case'Number':if(this.c(766)){ $.args.push( this.unsignedIntegerLiteral() ); }continue
|
|
4220
|
+
case'current':if(this.ck(768)){ this.pushXprToken( $.args ); }continue
|
|
4230
4221
|
default:this.e();continue
|
|
4231
4222
|
}
|
|
4232
|
-
case
|
|
4233
|
-
case'following':this.ck(
|
|
4234
|
-
case'preceding':this.ck(
|
|
4223
|
+
case 766:switch(this.lk()){
|
|
4224
|
+
case'following':this.ck(767);continue
|
|
4225
|
+
case'preceding':this.ck(767);continue
|
|
4235
4226
|
default:this.e();continue
|
|
4236
4227
|
}
|
|
4237
|
-
case
|
|
4238
|
-
case
|
|
4228
|
+
case 767:if(this.gr()){ this.pushXprToken( $.args ); }continue
|
|
4229
|
+
case 768:if(this.mk(0,'row')){ this.pushXprToken( $.args ); }continue
|
|
4239
4230
|
default:return this.exit_()
|
|
4240
4231
|
}
|
|
4241
4232
|
}
|
|
4242
4233
|
literalValue($,$next){
|
|
4243
4234
|
$.expr??={}
|
|
4244
|
-
this.rule_(
|
|
4235
|
+
this.rule_(770,$next)
|
|
4245
4236
|
for(;;)switch(this.s){
|
|
4246
|
-
case
|
|
4247
|
-
case'#':if(this.c(
|
|
4237
|
+
case 770:switch(this.lk()){
|
|
4238
|
+
case'#':if(this.c(771)){ this.reportUnexpectedSpace(); }continue
|
|
4248
4239
|
case'null':if(this.ck(0)){ $.expr = { literal: 'null', val: null }; }continue
|
|
4249
4240
|
case'true':case'false':if(this.ck(0)){ $.expr = { literal: 'boolean', val: this.lb().keyword === 'true' }; }continue
|
|
4250
4241
|
case'Number':if(this.c(0)){ $.expr = this.numberLiteral(); }continue
|
|
@@ -4252,17 +4243,17 @@ case'String':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
|
|
|
4252
4243
|
case'QuotedLiteral':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
|
|
4253
4244
|
default:this.e();continue
|
|
4254
4245
|
}
|
|
4255
|
-
case
|
|
4246
|
+
case 771:if(this.miA(0,'enumref')){ $.expr = { literal: 'enum', sym: this.identAst() } }continue
|
|
4256
4247
|
default:
|
|
4257
4248
|
this.attachLocation( $.expr )
|
|
4258
4249
|
return this.exit_()
|
|
4259
4250
|
}
|
|
4260
4251
|
}
|
|
4261
4252
|
annoAssignStd($,$next){
|
|
4262
|
-
this.rule_(
|
|
4253
|
+
this.rule_(773,$next)
|
|
4263
4254
|
for(;;)switch(this.s){
|
|
4264
|
-
case
|
|
4265
|
-
case
|
|
4255
|
+
case 773:if(this.m(774,'@')){this.annoInSameLine(); this.reportDubiousAnnoSpacing(); }continue
|
|
4256
|
+
case 774:switch(this.l()){
|
|
4266
4257
|
case'(':this.annoAssignParen($,0);continue
|
|
4267
4258
|
case'Id':this.annoAssignBase($,0);continue
|
|
4268
4259
|
default:this.e();continue
|
|
@@ -4273,10 +4264,10 @@ return this.exit_()
|
|
|
4273
4264
|
}
|
|
4274
4265
|
}
|
|
4275
4266
|
annoAssignCol($,$next){
|
|
4276
|
-
this.rule_(
|
|
4267
|
+
this.rule_(776,$next)
|
|
4277
4268
|
for(;;)switch(this.s){
|
|
4278
|
-
case
|
|
4279
|
-
case
|
|
4269
|
+
case 776:if(this.m(777,'@')){ this.reportDubiousAnnoSpacing(); }continue
|
|
4270
|
+
case 777:switch(this.l()){
|
|
4280
4271
|
case'(':this.annoAssignParen($,0);continue
|
|
4281
4272
|
case'Id':this.annoAssignBase($,0);continue
|
|
4282
4273
|
default:this.e();continue
|
|
@@ -4288,10 +4279,10 @@ return this.exit_()
|
|
|
4288
4279
|
}
|
|
4289
4280
|
annoAssignMid($,$next){
|
|
4290
4281
|
let name;let _
|
|
4291
|
-
this.rule_(
|
|
4282
|
+
this.rule_(779,$next)
|
|
4292
4283
|
for(;;)switch(this.s){
|
|
4293
|
-
case
|
|
4294
|
-
case
|
|
4284
|
+
case 779:if(this.m(780,'@')){this.annoInSameLine(); this.reportDubiousAnnoSpacing(); }continue
|
|
4285
|
+
case 780:switch(this.l()){
|
|
4295
4286
|
case'(':this.annoAssignParen($,0);continue
|
|
4296
4287
|
case'Id':if(this.annoNamePath(_={category:'anno'},0)){name=_.name; this.assignAnnotation( $.art, {}, name ); this.warnIfColonFollows( name ); }continue
|
|
4297
4288
|
default:this.e();continue
|
|
@@ -4302,33 +4293,33 @@ return this.exit_()
|
|
|
4302
4293
|
}
|
|
4303
4294
|
}
|
|
4304
4295
|
annoAssignParen($,$next){
|
|
4305
|
-
this.rule_(
|
|
4296
|
+
this.rule_(782,$next)
|
|
4306
4297
|
for(;;)switch(this.s){
|
|
4307
|
-
case
|
|
4308
|
-
case
|
|
4309
|
-
case'Id':this.annoAssignBase({art:$.art},
|
|
4310
|
-
default:this.s=
|
|
4311
|
-
}
|
|
4312
|
-
case
|
|
4313
|
-
case',':this.c(
|
|
4314
|
-
case')':this.s=
|
|
4298
|
+
case 782:if(this.m(783,'(')){this.annoInSameLine()}continue;
|
|
4299
|
+
case 783:switch(this.l()){
|
|
4300
|
+
case'Id':this.annoAssignBase({art:$.art},784);continue
|
|
4301
|
+
default:this.s=785;continue
|
|
4302
|
+
}
|
|
4303
|
+
case 784:switch(this.l()){
|
|
4304
|
+
case',':this.c(783);continue
|
|
4305
|
+
case')':this.s=785;continue
|
|
4315
4306
|
default:this.e();continue
|
|
4316
4307
|
}
|
|
4317
|
-
case
|
|
4308
|
+
case 785:this.m(0,')');continue
|
|
4318
4309
|
default:return this.exit_()
|
|
4319
4310
|
}
|
|
4320
4311
|
}
|
|
4321
4312
|
annoAssignBase($,$next){
|
|
4322
4313
|
let value={}
|
|
4323
4314
|
let name;let _
|
|
4324
|
-
this.rule_(
|
|
4315
|
+
this.rule_(787,$next)
|
|
4325
4316
|
for(;;)switch(this.s){
|
|
4326
|
-
case
|
|
4327
|
-
case
|
|
4328
|
-
case':':this.gc(0,'annoInSameLine')&&this.c(
|
|
4329
|
-
default:this.gr(
|
|
4317
|
+
case 787:if(this.annoNamePath(_={category:'anno'},788))name=_.name;continue
|
|
4318
|
+
case 788:switch(this.l()){
|
|
4319
|
+
case':':this.gc(0,'annoInSameLine')&&this.c(789);continue
|
|
4320
|
+
default:this.gr();continue
|
|
4330
4321
|
}
|
|
4331
|
-
case
|
|
4322
|
+
case 789:if(this.annoValue(_={},0))value=_.value;continue
|
|
4332
4323
|
default:
|
|
4333
4324
|
this.assignAnnotation( $.art, value, name || {} )
|
|
4334
4325
|
return this.exit_()
|
|
@@ -4337,22 +4328,22 @@ return this.exit_()
|
|
|
4337
4328
|
annoNamePath($,$next){
|
|
4338
4329
|
$.name??=new XsnName()
|
|
4339
4330
|
let at
|
|
4340
|
-
this.rule_(
|
|
4331
|
+
this.rule_(791,$next)
|
|
4341
4332
|
for(;;)switch(this.s){
|
|
4342
|
-
case
|
|
4343
|
-
case
|
|
4344
|
-
case'.':this.c(
|
|
4345
|
-
default:this.s=
|
|
4346
|
-
}
|
|
4347
|
-
case
|
|
4348
|
-
case'Id':if(this.ciA(
|
|
4349
|
-
case'@':if(this.c(
|
|
4333
|
+
case 791:if(this.miA(792,$.category)){ $.name.path = [ this.identAst() ]; }continue
|
|
4334
|
+
case 792:switch(this.l()){
|
|
4335
|
+
case'.':this.c(793);continue
|
|
4336
|
+
default:this.s=795;continue
|
|
4337
|
+
}
|
|
4338
|
+
case 793:switch(this.l()){
|
|
4339
|
+
case'Id':if(this.ciA(792,$.category)){ $.name.path.push( this.identAst() ); }continue
|
|
4340
|
+
case'@':if(this.c(794))at=this.lb();continue
|
|
4350
4341
|
default:this.e();continue
|
|
4351
4342
|
}
|
|
4352
|
-
case
|
|
4353
|
-
case
|
|
4343
|
+
case 794:if(this.miA(792,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
|
|
4344
|
+
case 795:switch(this.l()){
|
|
4354
4345
|
case'#':this.gc(0,'annoInSameLine')&&this.annoPathVariant({nameOrRef:$.name},0);continue
|
|
4355
|
-
default:this.gr(
|
|
4346
|
+
default:this.gr();continue
|
|
4356
4347
|
}
|
|
4357
4348
|
default:
|
|
4358
4349
|
this.attachLocation( $.name )
|
|
@@ -4361,27 +4352,27 @@ return this.exit_()
|
|
|
4361
4352
|
}
|
|
4362
4353
|
annoPath($,$next){
|
|
4363
4354
|
let at
|
|
4364
|
-
this.rule_(
|
|
4355
|
+
this.rule_(797,$next)
|
|
4365
4356
|
for(;;)switch(this.s){
|
|
4366
|
-
case
|
|
4367
|
-
case'Id':if(this.ciA(
|
|
4368
|
-
case'@':if(this.c(
|
|
4357
|
+
case 797:switch(this.l()){
|
|
4358
|
+
case'Id':if(this.ciA(799,$.category)){ $.nameOrRef.path = [ this.identAst() ]; }continue
|
|
4359
|
+
case'@':if(this.c(798))at=this.lb();continue
|
|
4369
4360
|
default:this.e();continue
|
|
4370
4361
|
}
|
|
4371
|
-
case
|
|
4372
|
-
case
|
|
4373
|
-
case'.':this.c(
|
|
4374
|
-
default:this.s=
|
|
4362
|
+
case 798:if(this.miA(799,$.category)){ $.nameOrRef.path = [ this.identAstWithPrefix( at ) ]; }continue
|
|
4363
|
+
case 799:switch(this.l()){
|
|
4364
|
+
case'.':this.c(800);continue
|
|
4365
|
+
default:this.s=802;continue
|
|
4375
4366
|
}
|
|
4376
|
-
case
|
|
4377
|
-
case'Id':if(this.ciA(
|
|
4378
|
-
case'@':if(this.c(
|
|
4367
|
+
case 800:switch(this.l()){
|
|
4368
|
+
case'Id':if(this.ciA(799,$.category)){ $.nameOrRef.path.push( this.identAst() ); }continue
|
|
4369
|
+
case'@':if(this.c(801))at=this.lb();continue
|
|
4379
4370
|
default:this.e();continue
|
|
4380
4371
|
}
|
|
4381
|
-
case
|
|
4382
|
-
case
|
|
4372
|
+
case 801:if(this.miA(799,$.category)){ $.nameOrRef.path.push( this.identAstWithPrefix( at ) ); }continue
|
|
4373
|
+
case 802:switch(this.l()){
|
|
4383
4374
|
case'#':this.annoPathVariant({nameOrRef:$.nameOrRef},0);continue
|
|
4384
|
-
default:this.gr(
|
|
4375
|
+
default:this.gr();continue
|
|
4385
4376
|
}
|
|
4386
4377
|
default:
|
|
4387
4378
|
this.attachLocation( $.nameOrRef )
|
|
@@ -4389,15 +4380,15 @@ return this.exit_()
|
|
|
4389
4380
|
}
|
|
4390
4381
|
}
|
|
4391
4382
|
annoPathVariant($,$next){
|
|
4392
|
-
this.rule_(
|
|
4383
|
+
this.rule_(804,$next)
|
|
4393
4384
|
for(;;)switch(this.s){
|
|
4394
|
-
case
|
|
4395
|
-
case
|
|
4396
|
-
case
|
|
4397
|
-
case'.':this.c(
|
|
4398
|
-
default:this.gr(
|
|
4385
|
+
case 804:if(this.m(805,'#')){ this.reportUnexpectedSpace(); }continue
|
|
4386
|
+
case 805:if(this.miA(806,'variant')){ $.nameOrRef.variant = { path: [ this.identAst() ] }; }continue
|
|
4387
|
+
case 806:switch(this.l()){
|
|
4388
|
+
case'.':this.c(807);continue
|
|
4389
|
+
default:this.gr();continue
|
|
4399
4390
|
}
|
|
4400
|
-
case
|
|
4391
|
+
case 807:if(this.miA(806,'variant')){ $.nameOrRef.variant.path.push( this.identAst() ); }continue
|
|
4401
4392
|
default:
|
|
4402
4393
|
this.attachLocation( $.nameOrRef.variant )
|
|
4403
4394
|
return this.exit_()
|
|
@@ -4407,14 +4398,14 @@ annoStructValue($,$next){
|
|
|
4407
4398
|
$.value??={}
|
|
4408
4399
|
let name=new XsnName()
|
|
4409
4400
|
let _
|
|
4410
|
-
this.rule_(
|
|
4401
|
+
this.rule_(809,$next)
|
|
4411
4402
|
for(;;)switch(this.s){
|
|
4412
|
-
case
|
|
4413
|
-
case
|
|
4414
|
-
case':':this.c(
|
|
4403
|
+
case 809:if(this.annoPath({nameOrRef:name,category:'name'},810)){ this.attachLocation( name ); }continue
|
|
4404
|
+
case 810:switch(this.l()){
|
|
4405
|
+
case':':this.c(811);continue
|
|
4415
4406
|
default:if(this.gr(['Id',',','@','}'])){ this.attachLocation( $.value ); }continue
|
|
4416
4407
|
}
|
|
4417
|
-
case
|
|
4408
|
+
case 811:if(this.annoValue(_={},0))$.value=_.value;continue
|
|
4418
4409
|
default:
|
|
4419
4410
|
$.value.name = name
|
|
4420
4411
|
return this.exit_()
|
|
@@ -4423,53 +4414,53 @@ return this.exit_()
|
|
|
4423
4414
|
annoValue($,$next){
|
|
4424
4415
|
$.value??={}
|
|
4425
4416
|
let sign;let sub;let ellipsis;let upTo;let _
|
|
4426
|
-
this.rule_(
|
|
4417
|
+
this.rule_(813,$next)
|
|
4427
4418
|
for(;;)switch(this.s){
|
|
4428
|
-
case
|
|
4419
|
+
case 813:switch(this.lk()){
|
|
4429
4420
|
case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':if(this.literalValue(_={},0)){$.value=_.expr; this.adjustAnnoNumber( $.value ); }continue
|
|
4430
|
-
case'+':case'-':if(this.c(
|
|
4421
|
+
case'+':case'-':if(this.c(814))sign=this.lb();continue
|
|
4431
4422
|
case'Id':case'@':this.annoPath({nameOrRef:$.value,category:'annoref'},0);continue
|
|
4432
|
-
case'{':if(this.c(
|
|
4423
|
+
case'{':if(this.c(815)){ if (!this.dynamic_.arrayAnno) $.value.$flatten = [];
|
|
4433
4424
|
else { $.value.struct = Object.create(null); $.value.literal = 'struct'; } }continue
|
|
4434
|
-
case'[':if(this.c(
|
|
4435
|
-
case'(':this.c(
|
|
4425
|
+
case'[':if(this.c(819)){this.arrayAnno(); $.value.val = []; $.value.literal = 'array' }continue
|
|
4426
|
+
case'(':this.c(826);continue
|
|
4436
4427
|
default:this.ei();continue
|
|
4437
4428
|
}
|
|
4438
|
-
case
|
|
4439
|
-
case
|
|
4440
|
-
case'Id':case'@':if(this.annoStructValue(_={},
|
|
4429
|
+
case 814:if(this.m(0,'Number')){ this.adjustAnnoNumber( $.value = this.numberLiteral( sign ) ); }continue
|
|
4430
|
+
case 815:switch(this.l()){
|
|
4431
|
+
case'Id':case'@':if(this.annoStructValue(_={},816)){sub=_.value; if ($.value.$flatten) $.value.$flatten.push( sub );
|
|
4441
4432
|
else this.addDef( sub, $.value, 'struct', null, sub.name ); }continue
|
|
4442
|
-
default:this.s=
|
|
4433
|
+
default:this.s=817;continue
|
|
4443
4434
|
}
|
|
4444
|
-
case
|
|
4445
|
-
case',':this.c(
|
|
4446
|
-
case'}':this.s=
|
|
4447
|
-
case'Id':case'@':this.ec('fail')&&this.g(
|
|
4435
|
+
case 816:switch(this.l()){
|
|
4436
|
+
case',':this.c(815);continue
|
|
4437
|
+
case'}':this.s=817;continue
|
|
4438
|
+
case'Id':case'@':this.ec('fail')&&this.g(815);continue
|
|
4448
4439
|
default:this.e();continue
|
|
4449
4440
|
}
|
|
4450
|
-
case
|
|
4451
|
-
case
|
|
4452
|
-
case
|
|
4453
|
-
case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},
|
|
4454
|
-
case'...':if(this.gc(
|
|
4455
|
-
default:this.s=
|
|
4441
|
+
case 817:this.s=818;{ this.ec( 'arrayAnno', 'orNotEmpty' ); }continue
|
|
4442
|
+
case 818:this.m(0,'}');continue
|
|
4443
|
+
case 819:switch(this.l()){
|
|
4444
|
+
case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},823)){sub=_.value; $.value.val.push( sub ) }continue
|
|
4445
|
+
case'...':if(this.gc(824,'arrayAnno','ellipsis')&&this.c(820))ellipsis=this.lb();continue
|
|
4446
|
+
default:this.s=824;continue
|
|
4456
4447
|
}
|
|
4457
|
-
case
|
|
4458
|
-
case'up':this.ck(
|
|
4459
|
-
case',':case']':this.s=
|
|
4448
|
+
case 820:switch(this.lk()){
|
|
4449
|
+
case'up':this.ck(821);continue
|
|
4450
|
+
case',':case']':this.s=823;{ $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location } ); }continue
|
|
4460
4451
|
default:this.e();continue
|
|
4461
4452
|
}
|
|
4462
|
-
case
|
|
4463
|
-
case
|
|
4464
|
-
case
|
|
4465
|
-
case',':this.c(
|
|
4466
|
-
case']':this.s=
|
|
4453
|
+
case 821:this.mk(822,'to');continue
|
|
4454
|
+
case 822:if(this.annoValue(_={},823)){upTo=_.value; $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location, upTo: upTo } ); }continue
|
|
4455
|
+
case 823:switch(this.l()){
|
|
4456
|
+
case',':this.c(819);continue
|
|
4457
|
+
case']':this.s=824;continue
|
|
4467
4458
|
default:this.e();continue
|
|
4468
4459
|
}
|
|
4469
|
-
case
|
|
4470
|
-
case
|
|
4471
|
-
case
|
|
4472
|
-
case
|
|
4460
|
+
case 824:this.s=825;{ this.ec( 'arrayAnno', 'bracket' ); }continue
|
|
4461
|
+
case 825:this.m(0,']');continue
|
|
4462
|
+
case 826:if(this.condition(_={},827))$.value=_.expr;continue
|
|
4463
|
+
case 827:if(this.m(0,')')){ $.value.$tokenTexts = this.ruleTokensText(); }continue
|
|
4473
4464
|
default:
|
|
4474
4465
|
this.attachLocation( $.value )
|
|
4475
4466
|
return this.exit_()
|