@abaplint/transpiler 2.1.75 → 2.1.77
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/expressions/method_call.js +2 -1
- package/build/src/expressions/method_call_chain.js +2 -1
- package/build/src/expressions/method_source.js +2 -1
- package/build/src/statements/method_implementation.js +3 -3
- package/build/src/statements/move.js +11 -6
- package/build/src/traversal.js +2 -2
- package/build/src/validation.js +1 -1
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MethodCallTranspiler = void 0;
|
|
4
4
|
const core_1 = require("@abaplint/core");
|
|
5
|
+
const traversal_1 = require("../traversal");
|
|
5
6
|
const method_call_param_1 = require("./method_call_param");
|
|
6
7
|
const chunk_1 = require("../chunk");
|
|
7
8
|
class MethodCallTranspiler {
|
|
@@ -27,7 +28,7 @@ class MethodCallTranspiler {
|
|
|
27
28
|
throw new Error("MethodCallTranspiler, unexpected node");
|
|
28
29
|
}
|
|
29
30
|
const ret = new chunk_1.Chunk();
|
|
30
|
-
ret.append(name.replace("~", "$"), nameToken, traversal);
|
|
31
|
+
ret.append(traversal_1.Traversal.escapeClassName(name.replace("~", "$")), nameToken, traversal);
|
|
31
32
|
ret.appendChunk(new method_call_param_1.MethodCallParamTranspiler(m === null || m === void 0 ? void 0 : m.def).transpile(step, traversal));
|
|
32
33
|
ret.appendString(")");
|
|
33
34
|
return ret;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MethodCallChainTranspiler = void 0;
|
|
4
4
|
const core_1 = require("@abaplint/core");
|
|
5
|
+
const traversal_1 = require("../traversal");
|
|
5
6
|
const chunk_1 = require("../chunk");
|
|
6
7
|
class MethodCallChainTranspiler {
|
|
7
8
|
transpile(node, traversal) {
|
|
@@ -29,7 +30,7 @@ class MethodCallChainTranspiler {
|
|
|
29
30
|
ret = new chunk_1.Chunk().append(traversal.lookupClassOrInterface(c.getFirstToken().getStr(), c.getFirstToken()), c, traversal);
|
|
30
31
|
}
|
|
31
32
|
else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.MethodName) {
|
|
32
|
-
const name = c.getFirstToken().getStr().toLowerCase().replace("~", "$");
|
|
33
|
+
const name = traversal_1.Traversal.escapeClassName(c.getFirstToken().getStr().toLowerCase().replace("~", "$"));
|
|
33
34
|
ret.append(name, c, traversal);
|
|
34
35
|
}
|
|
35
36
|
else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr() === "->") {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MethodSourceTranspiler = void 0;
|
|
4
4
|
/* eslint-disable max-len */
|
|
5
5
|
const core_1 = require("@abaplint/core");
|
|
6
|
+
const traversal_1 = require("../traversal");
|
|
6
7
|
const chunk_1 = require("../chunk");
|
|
7
8
|
const _1 = require(".");
|
|
8
9
|
class MethodSourceTranspiler {
|
|
@@ -64,7 +65,7 @@ class MethodSourceTranspiler {
|
|
|
64
65
|
if (i === 0) {
|
|
65
66
|
this.prepend += "this.";
|
|
66
67
|
}
|
|
67
|
-
const methodName = child.concatTokens().toLowerCase().replace("~", "$");
|
|
68
|
+
const methodName = traversal_1.Traversal.escapeClassName(child.concatTokens().toLowerCase().replace("~", "$"));
|
|
68
69
|
call += methodName;
|
|
69
70
|
}
|
|
70
71
|
else if (child.concatTokens() === "=>") {
|
|
@@ -90,11 +90,11 @@ class MethodImplementationTranspiler {
|
|
|
90
90
|
if (method && method.isStatic()) {
|
|
91
91
|
// in ABAP static methods can be called with instance arrows, "->"
|
|
92
92
|
const className = (_b = (_a = scope.getParent()) === null || _a === void 0 ? void 0 : _a.getIdentifier().sname) === null || _b === void 0 ? void 0 : _b.toLowerCase();
|
|
93
|
-
staticMethod = "async " + methodName + "(" + unique + ") {\n" +
|
|
94
|
-
"return " + traversal_1.Traversal.escapeClassName(className) + "." + methodName + "(" + unique + ");\n" +
|
|
93
|
+
staticMethod = "async " + traversal_1.Traversal.escapeClassName(methodName) + "(" + unique + ") {\n" +
|
|
94
|
+
"return " + traversal_1.Traversal.escapeClassName(className) + "." + traversal_1.Traversal.escapeClassName(methodName) + "(" + unique + ");\n" +
|
|
95
95
|
"}\n" + "static ";
|
|
96
96
|
}
|
|
97
|
-
const str = staticMethod + "async " + methodName + "(" + unique + ") {" + after;
|
|
97
|
+
const str = staticMethod + "async " + traversal_1.Traversal.escapeClassName(methodName) + "(" + unique + ") {" + after;
|
|
98
98
|
return new chunk_1.Chunk().append(str, node, traversal);
|
|
99
99
|
}
|
|
100
100
|
findMethod(name, cdef, traversal) {
|
|
@@ -7,21 +7,26 @@ class MoveTranspiler {
|
|
|
7
7
|
transpile(node, traversal) {
|
|
8
8
|
var _a;
|
|
9
9
|
const source = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Source));
|
|
10
|
-
const
|
|
10
|
+
const targets = [];
|
|
11
|
+
for (const t of node.findDirectExpressions(abaplint.Expressions.Target)) {
|
|
12
|
+
targets.push(traversal.traverse(t));
|
|
13
|
+
}
|
|
11
14
|
const ret = new chunk_1.Chunk();
|
|
12
15
|
const second = (_a = node.getChildren()[1]) === null || _a === void 0 ? void 0 : _a.concatTokens();
|
|
13
16
|
if (second === "?=") {
|
|
14
17
|
ret.appendString("await abap.statements.cast(")
|
|
15
|
-
.appendChunk(
|
|
18
|
+
.appendChunk(targets[0])
|
|
16
19
|
.appendString(", ")
|
|
17
20
|
.appendChunk(source)
|
|
18
21
|
.append(");", node.getLastToken(), traversal);
|
|
19
22
|
}
|
|
20
23
|
else {
|
|
21
|
-
|
|
22
|
-
.
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
for (const target of targets) {
|
|
25
|
+
ret.appendChunk(target)
|
|
26
|
+
.appendString(".set(")
|
|
27
|
+
.appendChunk(source)
|
|
28
|
+
.append(");", node.getLastToken(), traversal);
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
31
|
return ret;
|
|
27
32
|
}
|
package/build/src/traversal.js
CHANGED
|
@@ -140,7 +140,7 @@ class Traversal {
|
|
|
140
140
|
return name;
|
|
141
141
|
}
|
|
142
142
|
else if (this.isClassAttribute(t)) {
|
|
143
|
-
name = "this." + name;
|
|
143
|
+
name = "this." + Traversal.escapeClassName(name);
|
|
144
144
|
}
|
|
145
145
|
else if (this.isBuiltinVariable(t)) {
|
|
146
146
|
name = "abap.builtin." + name;
|
|
@@ -306,7 +306,7 @@ class Traversal {
|
|
|
306
306
|
if (a.getMeta().includes("static" /* abaplint.IdentifierMeta.Static */) === true) {
|
|
307
307
|
continue;
|
|
308
308
|
}
|
|
309
|
-
const n = name.toLowerCase() + "$" + a.getName().toLowerCase();
|
|
309
|
+
const n = Traversal.escapeClassName(name.toLowerCase()) + "$" + a.getName().toLowerCase();
|
|
310
310
|
ret += "this." + n + " = " + new transpile_types_1.TranspileTypes().toType(a.getType()) + ";\n";
|
|
311
311
|
}
|
|
312
312
|
for (const i of (intf === null || intf === void 0 ? void 0 : intf.getImplementing()) || []) {
|
package/build/src/validation.js
CHANGED
|
@@ -38,7 +38,7 @@ exports.config = {
|
|
|
38
38
|
"ambiguous_statement": true,
|
|
39
39
|
"implement_methods": true,
|
|
40
40
|
"begin_end_names": true,
|
|
41
|
-
"no_chained_assignment": true,
|
|
41
|
+
// "no_chained_assignment": true,
|
|
42
42
|
"check_syntax": true,
|
|
43
43
|
"form_no_dash": true,
|
|
44
44
|
"omit_preceding_zeros": true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.77",
|
|
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.93.
|
|
31
|
+
"@abaplint/core": "^2.93.29",
|
|
32
32
|
"source-map": "^0.7.4"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|