标记法

notation.md
commit b0e0ad6490d6517c19546b1023948986578fc378

语法

下表符号被用于 LexerSyntax 的语法片段:

符号示例释义
CAPITALKW_IF, INTEGER_LITERAL词法相关记号(符号)待修正
ItalicCamelCaseLetStatement, Item语法相关定义 待修正
stringx, while, *字符(串)
\x\n, \r, \t, \0转义字符
x?pub?可选项
x*OuterAttribute*x 零次或多次重复
x+MacroMatch+x 一次或多次重复
xa..bHEX_DIGIT1..6x 在 a -> b 范围内重复
|u8 | u16, Block | Item
[ ][b B]列举的任意字符
[ - ][a-z]a -> z 范围内的任意字符
~[ ]~[b B]除列举范围外的任意字符
~string~\n, ~*/除此字符序列外的任意字符
( )(, Parameter)?分组项 待修正

字符串表组合

语法中的一些规则—尤其是单目运算符双目运算符关键字—以一种简单的形式表现:可打印的字符串表。这些规则是记号相关规则的子集,并且被假定为词法分析阶段的结果。该阶段由一个 DFA(Deterministic Finite Automaton,确定有限状态自动机)驱动,通过分离所有这些字符串表入口执行。

当语法中出现如 monospace 这样的字符串时(译者注:半角双引号 " 中的字符串),它是对字符串表组合中的单个成员的隐式引用。查阅记号以获取更多信息。