UNPKG

@abaplint/transpiler

Version:
31 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RangesTranspiler = void 0; const abaplint = require("@abaplint/core"); const traversal_1 = require("../traversal"); const chunk_1 = require("../chunk"); const transpile_types_1 = require("../transpile_types"); class RangesTranspiler { transpile(node, traversal) { const token = node.findFirstExpression(abaplint.Expressions.DefinitionName)?.getFirstToken(); if (token === undefined) { throw new Error("RangesTranspiler, token not found"); } const scope = traversal.findCurrentScopeByToken(token); if (scope === undefined) { throw new Error("RangesTranspiler, scope not found: " + node.concatTokens()); } const found = scope.findVariable(token.getStr()); if (found === undefined) { throw new Error("RangesTranspiler, var not found, \"" + token.getStr() + "\", " + traversal.getFilename() + ", line: " + token.getRow()); } const ret = new chunk_1.Chunk() .appendString("let ") .appendString(traversal_1.Traversal.prefixVariable(traversal_1.Traversal.escapeNamespace(found.getName().toLowerCase()))) .appendString(" = " + transpile_types_1.TranspileTypes.toType(found.getType())) .appendString(";"); return ret; } } exports.RangesTranspiler = RangesTranspiler; //# sourceMappingURL=ranges.js.map