@abaplint/core
Version:
abaplint - Core API
26 lines • 1.27 kB
JavaScript
;
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