src/Pure/PIDE/query_operation.ML
changeset 61209 7a421e7ef97c
parent 61208 19118f9b939d
child 61214 a00bee2dfbd1
equal deleted inserted replaced
61208:19118f9b939d 61209:7a421e7ef97c
    20       SOME {delay = NONE, pri = pri, persistent = false, strict = false,
    20       SOME {delay = NONE, pri = pri, persistent = false, strict = false,
    21         print_fn = fn _ => uninterruptible (fn restore_attributes => fn state =>
    21         print_fn = fn _ => uninterruptible (fn restore_attributes => fn state =>
    22           let
    22           let
    23             fun result s = Output.result [(Markup.instanceN, instance)] [s];
    23             fun result s = Output.result [(Markup.instanceN, instance)] [s];
    24             fun status m = result (Markup.markup_only m);
    24             fun status m = result (Markup.markup_only m);
    25             fun output_result s = result (Markup.markup (Markup.writelnN, []) s);
    25             fun output_result s = result (Markup.markup Markup.writeln s);
    26             fun toplevel_error exn =
    26             fun toplevel_error exn = result (Markup.markup Markup.error (Runtime.exn_message exn));
    27               result (Markup.markup (Markup.errorN, []) (Runtime.exn_message exn));
       
    28 
    27 
    29             val _ = status Markup.running;
    28             val _ = status Markup.running;
    30             fun run () = f {state = state, args = args, output_result = output_result};
    29             fun run () = f {state = state, args = args, output_result = output_result};
    31             val _ =
    30             val _ =
    32               (case Exn.capture (*sic!*) (restore_attributes run) () of
    31               (case Exn.capture (*sic!*) (restore_attributes run) () of
    41 
    40 
    42 val _ =
    41 val _ =
    43   register {name = "print_state", pri = Task_Queue.urgent_pri + 2}
    42   register {name = "print_state", pri = Task_Queue.urgent_pri + 2}
    44     (fn {state = st, output_result, ...} =>
    43     (fn {state = st, output_result, ...} =>
    45       if Toplevel.is_proof st
    44       if Toplevel.is_proof st
    46       then output_result (Markup.markup (Markup.stateN, []) (Toplevel.string_of_state st))
    45       then output_result (Markup.markup Markup.state (Toplevel.string_of_state st))
    47       else ());
    46       else ());
    48 
    47 
    49 end;
    48 end;