let debug = false ;;
let debug_print = if debug then prerr_endline else ignore ;;
-let eval_from_stream
- ?do_heavy_checks ~include_paths ?clean_baseuri status str cb
-=
- try
- while true do
- let ast = GrafiteParser.parse_statement str in
- cb !status ast;
- status :=
- GrafiteEngine.eval_ast
- ~baseuri_of_script:(GrafiteParserMisc.baseuri_of_script ~include_paths)
- ~disambiguate_tactic:GrafiteDisambiguate.disambiguate_tactic
- ~disambiguate_command:GrafiteDisambiguate.disambiguate_command
- ?do_heavy_checks ?clean_baseuri !status ast
- done
- with End_of_file -> ()
+let eval_ast ~include_paths ?do_heavy_checks ?clean_baseuri status ast =
+ GrafiteEngine.eval_ast
+ ~baseuri_of_script:(GrafiteParserMisc.baseuri_of_script ~include_paths)
+ ~disambiguate_tactic:GrafiteDisambiguate.disambiguate_tactic
+ ~disambiguate_command:GrafiteDisambiguate.disambiguate_command
+ ?do_heavy_checks ?clean_baseuri status ast
-let eval_from_stream_greedy
- ?do_heavy_checks ~include_paths ?clean_baseuri status str cb
+let eval_from_stream ?(prompt=false) ?do_heavy_checks ~include_paths
+ ?clean_baseuri status str cb
=
while true do
- print_string "matita> ";
- flush stdout;
+ if prompt then (print_string "matita> "; flush stdout);
let ast = GrafiteParser.parse_statement str in
cb !status ast;
status :=
- GrafiteEngine.eval_ast
- ~baseuri_of_script:(GrafiteParserMisc.baseuri_of_script ~include_paths)
- ~disambiguate_tactic:GrafiteDisambiguate.disambiguate_tactic
- ~disambiguate_command:GrafiteDisambiguate.disambiguate_command
- ?do_heavy_checks ?clean_baseuri !status ast
+ eval_ast ~include_paths ?do_heavy_checks ?clean_baseuri !status ast
done
;;
let eval_string ?do_heavy_checks ~include_paths ?clean_baseuri status str =
+ try
eval_from_stream
?do_heavy_checks ~include_paths ?clean_baseuri status
(Ulexing.from_utf8_string str) (fun _ _ -> ())
+ with End_of_file -> ()
let default_options () = no_options
GrafiteTypes.status ref -> string -> unit
val eval_from_stream:
+ ?prompt:bool ->
?do_heavy_checks:bool ->
include_paths:string list ->
?clean_baseuri:bool ->
(GrafiteTypes.status -> GrafiteParser.statement -> unit) ->
unit
-val eval_from_stream_greedy:
- ?do_heavy_checks:bool ->
- include_paths:string list ->
- ?clean_baseuri:bool ->
- GrafiteTypes.status ref-> Ulexing.lexbuf ->
- (GrafiteTypes.status -> GrafiteParser.statement -> unit) ->
- unit
-
val initial_status: GrafiteTypes.status lazy_t
let str = Ulexing.from_utf8_channel stdin in
try
run_script str
- (MatitaEngine.eval_from_stream_greedy
+ (MatitaEngine.eval_from_stream ~prompt:true
~include_paths:(Helm_registry.get_list Helm_registry.string
"matita.includes"))
with
| "stdin" -> stdin
| fname -> open_in fname) in
let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes"
- in
- run_script is
- (MatitaEngine.eval_from_stream ~include_paths
- ~clean_baseuri:(not (Helm_registry.get_bool "matita.preserve")));
+ Helm_registry.get_list Helm_registry.string "matita.includes" in
+ (try
+ run_script is
+ (MatitaEngine.eval_from_stream ~include_paths
+ ~clean_baseuri:(not (Helm_registry.get_bool "matita.preserve")))
+ with End_of_file -> ());
let elapsed = Unix.time () -. time in
let tm = Unix.gmtime elapsed in
let sec =