@abaplint/cli 2.119.53 → 2.119.55

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.
Files changed (2) hide show
  1. package/build/cli.js +627 -150
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -1839,7 +1839,7 @@ class Regex {
1839
1839
  return result;
1840
1840
  }
1841
1841
  railroad() {
1842
- return "Railroad.Terminal(\"" + this.regexp.source.replace(/\\/g, "\\\\") + "\")";
1842
+ return "Railroad.Terminal(\"" + this.regexp.source.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\")";
1843
1843
  }
1844
1844
  toStr() {
1845
1845
  return this.regexp.toString();
@@ -3168,6 +3168,33 @@ function dynAttr() {
3168
3168
 
3169
3169
  /***/ },
3170
3170
 
3171
+ /***/ "../core/build/src/abap/2_statements/expressions/_lob_handle_type.js"
3172
+ /*!***************************************************************************!*\
3173
+ !*** ../core/build/src/abap/2_statements/expressions/_lob_handle_type.js ***!
3174
+ \***************************************************************************/
3175
+ (__unused_webpack_module, exports, __webpack_require__) {
3176
+
3177
+ "use strict";
3178
+
3179
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3180
+ exports.lobColumns = lobColumns;
3181
+ exports.lobKind = lobKind;
3182
+ exports.lobHandleType = lobHandleType;
3183
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
3184
+ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
3185
+ function lobColumns() {
3186
+ return (0, combi_1.altPrio)((0, combi_1.seq)("FOR", (0, combi_1.opt)("OTHER"), (0, combi_1.altPrio)("BLOB", "CLOB"), "COLUMNS"), (0, combi_1.seq)("FOR", "ALL", (0, combi_1.opt)("OTHER"), (0, combi_1.altPrio)("BLOB", "CLOB"), "COLUMNS"), (0, combi_1.seq)("FOR", "ALL", "COLUMNS"), (0, combi_1.seq)("FOR", "COLUMNS", (0, combi_1.plus)(_1.FieldChain)));
3187
+ }
3188
+ function lobKind() {
3189
+ return (0, combi_1.altPrio)("LOCATOR", "READER", "WRITER", (0, combi_1.seq)("LOB", "HANDLE"));
3190
+ }
3191
+ function lobHandleType() {
3192
+ return (0, combi_1.seq)("TYPE", _1.TypeName, (0, combi_1.opt)("READ-ONLY"), (0, combi_1.plus)((0, combi_1.seq)(lobKind(), lobColumns())));
3193
+ }
3194
+ //# sourceMappingURL=_lob_handle_type.js.map
3195
+
3196
+ /***/ },
3197
+
3171
3198
  /***/ "../core/build/src/abap/2_statements/expressions/_select_core.js"
3172
3199
  /*!***********************************************************************!*\
3173
3200
  !*** ../core/build/src/abap/2_statements/expressions/_select_core.js ***!
@@ -4256,12 +4283,13 @@ exports.DataDefinition = void 0;
4256
4283
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
4257
4284
  const Expressions = __importStar(__webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js"));
4258
4285
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
4286
+ const _lob_handle_type_1 = __webpack_require__(/*! ./_lob_handle_type */ "../core/build/src/abap/2_statements/expressions/_lob_handle_type.js");
4259
4287
  class DataDefinition extends combi_1.Expression {
4260
4288
  getRunnable() {
4261
4289
  const simple = (0, combi_1.opt)((0, combi_1.per)("READ-ONLY", Expressions.Type, Expressions.Length, Expressions.Decimals, Expressions.Value));
4262
4290
  const table = (0, combi_1.seq)(Expressions.TypeTable, (0, combi_1.optPrio)("READ-ONLY"));
4263
4291
  const boxed = (0, combi_1.ver)(version_1.Release.v702, "BOXED");
4264
- return (0, combi_1.seq)(Expressions.DefinitionName, (0, combi_1.optPrio)(Expressions.ConstantFieldLength), (0, combi_1.alt)(simple, table, Expressions.TypeStructure), (0, combi_1.optPrio)(boxed));
4292
+ return (0, combi_1.seq)(Expressions.DefinitionName, (0, combi_1.optPrio)(Expressions.ConstantFieldLength), (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v731, (0, _lob_handle_type_1.lobHandleType)()), (0, combi_1.alt)(simple, table, Expressions.TypeStructure)), (0, combi_1.optPrio)(boxed));
4265
4293
  }
4266
4294
  }
4267
4295
  exports.DataDefinition = DataDefinition;
@@ -4980,6 +5008,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
4980
5008
  exports.FormParamType = void 0;
4981
5009
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
4982
5010
  const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
5011
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
4983
5012
  class FormParamType extends combi_1.Expression {
4984
5013
  getRunnable() {
4985
5014
  const def = (0, combi_1.seq)("DEFAULT", (0, combi_1.alt)(_1.Constant, _1.FieldChain));
@@ -4987,7 +5016,7 @@ class FormParamType extends combi_1.Expression {
4987
5016
  const tabseq = (0, combi_1.seq)(table, (0, combi_1.optPrio)((0, combi_1.seq)("OF", _1.TypeName)));
4988
5017
  const ret = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.alt)("REF TO", "LINE OF")), _1.TypeName, (0, combi_1.opt)(def));
4989
5018
  const like = (0, combi_1.seq)("LIKE", (0, combi_1.optPrio)((0, combi_1.alt)("REF TO", "LINE OF")), _1.FieldChain);
4990
- return (0, combi_1.alt)((0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(tabseq, ret)), like);
5019
+ return (0, combi_1.alt)((0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(tabseq, (0, combi_1.ver)(version_1.Release.v916, (0, combi_1.seq)("ANY", "STRUCTURE")), ret)), like);
4991
5020
  }
4992
5021
  }
4993
5022
  exports.FormParamType = FormParamType;
@@ -5496,6 +5525,7 @@ __exportStar(__webpack_require__(/*! ./type_param */ "../core/build/src/abap/2_s
5496
5525
  __exportStar(__webpack_require__(/*! ./type_structure */ "../core/build/src/abap/2_statements/expressions/type_structure.js"), exports);
5497
5526
  __exportStar(__webpack_require__(/*! ./type_table_key */ "../core/build/src/abap/2_statements/expressions/type_table_key.js"), exports);
5498
5527
  __exportStar(__webpack_require__(/*! ./type_table */ "../core/build/src/abap/2_statements/expressions/type_table.js"), exports);
5528
+ __exportStar(__webpack_require__(/*! ./type_simple_ref */ "../core/build/src/abap/2_statements/expressions/type_simple_ref.js"), exports);
5499
5529
  __exportStar(__webpack_require__(/*! ./type */ "../core/build/src/abap/2_statements/expressions/type.js"), exports);
5500
5530
  __exportStar(__webpack_require__(/*! ./value_base */ "../core/build/src/abap/2_statements/expressions/value_base.js"), exports);
5501
5531
  __exportStar(__webpack_require__(/*! ./value_body_line */ "../core/build/src/abap/2_statements/expressions/value_body_line.js"), exports);
@@ -6205,9 +6235,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6205
6235
  exports.MethodDefChanging = void 0;
6206
6236
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
6207
6237
  const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
6238
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
6208
6239
  class MethodDefChanging extends combi_1.Expression {
6209
6240
  getRunnable() {
6210
- return (0, combi_1.seq)("CHANGING", (0, combi_1.plus)(_1.MethodParamOptional));
6241
+ const anyStructureParam = (0, combi_1.ver)(version_1.Release.v916, (0, combi_1.seq)(_1.MethodParamName, "TYPE", "ANY", "STRUCTURE", (0, combi_1.optPrio)("OPTIONAL")));
6242
+ return (0, combi_1.seq)("CHANGING", (0, combi_1.plus)((0, combi_1.altPrio)(anyStructureParam, _1.MethodParamOptional)));
6211
6243
  }
6212
6244
  }
6213
6245
  exports.MethodDefChanging = MethodDefChanging;
@@ -6272,10 +6304,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6272
6304
  exports.MethodDefImporting = void 0;
6273
6305
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
6274
6306
  const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
6307
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
6275
6308
  class MethodDefImporting extends combi_1.Expression {
6276
6309
  getRunnable() {
6277
6310
  const field = (0, combi_1.regex)(/^!?(\/\w+\/)?\w+$/);
6278
- return (0, combi_1.seq)("IMPORTING", (0, combi_1.plus)(_1.MethodParamOptional), (0, combi_1.optPrio)((0, combi_1.seq)("PREFERRED PARAMETER", field)));
6311
+ const anyStructureParam = (0, combi_1.ver)(version_1.Release.v916, (0, combi_1.seq)(_1.MethodParamName, "TYPE", "ANY", "STRUCTURE", (0, combi_1.optPrio)("OPTIONAL")));
6312
+ return (0, combi_1.seq)("IMPORTING", (0, combi_1.plus)((0, combi_1.altPrio)(anyStructureParam, _1.MethodParamOptional)), (0, combi_1.optPrio)((0, combi_1.seq)("PREFERRED PARAMETER", field)));
6279
6313
  }
6280
6314
  }
6281
6315
  exports.MethodDefImporting = MethodDefImporting;
@@ -10614,11 +10648,12 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/exp
10614
10648
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
10615
10649
  class Type extends combi_1.Expression {
10616
10650
  getRunnable() {
10617
- const indicators = (0, combi_1.seq)("WITH INDICATORS", _1.ComponentName, (0, combi_1.optPrio)((0, combi_1.seq)("TYPE", _1.TypeName)));
10651
+ const indicatorSpec = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v784, "AS BITFIELD"), (0, combi_1.seq)("TYPE", _1.TypeName));
10652
+ const indicators = (0, combi_1.seq)("WITH INDICATORS", _1.ComponentName, (0, combi_1.optPrio)(indicatorSpec));
10618
10653
  const typeType = (0, combi_1.seq)(_1.TypeName, (0, combi_1.optPrio)(_1.Default));
10619
10654
  const like = (0, combi_1.altPrio)((0, combi_1.seq)("LINE OF", _1.FieldChain), (0, combi_1.seq)("REF TO", _1.FieldChain), _1.FieldChain);
10620
10655
  const type = (0, combi_1.altPrio)((0, combi_1.seq)("LINE OF", typeType), (0, combi_1.seq)("REF TO", typeType), (0, combi_1.seq)(typeType, (0, combi_1.optPrio)(_1.LOBHandle)));
10621
- const ret = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.seq)("LIKE", like), (0, combi_1.seq)("TYPE", type)), (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v755, indicators)));
10656
+ const ret = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.seq)("LIKE", like), (0, combi_1.seq)("TYPE", type)), (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v781, indicators)));
10622
10657
  return ret;
10623
10658
  }
10624
10659
  }
@@ -10702,6 +10737,29 @@ exports.TypeParam = TypeParam;
10702
10737
 
10703
10738
  /***/ },
10704
10739
 
10740
+ /***/ "../core/build/src/abap/2_statements/expressions/type_simple_ref.js"
10741
+ /*!**************************************************************************!*\
10742
+ !*** ../core/build/src/abap/2_statements/expressions/type_simple_ref.js ***!
10743
+ \**************************************************************************/
10744
+ (__unused_webpack_module, exports, __webpack_require__) {
10745
+
10746
+ "use strict";
10747
+
10748
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
10749
+ exports.TypeSimpleRef = void 0;
10750
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
10751
+ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
10752
+ class TypeSimpleRef extends combi_1.Expression {
10753
+ getRunnable() {
10754
+ const tableKind = (0, combi_1.seq)((0, combi_1.alt)("ANY", "STANDARD", "HASHED", "SORTED", "INDEX"), "TABLE");
10755
+ return (0, combi_1.altPrio)((0, combi_1.seq)("LINE", "OF", _1.TypeName), (0, combi_1.seq)("REF", "TO", _1.TypeName), tableKind, (0, combi_1.seq)("ANY", "STRUCTURE"), _1.TypeName);
10756
+ }
10757
+ }
10758
+ exports.TypeSimpleRef = TypeSimpleRef;
10759
+ //# sourceMappingURL=type_simple_ref.js.map
10760
+
10761
+ /***/ },
10762
+
10705
10763
  /***/ "../core/build/src/abap/2_statements/expressions/type_structure.js"
