I'm happy to announce that I've finally released version 1.0 of pycparser - a complete ANSI C parser written in Python. It generates a complete AST from C code, and thus can serve as a front-end for a C compiler, or as a platform for static code analysis of C.
pycparser uses PLY to
construct the lexer and the parser for the C language. At the moment it supports
ANSI C89 (the language described in K&R2;).
A lot of work went into
pycparser (2,500 LOC for the module + 2,000
more for examples and tests), and I'm very happy it's finally out. My own plan
for it is to use it as a front-end for a complete C compiler, but I'm sure
people can employ it for various useful tasks. After all, it is written in
Python, which means the code should be easy to understand, modify and extend.