Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/wave/token_ids.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 /*============================================================================= | |
2 Boost.Wave: A Standard compliant C++ preprocessor library | |
3 The definition of a default set of token identifiers and related | |
4 functions. | |
5 | |
6 http://www.boost.org/ | |
7 | |
8 Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost | |
9 Software License, Version 1.0. (See accompanying file | |
10 LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
11 =============================================================================*/ | |
12 | |
13 #if !defined(TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED) | |
14 #define TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED | |
15 | |
16 #include <string> | |
17 | |
18 #include <boost/wave/wave_config.hpp> | |
19 | |
20 // this must occur after all of the includes and before any code appears | |
21 #ifdef BOOST_HAS_ABI_HEADERS | |
22 #include BOOST_ABI_PREFIX | |
23 #endif | |
24 | |
25 /////////////////////////////////////////////////////////////////////////////// | |
26 // Allow external redefinition of the token identifiers to use | |
27 #if !defined(BOOST_WAVE_TOKEN_IDS_DEFINED) | |
28 #define BOOST_WAVE_TOKEN_IDS_DEFINED | |
29 | |
30 #if (defined (__FreeBSD__) || defined (__DragonFly__) || defined (__OpenBSD__)) && defined (T_DIVIDE) | |
31 #undef T_DIVIDE | |
32 #endif | |
33 | |
34 /////////////////////////////////////////////////////////////////////////////// | |
35 namespace boost { | |
36 namespace wave { | |
37 | |
38 /////////////////////////////////////////////////////////////////////////////// | |
39 // assemble tokenids | |
40 #define TOKEN_FROM_ID(id, cat) ((id) | (cat)) | |
41 #define ID_FROM_TOKEN(tok) ((tok) & ~TokenTypeMask) | |
42 #define BASEID_FROM_TOKEN(tok) ((tok) & ~ExtTokenTypeMask) | |
43 | |
44 /////////////////////////////////////////////////////////////////////////////// | |
45 // the token_category helps to classify the different token types | |
46 enum token_category { | |
47 IdentifierTokenType = 0x10080000, | |
48 ParameterTokenType = 0x11080000, | |
49 ExtParameterTokenType = 0x11180000, | |
50 KeywordTokenType = 0x20080000, | |
51 OperatorTokenType = 0x30080000, | |
52 LiteralTokenType = 0x40080000, | |
53 IntegerLiteralTokenType = 0x41080000, | |
54 FloatingLiteralTokenType = 0x42080000, | |
55 StringLiteralTokenType = 0x43080000, | |
56 CharacterLiteralTokenType = 0x44080000, | |
57 BoolLiteralTokenType = 0x45080000, | |
58 PPTokenType = 0x50080000, | |
59 PPConditionalTokenType = 0x50880000, | |
60 | |
61 UnknownTokenType = 0xA0000000, | |
62 EOLTokenType = 0xB0000000, | |
63 EOFTokenType = 0xC0000000, | |
64 WhiteSpaceTokenType = 0xD0000000, | |
65 InternalTokenType = 0xE0080000, | |
66 | |
67 TokenTypeMask = 0xFF000000, | |
68 AltTokenType = 0x00100000, | |
69 TriGraphTokenType = 0x00200000, | |
70 AltExtTokenType = 0x00500000, // and, bit_and etc. | |
71 PPTokenFlag = 0x00080000, // these are 'real' pp-tokens | |
72 ExtTokenTypeMask = 0xFFF00000, | |
73 ExtTokenOnlyMask = 0x00F00000, | |
74 TokenValueMask = 0x000FFFFF, | |
75 MainTokenMask = 0xFF0FFFFF // TokenTypeMask|TokenValueMask | |
76 }; | |
77 | |
78 /////////////////////////////////////////////////////////////////////////////// | |
79 // the token_id assigns unique numbers to the different C++ lexemes | |
80 enum token_id { | |
81 T_UNKNOWN = 0, | |
82 T_FIRST_TOKEN = 256, | |
83 T_AND = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType), | |
84 T_AND_ALT = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType|AltExtTokenType), | |
85 T_ANDAND = TOKEN_FROM_ID(257, OperatorTokenType), | |
86 T_ANDAND_ALT = TOKEN_FROM_ID(257, OperatorTokenType|AltExtTokenType), | |
87 T_ASSIGN = TOKEN_FROM_ID(258, OperatorTokenType), | |
88 T_ANDASSIGN = TOKEN_FROM_ID(259, OperatorTokenType), | |
89 T_ANDASSIGN_ALT = TOKEN_FROM_ID(259, OperatorTokenType|AltExtTokenType), | |
90 T_OR = TOKEN_FROM_ID(260, OperatorTokenType), | |
91 T_OR_ALT = TOKEN_FROM_ID(260, OperatorTokenType|AltExtTokenType), | |
92 T_OR_TRIGRAPH = TOKEN_FROM_ID(260, OperatorTokenType|TriGraphTokenType), | |
93 T_ORASSIGN = TOKEN_FROM_ID(261, OperatorTokenType), | |
94 T_ORASSIGN_ALT = TOKEN_FROM_ID(261, OperatorTokenType|AltExtTokenType), | |
95 T_ORASSIGN_TRIGRAPH = TOKEN_FROM_ID(261, OperatorTokenType|TriGraphTokenType), | |
96 T_XOR = TOKEN_FROM_ID(262, OperatorTokenType), | |
97 T_XOR_ALT = TOKEN_FROM_ID(262, OperatorTokenType|AltExtTokenType), | |
98 T_XOR_TRIGRAPH = TOKEN_FROM_ID(262, OperatorTokenType|TriGraphTokenType), | |
99 T_XORASSIGN = TOKEN_FROM_ID(263, OperatorTokenType), | |
100 T_XORASSIGN_ALT = TOKEN_FROM_ID(263, OperatorTokenType|AltExtTokenType), | |
101 T_XORASSIGN_TRIGRAPH = TOKEN_FROM_ID(263, OperatorTokenType|TriGraphTokenType), | |
102 T_COMMA = TOKEN_FROM_ID(264, OperatorTokenType), | |
103 T_COLON = TOKEN_FROM_ID(265, OperatorTokenType), | |
104 T_DIVIDE = TOKEN_FROM_ID(266, OperatorTokenType), | |
105 T_DIVIDEASSIGN = TOKEN_FROM_ID(267, OperatorTokenType), | |
106 T_DOT = TOKEN_FROM_ID(268, OperatorTokenType), | |
107 T_DOTSTAR = TOKEN_FROM_ID(269, OperatorTokenType), | |
108 T_ELLIPSIS = TOKEN_FROM_ID(270, OperatorTokenType), | |
109 T_EQUAL = TOKEN_FROM_ID(271, OperatorTokenType), | |
110 T_GREATER = TOKEN_FROM_ID(272, OperatorTokenType), | |
111 T_GREATEREQUAL = TOKEN_FROM_ID(273, OperatorTokenType), | |
112 T_LEFTBRACE = TOKEN_FROM_ID(274, OperatorTokenType), | |
113 T_LEFTBRACE_ALT = TOKEN_FROM_ID(274, OperatorTokenType|AltTokenType), | |
114 T_LEFTBRACE_TRIGRAPH = TOKEN_FROM_ID(274, OperatorTokenType|TriGraphTokenType), | |
115 T_LESS = TOKEN_FROM_ID(275, OperatorTokenType), | |
116 T_LESSEQUAL = TOKEN_FROM_ID(276, OperatorTokenType), | |
117 T_LEFTPAREN = TOKEN_FROM_ID(277, OperatorTokenType), | |
118 T_LEFTBRACKET = TOKEN_FROM_ID(278, OperatorTokenType), | |
119 T_LEFTBRACKET_ALT = TOKEN_FROM_ID(278, OperatorTokenType|AltTokenType), | |
120 T_LEFTBRACKET_TRIGRAPH = TOKEN_FROM_ID(278, OperatorTokenType|TriGraphTokenType), | |
121 T_MINUS = TOKEN_FROM_ID(279, OperatorTokenType), | |
122 T_MINUSASSIGN = TOKEN_FROM_ID(280, OperatorTokenType), | |
123 T_MINUSMINUS = TOKEN_FROM_ID(281, OperatorTokenType), | |
124 T_PERCENT = TOKEN_FROM_ID(282, OperatorTokenType), | |
125 T_PERCENTASSIGN = TOKEN_FROM_ID(283, OperatorTokenType), | |
126 T_NOT = TOKEN_FROM_ID(284, OperatorTokenType), | |
127 T_NOT_ALT = TOKEN_FROM_ID(284, OperatorTokenType|AltExtTokenType), | |
128 T_NOTEQUAL = TOKEN_FROM_ID(285, OperatorTokenType), | |
129 T_NOTEQUAL_ALT = TOKEN_FROM_ID(285, OperatorTokenType|AltExtTokenType), | |
130 T_OROR = TOKEN_FROM_ID(286, OperatorTokenType), | |
131 T_OROR_ALT = TOKEN_FROM_ID(286, OperatorTokenType|AltExtTokenType), | |
132 T_OROR_TRIGRAPH = TOKEN_FROM_ID(286, OperatorTokenType|TriGraphTokenType), | |
133 T_PLUS = TOKEN_FROM_ID(287, OperatorTokenType), | |
134 T_PLUSASSIGN = TOKEN_FROM_ID(288, OperatorTokenType), | |
135 T_PLUSPLUS = TOKEN_FROM_ID(289, OperatorTokenType), | |
136 T_ARROW = TOKEN_FROM_ID(290, OperatorTokenType), | |
137 T_ARROWSTAR = TOKEN_FROM_ID(291, OperatorTokenType), | |
138 T_QUESTION_MARK = TOKEN_FROM_ID(292, OperatorTokenType), | |
139 T_RIGHTBRACE = TOKEN_FROM_ID(293, OperatorTokenType), | |
140 T_RIGHTBRACE_ALT = TOKEN_FROM_ID(293, OperatorTokenType|AltTokenType), | |
141 T_RIGHTBRACE_TRIGRAPH = TOKEN_FROM_ID(293, OperatorTokenType|TriGraphTokenType), | |
142 T_RIGHTPAREN = TOKEN_FROM_ID(294, OperatorTokenType), | |
143 T_RIGHTBRACKET = TOKEN_FROM_ID(295, OperatorTokenType), | |
144 T_RIGHTBRACKET_ALT = TOKEN_FROM_ID(295, OperatorTokenType|AltTokenType), | |
145 T_RIGHTBRACKET_TRIGRAPH = TOKEN_FROM_ID(295, OperatorTokenType|TriGraphTokenType), | |
146 T_COLON_COLON = TOKEN_FROM_ID(296, OperatorTokenType), | |
147 T_SEMICOLON = TOKEN_FROM_ID(297, OperatorTokenType), | |
148 T_SHIFTLEFT = TOKEN_FROM_ID(298, OperatorTokenType), | |
149 T_SHIFTLEFTASSIGN = TOKEN_FROM_ID(299, OperatorTokenType), | |
150 T_SHIFTRIGHT = TOKEN_FROM_ID(300, OperatorTokenType), | |
151 T_SHIFTRIGHTASSIGN = TOKEN_FROM_ID(301, OperatorTokenType), | |
152 T_STAR = TOKEN_FROM_ID(302, OperatorTokenType), | |
153 T_COMPL = TOKEN_FROM_ID(303, OperatorTokenType), | |
154 T_COMPL_ALT = TOKEN_FROM_ID(303, OperatorTokenType|AltExtTokenType), | |
155 T_COMPL_TRIGRAPH = TOKEN_FROM_ID(303, OperatorTokenType|TriGraphTokenType), | |
156 T_STARASSIGN = TOKEN_FROM_ID(304, OperatorTokenType), | |
157 T_ASM = TOKEN_FROM_ID(305, KeywordTokenType), | |
158 T_AUTO = TOKEN_FROM_ID(306, KeywordTokenType), | |
159 T_BOOL = TOKEN_FROM_ID(307, KeywordTokenType), | |
160 T_FALSE = TOKEN_FROM_ID(308, BoolLiteralTokenType), | |
161 T_TRUE = TOKEN_FROM_ID(309, BoolLiteralTokenType), | |
162 T_BREAK = TOKEN_FROM_ID(310, KeywordTokenType), | |
163 T_CASE = TOKEN_FROM_ID(311, KeywordTokenType), | |
164 T_CATCH = TOKEN_FROM_ID(312, KeywordTokenType), | |
165 T_CHAR = TOKEN_FROM_ID(313, KeywordTokenType), | |
166 T_CLASS = TOKEN_FROM_ID(314, KeywordTokenType), | |
167 T_CONST = TOKEN_FROM_ID(315, KeywordTokenType), | |
168 T_CONSTCAST = TOKEN_FROM_ID(316, KeywordTokenType), | |
169 T_CONTINUE = TOKEN_FROM_ID(317, KeywordTokenType), | |
170 T_DEFAULT = TOKEN_FROM_ID(318, KeywordTokenType), | |
171 T_DELETE = TOKEN_FROM_ID(319, KeywordTokenType), | |
172 T_DO = TOKEN_FROM_ID(320, KeywordTokenType), | |
173 T_DOUBLE = TOKEN_FROM_ID(321, KeywordTokenType), | |
174 T_DYNAMICCAST = TOKEN_FROM_ID(322, KeywordTokenType), | |
175 T_ELSE = TOKEN_FROM_ID(323, KeywordTokenType), | |
176 T_ENUM = TOKEN_FROM_ID(324, KeywordTokenType), | |
177 T_EXPLICIT = TOKEN_FROM_ID(325, KeywordTokenType), | |
178 T_EXPORT = TOKEN_FROM_ID(326, KeywordTokenType), | |
179 T_EXTERN = TOKEN_FROM_ID(327, KeywordTokenType), | |
180 T_FLOAT = TOKEN_FROM_ID(328, KeywordTokenType), | |
181 T_FOR = TOKEN_FROM_ID(329, KeywordTokenType), | |
182 T_FRIEND = TOKEN_FROM_ID(330, KeywordTokenType), | |
183 T_GOTO = TOKEN_FROM_ID(331, KeywordTokenType), | |
184 T_IF = TOKEN_FROM_ID(332, KeywordTokenType), | |
185 T_INLINE = TOKEN_FROM_ID(333, KeywordTokenType), | |
186 T_INT = TOKEN_FROM_ID(334, KeywordTokenType), | |
187 T_LONG = TOKEN_FROM_ID(335, KeywordTokenType), | |
188 T_MUTABLE = TOKEN_FROM_ID(336, KeywordTokenType), | |
189 T_NAMESPACE = TOKEN_FROM_ID(337, KeywordTokenType), | |
190 T_NEW = TOKEN_FROM_ID(338, KeywordTokenType), | |
191 T_OPERATOR = TOKEN_FROM_ID(339, KeywordTokenType), | |
192 T_PRIVATE = TOKEN_FROM_ID(340, KeywordTokenType), | |
193 T_PROTECTED = TOKEN_FROM_ID(341, KeywordTokenType), | |
194 T_PUBLIC = TOKEN_FROM_ID(342, KeywordTokenType), | |
195 T_REGISTER = TOKEN_FROM_ID(343, KeywordTokenType), | |
196 T_REINTERPRETCAST = TOKEN_FROM_ID(344, KeywordTokenType), | |
197 T_RETURN = TOKEN_FROM_ID(345, KeywordTokenType), | |
198 T_SHORT = TOKEN_FROM_ID(346, KeywordTokenType), | |
199 T_SIGNED = TOKEN_FROM_ID(347, KeywordTokenType), | |
200 T_SIZEOF = TOKEN_FROM_ID(348, KeywordTokenType), | |
201 T_STATIC = TOKEN_FROM_ID(349, KeywordTokenType), | |
202 T_STATICCAST = TOKEN_FROM_ID(350, KeywordTokenType), | |
203 T_STRUCT = TOKEN_FROM_ID(351, KeywordTokenType), | |
204 T_SWITCH = TOKEN_FROM_ID(352, KeywordTokenType), | |
205 T_TEMPLATE = TOKEN_FROM_ID(353, KeywordTokenType), | |
206 T_THIS = TOKEN_FROM_ID(354, KeywordTokenType), | |
207 T_THROW = TOKEN_FROM_ID(355, KeywordTokenType), | |
208 T_TRY = TOKEN_FROM_ID(356, KeywordTokenType), | |
209 T_TYPEDEF = TOKEN_FROM_ID(357, KeywordTokenType), | |
210 T_TYPEID = TOKEN_FROM_ID(358, KeywordTokenType), | |
211 T_TYPENAME = TOKEN_FROM_ID(359, KeywordTokenType), | |
212 T_UNION = TOKEN_FROM_ID(360, KeywordTokenType), | |
213 T_UNSIGNED = TOKEN_FROM_ID(361, KeywordTokenType), | |
214 T_USING = TOKEN_FROM_ID(362, KeywordTokenType), | |
215 T_VIRTUAL = TOKEN_FROM_ID(363, KeywordTokenType), | |
216 T_VOID = TOKEN_FROM_ID(364, KeywordTokenType), | |
217 T_VOLATILE = TOKEN_FROM_ID(365, KeywordTokenType), | |
218 T_WCHART = TOKEN_FROM_ID(366, KeywordTokenType), | |
219 T_WHILE = TOKEN_FROM_ID(367, KeywordTokenType), | |
220 T_PP_DEFINE = TOKEN_FROM_ID(368, PPTokenType), | |
221 T_PP_IF = TOKEN_FROM_ID(369, PPConditionalTokenType), | |
222 T_PP_IFDEF = TOKEN_FROM_ID(370, PPConditionalTokenType), | |
223 T_PP_IFNDEF = TOKEN_FROM_ID(371, PPConditionalTokenType), | |
224 T_PP_ELSE = TOKEN_FROM_ID(372, PPConditionalTokenType), | |
225 T_PP_ELIF = TOKEN_FROM_ID(373, PPConditionalTokenType), | |
226 T_PP_ENDIF = TOKEN_FROM_ID(374, PPConditionalTokenType), | |
227 T_PP_ERROR = TOKEN_FROM_ID(375, PPTokenType), | |
228 T_PP_LINE = TOKEN_FROM_ID(376, PPTokenType), | |
229 T_PP_PRAGMA = TOKEN_FROM_ID(377, PPTokenType), | |
230 T_PP_UNDEF = TOKEN_FROM_ID(378, PPTokenType), | |
231 T_PP_WARNING = TOKEN_FROM_ID(379, PPTokenType), | |
232 T_IDENTIFIER = TOKEN_FROM_ID(380, IdentifierTokenType), | |
233 T_OCTALINT = TOKEN_FROM_ID(381, IntegerLiteralTokenType), | |
234 T_DECIMALINT = TOKEN_FROM_ID(382, IntegerLiteralTokenType), | |
235 T_HEXAINT = TOKEN_FROM_ID(383, IntegerLiteralTokenType), | |
236 T_INTLIT = TOKEN_FROM_ID(384, IntegerLiteralTokenType), | |
237 T_LONGINTLIT = TOKEN_FROM_ID(385, IntegerLiteralTokenType), | |
238 T_FLOATLIT = TOKEN_FROM_ID(386, FloatingLiteralTokenType), | |
239 T_FIXEDPOINTLIT = TOKEN_FROM_ID(386, FloatingLiteralTokenType|AltTokenType), // IDL specific | |
240 T_CCOMMENT = TOKEN_FROM_ID(387, WhiteSpaceTokenType|AltTokenType), | |
241 T_CPPCOMMENT = TOKEN_FROM_ID(388, WhiteSpaceTokenType|AltTokenType), | |
242 T_CHARLIT = TOKEN_FROM_ID(389, CharacterLiteralTokenType), | |
243 T_STRINGLIT = TOKEN_FROM_ID(390, StringLiteralTokenType), | |
244 T_CONTLINE = TOKEN_FROM_ID(391, EOLTokenType), | |
245 T_SPACE = TOKEN_FROM_ID(392, WhiteSpaceTokenType), | |
246 T_SPACE2 = TOKEN_FROM_ID(393, WhiteSpaceTokenType), | |
247 T_NEWLINE = TOKEN_FROM_ID(394, EOLTokenType), | |
248 T_GENERATEDNEWLINE = TOKEN_FROM_ID(394, EOLTokenType|AltTokenType), | |
249 T_POUND_POUND = TOKEN_FROM_ID(395, OperatorTokenType), | |
250 T_POUND_POUND_ALT = TOKEN_FROM_ID(395, OperatorTokenType|AltTokenType), | |
251 T_POUND_POUND_TRIGRAPH = TOKEN_FROM_ID(395, OperatorTokenType|TriGraphTokenType), | |
252 T_POUND = TOKEN_FROM_ID(396, OperatorTokenType), | |
253 T_POUND_ALT = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType), | |
254 T_POUND_TRIGRAPH = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType), | |
255 T_ANY = TOKEN_FROM_ID(397, UnknownTokenType), | |
256 T_ANY_TRIGRAPH = TOKEN_FROM_ID(397, UnknownTokenType|TriGraphTokenType), | |
257 T_PP_INCLUDE = TOKEN_FROM_ID(398, PPTokenType), | |
258 T_PP_QHEADER = TOKEN_FROM_ID(399, PPTokenType), | |
259 T_PP_HHEADER = TOKEN_FROM_ID(400, PPTokenType), | |
260 T_PP_INCLUDE_NEXT = TOKEN_FROM_ID(398, PPTokenType|AltTokenType), | |
261 T_PP_QHEADER_NEXT = TOKEN_FROM_ID(399, PPTokenType|AltTokenType), | |
262 T_PP_HHEADER_NEXT = TOKEN_FROM_ID(400, PPTokenType|AltTokenType), | |
263 T_EOF = TOKEN_FROM_ID(401, EOFTokenType), // end of file reached | |
264 T_EOI = TOKEN_FROM_ID(402, EOFTokenType), // end of input reached | |
265 T_PP_NUMBER = TOKEN_FROM_ID(403, InternalTokenType), | |
266 | |
267 // MS extensions | |
268 T_MSEXT_INT8 = TOKEN_FROM_ID(404, KeywordTokenType), | |
269 T_MSEXT_INT16 = TOKEN_FROM_ID(405, KeywordTokenType), | |
270 T_MSEXT_INT32 = TOKEN_FROM_ID(406, KeywordTokenType), | |
271 T_MSEXT_INT64 = TOKEN_FROM_ID(407, KeywordTokenType), | |
272 T_MSEXT_BASED = TOKEN_FROM_ID(408, KeywordTokenType), | |
273 T_MSEXT_DECLSPEC = TOKEN_FROM_ID(409, KeywordTokenType), | |
274 T_MSEXT_CDECL = TOKEN_FROM_ID(410, KeywordTokenType), | |
275 T_MSEXT_FASTCALL = TOKEN_FROM_ID(411, KeywordTokenType), | |
276 T_MSEXT_STDCALL = TOKEN_FROM_ID(412, KeywordTokenType), | |
277 T_MSEXT_TRY = TOKEN_FROM_ID(413, KeywordTokenType), | |
278 T_MSEXT_EXCEPT = TOKEN_FROM_ID(414, KeywordTokenType), | |
279 T_MSEXT_FINALLY = TOKEN_FROM_ID(415, KeywordTokenType), | |
280 T_MSEXT_LEAVE = TOKEN_FROM_ID(416, KeywordTokenType), | |
281 T_MSEXT_INLINE = TOKEN_FROM_ID(417, KeywordTokenType), | |
282 T_MSEXT_ASM = TOKEN_FROM_ID(418, KeywordTokenType), | |
283 | |
284 T_MSEXT_PP_REGION = TOKEN_FROM_ID(419, PPTokenType), | |
285 T_MSEXT_PP_ENDREGION = TOKEN_FROM_ID(420, PPTokenType), | |
286 | |
287 // import is needed to be a keyword for the C++ module Standards proposal | |
288 T_IMPORT = TOKEN_FROM_ID(421, KeywordTokenType), | |
289 | |
290 // C++11 keywords | |
291 T_ALIGNAS = TOKEN_FROM_ID(422, KeywordTokenType), | |
292 T_ALIGNOF = TOKEN_FROM_ID(423, KeywordTokenType), | |
293 T_CHAR16_T = TOKEN_FROM_ID(424, KeywordTokenType), | |
294 T_CHAR32_T = TOKEN_FROM_ID(425, KeywordTokenType), | |
295 T_CONSTEXPR = TOKEN_FROM_ID(426, KeywordTokenType), | |
296 T_DECLTYPE = TOKEN_FROM_ID(427, KeywordTokenType), | |
297 T_NOEXCEPT = TOKEN_FROM_ID(428, KeywordTokenType), | |
298 T_NULLPTR = TOKEN_FROM_ID(429, KeywordTokenType), | |
299 T_STATICASSERT = TOKEN_FROM_ID(430, KeywordTokenType), | |
300 T_THREADLOCAL = TOKEN_FROM_ID(431, KeywordTokenType), | |
301 T_RAWSTRINGLIT = TOKEN_FROM_ID(432, StringLiteralTokenType), | |
302 | |
303 T_LAST_TOKEN_ID, | |
304 T_LAST_TOKEN = ID_FROM_TOKEN(T_LAST_TOKEN_ID & ~PPTokenFlag), | |
305 | |
306 // pseudo tokens to help streamlining macro replacement, these should not | |
307 // returned from the lexer nor should these be returned from the pp-iterator | |
308 T_NONREPLACABLE_IDENTIFIER = TOKEN_FROM_ID(T_LAST_TOKEN+1, IdentifierTokenType), | |
309 T_PLACEHOLDER = TOKEN_FROM_ID(T_LAST_TOKEN+2, WhiteSpaceTokenType), | |
310 T_PLACEMARKER = TOKEN_FROM_ID(T_LAST_TOKEN+3, InternalTokenType), | |
311 T_PARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, ParameterTokenType), | |
312 T_EXTPARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, ExtParameterTokenType) | |
313 }; | |
314 | |
315 /////////////////////////////////////////////////////////////////////////////// | |
316 // redefine the TOKEN_FROM_ID macro to be more type safe | |
317 #undef TOKEN_FROM_ID | |
318 #define TOKEN_FROM_ID(id, cat) boost::wave::token_id((id) | (cat)) | |
319 | |
320 #undef ID_FROM_TOKEN | |
321 #define ID_FROM_TOKEN(tok) \ | |
322 boost::wave::token_id((tok) & \ | |
323 ~(boost::wave::TokenTypeMask|boost::wave::PPTokenFlag)) \ | |
324 /**/ | |
325 | |
326 #undef BASEID_FROM_TOKEN | |
327 #define BASEID_FROM_TOKEN(tok) \ | |
328 boost::wave::token_id((tok) & \ | |
329 ~(boost::wave::ExtTokenTypeMask|boost::wave::PPTokenFlag)) \ | |
330 /**/ | |
331 #define BASE_TOKEN(tok) \ | |
332 boost::wave::token_id((tok) & boost::wave::MainTokenMask) \ | |
333 /**/ | |
334 #define CATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::TokenTypeMask) | |
335 #define EXTCATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::ExtTokenTypeMask) | |
336 #define IS_CATEGORY(tok, cat) \ | |
337 ((CATEGORY_FROM_TOKEN(tok) == CATEGORY_FROM_TOKEN(cat)) ? true : false) \ | |
338 /**/ | |
339 #define IS_EXTCATEGORY(tok, cat) \ | |
340 ((EXTCATEGORY_FROM_TOKEN(tok) == EXTCATEGORY_FROM_TOKEN(cat)) ? true : false) \ | |
341 /**/ | |
342 | |
343 /////////////////////////////////////////////////////////////////////////////// | |
344 // verify whether the given token(-id) represents a valid pp_token | |
345 inline bool is_pp_token(boost::wave::token_id id) | |
346 { | |
347 return (id & boost::wave::PPTokenFlag) ? true : false; | |
348 } | |
349 | |
350 template <typename TokenT> | |
351 inline bool is_pp_token(TokenT const& tok) | |
352 { | |
353 return is_pp_token(boost::wave::token_id(tok)); | |
354 } | |
355 | |
356 /////////////////////////////////////////////////////////////////////////////// | |
357 // return a token name | |
358 BOOST_WAVE_DECL | |
359 BOOST_WAVE_STRINGTYPE get_token_name(token_id tokid); | |
360 | |
361 /////////////////////////////////////////////////////////////////////////////// | |
362 // return a token name | |
363 BOOST_WAVE_DECL | |
364 char const *get_token_value(token_id tokid); | |
365 | |
366 /////////////////////////////////////////////////////////////////////////////// | |
367 } // namespace wave | |
368 } // namespace boost | |
369 | |
370 #endif // #if !defined(BOOST_WAVE_TOKEN_IDS_DEFINED) | |
371 | |
372 // the suffix header occurs after all of the code | |
373 #ifdef BOOST_HAS_ABI_HEADERS | |
374 #include BOOST_ABI_SUFFIX | |
375 #endif | |
376 | |
377 #endif // !defined(TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED) | |
378 |