Macro peel_ip::prelude::escaped
[−]
macro_rules! escaped { ( __impl $ i : expr , $ normal : ident ! ( $ ( $ args : tt ) * ) , $ control_char : expr , $ escapable : ident ! ( $ ( $ args2 : tt ) * ) ) => { ... }; ( __impl_1 $ i : expr , $ submac1 : ident ! ( $ ( $ args : tt ) * ) , $ control_char : expr , $ submac2 : ident ! ( $ ( $ args2 : tt ) * ) ) => { ... }; ( __impl_1 $ i : expr , $ submac1 : ident ! ( $ ( $ args : tt ) * ) , $ control_char : expr , $ g : expr ) => { ... }; ( $ i : expr , $ submac : ident ! ( $ ( $ args : tt ) * ) , $ control_char : expr , $ ( $ rest : tt ) + ) => { ... }; ( $ i : expr , $ f : expr , $ control_char : expr , $ ( $ rest : tt ) + ) => { ... }; }
escaped!(&[T] -> IResult<&[T], &[T]>, T, &[T] -> IResult<&[T], &[T]>) => &[T] -> IResult<&[T], &[T]>
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
named!(esc, escaped!(call!(alpha), '\\', one_of!("\"n\\"))); assert_eq!(esc(&b"abcd"[..]), Done(&b""[..], &b"abcd"[..])); assert_eq!(esc(&b"ab\\\"cd"[..]), Done(&b""[..], &b"ab\\\"cd"[..]));