UNPKG

@eagleoutice/flowr-dev

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

55 lines (54 loc) 2.71 kB
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format'; import type { SlicingCriteria } from '../../../slicing/criterion/parse'; import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id'; import type { ParsedQueryLine } from '../../query'; import Joi from 'joi'; import { executeDiceQuery } from './dice-query-executor'; import type { ReplOutput } from '../../../cli/repl/commands/repl-main'; import type { CommandCompletions } from '../../../cli/repl/core'; import type { FlowrConfig } from '../../../config'; import { type SliceQueryOptions } from '../slice-query-options'; /** * Computes a program dice: only those parts that lie on a path from the given start nodes to the given end nodes. * Equivalent to the intersection of a forward slice from `from` and a backward slice from `to`. */ export interface DiceQuery extends BaseQueryFormat, SliceQueryOptions { readonly type: 'dice'; /** Slicing criteria for the start of the dice (forward slice seeds) */ readonly from: SlicingCriteria; /** Slicing criteria for the end of the dice (backward slice seeds) */ readonly to: SlicingCriteria; } export interface DiceQueryResult extends BaseQueryResult { results: Record<string, { slice: { timesHitThreshold: number; result: ReadonlySet<NodeId>; slicedFor: readonly NodeId[]; /** see {@link SliceResult.stoppedEarly} */ stoppedEarly?: boolean; '.meta': { timing: number; }; }; reconstruct?: { code: string | string[]; '.meta': { timing: number; }; }; }>; } declare function diceQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfig): ParsedQueryLine<'dice'>; declare function diceQueryCompleter(line: readonly string[], startingNewArg: boolean, _config: FlowrConfig): CommandCompletions; export declare const DiceQueryDefinition: { readonly title: "Dice Query"; readonly executor: typeof executeDiceQuery; readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true; readonly fromLine: typeof diceQueryLineParser; readonly completer: typeof diceQueryCompleter; readonly syntax: "@dice (<crit>;...->crit;...)[iIcB] <code | file://path>"; readonly schema: Joi.ObjectSchema<any>; readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[]; }; export {};