X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaTypes.ml;h=1e5957ae8e91ae7862f84b78e026b209c2510210;hb=513e52fa53da03a4775d9a6bc3c93eafb5f3f9df;hp=48d419341ca4b2fad4aefbf7891c23dc4b1b868a;hpb=de9a83f286eee12117fb478ea2db18f7faebac9a;p=helm.git diff --git a/helm/matita/matitaTypes.ml b/helm/matita/matitaTypes.ml index 48d419341..1e5957ae8 100644 --- a/helm/matita/matitaTypes.ml +++ b/helm/matita/matitaTypes.ml @@ -58,18 +58,18 @@ type options = option_value StringMap.t let no_options = StringMap.empty type status = { - aliases: DisambiguateTypes.environment; (** disambiguation aliases *) - proof_status: proof_status; - options: options; - coercions: CoercGraph.coercions; - objects: (UriManager.uri * string) list; - (** in-scope objects, with their paths *) + aliases : DisambiguateTypes.environment; + moo_content_rev : string list; + proof_status : proof_status; + options : options; + objects : (UriManager.uri * string) list; + notation_ids: CicNotation.notation_id list; } let dump_status status = MatitaLog.message "status.aliases:\n"; MatitaLog.message - (CicTextualParser2.EnvironmentP3.to_string status.aliases ^ "\n"); + (DisambiguatePp.pp_environment status.aliases ^ "\n"); MatitaLog.message "status.proof_status:"; MatitaLog.message (match status.proof_status with @@ -86,11 +86,6 @@ let dump_status status = in MatitaLog.message (k ^ "::=" ^ v)) status.options; MatitaLog.message "status.coercions\n"; - List.iter - (fun (u1,u2,u3) -> MatitaLog.message - ((UriManager.string_of_uri u1) ^ - (UriManager.string_of_uri u2) ^ - (UriManager.string_of_uri u3))) status.coercions; MatitaLog.message "status.objects:\n"; List.iter (fun (u,_) -> @@ -132,7 +127,10 @@ let set_option status name value = with Failure _ -> command_error (sprintf "Not an integer value \"%s\"" value)) in - { status with options = StringMap.add name value status.options } + if StringMap.mem name status.options && name = "baseuri" then + command_error "Redefinition of 'baseuri' is forbidden." + else + { status with options = StringMap.add name value status.options } (* subset of MatitaConsole.console methods needed by MatitaInterpreter *) class type console = @@ -145,3 +143,45 @@ class type console = method show : ?msg:string -> unit -> unit end +type abouts = + [ `Blank + | `Current_proof + | `Us + ] + +type mathViewer_entry = + [ `About of abouts (* current proof *) + | `Check of string (* term *) + | `Cic of Cic.term * Cic.metasenv + | `Dir of string (* "directory" in cic uris namespace *) + | `Uri of UriManager.uri (* cic object uri *) + | `Whelp of string * UriManager.uri list (* query and results *) + ] + +let string_of_entry = function + | `About `Blank -> "about:blank" + | `About `Current_proof -> "about:proof" + | `About `Us -> "about:us" + | `Check _ -> "check:" + | `Cic (_, _) -> "term:" + | `Dir uri -> uri + | `Uri uri -> UriManager.string_of_uri uri + | `Whelp (query, _) -> query + +let entry_of_string = function + | "about:blank" -> `About `Blank + | "about:proof" -> `About `Current_proof + | "about:us" -> `About `Us + | _ -> (* only about entries supported ATM *) + raise (Invalid_argument "entry_of_string") + +class type mathViewer = + object + (** @param reuse if set reused last opened cic browser otherwise + * opens a new one. default is false + *) + method show_entry: ?reuse:bool -> mathViewer_entry -> unit + method show_uri_list: + ?reuse:bool -> entry:mathViewer_entry -> UriManager.uri list -> unit + end +