A lexing and parsing toolkit for Rust
✔️ Crab friendly 🦀
It's written in Rust, with zero dependencies, maximum portability.
✔️ Human friendly
Built with a focus on ergonomics, defining a grammar is closely the same to its Backus–Naur form.
✔️ Powerful
Santiago can parse all context-free languages, including ambiguous and recursive grammars.
✔️ Cutting-edge
Santiago uses the Earley algorithm. Its time and space performance is close to the known theoretical minimum.
✔️ Modern
Santiago is inspired and aims to be an alternative to GNU Bison, Yacc and Flex.
Just checkout the examples:
You can run the examples by cloning this project and executing:
sh
/santiago $ cargo run --example $name
In order:
Enforce resolving ambiguities in the input grammar.
Release 1.0.0
.