@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.
Files changed (2) hide show
  1. package/build/bundle.js +45 -27
  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,13 +79351,14 @@ 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
- "char", "class", "const", "continue",
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.defaultKeywords;
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 ${varName} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
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 ${varName} = ${unique}?.${varName};\n`;
83099
+ after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
83092
83100
  if (identifier.getType().getQualifiedName() !== undefined && identifier.getType().getQualifiedName() !== "") {
83093
- after += `if (${varName}?.getQualifiedName === undefined || ${varName}.getQualifiedName() !== "${identifier.getType().getQualifiedName()?.toUpperCase()}") { ${varName} = undefined; }\n`;
83101
+ after += `if (${varPrefixed}?.getQualifiedName === undefined || ${varPrefixed}.getQualifiedName() !== "${identifier.getType().getQualifiedName()?.toUpperCase()}") { ${varPrefixed} = undefined; }\n`;
83094
83102
  }
83095
- after += `if (${varName} === undefined) { ${varName} = ${new transpile_types_1.TranspileTypes().toType(identifier.getType())}.set(${unique}.${varName}); }\n`;
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 ${varName} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
83108
+ after += `let ${varPrefixed} = ${unique}?.${varName} || ${new transpile_types_1.TranspileTypes().toType(identifier.getType())};\n`;
83101
83109
  }
83102
83110
  else {
83103
- after += `let ${varName} = ${unique}?.${varName};\n`;
83111
+ after += `let ${varPrefixed} = ${unique}?.${varName};\n`;
83104
83112
  }
83105
83113
  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});
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 + ") {" + varName + ".set(" + unique + "." + varName + ");}\n";
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 + ") {" + varName + " = " + unique + "." + varName + ";}\n";
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) {" + varName + ".set(" + val + ");}\n";
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) {" + varName + " = " + val + ";}\n";
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.defaultKeywords) {
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.11",
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.11",
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",