Bison is a CompilerCompiler. You give Bison a grammer (thats not right recursive) and a small C snippet for each rule, and a sorce of tokens and it will generate you a table bases parser.
Bison is extremely useful and very fast. If you have a non-trivial grammar, you should investigate using Bison for it.
Bison is normally paired with Flex
5 pages link to Bison:
lib/main.php:944: Notice: PageInfo: Cannot find action page