X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaTypes.ml;h=13543dbb64d081f4afd1a1a7d2f599a956a11179;hb=112afe13b5aef27425d1a0bc9c71a70b491069bf;hp=bfdb99904a05a7ba88c4d5dbef44e9fb49eeb151;hpb=cc465115cdeea9819f43a5ad219b07c4f928c43a;p=helm.git diff --git a/helm/matita/matitaTypes.ml b/helm/matita/matitaTypes.ml index bfdb99904..13543dbb6 100644 --- a/helm/matita/matitaTypes.ml +++ b/helm/matita/matitaTypes.ml @@ -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 @@ -23,80 +23,52 @@ * http://helm.cs.unibo.it/ *) -exception Not_implemented of string -let not_implemented feature = raise (Not_implemented feature) +(* $Id$ *) - (** exceptions whose content should be presented to the user *) -exception Failure of string -let error s = raise (Failure s) -let warning s = prerr_endline ("MATITA WARNING: " ^ s) +open Printf +open GrafiteTypes -exception No_proof (** no current proof is available *) + (** user hit the cancel button *) +exception Cancel -class type observer = - (* "observer" pattern *) - object - method update: unit -> unit - end - -class subject = - (* "observer" pattern *) - object - val mutable observers = [] - method attach (o: observer) = observers <- o :: observers - method detach (o: observer) = - observers <- List.filter (fun o' -> o' != o) observers - method notify () = List.iter (fun o -> o#update ()) observers - 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 *) + ] -class type command = - (* "command" pattern *) - object - method execute: unit -> unit - method undo: unit -> unit - end +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 -class type parserr = (* "parser" is a keyword :-( *) - object - method parseTerm: char Stream.t -> DisambiguateTypes.term - method parseTactic: char Stream.t -> DisambiguateTypes.tactic - method parseTactical: char Stream.t -> DisambiguateTypes.tactical - method parseCommand: char Stream.t -> DisambiguateTypes.command - method parseScript: char Stream.t -> DisambiguateTypes.script - end +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 disambiguator = +class type mathViewer = object - method parserr: parserr - method setParserr: parserr -> unit - - method env: DisambiguateTypes.environment - method setEnv: DisambiguateTypes.environment -> unit - - (* TODO Zack: as long as matita doesn't support MDI inteface, - * disambiguateTerm will return a single term *) - (** @param env defaults to self#env *) - method disambiguateTerm: - ?context:Cic.context -> ?metasenv:Cic.metasenv -> - ?env:DisambiguateTypes.environment -> - char Stream.t -> - (DisambiguateTypes.environment * Cic.metasenv * Cic.term) - method disambiguateTermAst: - ?context:Cic.context -> ?metasenv:Cic.metasenv -> - ?env:DisambiguateTypes.environment -> - DisambiguateTypes.term -> - (DisambiguateTypes.environment * Cic.metasenv * Cic.term) + (** @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 - -(** {2 shorthands} *) - -type namer = ProofEngineTypes.mk_fresh_name_type - -type choose_uris_callback = - selection_mode:Gtk.Tags.selection_mode -> - ?title:string -> ?msg:string -> ?nonvars_button:bool -> - string list -> - string list - -type choose_interp_callback = (string * string) list list -> int list -