Cparser is a recursive descent C99 parser written in C99. It contains
a lexer, a parser, and the appropriate constructs; it does AST and
semantic analysis. It is currently used as a frontend to the
libFirm intermediate representation.  However, it can be used
independently, and also is able to bootstrap itself.  Currently, cparser
uses an external preprocessor.

Homepage:
http://cparser.sourceforge.net/
