记法
语法
以下记法用于词法分析器和语法格式文法片段:
| 记法 | 示例 | 含义 | 译者注 |
|---|---|---|---|
| CAPITAL | KW_IF, INTEGER_LITERAL | 词法分析器生成的词法单元 | 大写 |
| ItalicCamelCase | LetStatement, Item | 一个语法产生式 | 斜体、驼峰方式大小写(单词首字母大写) |
string | x, while, * | 确切的字符(或字符串) | |
| x? | pub? | 一个可选的项 | |
| x* | OuterAttribute* | 0个或多个x | |
| x+ | MacroMatch+ | 1个或多个x | |
| xa..b | HEX_DIGIT1..6 | a到b次重复x | |
| Rule1 Rule2 | fn Name Parameters | 规则的顺序序列 | |
| | | u8 | u16, Block | Item | 二者之一 | |
| [ ] | [b B] | 列出的任意字符 | |
| [ - ] | [a-z] | 范围内的任意字符 | |
| ~[ ] | ~[b B] | 任意字符,除了列出的 | |
~string | ~\n, ~*/ | 任意字符,除了此序列 | |
| ( ) | (, Parameter)? | 分组项 | |
| U+xxxx | U+0060 | 一个Unicode字符 | |
| <text> | <any ASCII char except CR> | 一个匹配内容的英文描述 | |
| Rule suffix | IDENTIFIER_OR_KEYWORD except crate | 对前一个规则的修改 | |
| // Comment. | // Single line comment. | 延伸到行尾的注释。 |
序列的优先级高于|选项。
字符串表产生式
语法中的某些规则 —— 特别是一元运算符、二元运算符和关键字 —— 以简化形式给出:作为可打印字符串的列表。这些情况构成了关于词法单元规则的一个子集,并被认为是词法分析阶段的结果,该阶段由一个DFA驱动,作用于所有此类字符串表条目的析取,从而为解析器提供输入。
当语法中出现等宽字体的字符串时,它隐式引用了此类字符串表产生式的一个成员。有关更多信息,请参阅词法单元。
语法可视化
在每个语法块下方都有一个按钮,用于切换语法格式图的显示。一个方形元素是一个非终结规则,一个圆角矩形是一个终结符。