@abaplint/transpiler-cli 2.10.11 → 2.10.12
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 +37 -23
- 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,10 +79351,10 @@ 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
79360
|
"char", "class", "const", "continue",
|
|
@@ -79382,10 +79382,13 @@ class Keywords {
|
|
|
79382
79382
|
this.keywords = keywords;
|
|
79383
79383
|
}
|
|
79384
79384
|
else {
|
|
79385
|
-
this.keywords = exports.
|
|
79385
|
+
this.keywords = exports.DEFAULT_KEYWORDS;
|
|
79386
79386
|
}
|
|
79387
79387
|
}
|
|
79388
79388
|
handle(reg) {
|
|
79389
|
+
if (this.keywords.length === 0) {
|
|
79390
|
+
return;
|
|
79391
|
+
}
|
|
79389
79392
|
reg.parse();
|
|
79390
79393
|
for (const o of reg.getObjects()) {
|
|
79391
79394
|
if (!(o instanceof abaplint.ABAPObject)) {
|
|
@@ -81066,6 +81069,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
81066
81069
|
exports.DataTranspiler = void 0;
|
|
81067
81070
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
81068
81071
|
const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
81072
|
+
const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
81069
81073
|
const constant_1 = __webpack_require__(/*! ../expressions/constant */ "./node_modules/@abaplint/transpiler/build/src/expressions/constant.js");
|
|
81070
81074
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/@abaplint/transpiler/build/src/expressions/index.js");
|
|
81071
81075
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
@@ -81092,7 +81096,7 @@ class DataTranspiler {
|
|
|
81092
81096
|
}
|
|
81093
81097
|
const ret = new chunk_1.Chunk()
|
|
81094
81098
|
.appendString("let ")
|
|
81095
|
-
.append(found.getName().toLowerCase(), token, traversal)
|
|
81099
|
+
.append(traversal_1.Traversal.prefixVariable(traversal_1.Traversal.escapeNamespace(found.getName().toLowerCase())), token, traversal)
|
|
81096
81100
|
.appendString(" = " + new transpile_types_1.TranspileTypes().toType(found.getType()))
|
|
81097
81101
|
.append(";", node.getLastToken(), traversal)
|
|
81098
81102
|
.append(value, node.getLastToken(), traversal);
|
|
@@ -81991,6 +81995,7 @@ exports.FormTranspiler = void 0;
|
|
|
81991
81995
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
81992
81996
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
81993
81997
|
const unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ "./node_modules/@abaplint/transpiler/build/src/unique_identifier.js");
|
|
81998
|
+
const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
|
|
81994
81999
|
class FormTranspiler {
|
|
81995
82000
|
transpile(node, traversal) {
|
|
81996
82001
|
unique_identifier_1.UniqueIdentifier.resetIndexBackup();
|
|
@@ -82000,13 +82005,13 @@ class FormTranspiler {
|
|
|
82000
82005
|
const ret = new chunk_1.Chunk("async function " + name + "(INPUT) {");
|
|
82001
82006
|
const params = [];
|
|
82002
82007
|
for (const p of def?.getChangingParameters() || []) {
|
|
82003
|
-
params.push(`let ${p.getName()} = INPUT.${p.getName()};`);
|
|
82008
|
+
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
|
|
82004
82009
|
}
|
|
82005
82010
|
for (const p of def?.getTablesParameters() || []) {
|
|
82006
|
-
params.push(`let ${p.getName()} = INPUT.${p.getName()};`);
|
|
82011
|
+
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
|
|
82007
82012
|
}
|
|
82008
82013
|
for (const p of def?.getUsingParameters() || []) {
|
|
82009
|
-
params.push(`let ${p.getName()} = INPUT.${p.getName()};`);
|
|
82014
|
+
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
|
|
82010
82015
|
}
|
|
82011
82016
|
if (params.length > 0) {
|
|
82012
82017
|
ret.appendString("\n" + params.join("\n"));
|
|
@@ -83069,6 +83074,7 @@ class MethodImplementationTranspiler {
|
|
|
83069
83074
|
for (const n in vars) {
|
|
83070
83075
|
const identifier = vars[n];
|
|
83071
83076
|
const varName = n.toLowerCase();
|
|
83077
|
+
const varPrefixed = traversal_1.Traversal.prefixVariable(varName);
|
|
83072
83078
|
if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
|
|
83073
83079
|
|| identifier.getMeta().includes("changing" /* abaplint.IdentifierMeta.MethodChanging */)
|
|
83074
83080
|
|| identifier.getMeta().includes("event_parameter" /* abaplint.IdentifierMeta.EventParameter */)
|
|
@@ -83081,31 +83087,31 @@ class MethodImplementationTranspiler {
|
|
|
83081
83087
|
const passByValue = identifier.getMeta().includes("pass_by_value" /* abaplint.IdentifierMeta.PassByValue */);
|
|
83082
83088
|
const type = identifier.getType();
|
|
83083
83089
|
if (identifier.getMeta().includes("exporting" /* abaplint.IdentifierMeta.MethodExporting */)) {
|
|
83084
|
-
after += `let ${
|
|
83090
|
+
after += `let ${varPrefixed} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
|
|
83085
83091
|
}
|
|
83086
83092
|
else if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
|
|
83087
83093
|
&& parameterDefault === undefined
|
|
83088
83094
|
&& passByValue === false
|
|
83089
83095
|
&& isOptional === false
|
|
83090
83096
|
&& type.isGeneric() === false) {
|
|
83091
|
-
after += `let ${
|
|
83097
|
+
after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
|
|
83092
83098
|
if (identifier.getType().getQualifiedName() !== undefined && identifier.getType().getQualifiedName() !== "") {
|
|
83093
|
-
after += `if (${
|
|
83099
|
+
after += `if (${varPrefixed}?.getQualifiedName === undefined || ${varPrefixed}.getQualifiedName() !== "${identifier.getType().getQualifiedName()?.toUpperCase()}") { ${varPrefixed} = undefined; }\n`;
|
|
83094
83100
|
}
|
|
83095
|
-
after += `if (${
|
|
83101
|
+
after += `if (${varPrefixed} === undefined) { ${varPrefixed} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())}.set(${unique}.${varName}); }\n`;
|
|
83096
83102
|
}
|
|
83097
83103
|
else if (identifier.getMeta().includes("importing" /* abaplint.IdentifierMeta.MethodImporting */)
|
|
83098
83104
|
&& type.isGeneric() === true) {
|
|
83099
83105
|
if (isOptional === true) {
|
|
83100
|
-
after += `let ${
|
|
83106
|
+
after += `let ${varPrefixed} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
|
|
83101
83107
|
}
|
|
83102
83108
|
else {
|
|
83103
|
-
after += `let ${
|
|
83109
|
+
after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
|
|
83104
83110
|
}
|
|
83105
83111
|
if (type instanceof abaplint.BasicTypes.NumericGenericType) {
|
|
83106
|
-
after += `if (${
|
|
83107
|
-
${
|
|
83108
|
-
${
|
|
83112
|
+
after += `if (${varPrefixed}.constructor.name === "Character") {
|
|
83113
|
+
${varPrefixed} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};
|
|
83114
|
+
${varPrefixed}.set(${unique}?.${varName});
|
|
83109
83115
|
}\n`;
|
|
83110
83116
|
}
|
|
83111
83117
|
}
|
|
@@ -83113,19 +83119,19 @@ class MethodImplementationTranspiler {
|
|
|
83113
83119
|
&& type.isGeneric() === false) {
|
|
83114
83120
|
after += new transpile_types_1.TranspileTypes().declare(identifier) + "\n";
|
|
83115
83121
|
// note: it might be nessesary to do a type conversion, eg char is passed to xstring parameter
|
|
83116
|
-
after += "if (" + unique + " && " + unique + "." + varName + ") {" +
|
|
83122
|
+
after += "if (" + unique + " && " + unique + "." + varName + ") {" + varPrefixed + ".set(" + unique + "." + varName + ");}\n";
|
|
83117
83123
|
}
|
|
83118
83124
|
else {
|
|
83119
83125
|
after += new transpile_types_1.TranspileTypes().declare(identifier) + "\n";
|
|
83120
|
-
after += "if (" + unique + " && " + unique + "." + varName + ") {" +
|
|
83126
|
+
after += "if (" + unique + " && " + unique + "." + varName + ") {" + varPrefixed + " = " + unique + "." + varName + ";}\n";
|
|
83121
83127
|
}
|
|
83122
83128
|
if (parameterDefault) {
|
|
83123
83129
|
const val = this.buildDefault(parameterDefault, traversal, methodDef?.getFilename());
|
|
83124
83130
|
if (passByValue === true || identifier.getMeta().includes("changing" /* abaplint.IdentifierMeta.MethodChanging */)) {
|
|
83125
|
-
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" +
|
|
83131
|
+
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" + varPrefixed + ".set(" + val + ");}\n";
|
|
83126
83132
|
}
|
|
83127
83133
|
else {
|
|
83128
|
-
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" +
|
|
83134
|
+
after += "if (" + unique + " === undefined || " + unique + "." + varName + " === undefined) {" + varPrefixed + " = " + val + ";}\n";
|
|
83129
83135
|
}
|
|
83130
83136
|
}
|
|
83131
83137
|
}
|
|
@@ -86746,6 +86752,7 @@ const StructureTranspilers = __webpack_require__(/*! ./structures */ "./node_mod
|
|
|
86746
86752
|
const transpile_types_1 = __webpack_require__(/*! ./transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
86747
86753
|
const chunk_1 = __webpack_require__(/*! ./chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
86748
86754
|
const expressions_1 = __webpack_require__(/*! ./expressions */ "./node_modules/@abaplint/transpiler/build/src/expressions/index.js");
|
|
86755
|
+
const keywords_1 = __webpack_require__(/*! ./keywords */ "./node_modules/@abaplint/transpiler/build/src/keywords.js");
|
|
86749
86756
|
class Traversal {
|
|
86750
86757
|
constructor(spaghetti, file, obj, reg, options) {
|
|
86751
86758
|
this.scopeCache = undefined;
|
|
@@ -86758,6 +86765,13 @@ class Traversal {
|
|
|
86758
86765
|
static escapeNamespace(name) {
|
|
86759
86766
|
return name?.replace(/\//g, "$");
|
|
86760
86767
|
}
|
|
86768
|
+
static prefixVariable(name) {
|
|
86769
|
+
// TODO: performace, make this a hash lookup?,
|
|
86770
|
+
if (keywords_1.DEFAULT_KEYWORDS.some(k => k === name)) {
|
|
86771
|
+
return "$" + name;
|
|
86772
|
+
}
|
|
86773
|
+
return name + "";
|
|
86774
|
+
}
|
|
86761
86775
|
getCurrentObject() {
|
|
86762
86776
|
return this.obj;
|
|
86763
86777
|
}
|
|
@@ -87968,7 +87982,7 @@ class Validation {
|
|
|
87968
87982
|
}
|
|
87969
87983
|
exports.config.rules.forbidden_identifier.check = ["^unique\\d+$"];
|
|
87970
87984
|
if (this.options?.keywords === undefined) {
|
|
87971
|
-
for (const d of keywords_1.
|
|
87985
|
+
for (const d of keywords_1.DEFAULT_KEYWORDS) {
|
|
87972
87986
|
const add = "^" + d + "$";
|
|
87973
87987
|
exports.config.rules["forbidden_identifier"]["check"].push(add);
|
|
87974
87988
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.12",
|
|
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.12",
|
|
30
30
|
"@types/glob": "^8.1.0",
|
|
31
31
|
"glob": "=7.2.0",
|
|
32
32
|
"@types/progress": "^2.0.7",
|