Kiuatan ("horse" or "pony" in Chinook Jargon) is a library for building and running parsers in the Pony programming language.
- Kiuatan uses Parsing Expression Grammar semantics, which means:
- Choices are ordered, i.e. the parser will always try to parse alternatives in the order they are declared.
- Sequences are greedy, i.e. the parser will not backtrack from the end of a sequence.
- You can use positive and negative lookahead that does not advance the match position to constrain greedy sequences.
- Parsers do not backtrack from successful choices.
- Kiuatan parsers are "packrat" parsers; they memoize intermediate results, resulting in linear-time parsing.
- Parsers use Mederios et al's algorithm to handle unlimited left-recursion.
Further documentation is here.
The easiest way to incorporate Kiuatan into your Pony project is to use Pony Corral. Once you have it installed, cd
to your project's directory and type:
corral add github chalcolith/kiuatan
This will add the library to your project. You can then build your project with something like:
corral fetch
corral run -- ponyc .
You can clone and build Kiuatan directly from GitHub:
git clone https://github.com/chalcolith/kiuatan.git
cd kiuatan
make test
To use Kiuatan in a project you will need to add kiuatan/kiuatan
to your PONYPATH
environment variable.
See the calc example for a sample of how to define and use a grammar for Kiuatan.