@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
45 lines • 2.08 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.postProcess = postProcess;
const post_processing_1 = require("../../post-processing");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const summarizer_1 = require("../../../../util/summarizer");
/**
*
*/
function postProcess(featureRoot, info, outputPath, config) {
const collected = {};
const deepestNestingOut = fs_1.default.createWriteStream(path_1.default.join(outputPath, 'deepest-nesting-per-file.csv'));
deepestNestingOut.write('file,deepest-nesting\n');
for (const [filepath, data] of info.entries()) {
const value = data.expressionList;
for (const [key, val] of Object.entries(value)) {
let get = collected[key];
if (!get) {
get = (0, post_processing_1.emptySummarizedWithProject)();
collected[key] = get;
}
if (key === 'deepestNesting') {
deepestNestingOut.write(`${JSON.stringify(filepath)},${val}\n`);
}
get.count.push(val);
if (val > 0) {
(0, post_processing_1.recordFilePath)(get, filepath, config);
}
}
}
deepestNestingOut.close();
const variablesOutStream = fs_1.default.createWriteStream(path_1.default.join(outputPath, 'used-expression-lists.csv'));
variablesOutStream.write(`kind,unique-projects,unique-files,${(0, summarizer_1.summarizedMeasurement2CsvHeader)()}\n`);
for (const [key, val] of Object.entries(collected)) {
const data = val;
const sum = (0, summarizer_1.summarizeMeasurement)(data.count);
variablesOutStream.write(`${JSON.stringify(key)},${data.uniqueProjects.size},${data.uniqueFiles.size},${(0, summarizer_1.summarizedMeasurement2Csv)(sum)}\n`);
}
variablesOutStream.close();
}
//# sourceMappingURL=post-process.js.map