UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

33 lines 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fingerPrintOfQuery = fingerPrintOfQuery; exports.executeResolveValueQuery = executeResolveValueQuery; const log_1 = require("../../../util/log"); const parse_1 = require("../../../slicing/criterion/parse"); const dfg_get_origin_1 = require("../../../dataflow/origin/dfg-get-origin"); function fingerPrintOfQuery(query) { return query.criterion; } function executeResolveValueQuery({ dataflow: { graph }, ast }, queries) { const start = Date.now(); const results = {}; for (const query of queries) { const key = fingerPrintOfQuery(query); if (results[key]) { log_1.log.warn(`Duplicate Key for origin-query: ${key}, skipping...`); } const astId = (0, parse_1.slicingCriterionToId)(key, ast.idMap); if (astId === undefined) { log_1.log.warn(`Could not resolve id for ${key}, skipping...`); continue; } results[key] = (0, dfg_get_origin_1.getOriginInDfg)(graph, astId); } return { '.meta': { timing: Date.now() - start }, results }; } //# sourceMappingURL=origin-query-executor.js.map