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