]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matitaTypes.ml
rc-1
[helm.git] / matita / matitaTypes.ml
index 13543dbb64d081f4afd1a1a7d2f599a956a11179..23d0d832f238947adef0cb875c86b65ddd750af4 100644 (file)
@@ -35,13 +35,18 @@ type abouts =
   [ `Blank
   | `Current_proof
   | `Us
+  | `Coercions
+  | `CoercionsFull
   ]
   
 type mathViewer_entry =
   [ `About of abouts  (* current proof *)
-  | `Check of string (* term *)
+  | `Check of string  (* term *)
   | `Cic of Cic.term * Cic.metasenv
-  | `Dir of string (* "directory" in cic uris namespace *)
+  | `Development of string
+  | `Dir of string  (* "directory" in cic uris namespace *)
+  | `HBugs of [ `Tutors ] (* list of available HBugs tutors *)
+  | `Metadata of [ `Deps of [`Fwd | `Back] * UriManager.uri ]
   | `Uri of UriManager.uri (* cic object uri *)
   | `Whelp of string * UriManager.uri list (* query and results *)
   ]
@@ -50,9 +55,23 @@ let string_of_entry = function
   | `About `Blank -> "about:blank"
   | `About `Current_proof -> "about:proof"
   | `About `Us -> "about:us"
+  | `About `Coercions -> "about:coercions?tred=true"
+  | `About `CoercionsFull -> "about:coercions"
   | `Check _ -> "check:"
   | `Cic (_, _) -> "term:"
+  | `Development d -> "devel:/" ^ d
   | `Dir uri -> uri
+  | `HBugs `Tutors -> "hbugs:/tutors/"
+  | `Metadata meta ->
+      "metadata:/" ^
+      (match meta with
+      | `Deps (dir, uri) ->
+          "deps/" ^
+          let suri =
+            let suri = UriManager.string_of_uri uri in
+            let len = String.length suri in
+            String.sub suri 4 (len - 4) in (* strip "cic:" prefix *)
+          (match dir with | `Fwd -> "forward" | `Back -> "backward") ^ suri)
   | `Uri uri -> UriManager.string_of_uri uri
   | `Whelp (query, _) -> query
 
@@ -60,6 +79,8 @@ let entry_of_string = function
   | "about:blank" -> `About `Blank
   | "about:proof" -> `About `Current_proof
   | "about:us"    -> `About `Us
+  | "about:coercions?tred=true"    -> `About `Coercions
+  | "about:coercions"    -> `About `CoercionsFull
   | _ ->  (* only about entries supported ATM *)
       raise (Invalid_argument "entry_of_string")