Full-blown preprocessor metaprogramming
Metalang99 is a firm foundation for writing reliable and maintainable
metaprograms in pure C99. It is implemented as an interpreted FP
language atop of preprocessor macros: just #include <metalang99.h>
and you are ready to go. Metalang99 features algebraic data types,
pattern matching, recursion, currying, and collections; in addition,
it provides means for compile-time error reporting and
debugging. With our built-in syntax checker, macro errors should be
perfectly comprehensible, enabling you for convenient development.