pest::impl_rdp! [] [src]

macro_rules! impl_rdp {
    ( @rules $( $name:ident )* ) => { ... };
    ( @filter [  ] [ $( $rules:tt )* ] ) => { ... };
    ( @filter [ $name:ident = { $( $_ts:tt )* } $( $tail:tt )* ] [ $( $rules:tt )* ] ) => { ... };
    ( @filter [ $name:ident = _{ $( $_ts:tt )* } $( $tail:tt )* ] [ $( $rules:tt )* ] ) => { ... };
    ( @ws ) => { ... };
    ( @ws ws = $( $_ts:tt )* ) => { ... };
    ( @ws $_name:ident = { $( $_ts:tt )* } $( $tail:tt )* ) => { ... };
    ( @ws $_name:ident = _{ $( $_ts:tt )* } $( $tail:tt )* ) => { ... };
    ( grammar!{ $( $ts:tt )* } ) => { ... };
}

A macro useful for implementing the Parser trait as a recursive descent parser.

Examples

impl_rdp! {
    grammar! {
        rule = { [""] }
    }
}

let input = Box::new(StringInput::new("asdasdf"));
let mut parser = Rdp::new(input);

assert!(parser.matches("asd"));
assert!(parser.matches("asdf"));