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