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:
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.
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.
2008-03-25 : Initial draft. 2010-07-13 : Updates.