merge UNEXPR and BINEXPR enums with EXPR enum
[cparser] / tokens.inc
1 #ifndef TS
2 #define TS(x,str,val)
3 #endif
4
5 TS(IDENTIFIER,          "identifier", = 256)
6 TS(INTEGER,             "integer number",)
7 TS(FLOATINGPOINT,       "floatingpoint number",)
8 TS(STRING_LITERAL,      "string literal",)
9 TS(WIDE_STRING_LITERAL, "wide string literal",)
10
11 #define S(x)   T(x,#x,)
12 S(auto)
13 S(break)
14 S(case)
15 S(char)
16 S(continue)
17 S(default)
18 S(do)
19 S(double)
20 S(else)
21 S(enum)
22 S(extern)
23 S(float)
24 S(for)
25 S(goto)
26 S(if)
27 S(int)
28 S(long)
29 S(register)
30 S(return)
31 S(short)
32 S(signed)
33 S(sizeof)
34 S(static)
35 S(struct)
36 S(switch)
37 S(typedef)
38 S(union)
39 S(unsigned)
40 S(void)
41 S(while)
42 S(_Bool)
43 S(_Complex)
44 S(_Imaginary)
45 S(__thread)
46 S(__extension__)
47 S(__attribute__)
48 S(__builtin_classify_type)
49 S(__builtin_va_list)
50 S(__builtin_expect)
51 S(__builtin_offsetof)
52 S(__builtin_va_arg)
53 S(__builtin_va_end)
54 S(__builtin_alloca)
55 S(__builtin_nanf)
56 S(__builtin_nan)
57 S(__builtin_nand)
58 S(__builtin_isgreater)
59 S(__builtin_isgreaterequal)
60 S(__builtin_isless)
61 S(__builtin_islessequal)
62 S(__builtin_islessgreater)
63 S(__builtin_isunordered)
64 S(__PRETTY_FUNCTION__)
65 S(__FUNCTION__)
66 S(__func__)
67 S(__alignof__)
68 S(__real__)
69 S(__imag__)
70 #undef S
71
72 T(const,                  "__const",)
73 T(_const,                 "const",                  = T_const)
74 T(restrict,               "__restrict",)
75 T(_restrict,              "restrict",               = T_restrict)
76 T(asm,                    "asm",)
77 T(__asm__,                "__asm__",                = T_asm)
78 T(volatile,               "volatile",)
79 T(__volatile__,           "__volatile__",           = T_volatile)
80 T(inline,                 "inline",)
81 T(__inline,               "__inline",               = T_inline)
82 T(__inline__,             "__inline__",             = T_inline)
83 T(typeof,                 "typeof",)
84 T(__typeof__,             "__typeof__",             = T_typeof)
85 T(__builtin_va_start,     "__builtin_va_start",)
86 T(__builtin_stdarg_start, "__builtin_stdarg_start", = T___builtin_va_start)
87
88 T(MINUSGREATER,             "->",)
89 T(PLUSPLUS,                 "++",)
90 T(MINUSMINUS,               "--",)
91 T(LESSLESS,                 "<<",)
92 T(GREATERGREATER,           ">>",)
93 T(LESSEQUAL,                "<=",)
94 T(GREATEREQUAL,             ">=",)
95 T(EQUALEQUAL,               "==",)
96 T(EXCLAMATIONMARKEQUAL,     "!=",)
97 T(ANDAND,                   "&&",)
98 T(PIPEPIPE,                 "||",)
99 T(DOTDOTDOT,                "...",)
100 T(ASTERISKEQUAL,            "*=",)
101 T(SLASHEQUAL,               "/=",)
102 T(PERCENTEQUAL,             "%=",)
103 T(PLUSEQUAL,                "+=",)
104 T(MINUSEQUAL,               "-=",)
105 T(LESSLESSEQUAL,            "<<=",)
106 T(GREATERGREATEREQUAL,      ">>=",)
107 T(ANDEQUAL,                 "&=",)
108 T(CARETEQUAL,               "^=",)
109 T(PIPEEQUAL,                "|=",)
110 T(HASHHASH,                 "##",)
111
112 #define T_LAST_TOKEN  (T_HASHHASH+1)
113
114 T(LESSCOLON,                "<:",   = '[')
115 T(COLONGREATER,             ":>",   = ']')
116 T(LESSPERCENT,              "<%",   = '{')
117 T(PERCENTGREATER,           "%>",   = '}')
118 T(PERCENTCOLON,             "%:",   = '#')
119 T(PERCENTCOLONPERCENTCOLON, "%:%:", = T_HASHHASH)
120
121 T(RBRACK,          "[", = '[')
122 T(LBRACK,          "]", = ']')
123 T(LBRACE,          "(", = '(')
124 T(RBRACE,          ")", = ')')
125 T(RCURLY,          "{", = '{')
126 T(LCURLY,          "}", = '}')
127 T(DOT,             ".", = '.')
128 T(AND,             "&", = '&')
129 T(ASTERISK,        "*", = '*')
130 T(PLUS,            "+", = '+')
131 T(MINUS,           "-", = '-')
132 T(TILDE,           "~", = '~')
133 T(EXCLAMATIONMARK, "!", = '!')
134 T(SLASH,           "/", = '/')
135 T(PERCENT,         "%", = '%')
136 T(LESS,            "<", = '<')
137 T(GREATER,         ">", = '>')
138 T(CARET,           "^", = '^')
139 T(PIPE,            "|", = '|')
140 T(QUESTIONMARK,    "?", = '?')
141 T(COLON,           ":", = ':')
142 T(SEMICOLON,       ";", = ';')
143 T(EQUAL,           "=", = '=')
144 T(COMMA,           ",", = ',')
145 T(HASH,            "#", = '#')
146
147 TS(NEWLINE,        "newline", = '\n')