UNPKG

@abaplint/transpiler

Version:
33 lines 1.52 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() .appendString("let ") .appendString(new field_symbol_1.FieldSymbolTranspiler().transpile(name, traversal).getCode()) .appendString(" = new abap.types.FieldSymbol(" + transpile_types_1.TranspileTypes.toType(found.getType()) + ");"); } throw new Error("FieldSymbolTranspiler, name not found"); } } exports.FieldSymbolTranspiler = FieldSymbolTranspiler; //# sourceMappingURL=field_symbol.js.map