@abaplint/transpiler-cli 2.11.29 → 2.11.31

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 +35 -18
  2. package/package.json +2 -2
package/build/bundle.js CHANGED
@@ -79530,33 +79530,43 @@ const method_call_param_1 = __webpack_require__(/*! ./method_call_param */ "./no
79530
79530
  const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
79531
79531
  class MethodCallTranspiler {
79532
79532
  transpile(node, traversal) {
79533
+ let post = "";
79533
79534
  const nameToken = node.findDirectExpression(core_1.Expressions.MethodName)?.getFirstToken();
79534
79535
  if (nameToken === undefined) {
79535
79536
  throw new Error("MethodCallTranspiler, name not found");
79536
79537
  }
79538
+ const scope = traversal.findCurrentScopeByToken(nameToken);
79539
+ const m = traversal.findMethodReference(nameToken, scope);
79537
79540
  let name = nameToken.getStr().toLowerCase();
79538
79541
  if (traversal.isBuiltinMethod(nameToken)) {
79539
- name = "abap.builtin." + name;
79542
+ // todo: this is not correct, the method name might be shadowed
79543
+ name = "abap.builtin." + name + "(";
79544
+ if (name === "abap.builtin.line_exists(" || name === "abap.builtin.line_index(") {
79545
+ name += "() => {";
79546
+ post = "}";
79547
+ }
79540
79548
  }
79541
- const scope = traversal.findCurrentScopeByToken(nameToken);
79542
- // it might be aliased?
79543
- const m = traversal.findMethodReference(nameToken, scope);
79544
- if (m?.name && traversal.isBuiltinMethod(nameToken) === false) {
79549
+ else if (m?.name) {
79545
79550
  name = m.name.toLowerCase();
79546
- }
79547
- name = traversal_1.Traversal.escapeNamespace(name.replace("~", "$"));
79548
- if (m?.def.getVisibility() === core_1.Visibility.Private
79549
- && m.def.isStatic() === false) {
79550
- const id = scope?.getParent()?.getParent()?.getIdentifier();
79551
- if (id?.stype === core_1.ScopeType.ClassImplementation
79552
- && m.def.getClassName().toUpperCase() === id.sname.toUpperCase()) {
79553
- name = "#" + name;
79554
- }
79555
- else {
79556
- name = `FRIENDS_ACCESS_INSTANCE["${name}"]`;
79551
+ name = traversal_1.Traversal.escapeNamespace(name.replace("~", "$"));
79552
+ if (m?.def.getVisibility() === core_1.Visibility.Private
79553
+ && m.def.isStatic() === false) {
79554
+ const id = scope?.getParent()?.getParent()?.getIdentifier();
79555
+ if (id?.stype === core_1.ScopeType.ClassImplementation
79556
+ && m.def.getClassName().toUpperCase() === id.sname.toUpperCase()) {
79557
+ name = "#" + name;
79558
+ }
79559
+ else {
79560
+ name = `FRIENDS_ACCESS_INSTANCE["${name}"]`;
79561
+ }
79557
79562
  }
79563
+ name = name + "(";
79564
+ }
79565
+ else {
79566
+ // todo: this should never happen?
79567
+ name = traversal_1.Traversal.escapeNamespace(name.replace("~", "$"));
79568
+ name = name + "(";
79558
79569
  }
79559
- name = name + "(";
79560
79570
  const step = node.findDirectExpression(core_1.Expressions.MethodCallParam);
79561
79571
  if (step === undefined) {
79562
79572
  throw new Error("MethodCallTranspiler, unexpected node");
@@ -79564,7 +79574,7 @@ class MethodCallTranspiler {
79564
79574
  const ret = new chunk_1.Chunk();
79565
79575
  ret.append(name, nameToken, traversal);
79566
79576
  ret.appendChunk(new method_call_param_1.MethodCallParamTranspiler(m?.def).transpile(step, traversal));
79567
- ret.appendString(")");
79577
+ ret.appendString(post + ")");
79568
79578
  return ret;
79569
79579
  }
79570
79580
  }
@@ -81349,6 +81359,9 @@ class TargetTranspiler {
81349
81359
  ret.append(traversal_1.Traversal.prefixVariable(traversal_1.Traversal.escapeNamespace(prefix)), c, traversal);
81350
81360
  context = scope?.findVariable(c.getFirstToken().getStr())?.getType();
81351
81361
  }
81362
+ else if (c.get() instanceof core_1.Expressions.TableExpression && c instanceof core_1.Nodes.ExpressionNode) {
81363
+ ret = new _1.TableExpressionTranspiler().transpile(c, traversal, ret);
81364
+ }
81352
81365
  else if (c.get() instanceof core_1.Expressions.InlineData && c instanceof core_1.Nodes.ExpressionNode) {
81353
81366
  const targetField = c.findDirectExpression(core_1.Expressions.TargetField);
81354
81367
  if (targetField === undefined) {
@@ -81545,6 +81558,10 @@ class ValueBodyTranspiler {
81545
81558
  const rowType = context.getRowType();
81546
81559
  ret.appendString(new value_body_line_1.ValueBodyLineTranspiler().transpile(rowType, child, traversal, extraFields).getCode());
81547
81560
  }
81561
+ else if (child.get() instanceof core_1.Expressions.Source && child instanceof core_1.Nodes.ExpressionNode) {
81562
+ const source = traversal.traverse(child);
81563
+ ret.appendString(".set(" + source.getCode() + ".clone())");
81564
+ }
81548
81565
  else {
81549
81566
  throw new Error("ValueBodyTranspiler, unknown " + child.get().constructor.name + " \"" + child.concatTokens()) + "\"";
81550
81567
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.11.29",
3
+ "version": "2.11.31",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -28,7 +28,7 @@
28
28
  "license": "MIT",
29
29
  "devDependencies": {
30
30
  "@abaplint/core": "^2.113.174",
31
- "@abaplint/transpiler": "^2.11.29",
31
+ "@abaplint/transpiler": "^2.11.31",
32
32
  "@types/glob": "^8.1.0",
33
33
  "@types/node": "^24.2.1",
34
34
  "@types/progress": "^2.0.7",