@abaplint/transpiler-cli 2.3.100 → 2.3.102

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.
Files changed (2) hide show
  1. package/build/bundle.js +4 -4
  2. package/package.json +2 -2
package/build/bundle.js CHANGED
@@ -13667,7 +13667,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
13667
13667
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13668
13668
 
13669
13669
  "use strict";
13670
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldChainTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst traversal_1 = __webpack_require__(/*! ../traversal */ \"./node_modules/@abaplint/transpiler/build/src/traversal.js\");\r\nconst field_symbol_1 = __webpack_require__(/*! ./field_symbol */ \"./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass FieldChainTranspiler {\r\n constructor(addGet = false) {\r\n this.addGet = addGet;\r\n }\r\n transpile(node, traversal, prefix = true, filename) {\r\n const ret = new chunk_1.Chunk();\r\n const extra = [];\r\n for (const c of node.getChildren()) {\r\n if (c.get() instanceof core_1.Expressions.SourceField\r\n || c.get() instanceof core_1.Expressions.Field) {\r\n const name = traversal.prefixAndName(c.getFirstToken(), filename).replace(\"~\", \"$\");\r\n ret.append(traversal_1.Traversal.escapeNamespace(name), c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.SourceFieldSymbol) {\r\n ret.appendChunk(new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal));\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.ClassName) {\r\n const name = traversal.lookupClassOrInterface(c.getFirstToken().getStr(), c.getFirstToken());\r\n ret.append(name + \".\", c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.AttributeName) {\r\n const interfaceName = traversal.isInterfaceAttribute(c.getFirstToken());\r\n let name = c.getFirstToken().getStr().toLowerCase();\r\n if (prefix && interfaceName && name.startsWith(interfaceName) === false) {\r\n name = traversal_1.Traversal.escapeNamespace(name).replace(\"~\", \"$\");\r\n name = traversal_1.Traversal.escapeNamespace(interfaceName) + \"$\" + name;\r\n }\r\n else {\r\n name = traversal_1.Traversal.escapeNamespace(name).replace(\"~\", \"$\");\r\n }\r\n ret.append(name, c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.Dereference) {\r\n ret.append(\".getPointer()\", c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n const name = c.getFirstToken().getStr().toLowerCase();\r\n if (name.match(/^\\d/) || name.includes(\"/\")) {\r\n ret.append(`[\"` + name + `\"]`, c, traversal);\r\n }\r\n else {\r\n ret.append(`.` + name, c, traversal);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode) {\r\n const str = c.getFirstToken().getStr();\r\n if (str === \"-\") {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n else if (str === \"->\") {\r\n ret.append(\".get().\", c, traversal);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode\r\n && c.get() instanceof core_1.Expressions.FieldOffset) {\r\n extra.push(\"offset: \" + new _1.FieldOffsetTranspiler().transpile(c, traversal).getCode());\r\n this.addGetOffset = true;\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode\r\n && c.get() instanceof core_1.Expressions.FieldLength\r\n && c.concatTokens() !== \"(*)\") {\r\n extra.push(\"length: \" + new _1.FieldLengthTranspiler().transpile(c, traversal).getCode());\r\n this.addGetOffset = true;\r\n }\r\n }\r\n if (this.addGetOffset) {\r\n let foo = extra.join(\", \");\r\n if (foo !== \"\") {\r\n foo = \"{\" + foo + \"}\";\r\n }\r\n ret.appendString(\".getOffset(\" + foo + \")\"); // todo, this will break\r\n }\r\n if (this.addGet) {\r\n ret.appendString(\".get()\"); // todo, this will break?\r\n }\r\n return ret;\r\n }\r\n}\r\nexports.FieldChainTranspiler = FieldChainTranspiler;\r\n//# sourceMappingURL=field_chain.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/field_chain.js?");
13670
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldChainTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst traversal_1 = __webpack_require__(/*! ../traversal */ \"./node_modules/@abaplint/transpiler/build/src/traversal.js\");\r\nconst field_symbol_1 = __webpack_require__(/*! ./field_symbol */ \"./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass FieldChainTranspiler {\r\n constructor(addGet = false) {\r\n this.addGet = addGet;\r\n }\r\n transpile(node, traversal, prefix = true, filename) {\r\n const ret = new chunk_1.Chunk();\r\n const extra = [];\r\n for (const c of node.getChildren()) {\r\n if (c.get() instanceof core_1.Expressions.SourceField\r\n || c.get() instanceof core_1.Expressions.Field) {\r\n const name = traversal.prefixAndName(c.getFirstToken(), filename).replace(\"~\", \"$\");\r\n ret.append(traversal_1.Traversal.escapeNamespace(name), c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.SourceFieldSymbol) {\r\n ret.appendChunk(new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal));\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.ClassName) {\r\n const name = traversal.lookupClassOrInterface(c.getFirstToken().getStr(), c.getFirstToken());\r\n ret.append(name + \".\", c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.AttributeName) {\r\n const interfaceName = traversal.isInterfaceAttribute(c.getFirstToken());\r\n let name = c.getFirstToken().getStr().toLowerCase();\r\n if (prefix && interfaceName && name.startsWith(interfaceName) === false) {\r\n name = traversal_1.Traversal.escapeNamespace(name).replace(\"~\", \"$\");\r\n name = traversal_1.Traversal.escapeNamespace(interfaceName) + \"$\" + name;\r\n }\r\n else {\r\n name = traversal_1.Traversal.escapeNamespace(name).replace(\"~\", \"$\");\r\n }\r\n ret.append(name, c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.Dereference) {\r\n ret.append(\".dereference()\", c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n const name = c.getFirstToken().getStr().toLowerCase();\r\n if (name.match(/^\\d/) || name.includes(\"/\")) {\r\n ret.append(`[\"` + name + `\"]`, c, traversal);\r\n }\r\n else {\r\n ret.append(`.` + name, c, traversal);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode) {\r\n const str = c.getFirstToken().getStr();\r\n if (str === \"-\") {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n else if (str === \"->\") {\r\n ret.append(\".get().\", c, traversal);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode\r\n && c.get() instanceof core_1.Expressions.FieldOffset) {\r\n extra.push(\"offset: \" + new _1.FieldOffsetTranspiler().transpile(c, traversal).getCode());\r\n this.addGetOffset = true;\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode\r\n && c.get() instanceof core_1.Expressions.FieldLength\r\n && c.concatTokens() !== \"(*)\") {\r\n extra.push(\"length: \" + new _1.FieldLengthTranspiler().transpile(c, traversal).getCode());\r\n this.addGetOffset = true;\r\n }\r\n }\r\n if (this.addGetOffset) {\r\n let foo = extra.join(\", \");\r\n if (foo !== \"\") {\r\n foo = \"{\" + foo + \"}\";\r\n }\r\n ret.appendString(\".getOffset(\" + foo + \")\"); // todo, this will break\r\n }\r\n if (this.addGet) {\r\n ret.appendString(\".get()\"); // todo, this will break?\r\n }\r\n return ret;\r\n }\r\n}\r\nexports.FieldChainTranspiler = FieldChainTranspiler;\r\n//# sourceMappingURL=field_chain.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/field_chain.js?");
13671
13671
 
