В следующем примере, взятом из nom
, строка __impl
появляется в первом шаблоне.Что это за элемент с точки зрения формального синтаксиса и почему он существует?
У меня сложилось впечатление, что литерал __impl
в шаблоне и последующих вызовах используется в качестве фиктивной строки во время шаблона.соответствие, чтобы отделить внутренние используемые шаблоны от общедоступных.Однако «внутренняя» спичечная рука также скрыта от 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);
);
);