UNPKG

@abaplint/transpiler

Version:
33 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FieldSymbolTranspiler = void 0; const abaplint = require("@abaplint/core"); const field_symbol_1 = require("../expressions/field_symbol"); const chunk_1 = require("../chunk"); const transpile_types_1 = require("../transpile_types"); class FieldSymbolTranspiler { transpile(node, traversal) { const name = node.findDirectExpression(abaplint.Expressions.FieldSymbol); const token = name?.getFirstToken(); if (token === undefined) { throw new Error("FieldSymbolTranspiler, token not found"); } const scope = traversal.findCurrentScopeByToken(token); if (scope === undefined) { throw new Error("FieldSymbolTranspiler, scope not found"); } const found = scope.findVariable(token.getStr()); if (found === undefined) { throw new Error("FieldSymbolTranspiler, var not found, \"" + token.getStr() + "\""); } if (name) { return new chunk_1.Chunk() .append("let ", node, traversal) .appendChunk(new field_symbol_1.FieldSymbolTranspiler().transpile(name, traversal)) .append(" = new abap.types.FieldSymbol(" + new transpile_types_1.TranspileTypes().toType(found.getType()) + ");", node.getLastToken(), traversal); } throw new Error("FieldSymbolTranspiler, name not found"); } } exports.FieldSymbolTranspiler = FieldSymbolTranspiler; //# sourceMappingURL=field_symbol.js.map