@sap/cds-compiler 5.8.0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -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 +21 -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/odata/createForeignKeys.js +1 -1
- package/lib/transform/odata/flattening.js +2 -1
- 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
|
}
|