[Update: I've put these parser/lexer tools on BitBucket and Github; enjoy!]
From time to time, I find that I need to put a parser together. Most of the time I find that I need to do this in C for performance, but other times I just want something convenient, like PHP, and have been out of luck.
You need a C compiler to build lemon and a java compiler and runtime to build and run JLexPHP, but after having translated your .y and .lex files with these tools, you're left with a pure PHP parser and lexer implementation.
The parser and lexer generators are available under a BSDish license, from both BitBucket and Github:
See enclosed README files for more information.