]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaTypes.ml
implemented pretty printer for (mutual) (co)inductive types
[helm.git] / helm / matita / matitaTypes.ml
index 86e77e7e82ae5d210904a435f12ad4560c6da77d..cd9d34f0852e5fe9d9f3f327b5597199eb1da307 100644 (file)
@@ -35,6 +35,10 @@ let debug_print s =
 
 exception No_proof  (** no current proof is available *)
 
+exception Cancel
+exception Unbound_identifier of string
+
+(*
 let untitled_con_uri = UriManager.uri_of_string "cic:/untitled.con"
 let untitled_def_uri = UriManager.uri_of_string "cic:/untitled.ind"
 
@@ -42,6 +46,8 @@ let unopt_uri ?(kind = `Con) = function
   | Some uri -> uri
   | None ->
       (match kind with `Con -> untitled_con_uri | `Def -> untitled_def_uri)
+*)
+let unopt_uri = function Some uri -> uri | None -> assert false
 
 class type parserr =  (* "parser" is a keyword :-( *)
   object
@@ -68,13 +74,13 @@ class type disambiguator =
       ?context:Cic.context -> ?metasenv:Cic.metasenv ->
       ?env:DisambiguateTypes.environment ->
         char Stream.t ->
-          (DisambiguateTypes.environment * Cic.metasenv * Cic.term)
+          (DisambiguateTypes.environment * Cic.metasenv * Cic.term * CicUniv.universe_graph)
       (** @param env @see disambiguateTerm above *)
     method disambiguateTermAst:
       ?context:Cic.context -> ?metasenv:Cic.metasenv ->
       ?env:DisambiguateTypes.environment ->
         DisambiguateTypes.term ->
-          (DisambiguateTypes.environment * Cic.metasenv * Cic.term)
+          (DisambiguateTypes.environment * Cic.metasenv * Cic.term * CicUniv.universe_graph) 
   end
 
 (*
@@ -121,7 +127,22 @@ type proof_handler =
 class type interpreter =
   object
     method reset: unit  (** return the interpreter to the initial state *)
-    method evalPhrase: string -> unit
+
+      (** parse a single phrase contained in the input string. Additional
+      * garbage at the end of the phrase is ignored
+      * @return true if no exception has been raised by the evaluation, false
+      * otherwise
+      *)
+    method evalPhrase: string -> bool
+
+      (** as above, evaluating a command/tactics AST *)
+    method evalAst: DisambiguateTypes.tactical -> bool
+
+      (** offset from the starting of the last string parser by evalPhrase where
+      * parsing stop.
+      * @raise Failure when no offset has been recorded *)
+    method endOffset: int
+
   end
 
 (** {2 MathML widgets} *)