package mopsa

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type ('node_data, 'edge_data) graph
type ('node_data, 'edge_data) node
type ('node_data, 'edge_data) edge
module P : sig ... end
type node_id = P.NodeId.t
type edge_id = P.EdgeId.t
type port = P.Port.t
module NodeSet : sig ... end
module EdgeSet : sig ... end
module NodeMap : sig ... end
module EdgeMap : sig ... end
val create : unit -> ('n, 'e) graph
val add_node : ('n, 'e) graph -> node_id -> ?inc:(port * ('n, 'e) edge) list -> ?out:(port * ('n, 'e) edge) list -> ?entry:port -> ?exit:port -> 'n -> ('n, 'e) node
val add_edge : ('n, 'e) graph -> edge_id -> ?src:(port * ('n, 'e) node) list -> ?dst:(port * ('n, 'e) node) list -> 'e -> ('n, 'e) edge
val remove_node : ('n, 'e) graph -> ('n, 'e) node -> unit
val remove_edge : ('n, 'e) graph -> ('n, 'e) edge -> unit
val node_set_entry : ('n, 'e) graph -> ('n, 'e) node -> port option -> unit
val node_set_exit : ('n, 'e) graph -> ('n, 'e) node -> port option -> unit
val node_add_in : ('n, 'e) node -> port -> ('n, 'e) edge -> unit
val node_add_out : ('n, 'e) node -> port -> ('n, 'e) edge -> unit
val node_add_in_list : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val node_add_out_list : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val edge_add_src : ('n, 'e) edge -> port -> ('n, 'e) node -> unit
val edge_add_dst : ('n, 'e) edge -> port -> ('n, 'e) node -> unit
val edge_add_src_list : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val edge_add_dst_list : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val node_add_in_unique : ('n, 'e) node -> port -> ('n, 'e) edge -> unit
val node_add_out_unique : ('n, 'e) node -> port -> ('n, 'e) edge -> unit
val node_add_in_list_unique : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val node_add_out_list_unique : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val edge_add_src_unique : ('n, 'e) edge -> port -> ('n, 'e) node -> unit
val edge_add_dst_unique : ('n, 'e) edge -> port -> ('n, 'e) node -> unit
val edge_add_src_list_unique : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val edge_add_dst_list_unique : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val node_remove_in_port : ('n, 'e) node -> port -> ('n, 'e) edge -> unit
val node_remove_out_port : ('n, 'e) node -> port -> ('n, 'e) edge -> unit
val node_remove_in : ('n, 'e) node -> ('n, 'e) edge -> unit
val node_remove_out : ('n, 'e) node -> ('n, 'e) edge -> unit
val node_remove_all_in : ('n, 'e) node -> unit
val node_remove_all_out : ('n, 'e) node -> unit
val edge_remove_src_port : ('n, 'e) edge -> port -> ('n, 'e) node -> unit
val edge_remove_dst_port : ('n, 'e) edge -> port -> ('n, 'e) node -> unit
val edge_remove_src : ('n, 'e) edge -> ('n, 'e) node -> unit
val edge_remove_dst : ('n, 'e) edge -> ('n, 'e) node -> unit
val edge_remove_all_src : ('n, 'e) edge -> unit
val edge_remove_all_dst : ('n, 'e) edge -> unit
val node_set_in : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val node_set_out : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val edge_set_src : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val edge_set_dst : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val node_set_in_unique : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val node_set_out_unique : ('n, 'e) node -> (port * ('n, 'e) edge) list -> unit
val edge_set_src_unique : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val edge_set_dst_unique : ('n, 'e) edge -> (port * ('n, 'e) node) list -> unit
val node_list : ('n, 'e) graph -> ('n, 'e) node list
val edge_list : ('n, 'e) graph -> ('n, 'e) edge list
val node_set : ('n, 'e) graph -> NodeSet.t
val edge_set : ('n, 'e) graph -> EdgeSet.t
val node_map : ('n, 'e) graph -> ('n, 'e) node NodeMap.t
val edge_map : ('n, 'e) graph -> ('n, 'e) edge EdgeMap.t
val has_node : ('n, 'e) graph -> node_id -> bool
val has_edge : ('n, 'e) graph -> edge_id -> bool
val get_node : ('n, 'e) graph -> node_id -> ('n, 'e) node
val get_edge : ('n, 'e) graph -> edge_id -> ('n, 'e) edge
val entries : ('n, 'e) graph -> (port * ('n, 'e) node) list
val exits : ('n, 'e) graph -> (port * ('n, 'e) node) list
val edge_id : ('n, 'e) edge -> edge_id
val edge_data : ('n, 'e) edge -> 'e
val edge_set_data : ('n, 'e) edge -> 'e -> unit
val edge_src : ('n, 'e) edge -> (port * ('n, 'e) node) list
val edge_dst : ('n, 'e) edge -> (port * ('n, 'e) node) list
val edge_src_port : ('n, 'e) edge -> port -> ('n, 'e) node list
val edge_dst_port : ('n, 'e) edge -> port -> ('n, 'e) node list
val edge_src_size : ('n, 'e) edge -> int
val edge_dst_size : ('n, 'e) edge -> int
val edge_src_port_size : ('n, 'e) edge -> port -> int
val edge_dst_port_size : ('n, 'e) edge -> port -> int
val node_id : ('n, 'e) node -> node_id
val node_data : ('n, 'e) node -> 'n
val node_set_data : ('n, 'e) node -> 'n -> unit
val node_in : ('n, 'e) node -> (port * ('n, 'e) edge) list
val node_out : ('n, 'e) node -> (port * ('n, 'e) edge) list
val node_in_port : ('n, 'e) node -> port -> ('n, 'e) edge list
val node_out_port : ('n, 'e) node -> port -> ('n, 'e) edge list
val node_in_size : ('n, 'e) node -> int
val node_out_size : ('n, 'e) node -> int
val node_in_port_size : ('n, 'e) node -> port -> int
val node_out_port_size : ('n, 'e) node -> port -> int
val node_entry_port : ('n, 'e) graph -> ('n, 'e) node -> port option
val node_exit_port : ('n, 'e) graph -> ('n, 'e) node -> port option
val node_has_out : ('n, 'e) node -> ('n, 'e) edge -> bool
val node_has_out_port : ('n, 'e) node -> port -> ('n, 'e) edge -> bool
val node_has_in : ('n, 'e) node -> ('n, 'e) edge -> bool
val node_has_in_port : ('n, 'e) node -> port -> ('n, 'e) edge -> bool
val edge_has_src : ('n, 'e) edge -> ('n, 'e) node -> bool
val edge_has_src_port : ('n, 'e) edge -> port -> ('n, 'e) node -> bool
val edge_has_dst : ('n, 'e) edge -> ('n, 'e) node -> bool
val edge_has_dst_port : ('n, 'e) edge -> port -> ('n, 'e) node -> bool
val node_out_nodes : ('n, 'e) node -> (port * ('n, 'e) edge * port * ('n, 'e) node) list
val node_in_nodes : ('n, 'e) node -> (('n, 'e) node * port * ('n, 'e) edge * port) list
val node_out_nodes_port : ('n, 'e) node -> port -> port -> (('n, 'e) edge * ('n, 'e) node) list
val node_in_nodes_port : ('n, 'e) node -> port -> port -> (('n, 'e) node * ('n, 'e) edge) list
val node_has_node_out : ('n, 'e) node -> ('n, 'e) node -> bool
val node_has_node_in : ('n, 'e) node -> ('n, 'e) node -> bool
val node_has_node_out_port : ('n, 'e) node -> port -> port -> ('n, 'e) node -> bool
val node_has_node_in_port : ('n, 'e) node -> port -> port -> ('n, 'e) node -> bool
val clone : ('n, 'e) graph -> ('n, 'e) graph
val clone_map : ('n1 -> 'n2) -> ('e1 -> 'e2) -> ('n1, 'e1) graph -> ('n2, 'e2) graph
val transpose : ('n, 'e) graph -> unit
val iter_nodes : (node_id -> ('n, 'e) node -> unit) -> ('n, 'e) graph -> unit
val iter_edges : (edge_id -> ('n, 'e) edge -> unit) -> ('n, 'e) graph -> unit
val map_nodes : (node_id -> ('n, 'e) node -> 'a) -> ('n, 'e) graph -> 'a NodeMap.t
val map_edges : (edge_id -> ('n, 'e) edge -> 'a) -> ('n, 'e) graph -> 'a EdgeMap.t
val fold_nodes : (node_id -> ('n, 'e) node -> 'a -> 'a) -> ('n, 'e) graph -> 'a -> 'a
val fold_edges : (edge_id -> ('n, 'e) edge -> 'a -> 'a) -> ('n, 'e) graph -> 'a -> 'a
val iter_nodes_ordered : (node_id -> ('n, 'e) node -> unit) -> ('n, 'e) graph -> unit
val iter_edges_ordered : (edge_id -> ('n, 'e) edge -> unit) -> ('n, 'e) graph -> unit
val map_nodes_ordered : (node_id -> ('n, 'e) node -> 'a) -> ('n, 'e) graph -> 'a NodeMap.t
val map_edges_ordered : (edge_id -> ('n, 'e) edge -> 'a) -> ('n, 'e) graph -> 'a EdgeMap.t
val fold_nodes_ordered : (node_id -> ('n, 'e) node -> 'a -> 'a) -> ('n, 'e) graph -> 'a -> 'a
val fold_edges_ordered : (edge_id -> ('n, 'e) edge -> 'a -> 'a) -> ('n, 'e) graph -> 'a -> 'a
val remove_orphan : ('n, 'e) graph -> unit
val weak_topological_order : ('n, 'e) graph -> ('n, 'e) node Containers__GraphSig.nested_list list
val widening_points : ('n, 'e) node Containers__GraphSig.nested_list list -> ('n, 'e) node list
type (!'n, !'e) printer = {
  1. print_node : Stdlib.Format.formatter -> ('n, 'e) node -> unit;
  2. print_edge : Stdlib.Format.formatter -> ('n, 'e) edge -> unit;
  3. print_src : Stdlib.Format.formatter -> ('n, 'e) node -> port -> ('n, 'e) edge -> unit;
  4. print_dst : Stdlib.Format.formatter -> ('n, 'e) edge -> port -> ('n, 'e) node -> unit;
  5. print_entry : Stdlib.Format.formatter -> ('n, 'e) node -> port -> unit;
  6. print_exit : Stdlib.Format.formatter -> ('n, 'e) node -> port -> unit;
}
val print : ('n, 'e) printer -> Stdlib.Format.formatter -> ('n, 'e) graph -> unit
type (!'n, !'e) dot_printer = {
  1. dot_pp_node : Stdlib.Format.formatter -> ('n, 'e) node -> unit;
  2. dot_pp_edge : Stdlib.Format.formatter -> ('n, 'e) edge -> unit;
  3. dot_pp_port : Stdlib.Format.formatter -> port -> unit;
  4. dot_filter_node : ('n, 'e) node -> bool;
  5. dot_filter_edge : ('n, 'e) edge -> bool;
  6. dot_filter_port : port -> bool;
}
val print_dot : ('n, 'e) dot_printer -> string -> Stdlib.Format.formatter -> ('n, 'e) graph -> unit
OCaml

Innovation. Community. Security.