UNPKG

@abaplint/transpiler

Version:
31 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReturnTranspiler = void 0; const abaplint = require("@abaplint/core"); const traversal_1 = require("../traversal"); const chunk_1 = require("../chunk"); const unique_identifier_1 = require("../unique_identifier"); class ReturnTranspiler { transpile(node, traversal) { let extra = ""; const scope = traversal.findCurrentScopeByToken(node.getFirstToken()); const vars = scope?.getData().vars; for (const n in vars) { const identifier = vars[n]; if (identifier.getMeta().includes("returning" /* abaplint.IdentifierMeta.MethodReturning */)) { extra = " " + traversal_1.Traversal.prefixVariable(n.toLowerCase()); } } let pre = ""; if (traversal.isInsideDoOrWhile(node)) { pre = `abap.builtin.sy.get().index.set(${unique_identifier_1.UniqueIdentifier.getIndexBackup1()});\n`; } if (scope?.getIdentifier().stype === abaplint.ScopeType.Method && scope?.getIdentifier().sname.toLowerCase() === "constructor") { extra = " this"; } return new chunk_1.Chunk().append(pre + "return" + extra + ";", node, traversal); } } exports.ReturnTranspiler = ReturnTranspiler; //# sourceMappingURL=return.js.map