@abaplint/transpiler 2.6.42 → 2.6.44
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/constant.d.ts +1 -1
- package/build/src/expressions/constant.js +5 -5
- package/build/src/statements/at_selection_screen.d.ts +7 -0
- package/build/src/statements/at_selection_screen.js +11 -0
- package/build/src/statements/data.js +8 -2
- package/build/src/statements/index.d.ts +1 -0
- package/build/src/statements/index.js +1 -0
- package/build/src/structures/interface.js +1 -1
- package/build/src/traversal.js +1 -1
- package/package.json +2 -2
|
@@ -7,5 +7,5 @@ export declare class ConstantTranspiler implements IExpressionTranspiler {
|
|
|
7
7
|
constructor(addGet?: boolean);
|
|
8
8
|
transpile(node: Nodes.ExpressionNode, traversal: Traversal): Chunk;
|
|
9
9
|
private character;
|
|
10
|
-
escape(str: string): string;
|
|
10
|
+
static escape(str: string): string;
|
|
11
11
|
}
|
|
@@ -28,14 +28,14 @@ class ConstantTranspiler {
|
|
|
28
28
|
return new chunk_1.Chunk().append(code, node, traversal);
|
|
29
29
|
}
|
|
30
30
|
else if (res.startsWith("`") && this.addGet === false) {
|
|
31
|
-
const code = "new abap.types.String().set(" +
|
|
31
|
+
const code = "new abap.types.String().set(" + ConstantTranspiler.escape(res) + ")";
|
|
32
32
|
return new chunk_1.Chunk().append(code, node, traversal);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
35
|
if (res.startsWith("'")) {
|
|
36
36
|
res = "'" + res.substring(1, res.length - 1).trimEnd() + "'";
|
|
37
37
|
}
|
|
38
|
-
const code =
|
|
38
|
+
const code = ConstantTranspiler.escape(res);
|
|
39
39
|
return new chunk_1.Chunk().append(code, node, traversal);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -56,7 +56,7 @@ class ConstantTranspiler {
|
|
|
56
56
|
chunk.append(code, node, traversal);
|
|
57
57
|
}
|
|
58
58
|
else if (res.startsWith("`") && this.addGet === false) {
|
|
59
|
-
const code = "new abap.types.String().set(" +
|
|
59
|
+
const code = "new abap.types.String().set(" + ConstantTranspiler.escape(res) + ")";
|
|
60
60
|
chunk.append(code, node, traversal);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -72,10 +72,10 @@ class ConstantTranspiler {
|
|
|
72
72
|
// note: Characters cannot have length = zero, 1 is minimum
|
|
73
73
|
length = 1;
|
|
74
74
|
}
|
|
75
|
-
const code = "new abap.types.Character(" + length + ").set(" +
|
|
75
|
+
const code = "new abap.types.Character(" + length + ").set(" + ConstantTranspiler.escape(res) + ")";
|
|
76
76
|
return code;
|
|
77
77
|
}
|
|
78
|
-
escape(str) {
|
|
78
|
+
static escape(str) {
|
|
79
79
|
str = str.replace(/\\/g, "\\\\");
|
|
80
80
|
if (str.startsWith("'")) {
|
|
81
81
|
const reg = new RegExp(/(.+)''(.+)/g);
|
|
@@ -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 AtSelectionScreenTranspiler 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.AtSelectionScreenTranspiler = void 0;
|
|
4
|
+
const chunk_1 = require("../chunk");
|
|
5
|
+
class AtSelectionScreenTranspiler {
|
|
6
|
+
transpile(_node, _traversal) {
|
|
7
|
+
return new chunk_1.Chunk(`throw new Error("AtSelectionScreen, not supported, transpiler");`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.AtSelectionScreenTranspiler = AtSelectionScreenTranspiler;
|
|
11
|
+
//# sourceMappingURL=at_selection_screen.js.map
|
|
@@ -21,7 +21,13 @@ class DataTranspiler {
|
|
|
21
21
|
if (found === undefined) {
|
|
22
22
|
throw new Error("DataTranspiler, var not found, \"" + token.getStr() + "\"");
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
let value = "";
|
|
25
|
+
if (found.getValue() !== undefined && node.concatTokens().includes(" & ")) {
|
|
26
|
+
value = "\n" + traversal.setValues(found, found.getName());
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
value = DataTranspiler.buildValue(node, found.getName().toLowerCase(), traversal);
|
|
30
|
+
}
|
|
25
31
|
const ret = new chunk_1.Chunk()
|
|
26
32
|
.appendString("let ")
|
|
27
33
|
.append(found.getName().toLowerCase(), token, traversal)
|
|
@@ -39,7 +45,7 @@ class DataTranspiler {
|
|
|
39
45
|
int = val.findFirstExpression(abaplint.Expressions.ConstantString);
|
|
40
46
|
}
|
|
41
47
|
if (int) {
|
|
42
|
-
const escaped =
|
|
48
|
+
const escaped = constant_1.ConstantTranspiler.escape(int.concatTokens());
|
|
43
49
|
value = "\n" + name + ".set(" + escaped + ");";
|
|
44
50
|
}
|
|
45
51
|
else if (val.getChildren()[1].get() instanceof abaplint.Expressions.SimpleFieldChain) {
|
|
@@ -18,6 +18,7 @@ __exportStar(require("./add"), exports);
|
|
|
18
18
|
__exportStar(require("./append"), exports);
|
|
19
19
|
__exportStar(require("./assert"), exports);
|
|
20
20
|
__exportStar(require("./assign"), exports);
|
|
21
|
+
__exportStar(require("./at_selection_screen"), exports);
|
|
21
22
|
__exportStar(require("./at"), exports);
|
|
22
23
|
__exportStar(require("./authority_check"), exports);
|
|
23
24
|
__exportStar(require("./break_id"), exports);
|
|
@@ -64,7 +64,7 @@ class InterfaceTranspiler {
|
|
|
64
64
|
const valExpression = constantStatement === null || constantStatement === void 0 ? void 0 : constantStatement.findFirstExpression(abaplint.Expressions.Value);
|
|
65
65
|
if ((valExpression === null || valExpression === void 0 ? void 0 : valExpression.getChildren()[1].get()) instanceof abaplint.Expressions.SimpleFieldChain) {
|
|
66
66
|
const s = new expressions_1.FieldChainTranspiler().transpile(valExpression.getChildren()[1], traversal, false).getCode();
|
|
67
|
-
const e =
|
|
67
|
+
const e = expressions_1.ConstantTranspiler.escape(s);
|
|
68
68
|
ret += name + ".set(" + e + ");\n";
|
|
69
69
|
continue;
|
|
70
70
|
}
|
package/build/src/traversal.js
CHANGED
|
@@ -503,7 +503,7 @@ class Traversal {
|
|
|
503
503
|
let ret = "";
|
|
504
504
|
const handle = (val, name) => {
|
|
505
505
|
if (typeof val === "string") {
|
|
506
|
-
const e =
|
|
506
|
+
const e = expressions_1.ConstantTranspiler.escape(val);
|
|
507
507
|
ret += name + ".set(" + e + ");\n";
|
|
508
508
|
}
|
|
509
509
|
else if (typeof val === "object") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.44",
|
|
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.99.
|
|
31
|
+
"@abaplint/core": "^2.99.9",
|
|
32
32
|
"source-map": "^0.7.4"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|