]> matita.cs.unibo.it Git - helm.git/commitdiff
generate dot files with attributes on nodes (instead of only edges), and added genera...
authorStefano Zacchiroli <zack@upsilon.cc>
Wed, 12 Jul 2006 17:14:14 +0000 (17:14 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Wed, 12 Jul 2006 17:14:14 +0000 (17:14 +0000)
helm/software/components/library/coercGraph.ml

index 6d7a670efc688d641f2927ce62e03af1600f6076..d3adfdb5f6566dcb1156ce7f26be64cf664d5a11 100644 (file)
@@ -119,19 +119,29 @@ let target_of t =
 let generate_dot_file () =
   let l = CoercDb.to_list () in
   let preamble = "
-    digraph pippo {
+    digraph g {
       node [fontsize=9, width=.4, height=.4];
       edge [fontsize=10]; 
       \n" 
   in
   let conclusion = " } \n" in
+  let node_dsc carr =
+    match CoercDb.uri_of_carr carr with
+    | None -> ""
+    | Some uri ->
+        sprintf "%s [href=\"%s\"]"
+          (CoercDb.name_of_carr carr) (UriManager.string_of_uri uri) in
   let data = List.fold_left 
     (fun acc (src,tgt,cl) -> 
       List.fold_left 
         (fun acc c ->
-          acc ^ CoercDb.name_of_carr src ^ " -> " ^ 
-          CoercDb.name_of_carr tgt ^ "[label=\"" ^ UriManager.name_of_uri c ^ 
-          "\"];\n")
+          let src_name = CoercDb.name_of_carr src in
+          let tgt_name = CoercDb.name_of_carr tgt in
+          acc ^ src_name ^ " -> "
+            ^ tgt_name ^ " [label=\"" ^ UriManager.name_of_uri c
+            ^ "\",href=\"" ^ UriManager.string_of_uri c
+            ^ "\"];\n"
+            ^ node_dsc src ^ node_dsc tgt)
         acc cl)
       "" l 
   in