Macro syn::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:
call!(Punctuated::parse_separated)
- zero or more values with separatorcall!(Punctuated::parse_separated_nonempty)
- one or more valuescall!(Punctuated::parse_terminated)
- zero or more, allows trailing separatorcall!(Punctuated::parse_terminated_nonempty)
- one or more
#[macro_use] extern crate syn; use syn::{Ident, Item}; use syn::token::Brace; use syn::synom::Synom; /// Parses a module containing zero or more Rust items. /// /// Example: `mod m { type Result<T> = ::std::result::Result<T, MyError>; }` struct SimpleMod { mod_token: Token![mod], name: Ident, brace_token: Brace, items: Vec<Item>, } impl Synom for SimpleMod { named!(parse -> Self, do_parse!( mod_token: keyword!(mod) >> name: syn!(Ident) >> body: braces!(many0!(syn!(Item))) >> (SimpleMod { mod_token, name, brace_token: body.0, items: body.1, }) )); }
This macro is available if Syn is built with the "parsing"
feature.