@abaplint/transpiler 2.11.67 → 2.11.69
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/filter_body.d.ts +6 -0
- package/build/src/expressions/filter_body.js +40 -0
- package/build/src/expressions/source.js +15 -0
- package/build/src/statements/index.d.ts +3 -1
- package/build/src/statements/index.js +3 -1
- package/build/src/statements/static.d.ts +7 -0
- package/build/src/statements/static.js +11 -0
- package/build/src/statements/uline.d.ts +7 -0
- package/build/src/statements/uline.js +13 -0
- package/build/src/validation.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilterBodyTranspiler = void 0;
|
|
4
|
+
const core_1 = require("@abaplint/core");
|
|
5
|
+
const chunk_1 = require("../chunk");
|
|
6
|
+
const type_name_or_infer_1 = require("./type_name_or_infer");
|
|
7
|
+
const transpile_types_1 = require("../transpile_types");
|
|
8
|
+
const unique_identifier_1 = require("../unique_identifier");
|
|
9
|
+
class FilterBodyTranspiler {
|
|
10
|
+
transpile(typ, body, traversal) {
|
|
11
|
+
if (!(typ.get() instanceof core_1.Expressions.TypeNameOrInfer)) {
|
|
12
|
+
throw new Error("FilterBodyTranspiler, Expected TypeNameOrInfer");
|
|
13
|
+
}
|
|
14
|
+
else if (body.findDirectTokenByText("EXCEPT")) {
|
|
15
|
+
return new chunk_1.Chunk(`throw new Error("FilterBodyTranspiler EXCEPT in, not supported, transpiler");`);
|
|
16
|
+
}
|
|
17
|
+
const source = traversal.traverse(body.findDirectExpression(core_1.Expressions.Source)).getCode();
|
|
18
|
+
const type = new type_name_or_infer_1.TypeNameOrInfer().findType(typ, traversal);
|
|
19
|
+
const target = transpile_types_1.TranspileTypes.toType(type);
|
|
20
|
+
const ret = new chunk_1.Chunk();
|
|
21
|
+
ret.appendString("(await (async () => {\n");
|
|
22
|
+
let loopWhere = "";
|
|
23
|
+
const whereNode = body.findDirectExpression(core_1.Expressions.ComponentCond);
|
|
24
|
+
if (whereNode) {
|
|
25
|
+
const where = traversal.traverse(whereNode).getCode();
|
|
26
|
+
loopWhere = `, {"where": async ` + where + `}`;
|
|
27
|
+
}
|
|
28
|
+
const id = unique_identifier_1.UniqueIdentifier.get();
|
|
29
|
+
const loop = unique_identifier_1.UniqueIdentifier.get();
|
|
30
|
+
ret.appendString(`const ${id} = ${target};\n`);
|
|
31
|
+
ret.appendString(`for await (const ${loop} of abap.statements.loop(${source}${loopWhere})) {\n`);
|
|
32
|
+
ret.appendString(`abap.statements.insertInternal({"table": ${id}, "data": ${loop}});\n`);
|
|
33
|
+
ret.appendString(`}\n`);
|
|
34
|
+
ret.appendString(`return ${id};\n`);
|
|
35
|
+
ret.appendString("})())");
|
|
36
|
+
return ret;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.FilterBodyTranspiler = FilterBodyTranspiler;
|
|
40
|
+
//# sourceMappingURL=filter_body.js.map
|
|
@@ -8,6 +8,7 @@ const chunk_1 = require("../chunk");
|
|
|
8
8
|
const transpile_types_1 = require("../transpile_types");
|
|
9
9
|
const value_body_1 = require("./value_body");
|
|
10
10
|
const corresponding_body_1 = require("./corresponding_body");
|
|
11
|
+
const filter_body_1 = require("./filter_body");
|
|
11
12
|
class SourceTranspiler {
|
|
12
13
|
addGet;
|
|
13
14
|
constructor(addGet = false) {
|
|
@@ -99,6 +100,9 @@ class SourceTranspiler {
|
|
|
99
100
|
else if (c.get() instanceof core_1.Expressions.SwitchBody) {
|
|
100
101
|
continue;
|
|
101
102
|
}
|
|
103
|
+
else if (c.get() instanceof core_1.Expressions.FilterBody) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
102
106
|
else {
|
|
103
107
|
ret.appendString("SourceUnknown$" + c.get().constructor.name);
|
|
104
108
|
}
|
|
@@ -165,6 +169,17 @@ class SourceTranspiler {
|
|
|
165
169
|
}
|
|
166
170
|
ret.appendChunk(new _1.SwitchBodyTranspiler().transpile(typ, switchBody, traversal));
|
|
167
171
|
}
|
|
172
|
+
else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === "FILTER") {
|
|
173
|
+
const typ = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
|
|
174
|
+
if (typ === undefined) {
|
|
175
|
+
throw new Error("TypeNameOrInfer not found in FilterBody");
|
|
176
|
+
}
|
|
177
|
+
const filterBody = node.findDirectExpression(core_1.Expressions.FilterBody);
|
|
178
|
+
if (filterBody === undefined) {
|
|
179
|
+
throw new Error("FilterBody not found");
|
|
180
|
+
}
|
|
181
|
+
ret.appendChunk(new filter_body_1.FilterBodyTranspiler().transpile(typ, filterBody, traversal));
|
|
182
|
+
}
|
|
168
183
|
else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === "REF") {
|
|
169
184
|
const infer = node.findDirectExpression(core_1.Expressions.TypeNameOrInfer);
|
|
170
185
|
if (infer?.concatTokens() !== "#") {
|
|
@@ -20,9 +20,9 @@ export * from "./class_definition_load";
|
|
|
20
20
|
export * from "./class_implementation";
|
|
21
21
|
export * from "./class_local_friends";
|
|
22
22
|
export * from "./clear";
|
|
23
|
+
export * from "./static";
|
|
23
24
|
export * from "./close_cursor";
|
|
24
25
|
export * from "./close_dataset";
|
|
25
|
-
export * from "./transfer";
|
|
26
26
|
export * from "./collect";
|
|
27
27
|
export * from "./commit";
|
|
28
28
|
export * from "./compute";
|
|
@@ -139,11 +139,13 @@ export * from "./subtract";
|
|
|
139
139
|
export * from "./syntax_check";
|
|
140
140
|
export * from "./system_call";
|
|
141
141
|
export * from "./tables";
|
|
142
|
+
export * from "./transfer";
|
|
142
143
|
export * from "./translate";
|
|
143
144
|
export * from "./truncate_dataset";
|
|
144
145
|
export * from "./try";
|
|
145
146
|
export * from "./type_pools";
|
|
146
147
|
export * from "./type";
|
|
148
|
+
export * from "./uline";
|
|
147
149
|
export * from "./unassign";
|
|
148
150
|
export * from "./unpack";
|
|
149
151
|
export * from "./update_database";
|
|
@@ -36,9 +36,9 @@ __exportStar(require("./class_definition_load"), exports);
|
|
|
36
36
|
__exportStar(require("./class_implementation"), exports);
|
|
37
37
|
__exportStar(require("./class_local_friends"), exports);
|
|
38
38
|
__exportStar(require("./clear"), exports);
|
|
39
|
+
__exportStar(require("./static"), exports);
|
|
39
40
|
__exportStar(require("./close_cursor"), exports);
|
|
40
41
|
__exportStar(require("./close_dataset"), exports);
|
|
41
|
-
__exportStar(require("./transfer"), exports);
|
|
42
42
|
__exportStar(require("./collect"), exports);
|
|
43
43
|
__exportStar(require("./commit"), exports);
|
|
44
44
|
__exportStar(require("./compute"), exports);
|
|
@@ -155,11 +155,13 @@ __exportStar(require("./subtract"), exports);
|
|
|
155
155
|
__exportStar(require("./syntax_check"), exports);
|
|
156
156
|
__exportStar(require("./system_call"), exports);
|
|
157
157
|
__exportStar(require("./tables"), exports);
|
|
158
|
+
__exportStar(require("./transfer"), exports);
|
|
158
159
|
__exportStar(require("./translate"), exports);
|
|
159
160
|
__exportStar(require("./truncate_dataset"), exports);
|
|
160
161
|
__exportStar(require("./try"), exports);
|
|
161
162
|
__exportStar(require("./type_pools"), exports);
|
|
162
163
|
__exportStar(require("./type"), exports);
|
|
164
|
+
__exportStar(require("./uline"), exports);
|
|
163
165
|
__exportStar(require("./unassign"), exports);
|
|
164
166
|
__exportStar(require("./unpack"), exports);
|
|
165
167
|
__exportStar(require("./update_database"), 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 StaticTranspiler 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.StaticTranspiler = void 0;
|
|
4
|
+
const chunk_1 = require("../chunk");
|
|
5
|
+
class StaticTranspiler {
|
|
6
|
+
transpile(_node, _traversal) {
|
|
7
|
+
return new chunk_1.Chunk(`throw new Error("Statics, not supported, transpiler");`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.StaticTranspiler = StaticTranspiler;
|
|
11
|
+
//# sourceMappingURL=static.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 UlineTranspiler implements IStatementTranspiler {
|
|
6
|
+
transpile(_node: abaplint.Nodes.StatementNode, _traversal: Traversal): Chunk;
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UlineTranspiler = void 0;
|
|
4
|
+
const chunk_1 = require("../chunk");
|
|
5
|
+
class UlineTranspiler {
|
|
6
|
+
transpile(_node, _traversal) {
|
|
7
|
+
const chunk = new chunk_1.Chunk();
|
|
8
|
+
chunk.appendString(`abap.statements.write("--------------------------------------------------", {"newLine": true});`);
|
|
9
|
+
return chunk;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.UlineTranspiler = UlineTranspiler;
|
|
13
|
+
//# sourceMappingURL=uline.js.map
|
package/build/src/validation.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.69",
|
|
4
4
|
"description": "Transpiler",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/src/index.d.ts",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"author": "abaplint",
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@abaplint/core": "^2.113.
|
|
32
|
+
"@abaplint/core": "^2.113.194",
|
|
33
33
|
"source-map": "^0.7.6"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|