#define TYPED(t, name) , TOKEN_TYPE_NAME(t) name
#define TOKEN_TYPE_NAME(token) _##token##_type
#define TOKEN_TYPE(token, type) typedef type TOKEN_TYPE_NAME(token);
#define TYPED(t, name) , TOKEN_TYPE_NAME(t) name
#define TOKEN_TYPE_NAME(token) _##token##_type
#define TOKEN_TYPE(token, type) typedef type TOKEN_TYPE_NAME(token);