UNPKG

@abaplint/transpiler

Version:
35 lines 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MoveTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); class MoveTranspiler { transpile(node, traversal) { let source = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Source)); const targets = []; for (const t of node.findDirectExpressions(abaplint.Expressions.Target)) { targets.push(traversal.traverse(t)); } const ret = new chunk_1.Chunk(); const second = node.getChildren()[1]?.concatTokens(); if (second === "?=") { ret.appendString("await abap.statements.cast(") .appendChunk(targets[0]) .appendString(", ") .appendChunk(source) .append(");", node.getLastToken(), traversal); } else { for (const target of targets.reverse()) { ret.appendChunk(target) .appendString(".set(") .appendChunk(source) .append(");", node.getLastToken(), traversal); source = target; } } return ret; } } exports.MoveTranspiler = MoveTranspiler; //# sourceMappingURL=move.js.map