@abaplint/transpiler 2.11.54 → 2.11.56

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.
@@ -12,26 +12,30 @@ class MethodCallBodyTranspiler {
12
12
  }
13
13
  transpile(node, traversal) {
14
14
  const ret = new chunk_1.Chunk();
15
- let pt = false;
15
+ // let pt = false;
16
16
  for (const c of node.getChildren()) {
17
17
  if (c instanceof core_1.Nodes.TokenNode) {
18
+ /*
18
19
  if (c.concatTokens().toUpperCase() === "PARAMETER") {
19
- // PARAMETER-TABLE
20
- pt = true;
21
- }
22
- else if (c.concatTokens().toUpperCase() === "EXCEPTION") {
23
- // todo: handle EXCEPTION-TABLE, for now just produce valid javascript
24
- return ret;
20
+ // PARAMETER-TABLE
21
+ pt = true;
22
+ } else if(c.concatTokens().toUpperCase() === "EXCEPTION") {
23
+ // todo: handle EXCEPTION-TABLE, for now just produce valid javascript
24
+ return ret;
25
25
  }
26
+ */
26
27
  }
27
28
  else if (c.get() instanceof abaplint.Expressions.MethodCallParam) {
28
29
  ret.appendChunk(new method_call_param_1.MethodCallParamTranspiler(this.m).transpile(c, traversal));
29
30
  }
30
31
  else {
31
32
  ret.appendChunk(traversal.traverse(c));
33
+ /*
32
34
  if (pt === true) {
33
- ret.appendString(".array().reduce((a, v) => ({ ...a, [v.get().name.get().toLowerCase().trimEnd()]: v.get().value.dereference()}), {})");
35
+ ret.appendString(".array().reduce((a, v) => ({ ...a, [v.get().name.get(
36
+ ).toLowerCase().trimEnd()]: v.get().value.dereference()}), {})");
34
37
  }
38
+ */
35
39
  }
36
40
  }
37
41
  return ret;
@@ -22,6 +22,7 @@ class HandleDataElement {
22
22
  "type": ${transpile_types_1.TranspileTypes.toType(type)},
23
23
  "domain": ${JSON.stringify(obj.getDomainName())},
24
24
  "fixedValues": ${JSON.stringify(fixedValues)},
25
+ "description": ${JSON.stringify(obj.getDescription())},
25
26
  };`);
26
27
  const output = {
27
28
  object: {
@@ -15,6 +15,7 @@ class HandleTable {
15
15
  "objectType": "TABL",
16
16
  "type": ${transpile_types_1.TranspileTypes.toType(type)},
17
17
  "keyFields": ${JSON.stringify(obj.listKeys(reg))},
18
+ "description": ${JSON.stringify(obj.getDescription())},
18
19
  };`);
19
20
  const output = {
20
21
  object: {
@@ -13,6 +13,7 @@ class HandleTableType {
13
13
  const chunk = new chunk_1.Chunk().appendString(`abap.DDIC["${obj.getName().toUpperCase()}"] = {
14
14
  "objectType": "TTYP",
15
15
  "type": ${transpile_types_1.TranspileTypes.toType(type)},
16
+ "description": ${JSON.stringify(obj.getDescription())},
16
17
  };`);
17
18
  const output = {
18
19
  object: {
@@ -36,14 +36,25 @@ class CallTranspiler {
36
36
  const methodSource = node.findDirectExpression(abaplint.Expressions.MethodSource);
37
37
  if (methodSource) {
38
38
  let body = "";
39
+ let pre = "";
40
+ let post = "";
39
41
  const nameToken = methodSource.getLastChild()?.getFirstToken();
40
42
  const m = nameToken ? traversal.findMethodReference(nameToken, traversal.findCurrentScopeByToken(nameToken)) : undefined;
41
43
  const methodCallBody = node.findDirectExpression(abaplint.Expressions.MethodCallBody);
42
44
  if (methodCallBody) {
43
- body = new expressions_1.MethodCallBodyTranspiler(m?.def).transpile(methodCallBody, traversal).getCode();
45
+ if (methodCallBody.findDirectTokenByText("EXCEPTION")) {
46
+ throw new Error("EXCEPTION-TABLE not supported, todo");
47
+ }
48
+ if (methodCallBody.findDirectTokenByText("PARAMETER")) {
49
+ const source = traversal.traverse(methodCallBody.findDirectExpression(abaplint.Expressions.Source)).getCode();
50
+ pre = 'await abap.parametersCall(';
51
+ body = ", " + source + ")";
52
+ }
53
+ else {
54
+ body = new expressions_1.MethodCallBodyTranspiler(m?.def).transpile(methodCallBody, traversal).getCode();
55
+ body = "(" + body + ")";
56
+ }
44
57
  }
45
- let pre = "";
46
- let post = "";
47
58
  const receiving = node.findFirstExpression(abaplint.Expressions.MethodParameters)?.findExpressionAfterToken("RECEIVING");
48
59
  if (receiving) {
49
60
  const target = traversal.traverse(receiving.findDirectExpression(abaplint.Expressions.Target));
@@ -86,7 +97,10 @@ class CallTranspiler {
86
97
  }
87
98
  }
88
99
  }
89
- return new chunk_1.Chunk().appendString(ms).appendString("(" + body + ")" + post + ";");
100
+ if (body === "") {
101
+ body = "()";
102
+ }
103
+ return new chunk_1.Chunk().appendString(ms).appendString(body + post + ";");
90
104
  }
91
105
  throw new Error("CallTranspiler, todo");
92
106
  }
@@ -14,10 +14,12 @@ class InterfaceTranspiler {
14
14
  for (const c of node.getChildren()) {
15
15
  if (c instanceof abaplint.Nodes.StatementNode && c.get() instanceof abaplint.Statements.Interface) {
16
16
  const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
17
- name = c.findDirectExpression(abaplint.Expressions.InterfaceName)?.getFirstToken().getStr().toLowerCase();
17
+ const token = c.findDirectExpression(abaplint.Expressions.InterfaceName).getFirstToken();
18
+ name = token.getStr().toLowerCase();
18
19
  name = traversal_1.Traversal.escapeNamespace(name);
19
20
  ret += `class ${name} {\n`;
20
21
  ret += `static INTERNAL_TYPE = 'INTF';\n`;
22
+ ret += `static INTERNAL_NAME = '${traversal.buildInternalName(token.getStr(), def)}';\n`;
21
23
  ret += `static ATTRIBUTES = {${Array.from(traversal.buildAttributes(def, scope)).join(",\n")}};\n`;
22
24
  ret += `static METHODS = {${traversal.buildMethods(def, scope).join(",\n")}};\n`;
23
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler",
3
- "version": "2.11.54",
3
+ "version": "2.11.56",
4
4
  "description": "Transpiler",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/src/index.d.ts",