News for hackers. Stuff that matters.
Re:The Lemon Parser Generator by SQLite on Tuesday September 29, 2015 @10:00AM (#10296317)
I wrote lemon in the late 1980's on a Sun4, while a graduate student. There was also a program called "lime" that generated an LL(1) parser, but I've long since lost that code.

Lemon was intended as a yacc-replacement. The advantages of lemon over yacc are that lemon has a less error-prone syntax (it uses symbolic names rather than $1, $2, etc), and that lemon generates a reentrant and thread-safe parser. (At the time, yacc/bison parsers were neither reentrant nor thread-safe. I don't know if that has been fixed in the intervening decades.)

Lemon has always been open source. But it languished with little attention for 10 years until I used it to generate the parser for SQLite. Then suddenly people started to notice and use it.

Lemon does not have a separate version control system. The source code to Lemon (a single file of C plus a template file for the generated parser) are part of the SQLite source tree.

Re:The Lemon Parser Generator by arcticbull on Tuesday September 29, 2015 @12:41PM (#10297536)
Hey! I've written a bunch of stuff with lemon over the last few years and at some point. Lemon has been my go-to parser generator for a long time. At some point, I:

* collected some examples I'd found

* split up the single .c file into constituent parts

* improved error reporting and modernized some syntax

* started working on adding Rust support as a learn-Rust project.

* fixed 64-bit conversion warnings

https://github.com/martinmroz/lemon

It's definitely not packaged up, but hopefully someone finds this stuff valuable. I'd love to see Lemon gain more widespread use. I want to help address the biggest issues I had getting started using it, which were lack of community, lack of documentation/examples, difficulty contributing and lack of a package/distribution medium.

Re:The Lemon Parser Generator by code4life on Tuesday September 29, 2015 @11:34AM (#10297037)
Yes, bison now is both, reentrant, thread-safe and supports push parsing. I helped implement the push parser support many years ago with the help of the Bison development team.