santiago 0.4.0

A lexing and parsing toolkit for Rust
Documentation

Features

  • ✔️ 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.

Getting started

Just checkout the examples:

You can run the examples by cloning this project and executing:

/santiago $ cargo run --example $name

Short term goals

In order:

  1. Enforce resolving ambiguities in the input grammar.

  2. Release 1.0.0.