(* Copyright (C) 2004-2005, HELM Team. * * This file is part of HELM, an Hypertextual, Electronic * Library of Mathematics, developed at the Computer Science * Department, University of Bologna, Italy. * * HELM is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * HELM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HELM; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * * For details, see the HELM World-Wide-Web page, * http://helm.cs.unibo.it/ *) class type script = object (** @return current status *) method status: MatitaTypes.status (** {2 Observers} *) method addObserver : (MatitaTypes.status -> unit) -> unit (** {2 History} *) method advance : ?statement:string -> unit -> unit method retract : unit -> unit method goto: [`Top | `Bottom | `Cursor] -> unit -> unit method reset: unit -> unit (** {2 Load/save} *) method assignFileName : string -> unit (* to the current active file *) method loadFromFile : unit -> unit method saveToFile : unit -> unit (** {2 Current proof} (if any) *) (** @return true if there is an ongoing proof, false otherise *) method onGoingProof: unit -> bool method proofStatus: ProofEngineTypes.status (** @raise Statement_error *) method proofMetasenv: Cic.metasenv (** @raise Statement_error *) method proofContext: Cic.context (** @raise Statement_error *) method setGoal: int -> unit (** end of script, true if the whole script has been executed *) method eos: bool (* debug *) method dump : unit -> unit end (** @param set_star callback used to set the modified symbol (usually a star * "*") on the side of a script name *) val script: buffer:GText.buffer -> init:MatitaTypes.status -> mathviewer: MatitaTypes.mathViewer-> urichooser: (UriManager.uri list -> UriManager.uri list) -> ask_confirmation: (title:string -> message:string -> [`YES | `NO | `CANCEL]) -> set_star: (string -> bool -> unit) -> unit -> script (* each time script above is called an internal ref is set, instance will return * the value of this ref *) (* TODO Zack: orrible solution until we found a better one for having a single * access point for the script *) val instance: unit -> script