#[doc(hidden)] #[macro_export]
macro_rules! ඞForLt_munch {
(
[output:
$($acc:tt)*
]
[input:
'_
$($rest:tt)*
]
$mode:tt
) => ($crate::ඞForLt_munch! {
[output:
$($acc)*
'ඞ
]
[input:
$($rest)*
]
$mode
});
(
[output:
$($acc:tt)*
]
[input:
&
$lifetime:lifetime
$($rest:tt)*
]
$mode:tt
) => ($crate::ඞForLt_munch! {
[output:
$($acc)*
&
]
[input:
$lifetime
$($rest)*
]
$mode
});
(
$acc:tt
[input:
&
$($rest:tt)*
]
$mode:tt
) => ($crate::ඞForLt_munch! {
$acc
[input:
&'_
$($rest)*
]
$mode
});
(
[output:
$($acc:tt)*
]
[input:
( $($group:tt)* )
$($rest:tt)*
]
$mode:tt
) => ($crate::ඞForLt_munch! {
[output:
$($acc)*
$crate::ඞForLt_munch! {
[output: ]
[input: $($group)*]
[mode: parenthesized]
}
]
[input:
$($rest)*
]
$mode
});
(
[output:
$($acc:tt)*
]
[input:
[ $($group:tt)* ]
$($rest:tt)*
]
$mode:tt
) => ($crate::ඞForLt_munch! {
[output:
$($acc)*
$crate::ඞForLt_munch! {
[output: ]
[input: $($group)*]
[mode: square_bracketed]
}
]
[input:
$($rest)*
]
$mode
});
(
[output:
$($acc:tt)*
]
[input:
$otherwise:tt
$($rest:tt)*
]
$mode:tt
) => ($crate::ඞForLt_munch! {
[output:
$($acc)*
$otherwise
]
[input:
$($rest)*
]
$mode
});
(
[output: $Output:ty $(,)? ]
[input: /* nothing left! */]
[mode: default]
) => (
$Output
);
(
[output: $($output:tt)*]
[input: /* nothing left! */]
[mode: parenthesized]
) => (
( $($output)* )
);
(
[output: $($output:tt)*]
[input: /* nothing left! */]
[mode: square_bracketed]
) => (
[ $($output)* ]
);
}