let finalize_node n r b =
Hashtbl.replace final n (b,r)
-module K =
+module K =
struct
type t = int * StateSet.t * StateSet.t
let hash (a,b,c) = HASHINT3(a, (b.StateSet.id :> int), (c.StateSet.id :> int) )
let marked, last_round = try Hashtbl.find final node_id with Not_found ->
Printf.eprintf ">>> %i\n%!" node_id; false, !max_round;
in
- let pc = if !max_round == 0 then 1. else float_of_int last_round /. float_of_int !max_round in
let scolor, tcolor =
- let { sat ; todo; _ } = List.hd(M.find last_round m) in
- let c = (last_round, sat, todo) in color c, text_color c
+ let { sat ; todo; _ } =
+ match M.find last_round m with
+ [] -> { sat = StateSet.empty; todo= StateSet.empty; msg = "ERROR" }
+ | [ e ] -> e
+ | l -> List.hd (List.tl (List.rev l))
+ in
+ let c = (last_round, StateSet.union sat todo, StateSet.empty) in color c, text_color c
in
let tag = QName.to_string (T.tag tree node) in
let lbox = (String.length tag + 2) * 10 in
pp_print_flush ohtml ();
close_out ohtml_;
close_in fi
-
-