Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/boost/wave/token_ids.hpp @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 18.2 KB
Line 
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-2007 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 (T_DIVIDE)
31#undef T_DIVIDE
32#endif
33
34///////////////////////////////////////////////////////////////////////////////
35namespace boost {
36namespace wave {
37
38///////////////////////////////////////////////////////////////////////////////
39//  assemble tokenid's
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
46enum token_category {
47    IdentifierTokenType         = 0x10000000,
48    ParameterTokenType          = 0x11000000,
49    ExtParameterTokenType       = 0x11100000,
50    KeywordTokenType            = 0x20000000,
51    OperatorTokenType           = 0x30000000,
52    LiteralTokenType            = 0x40000000,
53    IntegerLiteralTokenType     = 0x41000000,
54    FloatingLiteralTokenType    = 0x42000000,
55    StringLiteralTokenType      = 0x43000000,
56    CharacterLiteralTokenType   = 0x44000000,
57    BoolLiteralTokenType        = 0x45000000,
58    PPTokenType                 = 0x50000000,
59    PPConditionalTokenType      = 0x50800000,
60
61    UnknownTokenType            = 0xA0000000,
62    EOLTokenType                = 0xB0000000,
63    EOFTokenType                = 0xC0000000,
64    WhiteSpaceTokenType         = 0xD0000000,
65    InternalTokenType           = 0xE0000000,
66   
67    TokenTypeMask               = 0xFF000000,
68    AltTokenType                = 0x00100000,
69    TriGraphTokenType           = 0x00200000,
70    AltExtTokenType             = 0x00500000,   // and, bit_and etc.
71    ExtTokenTypeMask            = 0xFFF00000,
72    ExtTokenOnlyMask            = 0x00F00000,
73    TokenValueMask              = 0x000FFFFF,
74    MainTokenMask               = 0xFF0FFFFF    // TokenTypeMask|TokenValueMask
75};
76
77///////////////////////////////////////////////////////////////////////////////
78//  the token_id assigns unique numbers to the different C++ lexemes
79enum token_id {
80    T_UNKNOWN      = 0,
81    T_FIRST_TOKEN  = 256,
82    T_AND          = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType),
83    T_AND_ALT      = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType|AltExtTokenType),
84    T_ANDAND       = TOKEN_FROM_ID(257, OperatorTokenType),
85    T_ANDAND_ALT   = TOKEN_FROM_ID(257, OperatorTokenType|AltExtTokenType),
86    T_ASSIGN       = TOKEN_FROM_ID(258, OperatorTokenType),
87    T_ANDASSIGN    = TOKEN_FROM_ID(259, OperatorTokenType),
88    T_ANDASSIGN_ALT     = TOKEN_FROM_ID(259, OperatorTokenType|AltExtTokenType),
89    T_OR           = TOKEN_FROM_ID(260, OperatorTokenType),
90    T_OR_ALT       = TOKEN_FROM_ID(260, OperatorTokenType|AltExtTokenType),
91    T_OR_TRIGRAPH  = TOKEN_FROM_ID(260, OperatorTokenType|TriGraphTokenType),
92    T_ORASSIGN     = TOKEN_FROM_ID(261, OperatorTokenType),
93    T_ORASSIGN_ALT          = TOKEN_FROM_ID(261, OperatorTokenType|AltExtTokenType),
94    T_ORASSIGN_TRIGRAPH     = TOKEN_FROM_ID(261, OperatorTokenType|TriGraphTokenType),
95    T_XOR          = TOKEN_FROM_ID(262, OperatorTokenType),
96    T_XOR_ALT      = TOKEN_FROM_ID(262, OperatorTokenType|AltExtTokenType),
97    T_XOR_TRIGRAPH = TOKEN_FROM_ID(262, OperatorTokenType|TriGraphTokenType),
98    T_XORASSIGN    = TOKEN_FROM_ID(263, OperatorTokenType),
99    T_XORASSIGN_ALT         = TOKEN_FROM_ID(263, OperatorTokenType|AltExtTokenType),
100    T_XORASSIGN_TRIGRAPH    = TOKEN_FROM_ID(263, OperatorTokenType|TriGraphTokenType),
101    T_COMMA        = TOKEN_FROM_ID(264, OperatorTokenType),
102    T_COLON        = TOKEN_FROM_ID(265, OperatorTokenType),
103    T_DIVIDE       = TOKEN_FROM_ID(266, OperatorTokenType),
104    T_DIVIDEASSIGN = TOKEN_FROM_ID(267, OperatorTokenType),
105    T_DOT          = TOKEN_FROM_ID(268, OperatorTokenType),
106    T_DOTSTAR      = TOKEN_FROM_ID(269, OperatorTokenType),
107    T_ELLIPSIS     = TOKEN_FROM_ID(270, OperatorTokenType),
108    T_EQUAL        = TOKEN_FROM_ID(271, OperatorTokenType),
109    T_GREATER      = TOKEN_FROM_ID(272, OperatorTokenType),
110    T_GREATEREQUAL = TOKEN_FROM_ID(273, OperatorTokenType),
111    T_LEFTBRACE    = TOKEN_FROM_ID(274, OperatorTokenType),
112    T_LEFTBRACE_ALT         = TOKEN_FROM_ID(274, OperatorTokenType|AltTokenType),
113    T_LEFTBRACE_TRIGRAPH    = TOKEN_FROM_ID(274, OperatorTokenType|TriGraphTokenType),
114    T_LESS         = TOKEN_FROM_ID(275, OperatorTokenType),
115    T_LESSEQUAL    = TOKEN_FROM_ID(276, OperatorTokenType),
116    T_LEFTPAREN    = TOKEN_FROM_ID(277, OperatorTokenType),
117    T_LEFTBRACKET  = TOKEN_FROM_ID(278, OperatorTokenType),
118    T_LEFTBRACKET_ALT       = TOKEN_FROM_ID(278, OperatorTokenType|AltTokenType),
119    T_LEFTBRACKET_TRIGRAPH  = TOKEN_FROM_ID(278, OperatorTokenType|TriGraphTokenType),
120    T_MINUS        = TOKEN_FROM_ID(279, OperatorTokenType),
121    T_MINUSASSIGN  = TOKEN_FROM_ID(280, OperatorTokenType),
122    T_MINUSMINUS   = TOKEN_FROM_ID(281, OperatorTokenType),
123    T_PERCENT      = TOKEN_FROM_ID(282, OperatorTokenType),
124    T_PERCENTASSIGN = TOKEN_FROM_ID(283, OperatorTokenType),
125    T_NOT          = TOKEN_FROM_ID(284, OperatorTokenType),
126    T_NOT_ALT      = TOKEN_FROM_ID(284, OperatorTokenType|AltExtTokenType),
127    T_NOTEQUAL     = TOKEN_FROM_ID(285, OperatorTokenType),
128    T_NOTEQUAL_ALT      = TOKEN_FROM_ID(285, OperatorTokenType|AltExtTokenType),
129    T_OROR         = TOKEN_FROM_ID(286, OperatorTokenType),
130    T_OROR_ALT     = TOKEN_FROM_ID(286, OperatorTokenType|AltExtTokenType),
131    T_OROR_TRIGRAPH     = TOKEN_FROM_ID(286, OperatorTokenType|TriGraphTokenType),
132    T_PLUS         = TOKEN_FROM_ID(287, OperatorTokenType),
133    T_PLUSASSIGN   = TOKEN_FROM_ID(288, OperatorTokenType),
134    T_PLUSPLUS     = TOKEN_FROM_ID(289, OperatorTokenType),
135    T_ARROW        = TOKEN_FROM_ID(290, OperatorTokenType),
136    T_ARROWSTAR    = TOKEN_FROM_ID(291, OperatorTokenType),
137    T_QUESTION_MARK = TOKEN_FROM_ID(292, OperatorTokenType),
138    T_RIGHTBRACE   = TOKEN_FROM_ID(293, OperatorTokenType),
139    T_RIGHTBRACE_ALT        = TOKEN_FROM_ID(293, OperatorTokenType|AltTokenType),
140    T_RIGHTBRACE_TRIGRAPH   = TOKEN_FROM_ID(293, OperatorTokenType|TriGraphTokenType),
141    T_RIGHTPAREN   = TOKEN_FROM_ID(294, OperatorTokenType),
142    T_RIGHTBRACKET = TOKEN_FROM_ID(295, OperatorTokenType),
143    T_RIGHTBRACKET_ALT      = TOKEN_FROM_ID(295, OperatorTokenType|AltTokenType),
144    T_RIGHTBRACKET_TRIGRAPH = TOKEN_FROM_ID(295, OperatorTokenType|TriGraphTokenType),
145    T_COLON_COLON  = TOKEN_FROM_ID(296, OperatorTokenType),
146    T_SEMICOLON    = TOKEN_FROM_ID(297, OperatorTokenType),
147    T_SHIFTLEFT    = TOKEN_FROM_ID(298, OperatorTokenType),
148    T_SHIFTLEFTASSIGN = TOKEN_FROM_ID(299, OperatorTokenType),
149    T_SHIFTRIGHT   = TOKEN_FROM_ID(300, OperatorTokenType),
150    T_SHIFTRIGHTASSIGN = TOKEN_FROM_ID(301, OperatorTokenType),
151    T_STAR         = TOKEN_FROM_ID(302, OperatorTokenType),
152    T_COMPL        = TOKEN_FROM_ID(303, OperatorTokenType),
153    T_COMPL_ALT         = TOKEN_FROM_ID(303, OperatorTokenType|AltExtTokenType),
154    T_COMPL_TRIGRAPH    = TOKEN_FROM_ID(303, OperatorTokenType|TriGraphTokenType),
155    T_STARASSIGN   = TOKEN_FROM_ID(304, OperatorTokenType),
156    T_ASM          = TOKEN_FROM_ID(305, KeywordTokenType),
157    T_AUTO         = TOKEN_FROM_ID(306, KeywordTokenType),
158    T_BOOL         = TOKEN_FROM_ID(307, KeywordTokenType),
159    T_FALSE        = TOKEN_FROM_ID(308, BoolLiteralTokenType),
160    T_TRUE         = TOKEN_FROM_ID(309, BoolLiteralTokenType),
161    T_BREAK        = TOKEN_FROM_ID(310, KeywordTokenType),
162    T_CASE         = TOKEN_FROM_ID(311, KeywordTokenType),
163    T_CATCH        = TOKEN_FROM_ID(312, KeywordTokenType),
164    T_CHAR         = TOKEN_FROM_ID(313, KeywordTokenType),
165    T_CLASS        = TOKEN_FROM_ID(314, KeywordTokenType),
166    T_CONST        = TOKEN_FROM_ID(315, KeywordTokenType),
167    T_CONSTCAST    = TOKEN_FROM_ID(316, KeywordTokenType),
168    T_CONTINUE     = TOKEN_FROM_ID(317, KeywordTokenType),
169    T_DEFAULT      = TOKEN_FROM_ID(318, KeywordTokenType),
170    T_DEFINED      = TOKEN_FROM_ID(319, KeywordTokenType),
171    T_DELETE       = TOKEN_FROM_ID(320, KeywordTokenType),
172    T_DO           = TOKEN_FROM_ID(321, KeywordTokenType),
173    T_DOUBLE       = TOKEN_FROM_ID(322, KeywordTokenType),
174    T_DYNAMICCAST  = TOKEN_FROM_ID(323, KeywordTokenType),
175    T_ELSE         = TOKEN_FROM_ID(324, KeywordTokenType),
176    T_ENUM         = TOKEN_FROM_ID(325, KeywordTokenType),
177    T_EXPLICIT     = TOKEN_FROM_ID(326, KeywordTokenType),
178    T_EXPORT       = TOKEN_FROM_ID(327, KeywordTokenType),
179    T_EXTERN       = TOKEN_FROM_ID(328, KeywordTokenType),
180    T_FLOAT        = TOKEN_FROM_ID(329, KeywordTokenType),
181    T_FOR          = TOKEN_FROM_ID(330, KeywordTokenType),
182    T_FRIEND       = TOKEN_FROM_ID(331, KeywordTokenType),
183    T_GOTO         = TOKEN_FROM_ID(332, KeywordTokenType),
184    T_IF           = TOKEN_FROM_ID(333, KeywordTokenType),
185    T_INLINE       = TOKEN_FROM_ID(334, KeywordTokenType),
186    T_INT          = TOKEN_FROM_ID(335, KeywordTokenType),
187    T_LONG         = TOKEN_FROM_ID(336, KeywordTokenType),
188    T_MUTABLE      = TOKEN_FROM_ID(337, KeywordTokenType),
189    T_NAMESPACE    = TOKEN_FROM_ID(338, KeywordTokenType),
190    T_NEW          = TOKEN_FROM_ID(339, KeywordTokenType),
191    T_OPERATOR     = TOKEN_FROM_ID(340, KeywordTokenType),
192    T_PRIVATE      = TOKEN_FROM_ID(341, KeywordTokenType),
193    T_PROTECTED    = TOKEN_FROM_ID(342, KeywordTokenType),
194    T_PUBLIC       = TOKEN_FROM_ID(343, KeywordTokenType),
195    T_REGISTER     = TOKEN_FROM_ID(344, KeywordTokenType),
196    T_REINTERPRETCAST = TOKEN_FROM_ID(345, KeywordTokenType),
197    T_RETURN       = TOKEN_FROM_ID(346, KeywordTokenType),
198    T_SHORT        = TOKEN_FROM_ID(347, KeywordTokenType),
199    T_SIGNED       = TOKEN_FROM_ID(348, KeywordTokenType),
200    T_SIZEOF       = TOKEN_FROM_ID(349, KeywordTokenType),
201    T_STATIC       = TOKEN_FROM_ID(350, KeywordTokenType),
202    T_STATICCAST   = TOKEN_FROM_ID(351, KeywordTokenType),
203    T_STRUCT       = TOKEN_FROM_ID(352, KeywordTokenType),
204    T_SWITCH       = TOKEN_FROM_ID(353, KeywordTokenType),
205    T_TEMPLATE     = TOKEN_FROM_ID(354, KeywordTokenType),
206    T_THIS         = TOKEN_FROM_ID(355, KeywordTokenType),
207    T_THROW        = TOKEN_FROM_ID(356, KeywordTokenType),
208    T_TRY          = TOKEN_FROM_ID(357, KeywordTokenType),
209    T_TYPEDEF      = TOKEN_FROM_ID(358, KeywordTokenType),
210    T_TYPEID       = TOKEN_FROM_ID(359, KeywordTokenType),
211    T_TYPENAME     = TOKEN_FROM_ID(360, KeywordTokenType),
212    T_UNION        = TOKEN_FROM_ID(361, KeywordTokenType),
213    T_UNSIGNED     = TOKEN_FROM_ID(362, KeywordTokenType),
214    T_USING        = TOKEN_FROM_ID(363, KeywordTokenType),
215    T_VIRTUAL      = TOKEN_FROM_ID(364, KeywordTokenType),
216    T_VOID         = TOKEN_FROM_ID(365, KeywordTokenType),
217    T_VOLATILE     = TOKEN_FROM_ID(366, KeywordTokenType),
218    T_WCHART       = TOKEN_FROM_ID(367, KeywordTokenType),
219    T_WHILE        = TOKEN_FROM_ID(368, KeywordTokenType),
220    T_PP_DEFINE    = TOKEN_FROM_ID(369, PPTokenType),
221    T_PP_IF        = TOKEN_FROM_ID(370, PPConditionalTokenType),
222    T_PP_IFDEF     = TOKEN_FROM_ID(371, PPConditionalTokenType),
223    T_PP_IFNDEF    = TOKEN_FROM_ID(372, PPConditionalTokenType),
224    T_PP_ELSE      = TOKEN_FROM_ID(373, PPConditionalTokenType),
225    T_PP_ELIF      = TOKEN_FROM_ID(374, PPConditionalTokenType),
226    T_PP_ENDIF     = TOKEN_FROM_ID(375, PPConditionalTokenType),
227    T_PP_ERROR     = TOKEN_FROM_ID(376, PPTokenType),
228    T_PP_LINE      = TOKEN_FROM_ID(377, PPTokenType),
229    T_PP_PRAGMA    = TOKEN_FROM_ID(378, PPTokenType),
230    T_PP_UNDEF     = TOKEN_FROM_ID(379, PPTokenType),
231    T_PP_WARNING   = TOKEN_FROM_ID(380, PPTokenType),
232    T_IDENTIFIER   = TOKEN_FROM_ID(381, IdentifierTokenType),
233    T_OCTALINT     = TOKEN_FROM_ID(382, IntegerLiteralTokenType),
234    T_DECIMALINT   = TOKEN_FROM_ID(383, IntegerLiteralTokenType),
235    T_HEXAINT      = TOKEN_FROM_ID(384, IntegerLiteralTokenType),
236    T_INTLIT       = TOKEN_FROM_ID(385, IntegerLiteralTokenType),
237    T_LONGINTLIT   = TOKEN_FROM_ID(386, IntegerLiteralTokenType),
238    T_FLOATLIT     = TOKEN_FROM_ID(387, FloatingLiteralTokenType),
239    T_FIXEDPOINTLIT = TOKEN_FROM_ID(387, FloatingLiteralTokenType|AltTokenType),  // IDL specific
240    T_CCOMMENT     = TOKEN_FROM_ID(388, WhiteSpaceTokenType|AltTokenType),
241    T_CPPCOMMENT   = TOKEN_FROM_ID(389, WhiteSpaceTokenType|AltTokenType),
242    T_CHARLIT      = TOKEN_FROM_ID(390, CharacterLiteralTokenType),
243    T_STRINGLIT    = TOKEN_FROM_ID(391, StringLiteralTokenType),
244    T_CONTLINE     = TOKEN_FROM_ID(392, EOLTokenType),
245    T_SPACE        = TOKEN_FROM_ID(393, WhiteSpaceTokenType),
246    T_SPACE2       = TOKEN_FROM_ID(394, WhiteSpaceTokenType),
247    T_NEWLINE      = TOKEN_FROM_ID(395, EOLTokenType),
248    T_GENERATEDNEWLINE      = TOKEN_FROM_ID(395, EOLTokenType|AltTokenType),
249    T_POUND_POUND           = TOKEN_FROM_ID(396, OperatorTokenType),
250    T_POUND_POUND_ALT       = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType),
251    T_POUND_POUND_TRIGRAPH  = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType),
252    T_POUND                 = TOKEN_FROM_ID(397, OperatorTokenType),
253    T_POUND_ALT             = TOKEN_FROM_ID(397, OperatorTokenType|AltTokenType),
254    T_POUND_TRIGRAPH        = TOKEN_FROM_ID(397, OperatorTokenType|TriGraphTokenType),
255    T_ANY          = TOKEN_FROM_ID(398, UnknownTokenType),
256    T_ANY_TRIGRAPH = TOKEN_FROM_ID(398, UnknownTokenType|TriGraphTokenType),
257    T_PP_INCLUDE   = TOKEN_FROM_ID(399, PPTokenType),
258    T_PP_QHEADER   = TOKEN_FROM_ID(400, PPTokenType),
259    T_PP_HHEADER   = TOKEN_FROM_ID(401, PPTokenType),
260    T_PP_INCLUDE_NEXT   = TOKEN_FROM_ID(399, PPTokenType|AltTokenType),
261    T_PP_QHEADER_NEXT   = TOKEN_FROM_ID(400, PPTokenType|AltTokenType),
262    T_PP_HHEADER_NEXT   = TOKEN_FROM_ID(401, PPTokenType|AltTokenType),
263    T_EOF          = TOKEN_FROM_ID(402, EOFTokenType),      // end of file reached
264    T_EOI          = TOKEN_FROM_ID(403, EOFTokenType),      // end of input reached
265    T_PP_NUMBER    = TOKEN_FROM_ID(404, InternalTokenType),
266   
267// MS extensions
268    T_MSEXT_INT8   = TOKEN_FROM_ID(405, KeywordTokenType),
269    T_MSEXT_INT16  = TOKEN_FROM_ID(406, KeywordTokenType),
270    T_MSEXT_INT32  = TOKEN_FROM_ID(407, KeywordTokenType),
271    T_MSEXT_INT64  = TOKEN_FROM_ID(408, KeywordTokenType),
272    T_MSEXT_BASED  = TOKEN_FROM_ID(409, KeywordTokenType),
273    T_MSEXT_DECLSPEC = TOKEN_FROM_ID(410, KeywordTokenType),
274    T_MSEXT_CDECL  = TOKEN_FROM_ID(411, KeywordTokenType),
275    T_MSEXT_FASTCALL = TOKEN_FROM_ID(412, KeywordTokenType),
276    T_MSEXT_STDCALL = TOKEN_FROM_ID(413, KeywordTokenType),
277    T_MSEXT_TRY    = TOKEN_FROM_ID(414, KeywordTokenType),
278    T_MSEXT_EXCEPT = TOKEN_FROM_ID(415, KeywordTokenType),
279    T_MSEXT_FINALLY = TOKEN_FROM_ID(416, KeywordTokenType),
280    T_MSEXT_LEAVE  = TOKEN_FROM_ID(417, KeywordTokenType),
281    T_MSEXT_INLINE = TOKEN_FROM_ID(418, KeywordTokenType),
282    T_MSEXT_ASM    = TOKEN_FROM_ID(419, KeywordTokenType),
283
284    T_MSEXT_PP_REGION    = TOKEN_FROM_ID(420, PPTokenType),
285    T_MSEXT_PP_ENDREGION = TOKEN_FROM_ID(421, PPTokenType),
286   
287    T_LAST_TOKEN_ID,
288    T_LAST_TOKEN = ID_FROM_TOKEN(T_LAST_TOKEN_ID),
289   
290// pseudo tokens to help streamlining macro replacement, these should not
291// returned from the lexer nor should these be returned from the pp-iterator
292    T_NONREPLACABLE_IDENTIFIER = TOKEN_FROM_ID(T_LAST_TOKEN+1, IdentifierTokenType),
293    T_PLACEHOLDER = TOKEN_FROM_ID(T_LAST_TOKEN+2, WhiteSpaceTokenType),
294    T_PLACEMARKER = TOKEN_FROM_ID(T_LAST_TOKEN+3, InternalTokenType),
295    T_PARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, ParameterTokenType),
296    T_EXTPARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+5, ExtParameterTokenType)
297};
298
299///////////////////////////////////////////////////////////////////////////////
300//  redefine the TOKEN_FROM_ID macro to be more type safe
301#undef TOKEN_FROM_ID
302#define TOKEN_FROM_ID(id, cat)   boost::wave::token_id((id) | (cat))
303
304#undef ID_FROM_TOKEN
305#define ID_FROM_TOKEN(tok)       ((tok) & ~boost::wave::TokenTypeMask)
306
307#undef BASEID_FROM_TOKEN
308#define BASEID_FROM_TOKEN(tok)                                                \
309    boost::wave::token_id(((tok) & ~boost::wave::ExtTokenTypeMask))           \
310    /**/
311#define BASE_TOKEN(tok)                                                       \
312    boost::wave::token_id((tok) & boost::wave::MainTokenMask)                 \
313    /**/
314#define CATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::TokenTypeMask)
315#define EXTCATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::ExtTokenTypeMask)
316#define IS_CATEGORY(tok, cat)                                                 \
317    ((CATEGORY_FROM_TOKEN(tok) == (cat)) ? true : false)                      \
318    /**/
319#define IS_EXTCATEGORY(tok, cat)                                              \
320    ((EXTCATEGORY_FROM_TOKEN(tok) == (cat)) ? true : false)                   \
321    /**/
322
323///////////////////////////////////////////////////////////////////////////////
324//  return a token name
325BOOST_WAVE_DECL
326BOOST_WAVE_STRINGTYPE get_token_name(token_id tokid);
327
328///////////////////////////////////////////////////////////////////////////////
329//  return a token name
330BOOST_WAVE_DECL
331char const *get_token_value(token_id tokid);
332
333///////////////////////////////////////////////////////////////////////////////
334}   // namespace wave
335}   // namespace boost
336
337#endif // #if !defined(BOOST_WAVE_TOKEN_IDS_DEFINED)
338
339// the suffix header occurs after all of the code
340#ifdef BOOST_HAS_ABI_HEADERS
341#include BOOST_ABI_SUFFIX
342#endif
343
344#endif // !defined(TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED)
345
Note: See TracBrowser for help on using the repository browser.