Newer
Older
let rec (algo_varT: Algo.varT -> string) = function
| It -> "int"
| Ft -> "float"
| Bt -> "bool"
| Et i -> Printf.sprintf "enum(%d)" i
| Nt -> "Neighbor"
| At(t,i) -> Printf.sprintf "%s[%d]" (algo_varT t) i
let (algo_vars : Algo.vars -> string) = fun vars ->
String.concat "," (List.map (fun (n,t) -> Printf.sprintf "%s:%s" n (algo_varT t)) vars)
open Algo
let (algo_neighbor : Algo.neighbor -> string) = fun n ->
Printf.sprintf "%s (%s)" (n.pid()) (algo_vars n.n_vars)
open Process
let (env: Env.t -> Process.t list -> string) =
fun env pl ->
let ll = List.map
(fun p ->
List.map
(fun (n,_) ->
Printf.sprintf "%s.%s->%s" p.pid n
(Algo.value_to_string (Env.get env p.pid n)))
p.variables)
pl
in
String.concat ", " (List.flatten ll)
let (env_rif: Env.t -> Process.t list -> string) =
fun env pl ->
let ll = List.map
(fun p ->
List.map
(fun (n,_) ->
Printf.sprintf "%s"
(Algo.value_to_string (Env.get env p.pid n)))
p.variables)
pl
in
String.concat " " (List.flatten ll)