UNPKG

@abaplint/core

Version:
31 lines 1.65 kB
"use strict"; 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