PEG Parser Library for Pony

I have recently released a PEG parser library for the Pony programming language: Kiuatan (“horse” or “pony” in Chinook Jargon). This is mostly a learning exercise for me. It doesn’t make use of any of Pony’s actor model functionality.

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.
    • Parsers do not backtrack from successful choices.
    • Sequences are greedy, i.e. the parser will not backtrack from the end of a sequence.
  • 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.

Legi Plu

En mia lasta posto mi rakontis pri mia eklegado de La Mastro de l’Ringoj. Mi nun atingis la sekcion en kiu Frodo kaj Sam marŝas kune kun Golumo ĉirkaŭ la landlimoj de Mordoro. Tiun sekcion mi neniam ĝuis tiom, kiom mi ĝuis la ceterajn partojn. Ĝi sentigas min malkomforte. Mi ne diras, ke la resto de la verko estas afabla kaj komforta! Sed la malrapida progreso de Frodo kaj Sam ŝajnas solece, misaŭgure. Precipe post la unua legado, ĉar oni jam konas la venontajn ĝenojn. Tamen mi celas tute legi, ĉar mi legas ĝin tiom plibonigi mian lerton, kiom min amuzi.

Esperanta Legado

Mi aĉetis antaŭ kelkaj jaroj La Mastro de l’ Ringoj de J. R. R. Tolkien, kaj komencis legi ĝin. Sed estis malrapide, kaj ĝeniĝe, ĉar mi kutimas legi angle tre facile kaj flue. Sed dum la lastaj du aŭ tri semajnoj ŝajnas ke mi atingis novan lertnivelon, ĉar mi eblas legi multe pli rapide. Antaŭ nun mi apenaŭ sekvis la hobitojn for de la Provinco, sed ĉimomente oni restas en Rivendelo. Min amuzas esti pliboniganta mian lerton je iu temo. Prizorgi du infanoj malviglecigas min.

IronMeta 4.3.0 released

I have released a new version (4.3.0) of IronMeta. Now you can pass arbitrary patterns as arguments to rules. Variables will be captured.

The IronMeta parser generator provides a programming language and application for generating pattern matchers on arbitrary streams of objects. It is an implementation of Alessandro Warth’s OMeta system in C#.