Open Cpp

Program-Transformation.Org: The Program Transformation Wiki
Open C++ is a version of CPP with the Metaobject Protocol providing reflection capabilities.

The programmer who want to use Open C++ writes a meta-level program, which specifies how to translate or analyze a C++ program. It is written in C++ and defines a small number of classes. Then the meta-level program is compiled by the Open C++ compiler and (dynamically or statically) linked to the compiler itself as a compiler plug-in. The resulting compiler translates or analyzes a source program (it is called a base-level program for distinction) as the meta-level program specifies.

See http://www.csg.is.titech.ac.jp/~chiba/openc++.html

-- ArieVanDeursen