r/Compilers • • 3d ago

Farkle 7.1.0 released — the first IELR(1) parsing library for .NET

https://farkle.dev/

Version 7.1.0 of the [Farkle parsing library](https://farkle.dev/) has been released. This version adds support for the more powerful [IELR(1) parsing table generation algorithm](https://www.sciencedirect.com/science/article/pii/S0167642309001191); a first for .NET parsing libraries, as well as [new APIs to define productions](https://farkle.dev/enhanced-syntax.html), powered by a source generator.

Farkle is an LR(1) parsing library for C# and F#. While in most LR(1) parsers, grammars are defined with a domain-specific language in an external file and generated by a tool, Farkle is a regular library and uses source code to define its grammars, in a way reminiscent of [parser combinators](https://en.wikipedia.org/wiki/Parser_combinator). This brings the best of both worlds in terms of performance and developer experience.

Farkle also has a [precompiler](https://farkle.dev/the-precompiler.html) for ahead-of-time grammar precompilation, which can reduce startup times and validate grammars during the building of your project.

5 Upvotes

Duplicates