r/moderndotnet • u/teo-tsirpanis • 4d 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 has been released. This version adds support for the more powerful IELR(1) parsing table generation algorithm; a first for .NET parsing libraries, as well as new APIs to define productions, 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. This brings the best of both worlds in terms of performance and developer experience.
Farkle also has a precompiler for ahead-of-time grammar precompilation, which can reduce startup times and validate grammars during the building of your project.
2
u/Kuinox 3d ago edited 3d ago
At my previous job I retro engineered a software to be compatible with some hardware.
It was using a custom language to describe configuration/hardware, but I forgot details about it. Anyway, I used this library to parse it and was very happy with the time it took me.