src/Pure/PIDE/command.ML
changeset 49036 4680c4046814
parent 48918 6e5fd4585512
child 49866 619acbd72664
equal deleted inserted replaced
49035:8e124393c281 49036:4680c4046814
   103       val malformed' = Toplevel.is_malformed tr;
   103       val malformed' = Toplevel.is_malformed tr;
   104       val is_init = Toplevel.is_init tr;
   104       val is_init = Toplevel.is_init tr;
   105       val is_proof = Keyword.is_proof (Toplevel.name_of tr);
   105       val is_proof = Keyword.is_proof (Toplevel.name_of tr);
   106 
   106 
   107       val _ = Multithreading.interrupted ();
   107       val _ = Multithreading.interrupted ();
   108       val _ = Toplevel.status tr Isabelle_Markup.forked;
   108       val _ = Toplevel.status tr Isabelle_Markup.running;
   109       val start = Timing.start ();
   109       val start = Timing.start ();
   110       val (errs1, result) = run (is_init orelse is_proof) (Toplevel.set_print false tr) st;
   110       val (errs1, result) = run (is_init orelse is_proof) (Toplevel.set_print false tr) st;
   111       val errs2 = (case result of NONE => [] | SOME st' => check_cmts tr cmts st');
   111       val errs2 = (case result of NONE => [] | SOME st' => check_cmts tr cmts st');
   112       val errs = errs1 @ errs2;
   112       val errs = errs1 @ errs2;
   113       val _ = timing tr (Timing.result start);
   113       val _ = timing tr (Timing.result start);
   114       val _ = Toplevel.status tr Isabelle_Markup.joined;
   114       val _ = Toplevel.status tr Isabelle_Markup.finished;
   115       val _ = List.app (Toplevel.error_msg tr) errs;
   115       val _ = List.app (Toplevel.error_msg tr) errs;
   116     in
   116     in
   117       (case result of
   117       (case result of
   118         NONE =>
   118         NONE =>
   119           let
   119           let
   120             val _ = if null errs then Exn.interrupt () else ();
   120             val _ = if null errs then Exn.interrupt () else ();
   121             val _ = Toplevel.status tr Isabelle_Markup.failed;
   121             val _ = Toplevel.status tr Isabelle_Markup.failed;
   122           in ((st, malformed'), no_print) end
   122           in ((st, malformed'), no_print) end
   123       | SOME st' =>
   123       | SOME st' =>
   124           let
   124           let
   125             val _ = Toplevel.status tr Isabelle_Markup.finished;
       
   126             val _ = proof_status tr st';
   125             val _ = proof_status tr st';
   127             val do_print =
   126             val do_print =
   128               not is_init andalso
   127               not is_init andalso
   129                 (Toplevel.print_of tr orelse (is_proof andalso Toplevel.is_proof st'));
   128                 (Toplevel.print_of tr orelse (is_proof andalso Toplevel.is_proof st'));
   130           in ((st', malformed'), if do_print then print_state tr st' else no_print) end)
   129           in ((st', malformed'), if do_print then print_state tr st' else no_print) end)