mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 12:56:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			447 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			447 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*=============================================================================
 | |
|     Boost.Wave: A Standard compliant C++ preprocessor library
 | |
|     The definition of a default set of token identifiers and related 
 | |
|     functions.
 | |
|     
 | |
|     http://www.boost.org/
 | |
| 
 | |
|     Copyright (c) 2001-2011 Hartmut Kaiser. Distributed under the Boost
 | |
|     Software License, Version 1.0. (See accompanying file
 | |
|     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | |
| =============================================================================*/
 | |
| 
 | |
| #define BOOST_WAVE_SOURCE 1
 | |
| 
 | |
| // disable stupid compiler warnings
 | |
| #include <boost/config/warning_disable.hpp>
 | |
| 
 | |
| #include <string>
 | |
| #include <boost/assert.hpp>
 | |
| #include <boost/static_assert.hpp>
 | |
| 
 | |
| #include <boost/wave/wave_config.hpp>
 | |
| #include <boost/wave/token_ids.hpp>
 | |
| 
 | |
| // this must occur after all of the includes and before any code appears
 | |
| #ifdef BOOST_HAS_ABI_HEADERS
 | |
| #include BOOST_ABI_PREFIX
 | |
| #endif
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| namespace boost {
 | |
| namespace wave {
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //  return a token name
 | |
| BOOST_WAVE_STRINGTYPE
 | |
| get_token_name(token_id tokid)
 | |
| {
 | |
| //  Table of token names
 | |
| //
 | |
| //      Please note that the sequence of token names must match the sequence of
 | |
| //      token id's defined in then enum token_id above.
 | |
| static char const *tok_names[] = {
 | |
|     /* 256 */   "AND",
 | |
|     /* 257 */   "ANDAND",
 | |
|     /* 258 */   "ASSIGN",
 | |
|     /* 259 */   "ANDASSIGN",
 | |
|     /* 260 */   "OR",
 | |
|     /* 261 */   "ORASSIGN",
 | |
|     /* 262 */   "XOR",
 | |
|     /* 263 */   "XORASSIGN",
 | |
|     /* 264 */   "COMMA",
 | |
|     /* 265 */   "COLON",
 | |
|     /* 266 */   "DIVIDE",
 | |
|     /* 267 */   "DIVIDEASSIGN",
 | |
|     /* 268 */   "DOT",
 | |
|     /* 269 */   "DOTSTAR",
 | |
|     /* 270 */   "ELLIPSIS",
 | |
|     /* 271 */   "EQUAL",
 | |
|     /* 272 */   "GREATER",
 | |
|     /* 273 */   "GREATEREQUAL",
 | |
|     /* 274 */   "LEFTBRACE",
 | |
|     /* 275 */   "LESS",
 | |
|     /* 276 */   "LESSEQUAL",
 | |
|     /* 277 */   "LEFTPAREN",
 | |
|     /* 278 */   "LEFTBRACKET",
 | |
|     /* 279 */   "MINUS",
 | |
|     /* 280 */   "MINUSASSIGN",
 | |
|     /* 281 */   "MINUSMINUS",
 | |
|     /* 282 */   "PERCENT",
 | |
|     /* 283 */   "PERCENTASSIGN",
 | |
|     /* 284 */   "NOT",
 | |
|     /* 285 */   "NOTEQUAL",
 | |
|     /* 286 */   "OROR",
 | |
|     /* 287 */   "PLUS",
 | |
|     /* 288 */   "PLUSASSIGN",
 | |
|     /* 289 */   "PLUSPLUS",
 | |
|     /* 290 */   "ARROW",
 | |
|     /* 291 */   "ARROWSTAR",
 | |
|     /* 292 */   "QUESTION_MARK",
 | |
|     /* 293 */   "RIGHTBRACE",
 | |
|     /* 294 */   "RIGHTPAREN",
 | |
|     /* 295 */   "RIGHTBRACKET",
 | |
|     /* 296 */   "COLON_COLON",
 | |
|     /* 297 */   "SEMICOLON",
 | |
|     /* 298 */   "SHIFTLEFT",
 | |
|     /* 299 */   "SHIFTLEFTASSIGN",
 | |
|     /* 300 */   "SHIFTRIGHT",
 | |
|     /* 301 */   "SHIFTRIGHTASSIGN",
 | |
|     /* 302 */   "STAR",
 | |
|     /* 303 */   "COMPL",
 | |
|     /* 304 */   "STARASSIGN",
 | |
|     /* 305 */   "ASM",
 | |
|     /* 306 */   "AUTO",
 | |
|     /* 307 */   "BOOL",
 | |
|     /* 308 */   "FALSE",
 | |
|     /* 309 */   "TRUE",
 | |
|     /* 310 */   "BREAK",
 | |
|     /* 311 */   "CASE",
 | |
|     /* 312 */   "CATCH",
 | |
|     /* 313 */   "CHAR",
 | |
|     /* 314 */   "CLASS",
 | |
|     /* 315 */   "CONST",
 | |
|     /* 316 */   "CONSTCAST",
 | |
|     /* 317 */   "CONTINUE",
 | |
|     /* 318 */   "DEFAULT",
 | |
|     /* 319 */   "DELETE",
 | |
|     /* 320 */   "DO",
 | |
|     /* 321 */   "DOUBLE",
 | |
|     /* 322 */   "DYNAMICCAST",
 | |
|     /* 323 */   "ELSE",
 | |
|     /* 324 */   "ENUM",
 | |
|     /* 325 */   "EXPLICIT",
 | |
|     /* 326 */   "EXPORT",
 | |
|     /* 327 */   "EXTERN",
 | |
|     /* 328 */   "FLOAT",
 | |
|     /* 329 */   "FOR",
 | |
|     /* 330 */   "FRIEND",
 | |
|     /* 331 */   "GOTO",
 | |
|     /* 332 */   "IF",
 | |
|     /* 333 */   "INLINE",
 | |
|     /* 334 */   "INT",
 | |
|     /* 335 */   "LONG",
 | |
|     /* 336 */   "MUTABLE",
 | |
|     /* 337 */   "NAMESPACE",
 | |
|     /* 338 */   "NEW",
 | |
|     /* 339 */   "OPERATOR",
 | |
|     /* 340 */   "PRIVATE",
 | |
|     /* 341 */   "PROTECTED",
 | |
|     /* 342 */   "PUBLIC",
 | |
|     /* 343 */   "REGISTER",
 | |
|     /* 344 */   "REINTERPRETCAST",
 | |
|     /* 345 */   "RETURN",
 | |
|     /* 346 */   "SHORT",
 | |
|     /* 347 */   "SIGNED",
 | |
|     /* 348 */   "SIZEOF",
 | |
|     /* 349 */   "STATIC",
 | |
|     /* 350 */   "STATICCAST",
 | |
|     /* 351 */   "STRUCT",
 | |
|     /* 352 */   "SWITCH",
 | |
|     /* 353 */   "TEMPLATE",
 | |
|     /* 354 */   "THIS",
 | |
|     /* 355 */   "THROW",
 | |
|     /* 356 */   "TRY",
 | |
|     /* 357 */   "TYPEDEF",
 | |
|     /* 358 */   "TYPEID",
 | |
|     /* 359 */   "TYPENAME",
 | |
|     /* 360 */   "UNION",
 | |
|     /* 361 */   "UNSIGNED",
 | |
|     /* 362 */   "USING",
 | |
|     /* 363 */   "VIRTUAL",
 | |
|     /* 364 */   "VOID",
 | |
|     /* 365 */   "VOLATILE",
 | |
|     /* 366 */   "WCHART",
 | |
|     /* 367 */   "WHILE",
 | |
|     /* 368 */   "PP_DEFINE",
 | |
|     /* 369 */   "PP_IF",
 | |
|     /* 370 */   "PP_IFDEF",
 | |
|     /* 371 */   "PP_IFNDEF",
 | |
|     /* 372 */   "PP_ELSE",
 | |
|     /* 373 */   "PP_ELIF",
 | |
|     /* 374 */   "PP_ENDIF",
 | |
|     /* 375 */   "PP_ERROR",
 | |
|     /* 376 */   "PP_LINE",
 | |
|     /* 377 */   "PP_PRAGMA",
 | |
|     /* 378 */   "PP_UNDEF",
 | |
|     /* 379 */   "PP_WARNING",
 | |
|     /* 380 */   "IDENTIFIER",
 | |
|     /* 381 */   "OCTALINT",
 | |
|     /* 382 */   "DECIMALINT",
 | |
|     /* 383 */   "HEXAINT",
 | |
|     /* 384 */   "INTLIT",
 | |
|     /* 385 */   "LONGINTLIT",
 | |
|     /* 386 */   "FLOATLIT",
 | |
|     /* 387 */   "CCOMMENT",
 | |
|     /* 388 */   "CPPCOMMENT",
 | |
|     /* 389 */   "CHARLIT",
 | |
|     /* 390 */   "STRINGLIT",
 | |
|     /* 391 */   "CONTLINE",
 | |
|     /* 392 */   "SPACE",
 | |
|     /* 393 */   "SPACE2",
 | |
|     /* 394 */   "NEWLINE",
 | |
|     /* 395 */   "POUND_POUND",
 | |
|     /* 396 */   "POUND",
 | |
|     /* 397 */   "ANY",
 | |
|     /* 398 */   "PP_INCLUDE",
 | |
|     /* 399 */   "PP_QHEADER",
 | |
|     /* 400 */   "PP_HHEADER",
 | |
|     /* 401 */   "EOF",
 | |
|     /* 402 */   "EOI",
 | |
|     /* 403 */   "PP_NUMBER",
 | |
| 
 | |
|               // MS extensions
 | |
|     /* 404 */   "MSEXT_INT8",
 | |
|     /* 405 */   "MSEXT_INT16",
 | |
|     /* 406 */   "MSEXT_INT32",
 | |
|     /* 407 */   "MSEXT_INT64",
 | |
|     /* 408 */   "MSEXT_BASED",
 | |
|     /* 409 */   "MSEXT_DECLSPEC",
 | |
|     /* 410 */   "MSEXT_CDECL",
 | |
|     /* 411 */   "MSEXT_FASTCALL",
 | |
|     /* 412 */   "MSEXT_STDCALL",
 | |
|     /* 413 */   "MSEXT_TRY",
 | |
|     /* 414 */   "MSEXT_EXCEPT",
 | |
|     /* 415 */   "MSEXT_FINALLY",
 | |
|     /* 416 */   "MSEXT_LEAVE",
 | |
|     /* 417 */   "MSEXT_INLINE",
 | |
|     /* 418 */   "MSEXT_ASM",
 | |
|     /* 419 */   "MSEXT_REGION",
 | |
|     /* 420 */   "MSEXT_ENDREGION",
 | |
|     
 | |
|     /* 421 */   "IMPORT",
 | |
|     
 | |
|     /* 422 */   "ALIGNAS",
 | |
|     /* 423 */   "ALIGNOF",
 | |
|     /* 424 */   "CHAR16_T",
 | |
|     /* 425 */   "CHAR32_T",
 | |
|     /* 426 */   "CONSTEXPR",
 | |
|     /* 427 */   "DECLTYPE",
 | |
|     /* 428 */   "NOEXCEPT",
 | |
|     /* 429 */   "NULLPTR",
 | |
|     /* 430 */   "STATIC_ASSERT",
 | |
|     /* 431 */   "THREADLOCAL",
 | |
|     /* 432 */   "RAWSTRINGLIT",
 | |
|     };
 | |
| 
 | |
|     // make sure, I have not forgotten any commas (as I did more than once)
 | |
|     BOOST_STATIC_ASSERT(
 | |
|         sizeof(tok_names)/sizeof(tok_names[0]) == T_LAST_TOKEN-T_FIRST_TOKEN
 | |
|     );
 | |
| 
 | |
|     unsigned int id = BASEID_FROM_TOKEN(tokid)-T_FIRST_TOKEN;
 | |
|     return (id < T_LAST_TOKEN-T_FIRST_TOKEN) ? tok_names[id] : "<UnknownToken>";
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //  return a token name
 | |
| char const *
 | |
| get_token_value(token_id tokid)
 | |
| {
 | |
| //  Table of token values
 | |
| //
 | |
| //      Please note that the sequence of token names must match the sequence of
 | |
| //      token id's defined in then enum token_id above.
 | |
| static char const *tok_values[] = {
 | |
|     /* 256 */   "&",
 | |
|     /* 257 */   "&&",
 | |
|     /* 258 */   "=",
 | |
|     /* 259 */   "&=",
 | |
|     /* 260 */   "|",
 | |
|     /* 261 */   "|=",
 | |
|     /* 262 */   "^",
 | |
|     /* 263 */   "^=",
 | |
|     /* 264 */   ",",
 | |
|     /* 265 */   ":",
 | |
|     /* 266 */   "/",
 | |
|     /* 267 */   "/=",
 | |
|     /* 268 */   ".",
 | |
|     /* 269 */   ".*",
 | |
|     /* 270 */   "...",
 | |
|     /* 271 */   "==",
 | |
|     /* 272 */   ">",
 | |
|     /* 273 */   ">=",
 | |
|     /* 274 */   "{",
 | |
|     /* 275 */   "<",
 | |
|     /* 276 */   "<=",
 | |
|     /* 277 */   "(",
 | |
|     /* 278 */   "[",
 | |
|     /* 279 */   "-",
 | |
|     /* 280 */   "-=",
 | |
|     /* 281 */   "--",
 | |
|     /* 282 */   "%",
 | |
|     /* 283 */   "%=",
 | |
|     /* 284 */   "!",
 | |
|     /* 285 */   "!=",
 | |
|     /* 286 */   "||",
 | |
|     /* 287 */   "+",
 | |
|     /* 288 */   "+=",
 | |
|     /* 289 */   "++",
 | |
|     /* 290 */   "->",
 | |
|     /* 291 */   "->*",
 | |
|     /* 292 */   "?",
 | |
|     /* 293 */   "}",
 | |
|     /* 294 */   ")",
 | |
|     /* 295 */   "]",
 | |
|     /* 296 */   "::",
 | |
|     /* 297 */   ";",
 | |
|     /* 298 */   "<<",
 | |
|     /* 299 */   "<<=",
 | |
|     /* 300 */   ">>",
 | |
|     /* 301 */   ">>=",
 | |
|     /* 302 */   "*",
 | |
|     /* 303 */   "~",
 | |
|     /* 304 */   "*=",
 | |
|     /* 305 */   "asm",
 | |
|     /* 306 */   "auto",
 | |
|     /* 307 */   "bool",
 | |
|     /* 308 */   "false",
 | |
|     /* 309 */   "true",
 | |
|     /* 310 */   "break",
 | |
|     /* 311 */   "case",
 | |
|     /* 312 */   "catch",
 | |
|     /* 313 */   "char",
 | |
|     /* 314 */   "class",
 | |
|     /* 315 */   "const",
 | |
|     /* 316 */   "const_cast",
 | |
|     /* 317 */   "continue",
 | |
|     /* 318 */   "default",
 | |
|     /* 319 */   "delete",
 | |
|     /* 320 */   "do",
 | |
|     /* 321 */   "double",
 | |
|     /* 322 */   "dynamic_cast",
 | |
|     /* 323 */   "else",
 | |
|     /* 324 */   "enum",
 | |
|     /* 325 */   "explicit",
 | |
|     /* 326 */   "export",
 | |
|     /* 327 */   "extern",
 | |
|     /* 328 */   "float",
 | |
|     /* 329 */   "for",
 | |
|     /* 330 */   "friend",
 | |
|     /* 331 */   "goto",
 | |
|     /* 332 */   "if",
 | |
|     /* 333 */   "inline",
 | |
|     /* 334 */   "int",
 | |
|     /* 335 */   "long",
 | |
|     /* 336 */   "mutable",
 | |
|     /* 337 */   "namespace",
 | |
|     /* 338 */   "new",
 | |
|     /* 339 */   "operator",
 | |
|     /* 340 */   "private",
 | |
|     /* 341 */   "protected",
 | |
|     /* 342 */   "public",
 | |
|     /* 343 */   "register",
 | |
|     /* 344 */   "reinterpret_cast",
 | |
|     /* 345 */   "return",
 | |
|     /* 346 */   "short",
 | |
|     /* 347 */   "signed",
 | |
|     /* 348 */   "sizeof",
 | |
|     /* 349 */   "static",
 | |
|     /* 350 */   "static_cast",
 | |
|     /* 351 */   "struct",
 | |
|     /* 352 */   "switch",
 | |
|     /* 353 */   "template",
 | |
|     /* 354 */   "this",
 | |
|     /* 355 */   "throw",
 | |
|     /* 356 */   "try",
 | |
|     /* 357 */   "typedef",
 | |
|     /* 358 */   "typeid",
 | |
|     /* 359 */   "typename",
 | |
|     /* 360 */   "union",
 | |
|     /* 361 */   "unsigned",
 | |
|     /* 362 */   "using",
 | |
|     /* 363 */   "virtual",
 | |
|     /* 364 */   "void",
 | |
|     /* 365 */   "volatile",
 | |
|     /* 366 */   "wchar_t",
 | |
|     /* 367 */   "while",
 | |
|     /* 368 */   "#define",
 | |
|     /* 369 */   "#if",
 | |
|     /* 370 */   "#ifdef",
 | |
|     /* 371 */   "#ifndef",
 | |
|     /* 372 */   "#else",
 | |
|     /* 373 */   "#elif",
 | |
|     /* 374 */   "#endif",
 | |
|     /* 375 */   "#error",
 | |
|     /* 376 */   "#line",
 | |
|     /* 377 */   "#pragma",
 | |
|     /* 378 */   "#undef",
 | |
|     /* 379 */   "#warning",
 | |
|     /* 380 */   "",   // identifier
 | |
|     /* 381 */   "",   // octalint
 | |
|     /* 382 */   "",   // decimalint
 | |
|     /* 383 */   "",   // hexlit
 | |
|     /* 384 */   "",   // intlit
 | |
|     /* 385 */   "",   // longintlit
 | |
|     /* 386 */   "",   // floatlit
 | |
|     /* 387 */   "",   // ccomment
 | |
|     /* 388 */   "",   // cppcomment
 | |
|     /* 389 */   "",   // charlit
 | |
|     /* 390 */   "",   // stringlit
 | |
|     /* 391 */   "",   // contline
 | |
|     /* 392 */   "",   // space
 | |
|     /* 393 */   "",   // space2
 | |
|     /* 394 */   "\n",
 | |
|     /* 395 */   "##",
 | |
|     /* 396 */   "#",
 | |
|     /* 397 */   "",   // any
 | |
|     /* 398 */   "#include",
 | |
|     /* 399 */   "#include",
 | |
|     /* 400 */   "#include",
 | |
|     /* 401 */   "",   // eof
 | |
|     /* 402 */   "",   // eoi
 | |
|     /* 403 */   "",   // pp-number
 | |
| 
 | |
|               // MS extensions
 | |
|     /* 404 */   "__int8",
 | |
|     /* 405 */   "__int16",
 | |
|     /* 406 */   "__int32",
 | |
|     /* 407 */   "__int64",
 | |
|     /* 408 */   "__based",
 | |
|     /* 409 */   "__declspec",
 | |
|     /* 410 */   "__cdecl",
 | |
|     /* 411 */   "__fastcall",
 | |
|     /* 412 */   "__stdcall",
 | |
|     /* 413 */   "__try",
 | |
|     /* 414 */   "__except",
 | |
|     /* 415 */   "__finally",
 | |
|     /* 416 */   "__leave",
 | |
|     /* 417 */   "__inline",
 | |
|     /* 418 */   "__asm",
 | |
|     /* 419 */   "#region",
 | |
|     /* 420 */   "#endregion",
 | |
|     
 | |
|     /* 421 */   "import",
 | |
|     
 | |
|     /* 422 */   "alignas",
 | |
|     /* 423 */   "alignof",
 | |
|     /* 424 */   "char16_t",
 | |
|     /* 425 */   "char32_t",
 | |
|     /* 426 */   "constexpr",
 | |
|     /* 427 */   "decltype",
 | |
|     /* 428 */   "noexcept",
 | |
|     /* 429 */   "nullptr",
 | |
|     /* 430 */   "static_assert",
 | |
|     /* 431 */   "threadlocal",
 | |
|     /* 432 */   "",   // extrawstringlit
 | |
|     };   
 | |
|      
 | |
|     // make sure, I have not forgotten any commas (as I did more than once)
 | |
|     BOOST_STATIC_ASSERT(
 | |
|         sizeof(tok_values)/sizeof(tok_values[0]) == T_LAST_TOKEN-T_FIRST_TOKEN
 | |
|     );
 | |
| 
 | |
|     unsigned int id = BASEID_FROM_TOKEN(tokid)-T_FIRST_TOKEN;
 | |
|     return (id < T_LAST_TOKEN-T_FIRST_TOKEN) ? tok_values[id] : "<UnknownToken>";
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| }   // namespace wave
 | |
| }   // namespace boost
 | |
| 
 | |
| // the suffix header occurs after all of the code
 | |
| #ifdef BOOST_HAS_ABI_HEADERS
 | |
| #include BOOST_ABI_SUFFIX
 | |
| #endif
 | |
| 
 | |
| 
 |