A lexing and parsing toolkit for Rust
Santiago provides you: - A library for defining any [context-free grammar](https://en.wikipedia.org/wiki/Context-free_grammar). - A [Lexical analysis](https://en.wikipedia.org/wiki/Lexical_analysis) module. - And facilities for building interpreters or compilers of the language. With Santiago you have everything that is needed to build your own programming language! ## Features - ✔️ **Fast** 🦀 It's written in [Rust](https://www.rust-lang.org/), with zero dependencies and maximum portability in mind. - ✔️ **Easy to use** Defining a grammar is closely the same to its [Backus–Naur form](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form). Creating a lexer is a matter of mapping some strings. Error messages contain useful information. - ✔️ **Powerful** Santiago can parse all [context-free languages](https://en.wikipedia.org/wiki/Context-free_grammar) without exceptions. - ✔️ **Reliable** High coverage, battle tested. - ✔️ **Compatible** Santiago is inspired and aims to be an alternative to [GNU Bison](https://en.wikipedia.org/wiki/GNU_Bison), [Yacc](https://en.wikipedia.org/wiki/Yacc) and [Flex](