marpa 0.2.0

Safe bindings to the libmarpa parsing engine
Documentation
macro_rules! grammar {
    ( $( $t:tt )* ) => ({
        // grammar init stuff
        grammar_rules!(grammar, $($t)*);
        // return grammar
    });
}

macro_rules! grammar_rules {
    ($g:expr, token $id:ident => $e:expr ; $( $rest:tt )* ) => (
        {
            let $id = 1;
            // do token creating things
        grammar_rules!($g, $($rest)*);
        }
            );
    ($g:expr, rule $id:ident => EMPTY ; $( $rest:tt )* ) => (
        {
            // do rule creation things
        grammar_rules!($g , $($rest)*);
        }
        );
    ($g:expr, rule $id:ident => $( $rhs:ident ),* ; $( $rest:tt )* ) => (
        {
            let $id = vec![$( $rhs ),*];
            // do rule creation things
        grammar_rules!($g , $($rest)*);
        }
        );
    ($g:expr,) => ();
}


fn main() {
    grammar!(token asdf => r"herp";
             rule derp => asdf, asdf;
             rule derp => EMPTY;
             );
    println!("Hello, world!");

}