diff -r f3794c231898 -r b5914f3c643c CookBook/Readme.thy --- a/CookBook/Readme.thy Tue Dec 16 17:28:05 2008 +0000 +++ b/CookBook/Readme.thy Wed Dec 17 05:08:33 2008 +0000 @@ -13,6 +13,9 @@ @{text "isabelle make"} \end{center} + You very likely need a recent snapshot of Isabelle in order to compile + the cookbook. + \item You can include references to other Isabelle manuals using the reference names from those manuals. To do this the following four \LaTeX{} commands are defined: @@ -47,9 +50,9 @@ \begin{center}\small \begin{tabular}{lll} - @{text "@{ML \"1 + 3\"}"} & & @{ML "1 + 3"}\\ - @{text "@{ML \"a + b\" for a b}"} & produce & @{ML "a + b" for a b}\\ - @{text "@{ML Ident in OuterLex}"} & & @{ML Ident in OuterLex}\\ + @{text "@{ML \"1 + 3\"}"} & & @{ML "1 + 3"}\\ + @{text "@{ML \"a + b\" for a b}"} & \;\;produce\;\; & @{ML "a + b" for a b}\\ + @{text "@{ML Ident in OuterLex}"} & & @{ML Ident in OuterLex}\\ \end{tabular} \end{center} @@ -57,7 +60,7 @@ display ML-expressions and their response. The first expression is checked like in the antiquotation @{text "@{ML \"expr\"}"}; the second is a pattern that specifies the result the first expression produces. This pattern can - contain @{text "\"} for parts that you like to omit. The response of the + contain @{text [quotes] "\"} for parts that you like to omit. The response of the first expression will be checked against this pattern. Examples are: \begin{center}\small @@ -88,14 +91,25 @@ \begin{center}\small \begin{tabular}{ll} - @{text "@{ML_response"} & @{text "\"cterm_of @{theory} @{term \\\"a + b = c\\\"}\"}"}\\ - & @{text "\"a + b = c\"}"}\smallskip\\ - @{text "@{ML_response"} & @{text "\"($$ \\\"x\\\") (explode \\\"world\\\")\""}\\ - & @{text "\"Exception FAIL raised\"}"} + @{text "@{ML_response_fake"} & @{text "\"cterm_of @{theory} @{term \\\"a + b = c\\\"}\"}"}\\ + & @{text "\"a + b = c\"}"}\smallskip\\ + @{text "@{ML_response_fake"} & @{text "\"($$ \\\"x\\\") (explode \\\"world\\\")\""}\\ + & @{text "\"Exception FAIL raised\"}"} \end{tabular} \end{center} + which produce respectively + + \begin{center}\small + \begin{tabular}{p{7.2cm}} + @{ML_response_fake "cterm_of @{theory} @{term \"a + b = c\"}" "a + b = c"}\smallskip\\ + @{ML_response_fake "($$ \"x\") (explode \"world\")" "Exception FAIL raised"} + \end{tabular} + \end{center} + This output mimics to some extend what the user sees when running the + code. + \item[$\bullet$] @{text "@{ML_response_fake_both \"expr\" \"pat\"}"} can be used to show erroneous code. Neither the code nor the response will be checked. An example is: @@ -108,7 +122,10 @@ \end{center} \item[$\bullet$] @{text "@{ML_file \"name\"}"} should be used when - referring to a file. It checks whether the file exists. + referring to a file. It checks whether the file exists. An example + is + + @{text [display] "@{ML_file \"Pure/General/basics.ML\"}"} \end{itemize} The listed antiquotations honour options including @{text "[display]"} and @@ -118,7 +135,7 @@ @{text "@{ML [quotes] \"\\\"foo\\\" ^ \\\"bar\\\"\"}"} \;\;produces\;\; @{text [quotes] "foobar"} \end{center} - while + whereas \begin{center}\small @{text "@{ML \"\\\"foo\\\" ^ \\\"bar\\\"\"}"} \;\;produces only\;\; @{text "foobar"}