UNPKG

@abaplint/transpiler

Version:
33 lines 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConcatenateTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); class ConcatenateTranspiler { transpile(node, traversal) { const concat = node.concatTokens().toUpperCase(); const slist = []; for (const s of node.findDirectExpressions(abaplint.Expressions.Source).concat(node.findDirectExpressions(abaplint.Expressions.SimpleSource3))) { slist.push(traversal.traverse(s)); } let extra = ""; if (node.findExpressionAfterToken("BY")) { extra = `, separatedBy: ${slist.pop()?.getCode()}`; } if (concat.startsWith("CONCATENATE LINES OF ")) { extra += ", lines: true"; } if (concat.includes(" RESPECTING BLANKS")) { extra += ", respectingBlanks: true"; } const target = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Target)); return new chunk_1.Chunk() .append("abap.statements.concatenate({source: [", node, traversal) .join(slist) .appendString("], target: ") .appendChunk(target) .append(extra + "});", node.getLastToken(), traversal); } } exports.ConcatenateTranspiler = ConcatenateTranspiler; //# sourceMappingURL=concatenate.js.map