CookBook/Parsing.thy
changeset 133 3e94ccc0f31e
parent 132 2d9198bcb850
child 149 253ea99c1441
--- a/CookBook/Parsing.thy	Mon Feb 23 17:08:15 2009 +0000
+++ b/CookBook/Parsing.thy	Tue Feb 24 01:30:15 2009 +0000
@@ -204,11 +204,11 @@
 *}
 
 ML{*fun p_followed_by_q p q r =
-  let 
-     val err_msg = (fn _ => p ^ " is not followed by " ^ q)
-  in
-    ($$ p -- (!! err_msg ($$ q))) || ($$ r -- $$ r)
-  end *}
+let 
+  val err_msg = (fn _ => p ^ " is not followed by " ^ q)
+in
+  ($$ p -- (!! err_msg ($$ q))) || ($$ r -- $$ r)
+end *}
 
 
 text {*
@@ -348,7 +348,7 @@
 
 text {*
   Most of the time, however, Isabelle developers have to deal with parsing
-  tokens, not strings.  These token parsers will have the type
+  tokens, not strings.  These token parsers will have the type:
 *}
   
 ML{*type 'a parser = OuterLex.token list -> 'a * OuterLex.token list*}
@@ -727,7 +727,7 @@
   The function @{ML opt_thm_name in SpecParse} is the ``optional'' variant of
   @{ML thm_name in SpecParse}. Theorem names can contain attributes. The name 
   has to end with @{text [quotes] ":"}---see the argument of 
-  @{ML SpecParse.opt_thm_name} in Line 9.
+  the function @{ML SpecParse.opt_thm_name} in Line 9.
 
   \begin{readmore}
   Attributes and arguments are implemented in the files @{ML_file "Pure/Isar/attrib.ML"}