标记法

notation.md
commit b0e0ad6490d6517c19546b1023948986578fc378

语法

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

符号示例释义
CAPITALKW_IF, INTEGER_LITERALA token produced by the lexer
ItalicCamelCaseLetStatement, ItemA syntactical production
stringx, while, *The exact character(s)
\x\n, \r, \t, \0The 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..bHEX_DIGIT1..6a to b repetitions of x
|u8 | u16, Block | ItemEither 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

字符串表组合

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

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