- 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.
The easiest way to incorporate Kiuatan into your Pony project is to use Pony-Stable. Once you have it installed,
cd to your project's directory and type:
stable add github kulibali/kiuatan --tag=0.2.0
This will clone the
kiuatan repository and add it under the
.deps directory in your project. To build your project, Pony-Stable will take care of setting the correct
PONYPATH environment variable for you, e.g.:
stable env ponyc .
You can clone and build Kiuatan directly from GitHub:
git clone https://github.com/kulibali/kiuatan.git cd kiuatan make && 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.