UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

37 lines (36 loc) 2.04 kB
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 {};