diff options
-rw-r--r-- | toplevel/toploop.ml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/toplevel/toploop.ml b/toplevel/toploop.ml index fc7594d3c..298c989db 100644 --- a/toplevel/toploop.ml +++ b/toplevel/toploop.ml @@ -209,6 +209,7 @@ let _ = (* The loop *) let parse_toplevel_phrase = ref Parse.toplevel_phrase +exception PPerror let loop() = print_string " Objective Caml version "; @@ -228,11 +229,13 @@ let loop() = empty_lexbuf lb; Location.reset(); first_line := true; - execute_phrase (!parse_toplevel_phrase lb); () + let phr = try !parse_toplevel_phrase lb with Exit -> raise PPerror in + execute_phrase phr; () with End_of_file -> exit 0 | Sys.Break -> print_string "Interrupted."; print_newline() + | PPerror -> () | x -> Errors.report_error x done |