@abaplint/transpiler
Version:
35 lines • 1.31 kB
JavaScript
;
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