santiago 0.15.0

A lexing and parsing toolkit for Rust
Documentation

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 read the docs, we have plenty of examples over there, plus detailed explanation of each component.