1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/wave/token_ids.hpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,345 @@
1.4 +/*=============================================================================
1.5 + Boost.Wave: A Standard compliant C++ preprocessor library
1.6 + The definition of a default set of token identifiers and related
1.7 + functions.
1.8 +
1.9 + http://www.boost.org/
1.10 +
1.11 + Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
1.12 + Software License, Version 1.0. (See accompanying file
1.13 + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
1.14 +=============================================================================*/
1.15 +
1.16 +#if !defined(TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED)
1.17 +#define TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED
1.18 +
1.19 +#include <string>
1.20 +
1.21 +#include <boost/wave/wave_config.hpp>
1.22 +
1.23 +// this must occur after all of the includes and before any code appears
1.24 +#ifdef BOOST_HAS_ABI_HEADERS
1.25 +#include BOOST_ABI_PREFIX
1.26 +#endif
1.27 +
1.28 +///////////////////////////////////////////////////////////////////////////////
1.29 +// Allow external redefinition of the token identifiers to use
1.30 +#if !defined(BOOST_WAVE_TOKEN_IDS_DEFINED)
1.31 +#define BOOST_WAVE_TOKEN_IDS_DEFINED
1.32 +
1.33 +#if defined (__FreeBSD__) && defined (T_DIVIDE)
1.34 +#undef T_DIVIDE
1.35 +#endif
1.36 +
1.37 +///////////////////////////////////////////////////////////////////////////////
1.38 +namespace boost {
1.39 +namespace wave {
1.40 +
1.41 +///////////////////////////////////////////////////////////////////////////////
1.42 +// assemble tokenid's
1.43 +#define TOKEN_FROM_ID(id, cat) ((id) | (cat))
1.44 +#define ID_FROM_TOKEN(tok) ((tok) & ~TokenTypeMask)
1.45 +#define BASEID_FROM_TOKEN(tok) ((tok) & ~ExtTokenTypeMask)
1.46 +
1.47 +///////////////////////////////////////////////////////////////////////////////
1.48 +// the token_category helps to classify the different token types
1.49 +enum token_category {
1.50 + IdentifierTokenType = 0x10000000,
1.51 + ParameterTokenType = 0x11000000,
1.52 + ExtParameterTokenType = 0x11100000,
1.53 + KeywordTokenType = 0x20000000,
1.54 + OperatorTokenType = 0x30000000,
1.55 + LiteralTokenType = 0x40000000,
1.56 + IntegerLiteralTokenType = 0x41000000,
1.57 + FloatingLiteralTokenType = 0x42000000,
1.58 + StringLiteralTokenType = 0x43000000,
1.59 + CharacterLiteralTokenType = 0x44000000,
1.60 + BoolLiteralTokenType = 0x45000000,
1.61 + PPTokenType = 0x50000000,
1.62 + PPConditionalTokenType = 0x50800000,
1.63 +
1.64 + UnknownTokenType = 0xA0000000,
1.65 + EOLTokenType = 0xB0000000,
1.66 + EOFTokenType = 0xC0000000,
1.67 + WhiteSpaceTokenType = 0xD0000000,
1.68 + InternalTokenType = 0xE0000000,
1.69 +
1.70 + TokenTypeMask = 0xFF000000,
1.71 + AltTokenType = 0x00100000,
1.72 + TriGraphTokenType = 0x00200000,
1.73 + AltExtTokenType = 0x00500000, // and, bit_and etc.
1.74 + ExtTokenTypeMask = 0xFFF00000,
1.75 + ExtTokenOnlyMask = 0x00F00000,
1.76 + TokenValueMask = 0x000FFFFF,
1.77 + MainTokenMask = 0xFF0FFFFF // TokenTypeMask|TokenValueMask
1.78 +};
1.79 +
1.80 +///////////////////////////////////////////////////////////////////////////////
1.81 +// the token_id assigns unique numbers to the different C++ lexemes
1.82 +enum token_id {
1.83 + T_UNKNOWN = 0,
1.84 + T_FIRST_TOKEN = 256,
1.85 + T_AND = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType),
1.86 + T_AND_ALT = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType|AltExtTokenType),
1.87 + T_ANDAND = TOKEN_FROM_ID(257, OperatorTokenType),
1.88 + T_ANDAND_ALT = TOKEN_FROM_ID(257, OperatorTokenType|AltExtTokenType),
1.89 + T_ASSIGN = TOKEN_FROM_ID(258, OperatorTokenType),
1.90 + T_ANDASSIGN = TOKEN_FROM_ID(259, OperatorTokenType),
1.91 + T_ANDASSIGN_ALT = TOKEN_FROM_ID(259, OperatorTokenType|AltExtTokenType),
1.92 + T_OR = TOKEN_FROM_ID(260, OperatorTokenType),
1.93 + T_OR_ALT = TOKEN_FROM_ID(260, OperatorTokenType|AltExtTokenType),
1.94 + T_OR_TRIGRAPH = TOKEN_FROM_ID(260, OperatorTokenType|TriGraphTokenType),
1.95 + T_ORASSIGN = TOKEN_FROM_ID(261, OperatorTokenType),
1.96 + T_ORASSIGN_ALT = TOKEN_FROM_ID(261, OperatorTokenType|AltExtTokenType),
1.97 + T_ORASSIGN_TRIGRAPH = TOKEN_FROM_ID(261, OperatorTokenType|TriGraphTokenType),
1.98 + T_XOR = TOKEN_FROM_ID(262, OperatorTokenType),
1.99 + T_XOR_ALT = TOKEN_FROM_ID(262, OperatorTokenType|AltExtTokenType),
1.100 + T_XOR_TRIGRAPH = TOKEN_FROM_ID(262, OperatorTokenType|TriGraphTokenType),
1.101 + T_XORASSIGN = TOKEN_FROM_ID(263, OperatorTokenType),
1.102 + T_XORASSIGN_ALT = TOKEN_FROM_ID(263, OperatorTokenType|AltExtTokenType),
1.103 + T_XORASSIGN_TRIGRAPH = TOKEN_FROM_ID(263, OperatorTokenType|TriGraphTokenType),
1.104 + T_COMMA = TOKEN_FROM_ID(264, OperatorTokenType),
1.105 + T_COLON = TOKEN_FROM_ID(265, OperatorTokenType),
1.106 + T_DIVIDE = TOKEN_FROM_ID(266, OperatorTokenType),
1.107 + T_DIVIDEASSIGN = TOKEN_FROM_ID(267, OperatorTokenType),
1.108 + T_DOT = TOKEN_FROM_ID(268, OperatorTokenType),
1.109 + T_DOTSTAR = TOKEN_FROM_ID(269, OperatorTokenType),
1.110 + T_ELLIPSIS = TOKEN_FROM_ID(270, OperatorTokenType),
1.111 + T_EQUAL = TOKEN_FROM_ID(271, OperatorTokenType),
1.112 + T_GREATER = TOKEN_FROM_ID(272, OperatorTokenType),
1.113 + T_GREATEREQUAL = TOKEN_FROM_ID(273, OperatorTokenType),
1.114 + T_LEFTBRACE = TOKEN_FROM_ID(274, OperatorTokenType),
1.115 + T_LEFTBRACE_ALT = TOKEN_FROM_ID(274, OperatorTokenType|AltTokenType),
1.116 + T_LEFTBRACE_TRIGRAPH = TOKEN_FROM_ID(274, OperatorTokenType|TriGraphTokenType),
1.117 + T_LESS = TOKEN_FROM_ID(275, OperatorTokenType),
1.118 + T_LESSEQUAL = TOKEN_FROM_ID(276, OperatorTokenType),
1.119 + T_LEFTPAREN = TOKEN_FROM_ID(277, OperatorTokenType),
1.120 + T_LEFTBRACKET = TOKEN_FROM_ID(278, OperatorTokenType),
1.121 + T_LEFTBRACKET_ALT = TOKEN_FROM_ID(278, OperatorTokenType|AltTokenType),
1.122 + T_LEFTBRACKET_TRIGRAPH = TOKEN_FROM_ID(278, OperatorTokenType|TriGraphTokenType),
1.123 + T_MINUS = TOKEN_FROM_ID(279, OperatorTokenType),
1.124 + T_MINUSASSIGN = TOKEN_FROM_ID(280, OperatorTokenType),
1.125 + T_MINUSMINUS = TOKEN_FROM_ID(281, OperatorTokenType),
1.126 + T_PERCENT = TOKEN_FROM_ID(282, OperatorTokenType),
1.127 + T_PERCENTASSIGN = TOKEN_FROM_ID(283, OperatorTokenType),
1.128 + T_NOT = TOKEN_FROM_ID(284, OperatorTokenType),
1.129 + T_NOT_ALT = TOKEN_FROM_ID(284, OperatorTokenType|AltExtTokenType),
1.130 + T_NOTEQUAL = TOKEN_FROM_ID(285, OperatorTokenType),
1.131 + T_NOTEQUAL_ALT = TOKEN_FROM_ID(285, OperatorTokenType|AltExtTokenType),
1.132 + T_OROR = TOKEN_FROM_ID(286, OperatorTokenType),
1.133 + T_OROR_ALT = TOKEN_FROM_ID(286, OperatorTokenType|AltExtTokenType),
1.134 + T_OROR_TRIGRAPH = TOKEN_FROM_ID(286, OperatorTokenType|TriGraphTokenType),
1.135 + T_PLUS = TOKEN_FROM_ID(287, OperatorTokenType),
1.136 + T_PLUSASSIGN = TOKEN_FROM_ID(288, OperatorTokenType),
1.137 + T_PLUSPLUS = TOKEN_FROM_ID(289, OperatorTokenType),
1.138 + T_ARROW = TOKEN_FROM_ID(290, OperatorTokenType),
1.139 + T_ARROWSTAR = TOKEN_FROM_ID(291, OperatorTokenType),
1.140 + T_QUESTION_MARK = TOKEN_FROM_ID(292, OperatorTokenType),
1.141 + T_RIGHTBRACE = TOKEN_FROM_ID(293, OperatorTokenType),
1.142 + T_RIGHTBRACE_ALT = TOKEN_FROM_ID(293, OperatorTokenType|AltTokenType),
1.143 + T_RIGHTBRACE_TRIGRAPH = TOKEN_FROM_ID(293, OperatorTokenType|TriGraphTokenType),
1.144 + T_RIGHTPAREN = TOKEN_FROM_ID(294, OperatorTokenType),
1.145 + T_RIGHTBRACKET = TOKEN_FROM_ID(295, OperatorTokenType),
1.146 + T_RIGHTBRACKET_ALT = TOKEN_FROM_ID(295, OperatorTokenType|AltTokenType),
1.147 + T_RIGHTBRACKET_TRIGRAPH = TOKEN_FROM_ID(295, OperatorTokenType|TriGraphTokenType),
1.148 + T_COLON_COLON = TOKEN_FROM_ID(296, OperatorTokenType),
1.149 + T_SEMICOLON = TOKEN_FROM_ID(297, OperatorTokenType),
1.150 + T_SHIFTLEFT = TOKEN_FROM_ID(298, OperatorTokenType),
1.151 + T_SHIFTLEFTASSIGN = TOKEN_FROM_ID(299, OperatorTokenType),
1.152 + T_SHIFTRIGHT = TOKEN_FROM_ID(300, OperatorTokenType),
1.153 + T_SHIFTRIGHTASSIGN = TOKEN_FROM_ID(301, OperatorTokenType),
1.154 + T_STAR = TOKEN_FROM_ID(302, OperatorTokenType),
1.155 + T_COMPL = TOKEN_FROM_ID(303, OperatorTokenType),
1.156 + T_COMPL_ALT = TOKEN_FROM_ID(303, OperatorTokenType|AltExtTokenType),
1.157 + T_COMPL_TRIGRAPH = TOKEN_FROM_ID(303, OperatorTokenType|TriGraphTokenType),
1.158 + T_STARASSIGN = TOKEN_FROM_ID(304, OperatorTokenType),
1.159 + T_ASM = TOKEN_FROM_ID(305, KeywordTokenType),
1.160 + T_AUTO = TOKEN_FROM_ID(306, KeywordTokenType),
1.161 + T_BOOL = TOKEN_FROM_ID(307, KeywordTokenType),
1.162 + T_FALSE = TOKEN_FROM_ID(308, BoolLiteralTokenType),
1.163 + T_TRUE = TOKEN_FROM_ID(309, BoolLiteralTokenType),
1.164 + T_BREAK = TOKEN_FROM_ID(310, KeywordTokenType),
1.165 + T_CASE = TOKEN_FROM_ID(311, KeywordTokenType),
1.166 + T_CATCH = TOKEN_FROM_ID(312, KeywordTokenType),
1.167 + T_CHAR = TOKEN_FROM_ID(313, KeywordTokenType),
1.168 + T_CLASS = TOKEN_FROM_ID(314, KeywordTokenType),
1.169 + T_CONST = TOKEN_FROM_ID(315, KeywordTokenType),
1.170 + T_CONSTCAST = TOKEN_FROM_ID(316, KeywordTokenType),
1.171 + T_CONTINUE = TOKEN_FROM_ID(317, KeywordTokenType),
1.172 + T_DEFAULT = TOKEN_FROM_ID(318, KeywordTokenType),
1.173 + T_DEFINED = TOKEN_FROM_ID(319, KeywordTokenType),
1.174 + T_DELETE = TOKEN_FROM_ID(320, KeywordTokenType),
1.175 + T_DO = TOKEN_FROM_ID(321, KeywordTokenType),
1.176 + T_DOUBLE = TOKEN_FROM_ID(322, KeywordTokenType),
1.177 + T_DYNAMICCAST = TOKEN_FROM_ID(323, KeywordTokenType),
1.178 + T_ELSE = TOKEN_FROM_ID(324, KeywordTokenType),
1.179 + T_ENUM = TOKEN_FROM_ID(325, KeywordTokenType),
1.180 + T_EXPLICIT = TOKEN_FROM_ID(326, KeywordTokenType),
1.181 + T_EXPORT = TOKEN_FROM_ID(327, KeywordTokenType),
1.182 + T_EXTERN = TOKEN_FROM_ID(328, KeywordTokenType),
1.183 + T_FLOAT = TOKEN_FROM_ID(329, KeywordTokenType),
1.184 + T_FOR = TOKEN_FROM_ID(330, KeywordTokenType),
1.185 + T_FRIEND = TOKEN_FROM_ID(331, KeywordTokenType),
1.186 + T_GOTO = TOKEN_FROM_ID(332, KeywordTokenType),
1.187 + T_IF = TOKEN_FROM_ID(333, KeywordTokenType),
1.188 + T_INLINE = TOKEN_FROM_ID(334, KeywordTokenType),
1.189 + T_INT = TOKEN_FROM_ID(335, KeywordTokenType),
1.190 + T_LONG = TOKEN_FROM_ID(336, KeywordTokenType),
1.191 + T_MUTABLE = TOKEN_FROM_ID(337, KeywordTokenType),
1.192 + T_NAMESPACE = TOKEN_FROM_ID(338, KeywordTokenType),
1.193 + T_NEW = TOKEN_FROM_ID(339, KeywordTokenType),
1.194 + T_OPERATOR = TOKEN_FROM_ID(340, KeywordTokenType),
1.195 + T_PRIVATE = TOKEN_FROM_ID(341, KeywordTokenType),
1.196 + T_PROTECTED = TOKEN_FROM_ID(342, KeywordTokenType),
1.197 + T_PUBLIC = TOKEN_FROM_ID(343, KeywordTokenType),
1.198 + T_REGISTER = TOKEN_FROM_ID(344, KeywordTokenType),
1.199 + T_REINTERPRETCAST = TOKEN_FROM_ID(345, KeywordTokenType),
1.200 + T_RETURN = TOKEN_FROM_ID(346, KeywordTokenType),
1.201 + T_SHORT = TOKEN_FROM_ID(347, KeywordTokenType),
1.202 + T_SIGNED = TOKEN_FROM_ID(348, KeywordTokenType),
1.203 + T_SIZEOF = TOKEN_FROM_ID(349, KeywordTokenType),
1.204 + T_STATIC = TOKEN_FROM_ID(350, KeywordTokenType),
1.205 + T_STATICCAST = TOKEN_FROM_ID(351, KeywordTokenType),
1.206 + T_STRUCT = TOKEN_FROM_ID(352, KeywordTokenType),
1.207 + T_SWITCH = TOKEN_FROM_ID(353, KeywordTokenType),
1.208 + T_TEMPLATE = TOKEN_FROM_ID(354, KeywordTokenType),
1.209 + T_THIS = TOKEN_FROM_ID(355, KeywordTokenType),
1.210 + T_THROW = TOKEN_FROM_ID(356, KeywordTokenType),
1.211 + T_TRY = TOKEN_FROM_ID(357, KeywordTokenType),
1.212 + T_TYPEDEF = TOKEN_FROM_ID(358, KeywordTokenType),
1.213 + T_TYPEID = TOKEN_FROM_ID(359, KeywordTokenType),
1.214 + T_TYPENAME = TOKEN_FROM_ID(360, KeywordTokenType),
1.215 + T_UNION = TOKEN_FROM_ID(361, KeywordTokenType),
1.216 + T_UNSIGNED = TOKEN_FROM_ID(362, KeywordTokenType),
1.217 + T_USING = TOKEN_FROM_ID(363, KeywordTokenType),
1.218 + T_VIRTUAL = TOKEN_FROM_ID(364, KeywordTokenType),
1.219 + T_VOID = TOKEN_FROM_ID(365, KeywordTokenType),
1.220 + T_VOLATILE = TOKEN_FROM_ID(366, KeywordTokenType),
1.221 + T_WCHART = TOKEN_FROM_ID(367, KeywordTokenType),
1.222 + T_WHILE = TOKEN_FROM_ID(368, KeywordTokenType),
1.223 + T_PP_DEFINE = TOKEN_FROM_ID(369, PPTokenType),
1.224 + T_PP_IF = TOKEN_FROM_ID(370, PPConditionalTokenType),
1.225 + T_PP_IFDEF = TOKEN_FROM_ID(371, PPConditionalTokenType),
1.226 + T_PP_IFNDEF = TOKEN_FROM_ID(372, PPConditionalTokenType),
1.227 + T_PP_ELSE = TOKEN_FROM_ID(373, PPConditionalTokenType),
1.228 + T_PP_ELIF = TOKEN_FROM_ID(374, PPConditionalTokenType),
1.229 + T_PP_ENDIF = TOKEN_FROM_ID(375, PPConditionalTokenType),
1.230 + T_PP_ERROR = TOKEN_FROM_ID(376, PPTokenType),
1.231 + T_PP_LINE = TOKEN_FROM_ID(377, PPTokenType),
1.232 + T_PP_PRAGMA = TOKEN_FROM_ID(378, PPTokenType),
1.233 + T_PP_UNDEF = TOKEN_FROM_ID(379, PPTokenType),
1.234 + T_PP_WARNING = TOKEN_FROM_ID(380, PPTokenType),
1.235 + T_IDENTIFIER = TOKEN_FROM_ID(381, IdentifierTokenType),
1.236 + T_OCTALINT = TOKEN_FROM_ID(382, IntegerLiteralTokenType),
1.237 + T_DECIMALINT = TOKEN_FROM_ID(383, IntegerLiteralTokenType),
1.238 + T_HEXAINT = TOKEN_FROM_ID(384, IntegerLiteralTokenType),
1.239 + T_INTLIT = TOKEN_FROM_ID(385, IntegerLiteralTokenType),
1.240 + T_LONGINTLIT = TOKEN_FROM_ID(386, IntegerLiteralTokenType),
1.241 + T_FLOATLIT = TOKEN_FROM_ID(387, FloatingLiteralTokenType),
1.242 + T_FIXEDPOINTLIT = TOKEN_FROM_ID(387, FloatingLiteralTokenType|AltTokenType), // IDL specific
1.243 + T_CCOMMENT = TOKEN_FROM_ID(388, WhiteSpaceTokenType|AltTokenType),
1.244 + T_CPPCOMMENT = TOKEN_FROM_ID(389, WhiteSpaceTokenType|AltTokenType),
1.245 + T_CHARLIT = TOKEN_FROM_ID(390, CharacterLiteralTokenType),
1.246 + T_STRINGLIT = TOKEN_FROM_ID(391, StringLiteralTokenType),
1.247 + T_CONTLINE = TOKEN_FROM_ID(392, EOLTokenType),
1.248 + T_SPACE = TOKEN_FROM_ID(393, WhiteSpaceTokenType),
1.249 + T_SPACE2 = TOKEN_FROM_ID(394, WhiteSpaceTokenType),
1.250 + T_NEWLINE = TOKEN_FROM_ID(395, EOLTokenType),
1.251 + T_GENERATEDNEWLINE = TOKEN_FROM_ID(395, EOLTokenType|AltTokenType),
1.252 + T_POUND_POUND = TOKEN_FROM_ID(396, OperatorTokenType),
1.253 + T_POUND_POUND_ALT = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType),
1.254 + T_POUND_POUND_TRIGRAPH = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType),
1.255 + T_POUND = TOKEN_FROM_ID(397, OperatorTokenType),
1.256 + T_POUND_ALT = TOKEN_FROM_ID(397, OperatorTokenType|AltTokenType),
1.257 + T_POUND_TRIGRAPH = TOKEN_FROM_ID(397, OperatorTokenType|TriGraphTokenType),
1.258 + T_ANY = TOKEN_FROM_ID(398, UnknownTokenType),
1.259 + T_ANY_TRIGRAPH = TOKEN_FROM_ID(398, UnknownTokenType|TriGraphTokenType),
1.260 + T_PP_INCLUDE = TOKEN_FROM_ID(399, PPTokenType),
1.261 + T_PP_QHEADER = TOKEN_FROM_ID(400, PPTokenType),
1.262 + T_PP_HHEADER = TOKEN_FROM_ID(401, PPTokenType),
1.263 + T_PP_INCLUDE_NEXT = TOKEN_FROM_ID(399, PPTokenType|AltTokenType),
1.264 + T_PP_QHEADER_NEXT = TOKEN_FROM_ID(400, PPTokenType|AltTokenType),
1.265 + T_PP_HHEADER_NEXT = TOKEN_FROM_ID(401, PPTokenType|AltTokenType),
1.266 + T_EOF = TOKEN_FROM_ID(402, EOFTokenType), // end of file reached
1.267 + T_EOI = TOKEN_FROM_ID(403, EOFTokenType), // end of input reached
1.268 + T_PP_NUMBER = TOKEN_FROM_ID(404, InternalTokenType),
1.269 +
1.270 +// MS extensions
1.271 + T_MSEXT_INT8 = TOKEN_FROM_ID(405, KeywordTokenType),
1.272 + T_MSEXT_INT16 = TOKEN_FROM_ID(406, KeywordTokenType),
1.273 + T_MSEXT_INT32 = TOKEN_FROM_ID(407, KeywordTokenType),
1.274 + T_MSEXT_INT64 = TOKEN_FROM_ID(408, KeywordTokenType),
1.275 + T_MSEXT_BASED = TOKEN_FROM_ID(409, KeywordTokenType),
1.276 + T_MSEXT_DECLSPEC = TOKEN_FROM_ID(410, KeywordTokenType),
1.277 + T_MSEXT_CDECL = TOKEN_FROM_ID(411, KeywordTokenType),
1.278 + T_MSEXT_FASTCALL = TOKEN_FROM_ID(412, KeywordTokenType),
1.279 + T_MSEXT_STDCALL = TOKEN_FROM_ID(413, KeywordTokenType),
1.280 + T_MSEXT_TRY = TOKEN_FROM_ID(414, KeywordTokenType),
1.281 + T_MSEXT_EXCEPT = TOKEN_FROM_ID(415, KeywordTokenType),
1.282 + T_MSEXT_FINALLY = TOKEN_FROM_ID(416, KeywordTokenType),
1.283 + T_MSEXT_LEAVE = TOKEN_FROM_ID(417, KeywordTokenType),
1.284 + T_MSEXT_INLINE = TOKEN_FROM_ID(418, KeywordTokenType),
1.285 + T_MSEXT_ASM = TOKEN_FROM_ID(419, KeywordTokenType),
1.286 +
1.287 + T_MSEXT_PP_REGION = TOKEN_FROM_ID(420, PPTokenType),
1.288 + T_MSEXT_PP_ENDREGION = TOKEN_FROM_ID(421, PPTokenType),
1.289 +
1.290 + T_LAST_TOKEN_ID,
1.291 + T_LAST_TOKEN = ID_FROM_TOKEN(T_LAST_TOKEN_ID),
1.292 +
1.293 +// pseudo tokens to help streamlining macro replacement, these should not
1.294 +// returned from the lexer nor should these be returned from the pp-iterator
1.295 + T_NONREPLACABLE_IDENTIFIER = TOKEN_FROM_ID(T_LAST_TOKEN+1, IdentifierTokenType),
1.296 + T_PLACEHOLDER = TOKEN_FROM_ID(T_LAST_TOKEN+2, WhiteSpaceTokenType),
1.297 + T_PLACEMARKER = TOKEN_FROM_ID(T_LAST_TOKEN+3, InternalTokenType),
1.298 + T_PARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, ParameterTokenType),
1.299 + T_EXTPARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+5, ExtParameterTokenType)
1.300 +};
1.301 +
1.302 +///////////////////////////////////////////////////////////////////////////////
1.303 +// redefine the TOKEN_FROM_ID macro to be more type safe
1.304 +#undef TOKEN_FROM_ID
1.305 +#define TOKEN_FROM_ID(id, cat) boost::wave::token_id((id) | (cat))
1.306 +
1.307 +#undef ID_FROM_TOKEN
1.308 +#define ID_FROM_TOKEN(tok) ((tok) & ~boost::wave::TokenTypeMask)
1.309 +
1.310 +#undef BASEID_FROM_TOKEN
1.311 +#define BASEID_FROM_TOKEN(tok) \
1.312 + boost::wave::token_id(((tok) & ~boost::wave::ExtTokenTypeMask)) \
1.313 + /**/
1.314 +#define BASE_TOKEN(tok) \
1.315 + boost::wave::token_id((tok) & boost::wave::MainTokenMask) \
1.316 + /**/
1.317 +#define CATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::TokenTypeMask)
1.318 +#define EXTCATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::ExtTokenTypeMask)
1.319 +#define IS_CATEGORY(tok, cat) \
1.320 + ((CATEGORY_FROM_TOKEN(tok) == (cat)) ? true : false) \
1.321 + /**/
1.322 +#define IS_EXTCATEGORY(tok, cat) \
1.323 + ((EXTCATEGORY_FROM_TOKEN(tok) == (cat)) ? true : false) \
1.324 + /**/
1.325 +
1.326 +///////////////////////////////////////////////////////////////////////////////
1.327 +// return a token name
1.328 +BOOST_WAVE_DECL
1.329 +BOOST_WAVE_STRINGTYPE get_token_name(token_id tokid);
1.330 +
1.331 +///////////////////////////////////////////////////////////////////////////////
1.332 +// return a token name
1.333 +BOOST_WAVE_DECL
1.334 +char const *get_token_value(token_id tokid);
1.335 +
1.336 +///////////////////////////////////////////////////////////////////////////////
1.337 +} // namespace wave
1.338 +} // namespace boost
1.339 +
1.340 +#endif // #if !defined(BOOST_WAVE_TOKEN_IDS_DEFINED)
1.341 +
1.342 +// the suffix header occurs after all of the code
1.343 +#ifdef BOOST_HAS_ABI_HEADERS
1.344 +#include BOOST_ABI_SUFFIX
1.345 +#endif
1.346 +
1.347 +#endif // !defined(TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED)
1.348 +