123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- /*=============================================================================
- Boost.Wave: A Standard compliant C++ preprocessor library
- http://www.boost.org/
- Copyright (c) 2001-2012 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)
- =============================================================================*/
- #include <boost/wave/wave_config.hpp>
- #include <boost/wave/token_ids.hpp>
- ///////////////////////////////////////////////////////////////////////////////
- struct lexem
- {
- char const*token;
- boost::wave::token_id id;
- };
- ///////////////////////////////////////////////////////////////////////////////
- lexem const lexems[] =
- {
- { "bitand", boost::wave::T_AND_ALT },
- { "and", boost::wave::T_ANDAND_ALT },
- { "and_eq", boost::wave::T_ANDASSIGN_ALT },
- { "bitor", boost::wave::T_OR_ALT },
- { "or_eq", boost::wave::T_ORASSIGN_ALT },
- { "or", boost::wave::T_OROR_ALT },
- { "xor", boost::wave::T_XOR_ALT },
- { "xor_eq", boost::wave::T_XORASSIGN_ALT },
- { "not", boost::wave::T_NOT_ALT },
- { "not_eq", boost::wave::T_NOTEQUAL_ALT },
- { "compl", boost::wave::T_COMPL_ALT },
- { "->*", boost::wave::T_ARROWSTAR },
- { ".*", boost::wave::T_DOTSTAR },
- { "::", boost::wave::T_COLON_COLON },
-
- { "/* some C comment */", boost::wave::T_CCOMMENT },
- { "/* some multiline \n C comment \n */", boost::wave::T_CCOMMENT },
- { "// some c++ comment\n", boost::wave::T_CPPCOMMENT },
- { " ", boost::wave::T_SPACE },
- { "\t\v\f", boost::wave::T_SPACE },
- { "'c'", boost::wave::T_CHARLIT },
- { "'\\n'", boost::wave::T_CHARLIT },
- { "'\\u1234'", boost::wave::T_CHARLIT },
- { "'\\U12345678'", boost::wave::T_CHARLIT },
- { "\"string literal\"", boost::wave::T_STRINGLIT },
- { "\"string literal \\n \\u1234 \\U12345678\"", boost::wave::T_STRINGLIT },
- { "&&", boost::wave::T_ANDAND },
- { "&=", boost::wave::T_ANDASSIGN },
- { "==", boost::wave::T_EQUAL },
- { "=", boost::wave::T_ASSIGN },
- { "|=", boost::wave::T_ORASSIGN },
- { "\?\?!=", boost::wave::T_ORASSIGN_TRIGRAPH },
- { "||", boost::wave::T_OROR },
- { "|\?\?!", boost::wave::T_OROR_TRIGRAPH },
- { "\?\?!|", boost::wave::T_OROR_TRIGRAPH },
- { "\?\?!\?\?!", boost::wave::T_OROR_TRIGRAPH },
- { "|", boost::wave::T_OR },
- { "\?\?!", boost::wave::T_OR_TRIGRAPH },
- { "^=", boost::wave::T_XORASSIGN },
- { "\?\?'=", boost::wave::T_XORASSIGN_TRIGRAPH },
- { "^", boost::wave::T_XOR },
- { "\?\?'", boost::wave::T_XOR_TRIGRAPH },
- { ",", boost::wave::T_COMMA },
- { ":>", boost::wave::T_RIGHTBRACKET_ALT },
- { ":", boost::wave::T_COLON },
- { "/=", boost::wave::T_DIVIDEASSIGN },
- { "/", boost::wave::T_DIVIDE },
- { "...", boost::wave::T_ELLIPSIS },
- { ".", boost::wave::T_DOT },
- { ">>=", boost::wave::T_SHIFTRIGHTASSIGN },
- { ">>", boost::wave::T_SHIFTRIGHT },
- { ">=", boost::wave::T_GREATEREQUAL },
- { ">", boost::wave::T_GREATER },
- { "{", boost::wave::T_LEFTBRACE },
- { "<<=", boost::wave::T_SHIFTLEFTASSIGN },
- { "<<", boost::wave::T_SHIFTLEFT },
- { "<=", boost::wave::T_LESSEQUAL },
- { "<%", boost::wave::T_LEFTBRACE_ALT },
- { "<:", boost::wave::T_LEFTBRACKET_ALT },
- { "<", boost::wave::T_LESS },
- { "\?\?<", boost::wave::T_LEFTBRACE_TRIGRAPH },
- { "(", boost::wave::T_LEFTPAREN },
- { "[", boost::wave::T_LEFTBRACKET },
- { "\?\?(", boost::wave::T_LEFTBRACKET_TRIGRAPH },
- { "--", boost::wave::T_MINUSMINUS },
- { "-=", boost::wave::T_MINUSASSIGN },
- { "->", boost::wave::T_ARROW },
- { "-", boost::wave::T_MINUS },
- { "%:%:", boost::wave::T_POUND_POUND_ALT },
- { "%=", boost::wave::T_PERCENTASSIGN },
- { "%>", boost::wave::T_RIGHTBRACE_ALT },
- { "%:", boost::wave::T_POUND_ALT },
- { "%", boost::wave::T_PERCENT },
- { "!=", boost::wave::T_NOTEQUAL },
- { "!", boost::wave::T_NOT },
- { "+=", boost::wave::T_PLUSASSIGN },
- { "++", boost::wave::T_PLUSPLUS },
- { "+", boost::wave::T_PLUS },
- { "}", boost::wave::T_RIGHTBRACE },
- { "\?\?>", boost::wave::T_RIGHTBRACE_TRIGRAPH },
- { ")", boost::wave::T_RIGHTPAREN },
- { "]", boost::wave::T_RIGHTBRACKET },
- { "\?\?)", boost::wave::T_RIGHTBRACKET_TRIGRAPH },
- { ";", boost::wave::T_SEMICOLON },
- { "*=", boost::wave::T_STARASSIGN },
- { "*", boost::wave::T_STAR },
- { "~", boost::wave::T_COMPL },
- { "\?\?-", boost::wave::T_COMPL_TRIGRAPH },
- { "asm", boost::wave::T_ASM },
- { "auto", boost::wave::T_AUTO },
- { "bool", boost::wave::T_BOOL },
- { "false", boost::wave::T_FALSE },
- { "true", boost::wave::T_TRUE },
- { "break", boost::wave::T_BREAK },
- { "case", boost::wave::T_CASE },
- { "catch", boost::wave::T_CATCH },
- { "char", boost::wave::T_CHAR },
- { "class", boost::wave::T_CLASS },
- { "const_cast", boost::wave::T_CONSTCAST },
- { "const", boost::wave::T_CONST },
- { "continue", boost::wave::T_CONTINUE },
- { "default", boost::wave::T_DEFAULT },
- { "delete", boost::wave::T_DELETE },
- { "do", boost::wave::T_DO },
- { "double", boost::wave::T_DOUBLE },
- { "dynamic_cast", boost::wave::T_DYNAMICCAST },
- { "else", boost::wave::T_ELSE },
- { "enum", boost::wave::T_ENUM },
- { "explicit", boost::wave::T_EXPLICIT },
- { "export", boost::wave::T_EXPORT },
- { "extern", boost::wave::T_EXTERN },
- { "float", boost::wave::T_FLOAT },
- { "for", boost::wave::T_FOR },
- { "friend", boost::wave::T_FRIEND },
- { "goto", boost::wave::T_GOTO },
- { "if", boost::wave::T_IF },
- #if BOOST_WAVE_SUPPORT_IMPORT_KEYWORD != 0
- { "import", boost::wave::T_IMPORT},
- #endif
- { "inline", boost::wave::T_INLINE },
- { "int", boost::wave::T_INT },
- { "long", boost::wave::T_LONG },
- { "mutable", boost::wave::T_MUTABLE },
- { "namespace", boost::wave::T_NAMESPACE },
- { "new", boost::wave::T_NEW },
- { "operator", boost::wave::T_OPERATOR },
- { "private", boost::wave::T_PRIVATE },
- { "protected", boost::wave::T_PROTECTED },
- { "public", boost::wave::T_PUBLIC },
- { "register", boost::wave::T_REGISTER },
- { "reinterpret_cast", boost::wave::T_REINTERPRETCAST },
- { "return", boost::wave::T_RETURN },
- { "short", boost::wave::T_SHORT },
- { "signed", boost::wave::T_SIGNED },
- { "sizeof", boost::wave::T_SIZEOF },
- { "static_cast", boost::wave::T_STATICCAST },
- { "static", boost::wave::T_STATIC },
- { "struct", boost::wave::T_STRUCT },
- { "switch", boost::wave::T_SWITCH },
- { "template", boost::wave::T_TEMPLATE },
- { "this", boost::wave::T_THIS },
- { "throw", boost::wave::T_THROW },
- { "try", boost::wave::T_TRY },
- { "typedef", boost::wave::T_TYPEDEF },
- { "typeid", boost::wave::T_TYPEID },
- { "typename", boost::wave::T_TYPENAME },
- { "union", boost::wave::T_UNION },
- { "unsigned", boost::wave::T_UNSIGNED },
- { "using", boost::wave::T_USING },
- { "virtual", boost::wave::T_VIRTUAL },
- { "void", boost::wave::T_VOID },
- { "volatile", boost::wave::T_VOLATILE },
- { "wchar_t", boost::wave::T_WCHART },
- { "while", boost::wave::T_WHILE },
- #if BOOST_WAVE_SUPPORT_MS_EXTENSIONS != 0
- { "__int8", boost::wave::T_MSEXT_INT8 },
- { "__int16", boost::wave::T_MSEXT_INT16 },
- { "__int32", boost::wave::T_MSEXT_INT32 },
- { "__int64", boost::wave::T_MSEXT_INT64 },
- { "__based", boost::wave::T_MSEXT_BASED },
- { "_based", boost::wave::T_MSEXT_BASED },
- { "__declspec", boost::wave::T_MSEXT_DECLSPEC },
- { "_declspec", boost::wave::T_MSEXT_DECLSPEC },
- { "__fastcall", boost::wave::T_MSEXT_FASTCALL },
- { "_fastcall", boost::wave::T_MSEXT_FASTCALL },
- { "__stdcall", boost::wave::T_MSEXT_STDCALL },
- { "_stdcall", boost::wave::T_MSEXT_STDCALL },
- { "__try", boost::wave::T_MSEXT_TRY },
- { "__except", boost::wave::T_MSEXT_EXCEPT },
- { "__finally", boost::wave::T_MSEXT_FINALLY },
- { "__leave", boost::wave::T_MSEXT_LEAVE },
- { "__inline", boost::wave::T_MSEXT_INLINE },
- { "_inline", boost::wave::T_MSEXT_INLINE },
- { "__asm", boost::wave::T_MSEXT_ASM },
- { "_asm", boost::wave::T_MSEXT_ASM },
- { "#region", boost::wave::T_MSEXT_PP_REGION },
- { "#endregion", boost::wave::T_MSEXT_PP_ENDREGION },
- #endif // BOOST_WAVE_SUPPORT_MS_EXTENSIONS != 0
- { "#define", boost::wave::T_PP_DEFINE },
- { "#ifdef", boost::wave::T_PP_IFDEF },
- { "#ifndef", boost::wave::T_PP_IFNDEF },
- { "#if", boost::wave::T_PP_IF },
- { "#else", boost::wave::T_PP_ELSE },
- { "#elif", boost::wave::T_PP_ELIF },
- { "#endif", boost::wave::T_PP_ENDIF },
- { "#error", boost::wave::T_PP_ERROR },
- { "#include \"some_header\"", boost::wave::T_PP_QHEADER },
- { "#include <some_header>", boost::wave::T_PP_HHEADER },
- // { "#include SOME_HEADER", boost::wave::T_PP_INCLUDE },
- { "#line", boost::wave::T_PP_LINE },
- { "#pragma", boost::wave::T_PP_PRAGMA },
- { "#undef", boost::wave::T_PP_UNDEF },
- { "#warning", boost::wave::T_PP_WARNING },
- { "some_identifier_1234", boost::wave::T_IDENTIFIER },
- { "some_identifier_\\u00d4", boost::wave::T_IDENTIFIER },
- { "some_identifier_\\U000000d4", boost::wave::T_IDENTIFIER },
- { ".1", boost::wave::T_FLOATLIT },
- { "1.1", boost::wave::T_FLOATLIT },
- { "1.", boost::wave::T_FLOATLIT },
- { ".1e+1", boost::wave::T_FLOATLIT },
- { ".1E-1", boost::wave::T_FLOATLIT },
- { ".1e1", boost::wave::T_FLOATLIT },
- { "1e1", boost::wave::T_FLOATLIT },
- { "1e1f", boost::wave::T_FLOATLIT },
- { "1e1L", boost::wave::T_FLOATLIT },
- { "1.1e1fl", boost::wave::T_FLOATLIT },
- { "1.e1LF", boost::wave::T_FLOATLIT },
- { "1234LL", boost::wave::T_LONGINTLIT },
- { "1234Ll", boost::wave::T_LONGINTLIT },
- { "1234ll", boost::wave::T_LONGINTLIT },
- { "1234llu", boost::wave::T_LONGINTLIT },
- { "1234ull", boost::wave::T_LONGINTLIT },
- #if BOOST_WAVE_SUPPORT_MS_EXTENSIONS != 0
- { "1234i64", boost::wave::T_LONGINTLIT },
- #endif
- { "1234L", boost::wave::T_INTLIT },
- { "1234l", boost::wave::T_INTLIT },
- { "1234ul", boost::wave::T_INTLIT },
- { "1234LU", boost::wave::T_INTLIT },
- { "1234", boost::wave::T_INTLIT },
- { " ", boost::wave::T_SPACE },
- { "\t", boost::wave::T_SPACE },
- { "\n", boost::wave::T_NEWLINE },
- { "##", boost::wave::T_POUND_POUND },
- { "\?\?=\?\?=", boost::wave::T_POUND_POUND_TRIGRAPH },
- { "#", boost::wave::T_POUND },
- { "\?\?=", boost::wave::T_POUND_TRIGRAPH },
- { "\?\?/", boost::wave::T_ANY_TRIGRAPH },
- { "?", boost::wave::T_QUESTION_MARK },
- { NULL, boost::wave::token_id(0) }
- };
|