10706
10764
  /*!*************************************************************************!*\
10707
10765
  !*** ../core/build/src/abap/2_statements/expressions/type_structure.js ***!
@@ -10719,10 +10777,10 @@ const _derived_types_1 = __webpack_require__(/*! ./_derived_types */ "../core/bu
10719
10777
  class TypeStructure extends combi_1.Expression {
10720
10778
  getRunnable() {
10721
10779
  const entity = (0, combi_1.alt)(_1.TypeName, _1.EntityAssociation);
10722
- const derivedTypes = (0, _derived_types_1.derivedTypesAlt)((0, combi_1.ver)(version_1.Release.v779, (0, combi_1.seq)("FUNCTION REQUEST", entity)), (0, combi_1.ver)(version_1.Release.v779, (0, combi_1.seq)("ACTION REQUEST", entity)), (0, combi_1.seq)("ACTION IMPORT", _1.Source), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL AUTHORIZATION REQUEST", entity)), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL AUTHORIZATION RESULT", entity)), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL FEATURES REQUEST", entity)), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL FEATURES RESULT", entity)), (0, combi_1.ver)(version_1.Release.v780, (0, combi_1.seq)("AUTHORIZATION REQUEST", entity)), (0, combi_1.ver)(version_1.Release.v776, (0, combi_1.seq)("FEATURES REQUEST", entity)), (0, combi_1.seq)("PERMISSIONS REQUEST", _1.NamespaceSimpleName), (0, combi_1.ver)(version_1.Release.v780, (0, combi_1.seq)("PERMISSIONS RESULT", entity)), (0, combi_1.seq)("READ LINK", _1.EntityAssociation), (0, combi_1.seq)("HIERARCHY", _1.NamespaceSimpleName), (0, combi_1.seq)("EVENT", _1.EventName));
10723
- const structure = (0, combi_1.ver)(version_1.Release.v774, (0, combi_1.seq)("STRUCTURE FOR", derivedTypes));
10724
- const response = (0, combi_1.ver)(version_1.Release.v776, (0, combi_1.seq)("RESPONSE FOR", (0, combi_1.altPrio)((0, combi_1.seq)("FAILED EARLY", _1.NamespaceSimpleName), (0, combi_1.seq)("FAILED LATE", _1.NamespaceSimpleName), (0, combi_1.seq)("FAILED", _1.NamespaceSimpleName), (0, combi_1.seq)("MAPPED EARLY", _1.NamespaceSimpleName), (0, combi_1.seq)("MAPPED LATE", _1.NamespaceSimpleName), (0, combi_1.seq)("MAPPED", _1.NamespaceSimpleName), (0, combi_1.seq)("REPORTED EARLY", _1.NamespaceSimpleName), (0, combi_1.seq)("REPORTED LATE", _1.NamespaceSimpleName), (0, combi_1.seq)("REPORTED", _1.NamespaceSimpleName))));
10725
- const request = (0, combi_1.ver)(version_1.Release.v778, (0, combi_1.seq)("REQUEST FOR", (0, combi_1.alt)("CHANGE", "DELETE"), _1.NamespaceSimpleName));
10780
+ const derivedTypes = (0, _derived_types_1.derivedTypesAlt)((0, combi_1.ver)(version_1.Release.v779, (0, combi_1.seq)("FUNCTION REQUEST", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v779, (0, combi_1.seq)("ACTION REQUEST", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.seq)("ACTION IMPORT", _1.Source), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL AUTHORIZATION REQUEST", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL AUTHORIZATION RESULT", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL FEATURES REQUEST", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v781, (0, combi_1.seq)("GLOBAL FEATURES RESULT", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v780, (0, combi_1.seq)("AUTHORIZATION REQUEST", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v776, (0, combi_1.seq)("FEATURES REQUEST", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.seq)("PERMISSIONS REQUEST", _1.NamespaceSimpleName), (0, combi_1.ver)(version_1.Release.v780, (0, combi_1.seq)("PERMISSIONS RESULT", entity), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.seq)("READ LINK", _1.EntityAssociation), (0, combi_1.seq)("HIERARCHY", _1.NamespaceSimpleName), (0, combi_1.seq)("EVENT", _1.EventName));
10781
+ const structure = (0, combi_1.ver)(version_1.Release.v774, (0, combi_1.seq)("STRUCTURE FOR", derivedTypes), { also: combi_1.AlsoIn.OpenABAP });
10782
+ const response = (0, combi_1.ver)(version_1.Release.v776, (0, combi_1.seq)("RESPONSE FOR", (0, combi_1.altPrio)((0, combi_1.seq)("FAILED EARLY", _1.NamespaceSimpleName), (0, combi_1.seq)("FAILED LATE", _1.NamespaceSimpleName), (0, combi_1.seq)("FAILED", _1.NamespaceSimpleName), (0, combi_1.seq)("MAPPED EARLY", _1.NamespaceSimpleName), (0, combi_1.seq)("MAPPED LATE", _1.NamespaceSimpleName), (0, combi_1.seq)("MAPPED", _1.NamespaceSimpleName), (0, combi_1.seq)("REPORTED EARLY", _1.NamespaceSimpleName), (0, combi_1.seq)("REPORTED LATE", _1.NamespaceSimpleName), (0, combi_1.seq)("REPORTED", _1.NamespaceSimpleName))), { also: combi_1.AlsoIn.OpenABAP });
10783
+ const request = (0, combi_1.ver)(version_1.Release.v778, (0, combi_1.seq)("REQUEST FOR", (0, combi_1.alt)("CHANGE", "DELETE"), _1.NamespaceSimpleName), { also: combi_1.AlsoIn.OpenABAP });
10726
10784
  return (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(structure, response, request), (0, combi_1.optPrio)("VALUE IS INITIAL"));
10727
10785
  }
10728
10786
  }
@@ -10761,7 +10819,7 @@ class TypeTable extends combi_1.Expression {
10761
10819
  const typetable = (0, combi_1.alt)(generic, (0, combi_1.seq)(normal1, (0, combi_1.alt)((0, combi_1.opt)((0, combi_1.per)(header, initial, (0, combi_1.plusPrio)(type_table_key_1.TypeTableKey))), (0, combi_1.seq)((0, combi_1.plus)(type_table_key_1.TypeTableKey), (0, combi_1.optPrio)(initial))), (0, combi_1.optPrio)("VALUE IS INITIAL")));
10762
10820
  const occurs = (0, combi_1.seq)("OCCURS", (0, combi_1.altPrio)(_1.Integer, field_chain_1.FieldChain));
10763
10821
  const entity = (0, combi_1.alt)(_1.TypeName, _1.EntityAssociation);
10764
- const derivedTypes = (0, _derived_types_1.derivedTypesAlt)((0, combi_1.ver)(version_1.Release.v773, (0, combi_1.seq)("ACTION IMPORT", entity)), (0, combi_1.seq)("READ LINK", entity), (0, combi_1.seq)("EVENT", entity));
10822
+ const derivedTypes = (0, _derived_types_1.derivedTypesAlt)((0, combi_1.ver)(version_1.Release.v773, (0, combi_1.seq)("ACTION IMPORT", entity)), (0, combi_1.ver)(version_1.Release.v774, (0, combi_1.seq)("READ LINK", entity)), (0, combi_1.ver)(version_1.Release.v787, (0, combi_1.seq)("EVENT", entity)));
10765
10823
  const derived = (0, combi_1.ver)(version_1.Release.v770, (0, combi_1.seq)("TABLE FOR", derivedTypes, (0, combi_1.optPrio)("VALUE IS INITIAL")), { also: combi_1.AlsoIn.OpenABAP });
10766
10824
  const oldType = (0, combi_1.seq)((0, combi_1.opt)("REF TO"), _1.TypeName, (0, combi_1.alt)((0, combi_1.seq)(occurs, (0, combi_1.opt)(header)), header));
10767
10825
  const oldLike = (0, combi_1.seq)((0, combi_1.opt)("REF TO"), field_chain_1.FieldChain, (0, combi_1.alt)((0, combi_1.seq)(occurs, (0, combi_1.opt)(header)), header));
@@ -14625,10 +14683,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
14625
14683
  exports.FieldSymbol = void 0;
14626
14684
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
14627
14685
  const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
14686
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
14628
14687
  class FieldSymbol {
14629
14688
  getMatcher() {
14630
14689
  const stru = (0, combi_1.seq)("STRUCTURE", expressions_1.TypeName, "DEFAULT", expressions_1.Field);
14631
- return (0, combi_1.seq)("FIELD-SYMBOLS", expressions_1.FieldSymbol, (0, combi_1.opt)((0, combi_1.alt)(expressions_1.Type, expressions_1.TypeTable, stru)));
14690
+ const anyStructure = (0, combi_1.ver)(version_1.Release.v916, (0, combi_1.seq)("TYPE", "ANY", "STRUCTURE"));
14691
+ return (0, combi_1.seq)("FIELD-SYMBOLS", expressions_1.FieldSymbol, (0, combi_1.opt)((0, combi_1.alt)(anyStructure, expressions_1.Type, expressions_1.TypeTable, stru)));
14632
14692
  }
14633
14693
  }
14634
14694
  exports.FieldSymbol = FieldSymbol;
@@ -19498,10 +19558,13 @@ exports.Type = void 0;
19498
19558
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
19499
19559
  const Expressions = __importStar(__webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
19500
19560
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
19561
+ const _lob_handle_type_1 = __webpack_require__(/*! ../expressions/_lob_handle_type */ "../core/build/src/abap/2_statements/expressions/_lob_handle_type.js");
19501
19562
  class Type {
19502
19563
  getMatcher() {
19503
19564
  const simple = (0, combi_1.per)(Expressions.Type, Expressions.Decimals, Expressions.Length);
19504
- const def = (0, combi_1.seq)(Expressions.NamespaceSimpleName, (0, combi_1.opt)(Expressions.ConstantFieldLength), (0, combi_1.opt)((0, combi_1.alt)(simple, Expressions.TypeTable, Expressions.TypeStructure)));
19565
+ const clientSpecified = (0, combi_1.ver)(version_1.Release.v760, (0, combi_1.seq)("TYPE", Expressions.TypeName, "CLIENT", "SPECIFIED", Expressions.FieldChain, (0, combi_1.opt)((0, combi_1.plus)((0, combi_1.seq)((0, _lob_handle_type_1.lobKind)(), (0, _lob_handle_type_1.lobColumns)())))));
19566
+ const anyStructure = (0, combi_1.ver)(version_1.Release.v916, (0, combi_1.seq)("TYPE", "ANY", "STRUCTURE", (0, combi_1.opt)((0, combi_1.seq)("CONTAINING", (0, combi_1.plus)((0, combi_1.seq)(Expressions.DefinitionName, "TYPE", Expressions.TypeSimpleRef))))));
19567
+ const def = (0, combi_1.seq)(Expressions.NamespaceSimpleName, (0, combi_1.opt)(Expressions.ConstantFieldLength), (0, combi_1.opt)((0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v731, (0, _lob_handle_type_1.lobHandleType)()), clientSpecified, anyStructure, (0, combi_1.alt)(simple, Expressions.TypeTable, Expressions.TypeStructure))));
19505
19568
  // todo, BOXED is only allowed with structures inside structures?
19506
19569
  const boxed = (0, combi_1.ver)(version_1.Release.v702, "BOXED");
19507
19570
  const ret = (0, combi_1.seq)("TYPES", def, (0, combi_1.opt)(boxed));
@@ -40146,6 +40209,75 @@ exports.GetParameter = GetParameter;
40146
40209
 
40147
40210
  /***/ },
40148
40211
 
40212
+ /***/ "../core/build/src/abap/5_syntax/statements/get_permissions.js"
40213
+ /*!*********************************************************************!*\
40214
+ !*** ../core/build/src/abap/5_syntax/statements/get_permissions.js ***!
40215
+ \*********************************************************************/
40216
+ (__unused_webpack_module, exports, __webpack_require__) {
40217
+
40218
+ "use strict";
40219
+
40220
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
40221
+ if (k2 === undefined) k2 = k;
40222
+ var desc = Object.getOwnPropertyDescriptor(m, k);
40223
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
40224
+ desc = { enumerable: true, get: function() { return m[k]; } };
40225
+ }
40226
+ Object.defineProperty(o, k2, desc);
40227
+ }) : (function(o, m, k, k2) {
40228
+ if (k2 === undefined) k2 = k;
40229
+ o[k2] = m[k];
40230
+ }));
40231
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40232
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
40233
+ }) : function(o, v) {
40234
+ o["default"] = v;
40235
+ });
40236
+ var __importStar = (this && this.__importStar) || (function () {
40237
+ var ownKeys = function(o) {
40238
+ ownKeys = Object.getOwnPropertyNames || function (o) {
40239
+ var ar = [];
40240
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40241
+ return ar;
40242
+ };
40243
+ return ownKeys(o);
40244
+ };
40245
+ return function (mod) {
40246
+ if (mod && mod.__esModule) return mod;
40247
+ var result = {};
40248
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40249
+ __setModuleDefault(result, mod);
40250
+ return result;
40251
+ };
40252
+ })();
40253
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
40254
+ exports.GetPermissions = void 0;
40255
+ const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
40256
+ const source_1 = __webpack_require__(/*! ../expressions/source */ "../core/build/src/abap/5_syntax/expressions/source.js");
40257
+ const target_1 = __webpack_require__(/*! ../expressions/target */ "../core/build/src/abap/5_syntax/expressions/target.js");
40258
+ const inline_data_1 = __webpack_require__(/*! ../expressions/inline_data */ "../core/build/src/abap/5_syntax/expressions/inline_data.js");
40259
+ const basic_1 = __webpack_require__(/*! ../../types/basic */ "../core/build/src/abap/types/basic/index.js");
40260
+ class GetPermissions {
40261
+ runSyntax(node, input) {
40262
+ for (const s of node.findDirectExpressions(Expressions.Source)) {
40263
+ source_1.Source.runSyntax(s, input);
40264
+ }
40265
+ for (const t of node.findDirectExpressions(Expressions.Target)) {
40266
+ const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
40267
+ if (inline) {
40268
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.VoidType.get("GetPermissions"));
40269
+ }
40270
+ else {
40271
+ target_1.Target.runSyntax(t, input);
40272
+ }
40273
+ }
40274
+ }
40275
+ }
40276
+ exports.GetPermissions = GetPermissions;
40277
+ //# sourceMappingURL=get_permissions.js.map
40278
+
40279
+ /***/ },
40280
+
40149
40281
  /***/ "../core/build/src/abap/5_syntax/statements/get_pf_status.js"
40150
40282
  /*!*******************************************************************!*\
40151
40283
  !*** ../core/build/src/abap/5_syntax/statements/get_pf_status.js ***!
@@ -46953,6 +47085,7 @@ const insert_field_group_1 = __webpack_require__(/*! ./statements/insert_field_g
46953
47085
  const read_entities_1 = __webpack_require__(/*! ./statements/read_entities */ "../core/build/src/abap/5_syntax/statements/read_entities.js");
46954
47086
  const modify_entities_1 = __webpack_require__(/*! ./statements/modify_entities */ "../core/build/src/abap/5_syntax/statements/modify_entities.js");
46955
47087
  const commit_entities_1 = __webpack_require__(/*! ./statements/commit_entities */ "../core/build/src/abap/5_syntax/statements/commit_entities.js");
47088
+ const get_permissions_1 = __webpack_require__(/*! ./statements/get_permissions */ "../core/build/src/abap/5_syntax/statements/get_permissions.js");
46956
47089
  const read_dataset_1 = __webpack_require__(/*! ./statements/read_dataset */ "../core/build/src/abap/5_syntax/statements/read_dataset.js");
46957
47090
  const _syntax_input_1 = __webpack_require__(/*! ./_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
46958
47091
  const assert_error_1 = __webpack_require__(/*! ./assert_error */ "../core/build/src/abap/5_syntax/assert_error.js");
