Macros 什么';在宏观模式中,impl的意义是什么?

Macros 什么';在宏观模式中,impl的意义是什么?,macros,rust,Macros,Rust,在下面的示例中,取自nom,字符串\uu impl出现在第一个模式中。就形式语法而言,这个元素是什么?它为什么存在 我的印象是模式中的文本\uuuu impl,以及随后的调用在模式匹配过程中被用作伪字符串,以将内部使用的模式与公共模式分开。但是,“内部”匹配臂也对rustdoc隐藏。\uuu impl-零件是否会生锈 #[macro_export] macro_rules! map( // Internal parser, do not use directly (__impl $i:e

在下面的示例中,取自
nom
,字符串
\uu impl
出现在第一个模式中。就形式语法而言,这个元素是什么?它为什么存在

我的印象是模式中的文本
\uuuu impl
,以及随后的调用在模式匹配过程中被用作伪字符串,以将内部使用的模式与公共模式分开。但是,“内部”匹配臂也对
rustdoc
隐藏。
\uuu impl
-零件是否会生锈

#[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);
  );
);
我的印象是模式中的文本
\uuuu impl
,以及随后的调用在模式匹配过程中被用作伪字符串,以将内部使用的模式与公共模式分开

这是正确的。这是用户不应该知道或使用的内部实现细节。但是,宏必须是公共的,因为它们最终是由用户在使用站点进行扩展的

但是,“内部”匹配臂也对
rustdoc
隐藏

我不知道你的意思,那只手臂:

另见:

\uuu impl
-零件是否会生锈

#[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”这个特殊情况吗?