]> git.proxmox.com Git - rustc.git/blob - src/doc/reference/src/notation.md
New upstream version 1.23.0+dfsg1
[rustc.git] / src / doc / reference / src / notation.md
1 # Notation
2
3 ## Unicode productions
4
5 A few productions in Rust's grammar permit Unicode code points outside the
6 ASCII range. We define these productions in terms of character properties
7 specified in the Unicode standard, rather than in terms of ASCII-range code
8 points. The grammar has a [Special Unicode Productions] section that lists these
9 productions.
10
11 ## String table productions
12
13 Some rules in the grammar — notably [unary operators], [binary operators],
14 and [keywords] — are given in a simplified form: as a listing of a table
15 of unquoted, printable whitespace-separated strings. These cases form a subset
16 of the rules regarding the [token][tokens] rule, and are assumed to be the
17 result of a lexical-analysis phase feeding the parser, driven by a
18 <abbr title="Deterministic Finite Automaton">DFA</abbr>, operating over the
19 disjunction of all such string table entries.
20
21 When such a string enclosed in double-quotes (`"`) occurs inside the grammar,
22 it is an implicit reference to a single member of such a string table
23 production. See [tokens] for more information.
24
25 [Special Unicode Productions]: ../grammar.html#special-unicode-productions
26 [binary operators]: expressions/operator-expr.html#arithmetic-and-logical-binary-operators
27 [keywords]: keywords.html
28 [tokens]: tokens.html
29 [unary operators]: expressions/operator-expr.html#borrow-operators