macro_rules! preceded {
($i:expr, $submac:ident!( $($args:tt)* ), $submac2:ident!( $($args2:tt)* )) => { ... };
($i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => { ... };
($i:expr, $f:expr, $submac:ident!( $($args:tt)* )) => { ... };
($i:expr, $f:expr, $g:expr) => { ... };
}
preceded!(I -> IResult<I,T>, I -> IResult<I,O>) => I -> IResult<I, O>
preceded(opening, X) returns X