macro_rules! run_parser {
() => { ... };
($a:expr) => { ... };
($a:ident >> $x:expr) => { ... };
($a:ident >> $x:expr, |$i:ident| $b:expr) => { ... };
($a:ident >> $x:expr, |$i:ident| $b:expr, $(|$j:ident|$c:expr),*) => { ... };
}