A Grammar-First Approach to Parser Combinators in Rust