pub enum Delimiter {
Parenthesis,
Brace,
Bracket,
None,
}
展开描述
描述了 token tree 序列是如何分隔的。
变体§
圆括号
( ... )
花括号
{ ... }
方括号
[ ... ]
None
∅ ... ∅
一种不可见的分隔符,例如,可能出现在来自“宏变量” $var
的 token 周围。在 $var * 3
这种情况下,当 $var
是 1 + 2
时,保留运算符优先级非常重要。不可见的分隔符可能无法在 token 流通过字符串的往返过程中幸存下来。
注意:rustc 目前可以忽略 proc_macro 输出中由 None
分隔的 token 分组。只有由 macro_rules 宏在 proc_macro 宏的输入中创建的 None
分隔组才会被保留,并且仅在非常特定的情况下。因此,任何由 proc_macro (重新)创建的 None
分隔组将不会保留如上所述的运算符优先级。在这种情况下,应使用其他 Delimiter
变体。这是一个 rustc 错误。有关详细信息,请参阅 rust-lang/rust#67062。