@abaplint/transpiler-cli 2.11.8 → 2.11.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle.js +276 -63
- package/package.json +3 -3
package/build/bundle.js
CHANGED
|
@@ -4817,10 +4817,12 @@ __exportStar(__webpack_require__(/*! ./lob_handle */ "./node_modules/@abaplint/c
|
|
|
4817
4817
|
__exportStar(__webpack_require__(/*! ./loop_group_by_component */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by_component.js"), exports);
|
|
4818
4818
|
__exportStar(__webpack_require__(/*! ./loop_group_by_target */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by_target.js"), exports);
|
|
4819
4819
|
__exportStar(__webpack_require__(/*! ./loop_group_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by.js"), exports);
|
|
4820
|
+
__exportStar(__webpack_require__(/*! ./loop_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_source.js"), exports);
|
|
4820
4821
|
__exportStar(__webpack_require__(/*! ./loop_target */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_target.js"), exports);
|
|
4821
4822
|
__exportStar(__webpack_require__(/*! ./macro_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/macro_name.js"), exports);
|
|
4822
4823
|
__exportStar(__webpack_require__(/*! ./message_class */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_class.js"), exports);
|
|
4823
4824
|
__exportStar(__webpack_require__(/*! ./message_number */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_number.js"), exports);
|
|
4825
|
+
__exportStar(__webpack_require__(/*! ./message_source_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_source_source.js"), exports);
|
|
4824
4826
|
__exportStar(__webpack_require__(/*! ./message_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_source.js"), exports);
|
|
4825
4827
|
__exportStar(__webpack_require__(/*! ./message_type_and_number */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_type_and_number.js"), exports);
|
|
4826
4828
|
__exportStar(__webpack_require__(/*! ./method_call_body */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/method_call_body.js"), exports);
|
|
@@ -4855,6 +4857,7 @@ __exportStar(__webpack_require__(/*! ./pass_by_value */ "./node_modules/@abaplin
|
|
|
4855
4857
|
__exportStar(__webpack_require__(/*! ./perform_changing */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/perform_changing.js"), exports);
|
|
4856
4858
|
__exportStar(__webpack_require__(/*! ./perform_tables */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/perform_tables.js"), exports);
|
|
4857
4859
|
__exportStar(__webpack_require__(/*! ./perform_using */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/perform_using.js"), exports);
|
|
4860
|
+
__exportStar(__webpack_require__(/*! ./provide_field_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/provide_field_name.js"), exports);
|
|
4858
4861
|
__exportStar(__webpack_require__(/*! ./radio_group_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/radio_group_name.js"), exports);
|
|
4859
4862
|
__exportStar(__webpack_require__(/*! ./raise_with */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/raise_with.js"), exports);
|
|
4860
4863
|
__exportStar(__webpack_require__(/*! ./read_table_target */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/read_table_target.js"), exports);
|
|
@@ -4898,7 +4901,6 @@ __exportStar(__webpack_require__(/*! ./sql_fields */ "./node_modules/@abaplint/c
|
|
|
4898
4901
|
__exportStar(__webpack_require__(/*! ./sql_for_all_entries */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_for_all_entries.js"), exports);
|
|
4899
4902
|
__exportStar(__webpack_require__(/*! ./sql_from_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_from_source.js"), exports);
|
|
4900
4903
|
__exportStar(__webpack_require__(/*! ./sql_from */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_from.js"), exports);
|
|
4901
|
-
__exportStar(__webpack_require__(/*! ./provide_field_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/provide_field_name.js"), exports);
|
|
4902
4904
|
__exportStar(__webpack_require__(/*! ./sql_function_input */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function_input.js"), exports);
|
|
4903
4905
|
__exportStar(__webpack_require__(/*! ./sql_function */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function.js"), exports);
|
|
4904
4906
|
__exportStar(__webpack_require__(/*! ./sql_group_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_group_by.js"), exports);
|
|
@@ -5305,6 +5307,29 @@ exports.LoopGroupByTarget = LoopGroupByTarget;
|
|
|
5305
5307
|
|
|
5306
5308
|
/***/ }),
|
|
5307
5309
|
|
|
5310
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_source.js":
|
|
5311
|
+
/*!********************************************************************************************!*\
|
|
5312
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_source.js ***!
|
|
5313
|
+
\********************************************************************************************/
|
|
5314
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
5315
|
+
|
|
5316
|
+
"use strict";
|
|
5317
|
+
|
|
5318
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
5319
|
+
exports.LoopSource = void 0;
|
|
5320
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
5321
|
+
const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
5322
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
5323
|
+
class LoopSource extends combi_1.Expression {
|
|
5324
|
+
getRunnable() {
|
|
5325
|
+
return (0, combi_1.alt)(_1.SimpleSource2, (0, combi_1.ver)(version_1.Version.v740sp02, _1.Source, version_1.Version.OpenABAP));
|
|
5326
|
+
}
|
|
5327
|
+
}
|
|
5328
|
+
exports.LoopSource = LoopSource;
|
|
5329
|
+
//# sourceMappingURL=loop_source.js.map
|
|
5330
|
+
|
|
5331
|
+
/***/ }),
|
|
5332
|
+
|
|
5308
5333
|
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_target.js":
|
|
5309
5334
|
/*!********************************************************************************************!*\
|
|
5310
5335
|
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_target.js ***!
|
|
@@ -5423,6 +5448,29 @@ exports.MessageSource = MessageSource;
|
|
|
5423
5448
|
|
|
5424
5449
|
/***/ }),
|
|
5425
5450
|
|
|
5451
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_source_source.js":
|
|
5452
|
+
/*!******************************************************************************************************!*\
|
|
5453
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_source_source.js ***!
|
|
5454
|
+
\******************************************************************************************************/
|
|
5455
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
5456
|
+
|
|
5457
|
+
"use strict";
|
|
5458
|
+
|
|
5459
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
5460
|
+
exports.MessageSourceSource = void 0;
|
|
5461
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
5462
|
+
const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
5463
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
5464
|
+
class MessageSourceSource extends combi_1.Expression {
|
|
5465
|
+
getRunnable() {
|
|
5466
|
+
return (0, combi_1.alt)((0, combi_1.ver)(version_1.Version.v740sp02, _1.Source, version_1.Version.OpenABAP), _1.SimpleSource3);
|
|
5467
|
+
}
|
|
5468
|
+
}
|
|
5469
|
+
exports.MessageSourceSource = MessageSourceSource;
|
|
5470
|
+
//# sourceMappingURL=message_source_source.js.map
|
|
5471
|
+
|
|
5472
|
+
/***/ }),
|
|
5473
|
+
|
|
5426
5474
|
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_type_and_number.js":
|
|
5427
5475
|
/*!********************************************************************************************************!*\
|
|
5428
5476
|
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/message_type_and_number.js ***!
|
|
@@ -6741,11 +6789,11 @@ class Source extends combi_1.Expression {
|
|
|
6741
6789
|
const prefix = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WPlus), "BIT-NOT");
|
|
6742
6790
|
const old = (0, combi_1.seq)((0, combi_1.optPrio)(prefix), (0, combi_1.altPrio)(_1.Constant, _1.StringTemplate, text_element_1.TextElement, bool, method, (0, combi_1.seq)(_1.FieldChain, deref), paren), (0, combi_1.optPrio)(after));
|
|
6743
6791
|
const corr = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("CORRESPONDING", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.CorrespondingBody, rparen, (0, combi_1.optPrio)(after)));
|
|
6744
|
-
const conv = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("CONV", _1.TypeNameOrInfer, lparenNoSpace, _1.ConvBody, rparenNoSpace, (0, combi_1.optPrio)(after)));
|
|
6792
|
+
const conv = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("CONV", _1.TypeNameOrInfer, lparenNoSpace, _1.ConvBody, rparenNoSpace, (0, combi_1.optPrio)(after)), version_1.Version.OpenABAP);
|
|
6745
6793
|
const swit = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("SWITCH", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.SwitchBody, rparenNoSpace, (0, combi_1.optPrio)(after)));
|
|
6746
6794
|
const value = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("VALUE", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.ValueBody, rparenNoSpace, (0, combi_1.optPrio)(after)));
|
|
6747
6795
|
const cond = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("COND", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.CondBody, rparenNoSpace, (0, combi_1.optPrio)(after)));
|
|
6748
|
-
const reff = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("REF", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), Source, (0, combi_1.optPrio)("OPTIONAL"), rparen));
|
|
6796
|
+
const reff = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("REF", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), Source, (0, combi_1.optPrio)("OPTIONAL"), rparen), version_1.Version.OpenABAP);
|
|
6749
6797
|
const exact = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("EXACT", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), Source, rparen, (0, combi_1.optPrio)(after)));
|
|
6750
6798
|
const filter = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("FILTER", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.FilterBody, rparen));
|
|
6751
6799
|
const reduce = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("REDUCE", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.ReduceBody, rparen, (0, combi_1.optPrio)(after)));
|
|
@@ -8445,7 +8493,7 @@ class TypeTableKey extends combi_1.Expression {
|
|
|
8445
8493
|
getRunnable() {
|
|
8446
8494
|
const uniqueness = (0, combi_1.alt)("NON-UNIQUE", "UNIQUE");
|
|
8447
8495
|
const defaultKey = "DEFAULT KEY";
|
|
8448
|
-
const emptyKey = (0, combi_1.ver)(version_1.Version.v740sp02, "EMPTY KEY");
|
|
8496
|
+
const emptyKey = (0, combi_1.ver)(version_1.Version.v740sp02, "EMPTY KEY", version_1.Version.OpenABAP);
|
|
8449
8497
|
const components = (0, combi_1.plus)((0, combi_1.alt)((0, combi_1.seq)("WITH", (0, combi_1.failStar)()), _1.FieldSub));
|
|
8450
8498
|
const further = (0, combi_1.seq)((0, combi_1.alt)("WITHOUT", "WITH"), "FURTHER SECONDARY KEYS");
|
|
8451
8499
|
const alias = (0, combi_1.seq)("ALIAS", _1.Field);
|
|
@@ -13791,7 +13839,6 @@ exports.Loop = void 0;
|
|
|
13791
13839
|
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
13792
13840
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
13793
13841
|
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
13794
|
-
const simple_source2_1 = __webpack_require__(/*! ../expressions/simple_source2 */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/simple_source2.js");
|
|
13795
13842
|
const loop_group_by_1 = __webpack_require__(/*! ../expressions/loop_group_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by.js");
|
|
13796
13843
|
class Loop {
|
|
13797
13844
|
getMatcher() {
|
|
@@ -13802,7 +13849,7 @@ class Loop {
|
|
|
13802
13849
|
const to = (0, combi_1.seq)("TO", expressions_1.Source);
|
|
13803
13850
|
const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
|
|
13804
13851
|
const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group, step);
|
|
13805
|
-
const at = (0, combi_1.seq)("AT", (0, combi_1.opt)((0, combi_1.seq)("SCREEN", (0, combi_1.failCombinator)())), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp08, "GROUP")),
|
|
13852
|
+
const at = (0, combi_1.seq)("AT", (0, combi_1.opt)((0, combi_1.seq)("SCREEN", (0, combi_1.failCombinator)())), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp08, "GROUP")), expressions_1.LoopSource, (0, combi_1.opt)(options));
|
|
13806
13853
|
return (0, combi_1.seq)("LOOP", (0, combi_1.opt)(at));
|
|
13807
13854
|
}
|
|
13808
13855
|
}
|
|
@@ -13850,17 +13897,16 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/
|
|
|
13850
13897
|
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
13851
13898
|
class Message {
|
|
13852
13899
|
getMatcher() {
|
|
13853
|
-
const s = (0, combi_1.alt)((0, combi_1.ver)(version_1.Version.v740sp02, expressions_1.Source), expressions_1.SimpleSource3);
|
|
13854
13900
|
const like = (0, combi_1.seq)("DISPLAY LIKE", expressions_1.Source);
|
|
13855
13901
|
const into = (0, combi_1.seq)("INTO", expressions_1.Target);
|
|
13856
13902
|
const raising = (0, combi_1.seq)("RAISING", expressions_1.ExceptionName);
|
|
13857
13903
|
const options = (0, combi_1.per)(like, into, raising);
|
|
13858
13904
|
const type = (0, combi_1.seq)("TYPE", expressions_1.Source);
|
|
13859
|
-
const sou = (0, combi_1.altPrio)(options,
|
|
13860
|
-
const sourc = (0, combi_1.alt)(sou, (0, combi_1.seq)(
|
|
13861
|
-
const mwith = (0, combi_1.seq)("WITH",
|
|
13905
|
+
const sou = (0, combi_1.altPrio)(options, expressions_1.MessageSourceSource);
|
|
13906
|
+
const sourc = (0, combi_1.alt)(sou, (0, combi_1.seq)(expressions_1.MessageSourceSource, sou), (0, combi_1.seq)(expressions_1.MessageSourceSource, expressions_1.MessageSourceSource, sou), (0, combi_1.seq)(expressions_1.MessageSourceSource, expressions_1.MessageSourceSource, expressions_1.MessageSourceSource, options));
|
|
13907
|
+
const mwith = (0, combi_1.seq)("WITH", expressions_1.MessageSourceSource, (0, combi_1.opt)(sourc));
|
|
13862
13908
|
const foo = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.opt)(options), (0, combi_1.opt)(mwith));
|
|
13863
|
-
const text = (0, combi_1.seq)(
|
|
13909
|
+
const text = (0, combi_1.seq)(expressions_1.MessageSourceSource, type, (0, combi_1.optPrio)(like), (0, combi_1.optPrio)(raising));
|
|
13864
13910
|
const cloud1 = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))), (0, combi_1.altPrio)(into, raising));
|
|
13865
13911
|
const cloud2 = (0, combi_1.seq)((0, combi_1.altPrio)(into, raising), (0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))));
|
|
13866
13912
|
const cloud = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.alt)(cloud1, cloud2));
|
|
@@ -14136,7 +14182,7 @@ class Move {
|
|
|
14136
14182
|
getMatcher() {
|
|
14137
14183
|
const mov = (0, combi_1.verNot)(version_1.Version.Cloud, "MOVE");
|
|
14138
14184
|
const move = (0, combi_1.seq)(mov, (0, combi_1.altPrio)((0, combi_1.seq)("EXACT", expressions_1.Source, "TO", expressions_1.Target), (0, combi_1.seq)(expressions_1.Source, (0, combi_1.altPrio)("?TO", "TO"), expressions_1.Target)), (0, combi_1.opt)((0, combi_1.seq)("PERCENTAGE", expressions_1.Source, (0, combi_1.opt)((0, combi_1.alt)("LEFT", "RIGHT")))));
|
|
14139
|
-
const calcAssign = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), "="), (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WDash), "="), "/=", "*=", "&&="));
|
|
14185
|
+
const calcAssign = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), "="), (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WDash), "="), "/=", "*=", "&&="), version_1.Version.OpenABAP);
|
|
14140
14186
|
const chained = (0, combi_1.seq)("=", (0, combi_1.star)((0, combi_1.seq)(expressions_1.Target, "=")));
|
|
14141
14187
|
const equals = (0, combi_1.altPrio)((0, combi_1.altPrio)(chained, "?="), calcAssign);
|
|
14142
14188
|
// todo, move "?=" to CAST?
|
|
@@ -31326,6 +31372,7 @@ const loop_group_by_1 = __webpack_require__(/*! ../expressions/loop_group_by */
|
|
|
31326
31372
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
31327
31373
|
class Loop {
|
|
31328
31374
|
runSyntax(node, input) {
|
|
31375
|
+
var _a;
|
|
31329
31376
|
const loopTarget = node.findDirectExpression(Expressions.LoopTarget);
|
|
31330
31377
|
let target = loopTarget === null || loopTarget === void 0 ? void 0 : loopTarget.findDirectExpression(Expressions.Target);
|
|
31331
31378
|
const targetType = target ? target_1.Target.runSyntax(target, input) : undefined;
|
|
@@ -31334,7 +31381,7 @@ class Loop {
|
|
|
31334
31381
|
}
|
|
31335
31382
|
const write = (loopTarget === null || loopTarget === void 0 ? void 0 : loopTarget.findDirectTokenByText("ASSIGNING")) !== undefined;
|
|
31336
31383
|
const sources = node.findDirectExpressions(Expressions.Source);
|
|
31337
|
-
let firstSource = node.findDirectExpression(Expressions.
|
|
31384
|
+
let firstSource = (_a = node.findDirectExpression(Expressions.LoopSource)) === null || _a === void 0 ? void 0 : _a.getFirstChild();
|
|
31338
31385
|
if (firstSource === undefined) {
|
|
31339
31386
|
firstSource = sources[0];
|
|
31340
31387
|
}
|
|
@@ -31483,6 +31530,14 @@ class Message {
|
|
|
31483
31530
|
else if (found) {
|
|
31484
31531
|
target_1.Target.runSyntax(found, input);
|
|
31485
31532
|
}
|
|
31533
|
+
for (const mss of node.findDirectExpressions(Expressions.MessageSourceSource)) {
|
|
31534
|
+
for (const s of mss.findDirectExpressions(Expressions.Source)) {
|
|
31535
|
+
source_1.Source.runSyntax(s, input);
|
|
31536
|
+
}
|
|
31537
|
+
for (const s of mss.findDirectExpressions(Expressions.SimpleSource3)) {
|
|
31538
|
+
source_1.Source.runSyntax(s, input);
|
|
31539
|
+
}
|
|
31540
|
+
}
|
|
31486
31541
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
31487
31542
|
source_1.Source.runSyntax(s, input);
|
|
31488
31543
|
}
|
|
@@ -53606,7 +53661,7 @@ class Registry {
|
|
|
53606
53661
|
}
|
|
53607
53662
|
static abaplintVersion() {
|
|
53608
53663
|
// magic, see build script "version.sh"
|
|
53609
|
-
return "2.113.
|
|
53664
|
+
return "2.113.155";
|
|
53610
53665
|
}
|
|
53611
53666
|
getDDICReferences() {
|
|
53612
53667
|
return this.ddicReferences;
|
|
@@ -59625,11 +59680,14 @@ ${indentation}${uniqueName} = ${source.concatTokens()}.\n${indentation}`);
|
|
|
59625
59680
|
return undefined;
|
|
59626
59681
|
}
|
|
59627
59682
|
downportMessageSource(high, lowFile, highSyntax) {
|
|
59683
|
+
var _a;
|
|
59628
59684
|
if (!(high.get() instanceof Statements.Message)) {
|
|
59629
59685
|
return undefined;
|
|
59630
59686
|
}
|
|
59631
59687
|
const source = high.findExpressionAfterToken("MESSAGE");
|
|
59632
|
-
if ((source === null || source === void 0 ? void 0 : source.get()) instanceof Expressions.
|
|
59688
|
+
if ((source === null || source === void 0 ? void 0 : source.get()) instanceof Expressions.MessageSourceSource
|
|
59689
|
+
&& ((_a = source.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.Source) {
|
|
59690
|
+
;
|
|
59633
59691
|
const uniqueName = this.uniqueName(high.getFirstToken().getStart(), lowFile.getFilename(), highSyntax);
|
|
59634
59692
|
const indentation = " ".repeat(high.getFirstToken().getStart().getCol() - 1);
|
|
59635
59693
|
const firstToken = high.getFirstToken();
|
|
@@ -59944,7 +60002,7 @@ ${indentation}${uniqueName2}->if_t100_message~t100key = ${uniqueName1}.\n`;
|
|
|
59944
60002
|
}
|
|
59945
60003
|
abap += `${indentation}RAISE EXCEPTION ${uniqueName2}.`;
|
|
59946
60004
|
const fix = edit_helper_1.EditHelper.replaceRange(lowFile, node.getStart(), node.getEnd(), abap);
|
|
59947
|
-
return issue_1.Issue.atToken(lowFile, startToken, "Downport RAISE MESSAGE", this.getMetadata().key, this.conf.severity, fix);
|
|
60005
|
+
return issue_1.Issue.atToken(lowFile, startToken, "Downport RAISE EXCEPTION MESSAGE", this.getMetadata().key, this.conf.severity, fix);
|
|
59948
60006
|
}
|
|
59949
60007
|
emptyKey(low, node, lowFile) {
|
|
59950
60008
|
if (!(low.get() instanceof _statement_1.Unknown)) {
|
|
@@ -60488,17 +60546,18 @@ ${indentation} output = ${uniqueName}.\n`;
|
|
|
60488
60546
|
return undefined;
|
|
60489
60547
|
}
|
|
60490
60548
|
outlineLoopInput(low, high, lowFile, highSyntax) {
|
|
60549
|
+
var _a, _b;
|
|
60491
60550
|
if (!(low.get() instanceof _statement_1.Unknown)) {
|
|
60492
60551
|
return undefined;
|
|
60493
60552
|
}
|
|
60494
60553
|
else if (!(high.get() instanceof Statements.Loop)) {
|
|
60495
60554
|
return undefined;
|
|
60496
60555
|
}
|
|
60497
|
-
else if (high.findDirectExpression(Expressions.SimpleSource2)) {
|
|
60556
|
+
else if ((_a = high.findDirectExpression(Expressions.LoopSource)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(Expressions.SimpleSource2)) {
|
|
60498
60557
|
return undefined;
|
|
60499
60558
|
}
|
|
60500
60559
|
// the first Source must be outlined
|
|
60501
|
-
const s = high.findDirectExpression(Expressions.Source);
|
|
60560
|
+
const s = (_b = high.findDirectExpression(Expressions.LoopSource)) === null || _b === void 0 ? void 0 : _b.findDirectExpression(Expressions.Source);
|
|
60502
60561
|
if (s === undefined) {
|
|
60503
60562
|
return undefined;
|
|
60504
60563
|
}
|
|
@@ -60511,12 +60570,12 @@ ${indentation} output = ${uniqueName}.\n`;
|
|
|
60511
60570
|
return issue_1.Issue.atToken(lowFile, high.getFirstToken(), "Outline LOOP input", this.getMetadata().key, this.conf.severity, fix);
|
|
60512
60571
|
}
|
|
60513
60572
|
outlineLoopTarget(node, lowFile, highSyntax) {
|
|
60514
|
-
var _a, _b, _c, _d, _e, _f;
|
|
60573
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
60515
60574
|
// also allows outlining of voided types
|
|
60516
60575
|
if (!(node.get() instanceof Statements.Loop)) {
|
|
60517
60576
|
return undefined;
|
|
60518
60577
|
}
|
|
60519
|
-
const source = node.findDirectExpression(Expressions.SimpleSource2);
|
|
60578
|
+
const source = (_a = node.findDirectExpression(Expressions.LoopSource)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(Expressions.SimpleSource2);
|
|
60520
60579
|
if (source === undefined) {
|
|
60521
60580
|
return undefined;
|
|
60522
60581
|
}
|
|
@@ -60535,9 +60594,9 @@ ${indentation} output = ${uniqueName}.\n`;
|
|
|
60535
60594
|
}
|
|
60536
60595
|
const isReference = concat.includes(" REFERENCE INTO ");
|
|
60537
60596
|
const indentation = " ".repeat(node.getFirstToken().getStart().getCol() - 1);
|
|
60538
|
-
const dataTarget = (
|
|
60597
|
+
const dataTarget = (_c = (_b = node.findDirectExpression(Expressions.LoopTarget)) === null || _b === void 0 ? void 0 : _b.findDirectExpression(Expressions.Target)) === null || _c === void 0 ? void 0 : _c.findDirectExpression(Expressions.InlineData);
|
|
60539
60598
|
if (dataTarget) {
|
|
60540
|
-
const targetName = ((
|
|
60599
|
+
const targetName = ((_d = dataTarget.findDirectExpression(Expressions.TargetField)) === null || _d === void 0 ? void 0 : _d.concatTokens()) || "DOWNPORT_ERROR";
|
|
60541
60600
|
let code = `DATA ${targetName} LIKE LINE OF ${sourceName}.\n${indentation}`;
|
|
60542
60601
|
if (isReference) {
|
|
60543
60602
|
const likeName = this.uniqueName(node.getFirstToken().getStart(), lowFile.getFilename(), highSyntax);
|
|
@@ -60548,9 +60607,9 @@ ${indentation} output = ${uniqueName}.\n`;
|
|
|
60548
60607
|
const fix = edit_helper_1.EditHelper.merge(fix2, fix1);
|
|
60549
60608
|
return issue_1.Issue.atToken(lowFile, node.getFirstToken(), "Outline LOOP data target", this.getMetadata().key, this.conf.severity, fix);
|
|
60550
60609
|
}
|
|
60551
|
-
const fsTarget = (
|
|
60610
|
+
const fsTarget = (_f = (_e = node.findDirectExpression(Expressions.LoopTarget)) === null || _e === void 0 ? void 0 : _e.findDirectExpression(Expressions.FSTarget)) === null || _f === void 0 ? void 0 : _f.findDirectExpression(Expressions.InlineFS);
|
|
60552
60611
|
if (fsTarget) {
|
|
60553
|
-
const targetName = ((
|
|
60612
|
+
const targetName = ((_g = fsTarget.findDirectExpression(Expressions.TargetFieldSymbol)) === null || _g === void 0 ? void 0 : _g.concatTokens()) || "DOWNPORT_ERROR";
|
|
60554
60613
|
let type = `LIKE LINE OF ${sourceName}`;
|
|
60555
60614
|
const f = foundType === null || foundType === void 0 ? void 0 : foundType.getType();
|
|
60556
60615
|
if (f instanceof basic_1.TableType && f.getRowType() instanceof basic_1.AnyType) {
|
|
@@ -79142,6 +79201,7 @@ __exportStar(__webpack_require__(/*! ./field_offset */ "./node_modules/@abaplint
|
|
|
79142
79201
|
__exportStar(__webpack_require__(/*! ./field_symbol */ "./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js"), exports);
|
|
79143
79202
|
__exportStar(__webpack_require__(/*! ./function_exporting */ "./node_modules/@abaplint/transpiler/build/src/expressions/function_exporting.js"), exports);
|
|
79144
79203
|
__exportStar(__webpack_require__(/*! ./source_field_symbol_chain */ "./node_modules/@abaplint/transpiler/build/src/expressions/source_field_symbol_chain.js"), exports);
|
|
79204
|
+
__exportStar(__webpack_require__(/*! ./type_name_or_infer */ "./node_modules/@abaplint/transpiler/build/src/expressions/type_name_or_infer.js"), exports);
|
|
79145
79205
|
__exportStar(__webpack_require__(/*! ./function_parameters */ "./node_modules/@abaplint/transpiler/build/src/expressions/function_parameters.js"), exports);
|
|
79146
79206
|
__exportStar(__webpack_require__(/*! ./message_number */ "./node_modules/@abaplint/transpiler/build/src/expressions/message_number.js"), exports);
|
|
79147
79207
|
__exportStar(__webpack_require__(/*! ./method_call_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/method_call_body.js"), exports);
|
|
@@ -79894,7 +79954,7 @@ class SourceTranspiler {
|
|
|
79894
79954
|
const children = node.getChildren();
|
|
79895
79955
|
for (let i = 0; i < children.length; i++) {
|
|
79896
79956
|
const c = children[i];
|
|
79897
|
-
const
|
|
79957
|
+
const isLast = i === children.length - 1;
|
|
79898
79958
|
if (c instanceof core_1.Nodes.ExpressionNode) {
|
|
79899
79959
|
if (c.get() instanceof core_1.Expressions.FieldChain) {
|
|
79900
79960
|
ret.appendChunk(new _1.FieldChainTranspiler(this.addGet).transpile(c, traversal));
|
|
@@ -79921,7 +79981,7 @@ class SourceTranspiler {
|
|
|
79921
79981
|
if (code.includes("await")) {
|
|
79922
79982
|
ret = new chunk_1.Chunk().appendString("(").appendChunk(ret).appendString(")");
|
|
79923
79983
|
}
|
|
79924
|
-
if (this.addGet &&
|
|
79984
|
+
if (this.addGet && isLast === true) {
|
|
79925
79985
|
ret.append(".get()", c, traversal);
|
|
79926
79986
|
}
|
|
79927
79987
|
}
|
|
@@ -79937,7 +79997,7 @@ class SourceTranspiler {
|
|
|
79937
79997
|
else if (c.get() instanceof core_1.Expressions.ComponentChain) {
|
|
79938
79998
|
ret = new chunk_1.Chunk().appendString("(").appendChunk(ret).appendString(").get().");
|
|
79939
79999
|
ret.appendChunk(new _1.ComponentChainTranspiler().transpile(c, traversal));
|
|
79940
|
-
if (this.addGet &&
|
|
80000
|
+
if (this.addGet && isLast === true) {
|
|
79941
80001
|
ret.append(".get()", c, traversal);
|
|
79942
80002
|
}
|
|
79943
80003
|
}
|
|
@@ -79947,6 +80007,17 @@ class SourceTranspiler {
|
|
|
79947
80007
|
else if (c.get() instanceof core_1.Expressions.TextElement) {
|
|
79948
80008
|
ret = new chunk_1.Chunk().appendString(`new abap.types.String().set("${c.concatTokens()}")`);
|
|
79949
80009
|
}
|
|
80010
|
+
else if (c.get() instanceof core_1.Expressions.ConvBody) {
|
|
80011
|
+
const typ = node.findFirstExpression(core_1.Expressions.TypeNameOrInfer);
|
|
80012
|
+
if (typ === undefined) {
|
|
80013
|
+
throw new Error("TypeNameOrInfer not found in ConvBody");
|
|
80014
|
+
}
|
|
80015
|
+
ret = new chunk_1.Chunk().appendString(new _1.TypeNameOrInfer().transpile(typ, traversal).getCode());
|
|
80016
|
+
ret.appendString(".set(");
|
|
80017
|
+
// todo: handle LET
|
|
80018
|
+
ret.appendString(traversal.traverse(c.getFirstChild()).getCode());
|
|
80019
|
+
ret.appendString(")");
|
|
80020
|
+
}
|
|
79950
80021
|
else {
|
|
79951
80022
|
ret.appendString("SourceUnknown-" + c.get().constructor.name);
|
|
79952
80023
|
}
|
|
@@ -80911,6 +80982,41 @@ exports.TargetTranspiler = TargetTranspiler;
|
|
|
80911
80982
|
|
|
80912
80983
|
/***/ }),
|
|
80913
80984
|
|
|
80985
|
+
/***/ "./node_modules/@abaplint/transpiler/build/src/expressions/type_name_or_infer.js":
|
|
80986
|
+
/*!***************************************************************************************!*\
|
|
80987
|
+
!*** ./node_modules/@abaplint/transpiler/build/src/expressions/type_name_or_infer.js ***!
|
|
80988
|
+
\***************************************************************************************/
|
|
80989
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
80990
|
+
|
|
80991
|
+
"use strict";
|
|
80992
|
+
|
|
80993
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
80994
|
+
exports.TypeNameOrInfer = void 0;
|
|
80995
|
+
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
80996
|
+
const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
80997
|
+
class TypeNameOrInfer {
|
|
80998
|
+
transpile(node, traversal) {
|
|
80999
|
+
let type;
|
|
81000
|
+
const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
|
|
81001
|
+
if (node.concatTokens() === "#") {
|
|
81002
|
+
type = traversal.lookupInferred(node, scope);
|
|
81003
|
+
}
|
|
81004
|
+
else {
|
|
81005
|
+
type = traversal.lookupType(node.getFirstChild(), scope);
|
|
81006
|
+
}
|
|
81007
|
+
if (type === undefined) {
|
|
81008
|
+
throw new Error("TypeNameOrInfer, type not found: " + node.concatTokens());
|
|
81009
|
+
}
|
|
81010
|
+
const ret = new chunk_1.Chunk();
|
|
81011
|
+
ret.appendString(new transpile_types_1.TranspileTypes().toType(type));
|
|
81012
|
+
return ret;
|
|
81013
|
+
}
|
|
81014
|
+
}
|
|
81015
|
+
exports.TypeNameOrInfer = TypeNameOrInfer;
|
|
81016
|
+
//# sourceMappingURL=type_name_or_infer.js.map
|
|
81017
|
+
|
|
81018
|
+
/***/ }),
|
|
81019
|
+
|
|
80914
81020
|
/***/ "./node_modules/@abaplint/transpiler/build/src/feature_flags.js":
|
|
80915
81021
|
/*!**********************************************************************!*\
|
|
80916
81022
|
!*** ./node_modules/@abaplint/transpiler/build/src/feature_flags.js ***!
|
|
@@ -85339,7 +85445,8 @@ class LoopTranspiler {
|
|
|
85339
85445
|
if (!(node.get() instanceof abaplint.Statements.Loop)) {
|
|
85340
85446
|
throw new Error("LoopTranspiler, unexpected node");
|
|
85341
85447
|
}
|
|
85342
|
-
const
|
|
85448
|
+
const loopSource = node.findDirectExpression(abaplint.Expressions.LoopSource)?.getFirstChild();
|
|
85449
|
+
const source = traversal.traverse(loopSource).getCode();
|
|
85343
85450
|
this.unique = unique_identifier_1.UniqueIdentifier.get();
|
|
85344
85451
|
let target = "";
|
|
85345
85452
|
const into = node.findDirectExpression(abaplint.Expressions.LoopTarget)?.findDirectExpression(abaplint.Expressions.Target);
|
|
@@ -85543,7 +85650,7 @@ class MessageTranspiler {
|
|
|
85543
85650
|
}
|
|
85544
85651
|
else {
|
|
85545
85652
|
// exception or constant based
|
|
85546
|
-
const exception = node.findDirectExpression(abaplint.Expressions.
|
|
85653
|
+
const exception = node.findDirectExpression(abaplint.Expressions.MessageSourceSource)?.findDirectExpression(abaplint.Expressions.Source);
|
|
85547
85654
|
const str = exception?.findFirstExpression(abaplint.Expressions.Constant);
|
|
85548
85655
|
if (str) {
|
|
85549
85656
|
options.push("text: " + traversal.traverse(str).getCode());
|
|
@@ -85566,11 +85673,10 @@ class MessageTranspiler {
|
|
|
85566
85673
|
if (c.getFirstToken().getStr().toUpperCase() === "WITH") {
|
|
85567
85674
|
withs = true;
|
|
85568
85675
|
}
|
|
85569
|
-
else if (withs === true
|
|
85570
|
-
|
|
85571
|
-
|
|
85572
|
-
|
|
85573
|
-
w.push(traversal.traverse(c).getCode());
|
|
85676
|
+
else if (withs === true
|
|
85677
|
+
&& c.get() instanceof abaplint.Expressions.MessageSourceSource
|
|
85678
|
+
&& c instanceof abaplint.Nodes.ExpressionNode) {
|
|
85679
|
+
w.push(traversal.traverse(c.getFirstChild()).getCode());
|
|
85574
85680
|
}
|
|
85575
85681
|
else if (withs === true) {
|
|
85576
85682
|
break;
|
|
@@ -85971,21 +86077,63 @@ class MoveTranspiler {
|
|
|
85971
86077
|
}
|
|
85972
86078
|
const ret = new chunk_1.Chunk();
|
|
85973
86079
|
const second = node.getChildren()[1]?.concatTokens();
|
|
85974
|
-
|
|
85975
|
-
|
|
85976
|
-
.
|
|
85977
|
-
|
|
85978
|
-
|
|
85979
|
-
.append(");", node.getLastToken(), traversal);
|
|
85980
|
-
}
|
|
85981
|
-
else {
|
|
85982
|
-
for (const target of targets.reverse()) {
|
|
85983
|
-
ret.appendChunk(target)
|
|
85984
|
-
.appendString(".set(")
|
|
86080
|
+
switch (second) {
|
|
86081
|
+
case "?=":
|
|
86082
|
+
ret.appendString("await abap.statements.cast(")
|
|
86083
|
+
.appendChunk(targets[0])
|
|
86084
|
+
.appendString(", ")
|
|
85985
86085
|
.appendChunk(source)
|
|
85986
86086
|
.append(");", node.getLastToken(), traversal);
|
|
85987
|
-
|
|
85988
|
-
|
|
86087
|
+
break;
|
|
86088
|
+
case "+":
|
|
86089
|
+
ret.appendChunk(targets[0])
|
|
86090
|
+
.appendString(".set(abap.operators.add(")
|
|
86091
|
+
.appendChunk(targets[0])
|
|
86092
|
+
.appendString(", ")
|
|
86093
|
+
.appendChunk(source)
|
|
86094
|
+
.append("));", node.getLastToken(), traversal);
|
|
86095
|
+
break;
|
|
86096
|
+
case "-":
|
|
86097
|
+
ret.appendChunk(targets[0])
|
|
86098
|
+
.appendString(".set(abap.operators.minus(")
|
|
86099
|
+
.appendChunk(targets[0])
|
|
86100
|
+
.appendString(", ")
|
|
86101
|
+
.appendChunk(source)
|
|
86102
|
+
.append("));", node.getLastToken(), traversal);
|
|
86103
|
+
break;
|
|
86104
|
+
case "/=":
|
|
86105
|
+
ret.appendChunk(targets[0])
|
|
86106
|
+
.appendString(".set(abap.operators.divide(")
|
|
86107
|
+
.appendChunk(targets[0])
|
|
86108
|
+
.appendString(", ")
|
|
86109
|
+
.appendChunk(source)
|
|
86110
|
+
.append("));", node.getLastToken(), traversal);
|
|
86111
|
+
break;
|
|
86112
|
+
case "*=":
|
|
86113
|
+
ret.appendChunk(targets[0])
|
|
86114
|
+
.appendString(".set(abap.operators.multiply(")
|
|
86115
|
+
.appendChunk(targets[0])
|
|
86116
|
+
.appendString(", ")
|
|
86117
|
+
.appendChunk(source)
|
|
86118
|
+
.append("));", node.getLastToken(), traversal);
|
|
86119
|
+
break;
|
|
86120
|
+
case "&&=":
|
|
86121
|
+
ret.appendChunk(targets[0])
|
|
86122
|
+
.appendString(".set(abap.operators.concat(")
|
|
86123
|
+
.appendChunk(targets[0])
|
|
86124
|
+
.appendString(", ")
|
|
86125
|
+
.appendChunk(source)
|
|
86126
|
+
.append("));", node.getLastToken(), traversal);
|
|
86127
|
+
break;
|
|
86128
|
+
default:
|
|
86129
|
+
for (const target of targets.reverse()) {
|
|
86130
|
+
ret.appendChunk(target)
|
|
86131
|
+
.appendString(".set(")
|
|
86132
|
+
.appendChunk(source)
|
|
86133
|
+
.append(");", node.getLastToken(), traversal);
|
|
86134
|
+
source = target;
|
|
86135
|
+
}
|
|
86136
|
+
break;
|
|
85989
86137
|
}
|
|
85990
86138
|
return ret;
|
|
85991
86139
|
}
|
|
@@ -89372,24 +89520,8 @@ class TranspileTypes {
|
|
|
89372
89520
|
const list = [];
|
|
89373
89521
|
const suffix = {};
|
|
89374
89522
|
const asInclude = {};
|
|
89375
|
-
/*
|
|
89376
|
-
const skipFields: Set<string> = new Set();
|
|
89377
|
-
|
|
89378
|
-
for (const c of type.getComponents()) {
|
|
89379
|
-
if (c.type instanceof abaplint.BasicTypes.StructureType) {
|
|
89380
|
-
for (const f of c.type.getComponents()) {
|
|
89381
|
-
skipFields.add(f.name.toLowerCase());
|
|
89382
|
-
}
|
|
89383
|
-
}
|
|
89384
|
-
}
|
|
89385
|
-
*/
|
|
89386
89523
|
for (const c of type.getComponents()) {
|
|
89387
89524
|
const lower = c.name.toLowerCase();
|
|
89388
|
-
/*
|
|
89389
|
-
if (skipFields.has(lower)) {
|
|
89390
|
-
continue; // skip fields from nested structures
|
|
89391
|
-
}
|
|
89392
|
-
*/
|
|
89393
89525
|
list.push(`"` + lower + `": ` + this.toType(c.type));
|
|
89394
89526
|
if (c.suffix) {
|
|
89395
89527
|
suffix[lower] = c.suffix;
|
|
@@ -89919,6 +90051,36 @@ class Traversal {
|
|
|
89919
90051
|
}
|
|
89920
90052
|
return undefined;
|
|
89921
90053
|
}
|
|
90054
|
+
findInferredTypeReference(token) {
|
|
90055
|
+
const scope = this.findCurrentScopeByToken(token);
|
|
90056
|
+
if (scope === undefined) {
|
|
90057
|
+
return undefined;
|
|
90058
|
+
}
|
|
90059
|
+
for (const r of scope.getData().references) {
|
|
90060
|
+
if (r.referenceType === abaplint.ReferenceType.InferredType
|
|
90061
|
+
&& r.position.getStart().equals(token.getStart())) {
|
|
90062
|
+
if (r.resolved instanceof abaplint.TypedIdentifier) {
|
|
90063
|
+
return r.resolved.getType();
|
|
90064
|
+
}
|
|
90065
|
+
}
|
|
90066
|
+
}
|
|
90067
|
+
return undefined;
|
|
90068
|
+
}
|
|
90069
|
+
findTypeReference(token) {
|
|
90070
|
+
const scope = this.findCurrentScopeByToken(token);
|
|
90071
|
+
if (scope === undefined) {
|
|
90072
|
+
return undefined;
|
|
90073
|
+
}
|
|
90074
|
+
for (const r of scope.getData().references) {
|
|
90075
|
+
if (r.referenceType === abaplint.ReferenceType.TypeReference
|
|
90076
|
+
&& r.position.getStart().equals(token.getStart())) {
|
|
90077
|
+
if (r.resolved instanceof abaplint.TypedIdentifier) {
|
|
90078
|
+
return r.resolved.getType();
|
|
90079
|
+
}
|
|
90080
|
+
}
|
|
90081
|
+
}
|
|
90082
|
+
return undefined;
|
|
90083
|
+
}
|
|
89922
90084
|
buildThisAttributes(def, cName) {
|
|
89923
90085
|
let ret = "";
|
|
89924
90086
|
for (const a of def.getAttributes()?.getAll() || []) {
|
|
@@ -90091,6 +90253,50 @@ this.INTERNAL_ID = abap.internalIdCounter++;\n`;
|
|
|
90091
90253
|
}
|
|
90092
90254
|
return ret;
|
|
90093
90255
|
}
|
|
90256
|
+
lookupType(node, scope) {
|
|
90257
|
+
if (scope === undefined) {
|
|
90258
|
+
return undefined;
|
|
90259
|
+
}
|
|
90260
|
+
else if (!(node.get() instanceof abaplint.Expressions.TypeName)) {
|
|
90261
|
+
throw new Error("lookupType, node is not a TypeName, " + node.get());
|
|
90262
|
+
}
|
|
90263
|
+
const name = node.concatTokens().toLowerCase();
|
|
90264
|
+
switch (name) {
|
|
90265
|
+
case "i":
|
|
90266
|
+
return abaplint.BasicTypes.IntegerType.get();
|
|
90267
|
+
case "f":
|
|
90268
|
+
return new abaplint.BasicTypes.FloatType();
|
|
90269
|
+
case "string":
|
|
90270
|
+
return abaplint.BasicTypes.StringType.get();
|
|
90271
|
+
case "xstring":
|
|
90272
|
+
return abaplint.BasicTypes.XStringType.get();
|
|
90273
|
+
case "d":
|
|
90274
|
+
return new abaplint.BasicTypes.DateType();
|
|
90275
|
+
case "t":
|
|
90276
|
+
return new abaplint.BasicTypes.TimeType();
|
|
90277
|
+
default:
|
|
90278
|
+
break;
|
|
90279
|
+
}
|
|
90280
|
+
const found = this.findTypeReference(node.getFirstToken());
|
|
90281
|
+
if (found !== undefined) {
|
|
90282
|
+
return found;
|
|
90283
|
+
}
|
|
90284
|
+
const dtel = this.reg.getObject("DTEL", name);
|
|
90285
|
+
if (dtel) {
|
|
90286
|
+
return dtel.parseType(this.reg);
|
|
90287
|
+
}
|
|
90288
|
+
// todo: yea, well, yea
|
|
90289
|
+
throw new Error("lookupType, type not found, " + node.concatTokens());
|
|
90290
|
+
}
|
|
90291
|
+
lookupInferred(node, scope) {
|
|
90292
|
+
if (scope === undefined) {
|
|
90293
|
+
return undefined;
|
|
90294
|
+
}
|
|
90295
|
+
else if (node.concatTokens() !== "#") {
|
|
90296
|
+
throw new Error("lookupInferred, unexpected, " + node.get());
|
|
90297
|
+
}
|
|
90298
|
+
return this.findInferredTypeReference(node.getFirstToken());
|
|
90299
|
+
}
|
|
90094
90300
|
determineType(node, scope) {
|
|
90095
90301
|
if (scope === undefined) {
|
|
90096
90302
|
return undefined;
|
|
@@ -90701,6 +90907,13 @@ class Validation {
|
|
|
90701
90907
|
// this is not a constant, just a regex that happens to not match anything
|
|
90702
90908
|
exports.config.syntax.errorNamespace = "VOID_EVERYTHING";
|
|
90703
90909
|
}
|
|
90910
|
+
if (this.options?.skipVersionCheck === true) {
|
|
90911
|
+
// todo, set it to abaplint default version
|
|
90912
|
+
exports.config.syntax.version = core_1.Version.v758;
|
|
90913
|
+
}
|
|
90914
|
+
else {
|
|
90915
|
+
exports.config.syntax.version = core_1.Version.OpenABAP;
|
|
90916
|
+
}
|
|
90704
90917
|
const conf = new core_1.Config(JSON.stringify(exports.config));
|
|
90705
90918
|
reg.setConfig(conf);
|
|
90706
90919
|
const issues = reg.findIssues();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.10",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"author": "abaplint",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@abaplint/core": "^2.113.
|
|
31
|
-
"@abaplint/transpiler": "^2.11.
|
|
30
|
+
"@abaplint/core": "^2.113.155",
|
|
31
|
+
"@abaplint/transpiler": "^2.11.10",
|
|
32
32
|
"@types/glob": "^8.1.0",
|
|
33
33
|
"@types/node": "^24.2.0",
|
|
34
34
|
"@types/progress": "^2.0.7",
|