]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/urimanager/uriManager.ml
Huge commit with several changes:
[helm.git] / helm / software / components / urimanager / uriManager.ml
index eb0388cc297a80e0e6a29f7f5fe3ef31af864102..2d099a4e9748bf64cae26ef76bf6361ce9986821 100644 (file)
@@ -191,6 +191,25 @@ let bodyuri_of_uri (uri, _) =
     None
 ;;
 
+let ind_uri_split ((s, _) as uri) =
+    let noxp = strip_xpointer uri in
+    try 
+      (let arg_index = String.rindex s '(' in
+       try 
+         (let ty_index = String.index_from s arg_index '/' in
+          try 
+            (let k_index = String.index_from s (ty_index+1) '/' in
+             let tyno = int_of_string (String.sub s (ty_index + 1) (k_index - ty_index - 1)) in
+             let kno = int_of_string (String.sub s (k_index + 1) (String.length s - k_index - 2)) in
+             noxp, Some tyno, Some kno)
+          with Not_found -> 
+            let tyno = int_of_string (String.sub s (ty_index + 1) (String.length s - ty_index - 2)) in
+            noxp, Some tyno, None)
+       with Not_found -> noxp, None, None
+      )
+    with Not_found -> noxp, None, None
+;;
+
 (* these are bugged!
  * we should remove _types, _univ, _ann all toghether *)
 let innertypesuri_of_uri (uri, _) =
@@ -220,6 +239,19 @@ end
 
 module UriSet = Set.Make (OrderedUri)
 
+(*
+module OrderedUriPair =
+struct
+  type t = uri * uri
+  let compare (u11, u12) (u21, u22) =
+    match compare u11 u21 with
+    | 0 -> compare u12 u22
+    | x -> x
+end
+
+module UriPairSet = Set.Make (OrderedUriPair)
+*)
+
 module HashedUri =
 struct
   type t = uri