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