pub fn list<'a, I, O, U>(
parser: Parser<'a, I, O>,
separator: Parser<'a, I, U>
) -> Parser<'a, I, Vec<O>>where
O: 'a,
U: 'a,
Expand description
Parse separated list.
Examples found in repository?
examples/whitespace.rs (line 75)
74 75 76
fn mylang<'a>() -> Parser<'a, u8, Vec<Container>> {
whitespace() * list(call(container), whitespace())
}
More examples
Hide additional examples
examples/json_char.rs (line 61)
60 61 62 63 64 65 66 67 68 69 70
fn array<'a>() -> Parser<'a, char, Vec<JsonValue>> {
let elems = list(call(value), sym(',') * space());
sym('[') * space() * elems - sym(']')
}
fn object<'a>() -> Parser<'a, char, HashMap<String, JsonValue>> {
let member = string() - space() - sym(':') - space() + call(value);
let members = list(member, sym(',') * space());
let obj = sym('{') * space() * members - sym('}');
obj.map(|members| members.into_iter().collect::<HashMap<_, _>>())
}
examples/json.rs (line 61)
60 61 62 63 64 65 66 67 68 69 70
fn array<'a>() -> Parser<'a, u8, Vec<JsonValue>> {
let elems = list(call(value), sym(b',') * space());
sym(b'[') * space() * elems - sym(b']')
}
fn object<'a>() -> Parser<'a, u8, HashMap<String, JsonValue>> {
let member = string() - space() - sym(b':') - space() + call(value);
let members = list(member, sym(b',') * space());
let obj = sym(b'{') * space() * members - sym(b'}');
obj.map(|members| members.into_iter().collect::<HashMap<_, _>>())
}
examples/json_file.rs (line 63)
62 63 64 65 66 67 68 69 70 71 72
fn array<'a>() -> Parser<'a, u8, Vec<JsonValue>> {
let elems = list(call(value), sym(b',') * space());
sym(b'[') * space() * elems - sym(b']')
}
fn object<'a>() -> Parser<'a, u8, HashMap<String, JsonValue>> {
let member = string() - space() - sym(b':') - space() + call(value);
let members = list(member, sym(b',') * space());
let obj = sym(b'{') * space() * members - sym(b'}');
obj.map(|members| members.into_iter().collect::<HashMap<_, _>>())
}