macro_rules! escaped { ($i:expr, $submac1:ident!( $($args:tt)* ), $control_char: expr, $submac2:ident!( $($args2:tt)*) ) => { ... }; ($i:expr, $normal:expr, $control_char: expr, $submac2:ident!( $($args2:tt)*) ) => { ... }; ($i:expr, $submac1:ident!( $($args:tt)* ), $control_char: expr, $escapable:expr ) => { ... }; ($i:expr, $normal:expr, $control_char: expr, $escapable:expr) => { ... }; }
Expand description
escaped!(T -> IResult<T, T>, U, T -> IResult<T, T>) => T -> IResult<T, T> where T: InputIter, U: AsChar
matches a byte string with escaped characters.
The first argument matches the normal characters (it must not accept the control character),
the second argument is the control character (like \
in most languages),
the third argument matches the escaped characters
Example
named!(esc, escaped!(call!(digit1), '\\', one_of!("\"n\\")));
assert_eq!(esc(&b"123;"[..]), Ok((&b";"[..], &b"123"[..])));
assert_eq!(esc(&b"12\\\"34;"[..]), Ok((&b";"[..], &b"12\\\"34"[..])));