File indexing completed on 2025-01-30 10:02:23
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #if !defined(BOOST_TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED)
0014 #define BOOST_TOKEN_IDS_HPP_414E9A58_F079_4789_8AFF_513815CE475B_INCLUDED
0015
0016 #include <string>
0017 #include <cstdint>
0018
0019 #include <boost/wave/wave_config.hpp>
0020
0021
0022 #ifdef BOOST_HAS_ABI_HEADERS
0023 #include BOOST_ABI_PREFIX
0024 #endif
0025
0026
0027
0028 #if !defined(BOOST_WAVE_TOKEN_IDS_DEFINED)
0029 #define BOOST_WAVE_TOKEN_IDS_DEFINED
0030
0031 #if (defined (__FreeBSD__) || defined (__DragonFly__) || defined (__OpenBSD__)) && defined (T_DIVIDE)
0032 #undef T_DIVIDE
0033 #endif
0034
0035
0036 namespace boost {
0037 namespace wave {
0038
0039
0040
0041 #define TOKEN_FROM_ID(id, cat) ((id) | (cat))
0042 #define ID_FROM_TOKEN(tok) ((tok) & ~TokenTypeMask)
0043 #define BASEID_FROM_TOKEN(tok) ((tok) & ~ExtTokenTypeMask)
0044
0045
0046
0047 enum token_category : std::uint32_t {
0048 IdentifierTokenType = 0x08040000,
0049 ParameterTokenType = 0x08840000,
0050 ExtParameterTokenType = 0x088C0000,
0051 OptParameterTokenType = 0x08940000,
0052 KeywordTokenType = 0x10040000,
0053 OperatorTokenType = 0x18040000,
0054 LiteralTokenType = 0x20040000,
0055 IntegerLiteralTokenType = 0x20840000,
0056 FloatingLiteralTokenType = 0x21040000,
0057 StringLiteralTokenType = 0x21840000,
0058 CharacterLiteralTokenType = 0x22040000,
0059 BoolLiteralTokenType = 0x22840000,
0060 PPTokenType = 0x28040000,
0061 PPConditionalTokenType = 0x28440000,
0062
0063 UnknownTokenType = 0x50000000,
0064 EOLTokenType = 0x58000000,
0065 EOFTokenType = 0x60000000,
0066 WhiteSpaceTokenType = 0x68000000,
0067 InternalTokenType = 0x70040000,
0068
0069 TokenTypeMask = 0x7F800000,
0070 AltTokenType = 0x00080000,
0071 TriGraphTokenType = 0x00100000,
0072 AltExtTokenType = 0x00280000,
0073 PPTokenFlag = 0x00040000,
0074 ExtTokenTypeMask = 0x7FF80000,
0075 ExtTokenOnlyMask = 0x00780000,
0076 TokenValueMask = 0x0007FFFF,
0077 MainTokenMask = 0x7F87FFFF
0078 };
0079
0080
0081
0082 enum token_id : std::uint32_t {
0083 T_UNKNOWN = 0,
0084 T_FIRST_TOKEN = 256,
0085 T_AND = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType),
0086 T_AND_ALT = TOKEN_FROM_ID(T_FIRST_TOKEN, OperatorTokenType|AltExtTokenType),
0087 T_ANDAND = TOKEN_FROM_ID(257, OperatorTokenType),
0088 T_ANDAND_ALT = TOKEN_FROM_ID(257, OperatorTokenType|AltExtTokenType),
0089 T_ASSIGN = TOKEN_FROM_ID(258, OperatorTokenType),
0090 T_ANDASSIGN = TOKEN_FROM_ID(259, OperatorTokenType),
0091 T_ANDASSIGN_ALT = TOKEN_FROM_ID(259, OperatorTokenType|AltExtTokenType),
0092 T_OR = TOKEN_FROM_ID(260, OperatorTokenType),
0093 T_OR_ALT = TOKEN_FROM_ID(260, OperatorTokenType|AltExtTokenType),
0094 T_OR_TRIGRAPH = TOKEN_FROM_ID(260, OperatorTokenType|TriGraphTokenType),
0095 T_ORASSIGN = TOKEN_FROM_ID(261, OperatorTokenType),
0096 T_ORASSIGN_ALT = TOKEN_FROM_ID(261, OperatorTokenType|AltExtTokenType),
0097 T_ORASSIGN_TRIGRAPH = TOKEN_FROM_ID(261, OperatorTokenType|TriGraphTokenType),
0098 T_XOR = TOKEN_FROM_ID(262, OperatorTokenType),
0099 T_XOR_ALT = TOKEN_FROM_ID(262, OperatorTokenType|AltExtTokenType),
0100 T_XOR_TRIGRAPH = TOKEN_FROM_ID(262, OperatorTokenType|TriGraphTokenType),
0101 T_XORASSIGN = TOKEN_FROM_ID(263, OperatorTokenType),
0102 T_XORASSIGN_ALT = TOKEN_FROM_ID(263, OperatorTokenType|AltExtTokenType),
0103 T_XORASSIGN_TRIGRAPH = TOKEN_FROM_ID(263, OperatorTokenType|TriGraphTokenType),
0104 T_COMMA = TOKEN_FROM_ID(264, OperatorTokenType),
0105 T_COLON = TOKEN_FROM_ID(265, OperatorTokenType),
0106 T_DIVIDE = TOKEN_FROM_ID(266, OperatorTokenType),
0107 T_DIVIDEASSIGN = TOKEN_FROM_ID(267, OperatorTokenType),
0108 T_DOT = TOKEN_FROM_ID(268, OperatorTokenType),
0109 T_DOTSTAR = TOKEN_FROM_ID(269, OperatorTokenType),
0110 T_ELLIPSIS = TOKEN_FROM_ID(270, OperatorTokenType),
0111 T_EQUAL = TOKEN_FROM_ID(271, OperatorTokenType),
0112 T_GREATER = TOKEN_FROM_ID(272, OperatorTokenType),
0113 T_GREATEREQUAL = TOKEN_FROM_ID(273, OperatorTokenType),
0114 T_LEFTBRACE = TOKEN_FROM_ID(274, OperatorTokenType),
0115 T_LEFTBRACE_ALT = TOKEN_FROM_ID(274, OperatorTokenType|AltTokenType),
0116 T_LEFTBRACE_TRIGRAPH = TOKEN_FROM_ID(274, OperatorTokenType|TriGraphTokenType),
0117 T_LESS = TOKEN_FROM_ID(275, OperatorTokenType),
0118 T_LESSEQUAL = TOKEN_FROM_ID(276, OperatorTokenType),
0119 T_LEFTPAREN = TOKEN_FROM_ID(277, OperatorTokenType),
0120 T_LEFTBRACKET = TOKEN_FROM_ID(278, OperatorTokenType),
0121 T_LEFTBRACKET_ALT = TOKEN_FROM_ID(278, OperatorTokenType|AltTokenType),
0122 T_LEFTBRACKET_TRIGRAPH = TOKEN_FROM_ID(278, OperatorTokenType|TriGraphTokenType),
0123 T_MINUS = TOKEN_FROM_ID(279, OperatorTokenType),
0124 T_MINUSASSIGN = TOKEN_FROM_ID(280, OperatorTokenType),
0125 T_MINUSMINUS = TOKEN_FROM_ID(281, OperatorTokenType),
0126 T_PERCENT = TOKEN_FROM_ID(282, OperatorTokenType),
0127 T_PERCENTASSIGN = TOKEN_FROM_ID(283, OperatorTokenType),
0128 T_NOT = TOKEN_FROM_ID(284, OperatorTokenType),
0129 T_NOT_ALT = TOKEN_FROM_ID(284, OperatorTokenType|AltExtTokenType),
0130 T_NOTEQUAL = TOKEN_FROM_ID(285, OperatorTokenType),
0131 T_NOTEQUAL_ALT = TOKEN_FROM_ID(285, OperatorTokenType|AltExtTokenType),
0132 T_OROR = TOKEN_FROM_ID(286, OperatorTokenType),
0133 T_OROR_ALT = TOKEN_FROM_ID(286, OperatorTokenType|AltExtTokenType),
0134 T_OROR_TRIGRAPH = TOKEN_FROM_ID(286, OperatorTokenType|TriGraphTokenType),
0135 T_PLUS = TOKEN_FROM_ID(287, OperatorTokenType),
0136 T_PLUSASSIGN = TOKEN_FROM_ID(288, OperatorTokenType),
0137 T_PLUSPLUS = TOKEN_FROM_ID(289, OperatorTokenType),
0138 T_ARROW = TOKEN_FROM_ID(290, OperatorTokenType),
0139 T_ARROWSTAR = TOKEN_FROM_ID(291, OperatorTokenType),
0140 T_QUESTION_MARK = TOKEN_FROM_ID(292, OperatorTokenType),
0141 T_RIGHTBRACE = TOKEN_FROM_ID(293, OperatorTokenType),
0142 T_RIGHTBRACE_ALT = TOKEN_FROM_ID(293, OperatorTokenType|AltTokenType),
0143 T_RIGHTBRACE_TRIGRAPH = TOKEN_FROM_ID(293, OperatorTokenType|TriGraphTokenType),
0144 T_RIGHTPAREN = TOKEN_FROM_ID(294, OperatorTokenType),
0145 T_RIGHTBRACKET = TOKEN_FROM_ID(295, OperatorTokenType),
0146 T_RIGHTBRACKET_ALT = TOKEN_FROM_ID(295, OperatorTokenType|AltTokenType),
0147 T_RIGHTBRACKET_TRIGRAPH = TOKEN_FROM_ID(295, OperatorTokenType|TriGraphTokenType),
0148 T_COLON_COLON = TOKEN_FROM_ID(296, OperatorTokenType),
0149 T_SEMICOLON = TOKEN_FROM_ID(297, OperatorTokenType),
0150 T_SHIFTLEFT = TOKEN_FROM_ID(298, OperatorTokenType),
0151 T_SHIFTLEFTASSIGN = TOKEN_FROM_ID(299, OperatorTokenType),
0152 T_SHIFTRIGHT = TOKEN_FROM_ID(300, OperatorTokenType),
0153 T_SHIFTRIGHTASSIGN = TOKEN_FROM_ID(301, OperatorTokenType),
0154 T_STAR = TOKEN_FROM_ID(302, OperatorTokenType),
0155 T_COMPL = TOKEN_FROM_ID(303, OperatorTokenType),
0156 T_COMPL_ALT = TOKEN_FROM_ID(303, OperatorTokenType|AltExtTokenType),
0157 T_COMPL_TRIGRAPH = TOKEN_FROM_ID(303, OperatorTokenType|TriGraphTokenType),
0158 T_STARASSIGN = TOKEN_FROM_ID(304, OperatorTokenType),
0159 T_ASM = TOKEN_FROM_ID(305, KeywordTokenType),
0160 T_AUTO = TOKEN_FROM_ID(306, KeywordTokenType),
0161 T_BOOL = TOKEN_FROM_ID(307, KeywordTokenType),
0162 T_FALSE = TOKEN_FROM_ID(308, BoolLiteralTokenType),
0163 T_TRUE = TOKEN_FROM_ID(309, BoolLiteralTokenType),
0164 T_BREAK = TOKEN_FROM_ID(310, KeywordTokenType),
0165 T_CASE = TOKEN_FROM_ID(311, KeywordTokenType),
0166 T_CATCH = TOKEN_FROM_ID(312, KeywordTokenType),
0167 T_CHAR = TOKEN_FROM_ID(313, KeywordTokenType),
0168 T_CLASS = TOKEN_FROM_ID(314, KeywordTokenType),
0169 T_CONST = TOKEN_FROM_ID(315, KeywordTokenType),
0170 T_CONSTCAST = TOKEN_FROM_ID(316, KeywordTokenType),
0171 T_CONTINUE = TOKEN_FROM_ID(317, KeywordTokenType),
0172 T_DEFAULT = TOKEN_FROM_ID(318, KeywordTokenType),
0173 T_DELETE = TOKEN_FROM_ID(319, KeywordTokenType),
0174 T_DO = TOKEN_FROM_ID(320, KeywordTokenType),
0175 T_DOUBLE = TOKEN_FROM_ID(321, KeywordTokenType),
0176 T_DYNAMICCAST = TOKEN_FROM_ID(322, KeywordTokenType),
0177 T_ELSE = TOKEN_FROM_ID(323, KeywordTokenType),
0178 T_ENUM = TOKEN_FROM_ID(324, KeywordTokenType),
0179 T_EXPLICIT = TOKEN_FROM_ID(325, KeywordTokenType),
0180 T_EXPORT = TOKEN_FROM_ID(326, KeywordTokenType),
0181 T_EXTERN = TOKEN_FROM_ID(327, KeywordTokenType),
0182 T_FLOAT = TOKEN_FROM_ID(328, KeywordTokenType),
0183 T_FOR = TOKEN_FROM_ID(329, KeywordTokenType),
0184 T_FRIEND = TOKEN_FROM_ID(330, KeywordTokenType),
0185 T_GOTO = TOKEN_FROM_ID(331, KeywordTokenType),
0186 T_IF = TOKEN_FROM_ID(332, KeywordTokenType),
0187 T_INLINE = TOKEN_FROM_ID(333, KeywordTokenType),
0188 T_INT = TOKEN_FROM_ID(334, KeywordTokenType),
0189 T_LONG = TOKEN_FROM_ID(335, KeywordTokenType),
0190 T_MUTABLE = TOKEN_FROM_ID(336, KeywordTokenType),
0191 T_NAMESPACE = TOKEN_FROM_ID(337, KeywordTokenType),
0192 T_NEW = TOKEN_FROM_ID(338, KeywordTokenType),
0193 T_OPERATOR = TOKEN_FROM_ID(339, KeywordTokenType),
0194 T_PRIVATE = TOKEN_FROM_ID(340, KeywordTokenType),
0195 T_PROTECTED = TOKEN_FROM_ID(341, KeywordTokenType),
0196 T_PUBLIC = TOKEN_FROM_ID(342, KeywordTokenType),
0197 T_REGISTER = TOKEN_FROM_ID(343, KeywordTokenType),
0198 T_REINTERPRETCAST = TOKEN_FROM_ID(344, KeywordTokenType),
0199 T_RETURN = TOKEN_FROM_ID(345, KeywordTokenType),
0200 T_SHORT = TOKEN_FROM_ID(346, KeywordTokenType),
0201 T_SIGNED = TOKEN_FROM_ID(347, KeywordTokenType),
0202 T_SIZEOF = TOKEN_FROM_ID(348, KeywordTokenType),
0203 T_STATIC = TOKEN_FROM_ID(349, KeywordTokenType),
0204 T_STATICCAST = TOKEN_FROM_ID(350, KeywordTokenType),
0205 T_STRUCT = TOKEN_FROM_ID(351, KeywordTokenType),
0206 T_SWITCH = TOKEN_FROM_ID(352, KeywordTokenType),
0207 T_TEMPLATE = TOKEN_FROM_ID(353, KeywordTokenType),
0208 T_THIS = TOKEN_FROM_ID(354, KeywordTokenType),
0209 T_THROW = TOKEN_FROM_ID(355, KeywordTokenType),
0210 T_TRY = TOKEN_FROM_ID(356, KeywordTokenType),
0211 T_TYPEDEF = TOKEN_FROM_ID(357, KeywordTokenType),
0212 T_TYPEID = TOKEN_FROM_ID(358, KeywordTokenType),
0213 T_TYPENAME = TOKEN_FROM_ID(359, KeywordTokenType),
0214 T_UNION = TOKEN_FROM_ID(360, KeywordTokenType),
0215 T_UNSIGNED = TOKEN_FROM_ID(361, KeywordTokenType),
0216 T_USING = TOKEN_FROM_ID(362, KeywordTokenType),
0217 T_VIRTUAL = TOKEN_FROM_ID(363, KeywordTokenType),
0218 T_VOID = TOKEN_FROM_ID(364, KeywordTokenType),
0219 T_VOLATILE = TOKEN_FROM_ID(365, KeywordTokenType),
0220 T_WCHART = TOKEN_FROM_ID(366, KeywordTokenType),
0221 T_WHILE = TOKEN_FROM_ID(367, KeywordTokenType),
0222 T_PP_DEFINE = TOKEN_FROM_ID(368, PPTokenType),
0223 T_PP_IF = TOKEN_FROM_ID(369, PPConditionalTokenType),
0224 T_PP_IFDEF = TOKEN_FROM_ID(370, PPConditionalTokenType),
0225 T_PP_IFNDEF = TOKEN_FROM_ID(371, PPConditionalTokenType),
0226 T_PP_ELSE = TOKEN_FROM_ID(372, PPConditionalTokenType),
0227 T_PP_ELIF = TOKEN_FROM_ID(373, PPConditionalTokenType),
0228 T_PP_ENDIF = TOKEN_FROM_ID(374, PPConditionalTokenType),
0229 T_PP_ERROR = TOKEN_FROM_ID(375, PPTokenType),
0230 T_PP_LINE = TOKEN_FROM_ID(376, PPTokenType),
0231 T_PP_PRAGMA = TOKEN_FROM_ID(377, PPTokenType),
0232 T_PP_UNDEF = TOKEN_FROM_ID(378, PPTokenType),
0233 T_PP_WARNING = TOKEN_FROM_ID(379, PPTokenType),
0234 T_IDENTIFIER = TOKEN_FROM_ID(380, IdentifierTokenType),
0235 T_OCTALINT = TOKEN_FROM_ID(381, IntegerLiteralTokenType),
0236 T_DECIMALINT = TOKEN_FROM_ID(382, IntegerLiteralTokenType),
0237 T_HEXAINT = TOKEN_FROM_ID(383, IntegerLiteralTokenType),
0238 T_INTLIT = TOKEN_FROM_ID(384, IntegerLiteralTokenType),
0239 T_LONGINTLIT = TOKEN_FROM_ID(385, IntegerLiteralTokenType),
0240 T_FLOATLIT = TOKEN_FROM_ID(386, FloatingLiteralTokenType),
0241 T_FIXEDPOINTLIT = TOKEN_FROM_ID(386, FloatingLiteralTokenType|AltTokenType),
0242 T_CCOMMENT = TOKEN_FROM_ID(387, WhiteSpaceTokenType|AltTokenType),
0243 T_CPPCOMMENT = TOKEN_FROM_ID(388, WhiteSpaceTokenType|AltTokenType),
0244 T_CHARLIT = TOKEN_FROM_ID(389, CharacterLiteralTokenType),
0245 T_STRINGLIT = TOKEN_FROM_ID(390, StringLiteralTokenType),
0246 T_CONTLINE = TOKEN_FROM_ID(391, EOLTokenType),
0247 T_SPACE = TOKEN_FROM_ID(392, WhiteSpaceTokenType),
0248 T_SPACE2 = TOKEN_FROM_ID(393, WhiteSpaceTokenType),
0249 T_NEWLINE = TOKEN_FROM_ID(394, EOLTokenType),
0250 T_GENERATEDNEWLINE = TOKEN_FROM_ID(394, EOLTokenType|AltTokenType),
0251 T_POUND_POUND = TOKEN_FROM_ID(395, OperatorTokenType),
0252 T_POUND_POUND_ALT = TOKEN_FROM_ID(395, OperatorTokenType|AltTokenType),
0253 T_POUND_POUND_TRIGRAPH = TOKEN_FROM_ID(395, OperatorTokenType|TriGraphTokenType),
0254 T_POUND = TOKEN_FROM_ID(396, OperatorTokenType),
0255 T_POUND_ALT = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType),
0256 T_POUND_TRIGRAPH = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType),
0257 T_ANY = TOKEN_FROM_ID(397, UnknownTokenType),
0258 T_ANY_TRIGRAPH = TOKEN_FROM_ID(397, UnknownTokenType|TriGraphTokenType),
0259 T_PP_INCLUDE = TOKEN_FROM_ID(398, PPTokenType),
0260 T_PP_QHEADER = TOKEN_FROM_ID(399, PPTokenType),
0261 T_PP_HHEADER = TOKEN_FROM_ID(400, PPTokenType),
0262 T_PP_INCLUDE_NEXT = TOKEN_FROM_ID(398, PPTokenType|AltTokenType),
0263 T_PP_QHEADER_NEXT = TOKEN_FROM_ID(399, PPTokenType|AltTokenType),
0264 T_PP_HHEADER_NEXT = TOKEN_FROM_ID(400, PPTokenType|AltTokenType),
0265 T_EOF = TOKEN_FROM_ID(401, EOFTokenType),
0266 T_EOI = TOKEN_FROM_ID(402, EOFTokenType),
0267 T_PP_NUMBER = TOKEN_FROM_ID(403, InternalTokenType),
0268
0269
0270 T_MSEXT_INT8 = TOKEN_FROM_ID(404, KeywordTokenType),
0271 T_MSEXT_INT16 = TOKEN_FROM_ID(405, KeywordTokenType),
0272 T_MSEXT_INT32 = TOKEN_FROM_ID(406, KeywordTokenType),
0273 T_MSEXT_INT64 = TOKEN_FROM_ID(407, KeywordTokenType),
0274 T_MSEXT_BASED = TOKEN_FROM_ID(408, KeywordTokenType),
0275 T_MSEXT_DECLSPEC = TOKEN_FROM_ID(409, KeywordTokenType),
0276 T_MSEXT_CDECL = TOKEN_FROM_ID(410, KeywordTokenType),
0277 T_MSEXT_FASTCALL = TOKEN_FROM_ID(411, KeywordTokenType),
0278 T_MSEXT_STDCALL = TOKEN_FROM_ID(412, KeywordTokenType),
0279 T_MSEXT_TRY = TOKEN_FROM_ID(413, KeywordTokenType),
0280 T_MSEXT_EXCEPT = TOKEN_FROM_ID(414, KeywordTokenType),
0281 T_MSEXT_FINALLY = TOKEN_FROM_ID(415, KeywordTokenType),
0282 T_MSEXT_LEAVE = TOKEN_FROM_ID(416, KeywordTokenType),
0283 T_MSEXT_INLINE = TOKEN_FROM_ID(417, KeywordTokenType),
0284 T_MSEXT_ASM = TOKEN_FROM_ID(418, KeywordTokenType),
0285
0286 T_MSEXT_PP_REGION = TOKEN_FROM_ID(419, PPTokenType),
0287 T_MSEXT_PP_ENDREGION = TOKEN_FROM_ID(420, PPTokenType),
0288
0289
0290 T_IMPORT = TOKEN_FROM_ID(421, KeywordTokenType),
0291
0292
0293 T_ALIGNAS = TOKEN_FROM_ID(422, KeywordTokenType),
0294 T_ALIGNOF = TOKEN_FROM_ID(423, KeywordTokenType),
0295 T_CHAR16_T = TOKEN_FROM_ID(424, KeywordTokenType),
0296 T_CHAR32_T = TOKEN_FROM_ID(425, KeywordTokenType),
0297 T_CONSTEXPR = TOKEN_FROM_ID(426, KeywordTokenType),
0298 T_DECLTYPE = TOKEN_FROM_ID(427, KeywordTokenType),
0299 T_NOEXCEPT = TOKEN_FROM_ID(428, KeywordTokenType),
0300 T_NULLPTR = TOKEN_FROM_ID(429, KeywordTokenType),
0301 T_STATICASSERT = TOKEN_FROM_ID(430, KeywordTokenType),
0302 T_THREADLOCAL = TOKEN_FROM_ID(431, KeywordTokenType),
0303 T_RAWSTRINGLIT = TOKEN_FROM_ID(432, StringLiteralTokenType),
0304
0305
0306 T_CHAR8_T = TOKEN_FROM_ID(433, KeywordTokenType),
0307 T_CONCEPT = TOKEN_FROM_ID(434, KeywordTokenType),
0308 T_CONSTEVAL = TOKEN_FROM_ID(435, KeywordTokenType),
0309 T_CONSTINIT = TOKEN_FROM_ID(436, KeywordTokenType),
0310 T_CO_AWAIT = TOKEN_FROM_ID(437, KeywordTokenType),
0311 T_CO_RETURN = TOKEN_FROM_ID(438, KeywordTokenType),
0312 T_CO_YIELD = TOKEN_FROM_ID(439, KeywordTokenType),
0313 T_REQUIRES = TOKEN_FROM_ID(440, KeywordTokenType),
0314
0315
0316 T_SPACESHIP = TOKEN_FROM_ID(441, OperatorTokenType),
0317
0318 T_LAST_TOKEN_ID,
0319 T_LAST_TOKEN = ID_FROM_TOKEN(T_LAST_TOKEN_ID & ~PPTokenFlag),
0320
0321 T_UNKNOWN_UNIVERSALCHAR = TOKEN_FROM_ID('\\', UnknownTokenType),
0322
0323
0324
0325 T_NONREPLACABLE_IDENTIFIER = TOKEN_FROM_ID(T_LAST_TOKEN+1, IdentifierTokenType),
0326 T_PLACEHOLDER = TOKEN_FROM_ID(T_LAST_TOKEN+2, WhiteSpaceTokenType),
0327 T_PLACEMARKER = TOKEN_FROM_ID(T_LAST_TOKEN+3, InternalTokenType),
0328 T_PARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, ParameterTokenType),
0329 T_EXTPARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, ExtParameterTokenType),
0330 T_OPTPARAMETERBASE = TOKEN_FROM_ID(T_LAST_TOKEN+4, OptParameterTokenType)
0331 };
0332
0333
0334
0335 constexpr token_id operator&(token_id a, token_category b)
0336 {
0337 return static_cast<token_id>(
0338 static_cast<std::uint32_t>(a) & static_cast<std::uint32_t>(b));
0339 }
0340
0341 constexpr token_id operator|(token_id a, token_category b)
0342 {
0343 return static_cast<token_id>(
0344 static_cast<std::uint32_t>(a) | static_cast<std::uint32_t>(b));
0345 }
0346
0347 constexpr bool operator==(token_category a, token_id b)
0348 {
0349 return static_cast<std::uint32_t>(a) == static_cast<std::uint32_t>(b);
0350 }
0351
0352
0353
0354
0355 #undef TOKEN_FROM_ID
0356 #define TOKEN_FROM_ID(id, cat) boost::wave::token_id((id) | (cat))
0357
0358 #undef ID_FROM_TOKEN
0359 #define ID_FROM_TOKEN(tok) \
0360 boost::wave::token_id((tok) & \
0361 ~(boost::wave::TokenTypeMask|boost::wave::PPTokenFlag)) \
0362
0363
0364 #undef BASEID_FROM_TOKEN
0365 #define BASEID_FROM_TOKEN(tok) \
0366 boost::wave::token_id((tok) & \
0367 ~(boost::wave::ExtTokenTypeMask|boost::wave::PPTokenFlag)) \
0368
0369 #define BASE_TOKEN(tok) \
0370 boost::wave::token_id((tok) & boost::wave::MainTokenMask) \
0371
0372 #define CATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::TokenTypeMask)
0373 #define EXTCATEGORY_FROM_TOKEN(tok) ((tok) & boost::wave::ExtTokenTypeMask)
0374 #define IS_CATEGORY(tok, cat) \
0375 ((CATEGORY_FROM_TOKEN(tok) == CATEGORY_FROM_TOKEN(cat)) ? true : false) \
0376
0377 #define IS_EXTCATEGORY(tok, cat) \
0378 ((EXTCATEGORY_FROM_TOKEN(tok) == EXTCATEGORY_FROM_TOKEN(cat)) ? true : false) \
0379
0380
0381
0382
0383 inline bool is_pp_token(boost::wave::token_id id)
0384 {
0385 return (id & boost::wave::PPTokenFlag) ? true : false;
0386 }
0387
0388 template <typename TokenT>
0389 inline bool is_pp_token(TokenT const& tok)
0390 {
0391 return is_pp_token(boost::wave::token_id(tok));
0392 }
0393
0394
0395
0396 BOOST_WAVE_DECL
0397 BOOST_WAVE_STRINGTYPE get_token_name(token_id tokid);
0398
0399
0400
0401 BOOST_WAVE_DECL
0402 char const *get_token_value(token_id tokid);
0403
0404
0405 }
0406 }
0407
0408 #endif
0409
0410
0411 #ifdef BOOST_HAS_ABI_HEADERS
0412 #include BOOST_ABI_SUFFIX
0413 #endif
0414
0415 #endif
0416