diff options
Diffstat (limited to 'boost/wave/cpplexer/re2clex')
-rw-r--r-- | boost/wave/cpplexer/re2clex/aq.hpp | 4 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/cpp.re | 576 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/cpp_re.hpp | 352 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/cpp_re.inc | 7749 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp | 16 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/scanner.hpp | 30 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/strict_cpp.re | 575 | ||||
-rw-r--r-- | boost/wave/cpplexer/re2clex/strict_cpp_re.inc | 7718 |
8 files changed, 16999 insertions, 21 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" + +} |