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.
A portable C/C++ preprocessor supporting several compiler-systems on UNIX and Windows. mcpp supports C99 and C++98 as well as C90 and it provides Validation Suite which tests C/C++ preprocessor comprehensively.