All Projects → kulibali → kiuatan

kulibali / kiuatan

Licence: MIT license
A parser library for Pony.

Programming Languages

Pony
23 projects
powershell
5483 projects
Makefile
30231 projects

Projects that are alternatives of or similar to kiuatan

pe
Fastest general-purpose parsing library for Python with a familiar API
Stars: ✭ 21 (+40%)
Mutual labels:  parser-generator, parsing-expression-grammar, peg
Pigeon
Command pigeon generates parsers in Go from a PEG grammar.
Stars: ✭ 603 (+3920%)
Mutual labels:  parser-generator, peg
Cpp Peglib
A single file C++ header-only PEG (Parsing Expression Grammars) library
Stars: ✭ 435 (+2800%)
Mutual labels:  parser-generator, peg
autumn
A Java parser combinator library written with an unmatched feature set.
Stars: ✭ 112 (+646.67%)
Mutual labels:  parser-library, parsing-expression-grammar
cppcombinator
parser combinator and AST generator in c++17
Stars: ✭ 20 (+33.33%)
Mutual labels:  parsing-expression-grammar, peg
peg
Import of Ian Piumarta's peg/leg recursive-descent parser generators for C
Stars: ✭ 41 (+173.33%)
Mutual labels:  parser-generator, peg
Lug
Parsing expression grammar (PEG) embedded domain specific language and parsing machine for C++17
Stars: ✭ 44 (+193.33%)
Mutual labels:  parser-generator, peg
parson
Yet another PEG parser combinator library and DSL
Stars: ✭ 52 (+246.67%)
Mutual labels:  parsing-expression-grammar, peg
Npeg
PEGs for Nim, another take
Stars: ✭ 163 (+986.67%)
Mutual labels:  parser-generator, peg
Pegparser
💡 Build your own programming language! A C++17 PEG parser generator supporting parser combination, memoization, left-recursion and context-dependent grammars.
Stars: ✭ 164 (+993.33%)
Mutual labels:  parser-generator, peg
leftry
Leftry - A left-recursion enabled recursive-descent parser combinator library for Lua.
Stars: ✭ 32 (+113.33%)
Mutual labels:  parser-library, parser-generator
arborist
Arborist is a PEG parser that supports left-associative left recursion
Stars: ✭ 17 (+13.33%)
Mutual labels:  parsing-expression-grammar, peg
Tatsu
竜 TatSu generates Python parsers from grammars in a variation of EBNF
Stars: ✭ 198 (+1220%)
Mutual labels:  parser-library, parser-generator
Pegjs
PEG.js: Parser generator for JavaScript
Stars: ✭ 4,176 (+27740%)
Mutual labels:  parser-generator, peg
pyrser
A PEG Parsing Tool
Stars: ✭ 32 (+113.33%)
Mutual labels:  parsing-expression-grammar, peg
Rust Peg
Parsing Expression Grammar (PEG) parser generator for Rust
Stars: ✭ 836 (+5473.33%)
Mutual labels:  parser-generator, peg
ponylang-linal
Linear Algebra library for Pony Language
Stars: ✭ 23 (+53.33%)
Mutual labels:  ponylang, pony-language
Ponyc
🐴 Pony is an open-source, actor-model, capabilities-secure, high performance programming language
Stars: ✭ 4,857 (+32280%)
Mutual labels:  ponylang, pony-language
Ts Pegjs
Plugin for pegjs to generate TypeScript parsers.
Stars: ✭ 76 (+406.67%)
Mutual labels:  parser-generator, peg
Covfefe
A parser for nondeterministic context free languages
Stars: ✭ 49 (+226.67%)
Mutual labels:  parser-library, parser-generator

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 kulibali/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/kulibali/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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].