X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Fmatitac.ml;h=49032a8574a835aaed2c65b9af6924825cd8c2f9;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=c29b507792f698035809c66bd055827b85e4044b;hpb=541a200b13431987114dd3fd88ec9764cee1e772;p=helm.git diff --git a/helm/matita/matitac.ml b/helm/matita/matitac.ml index c29b50779..49032a857 100644 --- a/helm/matita/matitac.ml +++ b/helm/matita/matitac.ml @@ -1,4 +1,4 @@ -(* Copyright (C) 2004, HELM Team. +(* Copyright (C) 2005, HELM Team. * * This file is part of HELM, an Hypertextual, Electronic * Library of Mathematics, developed at the Computer Science @@ -23,101 +23,15 @@ * http://helm.cs.unibo.it/ *) -open Printf - -open MatitaTypes - -let message s = printf "** MatitaC: %s\n" s; flush stdout -let warn s = eprintf "** MatitaC WARNING: %s\n" s; flush stdout -let error s = eprintf "** MatitaC ERROR: %s\n" s; flush stderr - - (** console which prints on stdout/stderr *) -class tty_console = - object (self) - method clear () = () - method echo_message s = message s - method echo_error s = error s - (* TODO Zack: this method is similar to omonymous method in console, - * factorize it in a common super class *) - method wrap_exn: 'a. (unit -> 'a) -> 'a option = - fun f -> - try - Some (f ()) - with exn -> - self#echo_error (explain exn); - None - end - -(** {2 Initialization} *) - -let arg_spec = [ -(* "-opt", Arg...., "set bla bla bla"; *) -] -let usage = - sprintf "MatitaC v%s\nUsage: matitac [option ...] file ...\nOptions:" - BuildTimeConf.version - -let _ = Helm_registry.load_from "matita.conf.xml" - -let scripts = - let acc = ref [] in - let add_script fname = acc := fname :: !acc in - Arg.parse arg_spec add_script usage; - List.rev !acc - -let parserr = new MatitaDisambiguator.parserr () -let dbd = - Mysql.quick_connect - ~host:(Helm_registry.get "db.host") - ~user:(Helm_registry.get "db.user") - ~database:(Helm_registry.get "db.database") - () - -let owner = (Helm_registry.get "matita.owner") ;; -let _ = MetadataTypes.ownerize_tables owner ;; -let _ = MatitaDb.clean_owner_environment dbd owner ;; -let _ = MatitaDb.create_owner_environment dbd owner ;; - -let disambiguator = - new MatitaDisambiguator.disambiguator ~parserr ~dbd - ~chooseUris:mono_uris_callback ~chooseInterp:mono_interp_callback - () -let console = new tty_console -let interpreter = MatitaInterpreter.interpreter ~disambiguator ~console () - -let run_script fname = - message (sprintf "execution of %s started:" fname); - let script = - let ic = open_in fname in - let ast = - try - snd (CicTextualParser2.parse_script (Stream.of_channel ic)) - with - exn -> - error (explain exn); - assert false (* should be something like (Unix.exit 1) *) - in - close_in ic; - ast - in - let rec aux = function - | [] -> () (* script is over *) - | DisambiguateTypes.Comment _ :: tl -> aux tl - | DisambiguateTypes.Command ast :: tl -> - let loc = - match ast with - | TacticAst.LocatedTactical (loc, _) -> loc - | _ -> assert false - in - let (success, _) = interpreter#evalAst ast in - if not success then - error (sprintf "%s: error at %s, aborting." fname - (CicAst.pp_location loc)) - else - aux tl - in - aux script; - message (sprintf "execution of %s completed." fname) - -let _ = List.iter run_script scripts +let main () = + match Filename.basename Sys.argv.(0) with + | "matitadep" | "matitadep.opt" -> Matitadep.main () + | "matitaclean" | "matitaclean.opt" -> Matitaclean.main () + | "matitamake" | "matitamake.opt" -> Matitamake.main () + | _ -> + let _ = Paramodulation.Saturation.init () in (* ALB to link paramodulation *) + let _ = MatitacLib.main `COMPILER in + () + +let _ = main ()