]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/urimanager/uriManager.ml
merged changes from the svn fork by me and Enrico
[helm.git] / helm / ocaml / urimanager / uriManager.ml
index 00cf4faa7a4775409eabdcb4d8610c9278a73329..a4d2604851bf11a85077be94542efc729060075a 100644 (file)
@@ -36,6 +36,7 @@ let eq uri1 uri2 =
  uri1 == uri2
 ;;
 
+
 let string_of_uri uri =
   match  uri.(Array.length uri - 1) with
   | "" -> 
@@ -43,6 +44,8 @@ let string_of_uri uri =
   | _ -> 
       String.concat "#" 
         [ uri.(Array.length uri - 3); uri.(Array.length uri - 1) ]
+
+
 let name_of_uri uri = uri.(Array.length uri - 2);;
 let buri_of_uri uri = uri.(Array.length uri - 4);;
 let depth_of_uri uri = Array.length uri - 3;;
@@ -179,3 +182,16 @@ let string_of_uriref (uri, fi) =
       | [t]         -> str ^ xp t ^ ")" 
       | t :: c :: _ -> str ^ xp t ^ "/" ^ string_of_int c ^ ")" 
 
+let compare u1 u2 =
+  let su1 = string_of_uri u1 in
+  let su2 = string_of_uri u2 in
+  Pervasives.compare su1 su2
+
+module OrderedUri =
+struct
+  type t = uri
+  let compare = compare (* the one above, not Pervasives.compare *)
+end
+
+module UriSet = Set.Make (OrderedUri)
+