UNPKG

@abaplint/transpiler

Version:
32 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScanTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); class ScanTranspiler { transpile(node, traversal) { const lookup = traversal.lookupClassOrInterface("KERNEL_SCAN_ABAP_SOURCE", node.getFirstToken()); const options = []; let name = ""; for (const c of node.getChildren()) { if (c instanceof abaplint.Nodes.ExpressionNode) { options.push(name + ": " + traversal.traverse(c).getCode()); name = ""; } else { if (c.concatTokens().toUpperCase() === "WITH" && name !== "") { options.push(name + ": true"); name = ""; } if (name !== "" && name.endsWith("_") === false) { name += "_"; } name += c.concatTokens().toLowerCase().replace("-", ""); } } const call = `await ${lookup}.call({${options.join(", ")}});`; return new chunk_1.Chunk().append(`if (${lookup} === undefined) throw new Error("ScanAbapSource, kernel class missing");\n${call}`, node, traversal); } } exports.ScanTranspiler = ScanTranspiler; //# sourceMappingURL=scan.js.map