sig
type t = PdgTypes.G.t
module V : sig type t = PdgTypes.Node.t end
module E :
sig
type t = PdgTypes.G.E.t
type label = PdgTypes.G.E.label
val src : t -> PdgTypes.Node.t
val dst : t -> PdgTypes.Node.t
val label : t -> label
end
val create : unit -> t
val add_elem : t -> PdgIndex.Key.t -> PdgTypes.Node.t
val add_dpd :
t ->
PdgTypes.Node.t ->
PdgTypes.Dpd.td -> Locations.Zone.t option -> PdgTypes.Node.t -> unit
val succ : t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val pred : t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val iter_vertex : (PdgTypes.Node.t -> unit) -> t -> unit
val iter_edges_e : (E.t -> unit) -> t -> unit
val iter_succ_e : (E.t -> unit) -> t -> PdgTypes.Node.t -> unit
val fold_succ_e : (E.t -> 'a -> 'a) -> t -> PdgTypes.Node.t -> 'a -> 'a
val fold_succ :
(PdgTypes.Node.t -> 'a -> 'a) -> t -> PdgTypes.Node.t -> 'a -> 'a
val iter_pred_e : (E.t -> unit) -> t -> PdgTypes.Node.t -> unit
val fold_pred :
(PdgTypes.Node.t -> 'a -> 'a) -> t -> PdgTypes.Node.t -> 'a -> 'a
val edge_dpd : E.t -> PdgTypes.Dpd.t * Locations.Zone.t option
val pretty_edge_label : Format.formatter -> E.label -> unit
end