Lemon Parser Generator
Developer(s) | D. Richard Hipp |
---|---|
Written in | C |
Operating system | Cross-platform |
Type | Parser generator |
License | Public domain |
Website |
www |
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, so as to help prevent common coding errors. Other distinctive features include a reentrant, thread-safe output parser, and the concept of "non-terminal destructors" that try to make it easier to avoid leaking 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 was listed as "in the works".[1]
Notes
- ↑ Kneuss, Etienne (2008-03-25). "Request for Comments: Replace Bison based parser with Lemon". PHP Wiki. Retrieved 2010-05-08.
References
- "The LEMON Parser Generator". Retrieved 2008-12-24.
- "Architecture of SQLite". 2008-11-01. Retrieved 2008-12-24.