UNPKG

@abaplint/transpiler

Version:
45 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModifyInternalTranspiler = void 0; const abaplint = require("@abaplint/core"); const expressions_1 = require("../expressions"); const chunk_1 = require("../chunk"); class ModifyInternalTranspiler { transpile(node, traversal) { const target = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Target)).getCode(); const extra = []; const index = node.findExpressionAfterToken("INDEX"); if (index) { const s = new expressions_1.SourceTranspiler().transpile(index, traversal).getCode(); extra.push("index: " + s); } const from = node.findExpressionAfterToken("FROM"); if (from) { const s = new expressions_1.SourceTranspiler().transpile(from, traversal).getCode(); extra.push("from: " + s); } const whereNode = node.findDirectExpression(abaplint.Expressions.ComponentCond); if (whereNode) { // todo, replacing "await" is a hack extra.push("where: " + traversal.traverse(whereNode).getCode().replace("await ", "")); } const transporting = node.findDirectExpressions(abaplint.Expressions.ComponentChainSimple); if (transporting.length > 0) { const list = []; for (const t of transporting) { list.push("\"" + t.concatTokens().toLowerCase() + "\""); } extra.push("transporting: [" + list.join(",") + "]"); } let concat = ""; if (extra.length > 0) { concat = ",{" + extra.join(",") + "}"; } return new chunk_1.Chunk() .append("abap.statements.modifyInternal(", node, traversal) .appendString(target + concat) .append(");", node.getLastToken(), traversal); } } exports.ModifyInternalTranspiler = ModifyInternalTranspiler; //# sourceMappingURL=modify_internal.js.map