UNPKG

@abaplint/core

Version:
26 lines 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Constant = void 0; const Expressions = require("../../2_statements/expressions"); const basic_types_1 = require("../basic_types"); const _typed_identifier_1 = require("../../types/_typed_identifier"); const basic_1 = require("../../types/basic"); const assert_error_1 = require("../assert_error"); class Constant { runSyntax(node, input) { const basic = new basic_types_1.BasicTypes(input); const found = basic.simpleType(node); if (found) { const val = basic.findValue(node); const meta = ["read_only" /* IdentifierMeta.ReadOnly */, "static" /* IdentifierMeta.Static */]; return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename, found.getType(), meta, val); } const fallback = node.findFirstExpression(Expressions.DefinitionName); if (fallback) { return new _typed_identifier_1.TypedIdentifier(fallback.getFirstToken(), input.filename, new basic_1.UnknownType("constant, fallback")); } throw new assert_error_1.AssertError("Statement Constant: unexpected structure"); } } exports.Constant = Constant; //# sourceMappingURL=constant.js.map