@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.
Files changed (2) hide show
  1. package/build/bundle.js +37 -23
  2. 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.defaultKeywords = void 0;
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.defaultKeywords = [
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.defaultKeywords;
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 ${varName} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
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 ${varName} = ${unique}?.${varName};\n`;
83097
+ after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
83092
83098
  if (identifier.getType().getQualifiedName() !== undefined && identifier.getType().getQualifiedName() !== "") {
83093
- after += `if (${varName}?.getQualifiedName === undefined || ${varName}.getQualifiedName() !== "${identifier.getType().getQualifiedName()?.toUpperCase()}") { ${varName} = undefined; }\n`;
83099
+ after += `if (${varPrefixed}?.getQualifiedName === undefined || ${varPrefixed}.getQualifiedName() !== "${identifier.getType().getQualifiedName()?.toUpperCase()}") { ${varPrefixed} = undefined; }\n`;
83094
83100
  }
83095
- after += `if (${varName} === undefined) { ${varName} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())}.set(${unique}.${varName}); }\n`;
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 ${varName} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
83106
+ after += `let ${varPrefixed} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
83101
83107
  }
83102
83108
  else {
83103
- after += `let ${varName} = ${unique}?.${varName};\n`;
83109
+ after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
83104
83110
  }
83105
83111
  if (type instanceof abaplint.BasicTypes.NumericGenericType) {
83106
- after += `if (${varName}.constructor.name === "Character") {
83107
- ${varName} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};
83108
- ${varName}.set(${unique}?.${varName});
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 + ") {" + varName + ".set(" + unique + "." + varName + ");}\n";
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 + ") {" + varName + " = " + unique + "." + varName + ";}\n";
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) {" + varName + ".set(" + val + ");}\n";
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) {" + varName + " = " + val + ";}\n";
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.defaultKeywords) {
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.11",
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.11",
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",