src/Pure/Isar/toplevel.ML
changeset 25809 decb98ff92dd
parent 25799 7a204e0467f8
child 25819 e6feb08b7f4b
equal deleted inserted replaced
25808:c7aaa3f6f0ac 25809:decb98ff92dd
   293   | exn_msg _ exn = General.exnMessage exn;
   293   | exn_msg _ exn = General.exnMessage exn;
   294 
   294 
   295 in
   295 in
   296 
   296 
   297 fun exn_message exn = exn_msg (! debug) exn;
   297 fun exn_message exn = exn_msg (! debug) exn;
   298 
   298 fun print_exn (exn, s) = Output.error_msg (cat_lines [exn_message exn, s]);
   299 fun print_exn NONE = ()
       
   300   | print_exn (SOME (exn, s)) = Output.error_msg (cat_lines [exn_message exn, s]);
       
   301 
   299 
   302 end;
   300 end;
   303 
   301 
   304 
   302 
   305 (* controlled execution *)
   303 (* controlled execution *)
   768 fun >> tr =
   766 fun >> tr =
   769   (case apply true tr (get_state ()) of
   767   (case apply true tr (get_state ()) of
   770     NONE => false
   768     NONE => false
   771   | SOME (state', exn_info) =>
   769   | SOME (state', exn_info) =>
   772       (global_state := (state', exn_info);
   770       (global_state := (state', exn_info);
   773         print_exn exn_info;
   771         (case exn_info of
       
   772           NONE => ()
       
   773         | SOME err => setmp_thread_properties tr print_exn err);
   774         true));
   774         true));
   775 
   775 
   776 fun >>> [] = ()
   776 fun >>> [] = ()
   777   | >>> (tr :: trs) = if >> tr then >>> trs else ();
   777   | >>> (tr :: trs) = if >> tr then >>> trs else ();
   778 
   778