UNPKG

@abaplint/transpiler

Version:
38 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConstantsTranspiler = void 0; const abaplint = require("@abaplint/core"); const statements_1 = require("../statements"); const chunk_1 = require("../chunk"); class ConstantsTranspiler { transpile(node, traversal) { const begin = node.findDirectStatement(abaplint.Statements.ConstantBegin); if (begin === undefined) { throw "ConstantsTranspilerBegin"; } const name = begin.findDirectExpression(abaplint.Expressions.DefinitionName)?.getFirstToken().getStr(); if (name === undefined) { throw "ConstantsTranspilerName"; } let ret = new statements_1.DataTranspiler().transpile(begin, traversal).getCode() + "\n"; ret += ConstantsTranspiler.handleValues(name, node, traversal); return new chunk_1.Chunk(ret); } static handleValues(prefix, node, traversal) { let ret = ""; // todo: CONSTANTS BEGIN inside CONSTANTS BEGIN for (const c of node.findDirectStatements(abaplint.Statements.Constant)) { const field = c.findDirectExpression(abaplint.Expressions.DefinitionName)?.getFirstToken().getStr(); if (field === undefined) { continue; } const value = c.findFirstExpression(abaplint.Expressions.Constant); if (value) { ret += `${prefix}.get().${field}.set(${traversal.traverse(value).getCode()});\n`; } } return ret; } } exports.ConstantsTranspiler = ConstantsTranspiler; //# sourceMappingURL=constants.js.map