summaryrefslogtreecommitdiff
path: root/boost/wave
diff options
context:
space:
mode:
Diffstat (limited to 'boost/wave')
-rw-r--r--boost/wave/cpplexer/re2clex/aq.hpp4
-rw-r--r--boost/wave/cpplexer/re2clex/cpp.re576
-rw-r--r--boost/wave/cpplexer/re2clex/cpp_re.hpp352
-rw-r--r--boost/wave/cpplexer/re2clex/cpp_re.inc7749
-rw-r--r--boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp16
-rw-r--r--boost/wave/cpplexer/re2clex/scanner.hpp30
-rw-r--r--boost/wave/cpplexer/re2clex/strict_cpp.re575
-rw-r--r--boost/wave/cpplexer/re2clex/strict_cpp_re.inc7718
-rw-r--r--boost/wave/util/cpp_iterator.hpp21
-rw-r--r--boost/wave/util/cpp_macromap.hpp7
-rw-r--r--boost/wave/util/filesystem_compatibility.hpp2
11 files changed, 17013 insertions, 37 deletions
diff --git a/boost/wave/cpplexer/re2clex/aq.hpp b/boost/wave/cpplexer/re2clex/aq.hpp
index 6d6226130e..fbafd8602b 100644
--- a/boost/wave/cpplexer/re2clex/aq.hpp
+++ b/boost/wave/cpplexer/re2clex/aq.hpp
@@ -39,10 +39,10 @@ typedef struct tag_aq_queuetype
typedef aq_queuetype* aq_queue;
-int aq_enqueue(aq_queue q, aq_stdelement e);
+BOOST_WAVE_DECL int aq_enqueue(aq_queue q, aq_stdelement e);
int aq_enqueue_front(aq_queue q, aq_stdelement e);
int aq_serve(aq_queue q, aq_stdelement *e);
-int aq_pop(aq_queue q);
+BOOST_WAVE_DECL int aq_pop(aq_queue q);
#define AQ_EMPTY(q) (q->size == 0)
#define AQ_FULL(q) (q->size == q->max_size)
int aq_grow(aq_queue q);
diff --git a/boost/wave/cpplexer/re2clex/cpp.re b/boost/wave/cpplexer/re2clex/cpp.re
new file mode 100644
index 0000000000..eeb3d1de9e
--- /dev/null
+++ b/boost/wave/cpplexer/re2clex/cpp.re
@@ -0,0 +1,576 @@
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+
+ Copyright (c) 2001 Daniel C. Nuffer
+ Copyright (c) 2001-2013 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)
+
+ This is a lexer conforming to the Standard with a few exceptions.
+ So it does allow the '$' to be part of identifiers. If you need strict
+ Standards conforming behaviour, please include the lexer definition
+ provided in the file strict_cpp.re.
+
+ TODO:
+ handle errors better.
+=============================================================================*/
+
+/*!re2c
+re2c:indent:string = " ";
+any = [\t\v\f\r\n\040-\377];
+anyctrl = [\001-\037];
+OctalDigit = [0-7];
+Digit = [0-9];
+HexDigit = [a-fA-F0-9];
+Integer = (("0" [xX] HexDigit+) | ("0" OctalDigit*) | ([1-9] Digit*));
+ExponentStart = [Ee] [+-];
+ExponentPart = [Ee] [+-]? Digit+;
+FractionalConstant = (Digit* "." Digit+) | (Digit+ ".");
+FloatingSuffix = [fF] [lL]? | [lL] [fF]?;
+IntegerSuffix = [uU] [lL]? | [lL] [uU]?;
+LongIntegerSuffix = [uU] ([lL] [lL]) | ([lL] [lL]) [uU]?;
+MSLongIntegerSuffix = "u"? "i64";
+Backslash = [\\] | "??/";
+EscapeSequence = Backslash ([abfnrtv?'"] | Backslash | "x" HexDigit+ | OctalDigit OctalDigit? OctalDigit?);
+HexQuad = HexDigit HexDigit HexDigit HexDigit;
+UniversalChar = Backslash ("u" HexQuad | "U" HexQuad HexQuad);
+Newline = "\r\n" | "\n" | "\r";
+PPSpace = ([ \t\f\v]|("/*"(any\[*]|Newline|("*"+(any\[*/]|Newline)))*"*"+"/"))*;
+Pound = "#" | "??=" | "%:";
+NonDigit = [a-zA-Z_$] | UniversalChar;
+*/
+
+/*!re2c
+ "/*" { goto ccomment; }
+ "//" { goto cppcomment; }
+ "."? Digit { goto pp_number; }
+
+ "alignas" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
+ "alignof" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
+ "asm" { BOOST_WAVE_RET(T_ASM); }
+ "auto" { BOOST_WAVE_RET(T_AUTO); }
+ "bool" { BOOST_WAVE_RET(T_BOOL); }
+ "break" { BOOST_WAVE_RET(T_BREAK); }
+ "case" { BOOST_WAVE_RET(T_CASE); }
+ "catch" { BOOST_WAVE_RET(T_CATCH); }
+ "char" { BOOST_WAVE_RET(T_CHAR); }
+ "char16_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
+ "char32_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
+ "class" { BOOST_WAVE_RET(T_CLASS); }
+ "const" { BOOST_WAVE_RET(T_CONST); }
+ "constexpr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
+ "const_cast" { BOOST_WAVE_RET(T_CONSTCAST); }
+ "continue" { BOOST_WAVE_RET(T_CONTINUE); }
+ "decltype" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
+ "default" { BOOST_WAVE_RET(T_DEFAULT); }
+ "delete" { BOOST_WAVE_RET(T_DELETE); }
+ "do" { BOOST_WAVE_RET(T_DO); }
+ "double" { BOOST_WAVE_RET(T_DOUBLE); }
+ "dynamic_cast" { BOOST_WAVE_RET(T_DYNAMICCAST); }
+ "else" { BOOST_WAVE_RET(T_ELSE); }
+ "enum" { BOOST_WAVE_RET(T_ENUM); }
+ "explicit" { BOOST_WAVE_RET(T_EXPLICIT); }
+ "export" { BOOST_WAVE_RET(T_EXPORT); }
+ "extern" { BOOST_WAVE_RET(T_EXTERN); }
+ "false" { BOOST_WAVE_RET(T_FALSE); }
+ "float" { BOOST_WAVE_RET(T_FLOAT); }
+ "for" { BOOST_WAVE_RET(T_FOR); }
+ "friend" { BOOST_WAVE_RET(T_FRIEND); }
+ "goto" { BOOST_WAVE_RET(T_GOTO); }
+ "if" { BOOST_WAVE_RET(T_IF); }
+ "import" { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+ "inline" { BOOST_WAVE_RET(T_INLINE); }
+ "int" { BOOST_WAVE_RET(T_INT); }
+ "long" { BOOST_WAVE_RET(T_LONG); }
+ "mutable" { BOOST_WAVE_RET(T_MUTABLE); }
+ "namespace" { BOOST_WAVE_RET(T_NAMESPACE); }
+ "new" { BOOST_WAVE_RET(T_NEW); }
+ "noexcept" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
+ "nullptr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
+ "operator" { BOOST_WAVE_RET(T_OPERATOR); }
+ "private" { BOOST_WAVE_RET(T_PRIVATE); }
+ "protected" { BOOST_WAVE_RET(T_PROTECTED); }
+ "public" { BOOST_WAVE_RET(T_PUBLIC); }
+ "register" { BOOST_WAVE_RET(T_REGISTER); }
+ "reinterpret_cast" { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+ "return" { BOOST_WAVE_RET(T_RETURN); }
+ "short" { BOOST_WAVE_RET(T_SHORT); }
+ "signed" { BOOST_WAVE_RET(T_SIGNED); }
+ "sizeof" { BOOST_WAVE_RET(T_SIZEOF); }
+ "static" { BOOST_WAVE_RET(T_STATIC); }
+ "static_cast" { BOOST_WAVE_RET(T_STATICCAST); }
+ "static_assert" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
+ "struct" { BOOST_WAVE_RET(T_STRUCT); }
+ "switch" { BOOST_WAVE_RET(T_SWITCH); }
+ "template" { BOOST_WAVE_RET(T_TEMPLATE); }
+ "this" { BOOST_WAVE_RET(T_THIS); }
+ "thread_local" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
+ "throw" { BOOST_WAVE_RET(T_THROW); }
+ "true" { BOOST_WAVE_RET(T_TRUE); }
+ "try" { BOOST_WAVE_RET(T_TRY); }
+ "typedef" { BOOST_WAVE_RET(T_TYPEDEF); }
+ "typeid" { BOOST_WAVE_RET(T_TYPEID); }
+ "typename" { BOOST_WAVE_RET(T_TYPENAME); }
+ "union" { BOOST_WAVE_RET(T_UNION); }
+ "unsigned" { BOOST_WAVE_RET(T_UNSIGNED); }
+ "using" { BOOST_WAVE_RET(T_USING); }
+ "virtual" { BOOST_WAVE_RET(T_VIRTUAL); }
+ "void" { BOOST_WAVE_RET(T_VOID); }
+ "volatile" { BOOST_WAVE_RET(T_VOLATILE); }
+ "wchar_t" { BOOST_WAVE_RET(T_WCHART); }
+ "while" { BOOST_WAVE_RET(T_WHILE); }
+
+ "__int8" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
+ "__int16" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+ "__int32" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+ "__int64" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+ "_"? "_based" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+ "_"? "_declspec" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+ "_"? "_cdecl" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+ "_"? "_fastcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+ "_"? "_stdcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+ "__try" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+ "__except" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+ "__finally" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+ "__leave" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+ "_"? "_inline" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+ "_"? "_asm" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+
+ "{" { BOOST_WAVE_RET(T_LEFTBRACE); }
+ "??<" { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+ "<%" { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+ "}" { BOOST_WAVE_RET(T_RIGHTBRACE); }
+ "??>" { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+ "%>" { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+ "[" { BOOST_WAVE_RET(T_LEFTBRACKET); }
+ "??(" { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+ "<:" { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+ "]" { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+ "??)" { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+ ":>" { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+ "#" { BOOST_WAVE_RET(T_POUND); }
+ "%:" { BOOST_WAVE_RET(T_POUND_ALT); }
+ "??=" { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+ "##" { BOOST_WAVE_RET(T_POUND_POUND); }
+ "#??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+ "??=#" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+ "??=??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+ "%:%:" { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+ "(" { BOOST_WAVE_RET(T_LEFTPAREN); }
+ ")" { BOOST_WAVE_RET(T_RIGHTPAREN); }
+ ";" { BOOST_WAVE_RET(T_SEMICOLON); }
+ ":" { BOOST_WAVE_RET(T_COLON); }
+ "..." { BOOST_WAVE_RET(T_ELLIPSIS); }
+ "?" { BOOST_WAVE_RET(T_QUESTION_MARK); }
+ "::"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_COLON);
+ }
+ else {
+ BOOST_WAVE_RET(T_COLON_COLON);
+ }
+ }
+ "." { BOOST_WAVE_RET(T_DOT); }
+ ".*"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_DOT);
+ }
+ else {
+ BOOST_WAVE_RET(T_DOTSTAR);
+ }
+ }
+ "+" { BOOST_WAVE_RET(T_PLUS); }
+ "-" { BOOST_WAVE_RET(T_MINUS); }
+ "*" { BOOST_WAVE_RET(T_STAR); }
+ "/" { BOOST_WAVE_RET(T_DIVIDE); }
+ "%" { BOOST_WAVE_RET(T_PERCENT); }
+ "^" { BOOST_WAVE_RET(T_XOR); }
+ "??'" { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+ "xor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+ "&" { BOOST_WAVE_RET(T_AND); }
+ "bitand" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+ "|" { BOOST_WAVE_RET(T_OR); }
+ "bitor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+ "??!" { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+ "~" { BOOST_WAVE_RET(T_COMPL); }
+ "??-" { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+ "compl" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+ "!" { BOOST_WAVE_RET(T_NOT); }
+ "not" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+ "=" { BOOST_WAVE_RET(T_ASSIGN); }
+ "<" { BOOST_WAVE_RET(T_LESS); }
+ ">" { BOOST_WAVE_RET(T_GREATER); }
+ "+=" { BOOST_WAVE_RET(T_PLUSASSIGN); }
+ "-=" { BOOST_WAVE_RET(T_MINUSASSIGN); }
+ "*=" { BOOST_WAVE_RET(T_STARASSIGN); }
+ "/=" { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+ "%=" { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+ "^=" { BOOST_WAVE_RET(T_XORASSIGN); }
+ "xor_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+ "??'=" { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+ "&=" { BOOST_WAVE_RET(T_ANDASSIGN); }
+ "and_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+ "|=" { BOOST_WAVE_RET(T_ORASSIGN); }
+ "or_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+ "??!=" { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+ "<<" { BOOST_WAVE_RET(T_SHIFTLEFT); }
+ ">>" { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+ ">>=" { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+ "<<=" { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+ "==" { BOOST_WAVE_RET(T_EQUAL); }
+ "!=" { BOOST_WAVE_RET(T_NOTEQUAL); }
+ "not_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+ "<=" { BOOST_WAVE_RET(T_LESSEQUAL); }
+ ">=" { BOOST_WAVE_RET(T_GREATEREQUAL); }
+ "&&" { BOOST_WAVE_RET(T_ANDAND); }
+ "and" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+ "||" { BOOST_WAVE_RET(T_OROR); }
+ "??!|" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+ "|??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+ "or" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+ "??!??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+ "++" { BOOST_WAVE_RET(T_PLUSPLUS); }
+ "--" { BOOST_WAVE_RET(T_MINUSMINUS); }
+ "," { BOOST_WAVE_RET(T_COMMA); }
+ "->*"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_ARROW);
+ }
+ else {
+ BOOST_WAVE_RET(T_ARROWSTAR);
+ }
+ }
+ "->" { BOOST_WAVE_RET(T_ARROW); }
+ "??/" { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+
+ "L"? (['] (EscapeSequence | UniversalChar | any\[\n\r\\'])+ ['])
+ { BOOST_WAVE_RET(T_CHARLIT); }
+
+ "L"? (["] (EscapeSequence | UniversalChar | any\[\n\r\\"])* ["])
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+
+ "L"? "R" ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ [uU] [']
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extcharlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ ([uU] | "u8") ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ ([uU] | "u8") "R" ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ ([a-zA-Z_$] | UniversalChar) ([a-zA-Z_0-9$] | UniversalChar)*
+ { BOOST_WAVE_RET(T_IDENTIFIER); }
+
+ Pound PPSpace ( "include" | "include_next") PPSpace "<" (any\[\n\r>])+ ">"
+ { BOOST_WAVE_RET(T_PP_HHEADER); }
+
+ Pound PPSpace ( "include" | "include_next") PPSpace "\"" (any\[\n\r"])+ "\""
+ { BOOST_WAVE_RET(T_PP_QHEADER); }
+
+ Pound PPSpace ( "include" | "include_next") PPSpace
+ { BOOST_WAVE_RET(T_PP_INCLUDE); }
+
+ Pound PPSpace "if" { BOOST_WAVE_RET(T_PP_IF); }
+ Pound PPSpace "ifdef" { BOOST_WAVE_RET(T_PP_IFDEF); }
+ Pound PPSpace "ifndef" { BOOST_WAVE_RET(T_PP_IFNDEF); }
+ Pound PPSpace "else" { BOOST_WAVE_RET(T_PP_ELSE); }
+ Pound PPSpace "elif" { BOOST_WAVE_RET(T_PP_ELIF); }
+ Pound PPSpace "endif" { BOOST_WAVE_RET(T_PP_ENDIF); }
+ Pound PPSpace "define" { BOOST_WAVE_RET(T_PP_DEFINE); }
+ Pound PPSpace "undef" { BOOST_WAVE_RET(T_PP_UNDEF); }
+ Pound PPSpace "line" { BOOST_WAVE_RET(T_PP_LINE); }
+ Pound PPSpace "error" { BOOST_WAVE_RET(T_PP_ERROR); }
+ Pound PPSpace "pragma" { BOOST_WAVE_RET(T_PP_PRAGMA); }
+
+ Pound PPSpace "warning" { BOOST_WAVE_RET(T_PP_WARNING); }
+
+ Pound PPSpace "region" { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+ Pound PPSpace "endregion" { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+
+ [ \t\v\f]+
+ { BOOST_WAVE_RET(T_SPACE); }
+
+ Newline
+ {
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_NEWLINE);
+ }
+
+ "\000"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+ BOOST_WAVE_RET(T_EOF);
+ }
+
+ any { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+
+ anyctrl
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+*/
+
+ccomment:
+/*!re2c
+ "*/" { BOOST_WAVE_RET(T_CCOMMENT); }
+
+ Newline
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+ /*s->tok = cursor; */
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto ccomment;
+ }
+
+ any { goto ccomment; }
+
+ "\000"
+ {
+ if(cursor == s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C' style comment");
+ }
+ else
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
+ }
+ }
+
+ anyctrl
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+*/
+
+cppcomment:
+/*!re2c
+ Newline
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+ /*s->tok = cursor; */
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+
+ any { goto cppcomment; }
+
+ "\000"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+
+ --YYCURSOR; // next call returns T_EOF
+ if (!s->single_line_only)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
+ }
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+
+ anyctrl
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+*/
+
+/* this subscanner is called whenever a pp_number has been started */
+pp_number:
+{
+ cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
+ marker = uchar_wrapper(s->ptr);
+ limit = uchar_wrapper(s->lim);
+
+ if (s->detect_pp_numbers) {
+ /*!re2c
+ "."? Digit (Digit | NonDigit | ExponentStart | ".")*
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+ */
+ }
+ else {
+ /*!re2c
+ ((FractionalConstant ExponentPart?) | (Digit+ ExponentPart)) FloatingSuffix?
+ { BOOST_WAVE_RET(T_FLOATLIT); }
+
+ Integer { goto integer_suffix; }
+ */
+ }
+}
+
+/* this subscanner is called, whenever an Integer was recognized */
+integer_suffix:
+{
+ if (s->enable_ms_extensions) {
+ /*!re2c
+ LongIntegerSuffix | MSLongIntegerSuffix
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+
+ IntegerSuffix?
+ { BOOST_WAVE_RET(T_INTLIT); }
+ */
+ }
+ else {
+ /*!re2c
+ LongIntegerSuffix
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+
+ IntegerSuffix?
+ { BOOST_WAVE_RET(T_INTLIT); }
+ */
+ }
+}
+
+/* this subscanner is invoked for C++0x extended character literals */
+extcharlit:
+{
+ /*!re2c
+ ((EscapeSequence | UniversalChar | any\[\n\r\\']) ['])
+ { BOOST_WAVE_RET(T_CHARLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+ */
+}
+
+/* this subscanner is invoked for C++0x extended character string literals */
+extstringlit:
+{
+ /*!re2c
+ ((EscapeSequence | UniversalChar | any\[\n\r\\"])* ["])
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+ */
+}
+
+extrawstringlit:
+{
+ // we have consumed the double quote but not the lparen
+ // at this point we may see a delimiter
+
+ /*!re2c
+ * {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string delimiter ('%c')", yych);
+ }
+
+ // delimiters are any character but parentheses, backslash, and whitespace
+ any\[()\\\t\v\f\r\n]
+ {
+ rawstringdelim += yych;
+ if (rawstringdelim.size() > 16)
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Raw string delimiter of excessive length (\"%s\") in input stream",
+ rawstringdelim.c_str());
+ }
+ goto extrawstringlit;
+ }
+
+ "("
+ {
+ rawstringdelim = ")" + rawstringdelim;
+ goto extrawstringbody;
+ }
+
+ */
+}
+
+extrawstringbody:
+{
+ /*!re2c
+
+ * {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string body ('%c')", yych);
+ }
+
+ Newline
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringbody;
+ }
+
+ (EscapeSequence | UniversalChar | any\["])
+ {
+ goto extrawstringbody;
+ }
+
+ ["]
+ {
+ // check to see if we have completed a delimiter
+ if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1),
+ (char *)(YYCURSOR - 1)) == rawstringdelim)
+ {
+ BOOST_WAVE_RET(T_RAWSTRINGLIT);
+ } else {
+ goto extrawstringbody;
+ }
+ }
+ */
+}
diff --git a/boost/wave/cpplexer/re2clex/cpp_re.hpp b/boost/wave/cpplexer/re2clex/cpp_re.hpp
index c34d2d2ae8..9cb64a7bd0 100644
--- a/boost/wave/cpplexer/re2clex/cpp_re.hpp
+++ b/boost/wave/cpplexer/re2clex/cpp_re.hpp
@@ -13,8 +13,11 @@
#if !defined(CPP_RE_HPP_B76C4F5E_63E9_4B8A_9975_EC32FA6BF027_INCLUDED)
#define CPP_RE_HPP_B76C4F5E_63E9_4B8A_9975_EC32FA6BF027_INCLUDED
+#include <boost/assert.hpp>
+
#include <boost/wave/wave_config.hpp>
#include <boost/wave/token_ids.hpp>
+#include <boost/wave/cpplexer/cpplexer_exceptions.hpp>
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
@@ -28,18 +31,358 @@
#endif
///////////////////////////////////////////////////////////////////////////////
+
+#define YYCTYPE uchar
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+#define YYFILL(n) \
+ { \
+ cursor = uchar_wrapper(fill(s, cursor), cursor.column); \
+ limit = uchar_wrapper (s->lim); \
+ } \
+ /**/
+
+#include <iostream>
+
+///////////////////////////////////////////////////////////////////////////////
+#define BOOST_WAVE_UPDATE_CURSOR() \
+ { \
+ s->line += count_backslash_newlines(s, cursor); \
+ s->curr_column = cursor.column; \
+ s->cur = cursor; \
+ s->lim = limit; \
+ s->ptr = marker; \
+ } \
+ /**/
+
+///////////////////////////////////////////////////////////////////////////////
+#define BOOST_WAVE_RET(i) \
+ { \
+ BOOST_WAVE_UPDATE_CURSOR() \
+ if (s->cur > s->lim) \
+ return T_EOF; /* may happen for empty files */ \
+ return (i); \
+ } \
+ /**/
+
+///////////////////////////////////////////////////////////////////////////////
+
namespace boost {
namespace wave {
namespace cpplexer {
namespace re2clex {
+template<typename Iterator>
struct Scanner;
///////////////////////////////////////////////////////////////////////////////
// The scanner function to call whenever a new token is requested
-BOOST_WAVE_DECL boost::wave::token_id scan(Scanner *s);
+template<typename Iterator>
+BOOST_WAVE_DECL boost::wave::token_id scan(Scanner<Iterator> *s);
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+// Utility functions
+
+#define RE2C_ASSERT BOOST_ASSERT
+
+template<typename Iterator>
+int get_one_char(Scanner<Iterator> *s)
+{
+ RE2C_ASSERT(s->first <= s->act && s->act <= s->last);
+ if (s->act < s->last)
+ return *(s->act)++;
+ return -1;
+}
+
+template<typename Iterator>
+std::ptrdiff_t rewind_stream (Scanner<Iterator> *s, int cnt)
+{
+ std::advance(s->act, cnt);
+ RE2C_ASSERT(s->first <= s->act && s->act <= s->last);
+ return std::distance(s->first, s->act);
+}
+
+template<typename Iterator>
+std::size_t get_first_eol_offset(Scanner<Iterator>* s)
+{
+ if (!AQ_EMPTY(s->eol_offsets))
+ {
+ return s->eol_offsets->queue[s->eol_offsets->head];
+ }
+ else
+ {
+ return (unsigned int)-1;
+ }
+}
+
+template<typename Iterator>
+void adjust_eol_offsets(Scanner<Iterator>* s, std::size_t adjustment)
+{
+ aq_queue q;
+ std::size_t i;
+
+ if (!s->eol_offsets)
+ s->eol_offsets = aq_create();
+
+ q = s->eol_offsets;
+
+ if (AQ_EMPTY(q))
+ return;
+
+ i = q->head;
+ while (i != q->tail)
+ {
+ if (adjustment > q->queue[i])
+ q->queue[i] = 0;
+ else
+ q->queue[i] -= adjustment;
+ ++i;
+ if (i == q->max_size)
+ i = 0;
+ }
+ if (adjustment > q->queue[i])
+ q->queue[i] = 0;
+ else
+ q->queue[i] -= adjustment;
+}
+
+template<typename Iterator>
+int count_backslash_newlines(Scanner<Iterator> *s, uchar *cursor)
+{
+ std::size_t diff, offset;
+ int skipped = 0;
+
+ /* figure out how many backslash-newlines skipped over unknowingly. */
+ diff = cursor - s->bot;
+ offset = get_first_eol_offset(s);
+ while (offset <= diff && offset != (unsigned int)-1)
+ {
+ skipped++;
+ aq_pop(s->eol_offsets);
+ offset = get_first_eol_offset(s);
+ }
+ return skipped;
+}
+
+BOOST_WAVE_DECL bool is_backslash(uchar *p, uchar *end, int &len);
+
+#define BOOST_WAVE_BSIZE 196608
+template<typename Iterator>
+uchar *fill(Scanner<Iterator> *s, uchar *cursor)
+{
+ using namespace std; // some systems have memcpy etc. in namespace std
+ if(!s->eof)
+ {
+ uchar* p;
+ std::ptrdiff_t cnt = s->tok - s->bot;
+ if(cnt)
+ {
+ if (NULL == s->lim)
+ s->lim = s->top;
+ memmove(s->bot, s->tok, s->lim - s->tok);
+ s->tok = s->cur = s->bot;
+ s->ptr -= cnt;
+ cursor -= cnt;
+ s->lim -= cnt;
+ adjust_eol_offsets(s, cnt);
+ }
+
+ if((s->top - s->lim) < BOOST_WAVE_BSIZE)
+ {
+ uchar *buf = (uchar*) malloc(((s->lim - s->bot) + BOOST_WAVE_BSIZE)*sizeof(uchar));
+ if (buf == 0)
+ {
+ (*s->error_proc)(s, lexing_exception::unexpected_error,
+ "Out of memory!");
+
+ /* get the scanner to stop */
+ *cursor = 0;
+ return cursor;
+ }
+
+ memmove(buf, s->tok, s->lim - s->tok);
+ s->tok = s->cur = buf;
+ s->ptr = &buf[s->ptr - s->bot];
+ cursor = &buf[cursor - s->bot];
+ s->lim = &buf[s->lim - s->bot];
+ s->top = &s->lim[BOOST_WAVE_BSIZE];
+ free(s->bot);
+ s->bot = buf;
+ }
+
+ cnt = std::distance(s->act, s->last);
+ if (cnt > BOOST_WAVE_BSIZE)
+ cnt = BOOST_WAVE_BSIZE;
+ uchar * dst = s->lim;
+ for (std::ptrdiff_t idx = 0; idx < cnt; ++idx)
+ {
+ *dst++ = *s->act++;
+ }
+
+ if (cnt != BOOST_WAVE_BSIZE)
+ {
+ s->eof = &s->lim[cnt]; *(s->eof)++ = '\0';
+ }
+
+ /* backslash-newline erasing time */
+
+ /* first scan for backslash-newline and erase them */
+ for (p = s->lim; p < s->lim + cnt - 2; ++p)
+ {
+ int len = 0;
+ if (is_backslash(p, s->lim + cnt, len))
+ {
+ if (*(p+len) == '\n')
+ {
+ int offset = len + 1;
+ memmove(p, p + offset, s->lim + cnt - p - offset);
+ cnt -= offset;
+ --p;
+ aq_enqueue(s->eol_offsets, p - s->bot + 1);
+ }
+ else if (*(p+len) == '\r')
+ {
+ if (*(p+len+1) == '\n')
+ {
+ int offset = len + 2;
+ memmove(p, p + offset, s->lim + cnt - p - offset);
+ cnt -= offset;
+ --p;
+ }
+ else
+ {
+ int offset = len + 1;
+ memmove(p, p + offset, s->lim + cnt - p - offset);
+ cnt -= offset;
+ --p;
+ }
+ aq_enqueue(s->eol_offsets, p - s->bot + 1);
+ }
+ }
+ }
+
+ /* FIXME: the following code should be fixed to recognize correctly the
+ trigraph backslash token */
+
+ /* check to see if what we just read ends in a backslash */
+ if (cnt >= 2)
+ {
+ uchar last = s->lim[cnt-1];
+ uchar last2 = s->lim[cnt-2];
+ /* check \ EOB */
+ if (last == '\\')
+ {
+ int next = get_one_char(s);
+ /* check for \ \n or \ \r or \ \r \n straddling the border */
+ if (next == '\n')
+ {
+ --cnt; /* chop the final \, we've already read the \n. */
+ aq_enqueue(s->eol_offsets, cnt + (s->lim - s->bot));
+ }
+ else if (next == '\r')
+ {
+ int next2 = get_one_char(s);
+ if (next2 == '\n')
+ {
+ --cnt; /* skip the backslash */
+ }
+ else
+ {
+ /* rewind one, and skip one char */
+ rewind_stream(s, -1);
+ --cnt;
+ }
+ aq_enqueue(s->eol_offsets, cnt + (s->lim - s->bot));
+ }
+ else if (next != -1) /* -1 means end of file */
+ {
+ /* next was something else, so rewind the stream */
+ rewind_stream(s, -1);
+ }
+ }
+ /* check \ \r EOB */
+ else if (last == '\r' && last2 == '\\')
+ {
+ int next = get_one_char(s);
+ if (next == '\n')
+ {
+ cnt -= 2; /* skip the \ \r */
+ }
+ else
+ {
+ /* rewind one, and skip two chars */
+ rewind_stream(s, -1);
+ cnt -= 2;
+ }
+ aq_enqueue(s->eol_offsets, cnt + (s->lim - s->bot));
+ }
+ /* check \ \n EOB */
+ else if (last == '\n' && last2 == '\\')
+ {
+ cnt -= 2;
+ aq_enqueue(s->eol_offsets, cnt + (s->lim - s->bot));
+ }
+ }
+
+ s->lim += cnt;
+ if (s->eof) /* eof needs adjusting if we erased backslash-newlines */
+ {
+ s->eof = s->lim;
+ *(s->eof)++ = '\0';
+ }
+ }
+ return cursor;
+}
+#undef BOOST_WAVE_BSIZE
///////////////////////////////////////////////////////////////////////////////
+// Special wrapper class holding the current cursor position
+struct BOOST_WAVE_DECL uchar_wrapper
+{
+ uchar_wrapper (uchar *base_cursor, std::size_t column = 1);
+
+ uchar_wrapper& operator++();
+
+ uchar_wrapper& operator--();
+
+ uchar operator* () const;
+
+ operator uchar *() const;
+
+ friend BOOST_WAVE_DECL std::ptrdiff_t
+ operator- (uchar_wrapper const& lhs, uchar_wrapper const& rhs);
+
+ uchar *base_cursor;
+ std::size_t column;
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+template<typename Iterator>
+boost::wave::token_id scan(Scanner<Iterator> *s)
+{
+ BOOST_ASSERT(0 != s->error_proc); // error handler must be given
+
+ uchar_wrapper cursor (s->tok = s->cur, s->column = s->curr_column);
+ uchar_wrapper marker (s->ptr);
+ uchar_wrapper limit (s->lim);
+
+ typedef BOOST_WAVE_STRINGTYPE string_type;
+ string_type rawstringdelim; // for use with C++11 raw string literals
+
+// include the correct Re2C token definition rules
+#if BOOST_WAVE_USE_STRICT_LEXER != 0
+#include "strict_cpp_re.inc"
+#else
+#include "cpp_re.inc"
+#endif
+
+} /* end of scan */
+
+///////////////////////////////////////////////////////////////////////////////
+
} // namespace re2clex
} // namespace cpplexer
} // namespace wave
@@ -49,6 +392,13 @@ BOOST_WAVE_DECL boost::wave::token_id scan(Scanner *s);
#pragma warning(pop)
#endif
+#undef BOOST_WAVE_RET
+#undef YYCTYPE
+#undef YYCURSOR
+#undef YYLIMIT
+#undef YYMARKER
+#undef YYFILL
+
// the suffix header occurs after all of the code
#ifdef BOOST_HAS_ABI_HEADERS
#include BOOST_ABI_SUFFIX
diff --git a/boost/wave/cpplexer/re2clex/cpp_re.inc b/boost/wave/cpplexer/re2clex/cpp_re.inc
new file mode 100644
index 0000000000..57a4a5cb88
--- /dev/null
+++ b/boost/wave/cpplexer/re2clex/cpp_re.inc
@@ -0,0 +1,7749 @@
+/* Generated by re2c 1.0.2 on Mon Nov 27 19:11:24 2017 */
+#line 1 "cpp.re"
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+
+ Copyright (c) 2001 Daniel C. Nuffer
+ Copyright (c) 2001-2013 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)
+
+ This is a lexer conforming to the Standard with a few exceptions.
+ So it does allow the '$' to be part of identifiers. If you need strict
+ Standards conforming behaviour, please include the lexer definition
+ provided in the file strict_cpp.re.
+
+ TODO:
+ handle errors better.
+=============================================================================*/
+
+#line 41 "cpp.re"
+
+
+
+#line 25 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ /* table 1 .. 8: 0 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 203, 8, 203, 203, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 203, 203, 138, 203, 203, 203, 203, 201,
+ 203, 203, 227, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 75, 204,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 216, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ /* table 9 .. 10: 256 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 0, 64, 64, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 64, 0, 0, 0, 128, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 128,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy6;
+ }
+ switch (yych) {
+ case 0x00: goto yy2;
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ case 0x08:
+ case 0x0E:
+ case 0x0F:
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ case 0x14:
+ case 0x15:
+ case 0x16:
+ case 0x17:
+ case 0x18:
+ case 0x19:
+ case 0x1A:
+ case 0x1B:
+ case 0x1C:
+ case 0x1D:
+ case 0x1E:
+ case 0x1F: goto yy4;
+ case '\t':
+ case '\n': goto yy9;
+ case '\v':
+ case '\f':
+ case '\r': goto yy11;
+ case ' ':
+ case '!': goto yy12;
+ case '"': goto yy14;
+ case '#': goto yy16;
+ case '$':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'S':
+ case 'T':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case 'h':
+ case 'j':
+ case 'k':
+ case 'q':
+ case 'y':
+ case 'z': goto yy18;
+ case '%': goto yy21;
+ case '&': goto yy23;
+ case '\'': goto yy25;
+ case '(': goto yy26;
+ case ')': goto yy28;
+ case '*': goto yy30;
+ case '+': goto yy32;
+ case ',': goto yy34;
+ case '-': goto yy36;
+ case '.': goto yy38;
+ case '/': goto yy40;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy42;
+ case ':': goto yy44;
+ case ';': goto yy46;
+ case '<': goto yy48;
+ case '=': goto yy50;
+ case '>': goto yy52;
+ case '?': goto yy54;
+ case 'L': goto yy57;
+ case 'R': goto yy58;
+ case 'U': goto yy59;
+ case '[': goto yy60;
+ case '\\': goto yy62;
+ case ']': goto yy63;
+ case '^': goto yy65;
+ case '_': goto yy67;
+ case 'a': goto yy68;
+ case 'b': goto yy69;
+ case 'c': goto yy70;
+ case 'd': goto yy71;
+ case 'e': goto yy72;
+ case 'f': goto yy73;
+ case 'g': goto yy74;
+ case 'i': goto yy75;
+ case 'l': goto yy76;
+ case 'm': goto yy77;
+ case 'n': goto yy78;
+ case 'o': goto yy79;
+ case 'p': goto yy80;
+ case 'r': goto yy81;
+ case 's': goto yy82;
+ case 't': goto yy83;
+ case 'u': goto yy84;
+ case 'v': goto yy85;
+ case 'w': goto yy86;
+ case 'x': goto yy87;
+ case '{': goto yy88;
+ case '|': goto yy90;
+ case '}': goto yy92;
+ case '~': goto yy94;
+ default: goto yy56;
+ }
+yy2:
+ ++YYCURSOR;
+#line 336 "cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+ BOOST_WAVE_RET(T_EOF);
+ }
+#line 242 "cpp_re.inc"
+yy4:
+ ++YYCURSOR;
+#line 349 "cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 252 "cpp_re.inc"
+yy6:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy6;
+ }
+#line 326 "cpp.re"
+ { BOOST_WAVE_RET(T_SPACE); }
+#line 262 "cpp_re.inc"
+yy9:
+ ++YYCURSOR;
+yy10:
+#line 329 "cpp.re"
+ {
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_NEWLINE);
+ }
+#line 272 "cpp_re.inc"
+yy11:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy9;
+ goto yy10;
+yy12:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy96;
+#line 202 "cpp.re"
+ { BOOST_WAVE_RET(T_NOT); }
+#line 282 "cpp_re.inc"
+yy14:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy99;
+ } else {
+ if (yych <= '\f') goto yy99;
+ if (yych >= ' ') goto yy99;
+ }
+yy15:
+#line 346 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 295 "cpp_re.inc"
+yy16:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'c') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy106;
+ } else {
+ if (yych <= '\f') goto yy106;
+ if (yych >= ' ') goto yy106;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych == '#') goto yy107;
+ } else {
+ if (yych <= '/') goto yy106;
+ if (yych == '?') goto yy110;
+ }
+ }
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'i') {
+ if (yych <= 'e') goto yy106;
+ if (yych >= 'i') goto yy106;
+ } else {
+ if (yych == 'l') goto yy106;
+ if (yych >= 'p') goto yy106;
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych == 'r') goto yy106;
+ } else {
+ if (yych == 'v') goto yy17;
+ if (yych <= 'w') goto yy106;
+ }
+ }
+ }
+yy17:
+#line 151 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND); }
+#line 336 "cpp_re.inc"
+yy18:
+ yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy19:
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy20:
+#line 297 "cpp.re"
+ { BOOST_WAVE_RET(T_IDENTIFIER); }
+#line 351 "cpp_re.inc"
+yy21:
+ yych = *++YYCURSOR;
+ if (yych <= '<') {
+ if (yych == ':') goto yy121;
+ } else {
+ if (yych <= '=') goto yy123;
+ if (yych <= '>') goto yy125;
+ }
+#line 190 "cpp.re"
+ { BOOST_WAVE_RET(T_PERCENT); }
+#line 362 "cpp_re.inc"
+yy23:
+ yych = *++YYCURSOR;
+ if (yych == '&') goto yy127;
+ if (yych == '=') goto yy129;
+#line 194 "cpp.re"
+ { BOOST_WAVE_RET(T_AND); }
+#line 369 "cpp_re.inc"
+yy25:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy132;
+ if (yych <= '\n') goto yy15;
+ goto yy132;
+ } else {
+ if (yych <= 0x1F) goto yy15;
+ if (yych == '\'') goto yy15;
+ goto yy132;
+ }
+yy26:
+ ++YYCURSOR;
+#line 159 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTPAREN); }
+#line 386 "cpp_re.inc"
+yy28:
+ ++YYCURSOR;
+#line 160 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTPAREN); }
+#line 391 "cpp_re.inc"
+yy30:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy135;
+#line 188 "cpp.re"
+ { BOOST_WAVE_RET(T_STAR); }
+#line 397 "cpp_re.inc"
+yy32:
+ yych = *++YYCURSOR;
+ if (yych == '+') goto yy137;
+ if (yych == '=') goto yy139;
+#line 186 "cpp.re"
+ { BOOST_WAVE_RET(T_PLUS); }
+#line 404 "cpp_re.inc"
+yy34:
+ ++YYCURSOR;
+#line 238 "cpp.re"
+ { BOOST_WAVE_RET(T_COMMA); }
+#line 409 "cpp_re.inc"
+yy36:
+ yych = *++YYCURSOR;
+ if (yych <= '<') {
+ if (yych == '-') goto yy141;
+ } else {
+ if (yych <= '=') goto yy143;
+ if (yych <= '>') goto yy145;
+ }
+#line 187 "cpp.re"
+ { BOOST_WAVE_RET(T_MINUS); }
+#line 420 "cpp_re.inc"
+yy38:
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+ if (yych == '*') goto yy147;
+ } else {
+ if (yych <= '.') goto yy149;
+ if (yych <= '/') goto yy39;
+ if (yych <= '9') goto yy42;
+ }
+yy39:
+#line 175 "cpp.re"
+ { BOOST_WAVE_RET(T_DOT); }
+#line 434 "cpp_re.inc"
+yy40:
+ yych = *++YYCURSOR;
+ if (yych <= '.') {
+ if (yych == '*') goto yy150;
+ } else {
+ if (yych <= '/') goto yy152;
+ if (yych == '=') goto yy154;
+ }
+#line 189 "cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDE); }
+#line 445 "cpp_re.inc"
+yy42:
+ ++YYCURSOR;
+#line 46 "cpp.re"
+ { goto pp_number; }
+#line 450 "cpp_re.inc"
+yy44:
+ yych = *++YYCURSOR;
+ if (yych == ':') goto yy156;
+ if (yych == '>') goto yy158;
+#line 162 "cpp.re"
+ { BOOST_WAVE_RET(T_COLON); }
+#line 457 "cpp_re.inc"
+yy46:
+ ++YYCURSOR;
+#line 161 "cpp.re"
+ { BOOST_WAVE_RET(T_SEMICOLON); }
+#line 462 "cpp_re.inc"
+yy48:
+ yych = *++YYCURSOR;
+ if (yych <= ':') {
+ if (yych == '%') goto yy160;
+ if (yych >= ':') goto yy162;
+ } else {
+ if (yych <= ';') goto yy49;
+ if (yych <= '<') goto yy164;
+ if (yych <= '=') goto yy166;
+ }
+yy49:
+#line 205 "cpp.re"
+ { BOOST_WAVE_RET(T_LESS); }
+#line 476 "cpp_re.inc"
+yy50:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy168;
+#line 204 "cpp.re"
+ { BOOST_WAVE_RET(T_ASSIGN); }
+#line 482 "cpp_re.inc"
+yy52:
+ yych = *++YYCURSOR;
+ if (yych <= '<') goto yy53;
+ if (yych <= '=') goto yy170;
+ if (yych <= '>') goto yy172;
+yy53:
+#line 206 "cpp.re"
+ { BOOST_WAVE_RET(T_GREATER); }
+#line 491 "cpp_re.inc"
+yy54:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy174;
+yy55:
+#line 164 "cpp.re"
+ { BOOST_WAVE_RET(T_QUESTION_MARK); }
+#line 499 "cpp_re.inc"
+yy56:
+ ++YYCURSOR;
+ goto yy15;
+yy57:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '&') {
+ if (yych == '"') goto yy98;
+ goto yy19;
+ } else {
+ if (yych <= '\'') goto yy175;
+ if (yych != 'R') goto yy19;
+ }
+yy58:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy176;
+ goto yy19;
+yy59:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '&') {
+ if (yych == '"') goto yy178;
+ goto yy19;
+ } else {
+ if (yych <= '\'') goto yy180;
+ if (yych == 'R') goto yy182;
+ goto yy19;
+ }
+yy60:
+ ++YYCURSOR;
+#line 145 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET); }
+#line 533 "cpp_re.inc"
+yy62:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'U') goto yy183;
+ if (yych == 'u') goto yy184;
+ goto yy15;
+yy63:
+ ++YYCURSOR;
+#line 148 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+#line 544 "cpp_re.inc"
+yy65:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy185;
+#line 191 "cpp.re"
+ { BOOST_WAVE_RET(T_XOR); }
+#line 550 "cpp_re.inc"
+yy67:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case '_': goto yy187;
+ case 'a': goto yy188;
+ case 'b': goto yy189;
+ case 'c': goto yy190;
+ case 'd': goto yy191;
+ case 'f': goto yy192;
+ case 'i': goto yy193;
+ case 's': goto yy194;
+ default: goto yy19;
+ }
+yy68:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'l': goto yy195;
+ case 'n': goto yy196;
+ case 's': goto yy197;
+ case 'u': goto yy198;
+ default: goto yy19;
+ }
+yy69:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'n') {
+ if (yych == 'i') goto yy199;
+ goto yy19;
+ } else {
+ if (yych <= 'o') goto yy200;
+ if (yych == 'r') goto yy201;
+ goto yy19;
+ }
+yy70:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy202;
+ case 'h': goto yy203;
+ case 'l': goto yy204;
+ case 'o': goto yy205;
+ default: goto yy19;
+ }
+yy71:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy206;
+ goto yy19;
+ } else {
+ if (yych <= 'o') goto yy207;
+ if (yych == 'y') goto yy209;
+ goto yy19;
+ }
+yy72:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'm') {
+ if (yych == 'l') goto yy210;
+ goto yy19;
+ } else {
+ if (yych <= 'n') goto yy211;
+ if (yych == 'x') goto yy212;
+ goto yy19;
+ }
+yy73:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy213;
+ case 'l': goto yy214;
+ case 'o': goto yy215;
+ case 'r': goto yy216;
+ default: goto yy19;
+ }
+yy74:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy217;
+ goto yy19;
+yy75:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'l') {
+ if (yych == 'f') goto yy218;
+ goto yy19;
+ } else {
+ if (yych <= 'm') goto yy220;
+ if (yych <= 'n') goto yy221;
+ goto yy19;
+ }
+yy76:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy222;
+ goto yy19;
+yy77:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy223;
+ goto yy19;
+yy78:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy224;
+ case 'e': goto yy225;
+ case 'o': goto yy226;
+ case 'u': goto yy227;
+ default: goto yy19;
+ }
+yy79:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy228;
+ if (yych == 'r') goto yy229;
+ goto yy19;
+yy80:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy231;
+ if (yych == 'u') goto yy232;
+ goto yy19;
+yy81:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy233;
+ goto yy19;
+yy82:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 's') {
+ if (yych <= 'g') goto yy19;
+ if (yych <= 'h') goto yy234;
+ if (yych <= 'i') goto yy235;
+ goto yy19;
+ } else {
+ if (yych <= 't') goto yy236;
+ if (yych == 'w') goto yy237;
+ goto yy19;
+ }
+yy83:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'e': goto yy238;
+ case 'h': goto yy239;
+ case 'r': goto yy240;
+ case 'y': goto yy241;
+ default: goto yy19;
+ }
+yy84:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '8') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy178;
+ goto yy19;
+ } else {
+ if (yych <= '\'') goto yy180;
+ if (yych <= '7') goto yy19;
+ goto yy242;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == 'R') goto yy182;
+ goto yy19;
+ } else {
+ if (yych <= 'n') goto yy243;
+ if (yych == 's') goto yy244;
+ goto yy19;
+ }
+ }
+yy85:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy245;
+ if (yych == 'o') goto yy246;
+ goto yy19;
+yy86:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy247;
+ if (yych == 'h') goto yy248;
+ goto yy19;
+yy87:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy249;
+ goto yy19;
+yy88:
+ ++YYCURSOR;
+#line 139 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE); }
+#line 747 "cpp_re.inc"
+yy90:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '>') {
+ if (yych == '=') goto yy250;
+ } else {
+ if (yych <= '?') goto yy252;
+ if (yych == '|') goto yy253;
+ }
+yy91:
+#line 196 "cpp.re"
+ { BOOST_WAVE_RET(T_OR); }
+#line 760 "cpp_re.inc"
+yy92:
+ ++YYCURSOR;
+#line 142 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE); }
+#line 765 "cpp_re.inc"
+yy94:
+ ++YYCURSOR;
+#line 199 "cpp.re"
+ { BOOST_WAVE_RET(T_COMPL); }
+#line 770 "cpp_re.inc"
+yy96:
+ ++YYCURSOR;
+#line 225 "cpp.re"
+ { BOOST_WAVE_RET(T_NOTEQUAL); }
+#line 775 "cpp_re.inc"
+yy98:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy99:
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '"') goto yy101;
+ if (yych <= '?') goto yy103;
+ goto yy104;
+yy100:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 56) {
+ if (yyaccept <= 28) {
+ if (yyaccept <= 14) {
+ if (yyaccept <= 7) {
+ if (yyaccept <= 3) {
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy15;
+ } else {
+ goto yy17;
+ }
+ } else {
+ if (yyaccept == 2) {
+ goto yy20;
+ } else {
+ goto yy39;
+ }
+ }
+ } else {
+ if (yyaccept <= 5) {
+ if (yyaccept == 4) {
+ goto yy55;
+ } else {
+ goto yy91;
+ }
+ } else {
+ if (yyaccept == 6) {
+ goto yy122;
+ } else {
+ goto yy208;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 11) {
+ if (yyaccept <= 9) {
+ if (yyaccept == 8) {
+ goto yy219;
+ } else {
+ goto yy230;
+ }
+ } else {
+ if (yyaccept == 10) {
+ goto yy268;
+ } else {
+ goto yy293;
+ }
+ }
+ } else {
+ if (yyaccept <= 13) {
+ if (yyaccept == 12) {
+ goto yy303;
+ } else {
+ goto yy307;
+ }
+ } else {
+ goto yy328;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 21) {
+ if (yyaccept <= 18) {
+ if (yyaccept <= 16) {
+ if (yyaccept == 15) {
+ goto yy330;
+ } else {
+ goto yy353;
+ }
+ } else {
+ if (yyaccept == 17) {
+ goto yy359;
+ } else {
+ goto yy364;
+ }
+ }
+ } else {
+ if (yyaccept <= 20) {
+ if (yyaccept == 19) {
+ goto yy367;
+ } else {
+ goto yy388;
+ }
+ } else {
+ goto yy399;
+ }
+ }
+ } else {
+ if (yyaccept <= 25) {
+ if (yyaccept <= 23) {
+ if (yyaccept == 22) {
+ goto yy446;
+ } else {
+ goto yy456;
+ }
+ } else {
+ if (yyaccept == 24) {
+ goto yy460;
+ } else {
+ goto yy463;
+ }
+ }
+ } else {
+ if (yyaccept <= 27) {
+ if (yyaccept == 26) {
+ goto yy466;
+ } else {
+ goto yy477;
+ }
+ } else {
+ goto yy479;
+ }
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 42) {
+ if (yyaccept <= 35) {
+ if (yyaccept <= 32) {
+ if (yyaccept <= 30) {
+ if (yyaccept == 29) {
+ goto yy487;
+ } else {
+ goto yy491;
+ }
+ } else {
+ if (yyaccept == 31) {
+ goto yy513;
+ } else {
+ goto yy517;
+ }
+ }
+ } else {
+ if (yyaccept <= 34) {
+ if (yyaccept == 33) {
+ goto yy524;
+ } else {
+ goto yy102;
+ }
+ } else {
+ goto yy278;
+ }
+ }
+ } else {
+ if (yyaccept <= 39) {
+ if (yyaccept <= 37) {
+ if (yyaccept == 36) {
+ goto yy563;
+ } else {
+ goto yy574;
+ }
+ } else {
+ if (yyaccept == 38) {
+ goto yy576;
+ } else {
+ goto yy578;
+ }
+ }
+ } else {
+ if (yyaccept <= 41) {
+ if (yyaccept == 40) {
+ goto yy582;
+ } else {
+ goto yy584;
+ }
+ } else {
+ goto yy586;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 49) {
+ if (yyaccept <= 46) {
+ if (yyaccept <= 44) {
+ if (yyaccept == 43) {
+ goto yy597;
+ } else {
+ goto yy599;
+ }
+ } else {
+ if (yyaccept == 45) {
+ goto yy610;
+ } else {
+ goto yy618;
+ }
+ }
+ } else {
+ if (yyaccept <= 48) {
+ if (yyaccept == 47) {
+ goto yy627;
+ } else {
+ goto yy632;
+ }
+ } else {
+ goto yy635;
+ }
+ }
+ } else {
+ if (yyaccept <= 53) {
+ if (yyaccept <= 51) {
+ if (yyaccept == 50) {
+ goto yy640;
+ } else {
+ goto yy669;
+ }
+ } else {
+ if (yyaccept == 52) {
+ goto yy672;
+ } else {
+ goto yy674;
+ }
+ }
+ } else {
+ if (yyaccept <= 55) {
+ if (yyaccept == 54) {
+ goto yy682;
+ } else {
+ goto yy684;
+ }
+ } else {
+ goto yy693;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 85) {
+ if (yyaccept <= 71) {
+ if (yyaccept <= 64) {
+ if (yyaccept <= 60) {
+ if (yyaccept <= 58) {
+ if (yyaccept == 57) {
+ goto yy695;
+ } else {
+ goto yy699;
+ }
+ } else {
+ if (yyaccept == 59) {
+ goto yy701;
+ } else {
+ goto yy703;
+ }
+ }
+ } else {
+ if (yyaccept <= 62) {
+ if (yyaccept == 61) {
+ goto yy705;
+ } else {
+ goto yy707;
+ }
+ } else {
+ if (yyaccept == 63) {
+ goto yy712;
+ } else {
+ goto yy718;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 68) {
+ if (yyaccept <= 66) {
+ if (yyaccept == 65) {
+ goto yy722;
+ } else {
+ goto yy724;
+ }
+ } else {
+ if (yyaccept == 67) {
+ goto yy726;
+ } else {
+ goto yy728;
+ }
+ }
+ } else {
+ if (yyaccept <= 70) {
+ if (yyaccept == 69) {
+ goto yy730;
+ } else {
+ goto yy732;
+ }
+ } else {
+ goto yy737;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 78) {
+ if (yyaccept <= 75) {
+ if (yyaccept <= 73) {
+ if (yyaccept == 72) {
+ goto yy744;
+ } else {
+ goto yy759;
+ }
+ } else {
+ if (yyaccept == 74) {
+ goto yy761;
+ } else {
+ goto yy763;
+ }
+ }
+ } else {
+ if (yyaccept <= 77) {
+ if (yyaccept == 76) {
+ goto yy765;
+ } else {
+ goto yy769;
+ }
+ } else {
+ goto yy772;
+ }
+ }
+ } else {
+ if (yyaccept <= 82) {
+ if (yyaccept <= 80) {
+ if (yyaccept == 79) {
+ goto yy774;
+ } else {
+ goto yy782;
+ }
+ } else {
+ if (yyaccept == 81) {
+ goto yy786;
+ } else {
+ goto yy790;
+ }
+ }
+ } else {
+ if (yyaccept <= 84) {
+ if (yyaccept == 83) {
+ goto yy793;
+ } else {
+ goto yy801;
+ }
+ } else {
+ goto yy805;
+ }
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 99) {
+ if (yyaccept <= 92) {
+ if (yyaccept <= 89) {
+ if (yyaccept <= 87) {
+ if (yyaccept == 86) {
+ goto yy808;
+ } else {
+ goto yy811;
+ }
+ } else {
+ if (yyaccept == 88) {
+ goto yy815;
+ } else {
+ goto yy820;
+ }
+ }
+ } else {
+ if (yyaccept <= 91) {
+ if (yyaccept == 90) {
+ goto yy822;
+ } else {
+ goto yy824;
+ }
+ } else {
+ goto yy828;
+ }
+ }
+ } else {
+ if (yyaccept <= 96) {
+ if (yyaccept <= 94) {
+ if (yyaccept == 93) {
+ goto yy830;
+ } else {
+ goto yy833;
+ }
+ } else {
+ if (yyaccept == 95) {
+ goto yy836;
+ } else {
+ goto yy838;
+ }
+ }
+ } else {
+ if (yyaccept <= 98) {
+ if (yyaccept == 97) {
+ goto yy841;
+ } else {
+ goto yy846;
+ }
+ } else {
+ goto yy849;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 106) {
+ if (yyaccept <= 103) {
+ if (yyaccept <= 101) {
+ if (yyaccept == 100) {
+ goto yy851;
+ } else {
+ goto yy853;
+ }
+ } else {
+ if (yyaccept == 102) {
+ goto yy862;
+ } else {
+ goto yy864;
+ }
+ }
+ } else {
+ if (yyaccept <= 105) {
+ if (yyaccept == 104) {
+ goto yy866;
+ } else {
+ goto yy869;
+ }
+ } else {
+ goto yy872;
+ }
+ }
+ } else {
+ if (yyaccept <= 110) {
+ if (yyaccept <= 108) {
+ if (yyaccept == 107) {
+ goto yy874;
+ } else {
+ goto yy889;
+ }
+ } else {
+ if (yyaccept == 109) {
+ goto yy906;
+ } else {
+ goto yy910;
+ }
+ }
+ } else {
+ if (yyaccept <= 112) {
+ if (yyaccept == 111) {
+ goto yy914;
+ } else {
+ goto yy917;
+ }
+ } else {
+ goto yy921;
+ }
+ }
+ }
+ }
+ }
+ }
+yy101:
+ ++YYCURSOR;
+yy102:
+#line 256 "cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1248 "cpp_re.inc"
+yy103:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '"') goto yy101;
+ if (yych <= '?') goto yy255;
+yy104:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= '\'') goto yy98;
+ if (yych <= '/') goto yy100;
+ goto yy98;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= 'U') goto yy257;
+ if (yych == '\\') goto yy98;
+ goto yy100;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy98;
+ if (yych <= 'e') goto yy100;
+ goto yy98;
+ } else {
+ if (yych == 'n') goto yy98;
+ if (yych <= 'q') goto yy100;
+ goto yy98;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy100;
+ if (yych <= 't') goto yy98;
+ goto yy258;
+ } else {
+ if (yych <= 'v') goto yy98;
+ if (yych == 'x') goto yy259;
+ goto yy100;
+ }
+ }
+ }
+yy105:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+ yych = *YYCURSOR;
+yy106:
+ if (yych <= 'h') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy105;
+ goto yy100;
+ } else {
+ if (yych <= '\f') goto yy105;
+ if (yych <= 0x1F) goto yy100;
+ goto yy105;
+ }
+ } else {
+ if (yych <= 'c') {
+ if (yych == '/') goto yy109;
+ goto yy100;
+ } else {
+ if (yych <= 'd') goto yy111;
+ if (yych <= 'e') goto yy112;
+ goto yy100;
+ }
+ }
+ } else {
+ if (yych <= 'q') {
+ if (yych <= 'l') {
+ if (yych <= 'i') goto yy113;
+ if (yych <= 'k') goto yy100;
+ goto yy114;
+ } else {
+ if (yych == 'p') goto yy115;
+ goto yy100;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 'r') goto yy116;
+ if (yych <= 't') goto yy100;
+ goto yy117;
+ } else {
+ if (yych == 'w') goto yy118;
+ goto yy100;
+ }
+ }
+ }
+yy107:
+ ++YYCURSOR;
+#line 154 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND); }
+#line 1356 "cpp_re.inc"
+yy109:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '*') goto yy260;
+ goto yy100;
+yy110:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy262;
+ goto yy100;
+yy111:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy263;
+ goto yy100;
+yy112:
+ yych = *++YYCURSOR;
+ if (yych <= 'm') {
+ if (yych == 'l') goto yy264;
+ goto yy100;
+ } else {
+ if (yych <= 'n') goto yy265;
+ if (yych == 'r') goto yy266;
+ goto yy100;
+ }
+yy113:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy267;
+ if (yych == 'n') goto yy269;
+ goto yy100;
+yy114:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy270;
+ goto yy100;
+yy115:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy271;
+ goto yy100;
+yy116:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy272;
+ goto yy100;
+yy117:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy273;
+ goto yy100;
+yy118:
+ yych = *++YYCURSOR;
+ if (yych == 'a') goto yy274;
+ goto yy100;
+yy119:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '?') goto yy275;
+ goto yy100;
+yy120:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == 'U') goto yy183;
+ if (yych == 'u') goto yy184;
+ goto yy100;
+yy121:
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'e') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy106;
+ } else {
+ if (yych <= '\f') goto yy106;
+ if (yych >= ' ') goto yy106;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych == '%') goto yy276;
+ } else {
+ if (yych <= '/') goto yy106;
+ if (yych >= 'd') goto yy106;
+ }
+ }
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'k') {
+ if (yych == 'i') goto yy106;
+ } else {
+ if (yych <= 'l') goto yy106;
+ if (yych >= 'p') goto yy106;
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych == 'r') goto yy106;
+ } else {
+ if (yych == 'v') goto yy122;
+ if (yych <= 'w') goto yy106;
+ }
+ }
+ }
+yy122:
+#line 152 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_ALT); }
+#line 1458 "cpp_re.inc"
+yy123:
+ ++YYCURSOR;
+#line 211 "cpp.re"
+ { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+#line 1463 "cpp_re.inc"
+yy125:
+ ++YYCURSOR;
+#line 144 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+#line 1468 "cpp_re.inc"
+yy127:
+ ++YYCURSOR;
+#line 229 "cpp.re"
+ { BOOST_WAVE_RET(T_ANDAND); }
+#line 1473 "cpp_re.inc"
+yy129:
+ ++YYCURSOR;
+#line 215 "cpp.re"
+ { BOOST_WAVE_RET(T_ANDASSIGN); }
+#line 1478 "cpp_re.inc"
+yy131:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy132:
+ if (yybm[0+yych] & 2) {
+ goto yy131;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '\'') goto yy277;
+ if (yych >= '@') goto yy134;
+yy133:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy131;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '\'') goto yy277;
+ if (yych <= '?') goto yy279;
+yy134:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy131;
+ goto yy100;
+ } else {
+ if (yych <= '\'') goto yy131;
+ if (yych <= '/') goto yy100;
+ goto yy131;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy131;
+ goto yy100;
+ } else {
+ if (yych <= 'U') goto yy281;
+ if (yych == '\\') goto yy131;
+ goto yy100;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy131;
+ if (yych <= 'e') goto yy100;
+ goto yy131;
+ } else {
+ if (yych == 'n') goto yy131;
+ if (yych <= 'q') goto yy100;
+ goto yy131;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy100;
+ if (yych <= 't') goto yy131;
+ goto yy282;
+ } else {
+ if (yych <= 'v') goto yy131;
+ if (yych == 'x') goto yy283;
+ goto yy100;
+ }
+ }
+ }
+yy135:
+ ++YYCURSOR;
+#line 209 "cpp.re"
+ { BOOST_WAVE_RET(T_STARASSIGN); }
+#line 1551 "cpp_re.inc"
+yy137:
+ ++YYCURSOR;
+#line 236 "cpp.re"
+ { BOOST_WAVE_RET(T_PLUSPLUS); }
+#line 1556 "cpp_re.inc"
+yy139:
+ ++YYCURSOR;
+#line 207 "cpp.re"
+ { BOOST_WAVE_RET(T_PLUSASSIGN); }
+#line 1561 "cpp_re.inc"
+yy141:
+ ++YYCURSOR;
+#line 237 "cpp.re"
+ { BOOST_WAVE_RET(T_MINUSMINUS); }
+#line 1566 "cpp_re.inc"
+yy143:
+ ++YYCURSOR;
+#line 208 "cpp.re"
+ { BOOST_WAVE_RET(T_MINUSASSIGN); }
+#line 1571 "cpp_re.inc"
+yy145:
+ yych = *++YYCURSOR;
+ if (yych == '*') goto yy284;
+#line 249 "cpp.re"
+ { BOOST_WAVE_RET(T_ARROW); }
+#line 1577 "cpp_re.inc"
+yy147:
+ ++YYCURSOR;
+#line 177 "cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_DOT);
+ }
+ else {
+ BOOST_WAVE_RET(T_DOTSTAR);
+ }
+ }
+#line 1590 "cpp_re.inc"
+yy149:
+ yych = *++YYCURSOR;
+ if (yych == '.') goto yy286;
+ goto yy100;
+yy150:
+ ++YYCURSOR;
+#line 44 "cpp.re"
+ { goto ccomment; }
+#line 1599 "cpp_re.inc"
+yy152:
+ ++YYCURSOR;
+#line 45 "cpp.re"
+ { goto cppcomment; }
+#line 1604 "cpp_re.inc"
+yy154:
+ ++YYCURSOR;
+#line 210 "cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+#line 1609 "cpp_re.inc"
+yy156:
+ ++YYCURSOR;
+#line 166 "cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_COLON);
+ }
+ else {
+ BOOST_WAVE_RET(T_COLON_COLON);
+ }
+ }
+#line 1622 "cpp_re.inc"
+yy158:
+ ++YYCURSOR;
+#line 150 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+#line 1627 "cpp_re.inc"
+yy160:
+ ++YYCURSOR;
+#line 141 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+#line 1632 "cpp_re.inc"
+yy162:
+ ++YYCURSOR;
+#line 147 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+#line 1637 "cpp_re.inc"
+yy164:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy288;
+#line 220 "cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFT); }
+#line 1643 "cpp_re.inc"
+yy166:
+ ++YYCURSOR;
+#line 227 "cpp.re"
+ { BOOST_WAVE_RET(T_LESSEQUAL); }
+#line 1648 "cpp_re.inc"
+yy168:
+ ++YYCURSOR;
+#line 224 "cpp.re"
+ { BOOST_WAVE_RET(T_EQUAL); }
+#line 1653 "cpp_re.inc"
+yy170:
+ ++YYCURSOR;
+#line 228 "cpp.re"
+ { BOOST_WAVE_RET(T_GREATEREQUAL); }
+#line 1658 "cpp_re.inc"
+yy172:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy290;
+#line 221 "cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+#line 1664 "cpp_re.inc"
+yy174:
+ yych = *++YYCURSOR;
+ switch (yych) {
+ case '!': goto yy292;
+ case '\'': goto yy294;
+ case '(': goto yy296;
+ case ')': goto yy298;
+ case '-': goto yy300;
+ case '/': goto yy302;
+ case '<': goto yy304;
+ case '=': goto yy306;
+ case '>': goto yy308;
+ default: goto yy100;
+ }
+yy175:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy100;
+ goto yy132;
+yy176:
+ ++YYCURSOR;
+#line 259 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1695 "cpp_re.inc"
+yy178:
+ ++YYCURSOR;
+#line 278 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1705 "cpp_re.inc"
+yy180:
+ ++YYCURSOR;
+#line 270 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extcharlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1715 "cpp_re.inc"
+yy182:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy310;
+ goto yy19;
+yy183:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy312;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy312;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy312;
+ goto yy100;
+ }
+yy184:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy313;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy313;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy313;
+ goto yy100;
+ }
+yy185:
+ ++YYCURSOR;
+#line 212 "cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN); }
+#line 1753 "cpp_re.inc"
+yy187:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy188;
+ case 'b': goto yy189;
+ case 'c': goto yy190;
+ case 'd': goto yy191;
+ case 'e': goto yy314;
+ case 'f': goto yy315;
+ case 'i': goto yy316;
+ case 'l': goto yy317;
+ case 's': goto yy194;
+ case 't': goto yy318;
+ default: goto yy19;
+ }
+yy188:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy319;
+ goto yy19;
+yy189:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy320;
+ goto yy19;
+yy190:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy321;
+ goto yy19;
+yy191:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy322;
+ goto yy19;
+yy192:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy323;
+ goto yy19;
+yy193:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy324;
+ goto yy19;
+yy194:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy325;
+ goto yy19;
+yy195:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy326;
+ goto yy19;
+yy196:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy327;
+ goto yy19;
+yy197:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy329;
+ goto yy19;
+yy198:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy331;
+ goto yy19;
+yy199:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy332;
+ goto yy19;
+yy200:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy333;
+ goto yy19;
+yy201:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy334;
+ goto yy19;
+yy202:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'r') goto yy19;
+ if (yych <= 's') goto yy335;
+ if (yych <= 't') goto yy336;
+ goto yy19;
+yy203:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy337;
+ goto yy19;
+yy204:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy338;
+ goto yy19;
+yy205:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'l') goto yy19;
+ if (yych <= 'm') goto yy339;
+ if (yych <= 'n') goto yy340;
+ goto yy19;
+yy206:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'e') {
+ if (yych == 'c') goto yy341;
+ goto yy19;
+ } else {
+ if (yych <= 'f') goto yy342;
+ if (yych == 'l') goto yy343;
+ goto yy19;
+ }
+yy207:
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '9') {
+ if (yych == '$') goto yy18;
+ if (yych >= '0') goto yy18;
+ } else {
+ if (yych == '?') goto yy119;
+ if (yych >= 'A') goto yy18;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych == '\\') goto yy120;
+ if (yych >= '_') goto yy18;
+ } else {
+ if (yych <= 't') {
+ if (yych >= 'a') goto yy18;
+ } else {
+ if (yych <= 'u') goto yy344;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+ }
+yy208:
+#line 67 "cpp.re"
+ { BOOST_WAVE_RET(T_DO); }
+#line 1902 "cpp_re.inc"
+yy209:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy345;
+ goto yy19;
+yy210:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy346;
+ goto yy19;
+yy211:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy347;
+ goto yy19;
+yy212:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy348;
+ if (yych == 't') goto yy349;
+ goto yy19;
+yy213:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy350;
+ goto yy19;
+yy214:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy351;
+ goto yy19;
+yy215:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy352;
+ goto yy19;
+yy216:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy354;
+ goto yy19;
+yy217:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy355;
+ goto yy19;
+yy218:
+ yyaccept = 8;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy219:
+#line 80 "cpp.re"
+ { BOOST_WAVE_RET(T_IF); }
+#line 1960 "cpp_re.inc"
+yy220:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy356;
+ goto yy19;
+yy221:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy357;
+ if (yych == 't') goto yy358;
+ goto yy19;
+yy222:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy360;
+ goto yy19;
+yy223:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy361;
+ goto yy19;
+yy224:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy362;
+ goto yy19;
+yy225:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'w') goto yy363;
+ goto yy19;
+yy226:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy365;
+ if (yych == 't') goto yy366;
+ goto yy19;
+yy227:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy368;
+ goto yy19;
+yy228:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy369;
+ goto yy19;
+yy229:
+ yyaccept = 9;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') {
+ if (yych == '$') goto yy18;
+ } else {
+ if (yych <= '9') goto yy18;
+ if (yych == '?') goto yy119;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= 'Z') goto yy18;
+ if (yych == '\\') goto yy120;
+ } else {
+ if (yych <= '_') goto yy370;
+ if (yych <= '`') goto yy230;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+yy230:
+#line 234 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+#line 2031 "cpp_re.inc"
+yy231:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy371;
+ if (yych == 'o') goto yy372;
+ goto yy19;
+yy232:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'b') goto yy373;
+ goto yy19;
+yy233:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'h') {
+ if (yych == 'g') goto yy374;
+ goto yy19;
+ } else {
+ if (yych <= 'i') goto yy375;
+ if (yych == 't') goto yy376;
+ goto yy19;
+ }
+yy234:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy377;
+ goto yy19;
+yy235:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy378;
+ if (yych == 'z') goto yy379;
+ goto yy19;
+yy236:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy380;
+ if (yych == 'r') goto yy381;
+ goto yy19;
+yy237:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy382;
+ goto yy19;
+yy238:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy383;
+ goto yy19;
+yy239:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy384;
+ if (yych == 'r') goto yy385;
+ goto yy19;
+yy240:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy386;
+ if (yych == 'y') goto yy387;
+ goto yy19;
+yy241:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy389;
+ goto yy19;
+yy242:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy178;
+ if (yych == 'R') goto yy182;
+ goto yy19;
+yy243:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy390;
+ if (yych == 's') goto yy391;
+ goto yy19;
+yy244:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy392;
+ goto yy19;
+yy245:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy393;
+ goto yy19;
+yy246:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy394;
+ if (yych == 'l') goto yy395;
+ goto yy19;
+yy247:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'h') goto yy396;
+ goto yy19;
+yy248:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy397;
+ goto yy19;
+yy249:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy398;
+ goto yy19;
+yy250:
+ ++YYCURSOR;
+#line 217 "cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN); }
+#line 2145 "cpp_re.inc"
+yy252:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy400;
+ goto yy100;
+yy253:
+ ++YYCURSOR;
+#line 231 "cpp.re"
+ { BOOST_WAVE_RET(T_OROR); }
+#line 2154 "cpp_re.inc"
+yy255:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 4) {
+ goto yy255;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= '\f') goto yy98;
+ if (yych <= 0x1F) goto yy100;
+ goto yy98;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy101;
+ if (yych <= '.') goto yy98;
+ goto yy401;
+ } else {
+ if (yych == '\\') goto yy104;
+ goto yy98;
+ }
+ }
+yy257:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy403;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy403;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy403;
+ goto yy100;
+ }
+yy258:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy404;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy404;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy404;
+ goto yy100;
+ }
+yy259:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy98;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy98;
+ goto yy100;
+ }
+yy260:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 8) {
+ goto yy260;
+ }
+ if (yych <= 0x1F) goto yy100;
+ goto yy405;
+yy262:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy407;
+ goto yy100;
+yy263:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy409;
+ goto yy100;
+yy264:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy410;
+ if (yych == 's') goto yy411;
+ goto yy100;
+yy265:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy412;
+ goto yy100;
+yy266:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy413;
+ goto yy100;
+yy267:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy414;
+ if (yych == 'n') goto yy415;
+yy268:
+#line 308 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_IF); }
+#line 2261 "cpp_re.inc"
+yy269:
+ yych = *++YYCURSOR;
+ if (yych == 'c') goto yy416;
+ goto yy100;
+yy270:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy417;
+ goto yy100;
+yy271:
+ yych = *++YYCURSOR;
+ if (yych == 'a') goto yy418;
+ goto yy100;
+yy272:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy419;
+ goto yy100;
+yy273:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy420;
+ goto yy100;
+yy274:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy421;
+ goto yy100;
+yy275:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '/') goto yy120;
+ goto yy100;
+yy276:
+ yych = *++YYCURSOR;
+ if (yych == ':') goto yy422;
+ goto yy100;
+yy277:
+ ++YYCURSOR;
+yy278:
+#line 253 "cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 2301 "cpp_re.inc"
+yy279:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '\'') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy131;
+ goto yy100;
+ } else {
+ if (yych <= '\f') goto yy131;
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '&') goto yy131;
+ goto yy277;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '/') goto yy424;
+ goto yy131;
+ } else {
+ if (yych <= '?') goto yy279;
+ if (yych == '\\') goto yy134;
+ goto yy131;
+ }
+ }
+yy281:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy426;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy426;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy426;
+ goto yy100;
+ }
+yy282:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy427;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy427;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy427;
+ goto yy100;
+ }
+yy283:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy131;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy131;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy131;
+ goto yy100;
+ }
+yy284:
+ ++YYCURSOR;
+#line 240 "cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_ARROW);
+ }
+ else {
+ BOOST_WAVE_RET(T_ARROWSTAR);
+ }
+ }
+#line 2380 "cpp_re.inc"
+yy286:
+ ++YYCURSOR;
+#line 163 "cpp.re"
+ { BOOST_WAVE_RET(T_ELLIPSIS); }
+#line 2385 "cpp_re.inc"
+yy288:
+ ++YYCURSOR;
+#line 223 "cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+#line 2390 "cpp_re.inc"
+yy290:
+ ++YYCURSOR;
+#line 222 "cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+#line 2395 "cpp_re.inc"
+yy292:
+ yyaccept = 11;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '>') {
+ if (yych == '=') goto yy428;
+ } else {
+ if (yych <= '?') goto yy430;
+ if (yych == '|') goto yy431;
+ }
+yy293:
+#line 198 "cpp.re"
+ { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+#line 2408 "cpp_re.inc"
+yy294:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy433;
+#line 192 "cpp.re"
+ { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+#line 2414 "cpp_re.inc"
+yy296:
+ ++YYCURSOR;
+#line 146 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+#line 2419 "cpp_re.inc"
+yy298:
+ ++YYCURSOR;
+#line 149 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+#line 2424 "cpp_re.inc"
+yy300:
+ ++YYCURSOR;
+#line 200 "cpp.re"
+ { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+#line 2429 "cpp_re.inc"
+yy302:
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'U') goto yy183;
+ if (yych == 'u') goto yy184;
+yy303:
+#line 250 "cpp.re"
+ { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+#line 2438 "cpp_re.inc"
+yy304:
+ ++YYCURSOR;
+#line 140 "cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+#line 2443 "cpp_re.inc"
+yy306:
+ yyaccept = 13;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'c') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy106;
+ } else {
+ if (yych <= '\f') goto yy106;
+ if (yych >= ' ') goto yy106;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych == '#') goto yy435;
+ } else {
+ if (yych <= '/') goto yy106;
+ if (yych == '?') goto yy437;
+ }
+ }
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'i') {
+ if (yych <= 'e') goto yy106;
+ if (yych >= 'i') goto yy106;
+ } else {
+ if (yych == 'l') goto yy106;
+ if (yych >= 'p') goto yy106;
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych == 'r') goto yy106;
+ } else {
+ if (yych == 'v') goto yy307;
+ if (yych <= 'w') goto yy106;
+ }
+ }
+ }
+yy307:
+#line 153 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+#line 2484 "cpp_re.inc"
+yy308:
+ ++YYCURSOR;
+#line 143 "cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+#line 2489 "cpp_re.inc"
+yy310:
+ ++YYCURSOR;
+#line 286 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 2502 "cpp_re.inc"
+yy312:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy438;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy438;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy438;
+ goto yy100;
+ }
+yy313:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy439;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy439;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy439;
+ goto yy100;
+ }
+yy314:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'x') goto yy440;
+ goto yy19;
+yy315:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy323;
+ if (yych == 'i') goto yy441;
+ goto yy19;
+yy316:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy442;
+ goto yy19;
+yy317:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy443;
+ goto yy19;
+yy318:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy444;
+ goto yy19;
+yy319:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy445;
+ goto yy19;
+yy320:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy447;
+ goto yy19;
+yy321:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy448;
+ goto yy19;
+yy322:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy449;
+ goto yy19;
+yy323:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy450;
+ goto yy19;
+yy324:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy451;
+ goto yy19;
+yy325:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy452;
+ goto yy19;
+yy326:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy453;
+ goto yy19;
+yy327:
+ yyaccept = 14;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') {
+ if (yych == '$') goto yy18;
+ } else {
+ if (yych <= '9') goto yy18;
+ if (yych == '?') goto yy119;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= 'Z') goto yy18;
+ if (yych == '\\') goto yy120;
+ } else {
+ if (yych <= '_') goto yy454;
+ if (yych <= '`') goto yy328;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+yy328:
+#line 230 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+#line 2620 "cpp_re.inc"
+yy329:
+ yyaccept = 15;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy330:
+#line 50 "cpp.re"
+ { BOOST_WAVE_RET(T_ASM); }
+#line 2632 "cpp_re.inc"
+yy331:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy455;
+ goto yy19;
+yy332:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy457;
+ if (yych == 'o') goto yy458;
+ goto yy19;
+yy333:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy459;
+ goto yy19;
+yy334:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy461;
+ goto yy19;
+yy335:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy462;
+ goto yy19;
+yy336:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy464;
+ goto yy19;
+yy337:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy465;
+ goto yy19;
+yy338:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy467;
+ goto yy19;
+yy339:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy468;
+ goto yy19;
+yy340:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'r') goto yy19;
+ if (yych <= 's') goto yy469;
+ if (yych <= 't') goto yy470;
+ goto yy19;
+yy341:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy471;
+ goto yy19;
+yy342:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy472;
+ goto yy19;
+yy343:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy473;
+ goto yy19;
+yy344:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'b') goto yy474;
+ goto yy19;
+yy345:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy475;
+ goto yy19;
+yy346:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy476;
+ goto yy19;
+yy347:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy478;
+ goto yy19;
+yy348:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy480;
+ if (yych == 'o') goto yy481;
+ goto yy19;
+yy349:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy482;
+ goto yy19;
+yy350:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy483;
+ goto yy19;
+yy351:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy484;
+ goto yy19;
+yy352:
+ yyaccept = 16;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy353:
+#line 77 "cpp.re"
+ { BOOST_WAVE_RET(T_FOR); }
+#line 2753 "cpp_re.inc"
+yy354:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy485;
+ goto yy19;
+yy355:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy486;
+ goto yy19;
+yy356:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy488;
+ goto yy19;
+yy357:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy489;
+ goto yy19;
+yy358:
+ yyaccept = 17;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy359:
+#line 83 "cpp.re"
+ { BOOST_WAVE_RET(T_INT); }
+#line 2785 "cpp_re.inc"
+yy360:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy490;
+ goto yy19;
+yy361:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy492;
+ goto yy19;
+yy362:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy493;
+ goto yy19;
+yy363:
+ yyaccept = 18;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy364:
+#line 87 "cpp.re"
+ { BOOST_WAVE_RET(T_NEW); }
+#line 2812 "cpp_re.inc"
+yy365:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'x') goto yy494;
+ goto yy19;
+yy366:
+ yyaccept = 19;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') {
+ if (yych == '$') goto yy18;
+ } else {
+ if (yych <= '9') goto yy18;
+ if (yych == '?') goto yy119;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= 'Z') goto yy18;
+ if (yych == '\\') goto yy120;
+ } else {
+ if (yych <= '_') goto yy495;
+ if (yych <= '`') goto yy367;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+yy367:
+#line 203 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+#line 2841 "cpp_re.inc"
+yy368:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy496;
+ goto yy19;
+yy369:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy497;
+ goto yy19;
+yy370:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy498;
+ goto yy19;
+yy371:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'v') goto yy499;
+ goto yy19;
+yy372:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy500;
+ goto yy19;
+yy373:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy501;
+ goto yy19;
+yy374:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy502;
+ goto yy19;
+yy375:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy503;
+ goto yy19;
+yy376:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy504;
+ goto yy19;
+yy377:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy505;
+ goto yy19;
+yy378:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy506;
+ goto yy19;
+yy379:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy507;
+ goto yy19;
+yy380:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy508;
+ goto yy19;
+yy381:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy509;
+ goto yy19;
+yy382:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy510;
+ goto yy19;
+yy383:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy511;
+ goto yy19;
+yy384:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy512;
+ goto yy19;
+yy385:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy514;
+ if (yych == 'o') goto yy515;
+ goto yy19;
+yy386:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy516;
+ goto yy19;
+yy387:
+ yyaccept = 20;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy388:
+#line 110 "cpp.re"
+ { BOOST_WAVE_RET(T_TRY); }
+#line 2949 "cpp_re.inc"
+yy389:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy518;
+ goto yy19;
+yy390:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy519;
+ goto yy19;
+yy391:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy520;
+ goto yy19;
+yy392:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy521;
+ goto yy19;
+yy393:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy522;
+ goto yy19;
+yy394:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy523;
+ goto yy19;
+yy395:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy525;
+ goto yy19;
+yy396:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy526;
+ goto yy19;
+yy397:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy527;
+ goto yy19;
+yy398:
+ yyaccept = 21;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') {
+ if (yych == '$') goto yy18;
+ } else {
+ if (yych <= '9') goto yy18;
+ if (yych == '?') goto yy119;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= 'Z') goto yy18;
+ if (yych == '\\') goto yy120;
+ } else {
+ if (yych <= '_') goto yy528;
+ if (yych <= '`') goto yy399;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+yy399:
+#line 193 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+#line 3018 "cpp_re.inc"
+yy400:
+ yych = *++YYCURSOR;
+ if (yych == '!') goto yy529;
+ goto yy100;
+yy401:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '"') goto yy531;
+ if (yych <= '?') goto yy103;
+ goto yy401;
+yy403:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy532;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy532;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy532;
+ goto yy100;
+ }
+yy404:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy533;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy533;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy533;
+ goto yy100;
+ }
+yy405:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy405;
+ }
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\r') goto yy260;
+ goto yy100;
+ } else {
+ if (yych == '/') goto yy105;
+ goto yy260;
+ }
+yy407:
+ ++YYCURSOR;
+#line 155 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3081 "cpp_re.inc"
+yy409:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy534;
+ goto yy100;
+yy410:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy535;
+ goto yy100;
+yy411:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy537;
+ goto yy100;
+yy412:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy539;
+ if (yych == 'r') goto yy540;
+ goto yy100;
+yy413:
+ yych = *++YYCURSOR;
+ if (yych == 'o') goto yy541;
+ goto yy100;
+yy414:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy542;
+ goto yy100;
+yy415:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy543;
+ goto yy100;
+yy416:
+ yych = *++YYCURSOR;
+ if (yych == 'l') goto yy544;
+ goto yy100;
+yy417:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy545;
+ goto yy100;
+yy418:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy547;
+ goto yy100;
+yy419:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy548;
+ goto yy100;
+yy420:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy549;
+ goto yy100;
+yy421:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy550;
+ goto yy100;
+yy422:
+ ++YYCURSOR;
+#line 158 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+#line 3139 "cpp_re.inc"
+yy424:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy131;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '\'') goto yy551;
+ if (yych <= '?') goto yy133;
+ goto yy424;
+yy426:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy552;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy552;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy552;
+ goto yy100;
+ }
+yy427:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy553;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy553;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy553;
+ goto yy100;
+ }
+yy428:
+ ++YYCURSOR;
+#line 219 "cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+#line 3183 "cpp_re.inc"
+yy430:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy554;
+ goto yy100;
+yy431:
+ ++YYCURSOR;
+#line 232 "cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3192 "cpp_re.inc"
+yy433:
+ ++YYCURSOR;
+#line 214 "cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+#line 3197 "cpp_re.inc"
+yy435:
+ ++YYCURSOR;
+#line 156 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3202 "cpp_re.inc"
+yy437:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy555;
+ goto yy100;
+yy438:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy556;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy556;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy556;
+ goto yy100;
+ }
+yy439:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy557;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy557;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy557;
+ goto yy100;
+ }
+yy440:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy558;
+ goto yy19;
+yy441:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy559;
+ goto yy19;
+yy442:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy451;
+ if (yych == 't') goto yy560;
+ goto yy19;
+yy443:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy561;
+ goto yy19;
+yy444:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy562;
+ goto yy19;
+yy445:
+ yyaccept = 22;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy446:
+#line 137 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+#line 3272 "cpp_re.inc"
+yy447:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy564;
+ goto yy19;
+yy448:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy565;
+ goto yy19;
+yy449:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy566;
+ goto yy19;
+yy450:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy567;
+ goto yy19;
+yy451:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy568;
+ goto yy19;
+yy452:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy569;
+ goto yy19;
+yy453:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy570;
+ goto yy19;
+yy454:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy571;
+ goto yy19;
+yy455:
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy456:
+#line 51 "cpp.re"
+ { BOOST_WAVE_RET(T_AUTO); }
+#line 3324 "cpp_re.inc"
+yy457:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy572;
+ goto yy19;
+yy458:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy573;
+ goto yy19;
+yy459:
+ yyaccept = 24;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy460:
+#line 52 "cpp.re"
+ { BOOST_WAVE_RET(T_BOOL); }
+#line 3346 "cpp_re.inc"
+yy461:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'k') goto yy575;
+ goto yy19;
+yy462:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy463:
+#line 54 "cpp.re"
+ { BOOST_WAVE_RET(T_CASE); }
+#line 3363 "cpp_re.inc"
+yy464:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'h') goto yy577;
+ goto yy19;
+yy465:
+ yyaccept = 26;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '>') {
+ if (yych <= '0') {
+ if (yych == '$') goto yy18;
+ if (yych >= '0') goto yy18;
+ } else {
+ if (yych <= '2') {
+ if (yych <= '1') goto yy579;
+ goto yy18;
+ } else {
+ if (yych <= '3') goto yy580;
+ if (yych <= '9') goto yy18;
+ }
+ }
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '@') {
+ if (yych <= '?') goto yy119;
+ } else {
+ if (yych <= 'Z') goto yy18;
+ if (yych >= '\\') goto yy120;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych >= '_') goto yy18;
+ } else {
+ if (yych <= '`') goto yy466;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+ }
+yy466:
+#line 56 "cpp.re"
+ { BOOST_WAVE_RET(T_CHAR); }
+#line 3405 "cpp_re.inc"
+yy467:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy581;
+ goto yy19;
+yy468:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy583;
+ goto yy19;
+yy469:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy585;
+ goto yy19;
+yy470:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy587;
+ goto yy19;
+yy471:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy588;
+ goto yy19;
+yy472:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy589;
+ goto yy19;
+yy473:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy590;
+ goto yy19;
+yy474:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy591;
+ goto yy19;
+yy475:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy592;
+ goto yy19;
+yy476:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy477:
+#line 70 "cpp.re"
+ { BOOST_WAVE_RET(T_ELSE); }
+#line 3462 "cpp_re.inc"
+yy478:
+ yyaccept = 28;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy479:
+#line 71 "cpp.re"
+ { BOOST_WAVE_RET(T_ENUM); }
+#line 3474 "cpp_re.inc"
+yy480:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy593;
+ goto yy19;
+yy481:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy594;
+ goto yy19;
+yy482:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy595;
+ goto yy19;
+yy483:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy596;
+ goto yy19;
+yy484:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy598;
+ goto yy19;
+yy485:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy600;
+ goto yy19;
+yy486:
+ yyaccept = 29;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy487:
+#line 79 "cpp.re"
+ { BOOST_WAVE_RET(T_GOTO); }
+#line 3516 "cpp_re.inc"
+yy488:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy601;
+ goto yy19;
+yy489:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy602;
+ goto yy19;
+yy490:
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy491:
+#line 84 "cpp.re"
+ { BOOST_WAVE_RET(T_LONG); }
+#line 3538 "cpp_re.inc"
+yy492:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'b') goto yy603;
+ goto yy19;
+yy493:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy604;
+ goto yy19;
+yy494:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy605;
+ goto yy19;
+yy495:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy606;
+ goto yy19;
+yy496:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy607;
+ goto yy19;
+yy497:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy608;
+ goto yy19;
+yy498:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy609;
+ goto yy19;
+yy499:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy611;
+ goto yy19;
+yy500:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy612;
+ goto yy19;
+yy501:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy613;
+ goto yy19;
+yy502:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy614;
+ goto yy19;
+yy503:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy615;
+ goto yy19;
+yy504:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy616;
+ goto yy19;
+yy505:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy617;
+ goto yy19;
+yy506:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy619;
+ goto yy19;
+yy507:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy620;
+ goto yy19;
+yy508:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy621;
+ goto yy19;
+yy509:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy622;
+ goto yy19;
+yy510:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy623;
+ goto yy19;
+yy511:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy624;
+ goto yy19;
+yy512:
+ yyaccept = 31;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy513:
+#line 106 "cpp.re"
+ { BOOST_WAVE_RET(T_THIS); }
+#line 3650 "cpp_re.inc"
+yy514:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy625;
+ goto yy19;
+yy515:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'w') goto yy626;
+ goto yy19;
+yy516:
+ yyaccept = 32;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy517:
+#line 109 "cpp.re"
+ { BOOST_WAVE_RET(T_TRUE); }
+#line 3672 "cpp_re.inc"
+yy518:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'h') {
+ if (yych == 'd') goto yy628;
+ goto yy19;
+ } else {
+ if (yych <= 'i') goto yy629;
+ if (yych == 'n') goto yy630;
+ goto yy19;
+ }
+yy519:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy631;
+ goto yy19;
+yy520:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy633;
+ goto yy19;
+yy521:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy634;
+ goto yy19;
+yy522:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy636;
+ goto yy19;
+yy523:
+ yyaccept = 33;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy524:
+#line 118 "cpp.re"
+ { BOOST_WAVE_RET(T_VOID); }
+#line 3715 "cpp_re.inc"
+yy525:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy637;
+ goto yy19;
+yy526:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy638;
+ goto yy19;
+yy527:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy639;
+ goto yy19;
+yy528:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy641;
+ goto yy19;
+yy529:
+ ++YYCURSOR;
+#line 233 "cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3740 "cpp_re.inc"
+yy531:
+ yyaccept = 34;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy102;
+ if (yych <= '"') goto yy101;
+ if (yych <= '?') goto yy103;
+ goto yy104;
+yy532:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy642;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy642;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy642;
+ goto yy100;
+ }
+yy533:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy259;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy259;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy259;
+ goto yy100;
+ }
+yy534:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy643;
+ goto yy100;
+yy535:
+ ++YYCURSOR;
+#line 312 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELIF); }
+#line 3789 "cpp_re.inc"
+yy537:
+ ++YYCURSOR;
+#line 311 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELSE); }
+#line 3794 "cpp_re.inc"
+yy539:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy644;
+ goto yy100;
+yy540:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy646;
+ goto yy100;
+yy541:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy647;
+ goto yy100;
+yy542:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy649;
+ goto yy100;
+yy543:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy651;
+ goto yy100;
+yy544:
+ yych = *++YYCURSOR;
+ if (yych == 'u') goto yy652;
+ goto yy100;
+yy545:
+ ++YYCURSOR;
+#line 316 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_LINE); }
+#line 3823 "cpp_re.inc"
+yy547:
+ yych = *++YYCURSOR;
+ if (yych == 'm') goto yy653;
+ goto yy100;
+yy548:
+ yych = *++YYCURSOR;
+ if (yych == 'o') goto yy654;
+ goto yy100;
+yy549:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy655;
+ goto yy100;
+yy550:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy657;
+ goto yy100;
+yy551:
+ yyaccept = 35;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy131;
+ }
+ if (yych <= 0x1F) goto yy278;
+ if (yych <= '\'') goto yy277;
+ if (yych <= '?') goto yy133;
+ goto yy134;
+yy552:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy658;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy658;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy658;
+ goto yy100;
+ }
+yy553:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy283;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy283;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy283;
+ goto yy100;
+ }
+yy554:
+ yych = *++YYCURSOR;
+ if (yych == '!') goto yy659;
+ goto yy100;
+yy555:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy661;
+ goto yy100;
+yy556:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy184;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy184;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy184;
+ goto yy100;
+ }
+yy557:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy18;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy18;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy18;
+ goto yy100;
+ }
+yy558:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy663;
+ goto yy19;
+yy559:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy664;
+ goto yy19;
+yy560:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case '1': goto yy665;
+ case '3': goto yy666;
+ case '6': goto yy667;
+ case '8': goto yy668;
+ default: goto yy19;
+ }
+yy561:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'v') goto yy670;
+ goto yy19;
+yy562:
+ yyaccept = 36;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy563:
+#line 132 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+#line 3952 "cpp_re.inc"
+yy564:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy671;
+ goto yy19;
+yy565:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy673;
+ goto yy19;
+yy566:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy675;
+ goto yy19;
+yy567:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy676;
+ goto yy19;
+yy568:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy677;
+ goto yy19;
+yy569:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy678;
+ goto yy19;
+yy570:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy679;
+ if (yych == 'o') goto yy680;
+ goto yy19;
+yy571:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy681;
+ goto yy19;
+yy572:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy683;
+ goto yy19;
+yy573:
+ yyaccept = 37;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy574:
+#line 197 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+#line 4010 "cpp_re.inc"
+yy575:
+ yyaccept = 38;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy576:
+#line 53 "cpp.re"
+ { BOOST_WAVE_RET(T_BREAK); }
+#line 4022 "cpp_re.inc"
+yy577:
+ yyaccept = 39;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy578:
+#line 55 "cpp.re"
+ { BOOST_WAVE_RET(T_CATCH); }
+#line 4034 "cpp_re.inc"
+yy579:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '6') goto yy685;
+ goto yy19;
+yy580:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '2') goto yy686;
+ goto yy19;
+yy581:
+ yyaccept = 40;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy582:
+#line 59 "cpp.re"
+ { BOOST_WAVE_RET(T_CLASS); }
+#line 4056 "cpp_re.inc"
+yy583:
+ yyaccept = 41;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy584:
+#line 201 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+#line 4068 "cpp_re.inc"
+yy585:
+ yyaccept = 42;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '9') {
+ if (yych == '$') goto yy18;
+ if (yych >= '0') goto yy18;
+ } else {
+ if (yych == '?') goto yy119;
+ if (yych >= 'A') goto yy18;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych == '\\') goto yy120;
+ if (yych >= '_') goto yy687;
+ } else {
+ if (yych <= 'd') {
+ if (yych >= 'a') goto yy18;
+ } else {
+ if (yych <= 'e') goto yy688;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+ }
+yy586:
+#line 60 "cpp.re"
+ { BOOST_WAVE_RET(T_CONST); }
+#line 4096 "cpp_re.inc"
+yy587:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy689;
+ goto yy19;
+yy588:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy690;
+ goto yy19;
+yy589:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy691;
+ goto yy19;
+yy590:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy692;
+ goto yy19;
+yy591:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy694;
+ goto yy19;
+yy592:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy696;
+ goto yy19;
+yy593:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy697;
+ goto yy19;
+yy594:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy698;
+ goto yy19;
+yy595:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy700;
+ goto yy19;
+yy596:
+ yyaccept = 43;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy597:
+#line 75 "cpp.re"
+ { BOOST_WAVE_RET(T_FALSE); }
+#line 4153 "cpp_re.inc"
+yy598:
+ yyaccept = 44;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy599:
+#line 76 "cpp.re"
+ { BOOST_WAVE_RET(T_FLOAT); }
+#line 4165 "cpp_re.inc"
+yy600:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy702;
+ goto yy19;
+yy601:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy704;
+ goto yy19;
+yy602:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy706;
+ goto yy19;
+yy603:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy708;
+ goto yy19;
+yy604:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy709;
+ goto yy19;
+yy605:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy710;
+ goto yy19;
+yy606:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy711;
+ goto yy19;
+yy607:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy713;
+ goto yy19;
+yy608:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy714;
+ goto yy19;
+yy609:
+ yyaccept = 45;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy610:
+#line 218 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+#line 4222 "cpp_re.inc"
+yy611:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy715;
+ goto yy19;
+yy612:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy716;
+ goto yy19;
+yy613:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy717;
+ goto yy19;
+yy614:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy719;
+ goto yy19;
+yy615:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy720;
+ goto yy19;
+yy616:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy721;
+ goto yy19;
+yy617:
+ yyaccept = 46;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy618:
+#line 97 "cpp.re"
+ { BOOST_WAVE_RET(T_SHORT); }
+#line 4264 "cpp_re.inc"
+yy619:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy723;
+ goto yy19;
+yy620:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'f') goto yy725;
+ goto yy19;
+yy621:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy727;
+ goto yy19;
+yy622:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy729;
+ goto yy19;
+yy623:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'h') goto yy731;
+ goto yy19;
+yy624:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy733;
+ goto yy19;
+yy625:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy734;
+ goto yy19;
+yy626:
+ yyaccept = 47;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy627:
+#line 108 "cpp.re"
+ { BOOST_WAVE_RET(T_THROW); }
+#line 4311 "cpp_re.inc"
+yy628:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy735;
+ goto yy19;
+yy629:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy736;
+ goto yy19;
+yy630:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy738;
+ goto yy19;
+yy631:
+ yyaccept = 48;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy632:
+#line 114 "cpp.re"
+ { BOOST_WAVE_RET(T_UNION); }
+#line 4338 "cpp_re.inc"
+yy633:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy739;
+ goto yy19;
+yy634:
+ yyaccept = 49;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy635:
+#line 116 "cpp.re"
+ { BOOST_WAVE_RET(T_USING); }
+#line 4355 "cpp_re.inc"
+yy636:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy740;
+ goto yy19;
+yy637:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy741;
+ goto yy19;
+yy638:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy742;
+ goto yy19;
+yy639:
+ yyaccept = 50;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy640:
+#line 121 "cpp.re"
+ { BOOST_WAVE_RET(T_WHILE); }
+#line 4382 "cpp_re.inc"
+yy641:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy743;
+ goto yy19;
+yy642:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy258;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy258;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy258;
+ goto yy100;
+ }
+yy643:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy745;
+ goto yy100;
+yy644:
+ ++YYCURSOR;
+#line 313 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_ENDIF); }
+#line 4410 "cpp_re.inc"
+yy646:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy747;
+ goto yy100;
+yy647:
+ ++YYCURSOR;
+#line 317 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_ERROR); }
+#line 4419 "cpp_re.inc"
+yy649:
+ ++YYCURSOR;
+#line 309 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFDEF); }
+#line 4424 "cpp_re.inc"
+yy651:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy748;
+ goto yy100;
+yy652:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy750;
+ goto yy100;
+yy653:
+ yych = *++YYCURSOR;
+ if (yych == 'a') goto yy751;
+ goto yy100;
+yy654:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy753;
+ goto yy100;
+yy655:
+ ++YYCURSOR;
+#line 315 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_UNDEF); }
+#line 4445 "cpp_re.inc"
+yy657:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy755;
+ goto yy100;
+yy658:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy282;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy282;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy282;
+ goto yy100;
+ }
+yy659:
+ ++YYCURSOR;
+#line 235 "cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 4468 "cpp_re.inc"
+yy661:
+ ++YYCURSOR;
+#line 157 "cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 4473 "cpp_re.inc"
+yy663:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy756;
+ goto yy19;
+yy664:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy757;
+ goto yy19;
+yy665:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '6') goto yy758;
+ goto yy19;
+yy666:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '2') goto yy760;
+ goto yy19;
+yy667:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '4') goto yy762;
+ goto yy19;
+yy668:
+ yyaccept = 51;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy669:
+#line 123 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
+#line 4510 "cpp_re.inc"
+yy670:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy764;
+ goto yy19;
+yy671:
+ yyaccept = 52;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy672:
+#line 127 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+#line 4527 "cpp_re.inc"
+yy673:
+ yyaccept = 53;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy674:
+#line 129 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+#line 4539 "cpp_re.inc"
+yy675:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy766;
+ goto yy19;
+yy676:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy767;
+ goto yy19;
+yy677:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy768;
+ goto yy19;
+yy678:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy770;
+ goto yy19;
+yy679:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy771;
+ goto yy19;
+yy680:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'f') goto yy773;
+ goto yy19;
+yy681:
+ yyaccept = 54;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy682:
+#line 216 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+#line 4581 "cpp_re.inc"
+yy683:
+ yyaccept = 55;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy684:
+#line 195 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+#line 4593 "cpp_re.inc"
+yy685:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy775;
+ goto yy19;
+yy686:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy776;
+ goto yy19;
+yy687:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy777;
+ goto yy19;
+yy688:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'x') goto yy778;
+ goto yy19;
+yy689:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy779;
+ goto yy19;
+yy690:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy780;
+ goto yy19;
+yy691:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy781;
+ goto yy19;
+yy692:
+ yyaccept = 56;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy693:
+#line 66 "cpp.re"
+ { BOOST_WAVE_RET(T_DELETE); }
+#line 4640 "cpp_re.inc"
+yy694:
+ yyaccept = 57;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy695:
+#line 68 "cpp.re"
+ { BOOST_WAVE_RET(T_DOUBLE); }
+#line 4652 "cpp_re.inc"
+yy696:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy783;
+ goto yy19;
+yy697:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy784;
+ goto yy19;
+yy698:
+ yyaccept = 58;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy699:
+#line 73 "cpp.re"
+ { BOOST_WAVE_RET(T_EXPORT); }
+#line 4674 "cpp_re.inc"
+yy700:
+ yyaccept = 59;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy701:
+#line 74 "cpp.re"
+ { BOOST_WAVE_RET(T_EXTERN); }
+#line 4686 "cpp_re.inc"
+yy702:
+ yyaccept = 60;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy703:
+#line 78 "cpp.re"
+ { BOOST_WAVE_RET(T_FRIEND); }
+#line 4698 "cpp_re.inc"
+yy704:
+ yyaccept = 61;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy705:
+#line 81 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+#line 4710 "cpp_re.inc"
+yy706:
+ yyaccept = 62;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy707:
+#line 82 "cpp.re"
+ { BOOST_WAVE_RET(T_INLINE); }
+#line 4722 "cpp_re.inc"
+yy708:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy785;
+ goto yy19;
+yy709:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy787;
+ goto yy19;
+yy710:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy788;
+ goto yy19;
+yy711:
+ yyaccept = 63;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy712:
+#line 226 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+#line 4749 "cpp_re.inc"
+yy713:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy789;
+ goto yy19;
+yy714:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy791;
+ goto yy19;
+yy715:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy792;
+ goto yy19;
+yy716:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy794;
+ goto yy19;
+yy717:
+ yyaccept = 64;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy718:
+#line 93 "cpp.re"
+ { BOOST_WAVE_RET(T_PUBLIC); }
+#line 4781 "cpp_re.inc"
+yy719:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy795;
+ goto yy19;
+yy720:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy796;
+ goto yy19;
+yy721:
+ yyaccept = 65;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy722:
+#line 96 "cpp.re"
+ { BOOST_WAVE_RET(T_RETURN); }
+#line 4803 "cpp_re.inc"
+yy723:
+ yyaccept = 66;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy724:
+#line 98 "cpp.re"
+ { BOOST_WAVE_RET(T_SIGNED); }
+#line 4815 "cpp_re.inc"
+yy725:
+ yyaccept = 67;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy726:
+#line 99 "cpp.re"
+ { BOOST_WAVE_RET(T_SIZEOF); }
+#line 4827 "cpp_re.inc"
+yy727:
+ yyaccept = 68;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') {
+ if (yych == '$') goto yy18;
+ } else {
+ if (yych <= '9') goto yy18;
+ if (yych == '?') goto yy119;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= 'Z') goto yy18;
+ if (yych == '\\') goto yy120;
+ } else {
+ if (yych <= '_') goto yy797;
+ if (yych <= '`') goto yy728;
+ if (yych <= 'z') goto yy18;
+ }
+ }
+yy728:
+#line 100 "cpp.re"
+ { BOOST_WAVE_RET(T_STATIC); }
+#line 4851 "cpp_re.inc"
+yy729:
+ yyaccept = 69;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy730:
+#line 103 "cpp.re"
+ { BOOST_WAVE_RET(T_STRUCT); }
+#line 4863 "cpp_re.inc"
+yy731:
+ yyaccept = 70;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy732:
+#line 104 "cpp.re"
+ { BOOST_WAVE_RET(T_SWITCH); }
+#line 4875 "cpp_re.inc"
+yy733:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy798;
+ goto yy19;
+yy734:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy799;
+ goto yy19;
+yy735:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'f') goto yy800;
+ goto yy19;
+yy736:
+ yyaccept = 71;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy737:
+#line 112 "cpp.re"
+ { BOOST_WAVE_RET(T_TYPEID); }
+#line 4902 "cpp_re.inc"
+yy738:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy802;
+ goto yy19;
+yy739:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy803;
+ goto yy19;
+yy740:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy804;
+ goto yy19;
+yy741:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy806;
+ goto yy19;
+yy742:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy807;
+ goto yy19;
+yy743:
+ yyaccept = 72;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy744:
+#line 213 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+#line 4939 "cpp_re.inc"
+yy745:
+ ++YYCURSOR;
+#line 314 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_DEFINE); }
+#line 4944 "cpp_re.inc"
+yy747:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy809;
+ goto yy100;
+yy748:
+ ++YYCURSOR;
+#line 310 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFNDEF); }
+#line 4953 "cpp_re.inc"
+yy750:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy810;
+ goto yy100;
+yy751:
+ ++YYCURSOR;
+#line 318 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_PRAGMA); }
+#line 4962 "cpp_re.inc"
+yy753:
+ ++YYCURSOR;
+#line 322 "cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+#line 4967 "cpp_re.inc"
+yy755:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy812;
+ goto yy100;
+yy756:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy814;
+ goto yy19;
+yy757:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy816;
+ goto yy19;
+yy758:
+ yyaccept = 73;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy759:
+#line 124 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+#line 4993 "cpp_re.inc"
+yy760:
+ yyaccept = 74;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy761:
+#line 125 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+#line 5005 "cpp_re.inc"
+yy762:
+ yyaccept = 75;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy763:
+#line 126 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+#line 5017 "cpp_re.inc"
+yy764:
+ yyaccept = 76;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy765:
+#line 135 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+#line 5029 "cpp_re.inc"
+yy766:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy817;
+ goto yy19;
+yy767:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy818;
+ goto yy19;
+yy768:
+ yyaccept = 77;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy769:
+#line 136 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+#line 5051 "cpp_re.inc"
+yy770:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy819;
+ goto yy19;
+yy771:
+ yyaccept = 78;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy772:
+#line 48 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
+#line 5068 "cpp_re.inc"
+yy773:
+ yyaccept = 79;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy774:
+#line 49 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
+#line 5080 "cpp_re.inc"
+yy775:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy821;
+ goto yy19;
+yy776:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy823;
+ goto yy19;
+yy777:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy825;
+ goto yy19;
+yy778:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy826;
+ goto yy19;
+yy779:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy827;
+ goto yy19;
+yy780:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy829;
+ goto yy19;
+yy781:
+ yyaccept = 80;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy782:
+#line 65 "cpp.re"
+ { BOOST_WAVE_RET(T_DEFAULT); }
+#line 5122 "cpp_re.inc"
+yy783:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy831;
+ goto yy19;
+yy784:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy832;
+ goto yy19;
+yy785:
+ yyaccept = 81;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy786:
+#line 85 "cpp.re"
+ { BOOST_WAVE_RET(T_MUTABLE); }
+#line 5144 "cpp_re.inc"
+yy787:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy834;
+ goto yy19;
+yy788:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy835;
+ goto yy19;
+yy789:
+ yyaccept = 82;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy790:
+#line 89 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
+#line 5166 "cpp_re.inc"
+yy791:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy837;
+ goto yy19;
+yy792:
+ yyaccept = 83;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy793:
+#line 91 "cpp.re"
+ { BOOST_WAVE_RET(T_PRIVATE); }
+#line 5183 "cpp_re.inc"
+yy794:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy839;
+ goto yy19;
+yy795:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy840;
+ goto yy19;
+yy796:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy842;
+ goto yy19;
+yy797:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy843;
+ if (yych == 'c') goto yy844;
+ goto yy19;
+yy798:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy845;
+ goto yy19;
+yy799:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy847;
+ goto yy19;
+yy800:
+ yyaccept = 84;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy801:
+#line 111 "cpp.re"
+ { BOOST_WAVE_RET(T_TYPEDEF); }
+#line 5226 "cpp_re.inc"
+yy802:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy848;
+ goto yy19;
+yy803:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy850;
+ goto yy19;
+yy804:
+ yyaccept = 85;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy805:
+#line 117 "cpp.re"
+ { BOOST_WAVE_RET(T_VIRTUAL); }
+#line 5248 "cpp_re.inc"
+yy806:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy852;
+ goto yy19;
+yy807:
+ yyaccept = 86;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy808:
+#line 120 "cpp.re"
+ { BOOST_WAVE_RET(T_WCHART); }
+#line 5265 "cpp_re.inc"
+yy809:
+ yych = *++YYCURSOR;
+ if (yych == 'o') goto yy854;
+ goto yy100;
+yy810:
+ yyaccept = 87;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy860;
+ goto yy856;
+yy811:
+#line 306 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_INCLUDE); }
+#line 5278 "cpp_re.inc"
+yy812:
+ ++YYCURSOR;
+#line 320 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_WARNING); }
+#line 5283 "cpp_re.inc"
+yy814:
+ yyaccept = 88;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy815:
+#line 133 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+#line 5295 "cpp_re.inc"
+yy816:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy861;
+ goto yy19;
+yy817:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy863;
+ goto yy19;
+yy818:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy865;
+ goto yy19;
+yy819:
+ yyaccept = 89;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy820:
+#line 131 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+#line 5322 "cpp_re.inc"
+yy821:
+ yyaccept = 90;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy822:
+#line 57 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
+#line 5334 "cpp_re.inc"
+yy823:
+ yyaccept = 91;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy824:
+#line 58 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
+#line 5346 "cpp_re.inc"
+yy825:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy867;
+ goto yy19;
+yy826:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy868;
+ goto yy19;
+yy827:
+ yyaccept = 92;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy828:
+#line 63 "cpp.re"
+ { BOOST_WAVE_RET(T_CONTINUE); }
+#line 5368 "cpp_re.inc"
+yy829:
+ yyaccept = 93;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy830:
+#line 64 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
+#line 5380 "cpp_re.inc"
+yy831:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy870;
+ goto yy19;
+yy832:
+ yyaccept = 94;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy833:
+#line 72 "cpp.re"
+ { BOOST_WAVE_RET(T_EXPLICIT); }
+#line 5397 "cpp_re.inc"
+yy834:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy871;
+ goto yy19;
+yy835:
+ yyaccept = 95;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy836:
+#line 88 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
+#line 5414 "cpp_re.inc"
+yy837:
+ yyaccept = 96;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy838:
+#line 90 "cpp.re"
+ { BOOST_WAVE_RET(T_OPERATOR); }
+#line 5426 "cpp_re.inc"
+yy839:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy873;
+ goto yy19;
+yy840:
+ yyaccept = 97;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy841:
+#line 94 "cpp.re"
+ { BOOST_WAVE_RET(T_REGISTER); }
+#line 5443 "cpp_re.inc"
+yy842:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy875;
+ goto yy19;
+yy843:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy876;
+ goto yy19;
+yy844:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy877;
+ goto yy19;
+yy845:
+ yyaccept = 98;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy846:
+#line 105 "cpp.re"
+ { BOOST_WAVE_RET(T_TEMPLATE); }
+#line 5470 "cpp_re.inc"
+yy847:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy878;
+ goto yy19;
+yy848:
+ yyaccept = 99;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy849:
+#line 113 "cpp.re"
+ { BOOST_WAVE_RET(T_TYPENAME); }
+#line 5487 "cpp_re.inc"
+yy850:
+ yyaccept = 100;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy851:
+#line 115 "cpp.re"
+ { BOOST_WAVE_RET(T_UNSIGNED); }
+#line 5499 "cpp_re.inc"
+yy852:
+ yyaccept = 101;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy853:
+#line 119 "cpp.re"
+ { BOOST_WAVE_RET(T_VOLATILE); }
+#line 5511 "cpp_re.inc"
+yy854:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy879;
+ goto yy100;
+yy855:
+ yyaccept = 87;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+yy856:
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy855;
+ goto yy811;
+ } else {
+ if (yych <= '\f') goto yy855;
+ if (yych <= 0x1F) goto yy811;
+ goto yy855;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych != '"') goto yy811;
+ } else {
+ if (yych <= '/') goto yy858;
+ if (yych == '<') goto yy859;
+ goto yy811;
+ }
+ }
+ yych = *++YYCURSOR;
+ if (yych == '"') goto yy100;
+ goto yy882;
+yy858:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '*') goto yy883;
+ goto yy100;
+yy859:
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy100;
+ goto yy886;
+yy860:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy887;
+ goto yy100;
+yy861:
+ yyaccept = 102;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy862:
+#line 134 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+#line 5568 "cpp_re.inc"
+yy863:
+ yyaccept = 103;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy864:
+#line 128 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+#line 5580 "cpp_re.inc"
+yy865:
+ yyaccept = 104;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy866:
+#line 130 "cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+#line 5592 "cpp_re.inc"
+yy867:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy888;
+ goto yy19;
+yy868:
+ yyaccept = 105;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy869:
+#line 61 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
+#line 5609 "cpp_re.inc"
+yy870:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy890;
+ goto yy19;
+yy871:
+ yyaccept = 106;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy872:
+#line 86 "cpp.re"
+ { BOOST_WAVE_RET(T_NAMESPACE); }
+#line 5626 "cpp_re.inc"
+yy873:
+ yyaccept = 107;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy874:
+#line 92 "cpp.re"
+ { BOOST_WAVE_RET(T_PROTECTED); }
+#line 5638 "cpp_re.inc"
+yy875:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy891;
+ goto yy19;
+yy876:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy892;
+ goto yy19;
+yy877:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy893;
+ goto yy19;
+yy878:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy894;
+ goto yy19;
+yy879:
+ ++YYCURSOR;
+#line 323 "cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+#line 5663 "cpp_re.inc"
+yy881:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy882:
+ if (yybm[0+yych] & 64) {
+ goto yy881;
+ }
+ if (yych <= 0x1F) goto yy100;
+ goto yy895;
+yy883:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\r') goto yy883;
+ goto yy100;
+ } else {
+ if (yych == '*') goto yy897;
+ goto yy883;
+ }
+yy885:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy886:
+ if (yybm[0+yych] & 128) {
+ goto yy885;
+ }
+ if (yych <= 0x1F) goto yy100;
+ goto yy899;
+yy887:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy901;
+ goto yy100;
+yy888:
+ yyaccept = 108;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy889:
+#line 62 "cpp.re"
+ { BOOST_WAVE_RET(T_CONSTCAST); }
+#line 5711 "cpp_re.inc"
+yy890:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy902;
+ goto yy19;
+yy891:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy903;
+ goto yy19;
+yy892:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy904;
+ goto yy19;
+yy893:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy905;
+ goto yy19;
+yy894:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy907;
+ goto yy19;
+yy895:
+ ++YYCURSOR;
+#line 303 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_QHEADER); }
+#line 5741 "cpp_re.inc"
+yy897:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= ')') {
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\r') goto yy883;
+ if (yych <= 0x1F) goto yy100;
+ goto yy883;
+ } else {
+ if (yych <= '*') goto yy897;
+ if (yych == '/') goto yy855;
+ goto yy883;
+ }
+yy899:
+ ++YYCURSOR;
+#line 300 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_HHEADER); }
+#line 5760 "cpp_re.inc"
+yy901:
+ yych = *++YYCURSOR;
+ if (yych == 'x') goto yy908;
+ goto yy100;
+yy902:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy909;
+ goto yy19;
+yy903:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy911;
+ goto yy19;
+yy904:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy912;
+ goto yy19;
+yy905:
+ yyaccept = 109;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy906:
+#line 101 "cpp.re"
+ { BOOST_WAVE_RET(T_STATICCAST); }
+#line 5791 "cpp_re.inc"
+yy907:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy913;
+ goto yy19;
+yy908:
+ yych = *++YYCURSOR;
+ if (yych == 't') goto yy855;
+ goto yy100;
+yy909:
+ yyaccept = 110;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy910:
+#line 69 "cpp.re"
+ { BOOST_WAVE_RET(T_DYNAMICCAST); }
+#line 5812 "cpp_re.inc"
+yy911:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy915;
+ goto yy19;
+yy912:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy916;
+ goto yy19;
+yy913:
+ yyaccept = 111;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy914:
+#line 107 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
+#line 5834 "cpp_re.inc"
+yy915:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy918;
+ goto yy19;
+yy916:
+ yyaccept = 112;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy917:
+#line 102 "cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
+#line 5851 "cpp_re.inc"
+yy918:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych != 's') goto yy19;
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych != 't') goto yy19;
+ yyaccept = 113;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy18;
+ }
+ if (yych == '?') goto yy119;
+ if (yych == '\\') goto yy120;
+yy921:
+#line 95 "cpp.re"
+ { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+#line 5869 "cpp_re.inc"
+}
+#line 355 "cpp.re"
+
+
+ccomment:
+
+#line 5876 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= '\f') {
+ if (yych <= 0x08) {
+ if (yych >= 0x01) goto yy926;
+ } else {
+ if (yych == '\n') goto yy930;
+ goto yy928;
+ }
+ } else {
+ if (yych <= 0x1F) {
+ if (yych <= '\r') goto yy932;
+ goto yy926;
+ } else {
+ if (yych == '*') goto yy933;
+ goto yy928;
+ }
+ }
+ ++YYCURSOR;
+#line 373 "cpp.re"
+ {
+ if(cursor == s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C' style comment");
+ }
+ else
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
+ }
+ }
+#line 5914 "cpp_re.inc"
+yy926:
+ ++YYCURSOR;
+#line 390 "cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 5924 "cpp_re.inc"
+yy928:
+ ++YYCURSOR;
+yy929:
+#line 370 "cpp.re"
+ { goto ccomment; }
+#line 5930 "cpp_re.inc"
+yy930:
+ ++YYCURSOR;
+yy931:
+#line 362 "cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+ /*s->tok = cursor; */
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto ccomment;
+ }
+#line 5942 "cpp_re.inc"
+yy932:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy930;
+ goto yy931;
+yy933:
+ yych = *++YYCURSOR;
+ if (yych != '/') goto yy929;
+ ++YYCURSOR;
+#line 359 "cpp.re"
+ { BOOST_WAVE_RET(T_CCOMMENT); }
+#line 5953 "cpp_re.inc"
+}
+#line 396 "cpp.re"
+
+
+cppcomment:
+
+#line 5960 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy938;
+ if (yych <= 0x08) goto yy940;
+ if (yych <= '\t') goto yy942;
+ goto yy944;
+ } else {
+ if (yych <= '\f') goto yy942;
+ if (yych <= '\r') goto yy946;
+ if (yych <= 0x1F) goto yy940;
+ goto yy942;
+ }
+yy938:
+ ++YYCURSOR;
+#line 412 "cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+
+ --YYCURSOR; // next call returns T_EOF
+ if (!s->single_line_only)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
+ }
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 5997 "cpp_re.inc"
+yy940:
+ ++YYCURSOR;
+#line 432 "cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 6007 "cpp_re.inc"
+yy942:
+ ++YYCURSOR;
+#line 409 "cpp.re"
+ { goto cppcomment; }
+#line 6012 "cpp_re.inc"
+yy944:
+ ++YYCURSOR;
+yy945:
+#line 401 "cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+ /*s->tok = cursor; */
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 6024 "cpp_re.inc"
+yy946:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy944;
+ goto yy945;
+}
+#line 438 "cpp.re"
+
+
+/* this subscanner is called whenever a pp_number has been started */
+pp_number:
+{
+ cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
+ marker = uchar_wrapper(s->ptr);
+ limit = uchar_wrapper(s->lim);
+
+ if (s->detect_pp_numbers) {
+
+#line 6042 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 64, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 64, 0,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 0, 0, 0, 0, 0, 0,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 64,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych == '.') goto yy950;
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy951;
+yy949:
+ YYCURSOR = YYMARKER;
+ goto yy953;
+yy950:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy949;
+ if (yych >= ':') goto yy949;
+yy951:
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy951;
+ }
+ if (yych <= 'E') {
+ if (yych == '?') goto yy954;
+ if (yych >= 'A') goto yy955;
+ } else {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy957;
+ } else {
+ if (yych <= '`') goto yy953;
+ if (yych <= 'e') goto yy955;
+ }
+ }
+yy953:
+#line 450 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+#line 6112 "cpp_re.inc"
+yy954:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '?') goto yy958;
+ goto yy949;
+yy955:
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy955;
+ }
+ if (yych <= '>') {
+ if (yych <= '+') {
+ if (yych == '$') goto yy951;
+ if (yych <= '*') goto yy953;
+ goto yy951;
+ } else {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy953;
+ goto yy951;
+ } else {
+ if (yych <= '/') goto yy953;
+ if (yych <= '9') goto yy951;
+ goto yy953;
+ }
+ }
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '@') {
+ if (yych <= '?') goto yy954;
+ goto yy953;
+ } else {
+ if (yych <= 'Z') goto yy951;
+ if (yych <= '[') goto yy953;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= '^') goto yy953;
+ goto yy951;
+ } else {
+ if (yych <= '`') goto yy953;
+ if (yych <= 'z') goto yy951;
+ goto yy953;
+ }
+ }
+ }
+yy957:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == 'U') goto yy959;
+ if (yych == 'u') goto yy960;
+ goto yy949;
+yy958:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '/') goto yy957;
+ goto yy949;
+yy959:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy961;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy961;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy961;
+ goto yy949;
+ }
+yy960:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy962;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy962;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy962;
+ goto yy949;
+ }
+yy961:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy963;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy963;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy963;
+ goto yy949;
+ }
+yy962:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy964;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy964;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy964;
+ goto yy949;
+ }
+yy963:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy965;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy965;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy965;
+ goto yy949;
+ }
+yy964:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy966;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy966;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy966;
+ goto yy949;
+ }
+yy965:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy960;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy960;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy960;
+ goto yy949;
+ }
+yy966:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy951;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy951;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy951;
+ goto yy949;
+ }
+}
+#line 451 "cpp.re"
+
+ }
+ else {
+
+#line 6292 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 160, 160, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy970;
+ } else {
+ if (yych <= '0') goto yy971;
+ if (yych <= '9') goto yy973;
+ }
+yy969:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy972;
+ } else {
+ goto yy977;
+ }
+yy970:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy969;
+ if (yych <= '9') goto yy975;
+ goto yy969;
+yy971:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'X') goto yy983;
+ if (yych == 'x') goto yy983;
+ goto yy979;
+yy972:
+#line 458 "cpp.re"
+ { goto integer_suffix; }
+#line 6359 "cpp_re.inc"
+yy973:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy973;
+ }
+ if (yych <= 'D') {
+ if (yych != '.') goto yy972;
+ } else {
+ if (yych <= 'E') goto yy982;
+ if (yych == 'e') goto yy982;
+ goto yy972;
+ }
+yy975:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= 'K') {
+ if (yych <= 'D') {
+ if (yych <= '/') goto yy977;
+ if (yych <= '9') goto yy975;
+ } else {
+ if (yych <= 'E') goto yy982;
+ if (yych <= 'F') goto yy984;
+ }
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'L') goto yy985;
+ if (yych >= 'e') goto yy982;
+ } else {
+ if (yych <= 'f') goto yy984;
+ if (yych == 'l') goto yy985;
+ }
+ }
+yy977:
+#line 456 "cpp.re"
+ { BOOST_WAVE_RET(T_FLOATLIT); }
+#line 6400 "cpp_re.inc"
+yy978:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+yy979:
+ if (yybm[0+yych] & 64) {
+ goto yy978;
+ }
+ if (yych <= '9') {
+ if (yych == '.') goto yy975;
+ if (yych <= '/') goto yy972;
+ } else {
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy972;
+ goto yy982;
+ } else {
+ if (yych == 'e') goto yy982;
+ goto yy972;
+ }
+ }
+yy980:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych == '.') goto yy975;
+ if (yych <= '/') goto yy969;
+ goto yy980;
+ } else {
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy969;
+ } else {
+ if (yych != 'e') goto yy969;
+ }
+ }
+yy982:
+ yych = *++YYCURSOR;
+ if (yych <= ',') {
+ if (yych == '+') goto yy986;
+ goto yy969;
+ } else {
+ if (yych <= '-') goto yy986;
+ if (yych <= '/') goto yy969;
+ if (yych <= '9') goto yy987;
+ goto yy969;
+ }
+yy983:
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy989;
+ }
+ goto yy969;
+yy984:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy991;
+ if (yych == 'l') goto yy991;
+ goto yy977;
+yy985:
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy991;
+ if (yych == 'f') goto yy991;
+ goto yy977;
+yy986:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy969;
+ if (yych >= ':') goto yy969;
+yy987:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= 'K') {
+ if (yych <= '9') {
+ if (yych <= '/') goto yy977;
+ goto yy987;
+ } else {
+ if (yych == 'F') goto yy984;
+ goto yy977;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'L') goto yy985;
+ if (yych <= 'e') goto yy977;
+ goto yy984;
+ } else {
+ if (yych == 'l') goto yy985;
+ goto yy977;
+ }
+ }
+yy989:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy989;
+ }
+ goto yy972;
+yy991:
+ ++YYCURSOR;
+ goto yy977;
+}
+#line 459 "cpp.re"
+
+ }
+}
+
+/* this subscanner is called, whenever an Integer was recognized */
+integer_suffix:
+{
+ if (s->enable_ms_extensions) {
+
+#line 6512 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *(YYMARKER = YYCURSOR);
+ if (yych <= 'h') {
+ if (yych <= 'L') {
+ if (yych >= 'L') goto yy995;
+ } else {
+ if (yych == 'U') goto yy996;
+ }
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'i') goto yy997;
+ if (yych >= 'l') goto yy995;
+ } else {
+ if (yych == 'u') goto yy999;
+ }
+ }
+yy994:
+#line 472 "cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6534 "cpp_re.inc"
+yy995:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'L') goto yy1000;
+ if (yych <= 'T') goto yy994;
+ goto yy1002;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy994;
+ goto yy1000;
+ } else {
+ if (yych == 'u') goto yy1002;
+ goto yy994;
+ }
+ }
+yy996:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1003;
+ if (yych == 'l') goto yy1003;
+ goto yy994;
+yy997:
+ yych = *++YYCURSOR;
+ if (yych == '6') goto yy1004;
+yy998:
+ YYCURSOR = YYMARKER;
+ goto yy994;
+yy999:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'h') {
+ if (yych == 'L') goto yy1003;
+ goto yy994;
+ } else {
+ if (yych <= 'i') goto yy997;
+ if (yych == 'l') goto yy1003;
+ goto yy994;
+ }
+yy1000:
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy1005;
+ if (yych == 'u') goto yy1005;
+yy1001:
+#line 469 "cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6578 "cpp_re.inc"
+yy1002:
+ ++YYCURSOR;
+ goto yy994;
+yy1003:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1005;
+ if (yych == 'l') goto yy1005;
+ goto yy994;
+yy1004:
+ yych = *++YYCURSOR;
+ if (yych != '4') goto yy998;
+yy1005:
+ ++YYCURSOR;
+ goto yy1001;
+}
+#line 473 "cpp.re"
+
+ }
+ else {
+
+#line 6599 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'L') goto yy1009;
+ if (yych >= 'U') goto yy1010;
+ } else {
+ if (yych <= 'l') {
+ if (yych >= 'l') goto yy1009;
+ } else {
+ if (yych == 'u') goto yy1010;
+ }
+ }
+yy1008:
+#line 481 "cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6617 "cpp_re.inc"
+yy1009:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'L') goto yy1011;
+ if (yych <= 'T') goto yy1008;
+ goto yy1013;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy1008;
+ goto yy1011;
+ } else {
+ if (yych == 'u') goto yy1013;
+ goto yy1008;
+ }
+ }
+yy1010:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1014;
+ if (yych == 'l') goto yy1014;
+ goto yy1008;
+yy1011:
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy1015;
+ if (yych == 'u') goto yy1015;
+yy1012:
+#line 478 "cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6645 "cpp_re.inc"
+yy1013:
+ ++YYCURSOR;
+ goto yy1008;
+yy1014:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1015;
+ if (yych != 'l') goto yy1008;
+yy1015:
+ ++YYCURSOR;
+ goto yy1012;
+}
+#line 482 "cpp.re"
+
+ }
+}
+
+/* this subscanner is invoked for C++0x extended character literals */
+extcharlit:
+{
+
+#line 6666 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1018;
+ if (yych <= '\t') goto yy1019;
+ goto yy1021;
+ } else {
+ if (yych <= '\f') goto yy1019;
+ if (yych <= '\r') goto yy1021;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '\'') goto yy1021;
+ goto yy1019;
+ } else {
+ if (yych <= '?') goto yy1022;
+ if (yych == '\\') goto yy1023;
+ goto yy1019;
+ }
+ }
+yy1018:
+ YYCURSOR = YYMARKER;
+ goto yy1020;
+yy1019:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1024;
+yy1020:
+#line 494 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 6733 "cpp_re.inc"
+yy1021:
+ ++YYCURSOR;
+ goto yy1020;
+yy1022:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '\'') goto yy1024;
+ if (yych == '?') goto yy1026;
+ goto yy1020;
+yy1023:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1027;
+ goto yy1020;
+ } else {
+ if (yych <= '\'') goto yy1027;
+ if (yych <= '/') goto yy1020;
+ goto yy1028;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1029;
+ goto yy1020;
+ } else {
+ if (yych <= 'U') goto yy1030;
+ if (yych == '\\') goto yy1027;
+ goto yy1020;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1027;
+ if (yych <= 'e') goto yy1020;
+ goto yy1027;
+ } else {
+ if (yych == 'n') goto yy1027;
+ if (yych <= 'q') goto yy1020;
+ goto yy1027;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1020;
+ if (yych <= 't') goto yy1027;
+ goto yy1031;
+ } else {
+ if (yych <= 'v') goto yy1027;
+ if (yych == 'x') goto yy1032;
+ goto yy1020;
+ }
+ }
+ }
+yy1024:
+ ++YYCURSOR;
+#line 491 "cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 6791 "cpp_re.inc"
+yy1026:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1033;
+ goto yy1018;
+yy1027:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1024;
+ goto yy1018;
+yy1028:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1024;
+ if (yych <= '/') goto yy1018;
+ if (yych <= '7') goto yy1034;
+ goto yy1018;
+yy1029:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1024;
+ if (yych == '?') goto yy1035;
+ goto yy1018;
+yy1030:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1036;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1036;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1036;
+ goto yy1018;
+ }
+yy1031:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1037;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1037;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1037;
+ goto yy1018;
+ }
+yy1032:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1018;
+ goto yy1039;
+yy1033:
+ yych = *++YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1027;
+ goto yy1018;
+ } else {
+ if (yych <= '\'') goto yy1027;
+ if (yych <= '/') goto yy1018;
+ goto yy1028;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1029;
+ goto yy1018;
+ } else {
+ if (yych <= 'U') goto yy1030;
+ if (yych == '\\') goto yy1027;
+ goto yy1018;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1027;
+ if (yych <= 'e') goto yy1018;
+ goto yy1027;
+ } else {
+ if (yych == 'n') goto yy1027;
+ if (yych <= 'q') goto yy1018;
+ goto yy1027;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1018;
+ if (yych <= 't') goto yy1027;
+ goto yy1031;
+ } else {
+ if (yych <= 'v') goto yy1027;
+ if (yych == 'x') goto yy1032;
+ goto yy1018;
+ }
+ }
+ }
+yy1034:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1024;
+ if (yych <= '/') goto yy1018;
+ if (yych <= '7') goto yy1027;
+ goto yy1018;
+yy1035:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1027;
+ goto yy1018;
+yy1036:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1040;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1040;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1040;
+ goto yy1018;
+ }
+yy1037:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1041;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1041;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1041;
+ goto yy1018;
+ }
+yy1038:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy1039:
+ if (yybm[0+yych] & 128) {
+ goto yy1038;
+ }
+ if (yych == '\'') goto yy1024;
+ goto yy1018;
+yy1040:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1042;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1042;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1042;
+ goto yy1018;
+ }
+yy1041:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1043;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1043;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1043;
+ goto yy1018;
+ }
+yy1042:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1031;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1031;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1031;
+ goto yy1018;
+ }
+yy1043:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1018;
+ if (yych <= '9') goto yy1027;
+ goto yy1018;
+ } else {
+ if (yych <= 'F') goto yy1027;
+ if (yych <= '`') goto yy1018;
+ if (yych <= 'f') goto yy1027;
+ goto yy1018;
+ }
+}
+#line 495 "cpp.re"
+
+}
+
+/* this subscanner is invoked for C++0x extended character string literals */
+extstringlit:
+{
+
+#line 6985 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 0, 32, 32, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 32, 0, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 64,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 128, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1046;
+ if (yych <= '\t') goto yy1047;
+ goto yy1049;
+ } else {
+ if (yych <= '\f') goto yy1047;
+ if (yych <= '\r') goto yy1049;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '"') goto yy1050;
+ goto yy1047;
+ } else {
+ if (yych <= '?') goto yy1052;
+ if (yych == '\\') goto yy1053;
+ goto yy1047;
+ }
+ }
+yy1046:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy1048;
+ } else {
+ goto yy1051;
+ }
+yy1047:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1055;
+ } else {
+ if (yych <= '\f') goto yy1055;
+ if (yych >= ' ') goto yy1055;
+ }
+yy1048:
+#line 506 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7063 "cpp_re.inc"
+yy1049:
+ ++YYCURSOR;
+ goto yy1048;
+yy1050:
+ ++YYCURSOR;
+yy1051:
+#line 503 "cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 7072 "cpp_re.inc"
+yy1052:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy1058;
+ }
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1055;
+ goto yy1048;
+ } else {
+ if (yych <= '\f') goto yy1055;
+ if (yych <= 0x1F) goto yy1048;
+ goto yy1055;
+ }
+yy1053:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych != '"') goto yy1048;
+ } else {
+ if (yych <= '\'') goto yy1054;
+ if (yych <= '/') goto yy1048;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych != '?') goto yy1048;
+ } else {
+ if (yych <= 'U') goto yy1060;
+ if (yych != '\\') goto yy1048;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1054;
+ if (yych <= 'e') goto yy1048;
+ } else {
+ if (yych == 'n') goto yy1054;
+ if (yych <= 'q') goto yy1048;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1048;
+ if (yych >= 'u') goto yy1061;
+ } else {
+ if (yych <= 'v') goto yy1054;
+ if (yych == 'x') goto yy1062;
+ goto yy1048;
+ }
+ }
+ }
+yy1054:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy1055:
+ if (yybm[0+yych] & 32) {
+ goto yy1054;
+ }
+ if (yych <= 0x1F) goto yy1046;
+ if (yych <= '"') goto yy1050;
+ if (yych >= '@') goto yy1057;
+yy1056:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1054;
+ }
+ if (yych <= 0x1F) goto yy1046;
+ if (yych <= '"') goto yy1050;
+ if (yych <= '?') goto yy1058;
+yy1057:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1054;
+ goto yy1046;
+ } else {
+ if (yych <= '\'') goto yy1054;
+ if (yych <= '/') goto yy1046;
+ goto yy1054;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1054;
+ goto yy1046;
+ } else {
+ if (yych <= 'U') goto yy1060;
+ if (yych == '\\') goto yy1054;
+ goto yy1046;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1054;
+ if (yych <= 'e') goto yy1046;
+ goto yy1054;
+ } else {
+ if (yych == 'n') goto yy1054;
+ if (yych <= 'q') goto yy1046;
+ goto yy1054;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1046;
+ if (yych <= 't') goto yy1054;
+ goto yy1061;
+ } else {
+ if (yych <= 'v') goto yy1054;
+ if (yych == 'x') goto yy1062;
+ goto yy1046;
+ }
+ }
+ }
+yy1058:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy1058;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1054;
+ goto yy1046;
+ } else {
+ if (yych <= '\f') goto yy1054;
+ if (yych <= 0x1F) goto yy1046;
+ goto yy1054;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy1050;
+ if (yych <= '.') goto yy1054;
+ goto yy1063;
+ } else {
+ if (yych == '\\') goto yy1057;
+ goto yy1054;
+ }
+ }
+yy1060:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1065;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1065;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1065;
+ goto yy1046;
+ }
+yy1061:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1066;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1066;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1066;
+ goto yy1046;
+ }
+yy1062:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1054;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1054;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1054;
+ goto yy1046;
+ }
+yy1063:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1054;
+ }
+ if (yych <= 0x1F) goto yy1046;
+ if (yych <= '"') goto yy1067;
+ if (yych <= '?') goto yy1056;
+ goto yy1063;
+yy1065:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1068;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1068;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1068;
+ goto yy1046;
+ }
+yy1066:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1069;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1069;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1069;
+ goto yy1046;
+ }
+yy1067:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1054;
+ }
+ if (yych <= 0x1F) goto yy1051;
+ if (yych <= '"') goto yy1050;
+ if (yych <= '?') goto yy1056;
+ goto yy1057;
+yy1068:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1070;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1070;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1070;
+ goto yy1046;
+ }
+yy1069:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1062;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1062;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1062;
+ goto yy1046;
+ }
+yy1070:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1046;
+ if (yych <= '9') goto yy1061;
+ goto yy1046;
+ } else {
+ if (yych <= 'F') goto yy1061;
+ if (yych <= '`') goto yy1046;
+ if (yych <= 'f') goto yy1061;
+ goto yy1046;
+ }
+}
+#line 507 "cpp.re"
+
+}
+
+extrawstringlit:
+{
+ // we have consumed the double quote but not the lparen
+ // at this point we may see a delimiter
+
+
+#line 7366 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '(') {
+ if (yych <= 0x1F) goto yy1073;
+ if (yych <= '\'') goto yy1075;
+ goto yy1077;
+ } else {
+ if (yych <= ')') goto yy1073;
+ if (yych != '\\') goto yy1075;
+ }
+yy1073:
+ ++YYCURSOR;
+#line 516 "cpp.re"
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string delimiter ('%c')", yych);
+ }
+#line 7386 "cpp_re.inc"
+yy1075:
+ ++YYCURSOR;
+#line 523 "cpp.re"
+ {
+ rawstringdelim += yych;
+ if (rawstringdelim.size() > 16)
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Raw string delimiter of excessive length (\"%s\") in input stream",
+ rawstringdelim.c_str());
+ }
+ goto extrawstringlit;
+ }
+#line 7400 "cpp_re.inc"
+yy1077:
+ ++YYCURSOR;
+#line 535 "cpp.re"
+ {
+ rawstringdelim = ")" + rawstringdelim;
+ goto extrawstringbody;
+ }
+#line 7408 "cpp_re.inc"
+}
+#line 540 "cpp.re"
+
+}
+
+extrawstringbody:
+{
+
+#line 7417 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1081;
+ if (yych <= '\t') goto yy1083;
+ goto yy1085;
+ } else {
+ if (yych <= '\f') goto yy1083;
+ if (yych <= '\r') goto yy1087;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '"') goto yy1088;
+ goto yy1083;
+ } else {
+ if (yych <= '?') goto yy1090;
+ if (yych == '\\') goto yy1091;
+ goto yy1083;
+ }
+ }
+yy1081:
+ ++YYCURSOR;
+#line 547 "cpp.re"
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string body ('%c')", yych);
+ }
+#line 7482 "cpp_re.inc"
+yy1083:
+ ++YYCURSOR;
+yy1084:
+#line 560 "cpp.re"
+ {
+ goto extrawstringbody;
+ }
+#line 7490 "cpp_re.inc"
+yy1085:
+ ++YYCURSOR;
+yy1086:
+#line 553 "cpp.re"
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringbody;
+ }
+#line 7500 "cpp_re.inc"
+yy1087:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy1085;
+ goto yy1086;
+yy1088:
+ ++YYCURSOR;
+#line 565 "cpp.re"
+ {
+ // check to see if we have completed a delimiter
+ if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1),
+ (char *)(YYCURSOR - 1)) == rawstringdelim)
+ {
+ BOOST_WAVE_RET(T_RAWSTRINGLIT);
+ } else {
+ goto extrawstringbody;
+ }
+ }
+#line 7518 "cpp_re.inc"
+yy1090:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1092;
+ goto yy1084;
+yy1091:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1083;
+ goto yy1084;
+ } else {
+ if (yych <= '\'') goto yy1083;
+ if (yych <= '/') goto yy1084;
+ goto yy1094;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1095;
+ goto yy1084;
+ } else {
+ if (yych <= 'U') goto yy1096;
+ if (yych == '\\') goto yy1083;
+ goto yy1084;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1083;
+ if (yych <= 'e') goto yy1084;
+ goto yy1083;
+ } else {
+ if (yych == 'n') goto yy1083;
+ if (yych <= 'q') goto yy1084;
+ goto yy1083;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1084;
+ if (yych <= 't') goto yy1083;
+ goto yy1097;
+ } else {
+ if (yych <= 'v') goto yy1083;
+ if (yych == 'x') goto yy1098;
+ goto yy1084;
+ }
+ }
+ }
+yy1092:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1099;
+yy1093:
+ YYCURSOR = YYMARKER;
+ goto yy1084;
+yy1094:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy1084;
+ if (yych <= '7') goto yy1100;
+ goto yy1084;
+yy1095:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1101;
+ goto yy1084;
+yy1096:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1102;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1102;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1102;
+ goto yy1093;
+ }
+yy1097:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1103;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1103;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1103;
+ goto yy1093;
+ }
+yy1098:
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1104;
+ }
+ goto yy1093;
+yy1099:
+ yych = *++YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1083;
+ goto yy1093;
+ } else {
+ if (yych <= '\'') goto yy1083;
+ if (yych <= '/') goto yy1093;
+ goto yy1094;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1095;
+ goto yy1093;
+ } else {
+ if (yych <= 'U') goto yy1096;
+ if (yych == '\\') goto yy1083;
+ goto yy1093;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1083;
+ if (yych <= 'e') goto yy1093;
+ goto yy1083;
+ } else {
+ if (yych == 'n') goto yy1083;
+ if (yych <= 'q') goto yy1093;
+ goto yy1083;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1093;
+ if (yych <= 't') goto yy1083;
+ goto yy1097;
+ } else {
+ if (yych <= 'v') goto yy1083;
+ if (yych == 'x') goto yy1098;
+ goto yy1093;
+ }
+ }
+ }
+yy1100:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy1084;
+ if (yych <= '7') goto yy1083;
+ goto yy1084;
+yy1101:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1083;
+ goto yy1093;
+yy1102:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1106;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1106;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1106;
+ goto yy1093;
+ }
+yy1103:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1107;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1107;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1107;
+ goto yy1093;
+ }
+yy1104:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1104;
+ }
+ goto yy1084;
+yy1106:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1108;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1108;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1108;
+ goto yy1093;
+ }
+yy1107:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1109;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1109;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1109;
+ goto yy1093;
+ }
+yy1108:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1097;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1097;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1097;
+ goto yy1093;
+ }
+yy1109:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1093;
+ if (yych <= '9') goto yy1083;
+ goto yy1093;
+ } else {
+ if (yych <= 'F') goto yy1083;
+ if (yych <= '`') goto yy1093;
+ if (yych <= 'f') goto yy1083;
+ goto yy1093;
+ }
+}
+#line 575 "cpp.re"
+
+}
diff --git a/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp b/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
index c51fe4012b..790c9a8935 100644
--- a/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
+++ b/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
@@ -89,12 +89,12 @@ public:
#endif
// error reporting from the re2c generated lexer
- static int report_error(Scanner const* s, int code, char const *, ...);
+ static int report_error(Scanner<IteratorT> const* s, int code, char const *, ...);
private:
static char const *tok_names[];
- Scanner scanner;
+ Scanner<IteratorT> scanner;
string_type filename;
string_type value;
bool at_eof;
@@ -117,18 +117,13 @@ inline
lexer<IteratorT, PositionT, TokenT>::lexer(IteratorT const &first,
IteratorT const &last, PositionT const &pos,
boost::wave::language_support language_)
- : filename(pos.get_file()), at_eof(false), language(language_)
+ : scanner(first, last),
+ filename(pos.get_file()), at_eof(false), language(language_)
#if BOOST_WAVE_SUPPORT_THREADING != 0
, cache()
#endif
{
using namespace std; // some systems have memset in std
- memset(&scanner, '\0', sizeof(Scanner));
- scanner.eol_offsets = aq_create();
- if (first != last) {
- scanner.first = scanner.act = (uchar *)&(*first);
- scanner.last = scanner.first + std::distance(first, last);
- }
scanner.line = pos.get_line();
scanner.column = scanner.curr_column = pos.get_column();
scanner.error_proc = report_error;
@@ -165,7 +160,6 @@ inline
lexer<IteratorT, PositionT, TokenT>::~lexer()
{
using namespace std; // some systems have free in std
- aq_terminate(scanner.eol_offsets);
free(scanner.bot);
}
@@ -307,7 +301,7 @@ lexer<IteratorT, PositionT, TokenT>::get(TokenT& result)
template <typename IteratorT, typename PositionT, typename TokenT>
inline int
-lexer<IteratorT, PositionT, TokenT>::report_error(Scanner const *s, int errcode,
+lexer<IteratorT, PositionT, TokenT>::report_error(Scanner<IteratorT> const *s, int errcode,
char const *msg, ...)
{
BOOST_ASSERT(0 != s);
diff --git a/boost/wave/cpplexer/re2clex/scanner.hpp b/boost/wave/cpplexer/re2clex/scanner.hpp
index a2c36f99b6..b3b310932a 100644
--- a/boost/wave/cpplexer/re2clex/scanner.hpp
+++ b/boost/wave/cpplexer/re2clex/scanner.hpp
@@ -26,15 +26,31 @@ namespace wave {
namespace cpplexer {
namespace re2clex {
+template<typename Iterator>
struct Scanner;
typedef unsigned char uchar;
-typedef int (* ReportErrorProc)(struct Scanner const *, int errorcode,
- char const *, ...);
-typedef struct Scanner {
- uchar* first; /* start of input buffer */
- uchar* act; /* act position of input buffer */
- uchar* last; /* end (one past last char) of input buffer */
+template<typename Iterator>
+struct Scanner {
+ typedef int (* ReportErrorProc)(struct Scanner const *, int errorcode,
+ char const *, ...);
+
+
+ Scanner(Iterator const & f, Iterator const & l)
+ : first(f), act(f), last(l),
+ bot(0), top(0), eof(0), tok(0), ptr(0), cur(0), lim(0),
+ eol_offsets(aq_create())
+ // remaining data members externally initialized
+ {}
+
+ ~Scanner()
+ {
+ aq_terminate(eol_offsets);
+ }
+
+ Iterator first; /* start of input buffer */
+ Iterator act; /* act position of input buffer */
+ Iterator last; /* end (one past last char) of input buffer */
uchar* bot; /* beginning of the current buffer */
uchar* top; /* top of the current buffer */
uchar* eof; /* when we read in the last buffer, will point 1 past the
@@ -58,7 +74,7 @@ typedef struct Scanner {
bool enable_import_keyword; /* recognize import as a keyword */
bool single_line_only; /* don't report missing eol's in C++ comments */
bool act_in_cpp0x_mode; /* lexer works in C++11 mode */
-} Scanner;
+};
///////////////////////////////////////////////////////////////////////////////
} // namespace re2clex
diff --git a/boost/wave/cpplexer/re2clex/strict_cpp.re b/boost/wave/cpplexer/re2clex/strict_cpp.re
new file mode 100644
index 0000000000..a2f74a931b
--- /dev/null
+++ b/boost/wave/cpplexer/re2clex/strict_cpp.re
@@ -0,0 +1,575 @@
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+
+ Copyright (c) 2001 Daniel C. Nuffer
+ 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)
+
+ This is a strict lexer conforming to the Standard as close as possible.
+ It does not allow the '$' to be part of identifiers. If you need the '$'
+ character in identifiers please include the lexer definition provided
+ in the cpp.re file.
+
+ TODO:
+ handle errors better.
+=============================================================================*/
+
+/*!re2c
+re2c:indent:string = " ";
+any = [\t\v\f\r\n\040-\377];
+anyctrl = [\001-\037];
+OctalDigit = [0-7];
+Digit = [0-9];
+HexDigit = [a-fA-F0-9];
+Integer = (("0" [xX] HexDigit+) | ("0" OctalDigit*) | ([1-9] Digit*));
+ExponentStart = [Ee] [+-];
+ExponentPart = [Ee] [+-]? Digit+;
+FractionalConstant = (Digit* "." Digit+) | (Digit+ ".");
+FloatingSuffix = [fF] [lL]? | [lL] [fF]?;
+IntegerSuffix = [uU] [lL]? | [lL] [uU]?;
+LongIntegerSuffix = [uU] ([lL] [lL]) | ([lL] [lL]) [uU]?;
+Backslash = [\\] | "??/";
+EscapeSequence = Backslash ([abfnrtv?'"] | Backslash | "x" HexDigit+ | OctalDigit OctalDigit? OctalDigit?);
+HexQuad = HexDigit HexDigit HexDigit HexDigit;
+UniversalChar = Backslash ("u" HexQuad | "U" HexQuad HexQuad);
+Newline = "\r\n" | "\n" | "\r";
+PPSpace = ([ \t\f\v]|("/*"(any\[*]|Newline|("*"+(any\[*/]|Newline)))*"*"+"/"))*;
+Pound = "#" | "??=" | "%:";
+NonDigit = [a-zA-Z_] | UniversalChar;
+*/
+
+/*!re2c
+ "/*" { goto ccomment; }
+ "//" { goto cppcomment; }
+ "."? Digit { goto pp_number; }
+
+ "alignas" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
+ "alignof" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
+ "asm" { BOOST_WAVE_RET(T_ASM); }
+ "auto" { BOOST_WAVE_RET(T_AUTO); }
+ "bool" { BOOST_WAVE_RET(T_BOOL); }
+ "break" { BOOST_WAVE_RET(T_BREAK); }
+ "case" { BOOST_WAVE_RET(T_CASE); }
+ "catch" { BOOST_WAVE_RET(T_CATCH); }
+ "char" { BOOST_WAVE_RET(T_CHAR); }
+ "char16_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
+ "char32_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
+ "class" { BOOST_WAVE_RET(T_CLASS); }
+ "const" { BOOST_WAVE_RET(T_CONST); }
+ "constexpr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
+ "const_cast" { BOOST_WAVE_RET(T_CONSTCAST); }
+ "continue" { BOOST_WAVE_RET(T_CONTINUE); }
+ "decltype" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
+ "default" { BOOST_WAVE_RET(T_DEFAULT); }
+ "delete" { BOOST_WAVE_RET(T_DELETE); }
+ "do" { BOOST_WAVE_RET(T_DO); }
+ "double" { BOOST_WAVE_RET(T_DOUBLE); }
+ "dynamic_cast" { BOOST_WAVE_RET(T_DYNAMICCAST); }
+ "else" { BOOST_WAVE_RET(T_ELSE); }
+ "enum" { BOOST_WAVE_RET(T_ENUM); }
+ "explicit" { BOOST_WAVE_RET(T_EXPLICIT); }
+ "export" { BOOST_WAVE_RET(T_EXPORT); }
+ "extern" { BOOST_WAVE_RET(T_EXTERN); }
+ "false" { BOOST_WAVE_RET(T_FALSE); }
+ "float" { BOOST_WAVE_RET(T_FLOAT); }
+ "for" { BOOST_WAVE_RET(T_FOR); }
+ "friend" { BOOST_WAVE_RET(T_FRIEND); }
+ "goto" { BOOST_WAVE_RET(T_GOTO); }
+ "if" { BOOST_WAVE_RET(T_IF); }
+ "import" { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+ "inline" { BOOST_WAVE_RET(T_INLINE); }
+ "int" { BOOST_WAVE_RET(T_INT); }
+ "long" { BOOST_WAVE_RET(T_LONG); }
+ "mutable" { BOOST_WAVE_RET(T_MUTABLE); }
+ "namespace" { BOOST_WAVE_RET(T_NAMESPACE); }
+ "new" { BOOST_WAVE_RET(T_NEW); }
+ "noexcept" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
+ "nullptr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
+ "operator" { BOOST_WAVE_RET(T_OPERATOR); }
+ "private" { BOOST_WAVE_RET(T_PRIVATE); }
+ "protected" { BOOST_WAVE_RET(T_PROTECTED); }
+ "public" { BOOST_WAVE_RET(T_PUBLIC); }
+ "register" { BOOST_WAVE_RET(T_REGISTER); }
+ "reinterpret_cast" { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+ "return" { BOOST_WAVE_RET(T_RETURN); }
+ "short" { BOOST_WAVE_RET(T_SHORT); }
+ "signed" { BOOST_WAVE_RET(T_SIGNED); }
+ "sizeof" { BOOST_WAVE_RET(T_SIZEOF); }
+ "static" { BOOST_WAVE_RET(T_STATIC); }
+ "static_cast" { BOOST_WAVE_RET(T_STATICCAST); }
+ "static_assert" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
+ "struct" { BOOST_WAVE_RET(T_STRUCT); }
+ "switch" { BOOST_WAVE_RET(T_SWITCH); }
+ "template" { BOOST_WAVE_RET(T_TEMPLATE); }
+ "this" { BOOST_WAVE_RET(T_THIS); }
+ "thread_local" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
+ "throw" { BOOST_WAVE_RET(T_THROW); }
+ "true" { BOOST_WAVE_RET(T_TRUE); }
+ "try" { BOOST_WAVE_RET(T_TRY); }
+ "typedef" { BOOST_WAVE_RET(T_TYPEDEF); }
+ "typeid" { BOOST_WAVE_RET(T_TYPEID); }
+ "typename" { BOOST_WAVE_RET(T_TYPENAME); }
+ "union" { BOOST_WAVE_RET(T_UNION); }
+ "unsigned" { BOOST_WAVE_RET(T_UNSIGNED); }
+ "using" { BOOST_WAVE_RET(T_USING); }
+ "virtual" { BOOST_WAVE_RET(T_VIRTUAL); }
+ "void" { BOOST_WAVE_RET(T_VOID); }
+ "volatile" { BOOST_WAVE_RET(T_VOLATILE); }
+ "wchar_t" { BOOST_WAVE_RET(T_WCHART); }
+ "while" { BOOST_WAVE_RET(T_WHILE); }
+
+ "__int8" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
+ "__int16" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+ "__int32" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+ "__int64" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+ "_"? "_based" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+ "_"? "_declspec" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+ "_"? "_cdecl" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+ "_"? "_fastcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+ "_"? "_stdcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+ "__try" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+ "__except" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+ "__finally" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+ "__leave" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+ "_"? "_inline" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+ "_"? "_asm" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+
+ "{" { BOOST_WAVE_RET(T_LEFTBRACE); }
+ "??<" { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+ "<%" { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+ "}" { BOOST_WAVE_RET(T_RIGHTBRACE); }
+ "??>" { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+ "%>" { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+ "[" { BOOST_WAVE_RET(T_LEFTBRACKET); }
+ "??(" { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+ "<:" { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+ "]" { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+ "??)" { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+ ":>" { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+ "#" { BOOST_WAVE_RET(T_POUND); }
+ "%:" { BOOST_WAVE_RET(T_POUND_ALT); }
+ "??=" { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+ "##" { BOOST_WAVE_RET(T_POUND_POUND); }
+ "#??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+ "??=#" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+ "??=??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+ "%:%:" { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+ "(" { BOOST_WAVE_RET(T_LEFTPAREN); }
+ ")" { BOOST_WAVE_RET(T_RIGHTPAREN); }
+ ";" { BOOST_WAVE_RET(T_SEMICOLON); }
+ ":" { BOOST_WAVE_RET(T_COLON); }
+ "..." { BOOST_WAVE_RET(T_ELLIPSIS); }
+ "?" { BOOST_WAVE_RET(T_QUESTION_MARK); }
+ "::"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_COLON);
+ }
+ else {
+ BOOST_WAVE_RET(T_COLON_COLON);
+ }
+ }
+ "." { BOOST_WAVE_RET(T_DOT); }
+ ".*"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_DOT);
+ }
+ else {
+ BOOST_WAVE_RET(T_DOTSTAR);
+ }
+ }
+ "+" { BOOST_WAVE_RET(T_PLUS); }
+ "-" { BOOST_WAVE_RET(T_MINUS); }
+ "*" { BOOST_WAVE_RET(T_STAR); }
+ "/" { BOOST_WAVE_RET(T_DIVIDE); }
+ "%" { BOOST_WAVE_RET(T_PERCENT); }
+ "^" { BOOST_WAVE_RET(T_XOR); }
+ "??'" { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+ "xor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+ "&" { BOOST_WAVE_RET(T_AND); }
+ "bitand" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+ "|" { BOOST_WAVE_RET(T_OR); }
+ "bitor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+ "??!" { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+ "~" { BOOST_WAVE_RET(T_COMPL); }
+ "??-" { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+ "compl" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+ "!" { BOOST_WAVE_RET(T_NOT); }
+ "not" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+ "=" { BOOST_WAVE_RET(T_ASSIGN); }
+ "<" { BOOST_WAVE_RET(T_LESS); }
+ ">" { BOOST_WAVE_RET(T_GREATER); }
+ "+=" { BOOST_WAVE_RET(T_PLUSASSIGN); }
+ "-=" { BOOST_WAVE_RET(T_MINUSASSIGN); }
+ "*=" { BOOST_WAVE_RET(T_STARASSIGN); }
+ "/=" { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+ "%=" { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+ "^=" { BOOST_WAVE_RET(T_XORASSIGN); }
+ "xor_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+ "??'=" { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+ "&=" { BOOST_WAVE_RET(T_ANDASSIGN); }
+ "and_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+ "|=" { BOOST_WAVE_RET(T_ORASSIGN); }
+ "or_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+ "??!=" { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+ "<<" { BOOST_WAVE_RET(T_SHIFTLEFT); }
+ ">>" { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+ ">>=" { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+ "<<=" { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+ "==" { BOOST_WAVE_RET(T_EQUAL); }
+ "!=" { BOOST_WAVE_RET(T_NOTEQUAL); }
+ "not_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+ "<=" { BOOST_WAVE_RET(T_LESSEQUAL); }
+ ">=" { BOOST_WAVE_RET(T_GREATEREQUAL); }
+ "&&" { BOOST_WAVE_RET(T_ANDAND); }
+ "and" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+ "||" { BOOST_WAVE_RET(T_OROR); }
+ "??!|" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+ "|??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+ "or" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+ "??!??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+ "++" { BOOST_WAVE_RET(T_PLUSPLUS); }
+ "--" { BOOST_WAVE_RET(T_MINUSMINUS); }
+ "," { BOOST_WAVE_RET(T_COMMA); }
+ "->*"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_ARROW);
+ }
+ else {
+ BOOST_WAVE_RET(T_ARROWSTAR);
+ }
+ }
+ "->" { BOOST_WAVE_RET(T_ARROW); }
+ "??/" { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+
+ "L"? (['] (EscapeSequence | UniversalChar | any\[\n\r\\'])+ ['])
+ { BOOST_WAVE_RET(T_CHARLIT); }
+
+ "L"? (["] (EscapeSequence | UniversalChar | any\[\n\r\\"])* ["])
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+
+ "L"? "R" ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ [uU] [']
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extcharlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ ([uU] | "u8") ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ ([uU] | "u8") "R" ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+
+ ([a-zA-Z_] | UniversalChar) ([a-zA-Z_0-9] | UniversalChar)*
+ { BOOST_WAVE_RET(T_IDENTIFIER); }
+
+ Pound PPSpace ( "include" | "include_next") PPSpace "<" (any\[\n\r>])+ ">"
+ { BOOST_WAVE_RET(T_PP_HHEADER); }
+
+ Pound PPSpace ( "include" | "include_next") PPSpace "\"" (any\[\n\r"])+ "\""
+ { BOOST_WAVE_RET(T_PP_QHEADER); }
+
+ Pound PPSpace ( "include" | "include_next") PPSpace
+ { BOOST_WAVE_RET(T_PP_INCLUDE); }
+
+ Pound PPSpace "if" { BOOST_WAVE_RET(T_PP_IF); }
+ Pound PPSpace "ifdef" { BOOST_WAVE_RET(T_PP_IFDEF); }
+ Pound PPSpace "ifndef" { BOOST_WAVE_RET(T_PP_IFNDEF); }
+ Pound PPSpace "else" { BOOST_WAVE_RET(T_PP_ELSE); }
+ Pound PPSpace "elif" { BOOST_WAVE_RET(T_PP_ELIF); }
+ Pound PPSpace "endif" { BOOST_WAVE_RET(T_PP_ENDIF); }
+ Pound PPSpace "define" { BOOST_WAVE_RET(T_PP_DEFINE); }
+ Pound PPSpace "undef" { BOOST_WAVE_RET(T_PP_UNDEF); }
+ Pound PPSpace "line" { BOOST_WAVE_RET(T_PP_LINE); }
+ Pound PPSpace "error" { BOOST_WAVE_RET(T_PP_ERROR); }
+ Pound PPSpace "pragma" { BOOST_WAVE_RET(T_PP_PRAGMA); }
+
+ Pound PPSpace "warning" { BOOST_WAVE_RET(T_PP_WARNING); }
+
+ Pound PPSpace "region" { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+ Pound PPSpace "endregion" { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+
+ [ \t\v\f]+
+ { BOOST_WAVE_RET(T_SPACE); }
+
+ Newline
+ {
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_NEWLINE);
+ }
+
+ "\000"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+ BOOST_WAVE_RET(T_EOF);
+ }
+
+ any { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+
+ anyctrl
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+*/
+
+ccomment:
+/*!re2c
+ "*/" { BOOST_WAVE_RET(T_CCOMMENT); }
+
+ Newline
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+ /*s->tok = cursor; */
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto ccomment;
+ }
+
+ any { goto ccomment; }
+
+ "\000"
+ {
+ if(cursor == s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C' style comment");
+ }
+ else
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
+ }
+ }
+
+ anyctrl
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+*/
+
+cppcomment:
+/*!re2c
+ Newline
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+ /*s->tok = cursor; */
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+
+ any { goto cppcomment; }
+
+ "\000"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+
+ --YYCURSOR; // next call returns T_EOF
+ if (!s->single_line_only)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
+ }
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+
+ anyctrl
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+*/
+
+/* this subscanner is called whenever a pp_number has been started */
+pp_number:
+{
+ cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
+ marker = uchar_wrapper(s->ptr);
+ limit = uchar_wrapper(s->lim);
+
+ if (s->detect_pp_numbers) {
+ /*!re2c
+ "."? Digit (Digit | NonDigit | ExponentStart | ".")*
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+ */
+ }
+ else {
+ /*!re2c
+ ((FractionalConstant ExponentPart?) | (Digit+ ExponentPart)) FloatingSuffix?
+ { BOOST_WAVE_RET(T_FLOATLIT); }
+
+ Integer { goto integer_suffix; }
+ */
+ }
+}
+
+/* this subscanner is called, whenever an Integer was recognized */
+integer_suffix:
+{
+ if (s->enable_ms_extensions) {
+ /*!re2c
+ LongIntegerSuffix | "i64"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+
+ IntegerSuffix?
+ { BOOST_WAVE_RET(T_INTLIT); }
+ */
+ }
+ else {
+ /*!re2c
+ LongIntegerSuffix
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+
+ IntegerSuffix?
+ { BOOST_WAVE_RET(T_INTLIT); }
+ */
+ }
+}
+
+/* this subscanner is invoked for C++0x extended character literals */
+extcharlit:
+{
+ /*!re2c
+ ((EscapeSequence | UniversalChar | any\[\n\r\\']) ['])
+ { BOOST_WAVE_RET(T_CHARLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+ */
+}
+
+/* this subscanner is invoked for C++0x extended character string literals */
+extstringlit:
+{
+ /*!re2c
+ ((EscapeSequence | UniversalChar | any\[\n\r\\"])* ["])
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+ */
+}
+
+extrawstringlit:
+{
+ // we have consumed the double quote but not the lparen
+ // at this point we may see a delimiter
+
+ /*!re2c
+ * {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string delimiter ('%c')", yych);
+ }
+
+ // delimiters are any character but parentheses, backslash, and whitespace
+ any\[()\\\t\v\f\r\n]
+ {
+ rawstringdelim += yych;
+ if (rawstringdelim.size() > 16)
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Raw string delimiter of excessive length (\"%s\") in input stream",
+ rawstringdelim.c_str());
+ }
+ goto extrawstringlit;
+ }
+
+ "("
+ {
+ rawstringdelim = ")" + rawstringdelim;
+ goto extrawstringbody;
+ }
+
+ */
+}
+
+extrawstringbody:
+{
+ /*!re2c
+
+ * {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string body ('%c')", yych);
+ }
+
+ Newline
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringbody;
+ }
+
+ (EscapeSequence | UniversalChar | any\["])
+ {
+ goto extrawstringbody;
+ }
+
+ ["]
+ {
+ // check to see if we have completed a delimiter
+ if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1),
+ (char *)(YYCURSOR - 1)) == rawstringdelim)
+ {
+ BOOST_WAVE_RET(T_RAWSTRINGLIT);
+ } else {
+ goto extrawstringbody;
+ }
+ }
+ */
+}
diff --git a/boost/wave/cpplexer/re2clex/strict_cpp_re.inc b/boost/wave/cpplexer/re2clex/strict_cpp_re.inc
new file mode 100644
index 0000000000..2d8f550b2a
--- /dev/null
+++ b/boost/wave/cpplexer/re2clex/strict_cpp_re.inc
@@ -0,0 +1,7718 @@
+/* Generated by re2c 1.0.2 on Mon Nov 27 19:18:43 2017 */
+#line 1 "strict_cpp.re"
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+
+ Copyright (c) 2001 Daniel C. Nuffer
+ 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)
+
+ This is a strict lexer conforming to the Standard as close as possible.
+ It does not allow the '$' to be part of identifiers. If you need the '$'
+ character in identifiers please include the lexer definition provided
+ in the cpp.re file.
+
+ TODO:
+ handle errors better.
+=============================================================================*/
+
+#line 40 "strict_cpp.re"
+
+
+
+#line 25 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ /* table 1 .. 8: 0 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 203, 8, 203, 203, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 203, 203, 138, 203, 203, 203, 203, 201,
+ 203, 203, 227, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 75, 204,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 216, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203,
+ /* table 9 .. 10: 256 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 0, 64, 64, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 64, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 128,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy6;
+ }
+ switch (yych) {
+ case 0x00: goto yy2;
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ case 0x08:
+ case 0x0E:
+ case 0x0F:
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ case 0x14:
+ case 0x15:
+ case 0x16:
+ case 0x17:
+ case 0x18:
+ case 0x19:
+ case 0x1A:
+ case 0x1B:
+ case 0x1C:
+ case 0x1D:
+ case 0x1E:
+ case 0x1F: goto yy4;
+ case '\t':
+ case '\n': goto yy9;
+ case '\v':
+ case '\f':
+ case '\r': goto yy11;
+ case ' ':
+ case '!': goto yy12;
+ case '"': goto yy14;
+ case '#': goto yy16;
+ case '%': goto yy19;
+ case '&': goto yy21;
+ case '\'': goto yy23;
+ case '(': goto yy24;
+ case ')': goto yy26;
+ case '*': goto yy28;
+ case '+': goto yy30;
+ case ',': goto yy32;
+ case '-': goto yy34;
+ case '.': goto yy36;
+ case '/': goto yy38;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy40;
+ case ':': goto yy42;
+ case ';': goto yy44;
+ case '<': goto yy46;
+ case '=': goto yy48;
+ case '>': goto yy50;
+ case '?': goto yy52;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'S':
+ case 'T':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case 'h':
+ case 'j':
+ case 'k':
+ case 'q':
+ case 'y':
+ case 'z': goto yy54;
+ case 'L': goto yy57;
+ case 'R': goto yy58;
+ case 'U': goto yy59;
+ case '[': goto yy60;
+ case '\\': goto yy62;
+ case ']': goto yy63;
+ case '^': goto yy65;
+ case '_': goto yy67;
+ case 'a': goto yy68;
+ case 'b': goto yy69;
+ case 'c': goto yy70;
+ case 'd': goto yy71;
+ case 'e': goto yy72;
+ case 'f': goto yy73;
+ case 'g': goto yy74;
+ case 'i': goto yy75;
+ case 'l': goto yy76;
+ case 'm': goto yy77;
+ case 'n': goto yy78;
+ case 'o': goto yy79;
+ case 'p': goto yy80;
+ case 'r': goto yy81;
+ case 's': goto yy82;
+ case 't': goto yy83;
+ case 'u': goto yy84;
+ case 'v': goto yy85;
+ case 'w': goto yy86;
+ case 'x': goto yy87;
+ case '{': goto yy88;
+ case '|': goto yy90;
+ case '}': goto yy92;
+ case '~': goto yy94;
+ default: goto yy18;
+ }
+yy2:
+ ++YYCURSOR;
+#line 335 "strict_cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+ BOOST_WAVE_RET(T_EOF);
+ }
+#line 241 "strict_cpp_re.inc"
+yy4:
+ ++YYCURSOR;
+#line 348 "strict_cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 251 "strict_cpp_re.inc"
+yy6:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy6;
+ }
+#line 325 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SPACE); }
+#line 261 "strict_cpp_re.inc"
+yy9:
+ ++YYCURSOR;
+yy10:
+#line 328 "strict_cpp.re"
+ {
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_NEWLINE);
+ }
+#line 271 "strict_cpp_re.inc"
+yy11:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy9;
+ goto yy10;
+yy12:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy96;
+#line 201 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_NOT); }
+#line 281 "strict_cpp_re.inc"
+yy14:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy99;
+ } else {
+ if (yych <= '\f') goto yy99;
+ if (yych >= ' ') goto yy99;
+ }
+yy15:
+#line 345 "strict_cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 294 "strict_cpp_re.inc"
+yy16:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'c') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy106;
+ } else {
+ if (yych <= '\f') goto yy106;
+ if (yych >= ' ') goto yy106;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych == '#') goto yy107;
+ } else {
+ if (yych <= '/') goto yy106;
+ if (yych == '?') goto yy110;
+ }
+ }
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'i') {
+ if (yych <= 'e') goto yy106;
+ if (yych >= 'i') goto yy106;
+ } else {
+ if (yych == 'l') goto yy106;
+ if (yych >= 'p') goto yy106;
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych == 'r') goto yy106;
+ } else {
+ if (yych == 'v') goto yy17;
+ if (yych <= 'w') goto yy106;
+ }
+ }
+ }
+yy17:
+#line 150 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND); }
+#line 335 "strict_cpp_re.inc"
+yy18:
+ ++YYCURSOR;
+ goto yy15;
+yy19:
+ yych = *++YYCURSOR;
+ if (yych <= '<') {
+ if (yych == ':') goto yy119;
+ } else {
+ if (yych <= '=') goto yy121;
+ if (yych <= '>') goto yy123;
+ }
+#line 189 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PERCENT); }
+#line 349 "strict_cpp_re.inc"
+yy21:
+ yych = *++YYCURSOR;
+ if (yych == '&') goto yy125;
+ if (yych == '=') goto yy127;
+#line 193 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_AND); }
+#line 356 "strict_cpp_re.inc"
+yy23:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy130;
+ if (yych <= '\n') goto yy15;
+ goto yy130;
+ } else {
+ if (yych <= 0x1F) goto yy15;
+ if (yych == '\'') goto yy15;
+ goto yy130;
+ }
+yy24:
+ ++YYCURSOR;
+#line 158 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTPAREN); }
+#line 373 "strict_cpp_re.inc"
+yy26:
+ ++YYCURSOR;
+#line 159 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTPAREN); }
+#line 378 "strict_cpp_re.inc"
+yy28:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy133;
+#line 187 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STAR); }
+#line 384 "strict_cpp_re.inc"
+yy30:
+ yych = *++YYCURSOR;
+ if (yych == '+') goto yy135;
+ if (yych == '=') goto yy137;
+#line 185 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PLUS); }
+#line 391 "strict_cpp_re.inc"
+yy32:
+ ++YYCURSOR;
+#line 237 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_COMMA); }
+#line 396 "strict_cpp_re.inc"
+yy34:
+ yych = *++YYCURSOR;
+ if (yych <= '<') {
+ if (yych == '-') goto yy139;
+ } else {
+ if (yych <= '=') goto yy141;
+ if (yych <= '>') goto yy143;
+ }
+#line 186 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_MINUS); }
+#line 407 "strict_cpp_re.inc"
+yy36:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+ if (yych == '*') goto yy145;
+ } else {
+ if (yych <= '.') goto yy147;
+ if (yych <= '/') goto yy37;
+ if (yych <= '9') goto yy40;
+ }
+yy37:
+#line 174 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DOT); }
+#line 421 "strict_cpp_re.inc"
+yy38:
+ yych = *++YYCURSOR;
+ if (yych <= '.') {
+ if (yych == '*') goto yy148;
+ } else {
+ if (yych <= '/') goto yy150;
+ if (yych == '=') goto yy152;
+ }
+#line 188 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDE); }
+#line 432 "strict_cpp_re.inc"
+yy40:
+ ++YYCURSOR;
+#line 45 "strict_cpp.re"
+ { goto pp_number; }
+#line 437 "strict_cpp_re.inc"
+yy42:
+ yych = *++YYCURSOR;
+ if (yych == ':') goto yy154;
+ if (yych == '>') goto yy156;
+#line 161 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_COLON); }
+#line 444 "strict_cpp_re.inc"
+yy44:
+ ++YYCURSOR;
+#line 160 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SEMICOLON); }
+#line 449 "strict_cpp_re.inc"
+yy46:
+ yych = *++YYCURSOR;
+ if (yych <= ':') {
+ if (yych == '%') goto yy158;
+ if (yych >= ':') goto yy160;
+ } else {
+ if (yych <= ';') goto yy47;
+ if (yych <= '<') goto yy162;
+ if (yych <= '=') goto yy164;
+ }
+yy47:
+#line 204 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LESS); }
+#line 463 "strict_cpp_re.inc"
+yy48:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy166;
+#line 203 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ASSIGN); }
+#line 469 "strict_cpp_re.inc"
+yy50:
+ yych = *++YYCURSOR;
+ if (yych <= '<') goto yy51;
+ if (yych <= '=') goto yy168;
+ if (yych <= '>') goto yy170;
+yy51:
+#line 205 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_GREATER); }
+#line 478 "strict_cpp_re.inc"
+yy52:
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy172;
+yy53:
+#line 163 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_QUESTION_MARK); }
+#line 486 "strict_cpp_re.inc"
+yy54:
+ yyaccept = 4;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy55:
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy56:
+#line 296 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_IDENTIFIER); }
+#line 501 "strict_cpp_re.inc"
+yy57:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '&') {
+ if (yych == '"') goto yy98;
+ goto yy55;
+ } else {
+ if (yych <= '\'') goto yy175;
+ if (yych != 'R') goto yy55;
+ }
+yy58:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy176;
+ goto yy55;
+yy59:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '&') {
+ if (yych == '"') goto yy178;
+ goto yy55;
+ } else {
+ if (yych <= '\'') goto yy180;
+ if (yych == 'R') goto yy182;
+ goto yy55;
+ }
+yy60:
+ ++YYCURSOR;
+#line 144 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET); }
+#line 532 "strict_cpp_re.inc"
+yy62:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'U') goto yy183;
+ if (yych == 'u') goto yy184;
+ goto yy15;
+yy63:
+ ++YYCURSOR;
+#line 147 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+#line 543 "strict_cpp_re.inc"
+yy65:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy185;
+#line 190 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_XOR); }
+#line 549 "strict_cpp_re.inc"
+yy67:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case '_': goto yy187;
+ case 'a': goto yy188;
+ case 'b': goto yy189;
+ case 'c': goto yy190;
+ case 'd': goto yy191;
+ case 'f': goto yy192;
+ case 'i': goto yy193;
+ case 's': goto yy194;
+ default: goto yy55;
+ }
+yy68:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'l': goto yy195;
+ case 'n': goto yy196;
+ case 's': goto yy197;
+ case 'u': goto yy198;
+ default: goto yy55;
+ }
+yy69:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'n') {
+ if (yych == 'i') goto yy199;
+ goto yy55;
+ } else {
+ if (yych <= 'o') goto yy200;
+ if (yych == 'r') goto yy201;
+ goto yy55;
+ }
+yy70:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy202;
+ case 'h': goto yy203;
+ case 'l': goto yy204;
+ case 'o': goto yy205;
+ default: goto yy55;
+ }
+yy71:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy206;
+ goto yy55;
+ } else {
+ if (yych <= 'o') goto yy207;
+ if (yych == 'y') goto yy209;
+ goto yy55;
+ }
+yy72:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'm') {
+ if (yych == 'l') goto yy210;
+ goto yy55;
+ } else {
+ if (yych <= 'n') goto yy211;
+ if (yych == 'x') goto yy212;
+ goto yy55;
+ }
+yy73:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy213;
+ case 'l': goto yy214;
+ case 'o': goto yy215;
+ case 'r': goto yy216;
+ default: goto yy55;
+ }
+yy74:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy217;
+ goto yy55;
+yy75:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'l') {
+ if (yych == 'f') goto yy218;
+ goto yy55;
+ } else {
+ if (yych <= 'm') goto yy220;
+ if (yych <= 'n') goto yy221;
+ goto yy55;
+ }
+yy76:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy222;
+ goto yy55;
+yy77:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy223;
+ goto yy55;
+yy78:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy224;
+ case 'e': goto yy225;
+ case 'o': goto yy226;
+ case 'u': goto yy227;
+ default: goto yy55;
+ }
+yy79:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy228;
+ if (yych == 'r') goto yy229;
+ goto yy55;
+yy80:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy231;
+ if (yych == 'u') goto yy232;
+ goto yy55;
+yy81:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy233;
+ goto yy55;
+yy82:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 's') {
+ if (yych <= 'g') goto yy55;
+ if (yych <= 'h') goto yy234;
+ if (yych <= 'i') goto yy235;
+ goto yy55;
+ } else {
+ if (yych <= 't') goto yy236;
+ if (yych == 'w') goto yy237;
+ goto yy55;
+ }
+yy83:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'e': goto yy238;
+ case 'h': goto yy239;
+ case 'r': goto yy240;
+ case 'y': goto yy241;
+ default: goto yy55;
+ }
+yy84:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '8') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy178;
+ goto yy55;
+ } else {
+ if (yych <= '\'') goto yy180;
+ if (yych <= '7') goto yy55;
+ goto yy242;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == 'R') goto yy182;
+ goto yy55;
+ } else {
+ if (yych <= 'n') goto yy243;
+ if (yych == 's') goto yy244;
+ goto yy55;
+ }
+ }
+yy85:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy245;
+ if (yych == 'o') goto yy246;
+ goto yy55;
+yy86:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy247;
+ if (yych == 'h') goto yy248;
+ goto yy55;
+yy87:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy249;
+ goto yy55;
+yy88:
+ ++YYCURSOR;
+#line 138 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE); }
+#line 746 "strict_cpp_re.inc"
+yy90:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '>') {
+ if (yych == '=') goto yy250;
+ } else {
+ if (yych <= '?') goto yy252;
+ if (yych == '|') goto yy253;
+ }
+yy91:
+#line 195 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OR); }
+#line 759 "strict_cpp_re.inc"
+yy92:
+ ++YYCURSOR;
+#line 141 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE); }
+#line 764 "strict_cpp_re.inc"
+yy94:
+ ++YYCURSOR;
+#line 198 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_COMPL); }
+#line 769 "strict_cpp_re.inc"
+yy96:
+ ++YYCURSOR;
+#line 224 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_NOTEQUAL); }
+#line 774 "strict_cpp_re.inc"
+yy98:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy99:
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '"') goto yy101;
+ if (yych <= '?') goto yy103;
+ goto yy104;
+yy100:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 56) {
+ if (yyaccept <= 28) {
+ if (yyaccept <= 14) {
+ if (yyaccept <= 7) {
+ if (yyaccept <= 3) {
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy15;
+ } else {
+ goto yy17;
+ }
+ } else {
+ if (yyaccept == 2) {
+ goto yy37;
+ } else {
+ goto yy53;
+ }
+ }
+ } else {
+ if (yyaccept <= 5) {
+ if (yyaccept == 4) {
+ goto yy56;
+ } else {
+ goto yy91;
+ }
+ } else {
+ if (yyaccept == 6) {
+ goto yy120;
+ } else {
+ goto yy208;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 11) {
+ if (yyaccept <= 9) {
+ if (yyaccept == 8) {
+ goto yy219;
+ } else {
+ goto yy230;
+ }
+ } else {
+ if (yyaccept == 10) {
+ goto yy268;
+ } else {
+ goto yy292;
+ }
+ }
+ } else {
+ if (yyaccept <= 13) {
+ if (yyaccept == 12) {
+ goto yy302;
+ } else {
+ goto yy306;
+ }
+ } else {
+ goto yy328;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 21) {
+ if (yyaccept <= 18) {
+ if (yyaccept <= 16) {
+ if (yyaccept == 15) {
+ goto yy330;
+ } else {
+ goto yy353;
+ }
+ } else {
+ if (yyaccept == 17) {
+ goto yy359;
+ } else {
+ goto yy364;
+ }
+ }
+ } else {
+ if (yyaccept <= 20) {
+ if (yyaccept == 19) {
+ goto yy367;
+ } else {
+ goto yy388;
+ }
+ } else {
+ goto yy399;
+ }
+ }
+ } else {
+ if (yyaccept <= 25) {
+ if (yyaccept <= 23) {
+ if (yyaccept == 22) {
+ goto yy446;
+ } else {
+ goto yy456;
+ }
+ } else {
+ if (yyaccept == 24) {
+ goto yy460;
+ } else {
+ goto yy463;
+ }
+ }
+ } else {
+ if (yyaccept <= 27) {
+ if (yyaccept == 26) {
+ goto yy466;
+ } else {
+ goto yy477;
+ }
+ } else {
+ goto yy479;
+ }
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 42) {
+ if (yyaccept <= 35) {
+ if (yyaccept <= 32) {
+ if (yyaccept <= 30) {
+ if (yyaccept == 29) {
+ goto yy487;
+ } else {
+ goto yy491;
+ }
+ } else {
+ if (yyaccept == 31) {
+ goto yy513;
+ } else {
+ goto yy517;
+ }
+ }
+ } else {
+ if (yyaccept <= 34) {
+ if (yyaccept == 33) {
+ goto yy524;
+ } else {
+ goto yy102;
+ }
+ } else {
+ goto yy277;
+ }
+ }
+ } else {
+ if (yyaccept <= 39) {
+ if (yyaccept <= 37) {
+ if (yyaccept == 36) {
+ goto yy563;
+ } else {
+ goto yy574;
+ }
+ } else {
+ if (yyaccept == 38) {
+ goto yy576;
+ } else {
+ goto yy578;
+ }
+ }
+ } else {
+ if (yyaccept <= 41) {
+ if (yyaccept == 40) {
+ goto yy582;
+ } else {
+ goto yy584;
+ }
+ } else {
+ goto yy586;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 49) {
+ if (yyaccept <= 46) {
+ if (yyaccept <= 44) {
+ if (yyaccept == 43) {
+ goto yy597;
+ } else {
+ goto yy599;
+ }
+ } else {
+ if (yyaccept == 45) {
+ goto yy610;
+ } else {
+ goto yy618;
+ }
+ }
+ } else {
+ if (yyaccept <= 48) {
+ if (yyaccept == 47) {
+ goto yy627;
+ } else {
+ goto yy632;
+ }
+ } else {
+ goto yy635;
+ }
+ }
+ } else {
+ if (yyaccept <= 53) {
+ if (yyaccept <= 51) {
+ if (yyaccept == 50) {
+ goto yy640;
+ } else {
+ goto yy669;
+ }
+ } else {
+ if (yyaccept == 52) {
+ goto yy672;
+ } else {
+ goto yy674;
+ }
+ }
+ } else {
+ if (yyaccept <= 55) {
+ if (yyaccept == 54) {
+ goto yy682;
+ } else {
+ goto yy684;
+ }
+ } else {
+ goto yy693;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 85) {
+ if (yyaccept <= 71) {
+ if (yyaccept <= 64) {
+ if (yyaccept <= 60) {
+ if (yyaccept <= 58) {
+ if (yyaccept == 57) {
+ goto yy695;
+ } else {
+ goto yy699;
+ }
+ } else {
+ if (yyaccept == 59) {
+ goto yy701;
+ } else {
+ goto yy703;
+ }
+ }
+ } else {
+ if (yyaccept <= 62) {
+ if (yyaccept == 61) {
+ goto yy705;
+ } else {
+ goto yy707;
+ }
+ } else {
+ if (yyaccept == 63) {
+ goto yy712;
+ } else {
+ goto yy718;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 68) {
+ if (yyaccept <= 66) {
+ if (yyaccept == 65) {
+ goto yy722;
+ } else {
+ goto yy724;
+ }
+ } else {
+ if (yyaccept == 67) {
+ goto yy726;
+ } else {
+ goto yy728;
+ }
+ }
+ } else {
+ if (yyaccept <= 70) {
+ if (yyaccept == 69) {
+ goto yy730;
+ } else {
+ goto yy732;
+ }
+ } else {
+ goto yy737;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 78) {
+ if (yyaccept <= 75) {
+ if (yyaccept <= 73) {
+ if (yyaccept == 72) {
+ goto yy744;
+ } else {
+ goto yy759;
+ }
+ } else {
+ if (yyaccept == 74) {
+ goto yy761;
+ } else {
+ goto yy763;
+ }
+ }
+ } else {
+ if (yyaccept <= 77) {
+ if (yyaccept == 76) {
+ goto yy765;
+ } else {
+ goto yy769;
+ }
+ } else {
+ goto yy772;
+ }
+ }
+ } else {
+ if (yyaccept <= 82) {
+ if (yyaccept <= 80) {
+ if (yyaccept == 79) {
+ goto yy774;
+ } else {
+ goto yy782;
+ }
+ } else {
+ if (yyaccept == 81) {
+ goto yy786;
+ } else {
+ goto yy790;
+ }
+ }
+ } else {
+ if (yyaccept <= 84) {
+ if (yyaccept == 83) {
+ goto yy793;
+ } else {
+ goto yy801;
+ }
+ } else {
+ goto yy805;
+ }
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 99) {
+ if (yyaccept <= 92) {
+ if (yyaccept <= 89) {
+ if (yyaccept <= 87) {
+ if (yyaccept == 86) {
+ goto yy808;
+ } else {
+ goto yy811;
+ }
+ } else {
+ if (yyaccept == 88) {
+ goto yy815;
+ } else {
+ goto yy820;
+ }
+ }
+ } else {
+ if (yyaccept <= 91) {
+ if (yyaccept == 90) {
+ goto yy822;
+ } else {
+ goto yy824;
+ }
+ } else {
+ goto yy828;
+ }
+ }
+ } else {
+ if (yyaccept <= 96) {
+ if (yyaccept <= 94) {
+ if (yyaccept == 93) {
+ goto yy830;
+ } else {
+ goto yy833;
+ }
+ } else {
+ if (yyaccept == 95) {
+ goto yy836;
+ } else {
+ goto yy838;
+ }
+ }
+ } else {
+ if (yyaccept <= 98) {
+ if (yyaccept == 97) {
+ goto yy841;
+ } else {
+ goto yy846;
+ }
+ } else {
+ goto yy849;
+ }
+ }
+ }
+ } else {
+ if (yyaccept <= 106) {
+ if (yyaccept <= 103) {
+ if (yyaccept <= 101) {
+ if (yyaccept == 100) {
+ goto yy851;
+ } else {
+ goto yy853;
+ }
+ } else {
+ if (yyaccept == 102) {
+ goto yy862;
+ } else {
+ goto yy864;
+ }
+ }
+ } else {
+ if (yyaccept <= 105) {
+ if (yyaccept == 104) {
+ goto yy866;
+ } else {
+ goto yy869;
+ }
+ } else {
+ goto yy872;
+ }
+ }
+ } else {
+ if (yyaccept <= 110) {
+ if (yyaccept <= 108) {
+ if (yyaccept == 107) {
+ goto yy874;
+ } else {
+ goto yy889;
+ }
+ } else {
+ if (yyaccept == 109) {
+ goto yy906;
+ } else {
+ goto yy910;
+ }
+ }
+ } else {
+ if (yyaccept <= 112) {
+ if (yyaccept == 111) {
+ goto yy914;
+ } else {
+ goto yy917;
+ }
+ } else {
+ goto yy921;
+ }
+ }
+ }
+ }
+ }
+ }
+yy101:
+ ++YYCURSOR;
+yy102:
+#line 255 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1247 "strict_cpp_re.inc"
+yy103:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '"') goto yy101;
+ if (yych <= '?') goto yy255;
+yy104:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= '\'') goto yy98;
+ if (yych <= '/') goto yy100;
+ goto yy98;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= 'U') goto yy257;
+ if (yych == '\\') goto yy98;
+ goto yy100;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy98;
+ if (yych <= 'e') goto yy100;
+ goto yy98;
+ } else {
+ if (yych == 'n') goto yy98;
+ if (yych <= 'q') goto yy100;
+ goto yy98;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy100;
+ if (yych <= 't') goto yy98;
+ goto yy258;
+ } else {
+ if (yych <= 'v') goto yy98;
+ if (yych == 'x') goto yy259;
+ goto yy100;
+ }
+ }
+ }
+yy105:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+ yych = *YYCURSOR;
+yy106:
+ if (yych <= 'h') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy105;
+ goto yy100;
+ } else {
+ if (yych <= '\f') goto yy105;
+ if (yych <= 0x1F) goto yy100;
+ goto yy105;
+ }
+ } else {
+ if (yych <= 'c') {
+ if (yych == '/') goto yy109;
+ goto yy100;
+ } else {
+ if (yych <= 'd') goto yy111;
+ if (yych <= 'e') goto yy112;
+ goto yy100;
+ }
+ }
+ } else {
+ if (yych <= 'q') {
+ if (yych <= 'l') {
+ if (yych <= 'i') goto yy113;
+ if (yych <= 'k') goto yy100;
+ goto yy114;
+ } else {
+ if (yych == 'p') goto yy115;
+ goto yy100;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 'r') goto yy116;
+ if (yych <= 't') goto yy100;
+ goto yy117;
+ } else {
+ if (yych == 'w') goto yy118;
+ goto yy100;
+ }
+ }
+ }
+yy107:
+ ++YYCURSOR;
+#line 153 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND); }
+#line 1355 "strict_cpp_re.inc"
+yy109:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '*') goto yy260;
+ goto yy100;
+yy110:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy262;
+ goto yy100;
+yy111:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy263;
+ goto yy100;
+yy112:
+ yych = *++YYCURSOR;
+ if (yych <= 'm') {
+ if (yych == 'l') goto yy264;
+ goto yy100;
+ } else {
+ if (yych <= 'n') goto yy265;
+ if (yych == 'r') goto yy266;
+ goto yy100;
+ }
+yy113:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy267;
+ if (yych == 'n') goto yy269;
+ goto yy100;
+yy114:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy270;
+ goto yy100;
+yy115:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy271;
+ goto yy100;
+yy116:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy272;
+ goto yy100;
+yy117:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy273;
+ goto yy100;
+yy118:
+ yych = *++YYCURSOR;
+ if (yych == 'a') goto yy274;
+ goto yy100;
+yy119:
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'e') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy106;
+ } else {
+ if (yych <= '\f') goto yy106;
+ if (yych >= ' ') goto yy106;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych == '%') goto yy275;
+ } else {
+ if (yych <= '/') goto yy106;
+ if (yych >= 'd') goto yy106;
+ }
+ }
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'k') {
+ if (yych == 'i') goto yy106;
+ } else {
+ if (yych <= 'l') goto yy106;
+ if (yych >= 'p') goto yy106;
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych == 'r') goto yy106;
+ } else {
+ if (yych == 'v') goto yy120;
+ if (yych <= 'w') goto yy106;
+ }
+ }
+ }
+yy120:
+#line 151 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_ALT); }
+#line 1444 "strict_cpp_re.inc"
+yy121:
+ ++YYCURSOR;
+#line 210 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+#line 1449 "strict_cpp_re.inc"
+yy123:
+ ++YYCURSOR;
+#line 143 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+#line 1454 "strict_cpp_re.inc"
+yy125:
+ ++YYCURSOR;
+#line 228 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ANDAND); }
+#line 1459 "strict_cpp_re.inc"
+yy127:
+ ++YYCURSOR;
+#line 214 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ANDASSIGN); }
+#line 1464 "strict_cpp_re.inc"
+yy129:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy130:
+ if (yybm[0+yych] & 2) {
+ goto yy129;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '\'') goto yy276;
+ if (yych >= '@') goto yy132;
+yy131:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy129;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '\'') goto yy276;
+ if (yych <= '?') goto yy278;
+yy132:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy129;
+ goto yy100;
+ } else {
+ if (yych <= '\'') goto yy129;
+ if (yych <= '/') goto yy100;
+ goto yy129;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy129;
+ goto yy100;
+ } else {
+ if (yych <= 'U') goto yy280;
+ if (yych == '\\') goto yy129;
+ goto yy100;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy129;
+ if (yych <= 'e') goto yy100;
+ goto yy129;
+ } else {
+ if (yych == 'n') goto yy129;
+ if (yych <= 'q') goto yy100;
+ goto yy129;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy100;
+ if (yych <= 't') goto yy129;
+ goto yy281;
+ } else {
+ if (yych <= 'v') goto yy129;
+ if (yych == 'x') goto yy282;
+ goto yy100;
+ }
+ }
+ }
+yy133:
+ ++YYCURSOR;
+#line 208 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STARASSIGN); }
+#line 1537 "strict_cpp_re.inc"
+yy135:
+ ++YYCURSOR;
+#line 235 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PLUSPLUS); }
+#line 1542 "strict_cpp_re.inc"
+yy137:
+ ++YYCURSOR;
+#line 206 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PLUSASSIGN); }
+#line 1547 "strict_cpp_re.inc"
+yy139:
+ ++YYCURSOR;
+#line 236 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_MINUSMINUS); }
+#line 1552 "strict_cpp_re.inc"
+yy141:
+ ++YYCURSOR;
+#line 207 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_MINUSASSIGN); }
+#line 1557 "strict_cpp_re.inc"
+yy143:
+ yych = *++YYCURSOR;
+ if (yych == '*') goto yy283;
+#line 248 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ARROW); }
+#line 1563 "strict_cpp_re.inc"
+yy145:
+ ++YYCURSOR;
+#line 176 "strict_cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_DOT);
+ }
+ else {
+ BOOST_WAVE_RET(T_DOTSTAR);
+ }
+ }
+#line 1576 "strict_cpp_re.inc"
+yy147:
+ yych = *++YYCURSOR;
+ if (yych == '.') goto yy285;
+ goto yy100;
+yy148:
+ ++YYCURSOR;
+#line 43 "strict_cpp.re"
+ { goto ccomment; }
+#line 1585 "strict_cpp_re.inc"
+yy150:
+ ++YYCURSOR;
+#line 44 "strict_cpp.re"
+ { goto cppcomment; }
+#line 1590 "strict_cpp_re.inc"
+yy152:
+ ++YYCURSOR;
+#line 209 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+#line 1595 "strict_cpp_re.inc"
+yy154:
+ ++YYCURSOR;
+#line 165 "strict_cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_COLON);
+ }
+ else {
+ BOOST_WAVE_RET(T_COLON_COLON);
+ }
+ }
+#line 1608 "strict_cpp_re.inc"
+yy156:
+ ++YYCURSOR;
+#line 149 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+#line 1613 "strict_cpp_re.inc"
+yy158:
+ ++YYCURSOR;
+#line 140 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+#line 1618 "strict_cpp_re.inc"
+yy160:
+ ++YYCURSOR;
+#line 146 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+#line 1623 "strict_cpp_re.inc"
+yy162:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy287;
+#line 219 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFT); }
+#line 1629 "strict_cpp_re.inc"
+yy164:
+ ++YYCURSOR;
+#line 226 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LESSEQUAL); }
+#line 1634 "strict_cpp_re.inc"
+yy166:
+ ++YYCURSOR;
+#line 223 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_EQUAL); }
+#line 1639 "strict_cpp_re.inc"
+yy168:
+ ++YYCURSOR;
+#line 227 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_GREATEREQUAL); }
+#line 1644 "strict_cpp_re.inc"
+yy170:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy289;
+#line 220 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+#line 1650 "strict_cpp_re.inc"
+yy172:
+ yych = *++YYCURSOR;
+ switch (yych) {
+ case '!': goto yy291;
+ case '\'': goto yy293;
+ case '(': goto yy295;
+ case ')': goto yy297;
+ case '-': goto yy299;
+ case '/': goto yy301;
+ case '<': goto yy303;
+ case '=': goto yy305;
+ case '>': goto yy307;
+ default: goto yy100;
+ }
+yy173:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '?') goto yy309;
+ goto yy100;
+yy174:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == 'U') goto yy183;
+ if (yych == 'u') goto yy184;
+ goto yy100;
+yy175:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy100;
+ goto yy130;
+yy176:
+ ++YYCURSOR;
+#line 258 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1694 "strict_cpp_re.inc"
+yy178:
+ ++YYCURSOR;
+#line 277 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1704 "strict_cpp_re.inc"
+yy180:
+ ++YYCURSOR;
+#line 269 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extcharlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1714 "strict_cpp_re.inc"
+yy182:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy310;
+ goto yy55;
+yy183:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy312;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy312;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy312;
+ goto yy100;
+ }
+yy184:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy313;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy313;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy313;
+ goto yy100;
+ }
+yy185:
+ ++YYCURSOR;
+#line 211 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN); }
+#line 1752 "strict_cpp_re.inc"
+yy187:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case 'a': goto yy188;
+ case 'b': goto yy189;
+ case 'c': goto yy190;
+ case 'd': goto yy191;
+ case 'e': goto yy314;
+ case 'f': goto yy315;
+ case 'i': goto yy316;
+ case 'l': goto yy317;
+ case 's': goto yy194;
+ case 't': goto yy318;
+ default: goto yy55;
+ }
+yy188:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy319;
+ goto yy55;
+yy189:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy320;
+ goto yy55;
+yy190:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy321;
+ goto yy55;
+yy191:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy322;
+ goto yy55;
+yy192:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy323;
+ goto yy55;
+yy193:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy324;
+ goto yy55;
+yy194:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy325;
+ goto yy55;
+yy195:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy326;
+ goto yy55;
+yy196:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy327;
+ goto yy55;
+yy197:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy329;
+ goto yy55;
+yy198:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy331;
+ goto yy55;
+yy199:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy332;
+ goto yy55;
+yy200:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy333;
+ goto yy55;
+yy201:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy334;
+ goto yy55;
+yy202:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'r') goto yy55;
+ if (yych <= 's') goto yy335;
+ if (yych <= 't') goto yy336;
+ goto yy55;
+yy203:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy337;
+ goto yy55;
+yy204:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy338;
+ goto yy55;
+yy205:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'l') goto yy55;
+ if (yych <= 'm') goto yy339;
+ if (yych <= 'n') goto yy340;
+ goto yy55;
+yy206:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'e') {
+ if (yych == 'c') goto yy341;
+ goto yy55;
+ } else {
+ if (yych <= 'f') goto yy342;
+ if (yych == 'l') goto yy343;
+ goto yy55;
+ }
+yy207:
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '[') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy208;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych <= '@') goto yy208;
+ if (yych <= 'Z') goto yy54;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= '\\') goto yy174;
+ if (yych == '_') goto yy54;
+ } else {
+ if (yych == 'u') goto yy344;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy208:
+#line 66 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DO); }
+#line 1898 "strict_cpp_re.inc"
+yy209:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy345;
+ goto yy55;
+yy210:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy346;
+ goto yy55;
+yy211:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy347;
+ goto yy55;
+yy212:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy348;
+ if (yych == 't') goto yy349;
+ goto yy55;
+yy213:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy350;
+ goto yy55;
+yy214:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy351;
+ goto yy55;
+yy215:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy352;
+ goto yy55;
+yy216:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy354;
+ goto yy55;
+yy217:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy355;
+ goto yy55;
+yy218:
+ yyaccept = 8;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy219:
+#line 79 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_IF); }
+#line 1956 "strict_cpp_re.inc"
+yy220:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy356;
+ goto yy55;
+yy221:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy357;
+ if (yych == 't') goto yy358;
+ goto yy55;
+yy222:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy360;
+ goto yy55;
+yy223:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy361;
+ goto yy55;
+yy224:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy362;
+ goto yy55;
+yy225:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'w') goto yy363;
+ goto yy55;
+yy226:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy365;
+ if (yych == 't') goto yy366;
+ goto yy55;
+yy227:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy368;
+ goto yy55;
+yy228:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy369;
+ goto yy55;
+yy229:
+ yyaccept = 9;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy230;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych >= 'A') goto yy54;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych == '\\') goto yy174;
+ } else {
+ if (yych <= '_') goto yy370;
+ if (yych <= '`') goto yy230;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy230:
+#line 233 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+#line 2027 "strict_cpp_re.inc"
+yy231:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy371;
+ if (yych == 'o') goto yy372;
+ goto yy55;
+yy232:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'b') goto yy373;
+ goto yy55;
+yy233:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'h') {
+ if (yych == 'g') goto yy374;
+ goto yy55;
+ } else {
+ if (yych <= 'i') goto yy375;
+ if (yych == 't') goto yy376;
+ goto yy55;
+ }
+yy234:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy377;
+ goto yy55;
+yy235:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy378;
+ if (yych == 'z') goto yy379;
+ goto yy55;
+yy236:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy380;
+ if (yych == 'r') goto yy381;
+ goto yy55;
+yy237:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy382;
+ goto yy55;
+yy238:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy383;
+ goto yy55;
+yy239:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy384;
+ if (yych == 'r') goto yy385;
+ goto yy55;
+yy240:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy386;
+ if (yych == 'y') goto yy387;
+ goto yy55;
+yy241:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy389;
+ goto yy55;
+yy242:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy178;
+ if (yych == 'R') goto yy182;
+ goto yy55;
+yy243:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy390;
+ if (yych == 's') goto yy391;
+ goto yy55;
+yy244:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy392;
+ goto yy55;
+yy245:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy393;
+ goto yy55;
+yy246:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy394;
+ if (yych == 'l') goto yy395;
+ goto yy55;
+yy247:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'h') goto yy396;
+ goto yy55;
+yy248:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy397;
+ goto yy55;
+yy249:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy398;
+ goto yy55;
+yy250:
+ ++YYCURSOR;
+#line 216 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN); }
+#line 2141 "strict_cpp_re.inc"
+yy252:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy400;
+ goto yy100;
+yy253:
+ ++YYCURSOR;
+#line 230 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR); }
+#line 2150 "strict_cpp_re.inc"
+yy255:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 4) {
+ goto yy255;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= '\f') goto yy98;
+ if (yych <= 0x1F) goto yy100;
+ goto yy98;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy101;
+ if (yych <= '.') goto yy98;
+ goto yy401;
+ } else {
+ if (yych == '\\') goto yy104;
+ goto yy98;
+ }
+ }
+yy257:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy403;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy403;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy403;
+ goto yy100;
+ }
+yy258:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy404;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy404;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy404;
+ goto yy100;
+ }
+yy259:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy98;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy98;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy98;
+ goto yy100;
+ }
+yy260:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 8) {
+ goto yy260;
+ }
+ if (yych <= 0x1F) goto yy100;
+ goto yy405;
+yy262:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy407;
+ goto yy100;
+yy263:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy409;
+ goto yy100;
+yy264:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy410;
+ if (yych == 's') goto yy411;
+ goto yy100;
+yy265:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy412;
+ goto yy100;
+yy266:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy413;
+ goto yy100;
+yy267:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy414;
+ if (yych == 'n') goto yy415;
+yy268:
+#line 307 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_IF); }
+#line 2257 "strict_cpp_re.inc"
+yy269:
+ yych = *++YYCURSOR;
+ if (yych == 'c') goto yy416;
+ goto yy100;
+yy270:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy417;
+ goto yy100;
+yy271:
+ yych = *++YYCURSOR;
+ if (yych == 'a') goto yy418;
+ goto yy100;
+yy272:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy419;
+ goto yy100;
+yy273:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy420;
+ goto yy100;
+yy274:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy421;
+ goto yy100;
+yy275:
+ yych = *++YYCURSOR;
+ if (yych == ':') goto yy422;
+ goto yy100;
+yy276:
+ ++YYCURSOR;
+yy277:
+#line 252 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 2291 "strict_cpp_re.inc"
+yy278:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '\'') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy129;
+ goto yy100;
+ } else {
+ if (yych <= '\f') goto yy129;
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '&') goto yy129;
+ goto yy276;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '/') goto yy424;
+ goto yy129;
+ } else {
+ if (yych <= '?') goto yy278;
+ if (yych == '\\') goto yy132;
+ goto yy129;
+ }
+ }
+yy280:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy426;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy426;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy426;
+ goto yy100;
+ }
+yy281:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy427;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy427;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy427;
+ goto yy100;
+ }
+yy282:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy129;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy129;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy129;
+ goto yy100;
+ }
+yy283:
+ ++YYCURSOR;
+#line 239 "strict_cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_ARROW);
+ }
+ else {
+ BOOST_WAVE_RET(T_ARROWSTAR);
+ }
+ }
+#line 2370 "strict_cpp_re.inc"
+yy285:
+ ++YYCURSOR;
+#line 162 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ELLIPSIS); }
+#line 2375 "strict_cpp_re.inc"
+yy287:
+ ++YYCURSOR;
+#line 222 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+#line 2380 "strict_cpp_re.inc"
+yy289:
+ ++YYCURSOR;
+#line 221 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+#line 2385 "strict_cpp_re.inc"
+yy291:
+ yyaccept = 11;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '>') {
+ if (yych == '=') goto yy428;
+ } else {
+ if (yych <= '?') goto yy430;
+ if (yych == '|') goto yy431;
+ }
+yy292:
+#line 197 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+#line 2398 "strict_cpp_re.inc"
+yy293:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy433;
+#line 191 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+#line 2404 "strict_cpp_re.inc"
+yy295:
+ ++YYCURSOR;
+#line 145 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+#line 2409 "strict_cpp_re.inc"
+yy297:
+ ++YYCURSOR;
+#line 148 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+#line 2414 "strict_cpp_re.inc"
+yy299:
+ ++YYCURSOR;
+#line 199 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+#line 2419 "strict_cpp_re.inc"
+yy301:
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'U') goto yy183;
+ if (yych == 'u') goto yy184;
+yy302:
+#line 249 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+#line 2428 "strict_cpp_re.inc"
+yy303:
+ ++YYCURSOR;
+#line 139 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+#line 2433 "strict_cpp_re.inc"
+yy305:
+ yyaccept = 13;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'c') {
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy106;
+ } else {
+ if (yych <= '\f') goto yy106;
+ if (yych >= ' ') goto yy106;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych == '#') goto yy435;
+ } else {
+ if (yych <= '/') goto yy106;
+ if (yych == '?') goto yy437;
+ }
+ }
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'i') {
+ if (yych <= 'e') goto yy106;
+ if (yych >= 'i') goto yy106;
+ } else {
+ if (yych == 'l') goto yy106;
+ if (yych >= 'p') goto yy106;
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych == 'r') goto yy106;
+ } else {
+ if (yych == 'v') goto yy306;
+ if (yych <= 'w') goto yy106;
+ }
+ }
+ }
+yy306:
+#line 152 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+#line 2474 "strict_cpp_re.inc"
+yy307:
+ ++YYCURSOR;
+#line 142 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+#line 2479 "strict_cpp_re.inc"
+yy309:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '/') goto yy174;
+ goto yy100;
+yy310:
+ ++YYCURSOR;
+#line 285 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ {
+ rawstringdelim = "";
+ goto extrawstringlit;
+ }
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 2498 "strict_cpp_re.inc"
+yy312:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy438;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy438;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy438;
+ goto yy100;
+ }
+yy313:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy439;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy439;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy439;
+ goto yy100;
+ }
+yy314:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'x') goto yy440;
+ goto yy55;
+yy315:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy323;
+ if (yych == 'i') goto yy441;
+ goto yy55;
+yy316:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy442;
+ goto yy55;
+yy317:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy443;
+ goto yy55;
+yy318:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy444;
+ goto yy55;
+yy319:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy445;
+ goto yy55;
+yy320:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy447;
+ goto yy55;
+yy321:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy448;
+ goto yy55;
+yy322:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy449;
+ goto yy55;
+yy323:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy450;
+ goto yy55;
+yy324:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy451;
+ goto yy55;
+yy325:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy452;
+ goto yy55;
+yy326:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy453;
+ goto yy55;
+yy327:
+ yyaccept = 14;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy328;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych >= 'A') goto yy54;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych == '\\') goto yy174;
+ } else {
+ if (yych <= '_') goto yy454;
+ if (yych <= '`') goto yy328;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy328:
+#line 229 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+#line 2616 "strict_cpp_re.inc"
+yy329:
+ yyaccept = 15;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy330:
+#line 49 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ASM); }
+#line 2628 "strict_cpp_re.inc"
+yy331:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy455;
+ goto yy55;
+yy332:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy457;
+ if (yych == 'o') goto yy458;
+ goto yy55;
+yy333:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy459;
+ goto yy55;
+yy334:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy461;
+ goto yy55;
+yy335:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy462;
+ goto yy55;
+yy336:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy464;
+ goto yy55;
+yy337:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy465;
+ goto yy55;
+yy338:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy467;
+ goto yy55;
+yy339:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy468;
+ goto yy55;
+yy340:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'r') goto yy55;
+ if (yych <= 's') goto yy469;
+ if (yych <= 't') goto yy470;
+ goto yy55;
+yy341:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy471;
+ goto yy55;
+yy342:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy472;
+ goto yy55;
+yy343:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy473;
+ goto yy55;
+yy344:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'b') goto yy474;
+ goto yy55;
+yy345:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy475;
+ goto yy55;
+yy346:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy476;
+ goto yy55;
+yy347:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy478;
+ goto yy55;
+yy348:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy480;
+ if (yych == 'o') goto yy481;
+ goto yy55;
+yy349:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy482;
+ goto yy55;
+yy350:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy483;
+ goto yy55;
+yy351:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy484;
+ goto yy55;
+yy352:
+ yyaccept = 16;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy353:
+#line 76 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_FOR); }
+#line 2749 "strict_cpp_re.inc"
+yy354:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy485;
+ goto yy55;
+yy355:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy486;
+ goto yy55;
+yy356:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy488;
+ goto yy55;
+yy357:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy489;
+ goto yy55;
+yy358:
+ yyaccept = 17;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy359:
+#line 82 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_INT); }
+#line 2781 "strict_cpp_re.inc"
+yy360:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy490;
+ goto yy55;
+yy361:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy492;
+ goto yy55;
+yy362:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy493;
+ goto yy55;
+yy363:
+ yyaccept = 18;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy364:
+#line 86 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_NEW); }
+#line 2808 "strict_cpp_re.inc"
+yy365:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'x') goto yy494;
+ goto yy55;
+yy366:
+ yyaccept = 19;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy367;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych >= 'A') goto yy54;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych == '\\') goto yy174;
+ } else {
+ if (yych <= '_') goto yy495;
+ if (yych <= '`') goto yy367;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy367:
+#line 202 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+#line 2837 "strict_cpp_re.inc"
+yy368:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy496;
+ goto yy55;
+yy369:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy497;
+ goto yy55;
+yy370:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy498;
+ goto yy55;
+yy371:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'v') goto yy499;
+ goto yy55;
+yy372:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy500;
+ goto yy55;
+yy373:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy501;
+ goto yy55;
+yy374:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy502;
+ goto yy55;
+yy375:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy503;
+ goto yy55;
+yy376:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy504;
+ goto yy55;
+yy377:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy505;
+ goto yy55;
+yy378:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy506;
+ goto yy55;
+yy379:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy507;
+ goto yy55;
+yy380:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy508;
+ goto yy55;
+yy381:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy509;
+ goto yy55;
+yy382:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy510;
+ goto yy55;
+yy383:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy511;
+ goto yy55;
+yy384:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy512;
+ goto yy55;
+yy385:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy514;
+ if (yych == 'o') goto yy515;
+ goto yy55;
+yy386:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy516;
+ goto yy55;
+yy387:
+ yyaccept = 20;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy388:
+#line 109 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_TRY); }
+#line 2945 "strict_cpp_re.inc"
+yy389:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy518;
+ goto yy55;
+yy390:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy519;
+ goto yy55;
+yy391:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy520;
+ goto yy55;
+yy392:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy521;
+ goto yy55;
+yy393:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy522;
+ goto yy55;
+yy394:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy523;
+ goto yy55;
+yy395:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy525;
+ goto yy55;
+yy396:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy526;
+ goto yy55;
+yy397:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy527;
+ goto yy55;
+yy398:
+ yyaccept = 21;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy399;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych >= 'A') goto yy54;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych == '\\') goto yy174;
+ } else {
+ if (yych <= '_') goto yy528;
+ if (yych <= '`') goto yy399;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy399:
+#line 192 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+#line 3014 "strict_cpp_re.inc"
+yy400:
+ yych = *++YYCURSOR;
+ if (yych == '!') goto yy529;
+ goto yy100;
+yy401:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '"') goto yy531;
+ if (yych <= '?') goto yy103;
+ goto yy401;
+yy403:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy532;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy532;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy532;
+ goto yy100;
+ }
+yy404:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy533;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy533;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy533;
+ goto yy100;
+ }
+yy405:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy405;
+ }
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\r') goto yy260;
+ goto yy100;
+ } else {
+ if (yych == '/') goto yy105;
+ goto yy260;
+ }
+yy407:
+ ++YYCURSOR;
+#line 154 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3077 "strict_cpp_re.inc"
+yy409:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy534;
+ goto yy100;
+yy410:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy535;
+ goto yy100;
+yy411:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy537;
+ goto yy100;
+yy412:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy539;
+ if (yych == 'r') goto yy540;
+ goto yy100;
+yy413:
+ yych = *++YYCURSOR;
+ if (yych == 'o') goto yy541;
+ goto yy100;
+yy414:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy542;
+ goto yy100;
+yy415:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy543;
+ goto yy100;
+yy416:
+ yych = *++YYCURSOR;
+ if (yych == 'l') goto yy544;
+ goto yy100;
+yy417:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy545;
+ goto yy100;
+yy418:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy547;
+ goto yy100;
+yy419:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy548;
+ goto yy100;
+yy420:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy549;
+ goto yy100;
+yy421:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy550;
+ goto yy100;
+yy422:
+ ++YYCURSOR;
+#line 157 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+#line 3135 "strict_cpp_re.inc"
+yy424:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy129;
+ }
+ if (yych <= 0x1F) goto yy100;
+ if (yych <= '\'') goto yy551;
+ if (yych <= '?') goto yy131;
+ goto yy424;
+yy426:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy552;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy552;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy552;
+ goto yy100;
+ }
+yy427:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy553;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy553;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy553;
+ goto yy100;
+ }
+yy428:
+ ++YYCURSOR;
+#line 218 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+#line 3179 "strict_cpp_re.inc"
+yy430:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy554;
+ goto yy100;
+yy431:
+ ++YYCURSOR;
+#line 231 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3188 "strict_cpp_re.inc"
+yy433:
+ ++YYCURSOR;
+#line 213 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+#line 3193 "strict_cpp_re.inc"
+yy435:
+ ++YYCURSOR;
+#line 155 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3198 "strict_cpp_re.inc"
+yy437:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy555;
+ goto yy100;
+yy438:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy556;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy556;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy556;
+ goto yy100;
+ }
+yy439:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy557;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy557;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy557;
+ goto yy100;
+ }
+yy440:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy558;
+ goto yy55;
+yy441:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy559;
+ goto yy55;
+yy442:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy451;
+ if (yych == 't') goto yy560;
+ goto yy55;
+yy443:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy561;
+ goto yy55;
+yy444:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy562;
+ goto yy55;
+yy445:
+ yyaccept = 22;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy446:
+#line 136 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+#line 3268 "strict_cpp_re.inc"
+yy447:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy564;
+ goto yy55;
+yy448:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy565;
+ goto yy55;
+yy449:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy566;
+ goto yy55;
+yy450:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy567;
+ goto yy55;
+yy451:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy568;
+ goto yy55;
+yy452:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy569;
+ goto yy55;
+yy453:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy570;
+ goto yy55;
+yy454:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy571;
+ goto yy55;
+yy455:
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy456:
+#line 50 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_AUTO); }
+#line 3320 "strict_cpp_re.inc"
+yy457:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy572;
+ goto yy55;
+yy458:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy573;
+ goto yy55;
+yy459:
+ yyaccept = 24;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy460:
+#line 51 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_BOOL); }
+#line 3342 "strict_cpp_re.inc"
+yy461:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'k') goto yy575;
+ goto yy55;
+yy462:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy463:
+#line 53 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CASE); }
+#line 3359 "strict_cpp_re.inc"
+yy464:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'h') goto yy577;
+ goto yy55;
+yy465:
+ yyaccept = 26;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '?') {
+ if (yych <= '2') {
+ if (yych <= '/') goto yy466;
+ if (yych == '1') goto yy579;
+ goto yy54;
+ } else {
+ if (yych <= '3') goto yy580;
+ if (yych <= '9') goto yy54;
+ if (yych >= '?') goto yy173;
+ }
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '@') goto yy466;
+ if (yych <= 'Z') goto yy54;
+ if (yych >= '\\') goto yy174;
+ } else {
+ if (yych <= '_') {
+ if (yych >= '_') goto yy54;
+ } else {
+ if (yych <= '`') goto yy466;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+ }
+yy466:
+#line 55 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CHAR); }
+#line 3395 "strict_cpp_re.inc"
+yy467:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy581;
+ goto yy55;
+yy468:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy583;
+ goto yy55;
+yy469:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy585;
+ goto yy55;
+yy470:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy587;
+ goto yy55;
+yy471:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy588;
+ goto yy55;
+yy472:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy589;
+ goto yy55;
+yy473:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy590;
+ goto yy55;
+yy474:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy591;
+ goto yy55;
+yy475:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy592;
+ goto yy55;
+yy476:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy477:
+#line 69 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ELSE); }
+#line 3452 "strict_cpp_re.inc"
+yy478:
+ yyaccept = 28;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy479:
+#line 70 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_ENUM); }
+#line 3464 "strict_cpp_re.inc"
+yy480:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy593;
+ goto yy55;
+yy481:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy594;
+ goto yy55;
+yy482:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy595;
+ goto yy55;
+yy483:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy596;
+ goto yy55;
+yy484:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy598;
+ goto yy55;
+yy485:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy600;
+ goto yy55;
+yy486:
+ yyaccept = 29;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy487:
+#line 78 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_GOTO); }
+#line 3506 "strict_cpp_re.inc"
+yy488:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy601;
+ goto yy55;
+yy489:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy602;
+ goto yy55;
+yy490:
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy491:
+#line 83 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LONG); }
+#line 3528 "strict_cpp_re.inc"
+yy492:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'b') goto yy603;
+ goto yy55;
+yy493:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy604;
+ goto yy55;
+yy494:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy605;
+ goto yy55;
+yy495:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy606;
+ goto yy55;
+yy496:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy607;
+ goto yy55;
+yy497:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy608;
+ goto yy55;
+yy498:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy609;
+ goto yy55;
+yy499:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy611;
+ goto yy55;
+yy500:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy612;
+ goto yy55;
+yy501:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy613;
+ goto yy55;
+yy502:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy614;
+ goto yy55;
+yy503:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy615;
+ goto yy55;
+yy504:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy616;
+ goto yy55;
+yy505:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy617;
+ goto yy55;
+yy506:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy619;
+ goto yy55;
+yy507:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy620;
+ goto yy55;
+yy508:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy621;
+ goto yy55;
+yy509:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy622;
+ goto yy55;
+yy510:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy623;
+ goto yy55;
+yy511:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy624;
+ goto yy55;
+yy512:
+ yyaccept = 31;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy513:
+#line 105 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_THIS); }
+#line 3640 "strict_cpp_re.inc"
+yy514:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy625;
+ goto yy55;
+yy515:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'w') goto yy626;
+ goto yy55;
+yy516:
+ yyaccept = 32;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy517:
+#line 108 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_TRUE); }
+#line 3662 "strict_cpp_re.inc"
+yy518:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'h') {
+ if (yych == 'd') goto yy628;
+ goto yy55;
+ } else {
+ if (yych <= 'i') goto yy629;
+ if (yych == 'n') goto yy630;
+ goto yy55;
+ }
+yy519:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy631;
+ goto yy55;
+yy520:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy633;
+ goto yy55;
+yy521:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy634;
+ goto yy55;
+yy522:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy636;
+ goto yy55;
+yy523:
+ yyaccept = 33;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy524:
+#line 117 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_VOID); }
+#line 3705 "strict_cpp_re.inc"
+yy525:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy637;
+ goto yy55;
+yy526:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy638;
+ goto yy55;
+yy527:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy639;
+ goto yy55;
+yy528:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy641;
+ goto yy55;
+yy529:
+ ++YYCURSOR;
+#line 232 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3730 "strict_cpp_re.inc"
+yy531:
+ yyaccept = 34;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 1) {
+ goto yy98;
+ }
+ if (yych <= 0x1F) goto yy102;
+ if (yych <= '"') goto yy101;
+ if (yych <= '?') goto yy103;
+ goto yy104;
+yy532:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy642;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy642;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy642;
+ goto yy100;
+ }
+yy533:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy259;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy259;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy259;
+ goto yy100;
+ }
+yy534:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy643;
+ goto yy100;
+yy535:
+ ++YYCURSOR;
+#line 311 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELIF); }
+#line 3779 "strict_cpp_re.inc"
+yy537:
+ ++YYCURSOR;
+#line 310 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELSE); }
+#line 3784 "strict_cpp_re.inc"
+yy539:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy644;
+ goto yy100;
+yy540:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy646;
+ goto yy100;
+yy541:
+ yych = *++YYCURSOR;
+ if (yych == 'r') goto yy647;
+ goto yy100;
+yy542:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy649;
+ goto yy100;
+yy543:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy651;
+ goto yy100;
+yy544:
+ yych = *++YYCURSOR;
+ if (yych == 'u') goto yy652;
+ goto yy100;
+yy545:
+ ++YYCURSOR;
+#line 315 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_LINE); }
+#line 3813 "strict_cpp_re.inc"
+yy547:
+ yych = *++YYCURSOR;
+ if (yych == 'm') goto yy653;
+ goto yy100;
+yy548:
+ yych = *++YYCURSOR;
+ if (yych == 'o') goto yy654;
+ goto yy100;
+yy549:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy655;
+ goto yy100;
+yy550:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy657;
+ goto yy100;
+yy551:
+ yyaccept = 35;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy129;
+ }
+ if (yych <= 0x1F) goto yy277;
+ if (yych <= '\'') goto yy276;
+ if (yych <= '?') goto yy131;
+ goto yy132;
+yy552:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy658;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy658;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy658;
+ goto yy100;
+ }
+yy553:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy282;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy282;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy282;
+ goto yy100;
+ }
+yy554:
+ yych = *++YYCURSOR;
+ if (yych == '!') goto yy659;
+ goto yy100;
+yy555:
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy661;
+ goto yy100;
+yy556:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy184;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy184;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy184;
+ goto yy100;
+ }
+yy557:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy54;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy54;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy54;
+ goto yy100;
+ }
+yy558:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy663;
+ goto yy55;
+yy559:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy664;
+ goto yy55;
+yy560:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case '1': goto yy665;
+ case '3': goto yy666;
+ case '6': goto yy667;
+ case '8': goto yy668;
+ default: goto yy55;
+ }
+yy561:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'v') goto yy670;
+ goto yy55;
+yy562:
+ yyaccept = 36;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy563:
+#line 131 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+#line 3942 "strict_cpp_re.inc"
+yy564:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy671;
+ goto yy55;
+yy565:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy673;
+ goto yy55;
+yy566:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy675;
+ goto yy55;
+yy567:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy676;
+ goto yy55;
+yy568:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy677;
+ goto yy55;
+yy569:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy678;
+ goto yy55;
+yy570:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy679;
+ if (yych == 'o') goto yy680;
+ goto yy55;
+yy571:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy681;
+ goto yy55;
+yy572:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy683;
+ goto yy55;
+yy573:
+ yyaccept = 37;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy574:
+#line 196 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+#line 4000 "strict_cpp_re.inc"
+yy575:
+ yyaccept = 38;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy576:
+#line 52 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_BREAK); }
+#line 4012 "strict_cpp_re.inc"
+yy577:
+ yyaccept = 39;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy578:
+#line 54 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CATCH); }
+#line 4024 "strict_cpp_re.inc"
+yy579:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '6') goto yy685;
+ goto yy55;
+yy580:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '2') goto yy686;
+ goto yy55;
+yy581:
+ yyaccept = 40;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy582:
+#line 58 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CLASS); }
+#line 4046 "strict_cpp_re.inc"
+yy583:
+ yyaccept = 41;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy584:
+#line 200 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+#line 4058 "strict_cpp_re.inc"
+yy585:
+ yyaccept = 42;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '[') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy586;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych <= '@') goto yy586;
+ if (yych <= 'Z') goto yy54;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= '\\') goto yy174;
+ if (yych == '_') goto yy687;
+ } else {
+ if (yych == 'e') goto yy688;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy586:
+#line 59 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CONST); }
+#line 4083 "strict_cpp_re.inc"
+yy587:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy689;
+ goto yy55;
+yy588:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy690;
+ goto yy55;
+yy589:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy691;
+ goto yy55;
+yy590:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy692;
+ goto yy55;
+yy591:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy694;
+ goto yy55;
+yy592:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy696;
+ goto yy55;
+yy593:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy697;
+ goto yy55;
+yy594:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy698;
+ goto yy55;
+yy595:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy700;
+ goto yy55;
+yy596:
+ yyaccept = 43;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy597:
+#line 74 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_FALSE); }
+#line 4140 "strict_cpp_re.inc"
+yy598:
+ yyaccept = 44;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy599:
+#line 75 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_FLOAT); }
+#line 4152 "strict_cpp_re.inc"
+yy600:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy702;
+ goto yy55;
+yy601:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy704;
+ goto yy55;
+yy602:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy706;
+ goto yy55;
+yy603:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy708;
+ goto yy55;
+yy604:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy709;
+ goto yy55;
+yy605:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy710;
+ goto yy55;
+yy606:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy711;
+ goto yy55;
+yy607:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy713;
+ goto yy55;
+yy608:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy714;
+ goto yy55;
+yy609:
+ yyaccept = 45;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy610:
+#line 217 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+#line 4209 "strict_cpp_re.inc"
+yy611:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy715;
+ goto yy55;
+yy612:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy716;
+ goto yy55;
+yy613:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy717;
+ goto yy55;
+yy614:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy719;
+ goto yy55;
+yy615:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy720;
+ goto yy55;
+yy616:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy721;
+ goto yy55;
+yy617:
+ yyaccept = 46;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy618:
+#line 96 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHORT); }
+#line 4251 "strict_cpp_re.inc"
+yy619:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy723;
+ goto yy55;
+yy620:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'f') goto yy725;
+ goto yy55;
+yy621:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy727;
+ goto yy55;
+yy622:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy729;
+ goto yy55;
+yy623:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'h') goto yy731;
+ goto yy55;
+yy624:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy733;
+ goto yy55;
+yy625:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy734;
+ goto yy55;
+yy626:
+ yyaccept = 47;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy627:
+#line 107 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_THROW); }
+#line 4298 "strict_cpp_re.inc"
+yy628:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy735;
+ goto yy55;
+yy629:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy736;
+ goto yy55;
+yy630:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy738;
+ goto yy55;
+yy631:
+ yyaccept = 48;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy632:
+#line 113 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_UNION); }
+#line 4325 "strict_cpp_re.inc"
+yy633:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy739;
+ goto yy55;
+yy634:
+ yyaccept = 49;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy635:
+#line 115 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_USING); }
+#line 4342 "strict_cpp_re.inc"
+yy636:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy740;
+ goto yy55;
+yy637:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy741;
+ goto yy55;
+yy638:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy742;
+ goto yy55;
+yy639:
+ yyaccept = 50;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy640:
+#line 120 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_WHILE); }
+#line 4369 "strict_cpp_re.inc"
+yy641:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'q') goto yy743;
+ goto yy55;
+yy642:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy258;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy258;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy258;
+ goto yy100;
+ }
+yy643:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy745;
+ goto yy100;
+yy644:
+ ++YYCURSOR;
+#line 312 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ENDIF); }
+#line 4397 "strict_cpp_re.inc"
+yy646:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy747;
+ goto yy100;
+yy647:
+ ++YYCURSOR;
+#line 316 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ERROR); }
+#line 4406 "strict_cpp_re.inc"
+yy649:
+ ++YYCURSOR;
+#line 308 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFDEF); }
+#line 4411 "strict_cpp_re.inc"
+yy651:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy748;
+ goto yy100;
+yy652:
+ yych = *++YYCURSOR;
+ if (yych == 'd') goto yy750;
+ goto yy100;
+yy653:
+ yych = *++YYCURSOR;
+ if (yych == 'a') goto yy751;
+ goto yy100;
+yy654:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy753;
+ goto yy100;
+yy655:
+ ++YYCURSOR;
+#line 314 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_UNDEF); }
+#line 4432 "strict_cpp_re.inc"
+yy657:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy755;
+ goto yy100;
+yy658:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy281;
+ goto yy100;
+ } else {
+ if (yych <= 'F') goto yy281;
+ if (yych <= '`') goto yy100;
+ if (yych <= 'f') goto yy281;
+ goto yy100;
+ }
+yy659:
+ ++YYCURSOR;
+#line 234 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 4455 "strict_cpp_re.inc"
+yy661:
+ ++YYCURSOR;
+#line 156 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 4460 "strict_cpp_re.inc"
+yy663:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy756;
+ goto yy55;
+yy664:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy757;
+ goto yy55;
+yy665:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '6') goto yy758;
+ goto yy55;
+yy666:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '2') goto yy760;
+ goto yy55;
+yy667:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '4') goto yy762;
+ goto yy55;
+yy668:
+ yyaccept = 51;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy669:
+#line 122 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
+#line 4497 "strict_cpp_re.inc"
+yy670:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy764;
+ goto yy55;
+yy671:
+ yyaccept = 52;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy672:
+#line 126 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+#line 4514 "strict_cpp_re.inc"
+yy673:
+ yyaccept = 53;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy674:
+#line 128 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+#line 4526 "strict_cpp_re.inc"
+yy675:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy766;
+ goto yy55;
+yy676:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy767;
+ goto yy55;
+yy677:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy768;
+ goto yy55;
+yy678:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy770;
+ goto yy55;
+yy679:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy771;
+ goto yy55;
+yy680:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'f') goto yy773;
+ goto yy55;
+yy681:
+ yyaccept = 54;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy682:
+#line 215 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+#line 4568 "strict_cpp_re.inc"
+yy683:
+ yyaccept = 55;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy684:
+#line 194 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+#line 4580 "strict_cpp_re.inc"
+yy685:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy775;
+ goto yy55;
+yy686:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy776;
+ goto yy55;
+yy687:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy777;
+ goto yy55;
+yy688:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'x') goto yy778;
+ goto yy55;
+yy689:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy779;
+ goto yy55;
+yy690:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy780;
+ goto yy55;
+yy691:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy781;
+ goto yy55;
+yy692:
+ yyaccept = 56;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy693:
+#line 65 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DELETE); }
+#line 4627 "strict_cpp_re.inc"
+yy694:
+ yyaccept = 57;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy695:
+#line 67 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DOUBLE); }
+#line 4639 "strict_cpp_re.inc"
+yy696:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy783;
+ goto yy55;
+yy697:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy784;
+ goto yy55;
+yy698:
+ yyaccept = 58;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy699:
+#line 72 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_EXPORT); }
+#line 4661 "strict_cpp_re.inc"
+yy700:
+ yyaccept = 59;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy701:
+#line 73 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_EXTERN); }
+#line 4673 "strict_cpp_re.inc"
+yy702:
+ yyaccept = 60;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy703:
+#line 77 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_FRIEND); }
+#line 4685 "strict_cpp_re.inc"
+yy704:
+ yyaccept = 61;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy705:
+#line 80 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+#line 4697 "strict_cpp_re.inc"
+yy706:
+ yyaccept = 62;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy707:
+#line 81 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_INLINE); }
+#line 4709 "strict_cpp_re.inc"
+yy708:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy785;
+ goto yy55;
+yy709:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy787;
+ goto yy55;
+yy710:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy788;
+ goto yy55;
+yy711:
+ yyaccept = 63;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy712:
+#line 225 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+#line 4736 "strict_cpp_re.inc"
+yy713:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy789;
+ goto yy55;
+yy714:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy791;
+ goto yy55;
+yy715:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy792;
+ goto yy55;
+yy716:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy794;
+ goto yy55;
+yy717:
+ yyaccept = 64;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy718:
+#line 92 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PUBLIC); }
+#line 4768 "strict_cpp_re.inc"
+yy719:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy795;
+ goto yy55;
+yy720:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy796;
+ goto yy55;
+yy721:
+ yyaccept = 65;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy722:
+#line 95 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_RETURN); }
+#line 4790 "strict_cpp_re.inc"
+yy723:
+ yyaccept = 66;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy724:
+#line 97 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SIGNED); }
+#line 4802 "strict_cpp_re.inc"
+yy725:
+ yyaccept = 67;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy726:
+#line 98 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SIZEOF); }
+#line 4814 "strict_cpp_re.inc"
+yy727:
+ yyaccept = 68;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Z') {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy728;
+ if (yych <= '9') goto yy54;
+ } else {
+ if (yych <= '?') goto yy173;
+ if (yych >= 'A') goto yy54;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych == '\\') goto yy174;
+ } else {
+ if (yych <= '_') goto yy797;
+ if (yych <= '`') goto yy728;
+ if (yych <= 'z') goto yy54;
+ }
+ }
+yy728:
+#line 99 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STATIC); }
+#line 4838 "strict_cpp_re.inc"
+yy729:
+ yyaccept = 69;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy730:
+#line 102 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STRUCT); }
+#line 4850 "strict_cpp_re.inc"
+yy731:
+ yyaccept = 70;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy732:
+#line 103 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_SWITCH); }
+#line 4862 "strict_cpp_re.inc"
+yy733:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy798;
+ goto yy55;
+yy734:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy799;
+ goto yy55;
+yy735:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'f') goto yy800;
+ goto yy55;
+yy736:
+ yyaccept = 71;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy737:
+#line 111 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_TYPEID); }
+#line 4889 "strict_cpp_re.inc"
+yy738:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy802;
+ goto yy55;
+yy739:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy803;
+ goto yy55;
+yy740:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy804;
+ goto yy55;
+yy741:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy806;
+ goto yy55;
+yy742:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy807;
+ goto yy55;
+yy743:
+ yyaccept = 72;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy744:
+#line 212 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+#line 4926 "strict_cpp_re.inc"
+yy745:
+ ++YYCURSOR;
+#line 313 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_DEFINE); }
+#line 4931 "strict_cpp_re.inc"
+yy747:
+ yych = *++YYCURSOR;
+ if (yych == 'i') goto yy809;
+ goto yy100;
+yy748:
+ ++YYCURSOR;
+#line 309 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFNDEF); }
+#line 4940 "strict_cpp_re.inc"
+yy750:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy810;
+ goto yy100;
+yy751:
+ ++YYCURSOR;
+#line 317 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_PRAGMA); }
+#line 4949 "strict_cpp_re.inc"
+yy753:
+ ++YYCURSOR;
+#line 321 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+#line 4954 "strict_cpp_re.inc"
+yy755:
+ yych = *++YYCURSOR;
+ if (yych == 'g') goto yy812;
+ goto yy100;
+yy756:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy814;
+ goto yy55;
+yy757:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy816;
+ goto yy55;
+yy758:
+ yyaccept = 73;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy759:
+#line 123 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+#line 4980 "strict_cpp_re.inc"
+yy760:
+ yyaccept = 74;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy761:
+#line 124 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+#line 4992 "strict_cpp_re.inc"
+yy762:
+ yyaccept = 75;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy763:
+#line 125 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+#line 5004 "strict_cpp_re.inc"
+yy764:
+ yyaccept = 76;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy765:
+#line 134 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+#line 5016 "strict_cpp_re.inc"
+yy766:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy817;
+ goto yy55;
+yy767:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy818;
+ goto yy55;
+yy768:
+ yyaccept = 77;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy769:
+#line 135 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+#line 5038 "strict_cpp_re.inc"
+yy770:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy819;
+ goto yy55;
+yy771:
+ yyaccept = 78;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy772:
+#line 47 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
+#line 5055 "strict_cpp_re.inc"
+yy773:
+ yyaccept = 79;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy774:
+#line 48 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
+#line 5067 "strict_cpp_re.inc"
+yy775:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy821;
+ goto yy55;
+yy776:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy823;
+ goto yy55;
+yy777:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy825;
+ goto yy55;
+yy778:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy826;
+ goto yy55;
+yy779:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy827;
+ goto yy55;
+yy780:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy829;
+ goto yy55;
+yy781:
+ yyaccept = 80;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy782:
+#line 64 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DEFAULT); }
+#line 5109 "strict_cpp_re.inc"
+yy783:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy831;
+ goto yy55;
+yy784:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy832;
+ goto yy55;
+yy785:
+ yyaccept = 81;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy786:
+#line 84 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_MUTABLE); }
+#line 5131 "strict_cpp_re.inc"
+yy787:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy834;
+ goto yy55;
+yy788:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy835;
+ goto yy55;
+yy789:
+ yyaccept = 82;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy790:
+#line 88 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
+#line 5153 "strict_cpp_re.inc"
+yy791:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy837;
+ goto yy55;
+yy792:
+ yyaccept = 83;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy793:
+#line 90 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PRIVATE); }
+#line 5170 "strict_cpp_re.inc"
+yy794:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy839;
+ goto yy55;
+yy795:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy840;
+ goto yy55;
+yy796:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'p') goto yy842;
+ goto yy55;
+yy797:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy843;
+ if (yych == 'c') goto yy844;
+ goto yy55;
+yy798:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy845;
+ goto yy55;
+yy799:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy847;
+ goto yy55;
+yy800:
+ yyaccept = 84;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy801:
+#line 110 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_TYPEDEF); }
+#line 5213 "strict_cpp_re.inc"
+yy802:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy848;
+ goto yy55;
+yy803:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy850;
+ goto yy55;
+yy804:
+ yyaccept = 85;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy805:
+#line 116 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_VIRTUAL); }
+#line 5235 "strict_cpp_re.inc"
+yy806:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy852;
+ goto yy55;
+yy807:
+ yyaccept = 86;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy808:
+#line 119 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_WCHART); }
+#line 5252 "strict_cpp_re.inc"
+yy809:
+ yych = *++YYCURSOR;
+ if (yych == 'o') goto yy854;
+ goto yy100;
+yy810:
+ yyaccept = 87;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy860;
+ goto yy856;
+yy811:
+#line 305 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_INCLUDE); }
+#line 5265 "strict_cpp_re.inc"
+yy812:
+ ++YYCURSOR;
+#line 319 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_WARNING); }
+#line 5270 "strict_cpp_re.inc"
+yy814:
+ yyaccept = 88;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy815:
+#line 132 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+#line 5282 "strict_cpp_re.inc"
+yy816:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy861;
+ goto yy55;
+yy817:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy863;
+ goto yy55;
+yy818:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy865;
+ goto yy55;
+yy819:
+ yyaccept = 89;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy820:
+#line 130 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+#line 5309 "strict_cpp_re.inc"
+yy821:
+ yyaccept = 90;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy822:
+#line 56 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
+#line 5321 "strict_cpp_re.inc"
+yy823:
+ yyaccept = 91;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy824:
+#line 57 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
+#line 5333 "strict_cpp_re.inc"
+yy825:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy867;
+ goto yy55;
+yy826:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy868;
+ goto yy55;
+yy827:
+ yyaccept = 92;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy828:
+#line 62 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CONTINUE); }
+#line 5355 "strict_cpp_re.inc"
+yy829:
+ yyaccept = 93;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy830:
+#line 63 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
+#line 5367 "strict_cpp_re.inc"
+yy831:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy870;
+ goto yy55;
+yy832:
+ yyaccept = 94;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy833:
+#line 71 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_EXPLICIT); }
+#line 5384 "strict_cpp_re.inc"
+yy834:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy871;
+ goto yy55;
+yy835:
+ yyaccept = 95;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy836:
+#line 87 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
+#line 5401 "strict_cpp_re.inc"
+yy837:
+ yyaccept = 96;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy838:
+#line 89 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_OPERATOR); }
+#line 5413 "strict_cpp_re.inc"
+yy839:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'd') goto yy873;
+ goto yy55;
+yy840:
+ yyaccept = 97;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy841:
+#line 93 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_REGISTER); }
+#line 5430 "strict_cpp_re.inc"
+yy842:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy875;
+ goto yy55;
+yy843:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy876;
+ goto yy55;
+yy844:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy877;
+ goto yy55;
+yy845:
+ yyaccept = 98;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy846:
+#line 104 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_TEMPLATE); }
+#line 5457 "strict_cpp_re.inc"
+yy847:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy878;
+ goto yy55;
+yy848:
+ yyaccept = 99;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy849:
+#line 112 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_TYPENAME); }
+#line 5474 "strict_cpp_re.inc"
+yy850:
+ yyaccept = 100;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy851:
+#line 114 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_UNSIGNED); }
+#line 5486 "strict_cpp_re.inc"
+yy852:
+ yyaccept = 101;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy853:
+#line 118 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_VOLATILE); }
+#line 5498 "strict_cpp_re.inc"
+yy854:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy879;
+ goto yy100;
+yy855:
+ yyaccept = 87;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+yy856:
+ if (yych <= ' ') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy855;
+ goto yy811;
+ } else {
+ if (yych <= '\f') goto yy855;
+ if (yych <= 0x1F) goto yy811;
+ goto yy855;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych != '"') goto yy811;
+ } else {
+ if (yych <= '/') goto yy858;
+ if (yych == '<') goto yy859;
+ goto yy811;
+ }
+ }
+ yych = *++YYCURSOR;
+ if (yych == '"') goto yy100;
+ goto yy882;
+yy858:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '*') goto yy883;
+ goto yy100;
+yy859:
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy100;
+ goto yy886;
+yy860:
+ yych = *++YYCURSOR;
+ if (yych == 'n') goto yy887;
+ goto yy100;
+yy861:
+ yyaccept = 102;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy862:
+#line 133 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+#line 5555 "strict_cpp_re.inc"
+yy863:
+ yyaccept = 103;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy864:
+#line 127 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+#line 5567 "strict_cpp_re.inc"
+yy865:
+ yyaccept = 104;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy866:
+#line 129 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+#line 5579 "strict_cpp_re.inc"
+yy867:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy888;
+ goto yy55;
+yy868:
+ yyaccept = 105;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy869:
+#line 60 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
+#line 5596 "strict_cpp_re.inc"
+yy870:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy890;
+ goto yy55;
+yy871:
+ yyaccept = 106;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy872:
+#line 85 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_NAMESPACE); }
+#line 5613 "strict_cpp_re.inc"
+yy873:
+ yyaccept = 107;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy874:
+#line 91 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PROTECTED); }
+#line 5625 "strict_cpp_re.inc"
+yy875:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy891;
+ goto yy55;
+yy876:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy892;
+ goto yy55;
+yy877:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy893;
+ goto yy55;
+yy878:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy894;
+ goto yy55;
+yy879:
+ ++YYCURSOR;
+#line 322 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+#line 5650 "strict_cpp_re.inc"
+yy881:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy882:
+ if (yybm[0+yych] & 64) {
+ goto yy881;
+ }
+ if (yych <= 0x1F) goto yy100;
+ goto yy895;
+yy883:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\r') goto yy883;
+ goto yy100;
+ } else {
+ if (yych == '*') goto yy897;
+ goto yy883;
+ }
+yy885:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy886:
+ if (yybm[0+yych] & 128) {
+ goto yy885;
+ }
+ if (yych <= 0x1F) goto yy100;
+ goto yy899;
+yy887:
+ yych = *++YYCURSOR;
+ if (yych == 'e') goto yy901;
+ goto yy100;
+yy888:
+ yyaccept = 108;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy889:
+#line 61 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CONSTCAST); }
+#line 5698 "strict_cpp_re.inc"
+yy890:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 's') goto yy902;
+ goto yy55;
+yy891:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy903;
+ goto yy55;
+yy892:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy904;
+ goto yy55;
+yy893:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy905;
+ goto yy55;
+yy894:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy907;
+ goto yy55;
+yy895:
+ ++YYCURSOR;
+#line 302 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_QHEADER); }
+#line 5728 "strict_cpp_re.inc"
+yy897:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= ')') {
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\r') goto yy883;
+ if (yych <= 0x1F) goto yy100;
+ goto yy883;
+ } else {
+ if (yych <= '*') goto yy897;
+ if (yych == '/') goto yy855;
+ goto yy883;
+ }
+yy899:
+ ++YYCURSOR;
+#line 299 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_HHEADER); }
+#line 5747 "strict_cpp_re.inc"
+yy901:
+ yych = *++YYCURSOR;
+ if (yych == 'x') goto yy908;
+ goto yy100;
+yy902:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy909;
+ goto yy55;
+yy903:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '_') goto yy911;
+ goto yy55;
+yy904:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy912;
+ goto yy55;
+yy905:
+ yyaccept = 109;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy906:
+#line 100 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STATICCAST); }
+#line 5778 "strict_cpp_re.inc"
+yy907:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy913;
+ goto yy55;
+yy908:
+ yych = *++YYCURSOR;
+ if (yych == 't') goto yy855;
+ goto yy100;
+yy909:
+ yyaccept = 110;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy910:
+#line 68 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_DYNAMICCAST); }
+#line 5799 "strict_cpp_re.inc"
+yy911:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'c') goto yy915;
+ goto yy55;
+yy912:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 't') goto yy916;
+ goto yy55;
+yy913:
+ yyaccept = 111;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy914:
+#line 106 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
+#line 5821 "strict_cpp_re.inc"
+yy915:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy918;
+ goto yy55;
+yy916:
+ yyaccept = 112;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy917:
+#line 101 "strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
+#line 5838 "strict_cpp_re.inc"
+yy918:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych != 's') goto yy55;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych != 't') goto yy55;
+ yyaccept = 113;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[256+yych] & 128) {
+ goto yy54;
+ }
+ if (yych == '?') goto yy173;
+ if (yych == '\\') goto yy174;
+yy921:
+#line 94 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+#line 5856 "strict_cpp_re.inc"
+}
+#line 354 "strict_cpp.re"
+
+
+ccomment:
+
+#line 5863 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= '\f') {
+ if (yych <= 0x08) {
+ if (yych >= 0x01) goto yy926;
+ } else {
+ if (yych == '\n') goto yy930;
+ goto yy928;
+ }
+ } else {
+ if (yych <= 0x1F) {
+ if (yych <= '\r') goto yy932;
+ goto yy926;
+ } else {
+ if (yych == '*') goto yy933;
+ goto yy928;
+ }
+ }
+ ++YYCURSOR;
+#line 372 "strict_cpp.re"
+ {
+ if(cursor == s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C' style comment");
+ }
+ else
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
+ }
+ }
+#line 5901 "strict_cpp_re.inc"
+yy926:
+ ++YYCURSOR;
+#line 389 "strict_cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 5911 "strict_cpp_re.inc"
+yy928:
+ ++YYCURSOR;
+yy929:
+#line 369 "strict_cpp.re"
+ { goto ccomment; }
+#line 5917 "strict_cpp_re.inc"
+yy930:
+ ++YYCURSOR;
+yy931:
+#line 361 "strict_cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+ /*s->tok = cursor; */
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto ccomment;
+ }
+#line 5929 "strict_cpp_re.inc"
+yy932:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy930;
+ goto yy931;
+yy933:
+ yych = *++YYCURSOR;
+ if (yych != '/') goto yy929;
+ ++YYCURSOR;
+#line 358 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CCOMMENT); }
+#line 5940 "strict_cpp_re.inc"
+}
+#line 395 "strict_cpp.re"
+
+
+cppcomment:
+
+#line 5947 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy938;
+ if (yych <= 0x08) goto yy940;
+ if (yych <= '\t') goto yy942;
+ goto yy944;
+ } else {
+ if (yych <= '\f') goto yy942;
+ if (yych <= '\r') goto yy946;
+ if (yych <= 0x1F) goto yy940;
+ goto yy942;
+ }
+yy938:
+ ++YYCURSOR;
+#line 411 "strict_cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+
+ --YYCURSOR; // next call returns T_EOF
+ if (!s->single_line_only)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
+ }
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 5984 "strict_cpp_re.inc"
+yy940:
+ ++YYCURSOR;
+#line 431 "strict_cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 5994 "strict_cpp_re.inc"
+yy942:
+ ++YYCURSOR;
+#line 408 "strict_cpp.re"
+ { goto cppcomment; }
+#line 5999 "strict_cpp_re.inc"
+yy944:
+ ++YYCURSOR;
+yy945:
+#line 400 "strict_cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+ /*s->tok = cursor; */
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 6011 "strict_cpp_re.inc"
+yy946:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy944;
+ goto yy945;
+}
+#line 437 "strict_cpp.re"
+
+
+/* this subscanner is called whenever a pp_number has been started */
+pp_number:
+{
+ cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
+ marker = uchar_wrapper(s->ptr);
+ limit = uchar_wrapper(s->lim);
+
+ if (s->detect_pp_numbers) {
+
+#line 6029 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 64, 0,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 0, 0, 0, 0, 0, 0,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 64,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych == '.') goto yy950;
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy951;
+yy949:
+ YYCURSOR = YYMARKER;
+ goto yy953;
+yy950:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy949;
+ if (yych >= ':') goto yy949;
+yy951:
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy951;
+ }
+ if (yych <= 'E') {
+ if (yych == '?') goto yy954;
+ if (yych >= 'A') goto yy955;
+ } else {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy957;
+ } else {
+ if (yych <= '`') goto yy953;
+ if (yych <= 'e') goto yy955;
+ }
+ }
+yy953:
+#line 449 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+#line 6099 "strict_cpp_re.inc"
+yy954:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '?') goto yy958;
+ goto yy949;
+yy955:
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy955;
+ }
+ if (yych <= '?') {
+ if (yych <= '.') {
+ if (yych == '+') goto yy951;
+ if (yych <= ',') goto yy953;
+ goto yy951;
+ } else {
+ if (yych <= '/') goto yy953;
+ if (yych <= '9') goto yy951;
+ if (yych <= '>') goto yy953;
+ goto yy954;
+ }
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '@') goto yy953;
+ if (yych <= 'Z') goto yy951;
+ if (yych <= '[') goto yy953;
+ } else {
+ if (yych <= '_') {
+ if (yych <= '^') goto yy953;
+ goto yy951;
+ } else {
+ if (yych <= '`') goto yy953;
+ if (yych <= 'z') goto yy951;
+ goto yy953;
+ }
+ }
+ }
+yy957:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == 'U') goto yy959;
+ if (yych == 'u') goto yy960;
+ goto yy949;
+yy958:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '/') goto yy957;
+ goto yy949;
+yy959:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy961;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy961;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy961;
+ goto yy949;
+ }
+yy960:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy962;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy962;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy962;
+ goto yy949;
+ }
+yy961:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy963;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy963;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy963;
+ goto yy949;
+ }
+yy962:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy964;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy964;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy964;
+ goto yy949;
+ }
+yy963:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy965;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy965;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy965;
+ goto yy949;
+ }
+yy964:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy966;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy966;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy966;
+ goto yy949;
+ }
+yy965:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy960;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy960;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy960;
+ goto yy949;
+ }
+yy966:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy949;
+ if (yych <= '9') goto yy951;
+ goto yy949;
+ } else {
+ if (yych <= 'F') goto yy951;
+ if (yych <= '`') goto yy949;
+ if (yych <= 'f') goto yy951;
+ goto yy949;
+ }
+}
+#line 450 "strict_cpp.re"
+
+ }
+ else {
+
+#line 6271 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 160, 160, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy970;
+ } else {
+ if (yych <= '0') goto yy971;
+ if (yych <= '9') goto yy973;
+ }
+yy969:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy972;
+ } else {
+ goto yy977;
+ }
+yy970:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy969;
+ if (yych <= '9') goto yy975;
+ goto yy969;
+yy971:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'X') goto yy983;
+ if (yych == 'x') goto yy983;
+ goto yy979;
+yy972:
+#line 457 "strict_cpp.re"
+ { goto integer_suffix; }
+#line 6338 "strict_cpp_re.inc"
+yy973:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy973;
+ }
+ if (yych <= 'D') {
+ if (yych != '.') goto yy972;
+ } else {
+ if (yych <= 'E') goto yy982;
+ if (yych == 'e') goto yy982;
+ goto yy972;
+ }
+yy975:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= 'K') {
+ if (yych <= 'D') {
+ if (yych <= '/') goto yy977;
+ if (yych <= '9') goto yy975;
+ } else {
+ if (yych <= 'E') goto yy982;
+ if (yych <= 'F') goto yy984;
+ }
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'L') goto yy985;
+ if (yych >= 'e') goto yy982;
+ } else {
+ if (yych <= 'f') goto yy984;
+ if (yych == 'l') goto yy985;
+ }
+ }
+yy977:
+#line 455 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_FLOATLIT); }
+#line 6379 "strict_cpp_re.inc"
+yy978:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+yy979:
+ if (yybm[0+yych] & 64) {
+ goto yy978;
+ }
+ if (yych <= '9') {
+ if (yych == '.') goto yy975;
+ if (yych <= '/') goto yy972;
+ } else {
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy972;
+ goto yy982;
+ } else {
+ if (yych == 'e') goto yy982;
+ goto yy972;
+ }
+ }
+yy980:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych == '.') goto yy975;
+ if (yych <= '/') goto yy969;
+ goto yy980;
+ } else {
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy969;
+ } else {
+ if (yych != 'e') goto yy969;
+ }
+ }
+yy982:
+ yych = *++YYCURSOR;
+ if (yych <= ',') {
+ if (yych == '+') goto yy986;
+ goto yy969;
+ } else {
+ if (yych <= '-') goto yy986;
+ if (yych <= '/') goto yy969;
+ if (yych <= '9') goto yy987;
+ goto yy969;
+ }
+yy983:
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy989;
+ }
+ goto yy969;
+yy984:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy991;
+ if (yych == 'l') goto yy991;
+ goto yy977;
+yy985:
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy991;
+ if (yych == 'f') goto yy991;
+ goto yy977;
+yy986:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy969;
+ if (yych >= ':') goto yy969;
+yy987:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= 'K') {
+ if (yych <= '9') {
+ if (yych <= '/') goto yy977;
+ goto yy987;
+ } else {
+ if (yych == 'F') goto yy984;
+ goto yy977;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'L') goto yy985;
+ if (yych <= 'e') goto yy977;
+ goto yy984;
+ } else {
+ if (yych == 'l') goto yy985;
+ goto yy977;
+ }
+ }
+yy989:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy989;
+ }
+ goto yy972;
+yy991:
+ ++YYCURSOR;
+ goto yy977;
+}
+#line 458 "strict_cpp.re"
+
+ }
+}
+
+/* this subscanner is called, whenever an Integer was recognized */
+integer_suffix:
+{
+ if (s->enable_ms_extensions) {
+
+#line 6491 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *(YYMARKER = YYCURSOR);
+ if (yych <= 'h') {
+ if (yych <= 'L') {
+ if (yych >= 'L') goto yy995;
+ } else {
+ if (yych == 'U') goto yy996;
+ }
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'i') goto yy997;
+ if (yych >= 'l') goto yy995;
+ } else {
+ if (yych == 'u') goto yy996;
+ }
+ }
+yy994:
+#line 471 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6513 "strict_cpp_re.inc"
+yy995:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'L') goto yy999;
+ if (yych <= 'T') goto yy994;
+ goto yy1001;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy994;
+ goto yy999;
+ } else {
+ if (yych == 'u') goto yy1001;
+ goto yy994;
+ }
+ }
+yy996:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1002;
+ if (yych == 'l') goto yy1002;
+ goto yy994;
+yy997:
+ yych = *++YYCURSOR;
+ if (yych == '6') goto yy1003;
+yy998:
+ YYCURSOR = YYMARKER;
+ goto yy994;
+yy999:
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy1004;
+ if (yych == 'u') goto yy1004;
+yy1000:
+#line 468 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6547 "strict_cpp_re.inc"
+yy1001:
+ ++YYCURSOR;
+ goto yy994;
+yy1002:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1004;
+ if (yych == 'l') goto yy1004;
+ goto yy994;
+yy1003:
+ yych = *++YYCURSOR;
+ if (yych != '4') goto yy998;
+yy1004:
+ ++YYCURSOR;
+ goto yy1000;
+}
+#line 472 "strict_cpp.re"
+
+ }
+ else {
+
+#line 6568 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'L') goto yy1008;
+ if (yych >= 'U') goto yy1009;
+ } else {
+ if (yych <= 'l') {
+ if (yych >= 'l') goto yy1008;
+ } else {
+ if (yych == 'u') goto yy1009;
+ }
+ }
+yy1007:
+#line 480 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6586 "strict_cpp_re.inc"
+yy1008:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'L') goto yy1010;
+ if (yych <= 'T') goto yy1007;
+ goto yy1012;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy1007;
+ goto yy1010;
+ } else {
+ if (yych == 'u') goto yy1012;
+ goto yy1007;
+ }
+ }
+yy1009:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1013;
+ if (yych == 'l') goto yy1013;
+ goto yy1007;
+yy1010:
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy1014;
+ if (yych == 'u') goto yy1014;
+yy1011:
+#line 477 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6614 "strict_cpp_re.inc"
+yy1012:
+ ++YYCURSOR;
+ goto yy1007;
+yy1013:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1014;
+ if (yych != 'l') goto yy1007;
+yy1014:
+ ++YYCURSOR;
+ goto yy1011;
+}
+#line 481 "strict_cpp.re"
+
+ }
+}
+
+/* this subscanner is invoked for C++0x extended character literals */
+extcharlit:
+{
+
+#line 6635 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1017;
+ if (yych <= '\t') goto yy1018;
+ goto yy1020;
+ } else {
+ if (yych <= '\f') goto yy1018;
+ if (yych <= '\r') goto yy1020;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '\'') goto yy1020;
+ goto yy1018;
+ } else {
+ if (yych <= '?') goto yy1021;
+ if (yych == '\\') goto yy1022;
+ goto yy1018;
+ }
+ }
+yy1017:
+ YYCURSOR = YYMARKER;
+ goto yy1019;
+yy1018:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1023;
+yy1019:
+#line 493 "strict_cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 6702 "strict_cpp_re.inc"
+yy1020:
+ ++YYCURSOR;
+ goto yy1019;
+yy1021:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '\'') goto yy1023;
+ if (yych == '?') goto yy1025;
+ goto yy1019;
+yy1022:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1026;
+ goto yy1019;
+ } else {
+ if (yych <= '\'') goto yy1026;
+ if (yych <= '/') goto yy1019;
+ goto yy1027;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1028;
+ goto yy1019;
+ } else {
+ if (yych <= 'U') goto yy1029;
+ if (yych == '\\') goto yy1026;
+ goto yy1019;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1026;
+ if (yych <= 'e') goto yy1019;
+ goto yy1026;
+ } else {
+ if (yych == 'n') goto yy1026;
+ if (yych <= 'q') goto yy1019;
+ goto yy1026;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1019;
+ if (yych <= 't') goto yy1026;
+ goto yy1030;
+ } else {
+ if (yych <= 'v') goto yy1026;
+ if (yych == 'x') goto yy1031;
+ goto yy1019;
+ }
+ }
+ }
+yy1023:
+ ++YYCURSOR;
+#line 490 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 6760 "strict_cpp_re.inc"
+yy1025:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1032;
+ goto yy1017;
+yy1026:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1023;
+ goto yy1017;
+yy1027:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1023;
+ if (yych <= '/') goto yy1017;
+ if (yych <= '7') goto yy1033;
+ goto yy1017;
+yy1028:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1023;
+ if (yych == '?') goto yy1034;
+ goto yy1017;
+yy1029:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1035;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1035;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1035;
+ goto yy1017;
+ }
+yy1030:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1036;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1036;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1036;
+ goto yy1017;
+ }
+yy1031:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1017;
+ goto yy1038;
+yy1032:
+ yych = *++YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1026;
+ goto yy1017;
+ } else {
+ if (yych <= '\'') goto yy1026;
+ if (yych <= '/') goto yy1017;
+ goto yy1027;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1028;
+ goto yy1017;
+ } else {
+ if (yych <= 'U') goto yy1029;
+ if (yych == '\\') goto yy1026;
+ goto yy1017;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1026;
+ if (yych <= 'e') goto yy1017;
+ goto yy1026;
+ } else {
+ if (yych == 'n') goto yy1026;
+ if (yych <= 'q') goto yy1017;
+ goto yy1026;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1017;
+ if (yych <= 't') goto yy1026;
+ goto yy1030;
+ } else {
+ if (yych <= 'v') goto yy1026;
+ if (yych == 'x') goto yy1031;
+ goto yy1017;
+ }
+ }
+ }
+yy1033:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1023;
+ if (yych <= '/') goto yy1017;
+ if (yych <= '7') goto yy1026;
+ goto yy1017;
+yy1034:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1026;
+ goto yy1017;
+yy1035:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1039;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1039;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1039;
+ goto yy1017;
+ }
+yy1036:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1040;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1040;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1040;
+ goto yy1017;
+ }
+yy1037:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy1038:
+ if (yybm[0+yych] & 128) {
+ goto yy1037;
+ }
+ if (yych == '\'') goto yy1023;
+ goto yy1017;
+yy1039:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1041;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1041;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1041;
+ goto yy1017;
+ }
+yy1040:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1042;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1042;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1042;
+ goto yy1017;
+ }
+yy1041:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1030;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1030;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1030;
+ goto yy1017;
+ }
+yy1042:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1017;
+ if (yych <= '9') goto yy1026;
+ goto yy1017;
+ } else {
+ if (yych <= 'F') goto yy1026;
+ if (yych <= '`') goto yy1017;
+ if (yych <= 'f') goto yy1026;
+ goto yy1017;
+ }
+}
+#line 494 "strict_cpp.re"
+
+}
+
+/* this subscanner is invoked for C++0x extended character string literals */
+extstringlit:
+{
+
+#line 6954 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 0, 32, 32, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 32, 0, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 64,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 128, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1045;
+ if (yych <= '\t') goto yy1046;
+ goto yy1048;
+ } else {
+ if (yych <= '\f') goto yy1046;
+ if (yych <= '\r') goto yy1048;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '"') goto yy1049;
+ goto yy1046;
+ } else {
+ if (yych <= '?') goto yy1051;
+ if (yych == '\\') goto yy1052;
+ goto yy1046;
+ }
+ }
+yy1045:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy1047;
+ } else {
+ goto yy1050;
+ }
+yy1046:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1054;
+ } else {
+ if (yych <= '\f') goto yy1054;
+ if (yych >= ' ') goto yy1054;
+ }
+yy1047:
+#line 505 "strict_cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7032 "strict_cpp_re.inc"
+yy1048:
+ ++YYCURSOR;
+ goto yy1047;
+yy1049:
+ ++YYCURSOR;
+yy1050:
+#line 502 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 7041 "strict_cpp_re.inc"
+yy1051:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy1057;
+ }
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1054;
+ goto yy1047;
+ } else {
+ if (yych <= '\f') goto yy1054;
+ if (yych <= 0x1F) goto yy1047;
+ goto yy1054;
+ }
+yy1052:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych != '"') goto yy1047;
+ } else {
+ if (yych <= '\'') goto yy1053;
+ if (yych <= '/') goto yy1047;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych != '?') goto yy1047;
+ } else {
+ if (yych <= 'U') goto yy1059;
+ if (yych != '\\') goto yy1047;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1053;
+ if (yych <= 'e') goto yy1047;
+ } else {
+ if (yych == 'n') goto yy1053;
+ if (yych <= 'q') goto yy1047;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1047;
+ if (yych >= 'u') goto yy1060;
+ } else {
+ if (yych <= 'v') goto yy1053;
+ if (yych == 'x') goto yy1061;
+ goto yy1047;
+ }
+ }
+ }
+yy1053:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy1054:
+ if (yybm[0+yych] & 32) {
+ goto yy1053;
+ }
+ if (yych <= 0x1F) goto yy1045;
+ if (yych <= '"') goto yy1049;
+ if (yych >= '@') goto yy1056;
+yy1055:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1053;
+ }
+ if (yych <= 0x1F) goto yy1045;
+ if (yych <= '"') goto yy1049;
+ if (yych <= '?') goto yy1057;
+yy1056:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1053;
+ goto yy1045;
+ } else {
+ if (yych <= '\'') goto yy1053;
+ if (yych <= '/') goto yy1045;
+ goto yy1053;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1053;
+ goto yy1045;
+ } else {
+ if (yych <= 'U') goto yy1059;
+ if (yych == '\\') goto yy1053;
+ goto yy1045;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1053;
+ if (yych <= 'e') goto yy1045;
+ goto yy1053;
+ } else {
+ if (yych == 'n') goto yy1053;
+ if (yych <= 'q') goto yy1045;
+ goto yy1053;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1045;
+ if (yych <= 't') goto yy1053;
+ goto yy1060;
+ } else {
+ if (yych <= 'v') goto yy1053;
+ if (yych == 'x') goto yy1061;
+ goto yy1045;
+ }
+ }
+ }
+yy1057:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy1057;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1053;
+ goto yy1045;
+ } else {
+ if (yych <= '\f') goto yy1053;
+ if (yych <= 0x1F) goto yy1045;
+ goto yy1053;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy1049;
+ if (yych <= '.') goto yy1053;
+ goto yy1062;
+ } else {
+ if (yych == '\\') goto yy1056;
+ goto yy1053;
+ }
+ }
+yy1059:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1064;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1064;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1064;
+ goto yy1045;
+ }
+yy1060:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1065;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1065;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1065;
+ goto yy1045;
+ }
+yy1061:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1053;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1053;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1053;
+ goto yy1045;
+ }
+yy1062:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1053;
+ }
+ if (yych <= 0x1F) goto yy1045;
+ if (yych <= '"') goto yy1066;
+ if (yych <= '?') goto yy1055;
+ goto yy1062;
+yy1064:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1067;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1067;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1067;
+ goto yy1045;
+ }
+yy1065:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1068;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1068;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1068;
+ goto yy1045;
+ }
+yy1066:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1053;
+ }
+ if (yych <= 0x1F) goto yy1050;
+ if (yych <= '"') goto yy1049;
+ if (yych <= '?') goto yy1055;
+ goto yy1056;
+yy1067:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1069;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1069;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1069;
+ goto yy1045;
+ }
+yy1068:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1061;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1061;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1061;
+ goto yy1045;
+ }
+yy1069:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1045;
+ if (yych <= '9') goto yy1060;
+ goto yy1045;
+ } else {
+ if (yych <= 'F') goto yy1060;
+ if (yych <= '`') goto yy1045;
+ if (yych <= 'f') goto yy1060;
+ goto yy1045;
+ }
+}
+#line 506 "strict_cpp.re"
+
+}
+
+extrawstringlit:
+{
+ // we have consumed the double quote but not the lparen
+ // at this point we may see a delimiter
+
+
+#line 7335 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '(') {
+ if (yych <= 0x1F) goto yy1072;
+ if (yych <= '\'') goto yy1074;
+ goto yy1076;
+ } else {
+ if (yych <= ')') goto yy1072;
+ if (yych != '\\') goto yy1074;
+ }
+yy1072:
+ ++YYCURSOR;
+#line 515 "strict_cpp.re"
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string delimiter ('%c')", yych);
+ }
+#line 7355 "strict_cpp_re.inc"
+yy1074:
+ ++YYCURSOR;
+#line 522 "strict_cpp.re"
+ {
+ rawstringdelim += yych;
+ if (rawstringdelim.size() > 16)
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Raw string delimiter of excessive length (\"%s\") in input stream",
+ rawstringdelim.c_str());
+ }
+ goto extrawstringlit;
+ }
+#line 7369 "strict_cpp_re.inc"
+yy1076:
+ ++YYCURSOR;
+#line 534 "strict_cpp.re"
+ {
+ rawstringdelim = ")" + rawstringdelim;
+ goto extrawstringbody;
+ }
+#line 7377 "strict_cpp_re.inc"
+}
+#line 539 "strict_cpp.re"
+
+}
+
+extrawstringbody:
+{
+
+#line 7386 "strict_cpp_re.inc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1080;
+ if (yych <= '\t') goto yy1082;
+ goto yy1084;
+ } else {
+ if (yych <= '\f') goto yy1082;
+ if (yych <= '\r') goto yy1086;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '"') goto yy1087;
+ goto yy1082;
+ } else {
+ if (yych <= '?') goto yy1089;
+ if (yych == '\\') goto yy1090;
+ goto yy1082;
+ }
+ }
+yy1080:
+ ++YYCURSOR;
+#line 546 "strict_cpp.re"
+ {
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "Invalid character in raw string body ('%c')", yych);
+ }
+#line 7451 "strict_cpp_re.inc"
+yy1082:
+ ++YYCURSOR;
+yy1083:
+#line 559 "strict_cpp.re"
+ {
+ goto extrawstringbody;
+ }
+#line 7459 "strict_cpp_re.inc"
+yy1084:
+ ++YYCURSOR;
+yy1085:
+#line 552 "strict_cpp.re"
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringbody;
+ }
+#line 7469 "strict_cpp_re.inc"
+yy1086:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy1084;
+ goto yy1085;
+yy1087:
+ ++YYCURSOR;
+#line 564 "strict_cpp.re"
+ {
+ // check to see if we have completed a delimiter
+ if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1),
+ (char *)(YYCURSOR - 1)) == rawstringdelim)
+ {
+ BOOST_WAVE_RET(T_RAWSTRINGLIT);
+ } else {
+ goto extrawstringbody;
+ }
+ }
+#line 7487 "strict_cpp_re.inc"
+yy1089:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1091;
+ goto yy1083;
+yy1090:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1082;
+ goto yy1083;
+ } else {
+ if (yych <= '\'') goto yy1082;
+ if (yych <= '/') goto yy1083;
+ goto yy1093;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1094;
+ goto yy1083;
+ } else {
+ if (yych <= 'U') goto yy1095;
+ if (yych == '\\') goto yy1082;
+ goto yy1083;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1082;
+ if (yych <= 'e') goto yy1083;
+ goto yy1082;
+ } else {
+ if (yych == 'n') goto yy1082;
+ if (yych <= 'q') goto yy1083;
+ goto yy1082;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1083;
+ if (yych <= 't') goto yy1082;
+ goto yy1096;
+ } else {
+ if (yych <= 'v') goto yy1082;
+ if (yych == 'x') goto yy1097;
+ goto yy1083;
+ }
+ }
+ }
+yy1091:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1098;
+yy1092:
+ YYCURSOR = YYMARKER;
+ goto yy1083;
+yy1093:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy1083;
+ if (yych <= '7') goto yy1099;
+ goto yy1083;
+yy1094:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1100;
+ goto yy1083;
+yy1095:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1101;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1101;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1101;
+ goto yy1092;
+ }
+yy1096:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1102;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1102;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1102;
+ goto yy1092;
+ }
+yy1097:
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1103;
+ }
+ goto yy1092;
+yy1098:
+ yych = *++YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1082;
+ goto yy1092;
+ } else {
+ if (yych <= '\'') goto yy1082;
+ if (yych <= '/') goto yy1092;
+ goto yy1093;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1094;
+ goto yy1092;
+ } else {
+ if (yych <= 'U') goto yy1095;
+ if (yych == '\\') goto yy1082;
+ goto yy1092;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1082;
+ if (yych <= 'e') goto yy1092;
+ goto yy1082;
+ } else {
+ if (yych == 'n') goto yy1082;
+ if (yych <= 'q') goto yy1092;
+ goto yy1082;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1092;
+ if (yych <= 't') goto yy1082;
+ goto yy1096;
+ } else {
+ if (yych <= 'v') goto yy1082;
+ if (yych == 'x') goto yy1097;
+ goto yy1092;
+ }
+ }
+ }
+yy1099:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy1083;
+ if (yych <= '7') goto yy1082;
+ goto yy1083;
+yy1100:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1082;
+ goto yy1092;
+yy1101:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1105;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1105;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1105;
+ goto yy1092;
+ }
+yy1102:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1106;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1106;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1106;
+ goto yy1092;
+ }
+yy1103:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1103;
+ }
+ goto yy1083;
+yy1105:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1107;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1107;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1107;
+ goto yy1092;
+ }
+yy1106:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1108;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1108;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1108;
+ goto yy1092;
+ }
+yy1107:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1096;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1096;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1096;
+ goto yy1092;
+ }
+yy1108:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1092;
+ if (yych <= '9') goto yy1082;
+ goto yy1092;
+ } else {
+ if (yych <= 'F') goto yy1082;
+ if (yych <= '`') goto yy1092;
+ if (yych <= 'f') goto yy1082;
+ goto yy1092;
+ }
+}
+#line 574 "strict_cpp.re"
+
+}
diff --git a/boost/wave/util/cpp_iterator.hpp b/boost/wave/util/cpp_iterator.hpp
index a162bc9065..d219bd6307 100644
--- a/boost/wave/util/cpp_iterator.hpp
+++ b/boost/wave/util/cpp_iterator.hpp
@@ -23,6 +23,7 @@
#include <boost/shared_ptr.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
+#include <boost/lexical_cast.hpp>
#include <boost/spirit/include/classic_multi_pass.hpp>
#include <boost/spirit/include/classic_parse_tree_utils.hpp>
@@ -795,7 +796,7 @@ typename ContextT::position_type pos = act_token.get_position();
if (!ctx.get_hooks().emit_line_directive(ctx, pending, act_token))
{
- unsigned int column = 6;
+ unsigned int column = 6;
// the hook did not generate anything, emit default #line
pos.set_column(1);
@@ -804,22 +805,20 @@ typename ContextT::position_type pos = act_token.get_position();
pos.set_column(column); // account for '#line'
pending.push_back(result_type(T_SPACE, " ", pos));
- // 21 is the max required size for a 64 bit integer represented as a
- // string
- char buffer[22];
+ // 21 is the max required size for a 64 bit integer represented as a
+ // string
- using namespace std; // for some systems sprintf is in namespace std
- sprintf (buffer, "%zd", pos.get_line());
+ std::string buffer = lexical_cast<std::string>(pos.get_line());
pos.set_column(++column); // account for ' '
- pending.push_back(result_type(T_INTLIT, buffer, pos));
- pos.set_column(column += (unsigned int)strlen(buffer)); // account for <number>
+ pending.push_back(result_type(T_INTLIT, buffer.c_str(), pos));
+ pos.set_column(column += buffer.size()); // account for <number>
pending.push_back(result_type(T_SPACE, " ", pos));
pos.set_column(++column); // account for ' '
- std::string file("\"");
- boost::filesystem::path filename(
- wave::util::create_path(act_pos.get_file().c_str()));
+ std::string file("\"");
+ boost::filesystem::path filename(
+ wave::util::create_path(act_pos.get_file().c_str()));
using wave::util::impl::escape_lit;
file += escape_lit(wave::util::native_file_string(filename)) + "\"";
diff --git a/boost/wave/util/cpp_macromap.hpp b/boost/wave/util/cpp_macromap.hpp
index 1080629aaf..9f2f7a269b 100644
--- a/boost/wave/util/cpp_macromap.hpp
+++ b/boost/wave/util/cpp_macromap.hpp
@@ -32,6 +32,7 @@
#endif
#include <boost/filesystem/path.hpp>
+#include <boost/lexical_cast.hpp>
#include <boost/wave/util/time_conversion_helper.hpp>
#include <boost/wave/util/unput_queue_iterator.hpp>
@@ -1411,11 +1412,9 @@ string_type const &value = curr_token.get_value();
if (value == "__LINE__") {
// expand the __LINE__ macro
- char buffer[22]; // 21 bytes holds all NUL-terminated unsigned 64-bit numbers
+ std::string buffer = lexical_cast<std::string>(main_pos.get_line());
- using namespace std; // for some systems sprintf is in namespace std
- sprintf(buffer, "%zd", main_pos.get_line());
- expanded.push_back(token_type(T_INTLIT, buffer, curr_token.get_position()));
+ expanded.push_back(token_type(T_INTLIT, buffer.c_str(), curr_token.get_position()));
return true;
}
else if (value == "__FILE__") {
diff --git a/boost/wave/util/filesystem_compatibility.hpp b/boost/wave/util/filesystem_compatibility.hpp
index 157c6418c0..f8ba54057e 100644
--- a/boost/wave/util/filesystem_compatibility.hpp
+++ b/boost/wave/util/filesystem_compatibility.hpp
@@ -59,7 +59,7 @@ namespace boost { namespace wave { namespace util
inline boost::filesystem::path normalize(boost::filesystem::path& p)
{
- return p.normalize();
+ return p.normalize().make_preferred();
}
inline std::string native_file_string(boost::filesystem::path const& p)