Macro nom::sep

source ·
macro_rules! sep {
    ($i:expr,  $separator:path, tuple ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, pair ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, delimited ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, separated_pair ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, preceded ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, terminated ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, do_parse ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, permutation ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, alt ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, switch ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, separated_list ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, many0 ! ($($rest:tt)*) ) => { ... };
    ($i:expr,  $separator:path, many1 ! ($($rest:tt)*) ) => { ... };
    ($i:expr, $separator:path, return_error!( $($args:tt)* )) => { ... };
    ($i:expr, $separator:path, $submac:ident!( $($args:tt)* )) => { ... };
    ($i:expr, $separator:path, $f:expr) => { ... };
}
Expand description

sep is the parser rewriting macro for whitespace separated formats

it takes as argument a space eating function and a parser tree, and will intersperse the space parser everywhere

#[macro_export(local_inner_macros)]
macro_rules! ws (
  ($i:expr, $($args:tt)*) => (
    {
      use sp;
      sep!($i, sp, $($args)*)
    }
  )
);