src/Pure/Isar/toplevel.ML
changeset 76812 9e09030737e5
parent 76811 56d76e8cecf4
child 76813 92a547feec88
equal deleted inserted replaced
76811:56d76e8cecf4 76812:9e09030737e5
   311   | (Keep f, node) => no_update (fn x => f int x) node state
   311   | (Keep f, node) => no_update (fn x => f int x) node state
   312   | (Transaction _, Toplevel) => raise UNDEF
   312   | (Transaction _, Toplevel) => raise UNDEF
   313   | (Transaction (f, g), node) => update (fn x => f int x) g node
   313   | (Transaction (f, g), node) => update (fn x => f int x) g node
   314   | _ => raise UNDEF);
   314   | _ => raise UNDEF);
   315 
   315 
   316 fun apply_union _ [] _ = raise UNDEF
   316 fun apply_body _ [] _ = raise UNDEF
   317   | apply_union int (tr :: trs) state =
   317   | apply_body int [tr] state = apply_tr int tr state
   318       apply_union int trs state
   318   | apply_body int (tr :: trs) state =
       
   319       apply_body int trs state
   319         handle Runtime.UNDEF => apply_tr int tr state;
   320         handle Runtime.UNDEF => apply_tr int tr state;
   320 
   321 
   321 fun apply_markers name markers (state as State ((node, pr_ctxt), prev_thy)) =
   322 fun apply_markers name markers (state as State ((node, pr_ctxt), prev_thy)) =
   322   let
   323   let
   323     val state' =
   324     val state' =
   326   in (state', NONE) end;
   327   in (state', NONE) end;
   327 
   328 
   328 in
   329 in
   329 
   330 
   330 fun apply_capture int name markers trans state =
   331 fun apply_capture int name markers trans state =
   331   (apply_union int trans state |> apply_markers name markers)
   332   (apply_body int trans state |> apply_markers name markers)
   332     handle exn => (state, SOME exn);
   333     handle exn => (state, SOME exn);
   333 
   334 
   334 end;
   335 end;
   335 
   336 
   336 
   337