diff -r 2d9198bcb850 -r 3e94ccc0f31e CookBook/Parsing.thy --- 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"}