@@ -47082,6 +47215,7 @@ if (Object.keys(map).length === 0) {
47082
47215
  addToMap(new parameter_1.Parameter());
47083
47216
  addToMap(new fieldsymbol_1.FieldSymbol());
47084
47217
  addToMap(new read_entities_1.ReadEntities());
47218
+ addToMap(new get_permissions_1.GetPermissions());
47085
47219
  addToMap(new read_dataset_1.ReadDataset());
47086
47220
  addToMap(new modify_entities_1.ModifyEntities());
47087
47221
  addToMap(new commit_entities_1.CommitEntities());
@@ -52663,6 +52797,12 @@ class CDSParser {
52663
52797
  if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
52664
52798
  res = combi_1.Combi.run(new Expressions.CDSDefineHierarchy(), tokens, version_1.defaultRelease);
52665
52799
  }
52800
+ if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
52801
+ res = combi_1.Combi.run(new Expressions.CDSDefineExternalEntity(), tokens, version_1.defaultRelease);
52802
+ }
52803
+ if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
52804
+ res = combi_1.Combi.run(new Expressions.CDSDefineTableEntity(), tokens, version_1.defaultRelease);
52805
+ }
52666
52806
  if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
52667
52807
  return undefined;
52668
52808
  }
@@ -52688,12 +52828,10 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/cds/expressions/index
52688
52828
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
52689
52829
  class CDSAggregate extends combi_1.Expression {
52690
52830
  getRunnable() {
52691
- // CDSPrefixedName handles dotted paths with path filters e.g. a._Assoc[filter].Field
52692
- // CDSArithmetics handles expressions like sum(A + B), max(A * 100)
52693
- // fieldAsType handles avg(field AS type) / sum(field AS type) — SAP inline type coercion
52694
52831
  const fieldAsType = (0, combi_1.seq)(_1.CDSPrefixedName, "AS", _1.CDSType);
52695
- const value = (0, combi_1.altPrio)(_1.CDSArithmetics, _1.CDSCast, _1.CDSCase, _1.CDSFunction, fieldAsType, _1.CDSPrefixedName, _1.CDSString, "*");
52696
- return (0, combi_1.seq)((0, combi_1.altPrio)("MAX", "MIN", "SUM", "AVG", "COUNT"), "(", (0, combi_1.optPrio)((0, combi_1.altPrio)("DISTINCT", "ALL")), value, ")");
52832
+ const funcAsType = (0, combi_1.seq)(_1.CDSFunction, "AS", _1.CDSType);
52833
+ const value = (0, combi_1.altPrio)(_1.CDSArithmetics, _1.CDSCast, _1.CDSCase, funcAsType, _1.CDSFunction, fieldAsType, _1.CDSPrefixedName, _1.CDSString, "*");
52834
+ return (0, combi_1.seq)((0, combi_1.altPrio)("MAX", "MIN", "SUM", "AVG", "COUNT"), "(", (0, combi_1.optPrio)((0, combi_1.altPrio)("DISTINCT", "ALL")), value, (0, combi_1.opt)((0, combi_1.seq)("AS", _1.CDSType)), ")");
52697
52835
  }
52698
52836
  }
52699
52837
  exports.CDSAggregate = CDSAggregate;
@@ -53152,7 +53290,7 @@ class CDSDefineAbstract extends combi_1.Expression {
53152
53290
  getRunnable() {
53153
53291
  const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.optPrio)((0, combi_1.str)("KEY")), cds_name_1.CDSName, ":", _1.CDSType, ";");
53154
53292
  const compsiOrAssoci = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), cds_name_1.CDSName, ":", (0, combi_1.alt)(_1.CDSComposition, _1.CDSAssociation), ";");
53155
- return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", (0, combi_1.opt)("ROOT"), "ABSTRACT", "ENTITY", cds_name_1.CDSName, (0, combi_1.str)("{"), (0, combi_1.plus)((0, combi_1.alt)(field, compsiOrAssoci)), (0, combi_1.str)("}"), (0, combi_1.opt)(";"));
53293
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", (0, combi_1.opt)("ROOT"), "ABSTRACT", "ENTITY", cds_name_1.CDSName, (0, combi_1.opt)(_1.CDSWithParameters), (0, combi_1.str)("{"), (0, combi_1.plus)((0, combi_1.alt)(field, compsiOrAssoci)), (0, combi_1.str)("}"), (0, combi_1.opt)(";"));
53156
53294
  }
53157
53295
  }
53158
53296
  exports.CDSDefineAbstract = CDSDefineAbstract;
@@ -53186,6 +53324,36 @@ exports.CDSDefineCustom = CDSDefineCustom;
53186
53324
 
53187
53325
  /***/ },
53188
53326
 
53327
+ /***/ "../core/build/src/cds/expressions/cds_define_external_entity.js"
53328
+ /*!***********************************************************************!*\
53329
+ !*** ../core/build/src/cds/expressions/cds_define_external_entity.js ***!
53330
+ \***********************************************************************/
53331
+ (__unused_webpack_module, exports, __webpack_require__) {
53332
+
53333
+ "use strict";
53334
+
53335
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
53336
+ exports.CDSDefineExternalEntity = void 0;
53337
+ const _1 = __webpack_require__(/*! . */ "../core/build/src/cds/expressions/index.js");
53338
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53339
+ class CDSDefineExternalEntity extends combi_1.Expression {
53340
+ getRunnable() {
53341
+ const extNameValue = (0, combi_1.alt)(_1.CDSName, (0, combi_1.regex)(/^"[^"]*"$/));
53342
+ const externalName = (0, combi_1.seq)("EXTERNAL", "NAME", extNameValue);
53343
+ const nullability = (0, combi_1.optPrio)((0, combi_1.alt)("NOT NULL", "NULL"));
53344
+ const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.optPrio)((0, combi_1.str)("KEY")), _1.CDSName, ":", _1.CDSType, nullability, (0, combi_1.optPrio)(externalName), ";");
53345
+ const assocOrComp = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), _1.CDSName, ":", (0, combi_1.alt)(_1.CDSComposition, _1.CDSAssociation), ";");
53346
+ const body = (0, combi_1.plus)((0, combi_1.alt)(field, assocOrComp));
53347
+ const externalEntity = (0, combi_1.seq)((0, combi_1.opt)("WRITABLE"), "EXTERNAL", "ENTITY", _1.CDSName, (0, combi_1.opt)(externalName), (0, combi_1.opt)(_1.CDSWithParameters));
53348
+ const staticEntity = (0, combi_1.seq)("STATIC", "ENTITY", _1.CDSName, (0, combi_1.opt)(externalName));
53349
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", (0, combi_1.alt)(externalEntity, staticEntity), (0, combi_1.str)("{"), body, (0, combi_1.str)("}"), (0, combi_1.opt)((0, combi_1.seq)("WITH", "FEDERATED", "DATA", (0, combi_1.optPrio)((0, combi_1.alt)((0, combi_1.seq)("PROVIDED", "AT", "RUNTIME"), (0, combi_1.seq)("PROVIDED", "BY", _1.CDSName))))), (0, combi_1.opt)(";"));
53350
+ }
53351
+ }
53352
+ exports.CDSDefineExternalEntity = CDSDefineExternalEntity;
53353
+ //# sourceMappingURL=cds_define_external_entity.js.map
53354
+
53355
+ /***/ },
53356
+
53189
53357
  /***/ "../core/build/src/cds/expressions/cds_define_hierarchy.js"
53190
53358
  /*!*****************************************************************!*\
53191
53359
  !*** ../core/build/src/cds/expressions/cds_define_hierarchy.js ***!
@@ -53205,7 +53373,13 @@ class CDSDefineHierarchy extends combi_1.Expression {
53205
53373
  const siblingsOrderField = (0, combi_1.seq)(_1.CDSPrefixedName, (0, combi_1.optPrio)(sortDirection));
53206
53374
  const siblingsOrder = (0, combi_1.seq)("SIBLINGS", "ORDER", "BY", siblingsOrderField, (0, combi_1.star)((0, combi_1.seq)(",", siblingsOrderField)));
53207
53375
  const directory = (0, combi_1.seq)("DIRECTORY", _1.CDSName, "FILTER", "BY", _1.CDSCondition);
53208
- const hierarchyBody = (0, combi_1.seq)("SOURCE", _1.CDSName, (0, combi_1.opt)(_1.CDSParametersSelect), "CHILD", "TO", "PARENT", "ASSOCIATION", _1.CDSName, (0, combi_1.opt)(directory), (0, combi_1.opt)((0, combi_1.seq)("START", "WHERE", _1.CDSCondition)), (0, combi_1.opt)(siblingsOrder), (0, combi_1.opt)((0, combi_1.seq)("NODETYPE", _1.CDSName)), (0, combi_1.opt)((0, combi_1.seq)("DEPTH", _1.CDSInteger)), (0, combi_1.opt)((0, combi_1.seq)("MULTIPLE", "PARENTS", (0, combi_1.altPrio)("NOT ALLOWED", "ALLOWED"))), (0, combi_1.opt)((0, combi_1.seq)("ORPHANS", (0, combi_1.altPrio)("IGNORE", "ROOT"))), (0, combi_1.opt)((0, combi_1.seq)("CYCLES", "BREAKUP")), (0, combi_1.opt)((0, combi_1.seq)("CACHE", (0, combi_1.altPrio)("FORCE", "NONE", "EMPTY", "OFF"))));
53376
+ // DATE PERIOD: period from <field> to <field> [valid from :p to :p]
53377
+ const datePeriod = (0, combi_1.seq)("PERIOD", "FROM", _1.CDSName, "TO", _1.CDSName, (0, combi_1.opt)((0, combi_1.seq)("VALID", "FROM", _1.CDSPrefixedName, "TO", _1.CDSPrefixedName)));
53378
+ // DEPTH accepts an integer literal or a parameter reference (:param)
53379
+ const depthValue = (0, combi_1.altPrio)(_1.CDSInteger, _1.CDSPrefixedName);
53380
+ // LOAD mode: BULK, INCREMENTAL, or a parameter reference ($parameters.p_load)
53381
+ const loadMode = (0, combi_1.altPrio)("BULK", "INCREMENTAL", _1.CDSPrefixedName);
53382
+ const hierarchyBody = (0, combi_1.seq)("SOURCE", _1.CDSName, (0, combi_1.opt)(_1.CDSParametersSelect), "CHILD", "TO", "PARENT", "ASSOCIATION", _1.CDSName, (0, combi_1.opt)(directory), (0, combi_1.opt)(datePeriod), (0, combi_1.opt)((0, combi_1.seq)("START", "WHERE", _1.CDSCondition)), (0, combi_1.opt)(siblingsOrder), (0, combi_1.opt)((0, combi_1.seq)("LOAD", loadMode)), (0, combi_1.opt)((0, combi_1.seq)("NODETYPE", _1.CDSName)), (0, combi_1.opt)((0, combi_1.seq)("DEPTH", depthValue)), (0, combi_1.opt)((0, combi_1.seq)("MULTIPLE", "PARENTS", (0, combi_1.altPrio)("NOT ALLOWED", "ALLOWED", (0, combi_1.seq)("LEAVES", (0, combi_1.optPrio)("ONLY"))))), (0, combi_1.opt)((0, combi_1.seq)("ORPHANS", (0, combi_1.altPrio)("IGNORE", "ROOT", "ERROR"))), (0, combi_1.opt)((0, combi_1.seq)("CYCLES", (0, combi_1.altPrio)("BREAKUP", "ERROR"))), (0, combi_1.opt)((0, combi_1.seq)("GENERATE", "SPANTREE")), (0, combi_1.opt)((0, combi_1.seq)("CACHE", (0, combi_1.altPrio)("ON", "OFF", "FORCE"))));
53209
53383
  return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", "HIERARCHY", _1.CDSName, (0, combi_1.opt)(_1.CDSWithParameters), "AS", "PARENT", "CHILD", "HIERARCHY", "(", hierarchyBody, ")", "{", (0, combi_1.seq)(field, (0, combi_1.star)((0, combi_1.seq)(",", field))), "}", (0, combi_1.opt)(";"));
53210
53384
  }
53211
53385
  }
@@ -53229,7 +53403,9 @@ const __1 = __webpack_require__(/*! ../.. */ "../core/build/src/index.js");
53229
53403
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53230
53404
  class CDSDefineProjection extends combi_1.Expression {
53231
53405
  getRunnable() {
53232
- return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", (0, combi_1.opt)("ROOT"), (0, combi_1.opt)("TRANSIENT"), "VIEW", (0, combi_1.ver)(__1.Release.v755, (0, combi_1.opt)("ENTITY")), _1.CDSName, (0, combi_1.opt)(_1.CDSProviderContract), (0, combi_1.opt)(_1.CDSWithParameters), "AS PROJECTION ON", _1.CDSName, (0, combi_1.opt)(_1.CDSParametersSelect), (0, combi_1.opt)(_1.CDSAs), (0, combi_1.star)(_1.CDSAssociation), (0, combi_1.str)("{"), (0, combi_1.seq)(_1.CDSElement, (0, combi_1.star)((0, combi_1.seq)(",", _1.CDSElement)), (0, combi_1.opt)(",")), (0, combi_1.str)("}"), (0, combi_1.opt)(_1.CDSWhere), (0, combi_1.opt)(";"));
53406
+ // redefine association _Assoc redirected to [composition child | parent] Entity
53407
+ const redefineAssoc = (0, combi_1.seq)("REDEFINE", "ASSOCIATION", _1.CDSName, "REDIRECTED", "TO", (0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)("COMPOSITION", "CHILD"), "PARENT")), _1.CDSName);
53408
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", (0, combi_1.opt)("ROOT"), (0, combi_1.opt)("TRANSIENT"), "VIEW", (0, combi_1.ver)(__1.Release.v755, (0, combi_1.opt)("ENTITY")), _1.CDSName, (0, combi_1.opt)(_1.CDSProviderContract), (0, combi_1.opt)(_1.CDSWithParameters), "AS PROJECTION ON", _1.CDSName, (0, combi_1.opt)(_1.CDSParametersSelect), (0, combi_1.opt)(_1.CDSAs), (0, combi_1.star)((0, combi_1.altPrio)(_1.CDSAssociation, redefineAssoc)), (0, combi_1.str)("{"), (0, combi_1.seq)(_1.CDSElement, (0, combi_1.star)((0, combi_1.seq)(",", _1.CDSElement)), (0, combi_1.opt)(",")), (0, combi_1.str)("}"), (0, combi_1.opt)(_1.CDSWhere), (0, combi_1.opt)(";"));
53233
53409
  }
