mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 10:56:42 +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
 | 
						|
 | 
						|
 |