@sap/cds-compiler 5.8.2 → 5.9.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/cds_remove_invalid_whitespace.js +5 -3
- package/bin/cds_update_identifiers.js +9 -6
- package/bin/cdsc.js +79 -59
- package/bin/cdsse.js +14 -10
- package/bin/cdsv2m.js +3 -1
- package/lib/api/options.js +28 -6
- package/lib/base/message-registry.js +15 -4
- package/lib/checks/validator.js +3 -0
- package/lib/compiler/base.js +1 -1
- package/lib/compiler/checks.js +70 -50
- package/lib/compiler/extend.js +1 -1
- package/lib/compiler/generate.js +8 -2
- package/lib/compiler/index.js +1 -1
- package/lib/compiler/lsp-api.js +1 -1
- package/lib/compiler/propagator.js +2 -2
- package/lib/compiler/resolve.js +78 -31
- package/lib/compiler/shared.js +3 -3
- package/lib/compiler/tweak-assocs.js +1 -1
- package/lib/compiler/utils.js +10 -0
- package/lib/compiler/xpr-rewrite.js +1 -1
- package/lib/edm/annotations/edmJson.js +42 -39
- package/lib/edm/annotations/genericTranslation.js +55 -55
- package/lib/edm/annotations/preprocessAnnotations.js +5 -5
- package/lib/edm/csn2edm.js +16 -16
- package/lib/edm/edm.js +62 -62
- package/lib/edm/edmAnnoPreprocessor.js +2 -2
- package/lib/edm/edmInboundChecks.js +1 -1
- package/lib/edm/edmPreprocessor.js +32 -32
- package/lib/edm/edmUtils.js +8 -8
- package/lib/gen/CdlGrammar.checksum +1 -1
- package/lib/gen/CdlParser.js +77 -81
- package/lib/gen/Dictionary.json +3062 -3072
- package/lib/gen/language.checksum +1 -1
- package/lib/gen/language.interp +1 -1
- package/lib/gen/languageParser.js +1238 -1236
- package/lib/json/from-csn.js +1 -1
- package/lib/json/to-csn.js +30 -3
- package/lib/language/genericAntlrParser.js +16 -0
- package/lib/main.d.ts +79 -1
- package/lib/model/csnRefs.js +12 -5
- package/lib/model/xprAsTree.js +71 -0
- package/lib/modelCompare/utils/filter.js +1 -1
- package/lib/optionProcessor.js +46 -32
- package/lib/parsers/CdlGrammar.g4 +33 -28
- package/lib/parsers/Lexer.js +1 -1
- package/lib/parsers/XprTree.js +25 -16
- package/lib/render/toCdl.js +902 -414
- package/lib/render/toHdbcds.js +1 -1
- package/lib/render/toSql.js +8 -0
- package/lib/render/utils/common.js +2 -2
- package/lib/render/utils/operators.js +160 -0
- package/lib/render/utils/pretty.js +337 -0
- package/lib/sql-identifier.js +7 -9
- package/lib/transform/addTenantFields.js +39 -41
- package/lib/transform/db/applyTransformations.js +4 -4
- package/lib/transform/db/assertUnique.js +6 -5
- package/lib/transform/db/associations.js +3 -3
- package/lib/transform/db/assocsToQueries/transformExists.js +13 -13
- package/lib/transform/db/assocsToQueries/utils.js +8 -0
- package/lib/transform/db/backlinks.js +19 -14
- package/lib/transform/db/constraints.js +6 -6
- package/lib/transform/db/expansion.js +1 -1
- package/lib/transform/db/flattening.js +2 -2
- package/lib/transform/db/groupByOrderBy.js +1 -1
- package/lib/transform/db/processSqlServices.js +3 -3
- package/lib/transform/db/rewriteCalculatedElements.js +2 -2
- package/lib/transform/db/temporal.js +7 -9
- package/lib/transform/db/views.js +6 -6
- package/lib/transform/draft/odata.js +2 -0
- package/lib/transform/effective/annotations.js +1 -1
- package/lib/transform/effective/associations.js +1 -1
- package/lib/transform/effective/main.js +1 -0
- package/lib/transform/effective/service.js +2 -2
- package/lib/transform/forRelationalDB.js +11 -5
- package/lib/transform/localized.js +2 -0
- package/lib/transform/odata/adaptAnnotationRefs.js +10 -9
- package/lib/transform/parseExpr.js +2 -2
- package/lib/transform/transformUtils.js +9 -7
- package/lib/transform/translateAssocsToJoins.js +0 -2
- package/lib/transform/universalCsn/coreComputed.js +2 -2
- package/lib/utils/moduleResolve.js +7 -5
- package/package.json +1 -1
- package/share/messages/def-upcoming-virtual-change.md +55 -0
- package/share/messages/file-unexpected-case-mismatch.md +61 -0
- package/share/messages/message-explanations.json +2 -0
- package/lib/transform/braceExpression.js +0 -77
package/lib/gen/CdlParser.js
CHANGED
|
@@ -1037,14 +1037,14 @@ Id:['ci',585],
|
|
|
1037
1037
|
['mi',585],
|
|
1038
1038
|
{
|
|
1039
1039
|
over:['ck',578],
|
|
1040
|
-
'*':[580,652],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
|
|
1040
|
+
'*':[580,652],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
|
|
1041
1041
|
as:['ck',582],
|
|
1042
1042
|
Id:['ci',585,,,,'nestedExpand'],
|
|
1043
1043
|
'.':['c',583],
|
|
1044
1044
|
'':585
|
|
1045
1045
|
},
|
|
1046
1046
|
[579,739],
|
|
1047
|
-
{'*':[580,652],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*','':580},
|
|
1047
|
+
{'*':[580,652],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*','':580},
|
|
1048
1048
|
{
|
|
1049
1049
|
as:['ck',581],
|
|
1050
1050
|
Id:['ci',585],
|
|
@@ -1172,6 +1172,7 @@ and:['ck',666,,'precLeft_',4],
|
|
|
1172
1172
|
or:['ck',666,,'precLeft_',2],
|
|
1173
1173
|
'?':['c',663,,'precLeft_',0],
|
|
1174
1174
|
'<':['c',665,,'precNone_',10],'=':'<','>':'<','!=':'<','<=':'<','<>':'<','>=':'<',
|
|
1175
|
+
'==':['c',666,,'precNone_',10],
|
|
1175
1176
|
is:['ck',667,,'precNone_',10],
|
|
1176
1177
|
not:['ck',669,,'isNegatedRelation','10'],
|
|
1177
1178
|
in:['g',669,,'precNone_',10],like:'in',between:'in',
|
|
@@ -1204,7 +1205,7 @@ Id:[683,651,,,'expr','queryOnLeft'],'#':'Id','+':'Id','-':'Id',':':'Id','?':'Id'
|
|
|
1204
1205
|
select:[684,453],
|
|
1205
1206
|
},
|
|
1206
1207
|
{
|
|
1207
|
-
'*':[682,652,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
|
|
1208
|
+
'*':[682,652,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
|
|
1208
1209
|
',':[684,686,,,'expr','queryOnLeft'],
|
|
1209
1210
|
limit:[684,456,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
|
|
1210
1211
|
'':684
|
|
@@ -1240,41 +1241,36 @@ limit:[684,456,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:
|
|
|
1240
1241
|
['m',0,')'],
|
|
1241
1242
|
'argumentsAndFilter',
|
|
1242
1243
|
{'(':['c',713,,,,'prepareSpecialFunction'],'':732},
|
|
1243
|
-
{Id:['ciA',
|
|
1244
|
+
{Id:['ciA',714,,'isNamedArg'],'':725},
|
|
1244
1245
|
{
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
'':731
|
|
1246
|
+
':':['c',715],
|
|
1247
|
+
'=>':['c',720],
|
|
1248
1248
|
},
|
|
1249
|
-
|
|
1249
|
+
[716,651],
|
|
1250
|
+
{',':['c',717],'':731},
|
|
1250
1251
|
{
|
|
1251
|
-
Id:[
|
|
1252
|
-
|
|
1253
|
-
')':['g',717,1,'atRightParen'],order:')',
|
|
1254
|
-
},
|
|
1255
|
-
{order:['ck',718],'':731},
|
|
1256
|
-
['mk',719,'by'],
|
|
1257
|
-
[731,754],
|
|
1258
|
-
{
|
|
1259
|
-
':':['c',721],
|
|
1260
|
-
'=>':['c',726],
|
|
1252
|
+
Id:['ciA',718],
|
|
1253
|
+
')':731,
|
|
1261
1254
|
},
|
|
1262
|
-
[
|
|
1263
|
-
|
|
1255
|
+
['m',719,':'],
|
|
1256
|
+
[716,651],
|
|
1257
|
+
[721,651],
|
|
1258
|
+
{',':['c',722],'':731},
|
|
1264
1259
|
{
|
|
1265
|
-
Id:['ciA',
|
|
1260
|
+
Id:['ciA',723],
|
|
1266
1261
|
')':731,
|
|
1267
1262
|
},
|
|
1268
|
-
['m',
|
|
1269
|
-
[
|
|
1270
|
-
[
|
|
1271
|
-
{',':['c',
|
|
1263
|
+
['m',724,'=>'],
|
|
1264
|
+
[721,651],
|
|
1265
|
+
{Id:[726,734],'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Id_all:'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',DeleteStarFromSet:'Id','':731},
|
|
1266
|
+
{',':['c',727,,,,'nextFunctionArgument'],'':728},
|
|
1272
1267
|
{
|
|
1273
|
-
Id:['
|
|
1274
|
-
')':
|
|
1268
|
+
Id:[726,734],'#':'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',DeleteStarFromSet:'Id',
|
|
1269
|
+
')':['g',728,1,'atRightParen'],order:')',
|
|
1275
1270
|
},
|
|
1276
|
-
['
|
|
1277
|
-
[
|
|
1271
|
+
{order:['ck',729],'':731},
|
|
1272
|
+
['mk',730,'by'],
|
|
1273
|
+
[731,754],
|
|
1278
1274
|
['m',732,')'],
|
|
1279
1275
|
{'[':[0,538],'':0},
|
|
1280
1276
|
'funcExpression',
|
|
@@ -1961,7 +1957,7 @@ default:this.s=135;continue
|
|
|
1961
1957
|
case 135:this.paramsList({art},136);continue
|
|
1962
1958
|
case 136:switch(this.lk()){
|
|
1963
1959
|
case'returns':this.returnsSpec({outer:art},0);continue
|
|
1964
|
-
default:this.gr([';'
|
|
1960
|
+
default:this.gr([';']);continue
|
|
1965
1961
|
}
|
|
1966
1962
|
case 137:if(this.mi(138,'BoundAction')){ this.addDef( art, $.outer, 'actions', 'function', this.identAst() );
|
|
1967
1963
|
this.docComment( art ); }continue
|
|
@@ -2103,7 +2099,7 @@ default:this.s=173;continue
|
|
|
2103
2099
|
case 172:this.typeExpression({art:$.art},173);continue
|
|
2104
2100
|
case 173:switch(this.l()){
|
|
2105
2101
|
case'=':this.gc(0,'elementRestriction','calc')&&this.c(174);continue
|
|
2106
|
-
default:this.gr(['
|
|
2102
|
+
default:this.gr([';']);continue
|
|
2107
2103
|
}
|
|
2108
2104
|
case 174:if(this.expression(_={},175)){expr=_.expr; $.art.value = expr; }continue
|
|
2109
2105
|
case 175:switch(this.lk()){
|
|
@@ -2113,7 +2109,7 @@ default:this.s=176;continue
|
|
|
2113
2109
|
case 176:this.s=177;{ if (!this.elementRestriction( true, 'anno' )) this.docComment( $.art ); }continue
|
|
2114
2110
|
case 177:switch(this.l()){
|
|
2115
2111
|
case'@':this.gc(0,'elementRestriction','anno')&&this.annoAssignStd({art:$.art},177);continue
|
|
2116
|
-
default:this.gr(['
|
|
2112
|
+
default:this.gr([';']);continue
|
|
2117
2113
|
}
|
|
2118
2114
|
default:
|
|
2119
2115
|
this.attachLocation( $.art )
|
|
@@ -2586,7 +2582,7 @@ default:this.s=306;continue
|
|
|
2586
2582
|
}
|
|
2587
2583
|
case 306:switch(this.lk()){
|
|
2588
2584
|
case'returns':this.lP()&&this.annotateReturns({outer:art},0);continue
|
|
2589
|
-
default:this.gr(['
|
|
2585
|
+
default:this.gr([';']);continue
|
|
2590
2586
|
}
|
|
2591
2587
|
default:
|
|
2592
2588
|
this.attachLocation( art )
|
|
@@ -2685,7 +2681,7 @@ default:this.s=329;continue
|
|
|
2685
2681
|
}
|
|
2686
2682
|
case 329:switch(this.l()){
|
|
2687
2683
|
case'{':this.annotateElementsBlock({art},0);continue
|
|
2688
|
-
default:this.gr(['
|
|
2684
|
+
default:this.gr([';']);continue
|
|
2689
2685
|
}
|
|
2690
2686
|
default:
|
|
2691
2687
|
this.attachLocation( art )
|
|
@@ -2714,7 +2710,8 @@ elementDefOrExtend($,$next){
|
|
|
2714
2710
|
let art=new XsnArtifact()
|
|
2715
2711
|
let keyword;let elements
|
|
2716
2712
|
this.rule_(336,$next)
|
|
2717
|
-
{ this.
|
|
2713
|
+
{ art.location = this.startLocation();
|
|
2714
|
+
this.docComment( art ); }
|
|
2718
2715
|
for(;;)switch(this.s){
|
|
2719
2716
|
case 336:switch(this.l()){
|
|
2720
2717
|
case'@':this.annoAssignStd({art},336);continue
|
|
@@ -2740,7 +2737,7 @@ default:this.s=342;continue
|
|
|
2740
2737
|
}
|
|
2741
2738
|
case 342:switch(this.l()){
|
|
2742
2739
|
case'{':this.extendElementsBlock({art,start:undefined},0);continue
|
|
2743
|
-
default:this.gr(['
|
|
2740
|
+
default:this.gr([';']);continue
|
|
2744
2741
|
}
|
|
2745
2742
|
case 343:switch(this.l()){
|
|
2746
2743
|
case'@':this.annoAssignStd({art},343);continue
|
|
@@ -2751,7 +2748,7 @@ case'elements':if(this.ck(345))elements=this.lb();continue
|
|
|
2751
2748
|
case'{':this.s=345;continue
|
|
2752
2749
|
case'enum':this.enumSymbolsBlock({art},0);continue
|
|
2753
2750
|
case'(':this.typeNamedArgsList({art},0);continue
|
|
2754
|
-
default:this.gr(['
|
|
2751
|
+
default:this.gr([';']);continue
|
|
2755
2752
|
}
|
|
2756
2753
|
case 345:this.extendElementsBlock({art,start:elements},0);continue
|
|
2757
2754
|
default:
|
|
@@ -3600,7 +3597,7 @@ default:this.gi(585);continue
|
|
|
3600
3597
|
case 576:if(this.mi(585,'ItemAlias')){ art.name = this.identAst(); }continue
|
|
3601
3598
|
case 577:switch(this.lk()){
|
|
3602
3599
|
case'over':if(this.ck(578)){ this.pushXprToken( expr.suffix = [] ); }continue
|
|
3603
|
-
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 },580,652)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
|
|
3600
|
+
case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },580,652)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
|
|
3604
3601
|
case'as':this.ck(582);continue
|
|
3605
3602
|
case'Id':if(this.ci(585,'ItemAlias')){this.nestedExpand(); art.name = this.fragileAlias( true ); }continue
|
|
3606
3603
|
case'.':if(this.c(583)){ this.reportUnexpectedSpace( this.lb(), this.la().location, true );
|
|
@@ -3609,7 +3606,7 @@ default:if(this.gi(585)){this.nestedExpand(); this.classifyImplicitName( 'ItemIm
|
|
|
3609
3606
|
}
|
|
3610
3607
|
case 578:this.overClause({outer:expr.suffix},579);continue
|
|
3611
3608
|
case 579:switch(this.lk()){
|
|
3612
|
-
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 },580,652)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
|
|
3609
|
+
case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },580,652)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
|
|
3613
3610
|
default:this.s=580;continue
|
|
3614
3611
|
}
|
|
3615
3612
|
case 580:switch(this.lk()){
|
|
@@ -3819,7 +3816,7 @@ default:this.s=647;continue
|
|
|
3819
3816
|
}
|
|
3820
3817
|
case 647:switch(this.l()){
|
|
3821
3818
|
case'.':this.gc(0,'isDotForPath')&&this.c(648);continue
|
|
3822
|
-
default:this.gr(['*','+','-','/','<','=','>','?','!=','<=','<>','>=','in','is','or','||','and','not','like','between']);continue
|
|
3819
|
+
default:this.gr(['*','+','-','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
|
|
3823
3820
|
}
|
|
3824
3821
|
case 648:if(this.miA(649,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
|
|
3825
3822
|
case 649:switch(this.l()){
|
|
@@ -3888,6 +3885,7 @@ case'and':if(this.gc(0,'precLeft_',4)&&this.ck(666)){ $.expr = this.applyOpToken
|
|
|
3888
3885
|
case'or':if(this.gc(0,'precLeft_',2)&&this.ck(666)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
|
|
3889
3886
|
case'?':if(this.gc(0,'precLeft_',0)&&this.c(663)){ $.expr = this.applyOpToken( $.expr, '?:' ); }continue
|
|
3890
3887
|
case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.gc(0,'precNone_',10)&&this.c(665)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3888
|
+
case'==':if(this.gc(0,'precNone_',10)&&this.c(666)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3891
3889
|
case'is':if(this.gc(0,'precNone_',10)&&this.ck(667)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3892
3890
|
case'not':if(this.gc(0,'isNegatedRelation','10')&&this.ck(669)){ $.expr = this.applyOpToken( $.expr ); }continue
|
|
3893
3891
|
case'in':case'like':case'between':if(this.gc(0,'precNone_',10)&&this.g(669)){ $.expr = { op: { val: 'ixpr', location: this.la().location }, args: [ $.expr ] }; }continue
|
|
@@ -3939,7 +3937,7 @@ case'select':this.queryExpression($,684);continue
|
|
|
3939
3937
|
default:this.ei();continue
|
|
3940
3938
|
}
|
|
3941
3939
|
case 681:switch(this.lk()){
|
|
3942
|
-
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($,682,652)){this.queryOnLeft(0,'expr')}continue;
|
|
3940
|
+
case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression($,682,652)){this.queryOnLeft(0,'expr')}continue;
|
|
3943
3941
|
case',':if(this.continueExpressionslist($,684)){this.queryOnLeft(0,'expr')}continue;
|
|
3944
3942
|
case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.gc(684,'queryOnLeft')&&this.queryExpression($,684,456);continue
|
|
3945
3943
|
default:this.s=684;continue
|
|
@@ -4041,7 +4039,7 @@ return this.exit_()
|
|
|
4041
4039
|
}
|
|
4042
4040
|
}
|
|
4043
4041
|
argumentsAndFilter($,$next){
|
|
4044
|
-
let open;let
|
|
4042
|
+
let open;let id;let expr;let _
|
|
4045
4043
|
this.rule_(712,$next)
|
|
4046
4044
|
for(;;)switch(this.s){
|
|
4047
4045
|
case 712:switch(this.l()){
|
|
@@ -4049,63 +4047,61 @@ case'(':if(this.c(713)){open=this.lb();this.prepareSpecialFunction(); $.pathStep
|
|
|
4049
4047
|
default:this.s=732;continue
|
|
4050
4048
|
}
|
|
4051
4049
|
case 713:switch(this.l()){
|
|
4052
|
-
case'Id':if(this.gc(
|
|
4053
|
-
default:this.s=
|
|
4050
|
+
case'Id':if(this.gc(725,'isNamedArg')&&this.ciA(714,'paramname'))id=this.lb();continue
|
|
4051
|
+
default:this.s=725;continue
|
|
4054
4052
|
}
|
|
4055
4053
|
case 714:switch(this.l()){
|
|
4056
|
-
case'
|
|
4057
|
-
case'
|
|
4058
|
-
default:this.
|
|
4059
|
-
}
|
|
4060
|
-
case 715:switch(this.l()){
|
|
4061
|
-
case',':if(this.c(716)){this.nextFunctionArgument()}continue;
|
|
4062
|
-
default:this.s=717;continue
|
|
4063
|
-
}
|
|
4064
|
-
case 716:switch(this.lk()){
|
|
4065
|
-
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(_={},715)){expr=_.expr; $.pathStep.args.push( expr ); }continue
|
|
4066
|
-
case'DeleteStarFromSet':this.c(715);continue
|
|
4067
|
-
case')':case'order':this.lP()&&this.ec('atRightParen')&&this.g(717);continue
|
|
4068
|
-
default:this.ei();continue
|
|
4054
|
+
case':':if(this.c(715)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
|
|
4055
|
+
case'=>':if(this.c(720)){ $.pathStep.args = this.createDict(); }continue
|
|
4056
|
+
default:this.e();continue
|
|
4069
4057
|
}
|
|
4070
|
-
case
|
|
4071
|
-
case
|
|
4058
|
+
case 715:if(this.expression(_={},716)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4059
|
+
case 716:switch(this.l()){
|
|
4060
|
+
case',':this.c(717);continue
|
|
4072
4061
|
default:this.s=731;continue
|
|
4073
4062
|
}
|
|
4074
|
-
case
|
|
4075
|
-
case
|
|
4076
|
-
case
|
|
4077
|
-
case':':if(this.c(721)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
|
|
4078
|
-
case'=>':if(this.c(726)){ $.pathStep.args = this.createDict(); }continue
|
|
4063
|
+
case 717:switch(this.l()){
|
|
4064
|
+
case'Id':if(this.ciA(718,'paramname'))id=this.lb();continue
|
|
4065
|
+
case')':this.s=731;continue
|
|
4079
4066
|
default:this.e();continue
|
|
4080
4067
|
}
|
|
4081
|
-
case
|
|
4082
|
-
case
|
|
4083
|
-
case
|
|
4068
|
+
case 718:this.m(719,':');continue
|
|
4069
|
+
case 719:if(this.expression(_={},716)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4070
|
+
case 720:if(this.expression(_={},721)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4071
|
+
case 721:switch(this.l()){
|
|
4072
|
+
case',':this.c(722);continue
|
|
4084
4073
|
default:this.s=731;continue
|
|
4085
4074
|
}
|
|
4086
|
-
case
|
|
4087
|
-
case'Id':if(this.ciA(
|
|
4075
|
+
case 722:switch(this.l()){
|
|
4076
|
+
case'Id':if(this.ciA(723,'paramname'))id=this.lb();continue
|
|
4088
4077
|
case')':this.s=731;continue
|
|
4089
4078
|
default:this.e();continue
|
|
4090
4079
|
}
|
|
4091
|
-
case
|
|
4092
|
-
case
|
|
4093
|
-
case
|
|
4094
|
-
case
|
|
4095
|
-
case',':this.c(728);continue
|
|
4080
|
+
case 723:this.m(724,'=>');continue
|
|
4081
|
+
case 724:if(this.expression(_={},721)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
|
|
4082
|
+
case 725:switch(this.l()){
|
|
4083
|
+
case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'Id_all':case'Number':case'String':case'QuotedLiteral':case'DeleteStarFromSet':if(this.funcExpression(_={},726)){expr=_.expr; $.pathStep.args.push( expr ); }continue
|
|
4096
4084
|
default:this.s=731;continue
|
|
4097
4085
|
}
|
|
4098
|
-
case
|
|
4099
|
-
case'
|
|
4100
|
-
|
|
4101
|
-
|
|
4086
|
+
case 726:switch(this.l()){
|
|
4087
|
+
case',':if(this.c(727)){this.nextFunctionArgument()}continue;
|
|
4088
|
+
default:this.s=728;continue
|
|
4089
|
+
}
|
|
4090
|
+
case 727:switch(this.lk()){
|
|
4091
|
+
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':case'DeleteStarFromSet':if(this.funcExpression(_={},726)){expr=_.expr; $.pathStep.args.push( expr ); }continue
|
|
4092
|
+
case')':case'order':this.lP()&&this.ec('atRightParen')&&this.g(728);continue
|
|
4093
|
+
default:this.ei();continue
|
|
4094
|
+
}
|
|
4095
|
+
case 728:switch(this.lk()){
|
|
4096
|
+
case'order':if(this.ck(729)){ expr = $.pathStep.args[$.pathStep.args.length - 1] = this.applyOpToken( expr ); }continue
|
|
4097
|
+
default:this.s=731;continue
|
|
4102
4098
|
}
|
|
4103
|
-
case 729:this.
|
|
4104
|
-
case 730:if(this.
|
|
4099
|
+
case 729:if(this.mk(730,'by')){ this.pushXprToken( expr ); }continue
|
|
4100
|
+
case 730:if(this.orderByClauseAsXpr({outer:expr.args},731)){ this.attachLocation( expr ); }continue
|
|
4105
4101
|
case 731:if(this.m(732,')')){ this.finalizeDictOrArray( $.pathStep.args ); }continue
|
|
4106
4102
|
case 732:switch(this.l()){
|
|
4107
4103
|
case'[':this.cardinalityAndFilter($,0);continue
|
|
4108
|
-
default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','>=','in','is','or','||','and','not','like','between']);continue
|
|
4104
|
+
default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
|
|
4109
4105
|
}
|
|
4110
4106
|
default:return this.exit_()
|
|
4111
4107
|
}
|