53234
53410
  }
53235
53411
  exports.CDSDefineProjection = CDSDefineProjection;
@@ -53237,6 +53413,35 @@ exports.CDSDefineProjection = CDSDefineProjection;
53237
53413
 
53238
53414
  /***/ },
53239
53415
 
53416
+ /***/ "../core/build/src/cds/expressions/cds_define_table_entity.js"
53417
+ /*!********************************************************************!*\
53418
+ !*** ../core/build/src/cds/expressions/cds_define_table_entity.js ***!
53419
+ \********************************************************************/
53420
+ (__unused_webpack_module, exports, __webpack_require__) {
53421
+
53422
+ "use strict";
53423
+
53424
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
53425
+ exports.CDSDefineTableEntity = void 0;
53426
+ const _1 = __webpack_require__(/*! . */ "../core/build/src/cds/expressions/index.js");
53427
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53428
+ class CDSDefineTableEntity extends combi_1.Expression {
53429
+ getRunnable() {
53430
+ const nullability = (0, combi_1.optPrio)((0, combi_1.alt)("NOT NULL", "NULL"));
53431
+ const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.optPrio)((0, combi_1.str)("KEY")), _1.CDSName, ":", _1.CDSType, nullability, ";");
53432
+ const assocOrComp = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), _1.CDSName, ":", (0, combi_1.alt)(_1.CDSComposition, _1.CDSAssociation), ";");
53433
+ const inlineBody = (0, combi_1.plus)((0, combi_1.alt)(field, assocOrComp));
53434
+ const elementList = (0, combi_1.seq)(_1.CDSElement, (0, combi_1.star)((0, combi_1.seq)(",", _1.CDSElement)), (0, combi_1.opt)(","));
53435
+ const elements = (0, combi_1.seq)((0, combi_1.str)("{"), (0, combi_1.altPrio)("*", elementList), (0, combi_1.str)("}"));
53436
+ const selectBody = (0, combi_1.seq)("AS", "SELECT", "FROM", _1.CDSSource, (0, combi_1.star)(_1.CDSJoin), (0, combi_1.star)((0, combi_1.altPrio)(_1.CDSComposition, _1.CDSAssociation)), (0, combi_1.opt)(elements), (0, combi_1.optPrio)(_1.CDSWhere));
53437
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "DEFINE", (0, combi_1.opt)("ROOT"), "TABLE", "ENTITY", _1.CDSName, (0, combi_1.opt)(_1.CDSWithParameters), (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.str)("{"), inlineBody, (0, combi_1.str)("}")), selectBody), (0, combi_1.opt)(";"));
53438
+ }
53439
+ }
53440
+ exports.CDSDefineTableEntity = CDSDefineTableEntity;
53441
+ //# sourceMappingURL=cds_define_table_entity.js.map
53442
+
53443
+ /***/ },
53444
+
53240
53445
  /***/ "../core/build/src/cds/expressions/cds_define_table_function.js"
53241
53446
  /*!**********************************************************************!*\
53242
53447
  !*** ../core/build/src/cds/expressions/cds_define_table_function.js ***!
@@ -53280,7 +53485,8 @@ const cds_with_parameters_1 = __webpack_require__(/*! ./cds_with_parameters */ "
53280
53485
  class CDSDefineView extends combi_1.Expression {
53281
53486
  getRunnable() {
53282
53487
  const columnAlias = (0, combi_1.seq)("(", cds_name_1.CDSName, (0, combi_1.star)((0, combi_1.seq)(",", cds_name_1.CDSName)), ")");
53283
- return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.opt)("DEFINE"), (0, combi_1.opt)("ROOT"), "VIEW", (0, combi_1.ver)(__1.Release.v755, (0, combi_1.opt)("ENTITY")), cds_name_1.CDSName, (0, combi_1.opt)(columnAlias), (0, combi_1.opt)(cds_with_parameters_1.CDSWithParameters), "AS", cds_select_1.CDSSelect, (0, combi_1.opt)(";"));
53488
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.opt)("DEFINE"), (0, combi_1.opt)("ROOT"), (0, combi_1.opt)("WRITABLE"), "VIEW", (0, combi_1.ver)(__1.Release.v755, (0, combi_1.opt)("ENTITY")), cds_name_1.CDSName, (0, combi_1.opt)(columnAlias), (0, combi_1.opt)(cds_with_parameters_1.CDSWithParameters), "AS", cds_select_1.CDSSelect, (0, combi_1.opt)((0, combi_1.seq)("WITH", "HIERARCHY", cds_name_1.CDSName)), // post-select WITH HIERARCHY clause
53489
+ (0, combi_1.opt)(";"));
53284
53490
  }
53285
53491
  }
53286
53492
  exports.CDSDefineView = CDSDefineView;
@@ -53306,14 +53512,11 @@ class CDSElement extends combi_1.Expression {
53306
53512
  getRunnable() {
53307
53513
  const redirected = (0, combi_1.seq)(": REDIRECTED TO", (0, combi_1.optPrio)((0, combi_1.altPrio)("PARENT", "COMPOSITION CHILD")), _1.CDSName);
53308
53514
  const colonThing = (0, combi_1.seq)(":", (0, combi_1.altPrio)(_1.CDSType, _1.CDSName, "LOCALIZED"));
53309
- // $extension.* — extension field wildcard
53310
53515
  const extensionWildcard = (0, combi_1.seq)("$extension", ".", "*");
53311
- const body = (0, combi_1.altPrio)(extensionWildcard, _1.CDSArithmetics, _1.CDSAggregate, _1.CDSString, _1.CDSArithParen, _1.CDSFunction, cds_cast_1.CDSCast, _1.CDSCase, (0, combi_1.seq)("(", _1.CDSCase, ")"), (0, combi_1.seq)(_1.CDSPrefixedName, (0, combi_1.optPrio)(cds_as_1.CDSAs), (0, combi_1.optPrio)((0, combi_1.altPrio)(redirected, colonThing))), _1.CDSInteger);
53312
- // KEY/VIRTUAL keyword handling via altPrio:
53313
- // - Try keyword form first: if keyword consumed but body fails (e.g. "virtual.Field"),
53314
- // altPrio backtracks to plain body (which handles "virtual" as a datasource alias prefix).
53315
- // - This gives exactly 1 state in all cases (no exponential blowup from opt()).
53316
- const elementBody = (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.altPrio)("KEY", "VIRTUAL"), body), body);
53516
+ const includeElement = (0, combi_1.seq)("INCLUDE", _1.CDSPrefixedName);
53517
+ const typedVirtual = (0, combi_1.seq)("VIRTUAL", _1.CDSName, ":", _1.CDSType);
53518
+ const body = (0, combi_1.altPrio)(extensionWildcard, includeElement, _1.CDSArithmetics, _1.CDSAggregate, _1.CDSString, _1.CDSArithParen, _1.CDSFunction, cds_cast_1.CDSCast, _1.CDSCase, (0, combi_1.seq)("(", _1.CDSCase, ")"), (0, combi_1.seq)(_1.CDSPrefixedName, (0, combi_1.optPrio)(cds_as_1.CDSAs), (0, combi_1.optPrio)((0, combi_1.altPrio)(redirected, colonThing))), _1.CDSInteger);
53519
+ const elementBody = (0, combi_1.altPrio)(typedVirtual, (0, combi_1.seq)((0, combi_1.altPrio)("KEY", "VIRTUAL"), body), body);
53317
53520
  return (0, combi_1.seq)((0, combi_1.starPrio)(_1.CDSAnnotation), elementBody, (0, combi_1.optPrio)(cds_as_1.CDSAs));
53318
53521
  }
53319
53522
  }
@@ -53334,12 +53537,17 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
53334
53537
  exports.CDSExtendView = void 0;
53335
53538
  const _1 = __webpack_require__(/*! . */ "../core/build/src/cds/expressions/index.js");
53336
53539
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53337
- const cds_name_1 = __webpack_require__(/*! ./cds_name */ "../core/build/src/cds/expressions/cds_name.js");
53338
53540
  class CDSExtendView extends combi_1.Expression {
53339
53541
  getRunnable() {
53340
- const namedot = (0, combi_1.seq)(cds_name_1.CDSName, (0, combi_1.optPrio)((0, combi_1.seq)(".", cds_name_1.CDSName)), (0, combi_1.optPrio)(_1.CDSAs));
53542
+ const namedot = (0, combi_1.seq)(_1.CDSName, (0, combi_1.optPrio)((0, combi_1.seq)(".", _1.CDSName)), (0, combi_1.optPrio)(_1.CDSAs));
53341
53543
  const valueNested = (0, combi_1.seq)("{", namedot, (0, combi_1.star)((0, combi_1.seq)(",", namedot)), "}");
53342
- return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)("EXTEND VIEW"), (0, combi_1.opt)((0, combi_1.str)("ENTITY")), cds_name_1.CDSName, (0, combi_1.str)("WITH"), (0, combi_1.opt)(cds_name_1.CDSName), valueNested, (0, combi_1.opt)(";"));
53544
+ const redefineAssoc = (0, combi_1.seq)("REDEFINE", "ASSOCIATION", _1.CDSPrefixedName, (0, combi_1.optPrio)((0, combi_1.seq)("[", _1.CDSCondition, "]")), (0, combi_1.opt)(_1.CDSAs), "REDIRECTED", "TO", (0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)("COMPOSITION", "CHILD"), "PARENT")), _1.CDSName);
53545
+ const extendView = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)("EXTEND VIEW"), (0, combi_1.opt)((0, combi_1.str)("ENTITY")), _1.CDSName, (0, combi_1.str)("WITH"), (0, combi_1.opt)(_1.CDSName), (0, combi_1.star)(redefineAssoc), valueNested, (0, combi_1.opt)(";"));
53546
+ const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.optPrio)((0, combi_1.str)("KEY")), _1.CDSName, ":", _1.CDSType, ";");
53547
+ const assocOrComp = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), _1.CDSName, ":", (0, combi_1.alt)(_1.CDSComposition, _1.CDSAssociation), ";");
53548
+ const entityBody = (0, combi_1.seq)("{", (0, combi_1.plus)((0, combi_1.alt)(field, assocOrComp)), "}");
53549
+ const extendAbstractOrCustom = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), "EXTEND", (0, combi_1.alt)("ABSTRACT", "CUSTOM"), "ENTITY", _1.CDSName, (0, combi_1.opt)(_1.CDSWithParameters), "WITH", entityBody, (0, combi_1.opt)(";"));
53550
+ return (0, combi_1.alt)(extendAbstractOrCustom, extendView);
53343
53551
  }
53344
53552
  }
53345
53553
  exports.CDSExtendView = CDSExtendView;
@@ -53414,12 +53622,13 @@ class CDSFunction extends combi_1.Expression {
53414
53622
  const occurrencesRegexpr = (0, combi_1.seq)("OCCURRENCES_REGEXPR", "(", conversionInputs, ")");
53415
53623
  const substrRegexpr = (0, combi_1.seq)("SUBSTR_REGEXPR", "(", conversionInputs, ")");
53416
53624
  const locateRegexpr = (0, combi_1.seq)("LOCATE_REGEXPR", "(", conversionInputs, ")");
53417
- // Generic fallback: user-defined/extension functions like GET_NUMERIC_VALUE(arg).
53418
- // Use a regex that excludes CDS keywords that would otherwise be matched by CDSName.
53419
- // Must contain at least one underscore to distinguish from keywords (e.g. GET_NUMERIC_VALUE).
53420
53625
  const extFuncName = (0, combi_1.regex)(/^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$/i);
53421
53626
  const genericArgs = (0, combi_1.seq)(_1.CDSFunctionInput, (0, combi_1.starPrio)((0, combi_1.seq)(",", _1.CDSFunctionInput)));
53422
- const genericFunc = (0, combi_1.seq)(extFuncName, "(", genericArgs, ")");
53627
+ const namedArgValue = (0, combi_1.altPrio)((0, combi_1.seq)("INTERVAL", _1.CDSFunctionInput, _1.CDSName), _1.CDSFunctionInput, _1.CDSName);
53628
+ const namedArgArrow = (0, combi_1.seq)(_1.CDSName, "=", ">", namedArgValue);
53629
+ const namedArgColon = (0, combi_1.seq)(_1.CDSName, ":", namedArgValue);
53630
+ const namedArgs = (0, combi_1.seq)((0, combi_1.altPrio)(namedArgArrow, namedArgColon), (0, combi_1.starPrio)((0, combi_1.seq)(",", (0, combi_1.altPrio)(namedArgArrow, namedArgColon))));
53631
+ const genericFunc = (0, combi_1.seq)(extFuncName, "(", (0, combi_1.optPrio)((0, combi_1.altPrio)(namedArgs, genericArgs)), ")");
53423
53632
  return (0, combi_1.altPrio)(substring, coalesce, tstmp_to_dats, concat, tstmp_to_tims, upper, lower, abs, ceil, floor, round, div, division, concat_with_space, dats_is_valid, tims_is_valid, dats_days_between, tstmp_add_seconds, tstmp_seconds_between, tstmp_current_utctimestamp, tstmp_is_valid, utcl_current, abap_system_timezone, abap_user_timezone, bintohex, hextobin, dats_add_days, dats_add_months, tstmp_to_dst, dats_tims_to_tstmp, mod, left, right, lpad, rpad, instr, length, ltrim, rtrim, replace, unitConversion, currencyConversion, decimalShift, fltp_to_dec, ratioOf, replaceRegexpr, matchesRegexpr, occurrencesRegexpr, substrRegexpr, locateRegexpr, curr_to_decfloat_amount, genericFunc);
53424
53633
  }
53425
53634
  }
