@abaplint/transpiler
Version:
25 lines • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WhileTranspiler = void 0;
const abaplint = require("@abaplint/core");
const expressions_1 = require("../expressions");
const chunk_1 = require("../chunk");
const unique_identifier_1 = require("../unique_identifier");
class WhileTranspiler {
constructor(syIndexBackup) {
this.syIndexBackup = syIndexBackup;
}
transpile(node, traversal) {
const cond = new expressions_1.CondTranspiler().transpile(node.findFirstExpression(abaplint.Expressions.Cond), traversal);
const unique = unique_identifier_1.UniqueIdentifier.get();
return new chunk_1.Chunk()
.append(`const ${this.syIndexBackup} = abap.builtin.sy.get().index.get();
let ${unique} = 1;
while (`, node, traversal)
.appendChunk(cond)
.appendString(`) {
abap.builtin.sy.get().index.set(${unique}++);`);
}
}
exports.WhileTranspiler = WhileTranspiler;
//# sourceMappingURL=while.js.map