I’ve been using Dhaka to do PHP Parser for most of the project. I started out using RDParser. But I realized how much of a toy it was when I saw how fast Dhaka was by comparison, even though my Dhaka grammar was going to be almost twice as big. However, now that the project is maturing, I’m running into edge-cases where Dhaka isn’t as good of a fit for my purposes as I’d like. Specifically, Dhaka doesn’t support Unicode by default but I suppose this could be handled. Another issue I’ve had was with it’s lack of a splat operation, so you could get back a list of nodes that match instead of just pairs.
These are only minor at the moment, but the Unicode issue will have to be handled before it could be considered ‘production’. I’ll probably be on the lookout for something similar or maybe even add the functionality I need to Dhaka itself.. Who knows.