@@ -53651,31 +53860,18 @@ const cds_integer_1 = __webpack_require__(/*! ./cds_integer */ "../core/build/sr
53651
53860
  const cds_string_1 = __webpack_require__(/*! ./cds_string */ "../core/build/src/cds/expressions/cds_string.js");
53652
53861
  class CDSPrefixedName extends combi_1.Expression {
53653
53862
  getRunnable() {
53654
- // Path filter variants:
53655
- // [inner], [left outer], [cross] — join-type redirect
53656
- // [1:left outer], [1:inner] — cardinality + join-type
53657
- // [1: condition] — cardinality + filter condition
53658
- // [condition] — filter condition only
53659
53863
  const joinType = (0, combi_1.altPrio)("LEFT OUTER", "INNER", "CROSS");
53660
53864
  const joinRedirect = (0, combi_1.seq)("[", joinType, "]");
53661
- // Cardinality spec: integer or * (e.g. [*:inner], [1:inner])
53662
53865
  const cardSpec = (0, combi_1.altPrio)(cds_integer_1.CDSInteger, "*");
53663
53866
  const cardinalityJoin = (0, combi_1.seq)("[", cardSpec, ":", joinType, "]");
53664
- // [1: left outer where condition] — cardinality + join-type + WHERE filter
53665
53867
  const cardinalityJoinWhere = (0, combi_1.seq)("[", cardSpec, ":", joinType, "WHERE", cds_condition_1.CDSCondition, "]");
53666
- // [left outer where condition] — join-type + WHERE filter (no cardinality prefix)
53667
53868
  const joinWhere = (0, combi_1.seq)("[", joinType, "WHERE", cds_condition_1.CDSCondition, "]");
53668
- // Text cardinality forms: [to one: cond], [to many: cond]
53669
- const textCard = (0, combi_1.altPrio)("TO ONE", "TO MANY");
53670
- const textCardFilter = (0, combi_1.seq)("[", textCard, ":", cds_condition_1.CDSCondition, "]");
53671
- // Numeric range cardinality: [0..1: cond], [1..1: cond], [0..*: cond], [n..m: cond]
53869
+ const textCard = (0, combi_1.altPrio)("TO EXACT ONE", "TO ONE", "TO MANY");
53870
+ const textCardFilter = (0, combi_1.seq)("[", textCard, (0, combi_1.optPrio)((0, combi_1.seq)(":", (0, combi_1.altPrio)((0, combi_1.seq)(joinType, "WHERE", cds_condition_1.CDSCondition), joinType, cds_condition_1.CDSCondition))), "]");
53672
53871
  const cardNum = (0, combi_1.altPrio)(cds_integer_1.CDSInteger, "*");
53673
53872
  const rangeCard = (0, combi_1.seq)(cds_integer_1.CDSInteger, ".", ".", cardNum);
53674
53873
  const rangeCardFilter = (0, combi_1.seq)("[", rangeCard, ":", cds_condition_1.CDSCondition, "]");
53675
53874
  const pathFilter = (0, combi_1.altPrio)(cardinalityJoinWhere, joinWhere, cardinalityJoin, joinRedirect, textCardFilter, rangeCardFilter, (0, combi_1.seq)("[", cardSpec, ":", cds_condition_1.CDSCondition, "]"), (0, combi_1.seq)("[", cds_condition_1.CDSCondition, "]"));
53676
- // Each dotted segment may have its own path filter: A[cond].B[cond].C
53677
- // The final segment may also be a string literal: #enum.'value'
53678
- // A segment may have a parameterized call: _Assoc( P_Key : value ) or _Assoc[filter]
53679
53875
  const segment = (0, combi_1.seq)(".", (0, combi_1.altPrio)(cds_string_1.CDSString, cds_name_1.CDSName), (0, combi_1.optPrio)((0, combi_1.altPrio)(cds_parameters_select_1.CDSParametersSelect, cds_parameters_1.CDSParameters)), (0, combi_1.optPrio)(pathFilter));
53680
53876
  return (0, combi_1.seq)(cds_name_1.CDSName, (0, combi_1.optPrio)((0, combi_1.altPrio)(cds_parameters_1.CDSParameters, cds_parameters_select_1.CDSParametersSelect)), (0, combi_1.optPrio)(pathFilter), (0, combi_1.star)(segment));
53681
53877
  }
@@ -53698,7 +53894,7 @@ exports.CDSProviderContract = void 0;
53698
53894
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53699
53895
  class CDSProviderContract extends combi_1.Expression {
53700
53896
  getRunnable() {
53701
- return (0, combi_1.seq)("PROVIDER CONTRACT", (0, combi_1.alt)("TRANSACTIONAL_QUERY", "TRANSACTIONAL_INTERFACE", "ANALYTICAL_QUERY"));
53897
+ return (0, combi_1.seq)("PROVIDER CONTRACT", (0, combi_1.alt)("TRANSACTIONAL_QUERY", "TRANSACTIONAL_INTERFACE", "ANALYTICAL_QUERY", "SQL_QUERY", "STRUCTURED_QUERY"));
53702
53898
  }
53703
53899
  }
53704
53900
  exports.CDSProviderContract = CDSProviderContract;
@@ -53747,10 +53943,13 @@ class CDSSelect extends combi_1.Expression {
53747
53943
  getRunnable() {
53748
53944
  const fields = (0, combi_1.seq)((0, combi_1.star)((0, combi_1.seq)(_1.CDSElement, ",")), _1.CDSElement);
53749
53945
  const distinct = (0, combi_1.str)("DISTINCT");
53750
- // elem (,elem)* [,] — handles separator commas and optional trailing comma
53751
53946
  const elementList = (0, combi_1.seq)(_1.CDSElement, (0, combi_1.star)((0, combi_1.seq)(",", _1.CDSElement)), (0, combi_1.opt)(","));
53752
53947
  const elements = (0, combi_1.seq)((0, combi_1.str)("{"), (0, combi_1.altPrio)("*", elementList), (0, combi_1.str)("}"));
53753
- return (0, combi_1.seq)("SELECT", (0, combi_1.optPrio)(distinct), (0, combi_1.opt)((0, combi_1.altPrio)("*", fields)), "FROM", _1.CDSSource, (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)((0, combi_1.altPrio)(_1.CDSComposition, cds_association_1.CDSAssociation)), (0, combi_1.opt)(elements), (0, combi_1.optPrio)(_1.CDSWhere), (0, combi_1.optPrio)(_1.CDSGroupBy), (0, combi_1.optPrio)(_1.CDSHaving), (0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)("UNION", (0, combi_1.optPrio)("ALL"), CDSSelect), (0, combi_1.seq)("EXCEPT", CDSSelect), (0, combi_1.seq)("INTERSECT", CDSSelect))));
53948
+ const aspectBinding = (0, combi_1.seq)(_1.CDSPrefixedName, "=", ">", _1.CDSPrefixedName);
53949
+ const bindAspect = (0, combi_1.seq)("BIND", "ASPECT", _1.CDSName, "(", aspectBinding, (0, combi_1.starPrio)((0, combi_1.seq)(",", aspectBinding)), ")");
53950
+ const parenSelect = (0, combi_1.seq)("(", CDSSelect, ")");
53951
+ const unionBranch = (0, combi_1.altPrio)(parenSelect, CDSSelect);
53952
+ return (0, combi_1.seq)("SELECT", (0, combi_1.optPrio)(distinct), (0, combi_1.opt)((0, combi_1.altPrio)("*", fields)), "FROM", _1.CDSSource, (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)((0, combi_1.altPrio)(_1.CDSComposition, cds_association_1.CDSAssociation)), (0, combi_1.optPrio)(bindAspect), (0, combi_1.opt)(elements), (0, combi_1.optPrio)(_1.CDSWhere), (0, combi_1.optPrio)(_1.CDSGroupBy), (0, combi_1.optPrio)(_1.CDSHaving), (0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)("UNION", (0, combi_1.optPrio)("ALL"), unionBranch), (0, combi_1.seq)("EXCEPT", unionBranch), (0, combi_1.seq)("INTERSECT", unionBranch))));
53754
53953
  }
53755
53954
  }
53756
53955
  exports.CDSSelect = CDSSelect;
@@ -53772,13 +53971,14 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/cds/expressions/index
53772
53971
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53773
53972
  class CDSSource extends combi_1.Expression {
53774
53973
  getRunnable() {
53775
- // Static where filter in FROM: SomeTable [Field = 'Value']
53776
53974
  const staticFilter = (0, combi_1.seq)("[", _1.CDSCondition, "]");
53777
- const singleSource = (0, combi_1.seq)(_1.CDSName, (0, combi_1.optPrio)(_1.CDSParametersSelect), (0, combi_1.optPrio)(staticFilter), (0, combi_1.opt)((0, combi_1.altPrio)(_1.CDSAs, _1.CDSName)));
53778
- // FROM ( src [JOIN src ON cond]* ) — parenthesized join chain, arbitrarily nested
53779
- // CDSSource is self-referential here to handle: (((T1 join T2) join T3) join T4)
53975
+ // Dotted path: T._Assoc association path as FROM source
53976
+ const dottedName = (0, combi_1.seq)(_1.CDSName, ".", _1.CDSName);
53977
+ const namedSource = (0, combi_1.altPrio)(dottedName, _1.CDSName);
53978
+ const singleSource = (0, combi_1.seq)(namedSource, (0, combi_1.optPrio)(_1.CDSParametersSelect), (0, combi_1.optPrio)(staticFilter), (0, combi_1.opt)((0, combi_1.altPrio)(_1.CDSAs, _1.CDSName)));
53979
+ const funcSingleSource = (0, combi_1.seq)(_1.CDSFunction, (0, combi_1.opt)((0, combi_1.altPrio)(_1.CDSAs, _1.CDSName)));
53780
53980
  const parenSource = (0, combi_1.seq)("(", (0, combi_1.altPrio)(CDSSource, singleSource), (0, combi_1.star)(_1.CDSJoin), ")");
53781
- return (0, combi_1.altPrio)(parenSource, singleSource);
53981
+ return (0, combi_1.altPrio)(parenSource, funcSingleSource, singleSource);
53782
53982
  }
53783
53983
  }
53784
53984
  exports.CDSSource = CDSSource;
@@ -53799,15 +53999,8 @@ exports.CDSString = void 0;
53799
53999
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
53800
54000
  class CDSString extends combi_1.Expression {
53801
54001
  getRunnable() {
53802
- // Allow any character except unescaped single quote; escape sequences:
53803
- // '' — escaped single quote (doubling)
53804
- // \' — escaped single quote (backslash form)
53805
- // \\ — escaped backslash (e.g. '\\' in ltrim/rtrim calls)
53806
- // \x — other backslash sequences not followed by '
53807
54002
  const reg = (0, combi_1.regex)(/^'(?:[^'\\]|''|\\'|\\\\|\\(?!'))*'$/);
53808
- // Typed literal: abap.int4'1', abap.char'X', abap.numc(3)'123', etc.
53809
- // Lexed as tokens: abap, ., typename, 'value'
53810
- const abapTypeName = (0, combi_1.regex)(/^(?:int[1-9]|sstring|char|numc|dats|tims|fltp|decfloat\d+|dec|string|raw|xstring|clnt|lang|unit|cuky|curr|quan|d|t|p|n|c|x|f)$/i);
54003
+ const abapTypeName = (0, combi_1.regex)(/^(?:int[1-9]|int8|sstring|char|numc|dats|datn|tims|timn|utcl|utclong|fltp|decfloat\d+|dec|string|rawstring|rstr|raw|xstring|clnt|lang|unit|cuky|curr|quan|geom_ewkb|d34n|d16n|d34d|d16d|d34s|d16s|d34r|d16r|d|t|p|n|c|x|f)$/i);
53811
54004
  const abap = (0, combi_1.seq)("abap", ".", abapTypeName, (0, combi_1.optPrio)((0, combi_1.seq)("(", (0, combi_1.regex)(/^\d+$/), ")")), reg);
53812
54005
  return (0, combi_1.altPrio)(abap, reg);
53813
54006
  }
