#define xCAT(A,B) … #define CAT(A,B) … #undef TYPE #define TYPE … #define xFN(TYPE,NAME) … #define FN(TYPE,NAME) … #undef TESTS #define TESTS … /* Test parsing of objects of type TYPE by printing * the expressions and checking that parsing the output results * in the same expression. * Do this for a set of expressions parsed from strings. */ static isl_stat FN(check,TESTS)(isl_ctx *ctx) { … }