# Notation ## Grammar The following notations are used by the *Lexer* and *Syntax* grammar snippets: | Notation | Examples | Meaning | |-------------------|-------------------------------|-------------------------------------------| | CAPITAL | KW_IF, INTEGER_LITERAL | A token produced by the lexer | | _ItalicCamelCase_ | _LetStatement_, _Item_ | A syntactical production | | `string` | `x`, `while`, `*` | The exact character(s) | | \\x | \\n, \\r, \\t, \\0 | The character represented by this escape | | x? | `pub`? | An optional item | | x\* | _OuterAttribute_\* | 0 or more of x | | x+ | _MacroMatch_+ | 1 or more of x | | xa..b | HEX_DIGIT1..6 | a to b repetitions of x | | \| | `u8` \| `u16`, Block \| Item | Either one or another | | \[ ] | \[`b` `B`] | Any of the characters listed | | \[ - ] | \[`a`-`z`] | Any of the characters in the range | | ~\[ ] | ~\[`b` `B`] | Any characters, except those listed | | ~`string` | ~`\n`, ~`*/` | Any characters, except this sequence | | ( ) | (`,` _Parameter_)? | Groups items | ## String table productions Some rules in the grammar — notably [unary operators], [binary operators], and [keywords] — are given in a simplified form: as a listing of printable strings. These cases form a subset of the rules regarding the [token][tokens] rule, and are assumed to be the result of a lexical-analysis phase feeding the parser, driven by a DFA, operating over the disjunction of all such string table entries. When such a string in `monospace` font occurs inside the grammar, it is an implicit reference to a single member of such a string table production. See [tokens] for more information. [binary operators]: expressions/operator-expr.md#arithmetic-and-logical-binary-operators [keywords]: keywords.md [tokens]: tokens.md [unary operators]: expressions/operator-expr.md#borrow-operators