@abaplint/transpiler 1.6.57 → 1.6.61

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.
@@ -51,7 +51,8 @@ class FieldChainTranspiler {
51
51
  this.addGetOffset = true;
52
52
  }
53
53
  else if (c instanceof core_1.Nodes.ExpressionNode
54
- && c.get() instanceof core_1.Expressions.FieldLength) {
54
+ && c.get() instanceof core_1.Expressions.FieldLength
55
+ && c.concatTokens() !== "(*)") {
55
56
  extra.push("length: " + new _1.FieldLengthTranspiler().transpile(c, traversal).getCode());
56
57
  this.addGetOffset = true;
57
58
  }
@@ -27,7 +27,7 @@ class MethodCallTranspiler {
27
27
  throw new Error("MethodCallTranspiler, unexpected node");
28
28
  }
29
29
  const ret = new chunk_1.Chunk();
30
- ret.append(name, nameToken, traversal);
30
+ ret.append(name.replace("~", "$"), nameToken, traversal);
31
31
  ret.appendChunk(new method_call_param_1.MethodCallParam(m === null || m === void 0 ? void 0 : m.def).transpile(step, traversal));
32
32
  ret.appendString(")");
33
33
  return ret;
@@ -43,6 +43,12 @@ class MethodCallChainTranspiler {
43
43
  else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr() === "=>") {
44
44
  ret.append(".", c, traversal);
45
45
  }
46
+ else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr() === "-") {
47
+ ret.append(".get()", c, traversal);
48
+ }
49
+ else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.ComponentName) {
50
+ ret.append("." + c.concatTokens().toLowerCase(), c, traversal);
51
+ }
46
52
  else {
47
53
  ret.append("MethodCallChainTranspilerTodo-" + c.get().constructor.name, c, traversal);
48
54
  }
