UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

27 lines 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.S7DispatchSeparator = void 0; exports.processS7Dispatch = processS7Dispatch; const known_call_handling_1 = require("../known-call-handling"); const identifier_1 = require("../../../../../environments/identifier"); const built_in_proc_name_1 = require("../../../../../environments/built-in-proc-name"); /** Used to separate S7 dispatch info in identifiers */ exports.S7DispatchSeparator = '﹕s3﹕'; /** * Process an S7 generic dispatch call like `S7_dispatch`. */ function processS7Dispatch(name, args, rootId, data) { if (!('currentS7name' in data) || !Array.isArray(data.currentS7name)) { return (0, known_call_handling_1.processKnownFunctionCall)({ name, args, rootId, data, origin: built_in_proc_name_1.BuiltInProcName.S7Dispatch }).information; } const info = (0, known_call_handling_1.processKnownFunctionCall)({ name, forceArgs: 'all', args, rootId, data, origin: built_in_proc_name_1.BuiltInProcName.S7Dispatch }).information; for (const id of data.currentS7name) { if (typeof id === 'string') { const newIn = info.in.slice(); newIn.push({ nodeId: rootId, name: id, cds: data.cds, type: identifier_1.ReferenceType.S7MethodPrefix }); info.in = newIn; } } return info; } //# sourceMappingURL=built-in-s-seven-dispatch.js.map