===== Request for Comments: Replace Bison based parser with Lemon ===== * **Version:** 0.2 * **Date:** 2010-07-13 * **Author:** Etienne Kneuss, Felipe Pena * **Status:** Abandoned === Abstract === The current parser is bison based. The plan (initially proposed as a GSoC idea) is to replace it with Lemon, which is thread-safe and reentrant. This task can be divided into two main parts: * rewrite zend_language_parser.y into a syntax Lemon understands. * generate the template for an engine/re2c integration. Writing the syntax file is pretty straight-forward, though some additional rules need to be implemented in order to reproduce those bison "mid-rule actions", which isn't supported by Lemon. It might be a good idea to rethink some of the rules' names along the way. === News from the front === The rewrite is finished, but we still need to figure out some slight performance issues. An effect of the yacc->lemon switch is that tokens are no longer named in error messages. Before: Unexpected T_IF Now: Unexpected 'if' === Updates === 2008-03-25 : Initial draft. 2010-07-13 : Updates.