This is a tool aswell as a proof of concept that recursive descendent parsers can be useful and easy to implement. This tool generates an intermediate representation in C for a given abstract grammar. The lexer was implemented using flex but the parser was implemented using just the C language and the recursive descendent method.
Use it. Read it. Learn from it.