607e3e295a795cc8d54da2daee13dcd321ce1fcc
[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(CHARACTER_CONSTANT,      "character constant",)
8 TS(WIDE_CHARACTER_CONSTANT, "wide character constant",)
9 TS(FLOATINGPOINT,           "floatingpoint number",)
10 TS(STRING_LITERAL,          "string literal",)
11 TS(WIDE_STRING_LITERAL,     "wide string literal",)
12
13 #define ALTERNATE(name, val)          T(_CXX, name, #name,  val)
14 #define PUNCTUATOR(name, string, val) T(_ALL, name, string, val)
15 #include "tokens_punctuator.inc"
16 #undef PUNCTUATOR
17 #undef ALTERNATE
18
19 #define S(mode,x)   T(mode,x,#x,)
20 S(_ALL, auto)
21 S(_ALL, break)
22 S(_ALL, case)
23 S(_ALL, char)
24 S(_ALL, continue)
25 S(_ALL, default)
26 S(_ALL, do)
27 S(_ALL, double)
28 S(_ALL, else)
29 S(_ALL, enum)
30 S(_ALL, extern)
31 S(_ALL, float)
32 S(_ALL, for)
33 S(_ALL, goto)
34 S(_ALL, if)
35 S(_ALL, int)
36 S(_ALL, long)
37 S(_ALL, register)
38 S(_ALL, return)
39 S(_ALL, short)
40 S(_ALL, sizeof)
41 S(_ALL, static)
42 S(_ALL, struct)
43 S(_ALL, switch)
44 S(_ALL, typedef)
45 S(_ALL, union)
46 S(_ALL, unsigned)
47 S(_ALL, void)
48 S(_ALL, while)
49
50 /* C++ keywords */
51 #undef bool
52 S(_CXX, bool)
53 #define bool _Bool
54 S(_CXX, catch)
55 S(_CXX, class)
56 S(_CXX, const_cast)
57 S(_CXX, delete)
58 S(_CXX, dynamic_cast)
59 S(_CXX, explicit)
60 S(_CXX, export)
61 #undef false
62 S(_CXX, false)
63 #define false 0
64 S(_CXX, friend)
65 S(_CXX, mutable)
66 S(_CXX, namespace)
67 S(_CXX, new)
68 S(_CXX, operator)
69 S(_CXX, private)
70 S(_CXX, protected)
71 S(_CXX, public)
72 S(_CXX, reinterpret_cast)
73 S(_CXX, static_cast)
74 S(_CXX, template)
75 S(_CXX, this)
76 S(_CXX, throw)
77 #undef true
78 S(_CXX, true)
79 #define true 1
80 S(_CXX, try)
81 S(_CXX, typeid)
82 S(_CXX, typename)
83 S(_CXX, using)
84 S(_CXX, virtual)
85 S(_CXX, wchar_t)
86
87 S(_C99|_GNUC, _Bool)
88 S(_ALL, __thread)
89 S(_ALL, __extension__)
90 S(_ALL, __builtin_classify_type)
91 S(_ALL, __builtin_va_list)
92 S(_ALL, __builtin_expect)
93 S(_ALL, __builtin_offsetof)
94 S(_ALL, __builtin_va_arg)
95 S(_ALL, __builtin_va_end)
96 S(_ALL, __builtin_alloca)
97 S(_ALL, __builtin_inf)
98 S(_ALL, __builtin_inff)
99 S(_ALL, __builtin_infl)
100 S(_ALL, __builtin_nan)
101 S(_ALL, __builtin_nanf)
102 S(_ALL, __builtin_nanl)
103 S(_ALL, __builtin_isgreater)
104 S(_ALL, __builtin_isgreaterequal)
105 S(_ALL, __builtin_isless)
106 S(_ALL, __builtin_islessequal)
107 S(_ALL, __builtin_islessgreater)
108 S(_ALL, __builtin_isunordered)
109 S(_ALL, __builtin_constant_p)
110 S(_ALL, __builtin_prefetch)
111 S(_ALL, __builtin_huge_val)
112 S(_ALL, __builtin_return_address)
113 S(_ALL, __builtin_frame_address)
114 S(_ALL, __builtin_ffs)
115 S(_ALL, __builtin_clz)
116 S(_ALL, __builtin_ctz)
117 S(_ALL, __builtin_popcount)
118 S(_ALL, __builtin_parity)
119 S(_ALL, __builtin_trap)
120 S(_ALL, __builtin_types_compatible_p)
121 S(_ALL, __PRETTY_FUNCTION__)
122 S(_ALL, __FUNCTION__)
123 S(_ALL, __label__)
124 S(_C99, __func__)
125 S(_MS, __FUNCSIG__)
126 S(_MS, __FUNCDNAME__)
127 #undef S
128
129 /* needed on Windows */
130 #ifdef __w64
131 #undef __w64
132 #endif
133 #ifdef __ptr64
134 #undef __ptr64
135 #endif
136
137 /* needed on MinGW */
138 #ifdef __MINGW32__
139 #ifdef __int8
140 #undef __int8
141 #endif
142 #ifdef __int16
143 #undef __int16
144 #endif
145 #ifdef __int32
146 #undef __int32
147 #endif
148 #ifdef __int64
149 #undef __int64
150 #endif
151 #endif
152
153 #if defined(__MINGW32__) || defined(__CYGWIN__)
154 #ifdef __cdecl
155 #undef __cdecl
156 #endif
157 #ifdef __stdcall
158 #undef __stdcall
159 #endif
160 #ifdef __fastcall
161 #undef __fastcall
162 #endif
163 #endif
164
165 /* needed on darwin... */
166 #ifdef __signed
167 #undef __signed
168 #endif
169 #ifdef __volatile
170 #undef __volatile
171 #endif
172 #ifdef __const
173 #undef __const
174 #endif
175 #ifdef __restrict
176 #undef __restrict
177 #endif
178
179 #define S(mode, x, val) T(mode, x, #x, val)
180 S(_ANSI|_C99|_CXX,   signed,               )
181 S(_ALL,            __signed,               = T_signed)
182 S(_ALL,            __signed__,             = T_signed)
183 S(_C99|_GNUC,       _Complex,              )
184 S(_ALL,            __complex__,            = T__Complex)
185 S(_ALL,            __complex,              = T__Complex)
186 S(_C99|_GNUC,       _Imaginary,            )
187 S(_ALL,            __real__,               )
188 S(_ALL,            __real,                 = T___real__)
189 S(_ALL,            __imag__,               )
190 S(_ALL,            __imag,                 = T___imag__)
191 S(_ALL,            __alignof__,            )
192 S(_ALL,            __alignof,              = T___alignof__)
193 S(_MS,              _alignof,              = T___alignof__)
194 S(_ANSI|_C99|_CXX,   const,                )
195 S(_ALL,            __const,                = T_const)
196 S(_ALL,            __const__,              = T_const)
197 S(_C99,              restrict,             )
198 S(_ALL,            __restrict__,           = T_restrict)
199 S(_ALL,            __restrict,             = T_restrict)
200 S(_MS,              _restrict,             = T_restrict)
201 S(_ALL,              asm,                  )
202 S(_ALL,            __asm__,                = T_asm)
203 S(_MS,              _asm,                  = T_asm)
204 S(_ALL,            __asm,                  = T_asm)
205 S(_ANSI|_C99|_CXX,   volatile,             )
206 S(_ALL,            __volatile,             = T_volatile)
207 S(_ALL,            __volatile__,           = T_volatile)
208 S(_C99|_CXX,         inline,               )
209 S(_ALL,            __inline,               = T_inline)
210 S(_ALL,            __inline__,             = T_inline)
211 S(_GNUC,             typeof,               )
212 S(_ALL,            __typeof,               = T_typeof)
213 S(_ALL,            __typeof__,             = T_typeof)
214 S(_ALL,            __attribute__,          )
215
216 S(_ALL,            __builtin_va_start,     )
217 S(_ALL,            __builtin_stdarg_start, = T___builtin_va_start)
218
219 S(_MS,              _near,                 )
220 S(_MS,             __near,                 = T__near)
221 S(_MS,              _far,                  )
222 S(_MS,             __far,                  = T__far)
223 S(_MS,               cdecl,                )
224 S(_MS,              _cdecl,                = T_cdecl)
225 S(_MS,             __cdecl,                = T_cdecl)
226 S(_MS,              _stdcall,              )
227 S(_MS,             __stdcall,              = T__stdcall)
228 S(_MS,              _fastcall,             )
229 S(_MS,             __fastcall,             = T__fastcall)
230 S(_MS,             __thiscall,             )
231 S(_MS,              _forceinline,          )
232 S(_MS,             __forceinline,          = T__forceinline)
233 S(_MS,             __unaligned,            )
234 S(_MS,              _assume,               )
235 S(_MS,             __assume,               = T__assume)
236 S(_MS,              _try,                  )
237 S(_MS,             __try,                  = T__try)
238 S(_MS,              _finally,              )
239 S(_MS,             __finally,              = T__finally)
240 S(_MS,              _leave,                )
241 S(_MS,             __leave,                = T__leave)
242 S(_MS,              _except,               )
243 S(_MS,             __except,               = T__except)
244 S(_MS,              _declspec,             )
245 S(_MS,             __declspec,             = T__declspec)
246 S(_MS,              _based,                )
247 S(_MS,             __based,                = T__based)
248 S(_MS,             __noop,                 )
249
250 S(_MS,             __ptr32,                )
251 S(_MS,             __ptr64,                )
252 S(_MS,             __sptr,                 )
253 S(_MS,             __uptr,                 )
254 S(_MS,              _w64,                  )
255 S(_MS,             __w64,                  = T__w64)
256
257 S(_MS,              _int8,                 )
258 S(_MS,             __int8,                 = T__int8)
259 S(_MS,              _int16,                )
260 S(_MS,             __int16,                = T__int16)
261 S(_MS,              _int32,                )
262 S(_MS,             __int32,                = T__int32)
263 S(_MS,              _int64,                )
264 S(_MS,             __int64,                = T__int64)
265 S(_MS,              _int128,               )
266 S(_MS,             __int128,               = T__int128)
267 #undef S
268
269 /* Redefine required macros for MinGW headers */
270 #if defined(__MINGW32__) || defined(__CYGWIN__)
271 #define __stdcall __attribute__((__stdcall__))
272 #define __fastcall __attribute__((__fastcall__))
273 #define __cdecl __attribute__((__cdecl__))
274 #endif