diff -r 7e25716c3744 -r 4b105b97069c ProgTutorial/Base.thy --- a/ProgTutorial/Base.thy Tue Mar 20 09:39:44 2012 +0000 +++ b/ProgTutorial/Base.thy Mon Apr 30 12:33:17 2012 +0100 @@ -85,32 +85,23 @@ *} ML {* -fun propagate_env (context as Context.Proof lthy) = - Context.Proof (Local_Theory.map_contexts (ML_Env.inherit context) lthy) - | propagate_env context = context - -fun propagate_env_prf prf = Proof.map_contexts - (Context.proof_map (ML_Env.inherit (Context.Proof (Proof.context_of prf)))) prf +val _ = + Outer_Syntax.command ("ML", Keyword.tag "TutorialML" Keyword.thy_decl) + "ML text within theory or local theory" + (Parse.ML_source >> (fn (txt, pos) => + Toplevel.generic_theory + (ML_Context.exec (fn () => ML_Context.eval_text true pos txt) #> + Local_Theory.propagate_ml_env #> Context.map_theory (write_file_ml_blk txt)))) *} ML {* val _ = - Outer_Syntax.command ("ML", Keyword.tag "TutorialML" Keyword.thy_decl) "eval ML text within theory" - (Parse.position Parse.text >> - (fn (txt, pos) => - Toplevel.generic_theory - (ML_Context.exec - (fn () => ML_Context.eval_text true pos txt) - #> propagate_env #> Context.map_theory (write_file_ml_blk txt)))) + Outer_Syntax.command ("ML_prf", Keyword.tag "TutorialMLprf" Keyword.prf_decl) "ML text within proof" + (Parse.ML_source >> (fn (txt, pos) => + Toplevel.proof (Proof.map_context (Context.proof_map + (ML_Context.exec (fn () => ML_Context.eval_text true pos txt))) #> Proof.propagate_ml_env))); *} -ML {* -val _ = - Outer_Syntax.command ("ML_prf", Keyword.tag "TutorialMLprf" Keyword.prf_decl) "ML text within proof" - (Parse.ML_source >> (fn (txt, pos) => - Toplevel.proof (Proof.map_context (Context.proof_map - (ML_Context.exec (fn () => ML_Context.eval_text true pos txt))) #> propagate_env_prf))) -*} ML {* val _ =