-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathggraph.mli
36 lines (33 loc) · 1.5 KB
/
ggraph.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
open My_datatypes
open Datatypes_t
open Generation
open Gg
(****************************************************************************************)
(* G-graph *)
(****************************************************************************************)
(*
module type GGRAPH =
sig
*)
type t
val get_target : t -> Gg.Node.t
val get_generations : t -> (Generation.t list)
(* used to update target field if/when we find_in_list it in the initial top-down phase *)
val set_target : t -> Gg.Node.t -> unit
val set_generations : t -> (Generation.t list) -> unit
val create : My_datatypes.universe_t -> (My_datatypes.component_t ref) -> string -> t
val generations_num : t -> int
val nth_generation : t -> int -> Generation.t
val add_generation : t -> Generation.t -> unit
val print_generations : t -> Buffer.t ref -> unit
val print_generations_full : t -> unit
(* build first generation of the G-graph: all components in their initial state *)
val build_initial_gen : t -> Generation.t
(* generate the G-graph *)
val populate : t -> unit
val populate_DEBUG : t -> Buffer.t ref -> unit
(* working with an array of generations, instead of the full graph *)
val visit : t -> (Gg.Node.t list) array
val linearize : (Gg.Node.t list) array -> Gg.Node.t -> (Gg.Node.t list) list
val print_generations_a : (Gg.Node.t list) array -> unit
val print_generations_full_a : (Gg.Node.t list) array -> unit