Macro synom::many0 [] [src]

macro_rules! many0 {
    ($i:expr, $submac:ident!( $($args:tt)* )) => { ... };
    ($i:expr, $f:expr) => { ... };
}

Parse zero or more values using the given parser.

  • Syntax: many0!(THING)
  • Output: Vec<THING>

You may also be looking for:

  • separated_list! - zero or more values with separator
  • separated_nonempty_list! - one or more values
  • terminated_list! - zero or more, allows trailing separator
extern crate syn;
#[macro_use] extern crate synom;

use syn::Item;
use syn::parse::item;

named!(items -> Vec<Item>, many0!(item));

fn main() {
    let input = "
        fn a() {}
        fn b() {}
    ";

    let parsed = items(input).expect("items");

    assert_eq!(parsed.len(), 2);
    println!("{:?}", parsed);
}