(***********************************************************************) (* *) (* Lucca Hirschi, ? *) (* ? *) (* *) (* Copyright 2010-2012 Université Paris-Sud and Centre National de la *) (* Recherche Scientifique. All rights reserved. This file is *) (* distributed under the terms of the GNU Lesser General Public *) (* License, with the special exception on linking described in file *) (* ../LICENSE. *) (* *) (***********************************************************************) module Node = struct type t = int let hash n = n let compare n1 n2 = n1 - n2 let equal n1 n2 = n1 = n2 end module NodeHash = Hashtbl.Make (Node) type t = (StateSet.t*StateSet.t) NodeHash.t (** Map from node to query and recognizing states *) let compute tree asta = let size_tree = 10000 in (* todo *) let map = NodeHash.create size_tree in map let print fmt run = let print_d_set fmt (s_1,s_2) = Format.fprintf fmt "@[(%a,@ %a)@]" StateSet.print s_1 StateSet.print s_2 in let print_map fmt run = let pp = Format.fprintf fmt in if NodeHash.length run = 0 then Format.fprintf fmt "ø" else NodeHash.iter (fun cle set -> pp "| %i-->%a@ " cle print_d_set set) run in let print_box fmt run = let pp = Format.fprintf fmt in pp "@[# Mapping: %a@ @]" print_map run in Format.fprintf fmt "@[##### RUN #####@, %a@ @]@." print_box run