X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitacLib.ml;h=0eb29777617e7e9cbae4310b5a1b85f03dcd03fb;hb=513e52fa53da03a4775d9a6bc3c93eafb5f3f9df;hp=37bb571efd9f3884be655f05c16b4eac9de5488b;hpb=b11d278a26840884692cdfb89e168081134d293f;p=helm.git diff --git a/helm/matita/matitacLib.ml b/helm/matita/matitacLib.ml index 37bb571ef..0eb297776 100644 --- a/helm/matita/matitacLib.ml +++ b/helm/matita/matitacLib.ml @@ -31,6 +31,7 @@ open MatitaTypes let paths_to_search_in = ref [];; let quiet_compilation = ref false;; +let dont_delete_baseuri = ref false;; let add_l l = fun s -> l := s :: !l ;; let set_b b = fun () -> b := true;; @@ -38,7 +39,9 @@ let set_b b = fun () -> b := true;; let arg_spec = [ "-I", Arg.String (add_l paths_to_search_in), " Adds path to the list of searched paths for the include command"; - "-q", Arg.Unit (set_b quiet_compilation), "Turn off verbose compilation" + "-q", Arg.Unit (set_b quiet_compilation), "Turn off verbose compilation"; + "-preserve", Arg.Unit (set_b dont_delete_baseuri), + "Turns off automatic baseuri cleaning" ] let usage = sprintf "MatitaC v%s\nUsage: matitac [option ...] file\nOptions:" @@ -59,7 +62,7 @@ let run_script is eval_function = else fun status stm -> (* dump_status status; *) - let stm = TacticAstPp.pp_statement stm in + let stm = GrafiteAstPp.pp_statement stm in let stm = Pcre.replace ~rex:slash_n_RE stm in let stm = if String.length stm > 50 then @@ -73,7 +76,8 @@ let run_script is eval_function = eval_function status is cb with | MatitaEngine.Drop - | CicTextualParser2.Parse_error _ as exn -> raise exn + | End_of_file + | CicNotationParser.Parse_error _ as exn -> raise exn | exn -> MatitaLog.error (MatitaExcPp.to_string exn); raise exn @@ -119,23 +123,24 @@ let rec interactive_loop () = | MatitaEngine.Drop -> pp_ocaml_mode () | Sys.Break -> MatitaLog.error "user break!"; interactive_loop () | MatitaTypes.Command_error _ -> interactive_loop () - | CicTextualParser2.Parse_error (floc,err) -> - (* check for EOI *) - if Stream.peek str = None then - begin - print_newline (); - clean_exit (Some 0) - end - else - let (x, y) = CicAst.loc_of_floc floc in - MatitaLog.error (sprintf "Parse error at %d-%d: %s" x y err); - interactive_loop () + | End_of_file -> + print_newline (); + clean_exit (Some 0) + | CicNotationParser.Parse_error (floc,err) -> + let (x, y) = CicNotationPt.loc_of_floc floc in + MatitaLog.error (sprintf "Parse error at %d-%d: %s" x y err); + interactive_loop () | exn -> MatitaLog.error (Printexc.to_string exn); interactive_loop () let go () = Helm_registry.load_from BuildTimeConf.matita_conf; + CicNotation.load_notation BuildTimeConf.core_notation_script; Http_getter.init (); MetadataTypes.ownerize_tables (Helm_registry.get "matita.owner"); + MatitaDb.create_owner_environment (); + CicEnvironment.set_trust (* environment trust *) + (let trust = Helm_registry.get_bool "matita.environment_trust" in + fun _ -> trust); status := Some (ref (Lazy.force MatitaEngine.initial_status)); Sys.catch_break true; interactive_loop () @@ -149,9 +154,13 @@ let dump_moo_to_file file moo = let main ~mode = Helm_registry.load_from BuildTimeConf.matita_conf; + CicNotation.load_notation BuildTimeConf.core_notation_script; Http_getter.init (); MetadataTypes.ownerize_tables (Helm_registry.get "matita.owner"); MatitaDb.create_owner_environment (); + CicEnvironment.set_trust (* environment trust *) + (let trust = Helm_registry.get_bool "matita.environment_trust" in + fun _ -> trust); status := Some (ref (Lazy.force MatitaEngine.initial_status)); Sys.catch_break true; let origcb = MatitaLog.get_log_callback () in @@ -176,7 +185,9 @@ let main ~mode = | fname -> open_in fname) in run_script is - (MatitaEngine.eval_from_stream ~include_paths:!paths_to_search_in); + (MatitaEngine.eval_from_stream + ~include_paths:!paths_to_search_in + ~clean_baseuri:(not !dont_delete_baseuri)); let elapsed = Unix.time () -. time in let tm = Unix.gmtime elapsed in let sec = @@ -218,8 +229,8 @@ let main ~mode = clean_exit (Some 1) else pp_ocaml_mode () - | CicTextualParser2.Parse_error (floc,err) -> - let (x, y) = CicAst.loc_of_floc floc in + | CicNotationParser.Parse_error (floc,err) -> + let (x, y) = CicNotationPt.loc_of_floc floc in MatitaLog.error (sprintf "Parse error at %d-%d: %s" x y err); if mode = `COMPILER then clean_exit (Some 1)