@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
37 lines (36 loc) • 2.04 kB
TypeScript
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
import type { SlicingCriterion } from '../../../slicing/criterion/parse';
import type { ParsedQueryLine } from '../../query';
import Joi from 'joi';
import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { InputClassifierConfig, InputSources } from './simple-input-classifier';
import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
import type { FlowrConfig } from '../../../config';
import { executeInputSourcesQuery } from './input-sources-query-executor';
export type InputSourcesQueryConfig = InputClassifierConfig;
/**
* Calculates provenance for all inputs and their transformations
* based on the `provenance` of a given function.
*/
export interface InputSourcesQuery extends BaseQueryFormat {
readonly type: 'input-sources';
/**
* This takes a criterion (or a numerical id works too)
* {@link SlicingCriterion.fromId}
*/
readonly criterion: SlicingCriterion;
readonly config?: InputSourcesQueryConfig;
}
export interface InputSourcesQueryResult extends BaseQueryResult {
/** For each query key, a list of classified input sources (each with id and all traces) */
results: Record<string, InputSources>;
}
declare function inputSourcesQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfig): ParsedQueryLine<'input-sources'>;
export declare const InputSourcesDefinition: {
readonly executor: typeof executeInputSourcesQuery;
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
readonly fromLine: typeof inputSourcesQueryLineParser;
readonly schema: Joi.ObjectSchema<any>;
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
};
export {};