Header menu logo B2R2

B2R2.MiddleEnd.BinGraph Namespace

Contains graph data structures and algorithms used throughout B2R2's middle-end analyses.

Type/Module Description

DominatorTree<'V, 'E>

Represents a dominator tree interface. A dominator tree is a tree where each node's children are those nodes it immediately dominates.

DummyDataAccessException

Raised when trying to access data from a dummy vertex that has no data.

Edge<'V, 'E>

Represents an edge of a graph.

EdgeNotFoundException

Raised when an edge is not found in the graph.

IDiGraph<'V, 'E>

Represents a directed graph (digraph) interface.

IDiGraphAccessible<'V, 'E>

Represents a read-only directed graph information accessor. This interface provides a way to access the information of a directed graph without modifying it.

IDominance<'V, 'E>

Represents an interface for computing dominance relationships of nodes in digraphs.

IDominanceFrontier<'V, 'E>

Represents an interface for computing dominance frontier of nodes in digraphs.

IDominanceFrontierProvider<'V, 'E>

Represents an interface for providing dominance frontier instances.

IGraph

Provides utility functions for the IGraph<'V, 'E> type.

IGraph<'V, 'E>

Represents a graph interface.

IGraphAccessible<'V, 'E>

Represents a read-only graph information accessor. This interface provides a way to access the information of a graph without modifying it.

ImperativeDiGraph<'V, 'E>

Represents an imperative directed graph.

ImperativeVertex<'V>

Represents an imperative vertex with mutable predecessor and successor lists.

ImplementationType

Represents a graph implementation type, which can be either imperative or persistent.

ISCCEnumerable<'V>

Represents a strongly connected components enumerable. A graph is strongly connected if there is a path between every pair of vertices in the graph.

IVertex<'V>

Represents a vertex of a graph.

Loop

Provides algorithms for loop detection in directed graphs.

MultipleRootVerticesException

Raised when there are multiple root vertices in a graph while only one is expected.

PersistentDiGraph<'V, 'E>

Represents a persistent directed graph.

PersistentVertex<'V>

Represents a persistent vertex.

SerializableEdge

Represents a serializable edge.

SerializableGraph

Represents a serializable graph. This is not supposed to be used as a graph representation in the middle-end, but rather as a temporary data structure for importing/exporting graphs.

SerializableVertex

Represents a serializable vertex.

Serializer

Represents a serializer of a graph.

VertexID

Represents a unique ID for a vertex.

VertexNotFoundException

Raised when a vertex is not found in the graph.

Type something to start searching.