Function combine::tokens [] [src]

pub fn tokens<C, T, I>(cmp: C,
                       expected: Info<I::Item, I::Range>,
                       tokens: T)
                       -> Tokens<C, T, I> where C: FnMut(T::Item, I::Item) -> bool, T: Clone + IntoIterator, I: Stream

Parses tokens.

use std::ascii::AsciiExt;
let result = tokens(|l, r| l.eq_ignore_ascii_case(&r), "abc".into(), "abc".chars())
    .parse("AbC")
    .map(|x| x.0.as_str());
assert_eq!(result, Ok("abc"));
let result = tokens(|&l, r| (if l < r { r - l } else { l - r }) <= 2, Info::Range(&b"025"[..]), &b"025"[..])
    .parse(&b"123"[..])
    .map(|x| x.0);
assert_eq!(result, Ok(&b"025"[..]));