@abaplint/transpiler 2.0.68 → 2.0.71

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.
@@ -32,12 +32,7 @@ class FieldLengthTranspiler {
32
32
  }
33
33
  }
34
34
  }
35
- if (/^\d+$/.test(ret)) {
36
- return new chunk_1.Chunk(ret);
37
- }
38
- else {
39
- return new chunk_1.Chunk(ret + ".get()");
40
- }
35
+ return new chunk_1.Chunk(ret);
41
36
  }
42
37
  }
43
38
  exports.FieldLengthTranspiler = FieldLengthTranspiler;
@@ -32,12 +32,7 @@ class FieldOffsetTranspiler {
32
32
  }
33
33
  }
34
34
  }
35
- if (/^\d+$/.test(ret)) {
36
- return new chunk_1.Chunk(ret);
37
- }
38
- else {
39
- return new chunk_1.Chunk(ret + ".get()");
40
- }
35
+ return new chunk_1.Chunk(ret);
41
36
  }
42
37
  }
43
38
  exports.FieldOffsetTranspiler = FieldOffsetTranspiler;
@@ -3,5 +3,5 @@ import { IStatementTranspiler } from "./_statement_transpiler";
3
3
  import { Traversal } from "../traversal";
4
4
  import { Chunk } from "../chunk";
5
5
  export declare class GetLocaleTranspiler implements IStatementTranspiler {
6
- transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
6
+ transpile(node: abaplint.Nodes.StatementNode, traversal: Traversal): Chunk;
7
7
  }
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetLocaleTranspiler = void 0;
4
+ const abaplint = require("@abaplint/core");
4
5
  const chunk_1 = require("../chunk");
5
6
  class GetLocaleTranspiler {
6
- transpile(_node, _traversal) {
7
- return new chunk_1.Chunk(`throw new Error("GetLocale, transpiler todo");`);
7
+ transpile(node, traversal) {
8
+ const t = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Target));
9
+ return new chunk_1.Chunk(`abap.statements.getLocale(${t.getCode()});`);
8
10
  }
9
11
  }
10
12
  exports.GetLocaleTranspiler = GetLocaleTranspiler;
@@ -7,7 +7,7 @@ class PerformTranspiler {
7
7
  transpile(node, _traversal) {
8
8
  const formName = node.findDirectExpression(abaplint.Expressions.FormName);
9
9
  if (formName === undefined) {
10
- throw new Error("PerformTranspiler, FormName not found");
10
+ throw new Error("PerformTranspiler, FormName not found: " + node.concatTokens());
11
11
  }
12
12
  // todo, parameters
13
13
  if (node.concatTokens().includes(" IN PROGRAM ")) {
@@ -47,13 +47,14 @@ class ReadTableTranspiler {
47
47
  const conds = [];
48
48
  for (let i = 0; i < components.length; i++) {
49
49
  const s = traversal.traverse(sources[i]).getCode();
50
+ const field = components[i].concatTokens().toLowerCase().replace("-", ".get().");
50
51
  if (s.includes("await")) {
51
52
  const id = unique_identifier_1.UniqueIdentifier.get();
52
53
  prefix += "const " + id + " = " + s + ";\n";
53
- conds.push("abap.compare.eq(i." + components[i].concatTokens().toLowerCase() + ", " + id + ")");
54
+ conds.push("abap.compare.eq(i." + field + ", " + id + ")");
54
55
  }
55
56
  else {
56
- conds.push("abap.compare.eq(i." + components[i].concatTokens().toLowerCase() + ", " + s + ")");
57
+ conds.push("abap.compare.eq(i." + field + ", " + s + ")");
57
58
  }
58
59
  }
59
60
  extra.push("withKey: (i) => {return " + conds.join(" && ") + ";}");
@@ -3,5 +3,5 @@ import { IStatementTranspiler } from "./_statement_transpiler";
3
3
  import { Traversal } from "../traversal";
4
4
  import { Chunk } from "../chunk";
5
5
  export declare class SetLocaleTranspiler implements IStatementTranspiler {
6
- transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
6
+ transpile(node: abaplint.Nodes.StatementNode, traversal: Traversal): Chunk;
7
7
  }
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SetLocaleTranspiler = void 0;
4
+ const abaplint = require("@abaplint/core");
4
5
  const chunk_1 = require("../chunk");
5
6
  class SetLocaleTranspiler {
6
- transpile(_node, _traversal) {
7
- return new chunk_1.Chunk(`throw new Error("SetLocale, transpiler todo");`);
7
+ transpile(node, traversal) {
8
+ const s = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Source));
9
+ return new chunk_1.Chunk(`abap.statements.setLocale(${s.getCode()});`);
8
10
  }
9
11
  }
10
12
  exports.SetLocaleTranspiler = SetLocaleTranspiler;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InterfaceTranspiler = void 0;
4
4
  const abaplint = require("@abaplint/core");
5
+ const traversal_1 = require("../traversal");
5
6
  const transpile_types_1 = require("../transpile_types");
6
7
  const expressions_1 = require("../expressions");
7
8
  const chunk_1 = require("../chunk");
@@ -13,6 +14,7 @@ class InterfaceTranspiler {
13
14
  for (const c of node.getChildren()) {
14
15
  if (c instanceof abaplint.Nodes.StatementNode && c.get() instanceof abaplint.Statements.Interface) {
15
16
  name = (_a = c.findDirectExpression(abaplint.Expressions.InterfaceName)) === null || _a === void 0 ? void 0 : _a.getFirstToken().getStr().toLowerCase();
17
+ name = traversal_1.Traversal.escapeClassName(name);
16
18
  ret += `class ${name} {\n`;
17
19
  }
18
20
  else if (c instanceof abaplint.Nodes.StatementNode && c.get() instanceof abaplint.Statements.EndInterface) {
@@ -40,7 +42,7 @@ class InterfaceTranspiler {
40
42
  || identifier.getMeta().includes("read_only" /* abaplint.IdentifierMeta.ReadOnly */) === false) {
41
43
  continue;
42
44
  }
43
- const interfaceName = node.getFirstToken().getStr().toLowerCase();
45
+ const interfaceName = traversal_1.Traversal.escapeClassName(node.getFirstToken().getStr().toLowerCase());
44
46
  const name = interfaceName + "." + interfaceName + "$" + n.toLowerCase();
45
47
  ret += name + " = " + new transpile_types_1.TranspileTypes().toType(identifier.getType()) + ";\n";
46
48
  const constantStatement = traversal.findStatementInFile(identifier.getStart());
@@ -282,7 +282,7 @@ class Traversal {
282
282
  }
283
283
  // constants can be accessed both statically and via reference
284
284
  for (const c of def.getAttributes().getConstants()) {
285
- ret += "this." + c.getName().toLowerCase() + " = " + def.getName().toLowerCase() + "." + c.getName().toLowerCase() + ";\n";
285
+ ret += "this." + c.getName().toLowerCase() + " = " + Traversal.escapeClassName(def.getName().toLowerCase()) + "." + c.getName().toLowerCase() + ";\n";
286
286
  }
287
287
  return ret;
288
288
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler",
3
- "version": "2.0.68",
3
+ "version": "2.0.71",
4
4
  "description": "Transpiler",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/src/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "author": "abaplint",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@abaplint/core": "^2.91.8",
31
+ "@abaplint/core": "^2.91.9",
32
32
  "source-map": "^0.7.4"
33
33
  },
34
34
  "devDependencies": {