ProgTutorial/Parsing.thy
changeset 218 7ff7325e3b4e
parent 211 d5accbc67e1b
child 219 98d43270024f
child 226 98f53ab3722e
equal deleted inserted replaced
217:75154f4d4e2f 218:7ff7325e3b4e
   916   finally does nothing. For this you can write:
   916   finally does nothing. For this you can write:
   917 *}
   917 *}
   918 
   918 
   919 ML{*let
   919 ML{*let
   920   fun trace_top_lvl str = 
   920   fun trace_top_lvl str = 
   921      Toplevel.theory (fn thy => (tracing str; thy))
   921      LocalTheory.theory (fn lthy => (tracing str; lthy))
   922 
   922 
   923   val trace_prop = OuterParse.prop >> trace_top_lvl
   923   val trace_prop = OuterParse.prop >> trace_top_lvl
   924 
   924 
   925   val kind = OuterKeyword.thy_decl
   925   val kind = OuterKeyword.thy_decl
   926 in
   926 in
   927   OuterSyntax.command "foobar" "traces a proposition" kind trace_prop
   927   OuterSyntax.local_theory "foobar" "traces a proposition" kind trace_prop
   928 end *}
   928 end *}
       
   929 
   929 
   930 
   930 text {*
   931 text {*
   931   Now you can type
   932   Now you can type
   932 
   933 
   933   \begin{isabelle}
   934   \begin{isabelle}