@abaplint/transpiler-cli 2.11.75 → 2.11.76
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 +109 -7
- package/package.json +3 -3
package/build/bundle.js
CHANGED
|
@@ -6846,7 +6846,7 @@ class Source extends combi_1.Expression {
|
|
|
6846
6846
|
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);
|
|
6847
6847
|
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)));
|
|
6848
6848
|
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), version_1.Version.OpenABAP);
|
|
6849
|
-
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)));
|
|
6849
|
+
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)), version_1.Version.OpenABAP);
|
|
6850
6850
|
const prefix1 = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WDashW), (0, combi_1.tok)(tokens_1.WPlusW));
|
|
6851
6851
|
const ret = (0, combi_1.seq)((0, combi_1.starPrio)(prefix1), (0, combi_1.altPrio)(filter, reff, corr, conv, value, cond, exact, swit, reduce, old));
|
|
6852
6852
|
return ret;
|
|
@@ -53886,7 +53886,7 @@ class Registry {
|
|
|
53886
53886
|
}
|
|
53887
53887
|
static abaplintVersion() {
|
|
53888
53888
|
// magic, see build script "version.sh"
|
|
53889
|
-
return "2.113.
|
|
53889
|
+
return "2.113.198";
|
|
53890
53890
|
}
|
|
53891
53891
|
getDDICReferences() {
|
|
53892
53892
|
return this.ddicReferences;
|
|
@@ -80642,6 +80642,87 @@ exports.ReceiveParametersTranspiler = ReceiveParametersTranspiler;
|
|
|
80642
80642
|
|
|
80643
80643
|
/***/ }),
|
|
80644
80644
|
|
|
80645
|
+
/***/ "./node_modules/@abaplint/transpiler/build/src/expressions/reduce_body.js":
|
|
80646
|
+
/*!********************************************************************************!*\
|
|
80647
|
+
!*** ./node_modules/@abaplint/transpiler/build/src/expressions/reduce_body.js ***!
|
|
80648
|
+
\********************************************************************************/
|
|
80649
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
80650
|
+
|
|
80651
|
+
"use strict";
|
|
80652
|
+
|
|
80653
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
80654
|
+
exports.ReduceBodyTranspiler = void 0;
|
|
80655
|
+
const core_1 = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
80656
|
+
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
80657
|
+
const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
80658
|
+
const target_1 = __webpack_require__(/*! ./target */ "./node_modules/@abaplint/transpiler/build/src/expressions/target.js");
|
|
80659
|
+
class ReduceBodyTranspiler {
|
|
80660
|
+
transpile(typ, body, traversal) {
|
|
80661
|
+
if (!(typ.get() instanceof core_1.Expressions.TypeNameOrInfer)) {
|
|
80662
|
+
throw new Error("ReduceBodyTranspiler, Expected TypeNameOrInfer");
|
|
80663
|
+
}
|
|
80664
|
+
else if (body.findDirectExpression(core_1.Expressions.Let) !== undefined) {
|
|
80665
|
+
return new chunk_1.Chunk(`(() => { throw new Error("ReduceBodyTranspiler LET, not supported, transpiler"); })()`);
|
|
80666
|
+
}
|
|
80667
|
+
const forExpressions = body.findDirectExpressions(core_1.Expressions.For);
|
|
80668
|
+
const forExpression = forExpressions[0];
|
|
80669
|
+
if (forExpressions.length === 0) {
|
|
80670
|
+
throw new Error("ReduceBodyTranspiler, expected FOR");
|
|
80671
|
+
}
|
|
80672
|
+
else if (forExpressions.length > 1) {
|
|
80673
|
+
throw new Error("ReduceBodyTranspiler, multiple FOR not supported, " + body.concatTokens());
|
|
80674
|
+
}
|
|
80675
|
+
else if (["THEN", "UNTIL", "WHILE", "FROM", "TO", "GROUPS"].some(token => forExpressions[0].findDirectTokenByText(token))) {
|
|
80676
|
+
throw new Error("ValueBody FOR todo, " + body.concatTokens());
|
|
80677
|
+
}
|
|
80678
|
+
const loopExpression = forExpression.findDirectExpression(core_1.Expressions.InlineLoopDefinition);
|
|
80679
|
+
const loopSource = traversal.traverse(loopExpression?.findDirectExpression(core_1.Expressions.Source)).getCode();
|
|
80680
|
+
const loopVariable = traversal.traverse(loopExpression?.findDirectExpression(core_1.Expressions.TargetField)).getCode();
|
|
80681
|
+
// const type = new TypeNameOrInfer().findType(typ, traversal);
|
|
80682
|
+
// const target = TranspileTypes.toType(type);
|
|
80683
|
+
const ret = new chunk_1.Chunk();
|
|
80684
|
+
ret.appendString("(await (async () => {\n");
|
|
80685
|
+
let loopWhere = "";
|
|
80686
|
+
const whereNode = forExpression?.findDirectExpression(core_1.Expressions.ComponentCond);
|
|
80687
|
+
if (whereNode) {
|
|
80688
|
+
const where = traversal.traverse(whereNode).getCode();
|
|
80689
|
+
loopWhere = `, {"where": async ` + where + `}`;
|
|
80690
|
+
}
|
|
80691
|
+
/*
|
|
80692
|
+
const returnId = UniqueIdentifier.get();
|
|
80693
|
+
ret.appendString(`const ${returnId} = ${target};\n`);
|
|
80694
|
+
*/
|
|
80695
|
+
let returnField = "";
|
|
80696
|
+
for (const init of body.findDirectExpressions(core_1.Expressions.InlineFieldDefinition)) {
|
|
80697
|
+
const fieldName = init.findDirectExpression(core_1.Expressions.Field).concatTokens().toLowerCase();
|
|
80698
|
+
returnField = fieldName;
|
|
80699
|
+
const scope = traversal.findCurrentScopeByToken(init.getFirstToken());
|
|
80700
|
+
const variable = scope?.findVariable(fieldName);
|
|
80701
|
+
if (variable === undefined) {
|
|
80702
|
+
throw new Error(`ReduceBodyTranspiler: variable ${fieldName} not found`);
|
|
80703
|
+
}
|
|
80704
|
+
ret.appendString(transpile_types_1.TranspileTypes.declare(variable) + `\n`);
|
|
80705
|
+
}
|
|
80706
|
+
ret.appendString(`for await (const ${loopVariable} of abap.statements.loop(${loopSource}${loopWhere})) {\n`);
|
|
80707
|
+
for (const nextChild of body.findDirectExpression(core_1.Expressions.ReduceNext)?.getChildren() || []) {
|
|
80708
|
+
if (nextChild.get() instanceof core_1.Expressions.SimpleTarget && nextChild instanceof core_1.Nodes.ExpressionNode) {
|
|
80709
|
+
ret.appendString(new target_1.TargetTranspiler().transpile(nextChild, traversal).getCode() + ".set(");
|
|
80710
|
+
}
|
|
80711
|
+
else if (nextChild.get() instanceof core_1.Expressions.Source && nextChild instanceof core_1.Nodes.ExpressionNode) {
|
|
80712
|
+
ret.appendString(traversal.traverse(nextChild).getCode() + ");\n");
|
|
80713
|
+
}
|
|
80714
|
+
}
|
|
80715
|
+
ret.appendString(`}\n`);
|
|
80716
|
+
ret.appendString(`return ${returnField};\n`);
|
|
80717
|
+
ret.appendString("})())");
|
|
80718
|
+
return ret;
|
|
80719
|
+
}
|
|
80720
|
+
}
|
|
80721
|
+
exports.ReduceBodyTranspiler = ReduceBodyTranspiler;
|
|
80722
|
+
//# sourceMappingURL=reduce_body.js.map
|
|
80723
|
+
|
|
80724
|
+
/***/ }),
|
|
80725
|
+
|
|
80645
80726
|
/***/ "./node_modules/@abaplint/transpiler/build/src/expressions/simple_source1.js":
|
|
80646
80727
|
/*!***********************************************************************************!*\
|
|
80647
80728
|
!*** ./node_modules/@abaplint/transpiler/build/src/expressions/simple_source1.js ***!
|
|
@@ -80742,12 +80823,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
80742
80823
|
exports.SourceTranspiler = void 0;
|
|
80743
80824
|
const core_1 = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
80744
80825
|
const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/transpiler/build/src/expressions/index.js");
|
|
80745
|
-
const constant_1 = __webpack_require__(/*! ./constant */ "./node_modules/@abaplint/transpiler/build/src/expressions/constant.js");
|
|
80746
80826
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
80747
|
-
const
|
|
80748
|
-
const value_body_1 = __webpack_require__(/*! ./value_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/value_body.js");
|
|
80827
|
+
const constant_1 = __webpack_require__(/*! ./constant */ "./node_modules/@abaplint/transpiler/build/src/expressions/constant.js");
|
|
80749
80828
|
const corresponding_body_1 = __webpack_require__(/*! ./corresponding_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/corresponding_body.js");
|
|
80750
80829
|
const filter_body_1 = __webpack_require__(/*! ./filter_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/filter_body.js");
|
|
80830
|
+
const reduce_body_1 = __webpack_require__(/*! ./reduce_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/reduce_body.js");
|
|
80831
|
+
const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
80832
|
+
const value_body_1 = __webpack_require__(/*! ./value_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/value_body.js");
|
|
80751
80833
|
class SourceTranspiler {
|
|
80752
80834
|
addGet;
|
|
80753
80835
|
constructor(addGet = false) {
|
|
@@ -80836,6 +80918,9 @@ class SourceTranspiler {
|
|
|
80836
80918
|
else if (c.get() instanceof core_1.Expressions.CondBody) {
|
|
80837
80919
|
continue;
|
|
80838
80920
|
}
|
|
80921
|
+
else if (c.get() instanceof core_1.Expressions.ReduceBody) {
|
|
80922
|
+
continue;
|
|
80923
|
+
}
|
|
80839
80924
|
else if (c.get() instanceof core_1.Expressions.SwitchBody) {
|
|
80840
80925
|
continue;
|
|
80841
80926
|
}
|
|
@@ -80919,6 +81004,17 @@ class SourceTranspiler {
|
|
|
80919
81004
|
}
|
|
80920
81005
|
ret.appendChunk(new filter_body_1.FilterBodyTranspiler().transpile(typ, filterBody, traversal));
|
|
80921
81006
|
}
|
|
81007
|
+
else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === "REDUCE") {
|
|
81008
|
+
const typ = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
|
|
81009
|
+
if (typ === undefined) {
|
|
81010
|
+
throw new Error("TypeNameOrInfer not found in ReduceBody");
|
|
81011
|
+
}
|
|
81012
|
+
const reduceBody = node.findDirectExpression(core_1.Expressions.ReduceBody);
|
|
81013
|
+
if (reduceBody === undefined) {
|
|
81014
|
+
throw new Error("ReduceBody not found");
|
|
81015
|
+
}
|
|
81016
|
+
ret.appendChunk(new reduce_body_1.ReduceBodyTranspiler().transpile(typ, reduceBody, traversal));
|
|
81017
|
+
}
|
|
80922
81018
|
else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === "REF") {
|
|
80923
81019
|
const infer = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
|
|
80924
81020
|
if (infer?.concatTokens() !== "#") {
|
|
@@ -82237,13 +82333,19 @@ class ValueBodyTranspiler {
|
|
|
82237
82333
|
ret.appendString(".set(" + source.getCode() + ".clone())");
|
|
82238
82334
|
}
|
|
82239
82335
|
else if (child.get() instanceof core_1.Expressions.For && child instanceof core_1.Nodes.ExpressionNode) {
|
|
82240
|
-
if (["THEN", "UNTIL", "WHILE", "FROM", "TO", "
|
|
82336
|
+
if (["THEN", "UNTIL", "WHILE", "FROM", "TO", "GROUPS"].some(token => child.findDirectTokenByText(token))) {
|
|
82241
82337
|
throw new Error("ValueBody FOR todo, " + body.concatTokens());
|
|
82242
82338
|
}
|
|
82243
82339
|
const loop = child.findDirectExpression(core_1.Expressions.InlineLoopDefinition);
|
|
82244
82340
|
if (loop === undefined) {
|
|
82245
82341
|
throw new Error("ValueBody FOR todo, " + body.concatTokens());
|
|
82246
82342
|
}
|
|
82343
|
+
let loopWhere = "";
|
|
82344
|
+
const whereNode = child?.findDirectExpression(core_1.Expressions.ComponentCond);
|
|
82345
|
+
if (whereNode) {
|
|
82346
|
+
const where = traversal.traverse(whereNode).getCode();
|
|
82347
|
+
loopWhere = `, {"where": async ` + where + `}`;
|
|
82348
|
+
}
|
|
82247
82349
|
const base = loop.findDirectExpression(core_1.Expressions.ValueBase);
|
|
82248
82350
|
if (base) {
|
|
82249
82351
|
throw new Error("ValueBody FOR todo, base, " + body.concatTokens());
|
|
@@ -82272,7 +82374,7 @@ class ValueBodyTranspiler {
|
|
|
82272
82374
|
ret = new chunk_1.Chunk().appendString(`await (async () => {
|
|
82273
82375
|
${targetDeclare}
|
|
82274
82376
|
const VAL = ${val};
|
|
82275
|
-
for await (const unique1 of abap.statements.loop(${source})) {
|
|
82377
|
+
for await (const unique1 of abap.statements.loop(${source}${loopWhere})) {
|
|
82276
82378
|
${targetAction}
|
|
82277
82379
|
VAL`);
|
|
82278
82380
|
post = ";\n}\nreturn VAL;\n})()";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.76",
|
|
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.198",
|
|
31
|
+
"@abaplint/transpiler": "^2.11.76",
|
|
32
32
|
"@types/glob": "^8.1.0",
|
|
33
33
|
"@types/node": "^24.3.1",
|
|
34
34
|
"@types/progress": "^2.0.7",
|