13672
13672
  /***/ }),
13673
13673
 
@@ -13920,7 +13920,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
13920
13920
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13921
13921
 
13922
13922
  "use strict";
13923
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SourceTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst constant_1 = __webpack_require__(/*! ./constant */ \"./node_modules/@abaplint/transpiler/build/src/expressions/constant.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass SourceTranspiler {\r\n constructor(addGet = false) {\r\n this.addGet = addGet;\r\n }\r\n transpile(node, traversal) {\r\n let ret = new chunk_1.Chunk();\r\n const post = new chunk_1.Chunk();\r\n const children = node.getChildren();\r\n for (let i = 0; i < children.length; i++) {\r\n const c = children[i];\r\n const last = i === children.length - 1;\r\n if (c instanceof core_1.Nodes.ExpressionNode) {\r\n if (c.get() instanceof core_1.Expressions.FieldChain) {\r\n ret.appendChunk(new _1.FieldChainTranspiler(this.addGet).transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Constant) {\r\n ret.appendChunk(new constant_1.ConstantTranspiler(this.addGet).transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.StringTemplate) {\r\n ret.appendChunk(traversal.traverse(c));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Cond) {\r\n ret.appendChunk(traversal.traverse(c));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ArithOperator) {\r\n ret = new chunk_1.Chunk().appendChunk(traversal.traverse(c)).appendString(\"(\").appendChunk(ret).appendString(\",\");\r\n post.appendString(\")\");\r\n if (this.addGet) {\r\n post.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.MethodCallChain) {\r\n ret.appendChunk(traversal.traverse(c));\r\n const code = ret.getCode();\r\n if (code.includes(\"await\")) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\")\");\r\n }\r\n if (this.addGet && last === true) {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Source) {\r\n ret.appendChunk(new SourceTranspiler(this.addGet).transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Arrow) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\").get().\");\r\n }\r\n else if (c.get() instanceof core_1.Expressions.AttributeChain) {\r\n ret.appendChunk(new _1.AttributeChainTranspiler().transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentChain) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\").get().\");\r\n ret.appendChunk(new _1.ComponentChainTranspiler().transpile(c, traversal));\r\n if (this.addGet && last === true) {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Dereference) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\").getPointer()\");\r\n }\r\n else if (c.get() instanceof core_1.Expressions.TextElement) {\r\n ret = new chunk_1.Chunk().appendString(`new abap.types.String().set(\"${c.concatTokens()}\")`);\r\n }\r\n else {\r\n ret.appendString(\"SourceUnknown-\" + c.get().constructor.name);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode && (c.getFirstToken().getStr() === \"&&\" || c.getFirstToken().getStr() === \"&\")) {\r\n ret = new chunk_1.Chunk().appendString(\"abap.operators.concat(\").appendChunk(ret).appendString(\",\");\r\n post.appendString(\")\");\r\n if (this.addGet) {\r\n post.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNodeRegex && c.getFirstToken().getStr().toUpperCase() === \"BOOLC\") {\r\n ret.append(\"abap.builtin.boolc(\", c, traversal);\r\n post.append(\")\", c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === \"BIT\") { // todo, this will not work in the general case\r\n ret.append(\"abap.operators.bitnot(\", c, traversal);\r\n post.append(\")\", c, traversal);\r\n }\r\n }\r\n ret.appendChunk(post);\r\n // console.dir(ret.getCode());\r\n return ret;\r\n }\r\n}\r\nexports.SourceTranspiler = SourceTranspiler;\r\n//# sourceMappingURL=source.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/source.js?");
13923
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SourceTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst constant_1 = __webpack_require__(/*! ./constant */ \"./node_modules/@abaplint/transpiler/build/src/expressions/constant.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass SourceTranspiler {\r\n constructor(addGet = false) {\r\n this.addGet = addGet;\r\n }\r\n transpile(node, traversal) {\r\n let ret = new chunk_1.Chunk();\r\n const post = new chunk_1.Chunk();\r\n const children = node.getChildren();\r\n for (let i = 0; i < children.length; i++) {\r\n const c = children[i];\r\n const last = i === children.length - 1;\r\n if (c instanceof core_1.Nodes.ExpressionNode) {\r\n if (c.get() instanceof core_1.Expressions.FieldChain) {\r\n ret.appendChunk(new _1.FieldChainTranspiler(this.addGet).transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Constant) {\r\n ret.appendChunk(new constant_1.ConstantTranspiler(this.addGet).transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.StringTemplate) {\r\n ret.appendChunk(traversal.traverse(c));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Cond) {\r\n ret.appendChunk(traversal.traverse(c));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ArithOperator) {\r\n ret = new chunk_1.Chunk().appendChunk(traversal.traverse(c)).appendString(\"(\").appendChunk(ret).appendString(\",\");\r\n post.appendString(\")\");\r\n if (this.addGet) {\r\n post.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.MethodCallChain) {\r\n ret.appendChunk(traversal.traverse(c));\r\n const code = ret.getCode();\r\n if (code.includes(\"await\")) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\")\");\r\n }\r\n if (this.addGet && last === true) {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Source) {\r\n ret.appendChunk(new SourceTranspiler(this.addGet).transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Arrow) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\").get().\");\r\n }\r\n else if (c.get() instanceof core_1.Expressions.AttributeChain) {\r\n ret.appendChunk(new _1.AttributeChainTranspiler().transpile(c, traversal));\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentChain) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\").get().\");\r\n ret.appendChunk(new _1.ComponentChainTranspiler().transpile(c, traversal));\r\n if (this.addGet && last === true) {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.Dereference) {\r\n ret = new chunk_1.Chunk().appendString(\"(\").appendChunk(ret).appendString(\").dereference()\");\r\n }\r\n else if (c.get() instanceof core_1.Expressions.TextElement) {\r\n ret = new chunk_1.Chunk().appendString(`new abap.types.String().set(\"${c.concatTokens()}\")`);\r\n }\r\n else {\r\n ret.appendString(\"SourceUnknown-\" + c.get().constructor.name);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode && (c.getFirstToken().getStr() === \"&&\" || c.getFirstToken().getStr() === \"&\")) {\r\n ret = new chunk_1.Chunk().appendString(\"abap.operators.concat(\").appendChunk(ret).appendString(\",\");\r\n post.appendString(\")\");\r\n if (this.addGet) {\r\n post.append(\".get()\", c, traversal);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNodeRegex && c.getFirstToken().getStr().toUpperCase() === \"BOOLC\") {\r\n ret.append(\"abap.builtin.boolc(\", c, traversal);\r\n post.append(\")\", c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode && c.getFirstToken().getStr().toUpperCase() === \"BIT\") { // todo, this will not work in the general case\r\n ret.append(\"abap.operators.bitnot(\", c, traversal);\r\n post.append(\")\", c, traversal);\r\n }\r\n }\r\n ret.appendChunk(post);\r\n // console.dir(ret.getCode());\r\n return ret;\r\n }\r\n}\r\nexports.SourceTranspiler = SourceTranspiler;\r\n//# sourceMappingURL=source.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/source.js?");
13924
13924
 