@@ -53925,8 +54118,10 @@ __exportStar(__webpack_require__(/*! ./cds_composition */ "../core/build/src/cds
53925
54118
  __exportStar(__webpack_require__(/*! ./cds_condition */ "../core/build/src/cds/expressions/cds_condition.js"), exports);
53926
54119
  __exportStar(__webpack_require__(/*! ./cds_define_abstract */ "../core/build/src/cds/expressions/cds_define_abstract.js"), exports);
53927
54120
  __exportStar(__webpack_require__(/*! ./cds_define_custom */ "../core/build/src/cds/expressions/cds_define_custom.js"), exports);
54121
+ __exportStar(__webpack_require__(/*! ./cds_define_external_entity */ "../core/build/src/cds/expressions/cds_define_external_entity.js"), exports);
53928
54122
  __exportStar(__webpack_require__(/*! ./cds_define_hierarchy */ "../core/build/src/cds/expressions/cds_define_hierarchy.js"), exports);
53929
54123
  __exportStar(__webpack_require__(/*! ./cds_define_projection */ "../core/build/src/cds/expressions/cds_define_projection.js"), exports);
54124
+ __exportStar(__webpack_require__(/*! ./cds_define_table_entity */ "../core/build/src/cds/expressions/cds_define_table_entity.js"), exports);
53930
54125
  __exportStar(__webpack_require__(/*! ./cds_define_table_function */ "../core/build/src/cds/expressions/cds_define_table_function.js"), exports);
53931
54126
  __exportStar(__webpack_require__(/*! ./cds_define_view */ "../core/build/src/cds/expressions/cds_define_view.js"), exports);
53932
54127
  __exportStar(__webpack_require__(/*! ./cds_element */ "../core/build/src/cds/expressions/cds_element.js"), exports);
@@ -54009,7 +54204,10 @@ class Config {
54009
54204
  for (const rule of sorted) {
54010
54205
  rules[rule.getMetadata().key] = rule.getConfig();
54011
54206
  }
54012
- const version = ver;
54207
+ const version = ver !== null && ver !== void 0 ? ver : {
54208
+ release: version_1.Release.Newest.name,
54209
+ language: langVer !== null && langVer !== void 0 ? langVer : version_1.LanguageVersion.Normal,
54210
+ };
54013
54211
  // defaults: dont skip anything, report everything. The user can decide to skip stuff
54014
54212
  // its difficult to debug errors not being reported
54015
54213
  const config = {
@@ -54136,12 +54334,14 @@ class Config {
54136
54334
  return v;
54137
54335
  }
54138
54336
  getLanguageVersion() {
54139
- var _a;
54337
+ if (this.config.syntax.languageVersion !== undefined) {
54338
+ return this.config.syntax.languageVersion;
54339
+ }
54140
54340
  const v = this.config.syntax.version;
54141
54341
  if (v !== undefined && typeof v !== "string") {
54142
54342
  return v.language;
54143
54343
  }
54144
- return (_a = this.config.syntax.languageVersion) !== null && _a !== void 0 ? _a : version_1.LanguageVersion.Normal;
54344
+ return version_1.LanguageVersion.Normal;
54145
54345
  }
54146
54346
  checkVersion() {
54147
54347
  const version = this.config.syntax.version;
@@ -54745,49 +54945,6 @@ exports.DDICReferences = DDICReferences;
54745
54945
 
54746
54946
  /***/ },
54747
54947
 
54748
- /***/ "../core/build/src/ddl/ddl_lexer.js"
54749
- /*!******************************************!*\
54750
- !*** ../core/build/src/ddl/ddl_lexer.js ***!
54751
- \******************************************/
54752
- (__unused_webpack_module, exports, __webpack_require__) {
54753
-
54754
- "use strict";
54755
-
54756
- Object.defineProperty(exports, "__esModule", ({ value: true }));
54757
- exports.DDLLexer = void 0;
54758
- const tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
54759
- const position_1 = __webpack_require__(/*! ../position */ "../core/build/src/position.js");
54760
- class DDLLexer {
54761
- static run(file) {
54762
- const step1 = [];
54763
- const lines = file.getRaw().replace(/\r/g, "").split("\n");
54764
- for (const l of lines) {
54765
- if (l.startsWith("@")) {
54766
- continue; // skip annotations for now
54767
- }
54768
- step1.push(...l.split(" "));
54769
- }
54770
- const step2 = [];
54771
- for (const t of step1) {
54772
- if (t === "") {
54773
- continue;
54774
- }
54775
- else if (t.endsWith(";")) {
54776
- step2.push(t.substr(0, t.length - 1));
54777
- step2.push(";");
54778
- }
54779
- else {
54780
- step2.push(t);
54781
- }
54782
- }
54783
- return step2.map(t => new tokens_1.Identifier(new position_1.Position(1, 1), t));
54784
- }
54785
- }
54786
- exports.DDLLexer = DDLLexer;
54787
- //# sourceMappingURL=ddl_lexer.js.map
54788
-
54789
- /***/ },
54790
-
54791
54948
  /***/ "../core/build/src/ddl/ddl_parser.js"
54792
54949
  /*!*******************************************!*\
54793
54950
  !*** ../core/build/src/ddl/ddl_parser.js ***!
@@ -54831,67 +54988,250 @@ var __importStar = (this && this.__importStar) || (function () {
54831
54988
  })();
54832
54989
  Object.defineProperty(exports, "__esModule", ({ value: true }));
54833
54990
  exports.DDLParser = exports.DDLKind = void 0;
54991
+ const tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
54834
54992
  const combi_1 = __webpack_require__(/*! ../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
54835
54993
  const nodes_1 = __webpack_require__(/*! ../abap/nodes */ "../core/build/src/abap/nodes/index.js");
54836
54994
  const version_1 = __webpack_require__(/*! ../version */ "../core/build/src/version.js");
54837
- const ddl_lexer_1 = __webpack_require__(/*! ./ddl_lexer */ "../core/build/src/ddl/ddl_lexer.js");
54995
+ const cds_lexer_1 = __webpack_require__(/*! ../cds/cds_lexer */ "../core/build/src/cds/cds_lexer.js");
54838
54996
  const Expressions = __importStar(__webpack_require__(/*! ./expressions */ "../core/build/src/ddl/expressions/index.js"));
54839
54997
  var DDLKind;
54840
54998
  (function (DDLKind) {
54841
54999
  DDLKind["Structure"] = "structure";
54842
55000
  DDLKind["Table"] = "table";
55001
+ DDLKind["Aspect"] = "aspect";
55002
+ DDLKind["ExtendType"] = "extend-type";
54843
55003
  })(DDLKind || (exports.DDLKind = DDLKind = {}));
54844
55004
  class DDLParser {
54845
55005
  parse(file) {
54846
- const tokens = ddl_lexer_1.DDLLexer.run(file);
55006
+ let tokens = cds_lexer_1.CDSLexer.run(file);
55007
+ tokens = tokens.filter(t => !(t instanceof tokens_1.Comment));
54847
55008
  let res = combi_1.Combi.run(new Expressions.DDLStructure(), tokens, version_1.defaultRelease);
54848
55009
  if (res === undefined) {
54849
55010
  res = combi_1.Combi.run(new Expressions.DDLTable(), tokens, version_1.defaultRelease);
54850
55011
  }
55012
+ if (res === undefined) {
55013
+ res = combi_1.Combi.run(new Expressions.DDLAspect(), tokens, version_1.defaultRelease);
55014
+ }
55015
+ if (res === undefined) {
55016
+ res = combi_1.Combi.run(new Expressions.DDLExtendType(), tokens, version_1.defaultRelease);
55017
+ }
54851
55018
  if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
54852
55019
  return undefined;
54853
55020
  }
54854
55021
  return this.parsedToResult(res[0]);
54855
55022
  }
54856
55023
  parsedToResult(node) {
54857
- var _a, _b;
54858
55024
  const fields = [];
54859
- let found = node.findDirectExpressions(Expressions.DDLStructureField);
54860
- found = found.concat(node.findDirectExpressions(Expressions.DDLTableField));
54861
- found = found.concat(node.findDirectExpressions(Expressions.DDLInclude));
54862
- for (const f of found) {
54863
- const name = ((_a = f.findDirectExpression(Expressions.DDLName)) === null || _a === void 0 ? void 0 : _a.concatTokens()) || "";
54864
- if (f.get() instanceof Expressions.DDLInclude) {
54865
- fields.push({
54866
- name: ".INCLUDE",
54867
- type: name,
54868
- key: false,
54869
- notNull: false,
54870
- });
55025
+ for (const child of node.getChildren()) {
55026
+ if (!(child instanceof nodes_1.ExpressionNode)) {
55027
+ continue;
55028
+ }
55029
+ const expr = child.get();
55030
+ const isField = expr instanceof Expressions.DDLStructureField
55031
+ || expr instanceof Expressions.DDLTableField
55032
+ || expr instanceof Expressions.DDLInclude
55033
+ || expr instanceof Expressions.DDLNamedInclude;
55034
+ if (!isField) {
55035
+ continue;
55036
+ }
55037
+ const key = this.hasKey(child);
55038
+ const notNull = this.hasNotNull(child);
55039
+ if (expr instanceof Expressions.DDLInclude) {
55040
+ const target = this.compactTokens(child.findDirectExpression(Expressions.DDLName));
55041
+ fields.push({ name: ".INCLUDE", type: target, key, notNull });
55042
+ }
55043
+ else if (expr instanceof Expressions.DDLNamedInclude) {
55044
+ const names = child.findDirectExpressions(Expressions.DDLName);
55045
+ const alias = this.compactTokens(names[0]);
55046
+ const target = this.compactTokens(names[1]);
55047
+ fields.push({ name: alias, type: target, key, notNull });
54871
55048
  }
54872
55049
  else {
54873
- const type = ((_b = f.findDirectExpression(Expressions.DDLType)) === null || _b === void 0 ? void 0 : _b.concatTokens()) || "";
54874
- fields.push({
54875
- name,
54876
- type,
54877
- key: false,
54878
- notNull: false,
54879
- });
55050
+ const name = this.compactTokens(child.findDirectExpression(Expressions.DDLName));
55051
+ const type = this.compactTokens(child.findDirectExpression(Expressions.DDLType));
55052
+ fields.push({ name, type, key, notNull });
54880
55053
  }
54881
55054
  }
54882
55055
  const result = {
54883
- name: node.findDirectExpression(Expressions.DDLName).concatTokens(),
54884
- kind: node.get() instanceof Expressions.DDLStructure ? DDLKind.Structure : DDLKind.Table,
55056
+ name: this.compactTokens(node.findDirectExpression(Expressions.DDLName)),
55057
+ kind: this.kindOf(node),
54885
55058
  fields,
54886
55059
  };
54887
55060
  return result;
54888
55061
  }
55062
+ compactTokens(node) {
55063
+ if (node === undefined) {
55064
+ return "";
55065
+ }
55066
+ return node.concatTokens().replace(/\s+/g, "");
55067
+ }
55068
+ hasKey(node) {
55069
+ var _a, _b, _c;
55070
+ for (const c of node.getChildren()) {
55071
+ const expr = (_b = (_a = c).get) === null || _b === void 0 ? void 0 : _b.call(_a);
55072
+ const ctor = (_c = expr === null || expr === void 0 ? void 0 : expr.constructor) === null || _c === void 0 ? void 0 : _c.name;
55073
+ if (ctor === "CDSAnnotation") {
55074
+ continue;
55075
+ }
55076
+ const tok = c.concatTokens().toUpperCase().trim();
55077
+ if (tok === "KEY") {
55078
+ return true;
55079
+ }
55080
+ if (tok !== "") {
55081
+ return false;
55082
+ }
55083
+ }
55084
+ return false;
55085
+ }
55086
+ hasNotNull(node) {
55087
+ var _a, _b, _c, _d;
55088
+ const children = node.getChildren();
55089
+ for (let i = 0; i < children.length - 1; i++) {
55090
+ const a = (_b = (_a = children[i]).concatTokens) === null || _b === void 0 ? void 0 : _b.call(_a).toUpperCase().trim();
55091
+ const b = (_d = (_c = children[i + 1]).concatTokens) === null || _d === void 0 ? void 0 : _d.call(_c).toUpperCase().trim();
55092
+ if (a === "NOT" && b === "NULL") {
55093
+ return true;
55094
+ }
55095
+ }
55096
+ return false;
55097
+ }
55098
+ kindOf(node) {
55099
+ const expr = node.get();
55100
+ if (expr instanceof Expressions.DDLStructure) {
55101
+ return DDLKind.Structure;
55102
+ }
55103
+ if (expr instanceof Expressions.DDLAspect) {
55104
+ return DDLKind.Aspect;
55105
+ }
55106
+ if (expr instanceof Expressions.DDLExtendType) {
55107
+ return DDLKind.ExtendType;
55108
+ }
55109
+ return DDLKind.Table;
55110
+ }
54889
55111
  }
54890
55112
  exports.DDLParser = DDLParser;
54891
55113
  //# sourceMappingURL=ddl_parser.js.map
54892
55114
 
54893
55115
  /***/ },
54894
55116
 
55117
+ /***/ "../core/build/src/ddl/expressions/ddl_aspect.js"
55118
+ /*!*******************************************************!*\
55119
+ !*** ../core/build/src/ddl/expressions/ddl_aspect.js ***!
55120
+ \*******************************************************/
55121
+ (__unused_webpack_module, exports, __webpack_require__) {
55122
+
55123
+ "use strict";
55124
+
55125
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55126
+ exports.DDLAspect = void 0;
55127
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55128
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55129
+ const ddl_extend_1 = __webpack_require__(/*! ./ddl_extend */ "../core/build/src/ddl/expressions/ddl_extend.js");
55130
+ const ddl_include_1 = __webpack_require__(/*! ./ddl_include */ "../core/build/src/ddl/expressions/ddl_include.js");
55131
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55132
+ const ddl_named_include_1 = __webpack_require__(/*! ./ddl_named_include */ "../core/build/src/ddl/expressions/ddl_named_include.js");
55133
+ const ddl_table_field_1 = __webpack_require__(/*! ./ddl_table_field */ "../core/build/src/ddl/expressions/ddl_table_field.js");
55134
+ class DDLAspect extends combi_1.Expression {
55135
+ getRunnable() {
55136
+ const entry = (0, combi_1.altPrio)(ddl_named_include_1.DDLNamedInclude, ddl_include_1.DDLInclude, ddl_table_field_1.DDLTableField, ddl_extend_1.DDLExtend);
55137
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), "DEFINE", "ASPECT", ddl_name_1.DDLName, "{", (0, combi_1.plusPrio)(entry), "}", (0, combi_1.optPrio)(";"));
55138
+ }
55139
+ }
55140
+ exports.DDLAspect = DDLAspect;
55141
+ //# sourceMappingURL=ddl_aspect.js.map
55142
+
55143
+ /***/ },
55144
+
55145
+ /***/ "../core/build/src/ddl/expressions/ddl_clauses.js"
55146
+ /*!********************************************************!*\
55147
+ !*** ../core/build/src/ddl/expressions/ddl_clauses.js ***!
55148
+ \********************************************************/
55149
+ (__unused_webpack_module, exports, __webpack_require__) {
55150
+
55151
+ "use strict";
55152
+
55153
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55154
+ exports.DDLValueHelp = exports.DDLForeignKey = exports.DDLForeignKeyTarget = void 0;
55155
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55156
+ const ddl_literal_1 = __webpack_require__(/*! ./ddl_literal */ "../core/build/src/ddl/expressions/ddl_literal.js");
55157
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55158
+ const ddl_where_1 = __webpack_require__(/*! ./ddl_where */ "../core/build/src/ddl/expressions/ddl_where.js");
55159
+ class DDLForeignKeyTarget extends combi_1.Expression {
55160
+ getRunnable() {
55161
+ const cardinality = (0, combi_1.seq)("[", ddl_literal_1.DDLCardinalityValue, ".", ".", ddl_literal_1.DDLCardinalityValue, (0, combi_1.optPrio)((0, combi_1.seq)(",", ddl_literal_1.DDLCardinalityValue)), "]");
55162
+ return (0, combi_1.seq)((0, combi_1.optPrio)(cardinality), ddl_name_1.DDLName);
55163
+ }
55164
+ }
55165
+ exports.DDLForeignKeyTarget = DDLForeignKeyTarget;
55166
+ class DDLForeignKey extends combi_1.Expression {
55167
+ getRunnable() {
55168
+ return (0, combi_1.seq)("WITH", "FOREIGN", "KEY", DDLForeignKeyTarget, (0, combi_1.optPrio)(ddl_where_1.DDLWhere));
55169
+ }
55170
+ }
55171
+ exports.DDLForeignKey = DDLForeignKey;
55172
+ class DDLValueHelp extends combi_1.Expression {
55173
+ getRunnable() {
55174
+ return (0, combi_1.seq)("WITH", "VALUE", "HELP", ddl_name_1.DDLName, (0, combi_1.optPrio)(ddl_where_1.DDLWhere));
55175
+ }
55176
+ }
55177
+ exports.DDLValueHelp = DDLValueHelp;
55178
+ //# sourceMappingURL=ddl_clauses.js.map
55179
+
55180
+ /***/ },
55181
+
55182
+ /***/ "../core/build/src/ddl/expressions/ddl_extend.js"
55183
+ /*!*******************************************************!*\
55184
+ !*** ../core/build/src/ddl/expressions/ddl_extend.js ***!
55185
+ \*******************************************************/
55186
+ (__unused_webpack_module, exports, __webpack_require__) {
55187
+
55188
+ "use strict";
55189
+
55190
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55191
+ exports.DDLExtend = void 0;
55192
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55193
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55194
+ const ddl_clauses_1 = __webpack_require__(/*! ./ddl_clauses */ "../core/build/src/ddl/expressions/ddl_clauses.js");
55195
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55196
+ class DDLExtend extends combi_1.Expression {
55197
+ getRunnable() {
55198
+ const clause = (0, combi_1.alt)(ddl_clauses_1.DDLForeignKey, ddl_clauses_1.DDLValueHelp);
55199
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), "EXTEND", ddl_name_1.DDLName, ":", (0, combi_1.plus)(clause), ";");
55200
+ }
55201
+ }
55202
+ exports.DDLExtend = DDLExtend;
55203
+ //# sourceMappingURL=ddl_extend.js.map
55204
+
55205
+ /***/ },
55206
+
55207
+ /***/ "../core/build/src/ddl/expressions/ddl_extend_type.js"
55208
+ /*!************************************************************!*\
55209
+ !*** ../core/build/src/ddl/expressions/ddl_extend_type.js ***!
55210
+ \************************************************************/
55211
+ (__unused_webpack_module, exports, __webpack_require__) {
55212
+
55213
+ "use strict";
55214
+
55215
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55216
+ exports.DDLExtendType = void 0;
55217
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55218
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55219
+ const ddl_include_1 = __webpack_require__(/*! ./ddl_include */ "../core/build/src/ddl/expressions/ddl_include.js");
55220
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55221
+ const ddl_named_include_1 = __webpack_require__(/*! ./ddl_named_include */ "../core/build/src/ddl/expressions/ddl_named_include.js");
55222
+ const ddl_structure_field_1 = __webpack_require__(/*! ./ddl_structure_field */ "../core/build/src/ddl/expressions/ddl_structure_field.js");
55223
+ const ddl_table_field_1 = __webpack_require__(/*! ./ddl_table_field */ "../core/build/src/ddl/expressions/ddl_table_field.js");
55224
+ class DDLExtendType extends combi_1.Expression {
55225
+ getRunnable() {
55226
+ const entry = (0, combi_1.altPrio)(ddl_named_include_1.DDLNamedInclude, ddl_include_1.DDLInclude, ddl_table_field_1.DDLTableField, ddl_structure_field_1.DDLStructureField);
55227
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), "EXTEND", "TYPE", ddl_name_1.DDLName, "WITH", ddl_name_1.DDLName, "{", (0, combi_1.plusPrio)(entry), "}", (0, combi_1.optPrio)(";"));
55228
+ }
55229
+ }
55230
+ exports.DDLExtendType = DDLExtendType;
55231
+ //# sourceMappingURL=ddl_extend_type.js.map
55232
+
55233
+ /***/ },
55234
+
54895
55235
  /***/ "../core/build/src/ddl/expressions/ddl_include.js"
