在以下示例中,取自于
我认为模式中的字面量
nom
,第一个模式中出现了字符串__impl
。从形式语法角度来看,这个元素是什么,为什么要在那里呢?我认为模式中的字面量
__impl
以及随后的调用在模式匹配期间被用作虚拟字符串,将内部使用的模式与公共模式分开。但是,“internal”匹配分支对于rustdoc
也是隐藏的。那么,__impl
部分对Rust还有更重要的意义吗?#[macro_export]
macro_rules! map(
// Internal parser, do not use directly
(__impl $i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => (
...
);
($i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => (
map!(__impl $i, $submac!($($args)*), $g);
);
($i:expr, $f:expr, $g:expr) => (
map!(__impl $i, call!($f), $g);
);
);
rustdoc
是否知道 "__impl" 并对其进行特殊处理呢? - user2722968