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