Skip to content

chalcolith/kiuatan

Repository files navigation

Kiuatan

CI

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.

Obtaining Kiuatan

Corral

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 .

Git

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.

Documentation

Documentation is here.

Example

See the calc example for a sample of how to define and use a grammar for Kiuatan.