Macro abortable_parser::until [−][src]
macro_rules! until { ($i:expr, $rule:ident!( $( $args:tt )* ) ) => { ... }; ($i:expr, $rule:ident) => { ... }; }
Consumes an input until it reaches a term that the contained rule matches. It does not consume the subrule.
If the term never matches then returns incomplete.
use abortable_parser::iter; use std::convert::From; let iter: iter::SliceIter<u8> = "foo;".into(); let tok = until!(iter, text_token!(";")); if let Result::Complete(i, o) = tok { assert_eq!(i.get_offset(), 3); }