diff -r 28e788ca2c5d -r a7ae3ef886a9 src/Doc/Implementation/ML.thy --- a/src/Doc/Implementation/ML.thy Thu Oct 22 21:16:49 2015 +0200 +++ b/src/Doc/Implementation/ML.thy Thu Oct 22 21:34:28 2015 +0200 @@ -1213,35 +1213,32 @@ section \Strings of symbols \label{sec:symbols}\ -text \A \<^emph>\symbol\ constitutes the smallest textual unit in - Isabelle/ML --- raw ML characters are normally not encountered at - all. Isabelle strings consist of a sequence of symbols, represented - as a packed string or an exploded list of strings. Each symbol is - in itself a small string, which has either one of the following - forms: - - \<^enum> a single ASCII character ``\c\'', for example ``\<^verbatim>\a\'', - - \<^enum> a codepoint according to UTF-8 (non-ASCII byte sequence), - - \<^enum> a regular symbol ``\<^verbatim>\\\\<^verbatim>\<\\ident\\<^verbatim>\>\'', for example ``\<^verbatim>\\\'', - - \<^enum> a control symbol ``\<^verbatim>\\\\<^verbatim>\<^\\ident\\<^verbatim>\>\'', for example ``\<^verbatim>\\<^bold>\'', - - \<^enum> a raw symbol ``\<^verbatim>\\\\<^verbatim>\<^raw:\\text\\<^verbatim>\>\'' where \text\ consists of printable characters - excluding ``\<^verbatim>\.\'' and ``\<^verbatim>\>\'', for example - ``\<^verbatim>\\<^raw:$\sum_{i = 1}^n$>\'', - - \<^enum> a numbered raw control symbol ``\<^verbatim>\\\\<^verbatim>\<^raw\\n\\<^verbatim>\>\, where \n\ consists - of digits, for example ``\<^verbatim>\\<^raw42>\''. - - - The \ident\ syntax for symbol names is \letter - (letter | digit)\<^sup>*\, where \letter = A..Za..z\ and \digit = 0..9\. There are infinitely many regular symbols and - control symbols, but a fixed collection of standard symbols is - treated specifically. For example, ``\<^verbatim>\\\'' is - classified as a letter, which means it may occur within regular - Isabelle identifiers. +text \A \<^emph>\symbol\ constitutes the smallest textual unit in Isabelle/ML --- raw + ML characters are normally not encountered at all. Isabelle strings consist + of a sequence of symbols, represented as a packed string or an exploded list + of strings. Each symbol is in itself a small string, which has either one of + the following forms: + + \<^enum> a single ASCII character ``\c\'', for example ``\<^verbatim>\a\'', + + \<^enum> a codepoint according to UTF-8 (non-ASCII byte sequence), + + \<^enum> a regular symbol ``\<^verbatim>\\\'', for example ``\<^verbatim>\\\'', + + \<^enum> a control symbol ``\<^verbatim>\\<^ident>\'', for example ``\<^verbatim>\\<^bold>\'', + + \<^enum> a raw symbol ``\<^verbatim>\\\\<^verbatim>\<^raw:\\text\\<^verbatim>\>\'' where \text\ consists of + printable characters excluding ``\<^verbatim>\.\'' and ``\<^verbatim>\>\'', for example + ``\<^verbatim>\\<^raw:$\sum_{i = 1}^n$>\'', + + \<^enum> a numbered raw control symbol ``\<^verbatim>\\\\<^verbatim>\<^raw\\n\\<^verbatim>\>\, where \n\ consists + of digits, for example ``\<^verbatim>\\<^raw42>\''. + + The \ident\ syntax for symbol names is \letter (letter | digit)\<^sup>*\, where + \letter = A..Za..z\ and \digit = 0..9\. There are infinitely many regular + symbols and control symbols, but a fixed collection of standard symbols is + treated specifically. For example, ``\<^verbatim>\\\'' is classified as a letter, which + means it may occur within regular Isabelle identifiers. The character set underlying Isabelle symbols is 7-bit ASCII, but 8-bit character sequences are passed-through unchanged. Unicode/UCS data in UTF-8 @@ -1251,11 +1248,11 @@ to the standard collection of Isabelle regular symbols. \<^medskip> - Output of Isabelle symbols depends on the print mode. For example, - the standard {\LaTeX} setup of the Isabelle document preparation system - would present ``\<^verbatim>\\\'' as \\\, and ``\<^verbatim>\\<^bold>\\'' as \\<^bold>\\. On-screen rendering - usually works by mapping a finite subset of Isabelle symbols to suitable - Unicode characters. + Output of Isabelle symbols depends on the print mode. For example, the + standard {\LaTeX} setup of the Isabelle document preparation system would + present ``\<^verbatim>\\\'' as \\\, and ``\<^verbatim>\\<^bold>\\'' as \\<^bold>\\. On-screen rendering usually + works by mapping a finite subset of Isabelle symbols to suitable Unicode + characters. \ text %mlref \