UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

35 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processQuote = processQuote; const known_call_handling_1 = require("../known-call-handling"); const edge_1 = require("../../../../../graph/edge"); function processQuote(name, args, rootId, data, config) { const startEnv = data.environment; const { information, processedArguments, fnRef } = (0, known_call_handling_1.processKnownFunctionCall)({ name, args, rootId, data, forceArgs: config.forceArgs, origin: 'builtin:quote' }); let inRefs = [fnRef]; let outRefs = []; let unknownRefs = []; for (let i = 0; i < args.length; i++) { const processedArg = processedArguments[i]; if (processedArg && i !== config?.quoteArgumentsWithIndex) { inRefs = inRefs.concat(processedArg.in); outRefs = outRefs.concat(processedArg.out); unknownRefs = unknownRefs.concat(processedArg.unknownReferences); } else if (processedArg) { information.graph.addEdge(rootId, processedArg.entryPoint, edge_1.EdgeType.NonStandardEvaluation); /* nse actually affects _everything_ within that argument! */ for (const [vtx,] of processedArg.graph.vertices(true)) { information.graph.addEdge(rootId, vtx, edge_1.EdgeType.NonStandardEvaluation); } } } return { ...information, environment: startEnv, in: inRefs, out: outRefs, unknownReferences: unknownRefs }; } //# sourceMappingURL=built-in-quote.js.map