1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
extern crate peg; peg::parser!{ grammar memo() for str { #[cache] rule r() -> &'input str = s:$(['a'..='z']+) { s } pub rule parse() = r() "+" r() { () } / r() " " r() { () } }} fn main() { assert_eq!(memo::parse("abc zzz"), Ok(())); }