package binsec
Install
dune-project
Dependency
Authors
-
AAdel Djoudi
-
BBenjamin Farinier
-
CChakib Foulani
-
DDorian Lesbre
-
FFrédéric Recoules
-
GGuillaume Girol
-
JJosselin Feist
-
LLesly-Ann Daniel
-
MManh-Dung Nguyen
-
MMathéo Vergnolle
-
MMathilde Ollivier
-
MMatthieu Lemerre
-
OOlivier Nicole
-
RRichard Bonichon
-
RRobin David
-
SSébastien Bardin
-
SSoline Ducousso
-
TTa Thanh Dinh
-
YYaëlle Vinçont
Maintainers
Sources
sha256=5e1d0f26a567df4abcbeb964b454cf8b2c8484194ff2d9639bdeb94d63edcb3b
sha512=a638c665407fde9aadbd57a7b9f84260db8f03c0cbf65722732d43dfc93122d801e31977e0ba7cd249b340262caf216bca746a3520d0e01d487a5baf6a6c77e6
doc/binsec/Binsec/Cfg/Make/index.html
Module Cfg.Make
Parameters
module A : Sigs.HASHABLEmodule I : Hashtbl.HashedTypemodule S : Hashtbl.HashedTypeSignature
type addr = A.ttype inst = I.ttype symb = S.tmodule V : sig ... endVertices
type vertex = V.tmodule E : sig ... endEdges
type edge = E.ttype trace = vertex Sequence.tGraph constructors and destructors
val create : int -> tReturn an empty graph. Optionally, a size can be given, which should be on * the order of the expected number of vertices that will be in the graph (for * hash tables-based implementations). The graph grows as needed, so size is * just an initial guess.
val clear : t -> unitRemove all vertices and edges from the given graph.
copy g returns a copy of g. Vertices and edges (and eventually marks, * see module Mark) are duplicated.
add_vertex g v adds the vertex v in graph g. Do nothing if v * is already in g.
remove g v removes the vertex v from the graph g (and all the edges * going from v in g). Do nothing if v is not in g.
add_edge g v1 v2 adds an edge from the vertex v1 to the vertex v2 in * the graph g. Add also v1 (resp. v2) in g if v1 (resp. v2) is not * in g. Do nothing if this edge is already in g.
add_edge_e g e adds the edge e in the graph g. Add also E.src e * (resp. E.dst e) in g if E.src e (resp. E.dst e) is not in g. Do * nothing if e is already in g.
remove_edge g v1 v2 removes the edge going from v1 to v2 from the * graph g. Do nothing if this edge is not in g. *
remove_edge_e g e removes the edge e from the graph g. Do nothing if * e is not in g. *
Size functions
val is_empty : t -> boolval nb_vertex : t -> intval nb_edges : t -> intDegree of a vertex
out_degree g v returns the out-degree of v in g. *
Membership functions
Successors and predecessors of a vertex
Labeled edges going from/to a vertex
Graph iterators
iter/fold on all vertices/edges of a graph
iter/fold on all labeled edges of a graph
Vertex iterators
Each iterator iterator f v g iters f to the successors/predecessors of v in the graph g and raises Invalid_argument if v is not in g.
iter/fold on all successors/predecessors of a vertex.
iter/fold on all edges going from/to a vertex.