UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

48 lines (47 loc) 2.06 kB
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id'; import type { GenericDiffConfiguration, GenericDifferenceInformation, WriteableDifferenceReport } from './diff'; import type { DataflowGraph } from '../dataflow/graph/graph'; export interface NamedGraph<Graph = DataflowGraph> { name: string; graph: Graph; } interface ProblematicVertex { tag: 'vertex'; id: NodeId; } interface ProblematicEdge { tag: 'edge'; from: NodeId; to: NodeId; } export type ProblematicDiffInfo = ProblematicVertex | ProblematicEdge; /** * To be produced by a function differencing two graphs (e.g., {@link DataflowGraph|DFGs} or {@link ControlFlowGraph|CFGs}). * * @see {@link GraphDifferenceReport#isEqual|isEqual} - to check whether the graphs are equal * @see {@link GraphDifferenceReport#addComment|addComment} - to add comments to the report * @see {@link GraphDifferenceReport#comments|comments} - to get the attached comments * @see {@link GraphDifferenceReport#problematic|problematic} - to get the problematic vertices/edges */ export declare class GraphDifferenceReport 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; } /** * A context that can be used by differencing functions to compare two graphs * See {@link initDiffContext} for a function that creates such a context. */ export interface GraphDiffContext<Graph = DataflowGraph> extends GenericDifferenceInformation<GraphDifferenceReport> { left: Graph; right: Graph; config: GenericDiffConfiguration; } /** * Create the context for differencing two graphs */ export declare function initDiffContext<Graph>(left: NamedGraph<Graph>, right: NamedGraph<Graph>, config?: Partial<GenericDiffConfiguration>): GraphDiffContext<Graph>; export {};