UNPKG

@abaplint/transpiler

Version:
25 lines 1 kB
"use strict"; 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