UNPKG

@abaplint/core

Version:
47 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CallFunction = void 0; const Expressions = require("../../2_statements/expressions"); const source_1 = require("../expressions/source"); const field_chain_1 = require("../expressions/field_chain"); const _reference_1 = require("../_reference"); const version_1 = require("../../../version"); const _syntax_input_1 = require("../_syntax_input"); const function_parameters_1 = require("../expressions/function_parameters"); class CallFunction { runSyntax(node, input) { // todo, lots of work here, similar to receive.ts const name = node.findFirstExpression(Expressions.FunctionName); const chain = name === null || name === void 0 ? void 0 : name.findFirstExpression(Expressions.FieldChain); if (chain) { field_chain_1.FieldChain.runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference); } else if (input.scope.getVersion() === version_1.Version.Cloud && node.findDirectExpression(Expressions.Destination) === undefined) { const functionName = name === null || name === void 0 ? void 0 : name.concatTokens().replace(/'/g, ""); if (input.scope.findFunctionModule(functionName) === undefined) { const message = `Function module "${functionName}" not found/released`; input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message)); return; } } for (const s of node.findDirectExpressions(Expressions.SimpleSource2)) { source_1.Source.runSyntax(s, input); } for (const s of node.findDirectExpressions(Expressions.Source)) { source_1.Source.runSyntax(s, input); } for (const d of node.findDirectExpressions(Expressions.Destination)) { const source = d.findFirstExpression(Expressions.Source); if (source) { source_1.Source.runSyntax(source, input); } } const fp = node.findDirectExpression(Expressions.FunctionParameters); if (fp) { function_parameters_1.FunctionParameters.runSyntax(fp, input); } } } exports.CallFunction = CallFunction; //# sourceMappingURL=call_function.js.map