@abaplint/transpiler-cli 2.10.11 → 2.10.13
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 +45 -27
- package/package.json +2 -2
package/build/bundle.js
CHANGED
|
@@ -76550,7 +76550,7 @@ class FieldChainTranspiler {
|
|
|
76550
76550
|
if (c.get() instanceof core_1.Expressions.SourceField
|
|
76551
76551
|
|| c.get() instanceof core_1.Expressions.Field) {
|
|
76552
76552
|
const name = traversal.prefixAndName(c.getFirstToken(), filename).replace("~", "$");
|
|
76553
|
-
ret.append(traversal_1.Traversal.escapeNamespace(name), c, traversal);
|
|
76553
|
+
ret.append(traversal_1.Traversal.prefixVariable(traversal_1.Traversal.escapeNamespace(name)), c, traversal);
|
|
76554
76554
|
}
|
|
76555
76555
|
else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.SourceFieldSymbol) {
|
|
76556
76556
|
ret.appendChunk(new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal));
|
|
@@ -78488,7 +78488,7 @@ class TargetTranspiler {
|
|
|
78488
78488
|
const next = children[i + 1];
|
|
78489
78489
|
if (c.get() instanceof core_1.Expressions.TargetField) {
|
|
78490
78490
|
const prefix = traversal.prefixAndName(c.getFirstToken()).replace("~", "$");
|
|
78491
|
-
ret.append(traversal_1.Traversal.escapeNamespace(prefix), c, traversal);
|
|
78491
|
+
ret.append(traversal_1.Traversal.prefixVariable(traversal_1.Traversal.escapeNamespace(prefix)), c, traversal);
|
|
78492
78492
|
}
|
|
78493
78493
|
else if (c.get() instanceof core_1.Expressions.ClassName) {
|
|
78494
78494
|
const name = traversal.lookupClassOrInterface(c.getFirstToken().getStr(), c.getFirstToken());
|
|
@@ -79351,13 +79351,14 @@ exports.Transpiler = Transpiler;
|
|
|
79351
79351
|
"use strict";
|
|
79352
79352
|
|
|
79353
79353
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
79354
|
-
exports.Keywords = exports.
|
|
79354
|
+
exports.Keywords = exports.DEFAULT_KEYWORDS = void 0;
|
|
79355
79355
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
79356
79356
|
// https://www.w3schools.com/js/js_reserved.asp
|
|
79357
|
-
exports.
|
|
79357
|
+
exports.DEFAULT_KEYWORDS = [
|
|
79358
79358
|
"abstract", "arguments", "await",
|
|
79359
79359
|
"break", "byte", "catch",
|
|
79360
|
-
"char",
|
|
79360
|
+
// "char",
|
|
79361
|
+
"class", "const", "continue",
|
|
79361
79362
|
"debugger", "default", "do",
|
|
79362
79363
|
"double", "else", "enum", "eval",
|
|
79363
79364
|
"export", "extends", "false", "final",
|
|
@@ -79382,10 +79383,13 @@ class Keywords {
|
|
|
79382
79383
|
this.keywords = keywords;
|
|
79383
79384
|
}
|
|
79384
79385
|
else {
|
|
79385
|
-
this.keywords = exports.
|
|
79386
|
+
this.keywords = exports.DEFAULT_KEYWORDS;
|
|
79386
79387
|
}
|
|
79387
79388
|
}
|
|
79388
79389
|
handle(reg) {
|
|
79390
|
+
if (this.keywords.length === 0) {
|
|
79391
|
+
return;
|
|
79392
|
+
}
|
|
79389
79393
|
reg.parse();
|
|
79390
79394
|
for (const o of reg.getObjects()) {
|
|
79391
79395
|
if (!(o instanceof abaplint.ABAPObject)) {
|
|
@@ -81066,6 +81070,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
81066
81070
|
exports.DataTranspiler = void 0;
|
|
81067
81071
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
81068
81072
|
const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
81073
|
+
const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
81069
81074
|
const constant_1 = __webpack_require__(/*! ../expressions/constant */ "./node_modules/@abaplint/transpiler/build/src/expressions/constant.js");
|
|
81070
81075
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/@abaplint/transpiler/build/src/expressions/index.js");
|
|
81071
81076
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
@@ -81092,7 +81097,7 @@ class DataTranspiler {
|
|
|
81092
81097
|
}
|
|
81093
81098
|
const ret = new chunk_1.Chunk()
|
|
81094
81099
|
.appendString("let ")
|
|
81095
|
-
.append(found.getName().toLowerCase(), token, traversal)
|
|
81100
|
+
.append(traversal_1.Traversal.prefixVariable(traversal_1.Traversal.escapeNamespace(found.getName().toLowerCase())), token, traversal)
|
|
81096
81101
|
.appendString(" = " + new transpile_types_1.TranspileTypes().toType(found.getType()))
|
|
81097
81102
|
.append(";", node.getLastToken(), traversal)
|
|
81098
81103
|
.append(value, node.getLastToken(), traversal);
|
|
@@ -81646,6 +81651,7 @@ exports.EndLoopTranspiler = EndLoopTranspiler;
|
|
|
81646
81651
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
81647
81652
|
exports.EndMethodTranspiler = void 0;
|
|
81648
81653
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
81654
|
+
const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
81649
81655
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
81650
81656
|
class EndMethodTranspiler {
|
|
81651
81657
|
transpile(node, traversal) {
|
|
@@ -81660,7 +81666,7 @@ class EndMethodTranspiler {
|
|
|
81660
81666
|
for (const n in vars) {
|
|
81661
81667
|
const identifier = vars[n];
|
|
81662
81668
|
if (identifier.getMeta().includes("returning" /* abaplint.IdentifierMeta.MethodReturning */)) {
|
|
81663
|
-
returning += "return " + n.toLowerCase() + ";\n";
|
|
81669
|
+
returning += "return " + traversal_1.Traversal.prefixVariable(n.toLowerCase()) + ";\n";
|
|
81664
81670
|
}
|
|
81665
81671
|
}
|
|
81666
81672
|
const data = scope.getIdentifier();
|
|
@@ -81991,6 +81997,7 @@ exports.FormTranspiler = void 0;
|
|
|
81991
81997
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
81992
81998
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
81993
81999
|
const unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ "./node_modules/@abaplint/transpiler/build/src/unique_identifier.js");
|
|
82000
|
+
const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
81994
82001
|
class FormTranspiler {
|
|
81995
82002
|
transpile(node, traversal) {
|
|
81996
82003
|
unique_identifier_1.UniqueIdentifier.resetIndexBackup();
|
|
@@ -82000,13 +82007,13 @@ class FormTranspiler {
|
|
|
82000
82007
|
const ret = new chunk_1.Chunk("async function " + name + "(INPUT) {");
|
|
82001
82008
|
const params = [];
|
|
82002
82009
|
for (const p of def?.getChangingParameters() || []) {
|
|
82003
|
-
params.push(`let ${p.getName()} = INPUT.${p.getName()};`);
|
|
82010
|
+
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
|
|
82004
82011
|
}
|
|
82005
82012
|
for (const p of def?.getTablesParameters() || []) {
|
|
82006
|
-
params.push(`let ${p.getName()} = INPUT.${p.getName()};`);
|
|
82013
|
+
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
|
|
82007
82014
|
}
|
|
82008
82015
|
for (const p of def?.getUsingParameters() || []) {
|
|
82009
|
-
params.push(`let ${p.getName()} = INPUT.${p.getName()};`);
|
|
82016
|
+
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
|
|
82010
82017
|
}
|
|
82011
82018
|
if (params.length > 0) {
|
|
82012
82019
|
ret.appendString("\n" + params.join("\n"));
|
|
@@ -83069,6 +83076,7 @@ class MethodImplementationTranspiler {
|
|
|
83069
83076
|
for (const n in vars) {
|
|
83070
83077
|
const identifier = vars[n];
|
|
83071
83078
|
const varName = n.toLowerCase();
|
|
83079
|
+
const varPrefixed = traversal_1.Traversal.prefixVariable(varName);
|
|
83072
83080
|
if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
|
|
83073
83081
|
|| identifier.getMeta().includes("changing" /* abaplint.IdentifierMeta.MethodChanging */)
|
|
83074
83082
|
|| identifier.getMeta().includes("event_parameter" /* abaplint.IdentifierMeta.EventParameter */)
|
|
@@ -83081,31 +83089,31 @@ class MethodImplementationTranspiler {
|
|
|
83081
83089
|
const passByValue = identifier.getMeta().includes("pass_by_value" /* abaplint.IdentifierMeta.PassByValue */);
|
|
83082
83090
|
const type = identifier.getType();
|
|
83083
83091
|
if (identifier.getMeta().includes("exporting" /* abaplint.IdentifierMeta.MethodExporting */)) {
|
|
83084
|
-
after += `let ${
|
|
83092
|
+
after += `let ${varPrefixed} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
|
|
83085
83093
|
}
|
|
83086
83094
|
else if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
|
|
83087
83095
|
&& parameterDefault === undefined
|
|
83088
83096
|
&& passByValue === false
|
|
83089
83097
|
&& isOptional === false
|
|
83090
83098
|
&& type.isGeneric() === false) {
|
|
83091
|
-
after += `let ${
|
|
83099
|
+
after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
|
|
83092
83100
|
if (identifier.getType().getQualifiedName() !== undefined && identifier.getType().getQualifiedName() !== "") {
|
|
83093
|
-
after += `if (${
|
|
83101
|
+
after += `if (${varPrefixed}?.getQualifiedName === undefined || ${varPrefixed}.getQualifiedName() !== "${identifier.getType().getQualifiedName()?.toUpperCase()}") { ${varPrefixed} = undefined; }\n`;
|
|
83094
83102
|
}
|
|
83095
|
-
after += `if (${
|
|
83103
|
+
after += `if (${varPrefixed} === undefined) { ${varPrefixed} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())}.set(${unique}.${varName}); }\n`;
|
|
83096
83104
|
}
|
|
83097
83105
|
else if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
|
|
83098
83106
|
&& type.isGeneric() === true) {
|
|
83099
83107
|
if (isOptional === true) {
|
|
83100
|
-
after += `let ${
|
|
83108
|
+
after += `let ${varPrefixed} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
|
|
83101
83109
|
}
|
|
83102
83110
|
else {
|
|
83103
|
-
after += `let ${
|
|
83111
|
+
after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
|
|
83104
83112
|
}
|
|
83105
83113
|
if (type instanceof abaplint.BasicTypes.NumericGenericType) {
|
|
83106
|
-
after += `if (${
|
|
83107
|
-
${
|
|
83108
|
-
${
|
|
83114
|
+
after += `if (${varPrefixed}.constructor.name === "Character") {
|
|
83115
|
+
${varPrefixed} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};
|
|
83116
|
+
${varPrefixed}.set(${unique}?.${varName});
|
|
83109
83117
|
}\n`;
|
|
83110
83118
|
}
|
|
83111
83119
|
}
|
|
@@ -83113,19 +83121,19 @@ class MethodImplementationTranspiler {
|
|
|
83113
83121
|
&& type.isGeneric() === false) {
|
|
83114
83122
|
after += new transpile_types_1.TranspileTypes().declare(identifier) + "\n";
|
|
83115
83123
|
// note: it might be nessesary to do a type conversion, eg char is passed to xstring parameter
|
|
83116
|
-
after += "if (" + unique + " && " + unique + "." + varName + ") {" +
|
|
83124
|
+
after += "if (" + unique + " && " + unique + "." + varName + ") {" + varPrefixed + ".set(" + unique + "." + varName + ");}\n";
|
|
83117
83125
|
}
|
|
83118
83126
|
else {
|
|
83119
83127
|
after += new transpile_types_1.TranspileTypes().declare(identifier) + "\n";
|
|
83120
|
-
after += "if (" + unique + " && " + unique + "." + varName + ") {" +
|
|
83128
|
+
after += "if (" + unique + " && " + unique + "." + varName + ") {" + varPrefixed + " = " + unique + "." + varName + ";}\n";
|
|
83121
83129
|
}
|
|
83122
83130
|
if (parameterDefault) {
|
|
83123
83131
|
const val = this.buildDefault(parameterDefault, traversal, methodDef?.getFilename());
|
|
83124
83132
|
if (passByValue === true || identifier.getMeta().includes("changing" /* abaplint.IdentifierMeta.MethodChanging */)) {
|
|
83125
|
-
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" +
|
|
83133
|
+
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" + varPrefixed + ".set(" + val + ");}\n";
|
|
83126
83134
|
}
|
|
83127
83135
|
else {
|
|
83128
|
-
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" +
|
|
83136
|
+
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" + varPrefixed + " = " + val + ";}\n";
|
|
83129
83137
|
}
|
|
83130
83138
|
}
|
|
83131
83139
|
}
|
|
@@ -84102,6 +84110,7 @@ exports.RetryTranspiler = RetryTranspiler;
|
|
|
84102
84110
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
84103
84111
|
exports.ReturnTranspiler = void 0;
|
|
84104
84112
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
84113
|
+
const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
84105
84114
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
84106
84115
|
const unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ "./node_modules/@abaplint/transpiler/build/src/unique_identifier.js");
|
|
84107
84116
|
class ReturnTranspiler {
|
|
@@ -84112,7 +84121,7 @@ class ReturnTranspiler {
|
|
|
84112
84121
|
for (const n in vars) {
|
|
84113
84122
|
const identifier = vars[n];
|
|
84114
84123
|
if (identifier.getMeta().includes("returning" /* abaplint.IdentifierMeta.MethodReturning */)) {
|
|
84115
|
-
extra = " " + n.toLowerCase();
|
|
84124
|
+
extra = " " + traversal_1.Traversal.prefixVariable(n.toLowerCase());
|
|
84116
84125
|
}
|
|
84117
84126
|
}
|
|
84118
84127
|
let pre = "";
|
|
@@ -86531,12 +86540,13 @@ exports.WhileTranspiler = WhileTranspiler;
|
|
|
86531
86540
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
86532
86541
|
exports.TranspileTypes = void 0;
|
|
86533
86542
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
86543
|
+
const traversal_1 = __webpack_require__(/*! ./traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
86534
86544
|
const featureHexUInt8 = false;
|
|
86535
86545
|
// todo: change this class to static for performance?
|
|
86536
86546
|
class TranspileTypes {
|
|
86537
86547
|
declare(t) {
|
|
86538
86548
|
const type = t.getType();
|
|
86539
|
-
return "let " + t.getName().toLowerCase() + " = " + this.toType(type) + ";";
|
|
86549
|
+
return "let " + traversal_1.Traversal.prefixVariable(t.getName().toLowerCase()) + " = " + this.toType(type) + ";";
|
|
86540
86550
|
}
|
|
86541
86551
|
declareStaticSkipVoid(pre, t) {
|
|
86542
86552
|
const type = t.getType();
|
|
@@ -86746,6 +86756,7 @@ const StructureTranspilers = __webpack_require__(/*! ./structures */ "./node_mod
|
|
|
86746
86756
|
const transpile_types_1 = __webpack_require__(/*! ./transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
86747
86757
|
const chunk_1 = __webpack_require__(/*! ./chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
86748
86758
|
const expressions_1 = __webpack_require__(/*! ./expressions */ "./node_modules/@abaplint/transpiler/build/src/expressions/index.js");
|
|
86759
|
+
const keywords_1 = __webpack_require__(/*! ./keywords */ "./node_modules/@abaplint/transpiler/build/src/keywords.js");
|
|
86749
86760
|
class Traversal {
|
|
86750
86761
|
constructor(spaghetti, file, obj, reg, options) {
|
|
86751
86762
|
this.scopeCache = undefined;
|
|
@@ -86758,6 +86769,13 @@ class Traversal {
|
|
|
86758
86769
|
static escapeNamespace(name) {
|
|
86759
86770
|
return name?.replace(/\//g, "$");
|
|
86760
86771
|
}
|
|
86772
|
+
static prefixVariable(name) {
|
|
86773
|
+
// TODO: performace, make this a hash lookup?,
|
|
86774
|
+
if (keywords_1.DEFAULT_KEYWORDS.some(k => k === name)) {
|
|
86775
|
+
return "$" + name;
|
|
86776
|
+
}
|
|
86777
|
+
return name + "";
|
|
86778
|
+
}
|
|
86761
86779
|
getCurrentObject() {
|
|
86762
86780
|
return this.obj;
|
|
86763
86781
|
}
|
|
@@ -87968,7 +87986,7 @@ class Validation {
|
|
|
87968
87986
|
}
|
|
87969
87987
|
exports.config.rules.forbidden_identifier.check = ["^unique\\d+$"];
|
|
87970
87988
|
if (this.options?.keywords === undefined) {
|
|
87971
|
-
for (const d of keywords_1.
|
|
87989
|
+
for (const d of keywords_1.DEFAULT_KEYWORDS) {
|
|
87972
87990
|
const add = "^" + d + "$";
|
|
87973
87991
|
exports.config.rules["forbidden_identifier"]["check"].push(add);
|
|
87974
87992
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.13",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"author": "abaplint",
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@abaplint/transpiler": "^2.10.
|
|
29
|
+
"@abaplint/transpiler": "^2.10.13",
|
|
30
30
|
"@types/glob": "^8.1.0",
|
|
31
31
|
"glob": "=7.2.0",
|
|
32
32
|
"@types/progress": "^2.0.7",
|