Infrastructure for C Program Analysis and Transformation

CIL (C Intermediate Language) is a high-level representation along
with a set of tools that permit easy analysis and source-to-source
transformation of C programs.

CIL is both lower-level than abstract-syntax trees, by clarifying
ambiguous constructs and removing redundant ones, and also higher-level
than typical intermediate languages designed for compilation, by
maintaining types and a close relationship with the source program. 

WWW: http://manju.cs.berkeley.edu/cil/