13925
13925
  /***/ }),
13926
13926
 
@@ -14030,7 +14030,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
14030
14030
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14031
14031
 
14032
14032
  "use strict";
14033
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.TargetTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst traversal_1 = __webpack_require__(/*! ../traversal */ \"./node_modules/@abaplint/transpiler/build/src/traversal.js\");\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass TargetTranspiler {\r\n transpile(node, traversal) {\r\n const offset = [];\r\n const ret = new chunk_1.Chunk();\r\n const children = node.getChildren();\r\n for (let i = 0; i < children.length; i++) {\r\n const c = children[i];\r\n const next = children[i + 1];\r\n if (c.get() instanceof core_1.Expressions.TargetField) {\r\n const prefix = traversal.prefixAndName(c.getFirstToken()).replace(\"~\", \"$\");\r\n ret.append(traversal_1.Traversal.escapeNamespace(prefix), c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ClassName) {\r\n const name = traversal.lookupClassOrInterface(c.getFirstToken().getStr(), c.getFirstToken());\r\n ret.append(name, c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n const name = c.getFirstToken().getStr().toLowerCase();\r\n if (name.match(/^\\d/) || name.includes(\"/\")) {\r\n ret.append(`[\"` + name + `\"]`, c, traversal);\r\n }\r\n else {\r\n ret.append(`.` + name, c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.AttributeName) {\r\n const intf = traversal.isInterfaceAttribute(c.getFirstToken());\r\n let name = traversal_1.Traversal.escapeNamespace(c.getFirstToken().getStr()).replace(\"~\", \"$\").toLowerCase();\r\n if (intf && name.startsWith(intf) === false) {\r\n name = traversal_1.Traversal.escapeNamespace(intf) + \"$\" + name;\r\n }\r\n ret.append(name, c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.FieldOffset) {\r\n offset.push(\"offset: \" + new _1.FieldOffsetTranspiler().transpile(c, traversal).getCode());\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.FieldLength) {\r\n offset.push(\"length: \" + new _1.FieldLengthTranspiler().transpile(c, traversal).getCode());\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.TargetFieldSymbol) {\r\n ret.appendChunk(new _1.FieldSymbolTranspiler().transpile(c, traversal));\r\n }\r\n else if (c.getFirstToken().getStr() === \"-\") {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.Dereference) {\r\n ret.append(\".getPointer()\", c, traversal);\r\n }\r\n else if (c.getFirstToken().getStr() === \"=>\") {\r\n ret.append(\".\", c, traversal);\r\n }\r\n else if (c.getFirstToken().getStr() === \"->\") {\r\n if (next.concatTokens() === \"*\") {\r\n ret.append(\".getPointer()\", c, traversal);\r\n }\r\n else {\r\n ret.append(\".get().\", c, traversal);\r\n }\r\n }\r\n }\r\n let pre = \"\";\r\n let post = \"\";\r\n if (offset.length > 0) {\r\n pre = \"new abap.OffsetLength(\";\r\n post = \", {\" + offset.join(\", \") + \"})\";\r\n }\r\n return new chunk_1.Chunk()\r\n .appendString(pre)\r\n .appendChunk(ret)\r\n .appendString(post);\r\n }\r\n}\r\nexports.TargetTranspiler = TargetTranspiler;\r\n//# sourceMappingURL=target.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/target.js?");
14033
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.TargetTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst traversal_1 = __webpack_require__(/*! ../traversal */ \"./node_modules/@abaplint/transpiler/build/src/traversal.js\");\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass TargetTranspiler {\r\n transpile(node, traversal) {\r\n const offset = [];\r\n const ret = new chunk_1.Chunk();\r\n const children = node.getChildren();\r\n for (let i = 0; i < children.length; i++) {\r\n const c = children[i];\r\n const next = children[i + 1];\r\n if (c.get() instanceof core_1.Expressions.TargetField) {\r\n const prefix = traversal.prefixAndName(c.getFirstToken()).replace(\"~\", \"$\");\r\n ret.append(traversal_1.Traversal.escapeNamespace(prefix), c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ClassName) {\r\n const name = traversal.lookupClassOrInterface(c.getFirstToken().getStr(), c.getFirstToken());\r\n ret.append(name, c, traversal);\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n const name = c.getFirstToken().getStr().toLowerCase();\r\n if (name.match(/^\\d/) || name.includes(\"/\")) {\r\n ret.append(`[\"` + name + `\"]`, c, traversal);\r\n }\r\n else {\r\n ret.append(`.` + name, c, traversal);\r\n }\r\n }\r\n else if (c.get() instanceof core_1.Expressions.AttributeName) {\r\n const intf = traversal.isInterfaceAttribute(c.getFirstToken());\r\n let name = traversal_1.Traversal.escapeNamespace(c.getFirstToken().getStr()).replace(\"~\", \"$\").toLowerCase();\r\n if (intf && name.startsWith(intf) === false) {\r\n name = traversal_1.Traversal.escapeNamespace(intf) + \"$\" + name;\r\n }\r\n ret.append(name, c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.FieldOffset) {\r\n offset.push(\"offset: \" + new _1.FieldOffsetTranspiler().transpile(c, traversal).getCode());\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.FieldLength) {\r\n const len = new _1.FieldLengthTranspiler().transpile(c, traversal).getCode();\r\n if (len !== \"*\") {\r\n offset.push(\"length: \" + len);\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.TargetFieldSymbol) {\r\n ret.appendChunk(new _1.FieldSymbolTranspiler().transpile(c, traversal));\r\n }\r\n else if (c.getFirstToken().getStr() === \"-\") {\r\n ret.append(\".get()\", c, traversal);\r\n }\r\n else if (c instanceof core_1.Nodes.ExpressionNode && c.get() instanceof core_1.Expressions.Dereference) {\r\n ret.append(\".dereference()\", c, traversal);\r\n }\r\n else if (c.getFirstToken().getStr() === \"=>\") {\r\n ret.append(\".\", c, traversal);\r\n }\r\n else if (c.getFirstToken().getStr() === \"->\") {\r\n if (next.concatTokens() === \"*\") {\r\n ret.append(\".dereference()\", c, traversal);\r\n }\r\n else {\r\n ret.append(\".get().\", c, traversal);\r\n }\r\n }\r\n }\r\n let pre = \"\";\r\n let post = \"\";\r\n if (offset.length > 0) {\r\n pre = \"new abap.OffsetLength(\";\r\n post = \", {\" + offset.join(\", \") + \"})\";\r\n }\r\n return new chunk_1.Chunk()\r\n .appendString(pre)\r\n .appendChunk(ret)\r\n .appendString(post);\r\n }\r\n}\r\nexports.TargetTranspiler = TargetTranspiler;\r\n//# sourceMappingURL=target.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/target.js?");
14034
14034
 
