Macro muncher
Source macro_rules! muncher {
(@internal $input:ident $from:ident let $pat:pat = $expr:expr, $($tt:tt)+) => { ... };
(@internal $input:ident $from:ident ($expr:expr)) => { ... };
(@internal $input:ident $from:ident $ident:tt <- @match ($expr:expr) {
$($($pat:pat)|+ => $parser:expr,)+
}, $($tt:tt)+) => { ... };
(@internal $input:ident $from:ident $ident:tt <- $parser:expr, $($tt:tt)+) => { ... };
(@internal $input:ident $from:ident $parser:expr, $($tt:tt)+) => { ... };
($($tt:tt)+) => { ... };
}