This post is to introduce another BNF, namely MarpaX::ESLIF - as the name suggests, it is largely inspired by Marpa::R2's BNF, and aim to extend the later.

The intent was to provide the following features:





native regular expression



This is done using a built-in version of PCRE2. support of syntactic exception



externalized data reader in a streaming compatible architecture



unlimited number of sub-grammars



Although it looks like Marpa's BNF, it is not fully backward compatible with it! I invite readers to read the Introduction, that is covering the architecture and the main features, as well as its BNF.

The inner implementation is an XS proxy to a complete C library built on top of Marpa::R2's core engine, namely c-marpaESLIF.

This could have never exist without remarkable Marpa library, copyrighted by Jeffrey, that I applaud here for his fantastic work that deserve a wide audience IMHO.

I have also uploaded a JSON parser, MarpaX::ESLIF::ECMA404 to give a concrete example of how MarpaX::ESLIF is working. If these packages can boost marpa reputation, great.

Impatient readers ? Here is an ESLIF version of JSON grammar, hopefully correct-;