As part of Granary, I have developed a sort-of GNU C99 type and function declaration parser, which is now hosted on GitHub. I am releasing this code because others might find it useful. There are a number of other implementations out there; however, when I last tried them, none met my exact needs (parsing glibc headers, Darwin libc headers, and Linux kernel headers).
This parser is not particularly novel, and likely contains bugs (I am 100% sure that the cprinter.py file has bugs). However, it has also been very useful.
I welcome feedback, bug fixes, feature requests, or feature additions to this parser from interested third parties.