#define DEF_ASM(x) DEF(TOK_ASM_ ## x, #x) #define DEF_ASMTEST(x,suffix) \ DEF_ASM(x ## o ## suffix) enum token { TOK_NULL #define DEF(id, str) ,id DEF_ASMTEST(j,) #undef DEF }; static const char keywords[] = #define DEF(id, str) str "\0" DEF_ASMTEST(j,) #undef DEF ; #define DEF(id, str) int main(int argc, char *argv[]) { return 0; }