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