@abaplint/core
Version:
abaplint - Core API
31 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Data = void 0;
const Expressions = require("../../2_statements/expressions");
const _typed_identifier_1 = require("../../types/_typed_identifier");
const data_definition_1 = require("../expressions/data_definition");
const unknown_type_1 = require("../../types/basic/unknown_type");
const _syntax_input_1 = require("../_syntax_input");
const basic_1 = require("../../types/basic");
class Data {
runSyntax(node, input) {
const name = node.findFirstExpression(Expressions.DefinitionName);
const dd = node.findFirstExpression(Expressions.DataDefinition);
if (dd) {
const id = data_definition_1.DataDefinition.runSyntax(dd, input);
if ((id === null || id === void 0 ? void 0 : id.getType().isGeneric()) === true
&& (id === null || id === void 0 ? void 0 : id.getType().containsVoid()) === false) {
const message = "DATA definition cannot be generic, " + (name === null || name === void 0 ? void 0 : name.concatTokens());
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
return new _typed_identifier_1.TypedIdentifier(id.getToken(), input.filename, basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey));
}
return id;
}
if (name) {
return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, new unknown_type_1.UnknownType("data, fallback"));
}
return undefined;
}
}
exports.Data = Data;
//# sourceMappingURL=data.js.map