@abaplint/transpiler 2.0.33 → 2.0.36
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.
package/build/src/requires.js
CHANGED
|
@@ -8,7 +8,7 @@ class Requires {
|
|
|
8
8
|
}
|
|
9
9
|
// todo, refactor this method
|
|
10
10
|
find(obj, _node, filename) {
|
|
11
|
-
var _a, _b, _c, _d, _e;
|
|
11
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12
12
|
const ret = [];
|
|
13
13
|
if (obj.getType() === "INTF") {
|
|
14
14
|
return [];
|
|
@@ -85,6 +85,24 @@ class Requires {
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
// include global super classes for local class definitions
|
|
89
|
+
for (const f of obj.getSequencedFiles()) {
|
|
90
|
+
for (const c of f.getInfo().listClassDefinitions()) {
|
|
91
|
+
if (c.superClassName === undefined) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const found = this.reg.getObject("CLAS", c.superClassName);
|
|
95
|
+
if (found && found instanceof abaplint.ABAPObject) {
|
|
96
|
+
const main = (_f = found.getMainABAPFile()) === null || _f === void 0 ? void 0 : _f.getFilename();
|
|
97
|
+
if (main) {
|
|
98
|
+
add({
|
|
99
|
+
filename: main,
|
|
100
|
+
name: found.getName().toLowerCase(),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
88
106
|
}
|
|
89
107
|
return ret;
|
|
90
108
|
}
|
|
@@ -4,4 +4,5 @@ import { Traversal } from "../traversal";
|
|
|
4
4
|
import { Chunk } from "../chunk";
|
|
5
5
|
export declare class DataTranspiler implements IStatementTranspiler {
|
|
6
6
|
transpile(node: abaplint.Nodes.StatementNode, traversal: Traversal): Chunk;
|
|
7
|
+
static buildValue(node: abaplint.Nodes.StatementNode, name: string, traversal: Traversal): string;
|
|
7
8
|
}
|
|
@@ -21,6 +21,16 @@ class DataTranspiler {
|
|
|
21
21
|
if (found === undefined) {
|
|
22
22
|
throw new Error("DataTranspiler, var not found, \"" + token.getStr() + "\"");
|
|
23
23
|
}
|
|
24
|
+
const value = DataTranspiler.buildValue(node, found.getName().toLowerCase(), traversal);
|
|
25
|
+
const ret = new chunk_1.Chunk()
|
|
26
|
+
.appendString("let ")
|
|
27
|
+
.append(found.getName().toLowerCase(), token, traversal)
|
|
28
|
+
.appendString(" = " + new transpile_types_1.TranspileTypes().toType(found.getType()))
|
|
29
|
+
.append(";", node.getLastToken(), traversal)
|
|
30
|
+
.append(value, node.getLastToken(), traversal);
|
|
31
|
+
return ret;
|
|
32
|
+
}
|
|
33
|
+
static buildValue(node, name, traversal) {
|
|
24
34
|
let value = "";
|
|
25
35
|
const val = node.findFirstExpression(abaplint.Expressions.Value);
|
|
26
36
|
if (val) {
|
|
@@ -30,20 +40,14 @@ class DataTranspiler {
|
|
|
30
40
|
}
|
|
31
41
|
if (int) {
|
|
32
42
|
const escaped = new constant_1.ConstantTranspiler().escape(int.concatTokens());
|
|
33
|
-
value = "\n" +
|
|
43
|
+
value = "\n" + name + ".set(" + escaped + ");";
|
|
34
44
|
}
|
|
35
45
|
else if (val.getChildren()[1].get() instanceof abaplint.Expressions.SimpleFieldChain) {
|
|
36
46
|
const s = new expressions_1.FieldChainTranspiler().transpile(val.getChildren()[1], traversal).getCode();
|
|
37
|
-
value = "\n" +
|
|
47
|
+
value = "\n" + name + ".set(" + s + ");";
|
|
38
48
|
}
|
|
39
49
|
}
|
|
40
|
-
|
|
41
|
-
.appendString("let ")
|
|
42
|
-
.append(found.getName().toLowerCase(), token, traversal)
|
|
43
|
-
.appendString(" = " + new transpile_types_1.TranspileTypes().toType(found.getType()))
|
|
44
|
-
.append(";", node.getLastToken(), traversal)
|
|
45
|
-
.append(value, node.getLastToken(), traversal);
|
|
46
|
-
return ret;
|
|
50
|
+
return value;
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
53
|
exports.DataTranspiler = DataTranspiler;
|
|
@@ -6,11 +6,19 @@ const statements_1 = require("../statements");
|
|
|
6
6
|
const chunk_1 = require("../chunk");
|
|
7
7
|
class DataTranspiler {
|
|
8
8
|
transpile(node, traversal) {
|
|
9
|
+
var _a, _b;
|
|
9
10
|
const begin = node.findDirectStatement(abaplint.Statements.DataBegin);
|
|
10
11
|
if (begin === undefined) {
|
|
11
12
|
return new chunk_1.Chunk("");
|
|
12
13
|
}
|
|
14
|
+
const topName = (_a = begin.findDirectExpression(abaplint.Expressions.DefinitionName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toLowerCase();
|
|
13
15
|
const chunk = new statements_1.DataTranspiler().transpile(begin, traversal);
|
|
16
|
+
for (const d of node.findDirectStatements(abaplint.Statements.Data)) {
|
|
17
|
+
const subName = (_b = d.findFirstExpression(abaplint.Expressions.DefinitionName)) === null || _b === void 0 ? void 0 : _b.concatTokens().toLowerCase();
|
|
18
|
+
if (subName && topName) {
|
|
19
|
+
chunk.appendString(statements_1.DataTranspiler.buildValue(d, topName + ".get()." + subName, traversal));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
14
22
|
chunk.appendString("\n");
|
|
15
23
|
return chunk;
|
|
16
24
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.36",
|
|
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.
|
|
31
|
+
"@abaplint/core": "^2.91.2",
|
|
32
32
|
"source-map": "^0.7.4"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|