54896
55236
  /*!********************************************************!*\
54897
55237
  !*** ../core/build/src/ddl/expressions/ddl_include.js ***!
@@ -54903,10 +55243,13 @@ exports.DDLParser = DDLParser;
54903
55243
  Object.defineProperty(exports, "__esModule", ({ value: true }));
54904
55244
  exports.DDLInclude = void 0;
54905
55245
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55246
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55247
+ const ddl_clauses_1 = __webpack_require__(/*! ./ddl_clauses */ "../core/build/src/ddl/expressions/ddl_clauses.js");
54906
55248
  const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
54907
55249
  class DDLInclude extends combi_1.Expression {
54908
55250
  getRunnable() {
54909
- return (0, combi_1.seq)("INCLUDE", ddl_name_1.DDLName, ";");
55251
+ const trailingClause = (0, combi_1.alt)(ddl_clauses_1.DDLForeignKey, ddl_clauses_1.DDLValueHelp);
55252
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), (0, combi_1.optPrio)("KEY"), "INCLUDE", ddl_name_1.DDLName, (0, combi_1.optPrio)((0, combi_1.seq)("WITH", "SUFFIX", ddl_name_1.DDLName)), (0, combi_1.optPrio)("NOT NULL"), (0, combi_1.star)(trailingClause), ";");
54910
55253
  }
54911
55254
  }
54912
55255
  exports.DDLInclude = DDLInclude;
@@ -54914,6 +55257,34 @@ exports.DDLInclude = DDLInclude;
54914
55257
 
54915
55258
  /***/ },
54916
55259
 
55260
+ /***/ "../core/build/src/ddl/expressions/ddl_literal.js"
55261
+ /*!********************************************************!*\
55262
+ !*** ../core/build/src/ddl/expressions/ddl_literal.js ***!
55263
+ \********************************************************/
55264
+ (__unused_webpack_module, exports, __webpack_require__) {
55265
+
55266
+ "use strict";
55267
+
55268
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55269
+ exports.DDLStringLiteral = exports.DDLCardinalityValue = void 0;
55270
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55271
+ const cds_integer_1 = __webpack_require__(/*! ../../cds/expressions/cds_integer */ "../core/build/src/cds/expressions/cds_integer.js");
55272
+ class DDLCardinalityValue extends combi_1.Expression {
55273
+ getRunnable() {
55274
+ return (0, combi_1.altPrio)(cds_integer_1.CDSInteger, "*");
55275
+ }
55276
+ }
55277
+ exports.DDLCardinalityValue = DDLCardinalityValue;
55278
+ class DDLStringLiteral extends combi_1.Expression {
55279
+ getRunnable() {
55280
+ return (0, combi_1.regex)(/^'[^']*'$/);
55281
+ }
55282
+ }
55283
+ exports.DDLStringLiteral = DDLStringLiteral;
55284
+ //# sourceMappingURL=ddl_literal.js.map
55285
+
55286
+ /***/ },
55287
+
54917
55288
  /***/ "../core/build/src/ddl/expressions/ddl_name.js"
54918
55289
  /*!*****************************************************!*\
54919
55290
  !*** ../core/build/src/ddl/expressions/ddl_name.js ***!
@@ -54925,9 +55296,10 @@ exports.DDLInclude = DDLInclude;
54925
55296
  Object.defineProperty(exports, "__esModule", ({ value: true }));
54926
55297
  exports.DDLName = void 0;
54927
55298
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55299
+ const cds_name_1 = __webpack_require__(/*! ../../cds/expressions/cds_name */ "../core/build/src/cds/expressions/cds_name.js");
54928
55300
  class DDLName extends combi_1.Expression {
54929
55301
  getRunnable() {
54930
- return (0, combi_1.regex)(/^\w+$/);
55302
+ return (0, combi_1.alt)(cds_name_1.CDSName, (0, combi_1.regex)(/^"[^"]*"$/));
54931
55303
  }
54932
55304
  }
54933
55305
  exports.DDLName = DDLName;
@@ -54935,6 +55307,53 @@ exports.DDLName = DDLName;
54935
55307
 
54936
55308
  /***/ },
54937
55309
 
55310
+ /***/ "../core/build/src/ddl/expressions/ddl_named_include.js"
55311
+ /*!**************************************************************!*\
55312
+ !*** ../core/build/src/ddl/expressions/ddl_named_include.js ***!
55313
+ \**************************************************************/
55314
+ (__unused_webpack_module, exports, __webpack_require__) {
55315
+
55316
+ "use strict";
55317
+
55318
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55319
+ exports.DDLNamedInclude = void 0;
55320
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55321
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55322
+ const ddl_clauses_1 = __webpack_require__(/*! ./ddl_clauses */ "../core/build/src/ddl/expressions/ddl_clauses.js");
55323
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55324
+ class DDLNamedInclude extends combi_1.Expression {
55325
+ getRunnable() {
55326
+ const trailingClause = (0, combi_1.alt)(ddl_clauses_1.DDLForeignKey, ddl_clauses_1.DDLValueHelp);
55327
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), (0, combi_1.optPrio)("KEY"), ddl_name_1.DDLName, ":", "INCLUDE", ddl_name_1.DDLName, (0, combi_1.optPrio)((0, combi_1.seq)("WITH", "SUFFIX", ddl_name_1.DDLName)), (0, combi_1.optPrio)("NOT NULL"), (0, combi_1.star)(trailingClause), ";");
55328
+ }
55329
+ }
55330
+ exports.DDLNamedInclude = DDLNamedInclude;
55331
+ //# sourceMappingURL=ddl_named_include.js.map
55332
+
55333
+ /***/ },
55334
+
55335
+ /***/ "../core/build/src/ddl/expressions/ddl_qualified_name.js"
55336
+ /*!***************************************************************!*\
55337
+ !*** ../core/build/src/ddl/expressions/ddl_qualified_name.js ***!
55338
+ \***************************************************************/
55339
+ (__unused_webpack_module, exports, __webpack_require__) {
55340
+
55341
+ "use strict";
55342
+
55343
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55344
+ exports.DDLQualifiedName = void 0;
55345
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55346
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55347
+ class DDLQualifiedName extends combi_1.Expression {
55348
+ getRunnable() {
55349
+ return (0, combi_1.seq)(ddl_name_1.DDLName, (0, combi_1.optPrio)((0, combi_1.seq)(".", ddl_name_1.DDLName)));
55350
+ }
55351
+ }
55352
+ exports.DDLQualifiedName = DDLQualifiedName;
55353
+ //# sourceMappingURL=ddl_qualified_name.js.map
55354
+
55355
+ /***/ },
55356
+
54938
55357
  /***/ "../core/build/src/ddl/expressions/ddl_structure.js"
54939
55358
  /*!**********************************************************!*\
54940
55359
  !*** ../core/build/src/ddl/expressions/ddl_structure.js ***!
@@ -54946,12 +55365,15 @@ exports.DDLName = DDLName;
54946
55365
  Object.defineProperty(exports, "__esModule", ({ value: true }));
54947
55366
  exports.DDLStructure = void 0;
54948
55367
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
54949
- const ddl_structure_field_1 = __webpack_require__(/*! ./ddl_structure_field */ "../core/build/src/ddl/expressions/ddl_structure_field.js");
54950
- const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55368
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
54951
55369
  const ddl_include_1 = __webpack_require__(/*! ./ddl_include */ "../core/build/src/ddl/expressions/ddl_include.js");
55370
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55371
+ const ddl_named_include_1 = __webpack_require__(/*! ./ddl_named_include */ "../core/build/src/ddl/expressions/ddl_named_include.js");
55372
+ const ddl_structure_field_1 = __webpack_require__(/*! ./ddl_structure_field */ "../core/build/src/ddl/expressions/ddl_structure_field.js");
54952
55373
  class DDLStructure extends combi_1.Expression {
54953
55374
  getRunnable() {
54954
- return (0, combi_1.seq)("DEFINE STRUCTURE", ddl_name_1.DDLName, "{", (0, combi_1.plusPrio)((0, combi_1.altPrio)(ddl_structure_field_1.DDLStructureField, ddl_include_1.DDLInclude)), "}");
55375
+ const entry = (0, combi_1.altPrio)(ddl_named_include_1.DDLNamedInclude, ddl_include_1.DDLInclude, ddl_structure_field_1.DDLStructureField);
55376
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), "DEFINE", "STRUCTURE", ddl_name_1.DDLName, "{", (0, combi_1.plusPrio)(entry), "}", (0, combi_1.optPrio)(";"));
54955
55377
  }
54956
55378
  }
54957
55379
  exports.DDLStructure = DDLStructure;
@@ -54970,11 +55392,12 @@ exports.DDLStructure = DDLStructure;
54970
55392
  Object.defineProperty(exports, "__esModule", ({ value: true }));
54971
55393
  exports.DDLStructureField = void 0;
54972
55394
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55395
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
54973
55396
  const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
54974
55397
  const ddl_type_1 = __webpack_require__(/*! ./ddl_type */ "../core/build/src/ddl/expressions/ddl_type.js");
54975
55398
  class DDLStructureField extends combi_1.Expression {
54976
55399
  getRunnable() {
54977
- return (0, combi_1.seq)(ddl_name_1.DDLName, ":", ddl_type_1.DDLType, ";");
55400
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), ddl_name_1.DDLName, ":", ddl_type_1.DDLType, (0, combi_1.optPrio)("NOT NULL"), ";");
54978
55401
  }
54979
55402
  }
54980
55403
  exports.DDLStructureField = DDLStructureField;
@@ -54993,12 +55416,16 @@ exports.DDLStructureField = DDLStructureField;
54993
55416
  Object.defineProperty(exports, "__esModule", ({ value: true }));
54994
55417
  exports.DDLTable = void 0;
54995
55418
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55419
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55420
+ const ddl_extend_1 = __webpack_require__(/*! ./ddl_extend */ "../core/build/src/ddl/expressions/ddl_extend.js");
54996
55421
  const ddl_include_1 = __webpack_require__(/*! ./ddl_include */ "../core/build/src/ddl/expressions/ddl_include.js");