@@ -0,0 +1,7 @@
1
+ import * as abaplint from "@abaplint/core";
2
+ import { IStatementTranspiler } from "./_statement_transpiler";
3
+ import { Traversal } from "../traversal";
4
+ import { Chunk } from "../chunk";
5
+ export declare class CollectTranspiler implements IStatementTranspiler {
6
+ transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CollectTranspiler = void 0;
4
+ const chunk_1 = require("../chunk");
5
+ class CollectTranspiler {
6
+ transpile(_node, _traversal) {
7
+ return new chunk_1.Chunk(`throw new Error("Collect, transpiler todo");`);
8
+ }
9
+ }
10
+ exports.CollectTranspiler = CollectTranspiler;
11
+ //# sourceMappingURL=collect.js.map
@@ -9,7 +9,8 @@ class DeleteInternalTranspiler {
9
9
  const extra = [];
10
10
  const where = node.findFirstExpression(abaplint.Expressions.ComponentCond);
11
11
  if (where) {
12
- extra.push("where: " + traversal.traverse(where).getCode());
12
+ // todo, replacing "await" is a hack
13
+ extra.push("where: " + traversal.traverse(where).getCode().replace("await ", ""));
13
14
  }
14
15
  // todo, this is not completely correct, fields might have the name ADJACENT
15
16
  // comparisons should be on table key unless other is specified, but we're unaware
@@ -12,14 +12,14 @@ class DoTranspiler {
12
12
  const source = new expressions_1.SourceTranspiler(true).transpile(found, traversal).getCode();
13
13
  const idSource = unique_identifier_1.UniqueIdentifier.get();
14
14
  const id = unique_identifier_1.UniqueIdentifier.get();
15
- return new chunk_1.Chunk(`const ${idSource} = ${source};
16
- for (let ${id} = 0; ${id} < ${idSource}; ${id}++) {
15
+ return new chunk_1.Chunk(`const ${idSource} = ${source};
16
+ for (let ${id} = 0; ${id} < ${idSource}; ${id}++) {
17
17
  abap.builtin.sy.get().index.set(${id} + 1);`);
18
18
  }
19
19
  else {
20
20
  const unique = unique_identifier_1.UniqueIdentifier.get();
21
- return new chunk_1.Chunk(`let ${unique} = 1;
22
- while (true) {
21
+ return new chunk_1.Chunk(`let ${unique} = 1;
22
+ while (true) {
23
23
  abap.builtin.sy.get().index.set(${unique}++);`);
24
24
  }
25
25
  }
@@ -12,6 +12,7 @@ export * from "./class_deferred";
12
12
  export * from "./class_implementation";
13
13
  export * from "./class_local_friends";
14
14
  export * from "./clear";
15
+ export * from "./collect";
15
16
  export * from "./commit";
16
17
  export * from "./concatenate";
17
18
  export * from "./condense";
@@ -62,6 +63,8 @@ export * from "./move";
62
63
  export * from "./parameter";
63
64
  export * from "./perform";
64
65
  export * from "./raise";
66
+ export * from "./read_report";
67
+ export * from "./read_line";
65
68
  export * from "./read_table";
66
69
  export * from "./refresh";
67
70
  export * from "./replace";
@@ -71,6 +74,7 @@ export * from "./rollback";
71
74
  export * from "./select";
72
75
  export * from "./set_bit";
73
76
  export * from "./set_handler";
77
+ export * from "./set_locale";
74
78
  export * from "./set_parameter";
75
79
  export * from "./shift";
76
80
  export * from "./sort";
@@ -24,6 +24,7 @@ __exportStar(require("./class_deferred"), exports);
24
24
  __exportStar(require("./class_implementation"), exports);
25
25
  __exportStar(require("./class_local_friends"), exports);
26
26
  __exportStar(require("./clear"), exports);
27
+ __exportStar(require("./collect"), exports);
27
28
  __exportStar(require("./commit"), exports);
28
29
  __exportStar(require("./concatenate"), exports);
29
30
  __exportStar(require("./condense"), exports);
@@ -74,6 +75,8 @@ __exportStar(require("./move"), exports);
74
75
  __exportStar(require("./parameter"), exports);
75
76
  __exportStar(require("./perform"), exports);
76
77
  __exportStar(require("./raise"), exports);
78
+ __exportStar(require("./read_report"), exports);
79
+ __exportStar(require("./read_line"), exports);
77
80
  __exportStar(require("./read_table"), exports);
78
81
  __exportStar(require("./refresh"), exports);
79
82
  __exportStar(require("./replace"), exports);
@@ -83,6 +86,7 @@ __exportStar(require("./rollback"), exports);
83
86
  __exportStar(require("./select"), exports);
84
87
  __exportStar(require("./set_bit"), exports);
85
88
  __exportStar(require("./set_handler"), exports);
89
+ __exportStar(require("./set_locale"), exports);
86
90
  __exportStar(require("./set_parameter"), exports);
87
91
  __exportStar(require("./shift"), exports);
88
92
  __exportStar(require("./sort"), exports);
@@ -0,0 +1,7 @@
1
+ import * as abaplint from "@abaplint/core";
2
+ import { IStatementTranspiler } from "./_statement_transpiler";
3
+ import { Traversal } from "../traversal";
4
+ import { Chunk } from "../chunk";
5
+ export declare class ReadLineTranspiler implements IStatementTranspiler {
6
+ transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReadLineTranspiler = void 0;
4
+ const chunk_1 = require("../chunk");
5
+ class ReadLineTranspiler {
6
+ transpile(_node, _traversal) {
7
+ return new chunk_1.Chunk(`throw new Error("ReadLine, transpiler todo");`);
8
+ }
9
+ }
10
+ exports.ReadLineTranspiler = ReadLineTranspiler;
11
+ //# sourceMappingURL=read_line.js.map
@@ -0,0 +1,7 @@
1
+ import * as abaplint from "@abaplint/core";
2
+ import { IStatementTranspiler } from "./_statement_transpiler";
3
+ import { Traversal } from "../traversal";
4
+ import { Chunk } from "../chunk";
5
+ export declare class ReadReportTranspiler implements IStatementTranspiler {
6
+ transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReadReportTranspiler = void 0;
4
+ const chunk_1 = require("../chunk");
5
+ class ReadReportTranspiler {
6
+ transpile(_node, _traversal) {
7
+ return new chunk_1.Chunk(`throw new Error("ReadReport, transpiler todo");`);
8
+ }
9
+ }
10
+ exports.ReadReportTranspiler = ReadReportTranspiler;
11
+ //# sourceMappingURL=read_report.js.map
@@ -0,0 +1,7 @@
1
+ import * as abaplint from "@abaplint/core";
2
+ import { IStatementTranspiler } from "./_statement_transpiler";
3
+ import { Traversal } from "../traversal";
4
+ import { Chunk } from "../chunk";
5
+ export declare class SetLocaleTranspiler implements IStatementTranspiler {
6
+ transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetLocaleTranspiler = void 0;
4
+ const chunk_1 = require("../chunk");
5
+ class SetLocaleTranspiler {
6
+ transpile(_node, _traversal) {
7
+ return new chunk_1.Chunk(`throw new Error("SetLocale, transpiler todo");`);
8
+ }
9
+ }
10
+ exports.SetLocaleTranspiler = SetLocaleTranspiler;
11
+ //# sourceMappingURL=set_locale.js.map
@@ -4,24 +4,24 @@ exports.UnitTest = void 0;
4
4
  const abaplint = require("@abaplint/core");
5
5
  class UnitTest {
6
6
  run(reg, dbSetup, skip) {
7
- let ret = `import fs from "fs";
8
- import path from "path";
9
- import runtime from "@abaplint/runtime";
10
- import {dirname} from 'path';
11
- import {fileURLToPath} from 'url';
12
- global.abap = new runtime.ABAP();
13
- ${this.buildImports(reg)}
14
- const __dirname = dirname(fileURLToPath(import.meta.url));
15
- async function initDB() {
16
- return global.abap.initDB(\`${dbSetup}\`);
17
- }
18
-
19
- async function run() {
20
- await initDB();
21
- const unit = new runtime.UnitTestResult();
22
- let clas;
23
- let locl;
24
- let meth;
7
+ let ret = `import fs from "fs";
8
+ import path from "path";
9
+ import runtime from "@abaplint/runtime";
10
+ import {dirname} from 'path';
11
+ import {fileURLToPath} from 'url';
12
+ global.abap = new runtime.ABAP();
13
+ ${this.buildImports(reg)}
14
+ const __dirname = dirname(fileURLToPath(import.meta.url));
15
+ async function initDB() {
16
+ return global.abap.initDB(\`${dbSetup}\`);
17
+ }
18
+
19
+ async function run() {
20
+ await initDB();
21
+ const unit = new runtime.UnitTestResult();
22
+ let clas;
23
+ let locl;
24
+ let meth;
25
25
  try {\n`;
26
26
  for (const obj of reg.getObjects()) {
27
27
  if (reg.isDependency(obj) || !(obj instanceof abaplint.Objects.Class)) {
@@ -36,8 +36,8 @@ try {\n`;
36
36
  || def.methods.length === 0) {
37
37
  continue;
38
38
  }
39
- ret += `{
40
- const {${def.name}} = await import("./${obj.getName().toLowerCase()}.${obj.getType().toLowerCase()}.testclasses.mjs");
39
+ ret += `{
40
+ const {${def.name}} = await import("./${obj.getName().toLowerCase()}.${obj.getType().toLowerCase()}.testclasses.mjs");
41
41
  locl = clas.addTestClass("${def.name}");\n`;
42
42
  ret += `if (${def.name}.class_setup) await ${def.name}.class_setup();\n`;
43
43
  for (const m of def.methods) {
@@ -65,24 +65,24 @@ locl = clas.addTestClass("${def.name}");\n`;
65
65
  }
66
66
  }
67
67
  }
68
- ret += `// -------------------END-------------------
69
- console.log(abap.console.get());
70
- fs.writeFileSync(__dirname + path.sep + "output.xml", unit.xUnitXML());
71
- } catch (e) {
72
- if (meth) {
73
- meth.fail();
74
- }
75
- console.log(abap.console.get());
76
- fs.writeFileSync(__dirname + path.sep + "output.xml", unit.xUnitXML());
77
- throw e;
78
- }
79
- }
80
-
81
- run().then(() => {
82
- process.exit();
83
- }).catch((err) => {
84
- console.log(err);
85
- process.exit(1);
68
+ ret += `// -------------------END-------------------
69
+ console.log(abap.console.get());
70
+ fs.writeFileSync(__dirname + path.sep + "output.xml", unit.xUnitXML());
71
+ } catch (e) {
72
+ if (meth) {
73
+ meth.fail();
74
+ }
75
+ console.log(abap.console.get());
76
+ fs.writeFileSync(__dirname + path.sep + "output.xml", unit.xUnitXML());
77
+ throw e;
78
+ }
79
+ }
80
+
81
+ run().then(() => {
82
+ process.exit();
83
+ }).catch((err) => {
84
+ console.log(err);
85
+ process.exit(1);
86
86
  });`;
87
87
  return ret;
88
88
  }
package/package.json CHANGED
@@ -1,41 +1,41 @@
1
- {
2
- "name": "@abaplint/transpiler",
3
- "version": "1.6.57",
4
- "description": "Transpiler",
5
- "main": "build/src/index.js",
6
- "typings": "build/src/index.d.ts",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/abaplint/transpiler.git"
10
- },
11
- "scripts": {
12
- "compile": "tsc",
13
- "prepublishOnly": "rm -rf build && npm run test",
14
- "pretest": "npm run compile",
15
- "test": "mocha"
16
- },
17
- "mocha": {
18
- "recursive": true,
19
- "reporter": "progress",
20
- "spec": "build/test/**/*.js",
21
- "require": "source-map-support/register"
22
- },
23
- "keywords": [
24
- "ABAP",
25
- "abaplint"
26
- ],
27
- "author": "abaplint",
28
- "license": "MIT",
29
- "dependencies": {
30
- "@abaplint/core": "^2.79.35",
31
- "source-map": "^0.7.3"
32
- },
33
- "devDependencies": {
34
- "@types/chai": "^4.2.22",
35
- "@types/mocha": "^9.0.0",
36
- "chai": "^4.3.4",
37
- "mocha": "^9.1.3",
38
- "source-map-support": "^0.5.20",
39
- "typescript": "^4.4.4"
40
- }
41
- }
1
+ {
2
+ "name": "@abaplint/transpiler",
3
+ "version": "1.6.61",
4
+ "description": "Transpiler",
5
+ "main": "build/src/index.js",
6
+ "typings": "build/src/index.d.ts",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/abaplint/transpiler.git"
10
+ },
11
+ "scripts": {
12
+ "compile": "tsc",
13
+ "prepublishOnly": "rm -rf build && npm run test",
14
+ "pretest": "npm run compile",
15
+ "test": "mocha"
16
+ },
17
+ "mocha": {
18
+ "recursive": true,
19
+ "reporter": "progress",
20
+ "spec": "build/test/**/*.js",
21
+ "require": "source-map-support/register"
22
+ },
23
+ "keywords": [
24
+ "ABAP",
25
+ "abaplint"
26
+ ],
27
+ "author": "abaplint",
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "@abaplint/core": "^2.79.35",
31
+ "source-map": "^0.7.3"
32
+ },
33
+ "devDependencies": {
34
+ "@types/chai": "^4.2.22",
35
+ "@types/mocha": "^9.0.0",
36
+ "chai": "^4.3.4",
37
+ "mocha": "^9.1.3",
38
+ "source-map-support": "^0.5.20",
39
+ "typescript": "^4.4.4"
40
+ }
41
+ }