@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.
@@ -0,0 +1,6 @@
1
+ import { Nodes } from "@abaplint/core";
2
+ import { Traversal } from "../traversal";
3
+ import { Chunk } from "../chunk";
4
+ export declare class FilterBodyTranspiler {
5
+ transpile(typ: Nodes.ExpressionNode, body: Nodes.ExpressionNode, traversal: Traversal): Chunk;
6
+ }
@@ -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
@@ -19,7 +19,7 @@ exports.config = {
19
19
  "communication": true,
20
20
  "systemCall": true,
21
21
  "break": false,
22
- "statics": true,
22
+ "statics": false,
23
23
  "endselect": false,
24
24
  "defaultKey": false,
25
25
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler",
3
- "version": "2.11.67",
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.193",
32
+ "@abaplint/core": "^2.113.194",
33
33
  "source-map": "^0.7.6"
34
34
  },
35
35
  "devDependencies": {