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