14035
14035
  /***/ }),
14036
14036
 
@@ -14239,7 +14239,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
14239
14239
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14240
14240
 
14241
14241
  "use strict";
14242
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CallTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nclass CallTranspiler {\r\n transpile(node, traversal) {\r\n var _a, _b, _c, _d, _e;\r\n const chain = node.findDirectExpression(abaplint.Expressions.MethodCallChain);\r\n if (chain) {\r\n let pre = \"\";\r\n let post = \"\";\r\n const receiving = (_b = (_a = chain.findFirstExpression(abaplint.Expressions.MethodParameters)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(abaplint.Expressions.ParameterT)) === null || _b === void 0 ? void 0 : _b.findDirectExpression(abaplint.Expressions.Target);\r\n if (receiving) {\r\n pre = traversal.traverse(receiving).getCode() + \".set(\";\r\n post = \")\";\r\n }\r\n const exceptions = node.findFirstExpression(abaplint.Expressions.ParameterListExceptions);\r\n if (exceptions) {\r\n pre = \"try {\\n\" + pre;\r\n }\r\n post += \";\";\r\n if (exceptions) {\r\n post += `\\nabap.builtin.sy.get().subrc.set(0);\r\n} catch (e) {\r\nif (e.classic) {\r\n switch (e.classic.toUpperCase()) {\\n`;\r\n for (const e of exceptions.findAllExpressions(abaplint.Expressions.ParameterException)) {\r\n const name = e.getFirstToken().getStr().toUpperCase();\r\n const value = (_c = e.findFirstExpression(abaplint.Expressions.SimpleName)) === null || _c === void 0 ? void 0 : _c.getFirstToken().getStr().toUpperCase();\r\n if (value === undefined) {\r\n continue;\r\n }\r\n if (name === \"OTHERS\") {\r\n post += `default: abap.builtin.sy.get().subrc.set(${value}); break;\\n`;\r\n }\r\n else {\r\n post += `case \"${name}\": abap.builtin.sy.get().subrc.set(${value}); break;\\n`;\r\n }\r\n }\r\n post += ` }\r\n} else {\r\n throw e;\r\n}\r\n}`;\r\n }\r\n const chainChunk = traversal.traverse(chain);\r\n let chainCode = chainChunk.getCode();\r\n if (chainCode.startsWith(\"await super.constructor(\")) {\r\n // semantics of constructors in JS vs ABAP is different, so the \"constructor_\" has been introduced,\r\n chainCode = chainCode.replace(\"await super.constructor(\", \"await super.constructor_(\");\r\n }\r\n return new chunk_1.Chunk()\r\n .appendString(pre)\r\n .appendString(chainCode)\r\n .append(post, node.getLastToken(), traversal);\r\n }\r\n const methodSource = node.findDirectExpression(abaplint.Expressions.MethodSource);\r\n if (methodSource) {\r\n let body = \"\";\r\n const nameToken = (_d = methodSource.getLastChild()) === null || _d === void 0 ? void 0 : _d.getFirstToken();\r\n const m = nameToken ? traversal.findMethodReference(nameToken, traversal.findCurrentScopeByToken(nameToken)) : undefined;\r\n const methodCallBody = node.findDirectExpression(abaplint.Expressions.MethodCallBody);\r\n if (methodCallBody) {\r\n body = new expressions_1.MethodCallBodyTranspiler(m === null || m === void 0 ? void 0 : m.def).transpile(methodCallBody, traversal).getCode();\r\n }\r\n let pre = \"\";\r\n let post = \"\";\r\n const receiving = (_e = node.findFirstExpression(abaplint.Expressions.MethodParameters)) === null || _e === void 0 ? void 0 : _e.findExpressionAfterToken(\"RECEIVING\");\r\n if (receiving) {\r\n const target = traversal.traverse(receiving.findDirectExpression(abaplint.Expressions.Target));\r\n pre = target.getCode() + \".set(\";\r\n post = \")\";\r\n }\r\n let ms = new expressions_1.MethodSourceTranspiler(pre).transpile(methodSource, traversal).getCode();\r\n if (ms === \"await super.get().constructor\") {\r\n // semantics of constructors in JS vs ABAP is different, so the \"constructor_\" has been introduced,\r\n ms = \"await super.constructor_\";\r\n }\r\n return new chunk_1.Chunk().appendString(ms).appendString(\"(\" + body + \")\" + post + \";\");\r\n }\r\n throw new Error(\"CallTranspiler, todo\");\r\n }\r\n}\r\nexports.CallTranspiler = CallTranspiler;\r\n//# sourceMappingURL=call.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/call.js?");
14242
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CallTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nclass CallTranspiler {\r\n transpile(node, traversal) {\r\n var _a, _b, _c, _d, _e;\r\n const chain = node.findDirectExpression(abaplint.Expressions.MethodCallChain);\r\n if (chain) {\r\n let pre = \"\";\r\n let post = \"\";\r\n const receiving = (_b = (_a = chain.findFirstExpression(abaplint.Expressions.MethodParameters)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(abaplint.Expressions.ParameterT)) === null || _b === void 0 ? void 0 : _b.findDirectExpression(abaplint.Expressions.Target);\r\n if (receiving) {\r\n pre = traversal.traverse(receiving).getCode() + \".set(\";\r\n post = \")\";\r\n }\r\n const exceptions = node.findFirstExpression(abaplint.Expressions.ParameterListExceptions);\r\n if (exceptions) {\r\n pre = \"try {\\n\" + pre;\r\n }\r\n post += \";\";\r\n if (exceptions) {\r\n post += `\\nabap.builtin.sy.get().subrc.set(0);\r\n} catch (e) {\r\nif (e.classic) {\r\n switch (e.classic.toUpperCase()) {\\n`;\r\n for (const e of exceptions.findAllExpressions(abaplint.Expressions.ParameterException)) {\r\n const name = e.getFirstToken().getStr().toUpperCase();\r\n const value = (_c = e.findFirstExpression(abaplint.Expressions.SimpleName)) === null || _c === void 0 ? void 0 : _c.getFirstToken().getStr().toUpperCase();\r\n if (value === undefined) {\r\n continue;\r\n }\r\n if (name === \"OTHERS\") {\r\n post += `default: abap.builtin.sy.get().subrc.set(${value}); break;\\n`;\r\n }\r\n else {\r\n post += `case \"${name}\": abap.builtin.sy.get().subrc.set(${value}); break;\\n`;\r\n }\r\n }\r\n post += ` }\r\n} else {\r\n throw e;\r\n}\r\n}`;\r\n }\r\n const chainChunk = traversal.traverse(chain);\r\n let chainCode = chainChunk.getCode();\r\n if (chainCode.startsWith(\"await super.constructor(\")) {\r\n // semantics of constructors in JS vs ABAP is different, so the \"constructor_\" has been introduced,\r\n chainCode = chainCode.replace(\"await super.constructor(\", \"await super.constructor_(\");\r\n }\r\n return new chunk_1.Chunk()\r\n .appendString(pre)\r\n .appendString(chainCode)\r\n .append(post, node.getLastToken(), traversal);\r\n }\r\n const methodSource = node.findDirectExpression(abaplint.Expressions.MethodSource);\r\n if (methodSource) {\r\n let body = \"\";\r\n const nameToken = (_d = methodSource.getLastChild()) === null || _d === void 0 ? void 0 : _d.getFirstToken();\r\n const m = nameToken ? traversal.findMethodReference(nameToken, traversal.findCurrentScopeByToken(nameToken)) : undefined;\r\n const methodCallBody = node.findDirectExpression(abaplint.Expressions.MethodCallBody);\r\n if (methodCallBody) {\r\n body = new expressions_1.MethodCallBodyTranspiler(m === null || m === void 0 ? void 0 : m.def).transpile(methodCallBody, traversal).getCode();\r\n }\r\n let pre = \"\";\r\n let post = \"\";\r\n const receiving = (_e = node.findFirstExpression(abaplint.Expressions.MethodParameters)) === null || _e === void 0 ? void 0 : _e.findExpressionAfterToken(\"RECEIVING\");\r\n if (receiving) {\r\n const target = traversal.traverse(receiving.findDirectExpression(abaplint.Expressions.Target));\r\n pre = target.getCode() + \".set(\";\r\n post = \")\";\r\n }\r\n let ms = new expressions_1.MethodSourceTranspiler(pre).transpile(methodSource, traversal).getCode();\r\n if (ms === \"await super.get().constructor\") {\r\n // semantics of constructors in JS vs ABAP is different, so the \"constructor_\" has been introduced,\r\n ms = \"await super.constructor_\";\r\n }\r\n else if (ms.startsWith(\"await super.get()\")) {\r\n ms = ms.replace(\"await super.get()\", \"await super\");\r\n }\r\n return new chunk_1.Chunk().appendString(ms).appendString(\"(\" + body + \")\" + post + \";\");\r\n }\r\n throw new Error(\"CallTranspiler, todo\");\r\n }\r\n}\r\nexports.CallTranspiler = CallTranspiler;\r\n//# sourceMappingURL=call.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/call.js?");
14243
14243
 
14244
14244
  /***/ }),
14245
14245
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.3.100",
3
+ "version": "2.3.102",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "bin": {
6
6
  "abap_transpile": "./abap_transpile"
@@ -25,7 +25,7 @@
25
25
  "author": "abaplint",
26
26
  "license": "MIT",
27
27
  "devDependencies": {
28
- "@abaplint/transpiler": "^2.3.100",
28
+ "@abaplint/transpiler": "^2.3.102",
29
29
  "@types/glob": "^7.2.0",
30
30
  "glob": "=7.2.0",
31
31
  "@types/progress": "^2.0.5",