@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
37 lines (36 loc) • 1.9 kB
TypeScript
import type { DataflowGraph, FunctionArgument, OutgoingEdges } from './graph';
import type { GenericDiffConfiguration, GenericDifferenceInformation, WriteableDifferenceReport } from '../../util/diff';
import type { NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
interface ProblematicVertex {
tag: 'vertex';
id: NodeId;
}
interface ProblematicEdge {
tag: 'edge';
from: NodeId;
to: NodeId;
}
export type ProblematicDiffInfo = ProblematicVertex | ProblematicEdge;
export declare class DataflowDifferenceReport implements WriteableDifferenceReport {
_comments: string[] | undefined;
_problematic: ProblematicDiffInfo[] | undefined;
addComment(comment: string, ...related: readonly ProblematicDiffInfo[]): void;
comments(): readonly string[] | undefined;
problematic(): readonly ProblematicDiffInfo[] | undefined;
isEqual(): boolean;
}
export interface NamedGraph {
name: string;
graph: DataflowGraph;
}
interface DataflowDiffContext extends GenericDifferenceInformation<DataflowDifferenceReport> {
left: DataflowGraph;
right: DataflowGraph;
config: GenericDiffConfiguration;
}
export declare function diffOfDataflowGraphs(left: NamedGraph, right: NamedGraph, config?: Partial<GenericDiffConfiguration>): DataflowDifferenceReport;
export declare function equalFunctionArguments(fn: NodeId, a: false | readonly FunctionArgument[], b: false | readonly FunctionArgument[]): boolean;
export declare function diffFunctionArguments(fn: NodeId, a: false | readonly FunctionArgument[], b: false | readonly FunctionArgument[], ctx: GenericDifferenceInformation<DataflowDifferenceReport>): void;
export declare function diffVertices(ctx: DataflowDiffContext): void;
export declare function diffEdges(ctx: DataflowDiffContext, id: NodeId, lEdges: OutgoingEdges | undefined, rEdges: OutgoingEdges | undefined): void;
export {};