Lemon Parser Generator

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Lemon Parser Generator
Developer(s) D. Richard Hipp
Written in C
Operating system Cross-platform
Type Parser generator
License Public domain
Website www.hwaci.com/sw/lemon/

Lemon is a parser generator, maintained as part of the SQLite project, that generates an LALR parser in the C programming language from an input context-free grammar. The generator is quite simple, implemented in a single C source file with another file used as a template for output. Lexical analysis is performed externally.

Lemon is similar to bison and yacc; however it is not compatible with these programs. The grammar input format is different to help prevent common coding errors. Other distinctive features include an output parser that is reentrant and thread-safe, and the concept of "non-terminal destructors" that try to make it easier to create a parser that does not leak memory.

SQLite uses Lemon with a hand-coded tokenizer to parse SQL strings.

In 2008 a Lemon-generated parser was suggested to replace the bison-generated parser used for the PHP programming language; as of 2010 this project is listed as "in the works".[1]

[edit] Notes

  1. ^ Kneuss, Etienne (2008-03-25). "Request for Comments: Replace Bison based parser with Lemon". PHP Wiki. http://wiki.php.net/rfc/lemon. Retrieved 2010-05-08. 

[edit] References

[edit] External links

Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export