1 #ifndef __GRAMMER_H_ 2 #define __GRAMMER_H_ 3 4 #define FIRST_DECLARATION \ 5 TK_AUTO, TK_EXTERN, TK_REGISTER, TK_STATIC, TK_TYPEDEF, \ 6 TK_CONST, TK_VOLATILE, TK_SIGNED, TK_UNSIGNED, TK_SHORT, \ 7 TK_LONG, TK_CHAR, TK_INT, TK_INT64, TK_FLOAT, \ 8 TK_DOUBLE, TK_ENUM, TK_STRUCT, TK_UNION, TK_VOID, TK_ID 9 10 #define FIRST_EXPRESSION \ 11 TK_SIZEOF, TK_ID, TK_INTCONST, TK_UINTCONST, TK_LONGCONST, \ 12 TK_ULONGCONST, TK_LLONGCONST, TK_ULLONGCONST, TK_FLOATCONST, TK_DOUBLECONST,\ 13 TK_LDOUBLECONST, TK_STRING, TK_WIDESTRING, TK_BITAND, TK_ADD, \ 14 TK_SUB, TK_MUL, TK_INC, TK_DEC, TK_NOT, \ 15 TK_COMP, TK_LPAREN 16 17 #define FIRST_STATEMENT \ 18 TK_BREAK, TK_CASE, TK_CONTINUE, TK_DEFAULT, TK_DO, TK_FOR, TK_GOTO, \ 19 TK_IF, TK_LBRACE, TK_RETURN, TK_SWITCH, TK_WHILE, TK_SEMICOLON, FIRST_EXPRESSION 20 21 #endif 22 23 24