]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaDisambiguator.mli
remove matitamake binaries on clean
[helm.git] / helm / matita / matitaDisambiguator.mli
index 8397e4dbff59017056ab2dbb92fa43a1669c7daa..a5d0aed44e465d9f5c3ca4cf783ff70e0071e166 100644 (file)
@@ -1,4 +1,4 @@
-(* Copyright (C) 2004, HELM Team.
+(* Copyright (C) 2004-2005, HELM Team.
  * 
  * This file is part of HELM, an Hypertextual, Electronic
  * Library of Mathematics, developed at the Computer Science
  * http://helm.cs.unibo.it/
  *)
 
-class parserr: unit -> MatitaTypes.parserr
+open MatitaTypes
 
-class disambiguator:
-  parserr:MatitaTypes.parserr -> (** parser *)
-  mqiconn:MQIConn.handle -> (** mathql database connection *)
-  chooseUris:MatitaTypes.choose_uris_callback ->
-  chooseInterp:MatitaTypes.choose_interp_callback ->
-    unit ->
-      MatitaTypes.disambiguator
+(** raised when ambiguous input is found but not expected (e.g. in the batch
+  * compiler) *)
+exception Ambiguous_input
+
+type choose_uris_callback = id:string -> UriManager.uri list -> UriManager.uri list
+type choose_interp_callback = (string * string) list list -> int list
+
+val set_choose_uris_callback:   choose_uris_callback -> unit
+val set_choose_interp_callback: choose_interp_callback -> unit
+
+(** @raise Ambiguous_input if called, default value for internal
+  * choose_uris_callback if not set otherwise with set_choose_uris_callback
+  * above *)
+val mono_uris_callback: choose_uris_callback
+
+(** @raise Ambiguous_input if called, default value for internal
+  * choose_interp_callback if not set otherwise with set_choose_interp_callback
+  * above *)
+val mono_interp_callback: choose_interp_callback
+
+(** for GUI callbacks see MatitaGui.interactive_{interp,user_uri}_choice *)
+
+val disambiguate_term :
+  dbd:Mysql.dbd ->
+  context:Cic.context ->
+  metasenv:Cic.metasenv ->
+  ?initial_ugraph:CicUniv.universe_graph -> 
+  aliases:DisambiguateTypes.environment -> (* previous interpretation status *)
+  DisambiguateTypes.term ->
+  (DisambiguateTypes.environment * (* new interpretation status *)
+   Cic.metasenv *                  (* new metasenv *)
+   Cic.term *
+   CicUniv.universe_graph) list *  (* disambiguated term *)
+  bool  (* has interactive_interpretation_choice been invoked? *)
+
+(** @param fresh_instances as per disambiguate_term *)
+val disambiguate_obj :
+  dbd:Mysql.dbd ->
+  aliases:DisambiguateTypes.environment -> (* previous interpretation status *)
+  uri:UriManager.uri option ->     (* required only for inductive types *)
+  GrafiteAst.obj ->
+  (DisambiguateTypes.environment * (* new interpretation status *)
+   Cic.metasenv *                  (* new metasenv *)
+   Cic.obj *
+   CicUniv.universe_graph) list *  (* disambiguated obj *)
+  bool  (* has interactive_interpretation_choice been invoked? *)