Toby Goodwin | 6 Aug 21:08 2015

pacc-0.2 released

Can I join the "new version of <peg parser generator>" party? :-)

A few days ago I released pacc-0.2 which is by far the best version yet,
with new features and several significant bug fixes since the previous
release, as well as improved documentation.

Pacc is a parser generator. It reads a PEG grammar written in a carefully
designed dialect based on Ford's pappy. It writes a packrat parser in C. 

One unique (I believe) feature of pacc is that it supports interactive
use. There is a flag which causes pacc to write two parsers: the usual
one which evaluates complete valid sentences of the target language, and
a second parser which recognises (but does not evaluate) prefixes of
sentences. It is easy to combine these two parsers with a wrapper
program that can read a line from the user, and if necessary prompt for
further input.

Here's a sample session with the trivial pacc-built calculator described
by this grammar[1]. Each complete input is terminated with "=".  The
initial prompt is "$ ", and the continuation prompt is "> ".

  $ 5 + 4 =
  $ 5 +
  > 4 =
  $ 5  + +
  1:5: expected Sum

(Continue reading)

Hui Zhou | 3 Aug 23:00 2015

Imperative Parser

Hi PEG list,

Recently I tried writing some parsers using a refactoring tool (a 
meta-layer) of my own. Without a better name, I refer to the result -- 
imperative parser:

I am not really been following up with academic computer science, so only 
afterwards (today) I learned about PEG. My imperative parser shares 
with PEG in that the order of parsing (rules) matters, no ambiguity 
(as a limit of method), and linear complexity. I refer to it 
imperative parser to contrast against traditional parser which starts 
with CFG, therefore fundamentally declarative.

With the help of MyDef (a meta-layer of my own invention), I was able 
to have the code well organized to achieve semantic separation and 
extensibility (IMHO).

The basic algorithm was certainly not new. It is essentially operator 
precedence based shift-reduce parsing for expression and top-down 
context dependent parsing for statements (I am not sure about the 
latter, but it is definitely top-down semantically). However, this 
mixed approach seems novel from my limited search.

Anyway, as I am not really been following academic, I am not exactly 
sure where it stands or whether this is anything new at all. Therefore 
this post to PEG list, seeking feedbacks.

Thanks for attention,
(Continue reading)

Juancarlo Añez | 2 Aug 14:32 2015

New version of Grako (PEG in Python)

There have been several releases of Grako since I last reported here.

This is the latest:

 FileTypePy VersionUploaded onSize
grako-3.6.3.tar.gz (md5) Source 2015-08-01 105KB
  • Downloads (All Versions):
  • 296 downloads in the last day
  • 1233 downloads in the last week
  • 3724 downloads in the last month

    Juancarlo Añez
    PEG mailing list
    PEG <at>
    Roman Redz | 1 Aug 18:15 2015

    New version of "Mouse"

    Just released version 1.7 of PEG parser generator "Mouse": .
    The package contains PEGs for Java 1.8 and C.
    All comments welcome.
    PEG mailing list
    PEG <at>
    Daniel Frey | 1 Aug 16:23 2015

    PEGTL v1.1.0 released

    A new version of the C++11 header-only Parsing Expression Grammar Template Library (PEGTL) has been
    released. You can find the PEGTL at
    Any feedback welcome.
    PEG mailing list
    PEG <at>
    Roman Redz | 16 Jul 15:55 2015

    Two papers

    Just to inform you that my paper "More about converting BNF to PEG" appeared in Fundamenta Informaticae 133, 2-3 (2014), pp. 257-270.
    Another paper, "Cut points in PEG" is due to appear later this year.
    Both are available from .
    PEG mailing list
    PEG <at>
    Henri Tuhola | 29 Apr 00:04 2015

    Is this correct implementation of GLL, or something entirely else?

    Before writing this, I studied various papers about GLL, such as GLL Parsing and "Modelling GLL Parser Implementations". Also read the paper that described parser combinators of this kind and took a peek into djspiewak/gll-combinators that was written in scala.

    I found the project written in scala very hard to read, and the papers weren't any much better. But I understood something about the description.

    I wrote a simple recognizer that appears to work. It prints out state transitions similar to what LR parser might go through with:

    For someone who have actually understood the papers better, is my implementation even near of what GLL is? What is it if it's not?
    PEG mailing list
    PEG <at>
    Matthew Goode | 28 Oct 22:47 2014

    New version of AustenX (1.1)

    A new version of AustenX is now available at This is a Java based PEG generator, 
    that supports "advanced" handling of left-recursion (which I still have 
    not explained how it works), and optional/selective memorisation,  as 
    well as useful extensions to PEGs. It works with a tokenisation step.
    New for version 1.1 are extensions that allow for indentation sensitive 
    parsing (eg, for languages like Python, etc...), as well as some other 
    useful features.
    Roman Redz | 27 Oct 17:43 2014

    PEG for Java 1.8

    Just to inform you that I have posted a preliminary version of PEG for Java 1.8  (Java 8?)
    at .
    Best regards - Roman
    PEG mailing list
    PEG <at>
    Abdelkader Belloundja | 23 Sep 14:10 2014

    integer encoding // computational model

    Hi everybody,

    Maybe some of you, if not all, have heard of things like Church Numerals that use lambda calculus to model numbers and operators, or Peano Numbers that use axioms. This is more or less related to computational models.

    I'm concerned about finding a way to do the same with PEG / Backtracking. I, however, don't have any clue for where to start.

    I guess the grammar should play the role of the axioms and therefore the input should be the calculus to be computed / verified, but I can't figure out how it should actually work or even look.

    Anyway, I would be glad to have any piece of data on the matter. Feel free to send me anything you think may help.

    Thanks !

    PEG mailing list
    PEG <at>
    Vitaly S. Lugovskiy | 6 Sep 14:27 2014

    MBase 1.0 released under QPL

    MBase is a simple metaprogramming framework for .net platform, featuring, among other compiler building blocks, an extensible Packrat+Pratt parser frontend with a transparent left recursion support.

    The PEG-related code is in src/l/lib/parsing/ and src/l/lib/pfront/

    See (a somewhat outdated) demo here: 

    PEG mailing list
    PEG <at>