os/ossrv/ossrv_pub/boost_apis/boost/wave/token_ids.hpp
changeset 0 bde4ae8d615e
     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 +