@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
51 lines • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.flowrScriptSummarizer = flowrScriptSummarizer;
const summarizer_1 = require("../../statistics/summarizer/summarizer");
const summarizer_2 = require("../../benchmark/summarizer/summarizer");
const auto_detect_1 = require("../../statistics/summarizer/auto-detect");
const feature_1 = require("../../statistics/features/feature");
function getBenchmarkSummarizer(options, outputBase) {
return new summarizer_2.BenchmarkSummarizer({
graphOutputPath: options.graph ? `${outputBase}-graph.json` : undefined,
inputPath: options.input,
intermediateOutputPath: outputBase,
outputPath: `${outputBase}-ultimate.json`,
logger: console.log
});
}
function getStatisticsSummarizer(options, outputBase) {
return new summarizer_1.StatisticsSummarizer({
inputPath: options.input,
outputPath: `${outputBase}-final`,
intermediateOutputPath: `${outputBase}-intermediate/`,
projectSkip: options['project-skip'],
featuresToUse: feature_1.allFeatureNames,
logger: console.log
});
}
async function retrieveSummarizer(options, outputBase) {
const type = options.type === 'auto' ? await (0, auto_detect_1.detectSummarizationType)(options.input) : options.type;
if (type === "benchmark" /* SummarizerType.Benchmark */) {
console.log('Summarizing benchmark');
return getBenchmarkSummarizer(options, outputBase);
}
else if (type === "statistics" /* SummarizerType.Statistics */) {
console.log('Summarizing statistics');
return getStatisticsSummarizer(options, outputBase);
}
else {
console.error('Unknown type', type, 'either give "benchmark" or "statistics"');
process.exit(1);
}
}
async function flowrScriptSummarizer(options) {
const outputBase = (options.output ?? options.input).replace(/\.json$|\/$/, '-summary');
console.log(`Writing outputs to base ${outputBase}`);
const summarizer = await retrieveSummarizer(options, outputBase);
if (!options['ultimate-only']) {
await summarizer.preparationPhase(options.categorize);
}
await summarizer.summarizePhase();
}
//# sourceMappingURL=summarizer-core.js.map