UNPKG

@abaplint/core

Version:
62 lines 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Describe = void 0; const Expressions = require("../../2_statements/expressions"); const inline_data_1 = require("../expressions/inline_data"); const basic_1 = require("../../types/basic"); const target_1 = require("../expressions/target"); const source_1 = require("../expressions/source"); const field_chain_1 = require("../expressions/field_chain"); const _reference_1 = require("../_reference"); class Describe { runSyntax(node, input) { for (const s of node.findDirectExpressions(Expressions.Source)) { source_1.Source.runSyntax(s, input); } for (const s of node.findDirectExpressions(Expressions.FieldChain)) { field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference); } const linesTarget = node.findExpressionAfterToken("LINES"); if ((linesTarget === null || linesTarget === void 0 ? void 0 : linesTarget.get()) instanceof Expressions.Target) { const inline = linesTarget === null || linesTarget === void 0 ? void 0 : linesTarget.findDirectExpression(Expressions.InlineData); if (inline) { inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get()); } else { target_1.Target.runSyntax(linesTarget, input); } } const typeTarget = node.findExpressionAfterToken("TYPE"); if ((typeTarget === null || typeTarget === void 0 ? void 0 : typeTarget.get()) instanceof Expressions.Target) { const inline = typeTarget === null || typeTarget === void 0 ? void 0 : typeTarget.findDirectExpression(Expressions.InlineData); if (inline) { inline_data_1.InlineData.runSyntax(inline, input, new basic_1.CharacterType(1)); } else { target_1.Target.runSyntax(typeTarget, input); } } const lengthTarget = node.findExpressionAfterToken("LENGTH"); if ((lengthTarget === null || lengthTarget === void 0 ? void 0 : lengthTarget.get()) instanceof Expressions.Target) { const inline = lengthTarget === null || lengthTarget === void 0 ? void 0 : lengthTarget.findDirectExpression(Expressions.InlineData); if (inline) { inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get()); } else { target_1.Target.runSyntax(lengthTarget, input); } } const componentsTarget = node.findExpressionAfterToken("COMPONENTS"); if ((componentsTarget === null || componentsTarget === void 0 ? void 0 : componentsTarget.get()) instanceof Expressions.Target) { const inline = componentsTarget === null || componentsTarget === void 0 ? void 0 : componentsTarget.findDirectExpression(Expressions.InlineData); if (inline) { inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get()); } else { target_1.Target.runSyntax(componentsTarget, input); } } } } exports.Describe = Describe; //# sourceMappingURL=describe.js.map