54997
55422
  const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55423
+ const ddl_named_include_1 = __webpack_require__(/*! ./ddl_named_include */ "../core/build/src/ddl/expressions/ddl_named_include.js");
54998
55424
  const ddl_table_field_1 = __webpack_require__(/*! ./ddl_table_field */ "../core/build/src/ddl/expressions/ddl_table_field.js");
54999
55425
  class DDLTable extends combi_1.Expression {
55000
55426
  getRunnable() {
55001
- return (0, combi_1.seq)("DEFINE TABLE", ddl_name_1.DDLName, "{", (0, combi_1.plusPrio)((0, combi_1.altPrio)(ddl_table_field_1.DDLTableField, ddl_include_1.DDLInclude)), "}");
55427
+ const entry = (0, combi_1.altPrio)(ddl_named_include_1.DDLNamedInclude, ddl_include_1.DDLInclude, ddl_table_field_1.DDLTableField, ddl_extend_1.DDLExtend);
55428
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), "DEFINE", "TABLE", ddl_name_1.DDLName, "{", (0, combi_1.plusPrio)(entry), "}", (0, combi_1.optPrio)(";"));
55002
55429
  }
55003
55430
  }
55004
55431
  exports.DDLTable = DDLTable;
@@ -55017,11 +55444,14 @@ exports.DDLTable = DDLTable;
55017
55444
  Object.defineProperty(exports, "__esModule", ({ value: true }));
55018
55445
  exports.DDLTableField = void 0;
55019
55446
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55447
+ const expressions_1 = __webpack_require__(/*! ../../cds/expressions */ "../core/build/src/cds/expressions/index.js");
55448
+ const ddl_clauses_1 = __webpack_require__(/*! ./ddl_clauses */ "../core/build/src/ddl/expressions/ddl_clauses.js");
55020
55449
  const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55021
55450
  const ddl_type_1 = __webpack_require__(/*! ./ddl_type */ "../core/build/src/ddl/expressions/ddl_type.js");
55022
55451
  class DDLTableField extends combi_1.Expression {
55023
55452
  getRunnable() {
55024
- return (0, combi_1.seq)((0, combi_1.optPrio)("KEY"), ddl_name_1.DDLName, ":", ddl_type_1.DDLType, (0, combi_1.optPrio)("NOT NULL"), ";");
55453
+ const trailingClause = (0, combi_1.alt)(ddl_clauses_1.DDLForeignKey, ddl_clauses_1.DDLValueHelp);
55454
+ return (0, combi_1.seq)((0, combi_1.star)(expressions_1.CDSAnnotation), (0, combi_1.optPrio)("KEY"), ddl_name_1.DDLName, ":", ddl_type_1.DDLType, (0, combi_1.optPrio)("NOT NULL"), (0, combi_1.star)(trailingClause), ";");
55025
55455
  }
55026
55456
  }
55027
55457
  exports.DDLTableField = DDLTableField;
@@ -55040,9 +55470,15 @@ exports.DDLTableField = DDLTableField;
55040
55470
  Object.defineProperty(exports, "__esModule", ({ value: true }));
55041
55471
  exports.DDLType = void 0;
55042
55472
  const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55473
+ const cds_integer_1 = __webpack_require__(/*! ../../cds/expressions/cds_integer */ "../core/build/src/cds/expressions/cds_integer.js");
55474
+ const ddl_name_1 = __webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js");
55043
55475
  class DDLType extends combi_1.Expression {
55044
55476
  getRunnable() {
55045
- return (0, combi_1.regex)(/^(abap\.)?\w+(\(\d+\))?$/);
55477
+ const decimals = (0, combi_1.seq)(",", cds_integer_1.CDSInteger);
55478
+ const lenSpec = (0, combi_1.seq)("(", cds_integer_1.CDSInteger, (0, combi_1.optPrio)(decimals), ")");
55479
+ const dotted = (0, combi_1.seq)(ddl_name_1.DDLName, ".", ddl_name_1.DDLName, (0, combi_1.optPrio)(lenSpec));
55480
+ const plain = (0, combi_1.seq)(ddl_name_1.DDLName, (0, combi_1.optPrio)(lenSpec));
55481
+ return (0, combi_1.altPrio)(dotted, plain);
55046
55482
  }
55047
55483
  }
55048
55484
  exports.DDLType = DDLType;
@@ -55050,6 +55486,31 @@ exports.DDLType = DDLType;
55050
55486
 
55051
55487
  /***/ },
55052
55488
 
55489
+ /***/ "../core/build/src/ddl/expressions/ddl_where.js"
55490
+ /*!******************************************************!*\
55491
+ !*** ../core/build/src/ddl/expressions/ddl_where.js ***!
55492
+ \******************************************************/
55493
+ (__unused_webpack_module, exports, __webpack_require__) {
55494
+
55495
+ "use strict";
55496
+
55497
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
55498
+ exports.DDLWhere = void 0;
55499
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
55500
+ const ddl_qualified_name_1 = __webpack_require__(/*! ./ddl_qualified_name */ "../core/build/src/ddl/expressions/ddl_qualified_name.js");
55501
+ const ddl_literal_1 = __webpack_require__(/*! ./ddl_literal */ "../core/build/src/ddl/expressions/ddl_literal.js");
55502
+ class DDLWhere extends combi_1.Expression {
55503
+ getRunnable() {
55504
+ const value = (0, combi_1.alt)(ddl_qualified_name_1.DDLQualifiedName, ddl_literal_1.DDLStringLiteral);
55505
+ const condition = (0, combi_1.seq)(ddl_qualified_name_1.DDLQualifiedName, "=", value);
55506
+ return (0, combi_1.seq)("WHERE", condition, (0, combi_1.star)((0, combi_1.seq)("AND", condition)));
55507
+ }
55508
+ }
55509
+ exports.DDLWhere = DDLWhere;
55510
+ //# sourceMappingURL=ddl_where.js.map
55511
+
55512
+ /***/ },
55513
+
55053
55514
  /***/ "../core/build/src/ddl/expressions/index.js"
55054
55515
  /*!**************************************************!*\
55055
55516
  !*** ../core/build/src/ddl/expressions/index.js ***!
@@ -55073,13 +55534,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
55073
55534
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
55074
55535
  };
55075
55536
  Object.defineProperty(exports, "__esModule", ({ value: true }));
55537
+ __exportStar(__webpack_require__(/*! ./ddl_aspect */ "../core/build/src/ddl/expressions/ddl_aspect.js"), exports);
55538
+ __exportStar(__webpack_require__(/*! ./ddl_clauses */ "../core/build/src/ddl/expressions/ddl_clauses.js"), exports);
55539
+ __exportStar(__webpack_require__(/*! ./ddl_extend */ "../core/build/src/ddl/expressions/ddl_extend.js"), exports);
55540
+ __exportStar(__webpack_require__(/*! ./ddl_extend_type */ "../core/build/src/ddl/expressions/ddl_extend_type.js"), exports);
55076
55541
  __exportStar(__webpack_require__(/*! ./ddl_include */ "../core/build/src/ddl/expressions/ddl_include.js"), exports);
55542
+ __exportStar(__webpack_require__(/*! ./ddl_literal */ "../core/build/src/ddl/expressions/ddl_literal.js"), exports);
55077
55543
  __exportStar(__webpack_require__(/*! ./ddl_name */ "../core/build/src/ddl/expressions/ddl_name.js"), exports);
55544
+ __exportStar(__webpack_require__(/*! ./ddl_named_include */ "../core/build/src/ddl/expressions/ddl_named_include.js"), exports);
55545
+ __exportStar(__webpack_require__(/*! ./ddl_qualified_name */ "../core/build/src/ddl/expressions/ddl_qualified_name.js"), exports);
55078
55546
  __exportStar(__webpack_require__(/*! ./ddl_structure_field */ "../core/build/src/ddl/expressions/ddl_structure_field.js"), exports);
55079
55547
  __exportStar(__webpack_require__(/*! ./ddl_structure */ "../core/build/src/ddl/expressions/ddl_structure.js"), exports);
55080
55548
  __exportStar(__webpack_require__(/*! ./ddl_table_field */ "../core/build/src/ddl/expressions/ddl_table_field.js"), exports);
55081
55549
  __exportStar(__webpack_require__(/*! ./ddl_table */ "../core/build/src/ddl/expressions/ddl_table.js"), exports);
55082
55550
  __exportStar(__webpack_require__(/*! ./ddl_type */ "../core/build/src/ddl/expressions/ddl_type.js"), exports);
55551
+ __exportStar(__webpack_require__(/*! ./ddl_where */ "../core/build/src/ddl/expressions/ddl_where.js"), exports);
55083
55552
  //# sourceMappingURL=index.js.map
55084
55553
 
55085
55554
  /***/ },
@@ -55471,8 +55940,8 @@ var __importStar = (this && this.__importStar) || (function () {
55471
55940
  };
55472
55941
  })();
55473
55942
  Object.defineProperty(exports, "__esModule", ({ value: true }));
55474
- exports.SyntaxLogic = exports.ABAPObject = exports.Tokens = exports.ExpressionsCDS = exports.CDSParser = exports.LanguageServerTypes = exports.DDLParser = exports.AbstractFile = exports.ABAPFile = exports.MemoryFile = exports.Edits = exports.ReferenceType = exports.NativeSQL = exports.MacroContent = exports.MacroCall = exports.SpaghettiScopeNode = exports.Token = exports.ScopeType = exports.BasicTypes = exports.TypedIdentifier = exports.AbstractType = exports.VirtualPosition = exports.Comment = exports.Unknown = exports.Empty = exports.Identifier = exports.Nodes = exports.Types = exports.Expressions = exports.Statements = exports.Structures = exports.SkipLogic = exports.Objects = exports.ArtifactsRules = exports.ArtifactsObjects = exports.ArtifactsABAP = exports.BuiltIn = exports.FormLengthStats = exports.FunctionLengthStats = exports.MethodLengthStats = exports.LanguageServer = exports.Registry = exports.CyclomaticComplexityStats = exports.versionToABAPRelease = exports.releaseAtLeast = exports.Release = exports.LanguageVersion = exports.Version = exports.Config = exports.Issue = void 0;
55475
- exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = exports.Rename = exports.PrettyPrinter = exports.Position = exports.CurrentScope = exports.RulesRunner = exports.SpaghettiScope = void 0;
55943
+ exports.ABAPObject = exports.Tokens = exports.ExpressionsCDS = exports.CDSParser = exports.LanguageServerTypes = exports.DDLKind = exports.DDLParser = exports.AbstractFile = exports.ABAPFile = exports.MemoryFile = exports.Edits = exports.ReferenceType = exports.NativeSQL = exports.MacroContent = exports.MacroCall = exports.SpaghettiScopeNode = exports.Token = exports.ScopeType = exports.BasicTypes = exports.TypedIdentifier = exports.AbstractType = exports.VirtualPosition = exports.Comment = exports.Unknown = exports.Empty = exports.Identifier = exports.Nodes = exports.Types = exports.Expressions = exports.Statements = exports.Structures = exports.SkipLogic = exports.Objects = exports.ArtifactsRules = exports.ArtifactsObjects = exports.ArtifactsABAP = exports.BuiltIn = exports.FormLengthStats = exports.FunctionLengthStats = exports.MethodLengthStats = exports.LanguageServer = exports.Registry = exports.CyclomaticComplexityStats = exports.versionToABAPRelease = exports.releaseAtLeast = exports.Release = exports.LanguageVersion = exports.Version = exports.Config = exports.Issue = void 0;
55944
+ exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = exports.Rename = exports.PrettyPrinter = exports.Position = exports.CurrentScope = exports.RulesRunner = exports.SpaghettiScope = exports.SyntaxLogic = void 0;
55476
55945
  const issue_1 = __webpack_require__(/*! ./issue */ "../core/build/src/issue.js");
55477
55946
  Object.defineProperty(exports, "Issue", ({ enumerable: true, get: function () { return issue_1.Issue; } }));
55478
55947
  const config_1 = __webpack_require__(/*! ./config */ "../core/build/src/config.js");
@@ -55566,6 +56035,7 @@ const severity_1 = __webpack_require__(/*! ./severity */ "../core/build/src/seve
55566
56035
  Object.defineProperty(exports, "Severity", ({ enumerable: true, get: function () { return severity_1.Severity; } }));
55567
56036
  const ddl_parser_1 = __webpack_require__(/*! ./ddl/ddl_parser */ "../core/build/src/ddl/ddl_parser.js");
55568
56037
  Object.defineProperty(exports, "DDLParser", ({ enumerable: true, get: function () { return ddl_parser_1.DDLParser; } }));
56038
+ Object.defineProperty(exports, "DDLKind", ({ enumerable: true, get: function () { return ddl_parser_1.DDLKind; } }));
55569
56039
  const cds_parser_1 = __webpack_require__(/*! ./cds/cds_parser */ "../core/build/src/cds/cds_parser.js");
55570
56040
  Object.defineProperty(exports, "CDSParser", ({ enumerable: true, get: function () { return cds_parser_1.CDSParser; } }));
55571
56041
  const rules_runner_1 = __webpack_require__(/*! ./rules_runner */ "../core/build/src/rules_runner.js");
@@ -60704,6 +61174,13 @@ class DataDefinition extends _abstract_object_1.AbstractObject {
60704
61174
  }
60705
61175
  }
60706
61176
  }
61177
+ if (found === undefined) {
61178
+ // typed virtual element: VIRTUAL <name> : <type>
61179
+ const names = e.findAllExpressions(expressions_1.CDSName);
61180
+ if (e.findDirectTokenByText("VIRTUAL") !== undefined && names.length > 0) {
61181
+ found = names[0];
61182
+ }
61183
+ }
60707
61184
  if (found === undefined) {
60708
61185
  continue;
60709
61186
  }
@@ -67992,7 +68469,7 @@ class Registry {
67992
68469
  }
67993
68470
  static abaplintVersion() {
67994
68471
  // magic, see build script "version.js"
67995
- return "2.119.53";
68472
+ return "2.119.55";
67996
68473
  }
67997
68474
  getDDICReferences() {
67998
68475
  return this.ddicReferences;