UNPKG

@abaplint/transpiler

Version:
42 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InsertInternalTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); class InsertInternalTranspiler { transpile(node, traversal) { const options = []; const source = node.findDirectExpression(abaplint.Expressions.SimpleSource4) || node.findDirectExpression(abaplint.Expressions.Source); const target = node.findDirectExpression(abaplint.Expressions.Target); const concat = node.concatTokens().toUpperCase(); if (concat.startsWith("INSERT LINES OF ")) { options.push("lines: true"); } if (concat.startsWith("INSERT INITIAL LINE ")) { options.push("initial: true"); } else { options.push("data: " + traversal.traverse(source).getCode()); } const index = node.findExpressionAfterToken("INDEX"); if (index) { options.push("index: " + traversal.traverse(index).getCode()); } if (concat.includes(" REFERENCE INTO ")) { const targets = node.findDirectExpressions(abaplint.Expressions.Target); options.push("referenceInto: " + traversal.traverse(targets[1]).getCode()); } const assigning = node.findExpressionAfterToken("ASSIGNING"); if (assigning) { options.push("assigning: " + traversal.traverse((assigning.findFirstExpression(abaplint.Expressions.FieldSymbol))).getCode()); } options.push("table: " + traversal.traverse(target).getCode()); return new chunk_1.Chunk() .append(`abap.statements.insertInternal({`, node, traversal) .appendString(options.join(", ")) .append(`});`, node.getLastToken(), traversal); } } exports.InsertInternalTranspiler = InsertInternalTranspiler; //# sourceMappingURL=insert_internal.js.map