Features
-
✔️ Native 🦀
It's written in pure Rust, zero dependencies, maximum portability.
-
✔️ Powerful
Santiago can parse all context-free languages, including ambiguous and recursive grammars.
-
✔️ Simple
Defining a grammar is closely the same to its Backus–Naur form.
Creating a lexer is a matter of mapping some strings.
-
✔️ Fast
Santiago uses the Earley algorithm. Its time and space performance is that of the theoretical minimum.
-
✔️ Standing on the shoulders of giants
Santiago is inspired and aims to be an alternative to GNU Bison, Yacc and Flex.
Getting started
Just checkout the examples:
You can run the examples by cloning this project and executing:
Short term goals
In order:
-
Enforce resolving ambiguities in the input grammar.
-
Release
1.0.0.