@abaplint/transpiler 2.13.7 → 2.13.8

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.
@@ -19,7 +19,29 @@ class SourceTranspiler {
19
19
  let ret = new chunk_1.Chunk();
20
20
  const post = new chunk_1.Chunk();
21
21
  const children = node.getChildren();
22
- for (let i = 0; i < children.length; i++) {
22
+ // Pre-scan for unary prefix +/- tokens (WDashW / WPlusW) before any expression
23
+ let prefixNegated = false;
24
+ let startIdx = 0;
25
+ while (startIdx < children.length) {
26
+ const c = children[startIdx];
27
+ if (c instanceof core_1.Nodes.TokenNode) {
28
+ const s = c.getFirstToken().getStr();
29
+ if (s === "-") {
30
+ prefixNegated = !prefixNegated;
31
+ startIdx++;
32
+ }
33
+ else if (s === "+") {
34
+ startIdx++;
35
+ }
36
+ else {
37
+ break;
38
+ }
39
+ }
40
+ else {
41
+ break;
42
+ }
43
+ }
44
+ for (let i = startIdx; i < children.length; i++) {
23
45
  const c = children[i];
24
46
  const isLast = i === children.length - 1;
25
47
  if (c instanceof core_1.Nodes.ExpressionNode) {
@@ -218,6 +240,9 @@ class SourceTranspiler {
218
240
  }
219
241
  }
220
242
  ret.appendChunk(post);
243
+ if (prefixNegated) {
244
+ ret = new chunk_1.Chunk().appendString("abap.operators.minus(0, ").appendChunk(ret).appendString(")");
245
+ }
221
246
  // console.dir("return: " + ret.getCode());
222
247
  return ret;
223
248
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler",
3
- "version": "2.13.7",
3
+ "version": "2.13.8",
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.118.9",
32
+ "@abaplint/core": "^2.118.10",
33
33
  "source-map": "^0.7.6"
34
34
  },
35
35
  "devDependencies": {