UNPKG

@abaplint/transpiler

Version:
26 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FormTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); const inline_1 = require("../inline"); class FormTranspiler { transpile(node, traversal) { const formName = node.findFirstStatement(abaplint.Statements.Form) ?.findDirectExpression(abaplint.Expressions.FormName)?.concatTokens()?.toUpperCase(); const ret = new chunk_1.Chunk(); for (const c of node.getChildren()) { ret.appendChunk(traversal.traverse(c)); if (c.get() instanceof abaplint.Statements.Form) { const declare = inline_1.InlineDeclarations.buildDeclarations(node, traversal); ret.appendString(declare); } } if (formName && traversal.getCurrentObject().getType() === "PROG") { ret.appendString(`abap.Forms['PROG-${traversal.getCurrentObject().getName().toUpperCase()}-${formName}'] = ${formName?.toLowerCase()};`); } return ret; } } exports.FormTranspiler = FormTranspiler; //# sourceMappingURL=form.js.map