#ifndef __SMCC_PP_TOKEN_H__ #define __SMCC_PP_TOKEN_H__ /* clang-format off */ /// https://cppreference.cn/w/c/preprocessor #define PP_INST_TOKEN \ X(define , PP_STD, PP_TOK_DEFINE ) \ X(undef , PP_STD, PP_TOK_UNDEF ) \ X(include , PP_STD, PP_TOK_INCLUDE ) \ X(if , PP_STD, PP_TOK_IF ) \ X(ifdef , PP_STD, PP_TOK_IFDEF ) \ X(ifndef , PP_STD, PP_TOK_IFNDEF ) \ X(else , PP_STD, PP_TOK_ELSE ) \ X(elif , PP_STD, PP_TOK_ELIF ) \ X(elifdef , PP_STD, PP_TOK_ELIFDEF ) \ X(elifndef , PP_C23, PP_TOK_ELIFNDEF ) \ X(endif , PP_STD, PP_TOK_ENDIF ) \ X(line , PP_STD, PP_TOK_LINE ) \ X(embed , PP_C23, PP_TOK_EMBED ) \ X(error , PP_STD, PP_TOK_ERROR ) \ X(warning , PP_C23, PP_TOK_WARNING ) \ X(pragma , PP_STD, PP_TOK_PRAMA ) \ // END /* clang-format on */ #define X(name, type, tok) tok, typedef enum pp_token { PP_INST_TOKEN } pp_token_t; #undef X #endif /* __SMCC_PP_TOKEN_H__ */