let rec print_marking_short fmt = function
Unprocessed ->
Format.fprintf fmt "@[Unprocessed@]"
| Processed_Covered md
| Processed_Uncovered md
| Processed_Was_Covered_To_Reprocess md ->
Format.fprintf fmt "@[" ;
Region.print fmt md.region ;
Format.fprintf fmt "@]"
and print_node_data fmt nd =
Format.fprintf fmt "@[Data(@[id=%d;@ kind=" nd.id ;
(match nd.kind with
Node -> Format.fprintf fmt "Node"
| Entry _ -> Format.fprintf fmt "Entry"
| Exit _ -> Format.fprintf fmt "Exit");
Format.fprintf fmt ";@ mark=";
print_marking fmt nd.mark;
Format.fprintf fmt "@])@]"
and print_option f fmt n =
match n with
None -> Format.fprintf fmt "NONE"
| Some v -> f v
and print_node fmt n =
Format.fprintf fmt "@[Node(@[edge=";
(match Tree.get_parent_edge n with
None -> Format.fprintf fmt "NONE"
| Some eg ->
(match Tree.get_edge_label eg with
| PathEdge v -> Operation.print fmt v
| SummaryEdge {n_out = n_out} ->
Format.fprintf fmt "SUMMARY ";
print_node fmt n_out));
Format.fprintf fmt ",@,data=";
print_node_data fmt (Tree.get_node_label n);
Format.fprintf fmt "@])@]"