#ifndef TS #define TS(x,str,val) #endif TS(IDENTIFIER, "identifier", = 256) TS(TYPENAME, "typename",) TS(INTEGER, "integer number",) TS(STRING_LITERAL, "string literal",) #define S(x) T(x,#x,) S(auto) S(break) S(case) S(char) S(const) S(continue) S(default) S(do) S(double) S(else) S(enum) S(extern) S(float) S(for) S(goto) S(if) S(inline) S(int) S(long) S(register) S(restrict) S(return) S(short) S(signed) S(sizeof) S(static) S(struct) S(switch) S(typedef) S(union) S(unsigned) S(void) S(volatile) S(while) S(_Bool) S(_Complex) S(_Imaginary) S(__extension__) S(__attribute__) S(__u_quad_t) S(__quad_t) #undef S T(SELECT, "->",) T(PLUSPLUS, "++",) T(MINUSMINUS, "--",) T(LESSLESS, "<<",) T(GREATERGREATER, ">>",) T(LESSEQUAL, "<=",) T(GREATEREQUAL, ">=",) T(EQUALEQUAL, "==",) T(EXCLAMATIONMARKEQUAL, "!=",) T(ANDAND, "&&",) T(PIPEPIPE, "||",) T(DOTDOTDOT, "...",) T(ASTERISKEQUAL, "*=",) T(SLASHEQUAL, "/=",) T(PERCENTEQUAL, "%=",) T(PLUSEQUAL, "+=",) T(MINUSEQUAL, "-=",) T(LESSLESSEQUAL, "<<=",) T(GREATERGREATEREQUAL, ">>=",) T(ANDEQUAL, "&=",) T(CARETEQUAL, "^=",) T(PIPEEQUAL, "|=",) T(HASHHASH, "##",) #define T_LAST_TOKEN (T_HASHHASH+1) T(LESSCOLON, "<:", = '[') T(COLONGREATER, ":>", = ']') T(LESSPERCENT, "<%", = '{') T(PERCENTGREATER, "%>", = '}') T(PERCENTCOLON, "%:", = '#') T(PERCENTCOLONPERCENTCOLON, "%:%:", = T_HASHHASH) T(RBRACK, "[", = '[') T(LBRACK, "]", = ']') T(LBRACE, "(", = '(') T(RBRACE, ")", = ')') T(RCURLY, "{", = '{') T(LCURLY, "}", = '}') T(DOT, ".", = '.') T(AND, "&", = '&') T(ASTERISK, "*", = '*') T(PLUS, "+", = '+') T(MINUS, "-", = '-') T(TILDE, "~", = '~') T(EXCLAMATIONMARK, "!", = '!') T(SLASH, "/", = '/') T(PERCENT, "%", = '%') T(LESS, "<", = '<') T(GREATER, ">", = '>') T(CARET, "^", = '^') T(PIPE, "|", = '|') T(QUESTIONMARK, "?", = '?') T(COLON, ":", = ':') T(SEMICOLON, ";", = ';') T(EQUAL, "=", = '=') T(COMMA, ",", = ',') T(HASH, "#", = '#') TS(NEWLINE, "newline", = '\n')