Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67117 - in trunk: . boost/wave boost/wave/cpplexer/re2clex boost/wave/util libs/wave libs/wave/samples/cpp_tokens libs/wave/samples/cpp_tokens/slex libs/wave/src libs/wave/src/cpplexer/re2clex libs/wave/test/testwave libs/wave/test/testwave/testfiles tools/wave
From: hartmut.kaiser_at_[hidden]
Date: 2010-12-08 20:44:55


Author: hkaiser
Date: 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
New Revision: 67117
URL: http://svn.boost.org/trac/boost/changeset/67117

Log:
Wave: more work on C++0x support, fixed a macro expansion problem
Added:
   trunk/libs/wave/test/testwave/testfiles/t_7_001.cpp (contents, props changed)
Properties modified:
   trunk/ (props changed)
Text files modified:
   trunk/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp | 3
   trunk/boost/wave/token_ids.hpp | 1
   trunk/boost/wave/util/cpp_iterator.hpp | 51
   trunk/boost/wave/util/cpp_macromap.hpp | 83
   trunk/boost/wave/util/cpp_macromap_utils.hpp | 36
   trunk/boost/wave/whitespace_handling.hpp | 22
   trunk/libs/wave/ChangeLog | 5
   trunk/libs/wave/samples/cpp_tokens/cpp_tokens.cpp | 2
   trunk/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp | 41
   trunk/libs/wave/src/cpplexer/re2clex/cpp.re | 103
   trunk/libs/wave/src/cpplexer/re2clex/cpp_re.inc | 8969 +++++++++++++++++++++++----------------
   trunk/libs/wave/src/cpplexer/re2clex/strict_cpp.re | 99
   trunk/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc | 8989 +++++++++++++++++++++++----------------
   trunk/libs/wave/src/token_ids.cpp | 2
   trunk/libs/wave/test/testwave/testfiles/test.cfg | 5
   trunk/libs/wave/test/testwave/testwave_app.cpp | 25
   trunk/tools/wave/cpp.cpp | 12
   17 files changed, 11123 insertions(+), 7325 deletions(-)

Modified: trunk/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
==============================================================================
--- trunk/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp (original)
+++ trunk/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -192,6 +192,7 @@
 
     case T_STRINGLIT:
     case T_CHARLIT:
+ case T_RAWSTRINGLIT:
     // test literal characters for validity (throws if invalid chars found)
         value = string_type((char const *)scanner.tok,
             scanner.cur-scanner.tok);
@@ -218,7 +219,7 @@
       }
 #endif
 
- case T_LONGINTLIT: // supported in C99 and long_long mode
+ case T_LONGINTLIT: // supported in C++0x, C99 and long_long mode
         value = string_type((char const *)scanner.tok,
             scanner.cur-scanner.tok);
         if (!boost::wave::need_long_long(language)) {

Modified: trunk/boost/wave/token_ids.hpp
==============================================================================
--- trunk/boost/wave/token_ids.hpp (original)
+++ trunk/boost/wave/token_ids.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -298,6 +298,7 @@
     T_NULLPTR = TOKEN_FROM_ID(429, KeywordTokenType),
     T_STATICASSERT = TOKEN_FROM_ID(430, KeywordTokenType),
     T_THREADLOCAL = TOKEN_FROM_ID(431, KeywordTokenType),
+ T_RAWSTRINGLIT = TOKEN_FROM_ID(432, StringLiteralTokenType),
 
     T_LAST_TOKEN_ID,
     T_LAST_TOKEN = ID_FROM_TOKEN(T_LAST_TOKEN_ID & ~PPTokenFlag),

Modified: trunk/boost/wave/util/cpp_iterator.hpp
==============================================================================
--- trunk/boost/wave/util/cpp_iterator.hpp (original)
+++ trunk/boost/wave/util/cpp_iterator.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -550,6 +550,13 @@
         ++iter_ctx->emitted_lines;
         break;
 
+#if BOOST_WAVE_SUPPORT_CPP0X != 0
+ case T_RAWSTRINGLIT:
+ iter_ctx->emitted_lines +=
+ context_policies::util::rawstring_count_newlines(act_token);
+ break;
+#endif
+
     case T_CCOMMENT: // will come here only if whitespace is preserved
         iter_ctx->emitted_lines +=
             context_policies::util::ccomment_count_newlines(act_token);
@@ -576,7 +583,7 @@
             pending_queue.pop_front();
         }
         break;
-
+
     case T_EOF:
         seen_newline = true;
         break;
@@ -663,7 +670,7 @@
                 if (!ctx.get_if_block_status()) {
                 // skip this token because of the disabled #if block
                     whitespace.shift_tokens(id); // whitespace controller
- util::call_skipped_token_hook(ctx, act_token);
+ util::impl::call_skipped_token_hook(ctx, act_token);
                     continue;
                 }
                 return act_token;
@@ -695,7 +702,7 @@
                 }
 
             // next token
- util::call_skipped_token_hook(ctx, act_token);
+ util::impl::call_skipped_token_hook(ctx, act_token);
                 ++iter_ctx->first;
             }
 
@@ -875,17 +882,17 @@
         return false;
     }
 
- // call 'skipped_token' preprocessing hook
- template <typename ContextT>
- void call_skipped_token_hook(ContextT& ctx,
- typename ContextT::token_type const& skipped)
- {
-#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
- ctx.get_hooks().skipped_token(skipped);
-#else
- ctx.get_hooks().skipped_token(ctx.derived(), skipped);
-#endif
- }
+// // call 'skipped_token' preprocessing hook
+// template <typename ContextT>
+// void call_skipped_token_hook(ContextT& ctx,
+// typename ContextT::token_type const& skipped)
+// {
+// #if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
+// ctx.get_hooks().skipped_token(skipped);
+// #else
+// ctx.get_hooks().skipped_token(ctx.derived(), skipped);
+// #endif
+// }
 
     template <typename ContextT, typename IteratorT>
     bool next_token_is_pp_directive(ContextT &ctx, IteratorT &it, IteratorT const &end)
@@ -906,7 +913,7 @@
             }
 
             // this token gets skipped
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
         }
         BOOST_ASSERT(it == end || id != T_UNKNOWN);
         return it != end && IS_CATEGORY(id, PPTokenType);
@@ -921,7 +928,7 @@
 
         // this token gets skipped
         if (call_hook)
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
 
         for (++it; it != end; ++it) {
         token_id id = token_id(*it);
@@ -930,7 +937,7 @@
                 context_policies::util::ccomment_has_newline(*it))
             {
                 if (call_hook)
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
                 ++it; // skip eol/C/C++ comment
                 return true; // no more significant tokens on this line
             }
@@ -940,7 +947,7 @@
 
             // this token gets skipped
             if (call_hook)
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
         }
         return false;
     }
@@ -959,13 +966,13 @@
                 context_policies::util::ccomment_has_newline(*it))
             {
                 // always call hook for eol
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
                 ++it; // skip eol/C/C++ comment
                 return true; // found eol
             }
 
             if (call_hook)
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
         }
         return false;
     }
@@ -979,7 +986,7 @@
         while (IS_CATEGORY(*it, WhiteSpaceTokenType)) {
             typename ContainerT::iterator save = it++;
             if (call_hook)
- util::call_skipped_token_hook(ctx, *save);
+ util::impl::call_skipped_token_hook(ctx, *save);
             c.erase(save);
         }
     }
@@ -1135,7 +1142,7 @@
             }
         }
         else {
- util::call_skipped_token_hook(ctx, *it);
+ util::impl::call_skipped_token_hook(ctx, *it);
             ++it;
         }
     }

Modified: trunk/boost/wave/util/cpp_macromap.hpp
==============================================================================
--- trunk/boost/wave/util/cpp_macromap.hpp (original)
+++ trunk/boost/wave/util/cpp_macromap.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -574,7 +574,7 @@
 // return the next one from there
     if (!pending.empty()) {
     on_exit::pop_front<definition_container_type> pop_front_token(pending);
-
+
         return act_token = pending.front();
     }
 
@@ -582,20 +582,20 @@
 // T_IDENTIFIER token, try to replace this as a macro etc.
     using namespace boost::wave;
     typedef unput_queue_iterator<IteratorT, token_type, ContainerT> iterator_type;
-
+
     if (first != last) {
     token_id id = token_id(*first);
 
     // ignore placeholder tokens
         if (T_PLACEHOLDER == id) {
         token_type placeholder = *first;
-
+
             ++first;
             if (first == last)
                 return act_token = placeholder;
             id = token_id(*first);
         }
-
+
         if (T_IDENTIFIER == id || IS_CATEGORY(id, KeywordTokenType) ||
             IS_EXTCATEGORY(id, OperatorTokenType|AltExtTokenType) ||
             IS_CATEGORY(id, BoolLiteralTokenType))
@@ -610,7 +610,7 @@
             {
             // in C99 mode only: resolve the operator _Pragma
             token_type curr_token = *first;
-
+
                 if (!resolve_operator_pragma(first, last, pending, seen_newline) ||
                     pending.size() > 0)
                 {
@@ -620,7 +620,7 @@
 
                     return act_token = pending.front();
                 }
-
+
             // the operator _Pragma() was eaten completely, continue
                 return act_token = token_type(T_PLACEHOLDER, "_",
                     curr_token.get_position());
@@ -628,7 +628,7 @@
 
         token_type name_token (*first);
         typename defined_macros_type::iterator it;
-
+
             if (is_defined(name_token.get_value(), it)) {
             // the current token contains an identifier, which is currently
             // defined as a macro
@@ -640,12 +640,12 @@
                     if (first != last) {
                     // splice the last token back into the input queue
                     typename ContainerT::reverse_iterator rit = pending.rbegin();
-
+
                         first.get_unput_queue().splice(
                             first.get_unput_queue().begin(), pending,
                             (++rit).base(), pending.end());
                     }
-
+
                 // fall through ...
                 }
                 else if (!pending.empty()) {
@@ -719,7 +719,7 @@
     using namespace boost::wave;
 
     arguments.push_back(ContainerT());
-
+
 // collect the actual arguments
 typename std::vector<ContainerT>::size_type count_arguments = 0;
 int nested_parenthesis_level = 1;
@@ -740,14 +740,14 @@
                 main_pos);
             return 0;
         }
-
+
         switch (static_cast<unsigned int>(id)) {
         case T_LEFTPAREN:
             ++nested_parenthesis_level;
             argument->push_back(*next);
             was_whitespace = false;
             break;
-
+
         case T_RIGHTPAREN:
             {
                 if (--nested_parenthesis_level >= 1)
@@ -779,7 +779,7 @@
                 was_whitespace = false;
             }
             break;
-
+
         case T_COMMA:
             if (1 == nested_parenthesis_level) {
             // next parameter
@@ -822,7 +822,7 @@
 
         case T_PLACEHOLDER:
             break; // ignore placeholder
-
+
         default:
             argument->push_back(*next);
             was_whitespace = false;
@@ -844,7 +844,7 @@
         arguments.clear();
     }
     return count_arguments;
-}
+}
 
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -902,17 +902,17 @@
     // expand the argument only once
         typedef typename std::vector<ContainerT>::value_type::iterator
             argument_iterator_type;
-
+
         argument_iterator_type begin_it = arguments[arg].begin();
         argument_iterator_type end_it = arguments[arg].end();
-
+
         expand_whole_tokensequence(expanded_args[arg], begin_it, end_it,
             expand_operator_defined);
         impl::remove_placeholders(expanded_args[arg]);
         has_expanded_args[arg] = true;
     }
 }
-
+
 ///////////////////////////////////////////////////////////////////////////////
 //
 // expand_replacement_list
@@ -992,7 +992,7 @@
                 position_type const &pos = (*cit).get_position();
 
                     BOOST_ASSERT(boost::wave::need_variadics(ctx.get_language()));
-
+
                 // ensure all variadic arguments to be expanded
                     for (typename vector<ContainerT>::size_type arg = i;
                          arg < expanded_args.size(); ++arg)
@@ -1008,7 +1008,7 @@
                 // ensure argument i to be expanded
                     expand_argument(i, arguments, expanded_args,
                         expand_operator_defined, has_expanded_args);
-
+
                 // replace argument
                 ContainerT const &arg = expanded_args[i];
                 
@@ -1021,7 +1021,7 @@
             {
             // stringize the current argument
                 BOOST_ASSERT(!arguments[i].empty());
-
+
             // safe a copy of the first tokens position (not a reference!)
             position_type pos ((*arguments[i].begin()).get_position());
 
@@ -1075,7 +1075,7 @@
             "stringize ('#')", main_pos);
         return;
     }
-
+
 // handle the cpp.concat operator
     if (seen_concat)
         concat_tokensequence(expanded);
@@ -1103,12 +1103,12 @@
         if (boost::wave::need_variadics(ctx.get_language())) {
         typename ContainerT::iterator end = replacement_list.end();
         typename ContainerT::iterator it = replacement_list.begin();
-
+
             while (it != end) {
                 using namespace boost::wave;
                 if (T_PLACEMARKER == token_id(*it)) {
                 typename ContainerT::iterator placemarker = it;
-
+
                     ++it;
                     replacement_list.erase(placemarker);
                 }
@@ -1124,14 +1124,14 @@
     on_exit::reset<bool> on_exit(macro_def.is_available_for_replacement, false);
     typename ContainerT::iterator begin_it = replacement_list.begin();
     typename ContainerT::iterator end_it = replacement_list.end();
-
+
         expand_whole_tokensequence(expanded, begin_it, end_it,
             expand_operator_defined);
-
+
     // trim replacement list, leave placeholder tokens untouched
         impl::trim_replacement_list(expanded);
     }
-
+
     if (expanded.empty()) {
     // the resulting replacement list should contain at least a placeholder
     // token
@@ -1158,9 +1158,9 @@
     defined_macros_type *scope, ContainerT *queue_symbol)
 {
     using namespace boost::wave;
-
+
     if (0 == scope) scope = current_macros;
-
+
     BOOST_ASSERT(T_IDENTIFIER == token_id(curr_token) ||
         IS_CATEGORY(token_id(curr_token), KeywordTokenType) ||
         IS_EXTCATEGORY(token_id(curr_token), OperatorTokenType|AltExtTokenType) ||
@@ -1172,7 +1172,7 @@
     // try to expand a predefined macro (__FILE__, __LINE__ or __INCLUDE_LEVEL__)
         if (expand_predefined_macro(curr_token, expanded))
             return false;
-
+
     // not defined as a macro
         if (0 != queue_symbol) {
             expanded.splice(expanded.end(), *queue_symbol);
@@ -1210,8 +1210,8 @@
 
     if (T_LEFTPAREN == impl::next_token<IteratorT>::peek(first, last)) {
     // called as a function-like macro
- impl::skip_to_token(first, last, T_LEFTPAREN, seen_newline);
-
+ impl::skip_to_token(ctx, first, last, T_LEFTPAREN, seen_newline);
+
 #if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS == 0
         IteratorT seqstart = first;
         IteratorT seqend = first;
@@ -1219,7 +1219,7 @@
 
         if (macro_def.is_functionlike) {
         // defined as a function-like macro
-
+
         // collect the arguments
         std::vector<ContainerT> arguments;
 #if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
@@ -1250,7 +1250,7 @@
                 }
                 return false;
             }
-
+
             if (count_args > macro_def.macroparameters.size() ||
                 arguments.size() > macro_def.macroparameters.size())
             {
@@ -1265,7 +1265,7 @@
                     return false;
                 }
             }
-
+
         // inject tracing support
 #if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
             ctx.get_hooks().expanding_function_like_macro(
@@ -1300,19 +1300,18 @@
             {
                 // do not expand this macro, just copy the whole sequence
                 expanded.push_back(curr_token);
- ++first; // skip macro name
                 return false; // no further preprocessing required
             }
 #endif
 
         bool found = false;
         impl::find_concat_operator concat_tag(found);
-
+
             std::remove_copy_if(macro_def.macrodefinition.begin(),
                 macro_def.macrodefinition.end(),
                 std::inserter(replacement_list, replacement_list.end()),
                 concat_tag);
-
+
         // handle concatenation operators
             if (found && !concat_tokensequence(replacement_list))
                 return false;
@@ -1350,7 +1349,7 @@
 
         bool found = false;
         impl::find_concat_operator concat_tag(found);
-
+
             std::remove_copy_if(macro_def.macrodefinition.begin(),
                 macro_def.macrodefinition.end(),
                 std::inserter(replacement_list, replacement_list.end()),
@@ -1372,10 +1371,10 @@
 #else
     ctx.get_hooks().expanded_macro(ctx.derived(), replacement_list);
 #endif
-
+
     rescan_replacement_list(curr_token, macro_def, replacement_list,
         expanded_list, expand_operator_defined, first, last);
-
+
 #if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
     ctx.get_hooks().rescanned_macro(expanded_list);
 #else
@@ -1503,7 +1502,7 @@
 // isolate the parameter of the operator _Pragma
     token_type pragma_token = *first;
     
- if (!impl::skip_to_token(first, last, T_LEFTPAREN, seen_newline)) {
+ if (!impl::skip_to_token(ctx, first, last, T_LEFTPAREN, seen_newline)) {
     // illformed operator _Pragma
         BOOST_WAVE_THROW_CTX(ctx, preprocess_exception, ill_formed_expression,
             "operator _Pragma()", pragma_token.get_position());

Modified: trunk/boost/wave/util/cpp_macromap_utils.hpp
==============================================================================
--- trunk/boost/wave/util/cpp_macromap_utils.hpp (original)
+++ trunk/boost/wave/util/cpp_macromap_utils.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -427,18 +427,33 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////
+// call 'skipped_token' preprocessing hook
+template <typename ContextT>
+void call_skipped_token_hook(ContextT& ctx,
+ typename ContextT::token_type const& skipped)
+{
+#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
+ ctx.get_hooks().skipped_token(skipped);
+#else
+ ctx.get_hooks().skipped_token(ctx.derived(), skipped);
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
 //
 // Skip forward to a given token
 //
 ///////////////////////////////////////////////////////////////////////////////
-template <typename IteratorT>
+template <typename ContextT, typename IteratorT>
 inline bool
-skip_to_token(IteratorT &it, IteratorT const &end, token_id id,
- bool& seen_newline)
+skip_to_token(ContextT& ctx, IteratorT &it, IteratorT const &end,
+ token_id id, bool& seen_newline)
 {
     using namespace boost::wave;
     if (token_id(*it) == id)
         return true;
+
+// call_skipped_token_hook(ctx, *it);
     if (++it == end)
         return false;
 
@@ -447,6 +462,8 @@
     {
         if (T_NEWLINE == token_id(*it))
             seen_newline = true;
+
+// call_skipped_token_hook(ctx, *it);
         if (++it == end)
             return false;
     }
@@ -542,19 +559,6 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-// call 'skipped_token' preprocessing hook
-template <typename ContextT>
-void call_skipped_token_hook(ContextT& ctx,
- typename ContextT::token_type const& skipped)
-{
-#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
- ctx.get_hooks().skipped_token(skipped);
-#else
- ctx.get_hooks().skipped_token(ctx.derived(), skipped);
-#endif
-}
-
-///////////////////////////////////////////////////////////////////////////////
 } // namespace util
 } // namespace wave
 } // namespace boost

Modified: trunk/boost/wave/whitespace_handling.hpp
==============================================================================
--- trunk/boost/wave/whitespace_handling.hpp (original)
+++ trunk/boost/wave/whitespace_handling.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -64,6 +64,28 @@
         }
         return newlines;
     }
+
+#if BOOST_WAVE_SUPPORT_CPP0X != 0
+ ///////////////////////////////////////////////////////////////////////////
+ // This function returns the number of newlines in the given C++0x style
+ // raw string
+ template <typename TokenT>
+ int rawstring_count_newlines(TokenT const& token)
+ {
+ using namespace boost::wave;
+ int newlines = 0;
+ if (T_RAWSTRINGLIT == token_id(token)) {
+ typename TokenT::string_type const& value = token.get_value();
+ typename TokenT::string_type::size_type p = value.find_first_of("\n");
+
+ while (TokenT::string_type::npos != p) {
+ ++newlines;
+ p = value.find_first_of("\n", p+1);
+ }
+ }
+ return newlines;
+ }
+#endif
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: trunk/libs/wave/ChangeLog
==============================================================================
--- trunk/libs/wave/ChangeLog (original)
+++ trunk/libs/wave/ChangeLog 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -27,6 +27,11 @@
   C++0x keywords, converting those to C++0x tokens.
 - Adapted all of the library to play well with Boost.Filesystem V3 (which is
   the default from now on).
+- Added support for extended character and string literals, added test case
+ (which required to add C++0x support to the test application).
+- Fixed a problem with object like macros, which when being adjacent to a
+ parenthesis, caused the parenthesis to disappear when the macro expansion
+ was suppressed by the expanding_object_like_macro() hook function.
 
 Boost V1.45.0
 - V2.1.0

Modified: trunk/libs/wave/samples/cpp_tokens/cpp_tokens.cpp
==============================================================================
--- trunk/libs/wave/samples/cpp_tokens/cpp_tokens.cpp (original)
+++ trunk/libs/wave/samples/cpp_tokens/cpp_tokens.cpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -87,7 +87,7 @@
 // during iteration over the context_type::iterator_type stream.
     context_type ctx (teststr.begin(), teststr.end(), argv[1]);
 
- ctx.set_language(boost::wave::enable_long_long(ctx.get_language()));
+ ctx.set_language(boost::wave::support_cpp0x);
     ctx.set_language(boost::wave::enable_preserve_comments(ctx.get_language()));
     ctx.set_language(boost::wave::enable_prefer_pp_numbers(ctx.get_language()));
 

Modified: trunk/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp
==============================================================================
--- trunk/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp (original)
+++ trunk/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -57,7 +57,7 @@
 #endif
 #define INIT_DATA_CPP_SIZE 15
 #define INIT_DATA_PP_NUMBER_SIZE 2
-#define INIT_DATA_CPP0X_SIZE 11
+#define INIT_DATA_CPP0X_SIZE 15
 
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -152,6 +152,7 @@
 #endif
 #define FLOAT_SUFFIX "(" "[fF][lL]?" OR "[lL][fF]?" ")"
 #define CHAR_SPEC "L?"
+#define EXTCHAR_SPEC "(" "[uU]" OR "u8" ")"
 
 #define BACKSLASH "(" Q("\\") OR TRI(Q("/")) ")"
 #define ESCAPESEQ "(" BACKSLASH "(" \
@@ -368,17 +369,17 @@
         "(" DIGIT "*" Q(".") DIGIT "+" OR DIGIT "+" Q(".") ")"
         EXPONENT "?" FLOAT_SUFFIX "?" OR
         DIGIT "+" EXPONENT FLOAT_SUFFIX "?"),
+ TOKEN_DATA(CCOMMENT, CCOMMENT),
+ TOKEN_DATA(CPPCOMMENT, Q("/") Q("/[^\\n\\r]*") NEWLINEDEF ),
+ TOKEN_DATA(CHARLIT, CHAR_SPEC "'"
+ "(" ESCAPESEQ OR UNIVERSALCHAR OR "[^\\n\\r\\\\']" ")+" "'"),
+ TOKEN_DATA(STRINGLIT, CHAR_SPEC Q("\"")
+ "(" ESCAPESEQ OR UNIVERSALCHAR OR "[^\\n\\r\\\\\"]" ")*" Q("\"")),
 #if BOOST_WAVE_USE_STRICT_LEXER != 0
     TOKEN_DATA(IDENTIFIER, "([a-zA-Z_]" OR UNIVERSALCHAR ")([a-zA-Z0-9_]" OR UNIVERSALCHAR ")*"),
 #else
     TOKEN_DATA(IDENTIFIER, "([a-zA-Z_$]" OR UNIVERSALCHAR ")([a-zA-Z0-9_$]" OR UNIVERSALCHAR ")*"),
 #endif
- TOKEN_DATA(CCOMMENT, CCOMMENT),
- TOKEN_DATA(CPPCOMMENT, Q("/") Q("/[^\\n\\r]*") NEWLINEDEF ),
- TOKEN_DATA(CHARLIT, CHAR_SPEC "'"
- "(" ESCAPESEQ OR "[^\\n\\r\\\\']" OR UNIVERSALCHAR ")+" "'"),
- TOKEN_DATA(STRINGLIT, CHAR_SPEC Q("\"")
- "(" ESCAPESEQ OR "[^\\n\\r\\\\\"]" OR UNIVERSALCHAR ")*" Q("\"")),
     TOKEN_DATA(SPACE, "[ \t\v\f]+"),
 // TOKEN_DATA(SPACE2, "[\\v\\f]+"),
     TOKEN_DATA(CONTLINE, "\\" "\\n"),
@@ -432,10 +433,23 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 // C++ only token definitions
+
+#define T_EXTCHARLIT token_id(T_CHARLIT|AltTokenType)
+#define T_EXTSTRINGLIT token_id(T_STRINGLIT|AltTokenType)
+#define T_EXTRAWSTRINGLIT token_id(T_RAWSTRINGLIT|AltTokenType)
+
 template <typename IteratorT, typename PositionT>
 typename lexer_base<IteratorT, PositionT>::lexer_data const
 lexer<IteratorT, PositionT>::init_data_cpp0x[INIT_DATA_CPP0X_SIZE] =
 {
+ TOKEN_DATA(EXTCHARLIT, EXTCHAR_SPEC "'"
+ "(" ESCAPESEQ OR UNIVERSALCHAR OR "[^\\n\\r\\\\']" ")+" "'"),
+ TOKEN_DATA(EXTSTRINGLIT, EXTCHAR_SPEC Q("\"")
+ "(" ESCAPESEQ OR UNIVERSALCHAR OR "[^\\n\\r\\\\\"]" ")*" Q("\"")),
+ TOKEN_DATA(RAWSTRINGLIT, CHAR_SPEC "R" Q("\"")
+ "(" ESCAPESEQ OR UNIVERSALCHAR OR "[^\\\\\"]" ")*" Q("\"")),
+ TOKEN_DATA(EXTRAWSTRINGLIT, EXTCHAR_SPEC "R" Q("\"")
+ "(" ESCAPESEQ OR UNIVERSALCHAR OR "[^\\\\\"]" ")*" Q("\"")),
     TOKEN_DATA(ALIGNAS, "alignas"),
     TOKEN_DATA(ALIGNOF, "alignof"),
     TOKEN_DATA(CHAR16_T, "char16_t"),
@@ -638,8 +652,15 @@
                         }
                         break;
 
- case T_STRINGLIT:
+ case T_EXTCHARLIT:
+ case T_EXTSTRINGLIT:
+ case T_EXTRAWSTRINGLIT:
+ id = token_id(id & ~AltTokenType);
+ // fall through
+
                     case T_CHARLIT:
+ case T_STRINGLIT:
+ case T_RAWSTRINGLIT:
                     // test literal characters for validity (throws if invalid
                     // chars found)
                         if (boost::wave::need_convert_trigraphs(language)) {
@@ -745,6 +766,10 @@
 template <typename IteratorT, typename PositionT>
 lexer::lexer<IteratorT, PositionT> slex_functor<IteratorT, PositionT>::lexer;
 
+#undef T_EXTCHARLIT
+#undef T_EXTSTRINGLIT
+#undef T_EXTRAWSTRINGLIT
+
 ///////////////////////////////////////////////////////////////////////////////
 //
 // The 'new_lexer' function allows the opaque generation of a new lexer object.

Modified: trunk/libs/wave/src/cpplexer/re2clex/cpp.re
==============================================================================
--- trunk/libs/wave/src/cpplexer/re2clex/cpp.re (original)
+++ trunk/libs/wave/src/cpplexer/re2clex/cpp.re 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -248,16 +248,46 @@
     "->" { BOOST_WAVE_RET(T_ARROW); }
     "??/" { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
 
-
- ([a-zA-Z_$] | UniversalChar) ([a-zA-Z_0-9$] | UniversalChar)*
- { BOOST_WAVE_RET(T_IDENTIFIER); }
-
- "L"? (['] (EscapeSequence|any\[\n\r\\']|UniversalChar)+ ['])
+ "L"? (['] (EscapeSequence | UniversalChar | any\[\n\r\\'])+ ['])
         { BOOST_WAVE_RET(T_CHARLIT); }
 
- "L"? (["] (EscapeSequence|any\[\n\r\\"]|UniversalChar)* ["])
+ "L"? (["] (EscapeSequence | UniversalChar | any\[\n\r\\"])* ["])
         { BOOST_WAVE_RET(T_STRINGLIT); }
 
+ "L"? "R" ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ 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)
+ 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); }
@@ -320,7 +350,7 @@
 ccomment:
 /*!re2c
     "*/" { BOOST_WAVE_RET(T_CCOMMENT); }
-
+
     Newline
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
@@ -380,7 +410,7 @@
             (*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)
         {
@@ -411,6 +441,9 @@
     /*!re2c
         "."? Digit (Digit | NonDigit | ExponentStart | ".")*
             { BOOST_WAVE_RET(T_PP_NUMBER); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
     else {
@@ -419,11 +452,14 @@
             { BOOST_WAVE_RET(T_FLOATLIT); }
             
         Integer { goto integer_suffix; }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
 }
 
-/* this subscanner is called, whenever a Integer was recognized */
+/* this subscanner is called, whenever an Integer was recognized */
 integer_suffix:
 {
     if (s->enable_ms_extensions) {
@@ -433,6 +469,9 @@
 
         IntegerSuffix?
             { BOOST_WAVE_RET(T_INTLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
     else {
@@ -442,6 +481,52 @@
 
         IntegerSuffix?
             { BOOST_WAVE_RET(T_INTLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
 }
+
+/* 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:
+{
+ /*!re2c
+ (EscapeSequence | UniversalChar | any\[\r\n\\"])
+ {
+ goto extrawstringlit;
+ }
+
+ Newline
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringlit;
+ }
+
+ ["] { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
+ */
+}

Modified: trunk/libs/wave/src/cpplexer/re2clex/cpp_re.inc
==============================================================================
--- trunk/libs/wave/src/cpplexer/re2clex/cpp_re.inc (original)
+++ trunk/libs/wave/src/cpplexer/re2clex/cpp_re.inc 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Tue Dec 07 10:30:02 2010 */
+/* Generated by re2c 0.13.5 on Wed Dec 08 19:42:47 2010 */
 #line 1 "cpp.re"
 /*=============================================================================
     Boost.Wave: A Standard compliant C++ preprocessor library
@@ -28,76 +28,76 @@
     static const unsigned char yybm[] = {
         /* table 1 .. 8: 0 */
           0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 32, 58, 58, 64, 0, 0,
+ 0, 60, 32, 60, 60, 64, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
- 58, 58, 50, 58, 62, 58, 58, 56,
- 58, 58, 154, 58, 58, 58, 58, 58,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 58, 58, 58, 58, 42, 56,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 57, 58, 58, 62,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
+ 60, 60, 52, 60, 60, 60, 60, 56,
+ 60, 60, 156, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 44, 57,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 58, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
         /* table 9 .. 12: 256 */
           0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 48, 48, 0, 0, 0,
+ 0, 80, 0, 80, 80, 0, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
- 48, 32, 0, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
+ 80, 64, 0, 64, 96, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 64, 64, 64, 64, 64, 0,
+ 64, 224, 224, 224, 224, 224, 224, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 64, 0, 64, 64, 96,
+ 64, 224, 224, 224, 224, 224, 224, 96,
          96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 32, 32, 32, 32, 32, 128,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 0, 32, 32, 32,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
     };
 
     if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
     yych = *YYCURSOR;
     switch (yych) {
- case 0x00: goto yy88;
+ case 0x00: goto yy90;
     case 0x01:
     case 0x02:
     case 0x03:
@@ -123,15 +123,15 @@
     case 0x1C:
     case 0x1D:
     case 0x1E:
- case 0x1F: goto yy91;
+ case 0x1F: goto yy93;
     case '\t':
     case '\v':
- case '\f': goto yy82;
- case '\n': goto yy85;
- case '\r': goto yy87;
- case ' ': goto yy84;
+ case '\f': goto yy84;
+ case '\n': goto yy87;
+ case '\r': goto yy89;
+ case ' ': goto yy86;
     case '!': goto yy68;
- case '"': goto yy81;
+ case '"': goto yy79;
     case '#': goto yy45;
     case '$':
     case 'A':
@@ -150,10 +150,8 @@
     case 'O':
     case 'P':
     case 'Q':
- case 'R':
     case 'S':
     case 'T':
- case 'U':
     case 'V':
     case 'W':
     case 'X':
@@ -164,10 +162,10 @@
     case 'k':
     case 'q':
     case 'y':
- case 'z': goto yy76;
+ case 'z': goto yy82;
     case '%': goto yy37;
     case '&': goto yy62;
- case '\'': goto yy80;
+ case '\'': goto yy77;
     case '(': goto yy47;
     case ')': goto yy49;
     case '*': goto yy57;
@@ -192,9 +190,11 @@
     case '=': goto yy70;
     case '>': goto yy72;
     case '?': goto yy31;
- case 'L': goto yy77;
+ case 'L': goto yy76;
+ case 'R': goto yy80;
+ case 'U': goto yy81;
     case '[': goto yy39;
- case '\\': goto yy78;
+ case '\\': goto yy83;
     case ']': goto yy41;
     case '^': goto yy59;
     case '_': goto yy28;
@@ -222,15 +222,15 @@
     case '|': goto yy64;
     case '}': goto yy35;
     case '~': goto yy66;
- default: goto yy90;
+ default: goto yy92;
     }
 yy2:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '.') {
- if (yych == '*') goto yy985;
+ if (yych == '*') goto yy998;
     } else {
- if (yych <= '/') goto yy983;
- if (yych == '=') goto yy981;
+ if (yych <= '/') goto yy996;
+ if (yych == '=') goto yy994;
     }
 #line 188 "cpp.re"
     { BOOST_WAVE_RET(T_DIVIDE); }
@@ -239,11 +239,11 @@
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '-') {
- if (yych == '*') goto yy975;
+ if (yych == '*') goto yy988;
     } else {
- if (yych <= '.') goto yy977;
+ if (yych <= '.') goto yy990;
         if (yych <= '/') goto yy5;
- if (yych <= '9') goto yy978;
+ if (yych <= '9') goto yy991;
     }
 yy5:
 #line 174 "cpp.re"
@@ -259,474 +259,530 @@
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'l': goto yy951;
- case 'n': goto yy952;
- case 's': goto yy953;
- case 'u': goto yy954;
- default: goto yy195;
+ case 'l': goto yy964;
+ case 'n': goto yy965;
+ case 's': goto yy966;
+ case 'u': goto yy967;
+ default: goto yy109;
     }
 yy9:
-#line 253 "cpp.re"
+#line 290 "cpp.re"
     { BOOST_WAVE_RET(T_IDENTIFIER); }
 #line 272 "cpp_re.inc"
 yy10:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'n') {
- if (yych == 'i') goto yy933;
- goto yy195;
+ if (yych == 'i') goto yy946;
+ goto yy109;
     } else {
- if (yych <= 'o') goto yy934;
- if (yych == 'r') goto yy935;
- goto yy195;
+ if (yych <= 'o') goto yy947;
+ if (yych == 'r') goto yy948;
+ goto yy109;
     }
 yy11:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'a': goto yy880;
- case 'h': goto yy881;
- case 'l': goto yy882;
- case 'o': goto yy883;
- default: goto yy195;
+ case 'a': goto yy893;
+ case 'h': goto yy894;
+ case 'l': goto yy895;
+ case 'o': goto yy896;
+ default: goto yy109;
     }
 yy12:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'n') {
- if (yych == 'e') goto yy842;
- goto yy195;
+ if (yych == 'e') goto yy855;
+ goto yy109;
     } else {
- if (yych <= 'o') goto yy843;
- if (yych == 'y') goto yy845;
- goto yy195;
+ if (yych <= 'o') goto yy856;
+ if (yych == 'y') goto yy858;
+ goto yy109;
     }
 yy13:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'm') {
- if (yych == 'l') goto yy817;
- goto yy195;
+ if (yych == 'l') goto yy830;
+ goto yy109;
     } else {
- if (yych <= 'n') goto yy818;
- if (yych == 'x') goto yy819;
- goto yy195;
+ if (yych <= 'n') goto yy831;
+ if (yych == 'x') goto yy832;
+ goto yy109;
     }
 yy14:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'a': goto yy798;
- case 'l': goto yy799;
- case 'o': goto yy800;
- case 'r': goto yy801;
- default: goto yy195;
+ case 'a': goto yy811;
+ case 'l': goto yy812;
+ case 'o': goto yy813;
+ case 'r': goto yy814;
+ default: goto yy109;
     }
 yy15:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy794;
- goto yy195;
+ if (yych == 'o') goto yy807;
+ goto yy109;
 yy16:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'l') {
- if (yych == 'f') goto yy778;
- goto yy195;
+ if (yych == 'f') goto yy791;
+ goto yy109;
     } else {
- if (yych <= 'm') goto yy780;
- if (yych <= 'n') goto yy781;
- goto yy195;
+ if (yych <= 'm') goto yy793;
+ if (yych <= 'n') goto yy794;
+ goto yy109;
     }
 yy17:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy774;
- goto yy195;
+ if (yych == 'o') goto yy787;
+ goto yy109;
 yy18:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'u') goto yy767;
- goto yy195;
+ if (yych == 'u') goto yy780;
+ goto yy109;
 yy19:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
- if (yych == 'a') goto yy734;
- if (yych <= 'd') goto yy195;
- goto yy735;
+ if (yych == 'a') goto yy747;
+ if (yych <= 'd') goto yy109;
+ goto yy748;
     } else {
         if (yych <= 'o') {
- if (yych <= 'n') goto yy195;
- goto yy736;
+ if (yych <= 'n') goto yy109;
+ goto yy749;
         } else {
- if (yych == 'u') goto yy737;
- goto yy195;
+ if (yych == 'u') goto yy750;
+ goto yy109;
         }
     }
 yy20:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'p') goto yy720;
- if (yych == 'r') goto yy721;
- goto yy195;
+ if (yych == 'p') goto yy733;
+ if (yych == 'r') goto yy734;
+ goto yy109;
 yy21:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy699;
- if (yych == 'u') goto yy700;
- goto yy195;
+ if (yych == 'r') goto yy712;
+ if (yych == 'u') goto yy713;
+ goto yy109;
 yy22:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy671;
- goto yy195;
+ if (yych == 'e') goto yy684;
+ goto yy109;
 yy23:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 's') {
- if (yych <= 'g') goto yy195;
- if (yych <= 'h') goto yy625;
- if (yych <= 'i') goto yy626;
- goto yy195;
- } else {
- if (yych <= 't') goto yy627;
- if (yych == 'w') goto yy628;
- goto yy195;
+ if (yych <= 'g') goto yy109;
+ if (yych <= 'h') goto yy638;
+ if (yych <= 'i') goto yy639;
+ goto yy109;
+ } else {
+ if (yych <= 't') goto yy640;
+ if (yych == 'w') goto yy641;
+ goto yy109;
     }
 yy24:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
- if (yych == 'e') goto yy578;
- if (yych <= 'g') goto yy195;
- goto yy579;
+ if (yych == 'e') goto yy591;
+ if (yych <= 'g') goto yy109;
+ goto yy592;
     } else {
         if (yych <= 'r') {
- if (yych <= 'q') goto yy195;
- goto yy580;
+ if (yych <= 'q') goto yy109;
+ goto yy593;
         } else {
- if (yych == 'y') goto yy581;
- goto yy195;
+ if (yych == 'y') goto yy594;
+ goto yy109;
         }
     }
 yy25:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy561;
- if (yych == 's') goto yy562;
- goto yy195;
+ if (yych <= '8') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy129;
+ goto yy109;
+ } else {
+ if (yych <= '\'') goto yy131;
+ if (yych <= '7') goto yy109;
+ goto yy573;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == 'R') goto yy128;
+ goto yy109;
+ } else {
+ if (yych <= 'n') goto yy574;
+ if (yych == 's') goto yy575;
+ goto yy109;
+ }
+ }
 yy26:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy543;
- if (yych == 'o') goto yy544;
- goto yy195;
+ if (yych == 'i') goto yy555;
+ if (yych == 'o') goto yy556;
+ goto yy109;
 yy27:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'c') goto yy531;
- if (yych == 'h') goto yy532;
- goto yy195;
+ if (yych == 'c') goto yy543;
+ if (yych == 'h') goto yy544;
+ goto yy109;
 yy28:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case '_': goto yy442;
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'f': goto yy447;
- case 'i': goto yy448;
- case 's': goto yy449;
- default: goto yy195;
+ case '_': goto yy454;
+ case 'a': goto yy455;
+ case 'b': goto yy456;
+ case 'c': goto yy457;
+ case 'd': goto yy458;
+ case 'f': goto yy459;
+ case 'i': goto yy460;
+ case 's': goto yy461;
+ default: goto yy109;
     }
 yy29:
     ++YYCURSOR;
 #line 138 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE); }
-#line 450 "cpp_re.inc"
+#line 466 "cpp_re.inc"
 yy31:
     yyaccept = 2;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '?') goto yy407;
+ if (yych == '?') goto yy419;
 yy32:
 #line 163 "cpp.re"
     { BOOST_WAVE_RET(T_QUESTION_MARK); }
-#line 458 "cpp_re.inc"
+#line 474 "cpp_re.inc"
 yy33:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= ':') {
- if (yych == '%') goto yy403;
- if (yych >= ':') goto yy401;
+ if (yych == '%') goto yy415;
+ if (yych >= ':') goto yy413;
     } else {
         if (yych <= ';') goto yy34;
- if (yych <= '<') goto yy399;
- if (yych <= '=') goto yy397;
+ if (yych <= '<') goto yy411;
+ if (yych <= '=') goto yy409;
     }
 yy34:
 #line 204 "cpp.re"
     { BOOST_WAVE_RET(T_LESS); }
-#line 472 "cpp_re.inc"
+#line 488 "cpp_re.inc"
 yy35:
     ++YYCURSOR;
 #line 141 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE); }
-#line 477 "cpp_re.inc"
+#line 493 "cpp_re.inc"
 yy37:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '<') {
- if (yych == ':') goto yy388;
+ if (yych == ':') goto yy400;
     } else {
- if (yych <= '=') goto yy390;
- if (yych <= '>') goto yy392;
+ if (yych <= '=') goto yy402;
+ if (yych <= '>') goto yy404;
     }
 #line 189 "cpp.re"
     { BOOST_WAVE_RET(T_PERCENT); }
-#line 488 "cpp_re.inc"
+#line 504 "cpp_re.inc"
 yy39:
     ++YYCURSOR;
 #line 144 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET); }
-#line 493 "cpp_re.inc"
+#line 509 "cpp_re.inc"
 yy41:
     ++YYCURSOR;
 #line 147 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET); }
-#line 498 "cpp_re.inc"
+#line 514 "cpp_re.inc"
 yy43:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == ':') goto yy384;
- if (yych == '>') goto yy386;
+ if ((yych = *YYCURSOR) == ':') goto yy396;
+ if (yych == '>') goto yy398;
 #line 161 "cpp.re"
     { BOOST_WAVE_RET(T_COLON); }
-#line 505 "cpp_re.inc"
+#line 521 "cpp_re.inc"
 yy45:
     yyaccept = 3;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'c') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy261;
+ if (yych == '\t') goto yy273;
             } else {
- if (yych <= '\f') goto yy261;
- if (yych >= ' ') goto yy261;
+ if (yych <= '\f') goto yy273;
+ if (yych >= ' ') goto yy273;
             }
         } else {
             if (yych <= '.') {
- if (yych == '#') goto yy272;
+ if (yych == '#') goto yy284;
             } else {
- if (yych <= '/') goto yy261;
- if (yych == '?') goto yy271;
+ if (yych <= '/') goto yy273;
+ if (yych == '?') goto yy283;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'i') {
- if (yych <= 'e') goto yy261;
- if (yych >= 'i') goto yy261;
+ if (yych <= 'e') goto yy273;
+ if (yych >= 'i') goto yy273;
             } else {
- if (yych == 'l') goto yy261;
- if (yych >= 'p') goto yy261;
+ if (yych == 'l') goto yy273;
+ if (yych >= 'p') goto yy273;
             }
         } else {
             if (yych <= 't') {
- if (yych == 'r') goto yy261;
+ if (yych == 'r') goto yy273;
             } else {
                 if (yych == 'v') goto yy46;
- if (yych <= 'w') goto yy261;
+ if (yych <= 'w') goto yy273;
             }
         }
     }
 yy46:
 #line 150 "cpp.re"
     { BOOST_WAVE_RET(T_POUND); }
-#line 546 "cpp_re.inc"
+#line 562 "cpp_re.inc"
 yy47:
     ++YYCURSOR;
 #line 158 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTPAREN); }
-#line 551 "cpp_re.inc"
+#line 567 "cpp_re.inc"
 yy49:
     ++YYCURSOR;
 #line 159 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTPAREN); }
-#line 556 "cpp_re.inc"
+#line 572 "cpp_re.inc"
 yy51:
     ++YYCURSOR;
 #line 160 "cpp.re"
     { BOOST_WAVE_RET(T_SEMICOLON); }
-#line 561 "cpp_re.inc"
+#line 577 "cpp_re.inc"
 yy53:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '+') goto yy256;
- if (yych == '=') goto yy258;
+ if ((yych = *YYCURSOR) == '+') goto yy268;
+ if (yych == '=') goto yy270;
 #line 185 "cpp.re"
     { BOOST_WAVE_RET(T_PLUS); }
-#line 568 "cpp_re.inc"
+#line 584 "cpp_re.inc"
 yy55:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy250;
+ if (yych == '-') goto yy262;
     } else {
- if (yych <= '=') goto yy252;
- if (yych <= '>') goto yy248;
+ if (yych <= '=') goto yy264;
+ if (yych <= '>') goto yy260;
     }
 #line 186 "cpp.re"
     { BOOST_WAVE_RET(T_MINUS); }
-#line 579 "cpp_re.inc"
+#line 595 "cpp_re.inc"
 yy57:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy246;
+ if ((yych = *YYCURSOR) == '=') goto yy258;
 #line 187 "cpp.re"
     { BOOST_WAVE_RET(T_STAR); }
-#line 585 "cpp_re.inc"
+#line 601 "cpp_re.inc"
 yy59:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy244;
+ if ((yych = *YYCURSOR) == '=') goto yy256;
 #line 190 "cpp.re"
     { BOOST_WAVE_RET(T_XOR); }
-#line 591 "cpp_re.inc"
+#line 607 "cpp_re.inc"
 yy61:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy237;
- goto yy195;
+ if (yych == 'o') goto yy249;
+ goto yy109;
 yy62:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '&') goto yy233;
- if (yych == '=') goto yy235;
+ if ((yych = *YYCURSOR) == '&') goto yy245;
+ if (yych == '=') goto yy247;
 #line 193 "cpp.re"
     { BOOST_WAVE_RET(T_AND); }
-#line 603 "cpp_re.inc"
+#line 619 "cpp_re.inc"
 yy64:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '>') {
- if (yych == '=') goto yy228;
+ if (yych == '=') goto yy240;
     } else {
- if (yych <= '?') goto yy225;
- if (yych == '|') goto yy226;
+ if (yych <= '?') goto yy237;
+ if (yych == '|') goto yy238;
     }
 yy65:
 #line 195 "cpp.re"
     { BOOST_WAVE_RET(T_OR); }
-#line 616 "cpp_re.inc"
+#line 632 "cpp_re.inc"
 yy66:
     ++YYCURSOR;
 #line 198 "cpp.re"
     { BOOST_WAVE_RET(T_COMPL); }
-#line 621 "cpp_re.inc"
+#line 637 "cpp_re.inc"
 yy68:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy223;
+ if ((yych = *YYCURSOR) == '=') goto yy235;
 #line 201 "cpp.re"
     { BOOST_WAVE_RET(T_NOT); }
-#line 627 "cpp_re.inc"
+#line 643 "cpp_re.inc"
 yy70:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy221;
+ if ((yych = *YYCURSOR) == '=') goto yy233;
 #line 203 "cpp.re"
     { BOOST_WAVE_RET(T_ASSIGN); }
-#line 633 "cpp_re.inc"
+#line 649 "cpp_re.inc"
 yy72:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '<') goto yy73;
- if (yych <= '=') goto yy215;
- if (yych <= '>') goto yy217;
+ if (yych <= '=') goto yy227;
+ if (yych <= '>') goto yy229;
 yy73:
 #line 205 "cpp.re"
     { BOOST_WAVE_RET(T_GREATER); }
-#line 642 "cpp_re.inc"
+#line 658 "cpp_re.inc"
 yy74:
     ++YYCURSOR;
 #line 237 "cpp.re"
     { BOOST_WAVE_RET(T_COMMA); }
-#line 647 "cpp_re.inc"
+#line 663 "cpp_re.inc"
 yy76:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- goto yy195;
-yy77:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
- }
- if (yych <= '\'') {
- if (yych == '"') goto yy96;
- if (yych <= '&') goto yy9;
- goto yy214;
+ if (yych <= '?') {
+ if (yych <= '&') {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy9;
+ goto yy137;
+ } else {
+ if (yych == '$') goto yy108;
+ goto yy9;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '\'') goto yy226;
+ goto yy9;
+ } else {
+ if (yych <= '9') goto yy108;
+ if (yych <= '>') goto yy9;
+ goto yy111;
+ }
+ }
     } else {
- if (yych <= '?') {
- if (yych <= '>') goto yy9;
- goto yy197;
+ if (yych <= '[') {
+ if (yych <= 'Q') {
+ if (yych <= '@') goto yy9;
+ goto yy108;
+ } else {
+ if (yych <= 'R') goto yy225;
+ if (yych <= 'Z') goto yy108;
+ goto yy9;
+ }
         } else {
- if (yych == '\\') goto yy196;
- goto yy9;
+ if (yych <= '_') {
+ if (yych <= '\\') goto yy110;
+ if (yych <= '^') goto yy9;
+ goto yy108;
+ } else {
+ if (yych <= '`') goto yy9;
+ if (yych <= 'z') goto yy108;
+ goto yy9;
+ }
         }
     }
-yy78:
+yy77:
     yyaccept = 5;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'U') goto yy186;
- if (yych == 'u') goto yy185;
-yy79:
-#line 309 "cpp.re"
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy182;
+ if (yych >= '\v') goto yy182;
+ } else {
+ if (yych <= 0x1F) goto yy78;
+ if (yych != '\'') goto yy182;
+ }
+yy78:
+#line 339 "cpp.re"
     { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 679 "cpp_re.inc"
-yy80:
+#line 721 "cpp_re.inc"
+yy79:
     yyaccept = 5;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\f') {
- if (yych == '\t') goto yy142;
- if (yych <= '\n') goto yy79;
- goto yy142;
- } else {
- if (yych <= 0x1F) goto yy79;
- if (yych == '\'') goto yy79;
- goto yy142;
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy138;
+ goto yy78;
+ } else {
+ if (yych <= '\f') goto yy138;
+ if (yych <= 0x1F) goto yy78;
+ goto yy138;
     }
+yy80:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy135;
+ goto yy109;
 yy81:
- yyaccept = 5;
+ yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\n') {
- if (yych == '\t') goto yy97;
- goto yy79;
+ if (yych <= '&') {
+ if (yych == '"') goto yy129;
+ goto yy109;
     } else {
- if (yych <= '\f') goto yy97;
- if (yych <= 0x1F) goto yy79;
- goto yy97;
+ if (yych <= '\'') goto yy131;
+ if (yych == 'R') goto yy128;
+ goto yy109;
     }
 yy82:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy109;
+yy83:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'U') goto yy100;
+ if (yych == 'u') goto yy98;
+ goto yy78;
+yy84:
     ++YYCURSOR;
     yych = *YYCURSOR;
- goto yy95;
-yy83:
-#line 289 "cpp.re"
+ goto yy97;
+yy85:
+#line 319 "cpp.re"
     { BOOST_WAVE_RET(T_SPACE); }
-#line 710 "cpp_re.inc"
-yy84:
+#line 766 "cpp_re.inc"
+yy86:
     yych = *++YYCURSOR;
- goto yy95;
-yy85:
+ goto yy97;
+yy87:
     ++YYCURSOR;
-yy86:
-#line 292 "cpp.re"
+yy88:
+#line 322 "cpp.re"
     {
         s->line++;
         cursor.column = 1;
         BOOST_WAVE_RET(T_NEWLINE);
     }
-#line 723 "cpp_re.inc"
-yy87:
+#line 779 "cpp_re.inc"
+yy89:
     yych = *++YYCURSOR;
- if (yych == '\n') goto yy93;
- goto yy86;
-yy88:
+ if (yych == '\n') goto yy95;
+ goto yy88;
+yy90:
     ++YYCURSOR;
-#line 299 "cpp.re"
+#line 329 "cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -736,45 +792,43 @@
         }
         BOOST_WAVE_RET(T_EOF);
     }
-#line 740 "cpp_re.inc"
-yy90:
+#line 796 "cpp_re.inc"
+yy92:
     yych = *++YYCURSOR;
- goto yy79;
-yy91:
+ goto yy78;
+yy93:
     ++YYCURSOR;
-#line 312 "cpp.re"
+#line 342 "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 753 "cpp_re.inc"
-yy93:
- yych = *++YYCURSOR;
- goto yy86;
-yy94:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
+#line 809 "cpp_re.inc"
 yy95:
- if (yybm[256+yych] & 16) {
- goto yy94;
- }
- goto yy83;
+ yych = *++YYCURSOR;
+ goto yy88;
 yy96:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
 yy97:
- if (yybm[256+yych] & 32) {
+ if (yybm[256+yych] & 16) {
         goto yy96;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
+ goto yy85;
 yy98:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy125;
+ } else {
+ if (yych <= 'F') goto yy125;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy125;
+ }
+yy99:
     YYCURSOR = YYMARKER;
     if (yyaccept <= 56) {
         if (yyaccept <= 28) {
@@ -799,13 +853,13 @@
                             if (yyaccept <= 4) {
                                 goto yy65;
                             } else {
- goto yy79;
+ goto yy78;
                             }
                         } else {
                             if (yyaccept <= 6) {
- goto yy102;
+ goto yy142;
                             } else {
- goto yy152;
+ goto yy192;
                             }
                         }
                     }
@@ -813,26 +867,26 @@
                     if (yyaccept <= 11) {
                         if (yyaccept <= 9) {
                             if (yyaccept <= 8) {
- goto yy239;
+ goto yy251;
                             } else {
- goto yy243;
+ goto yy255;
                             }
                         } else {
                             if (yyaccept <= 10) {
- goto yy279;
+ goto yy291;
                             } else {
- goto yy294;
+ goto yy306;
                             }
                         }
                     } else {
                         if (yyaccept <= 13) {
                             if (yyaccept <= 12) {
- goto yy389;
+ goto yy401;
                             } else {
- goto yy417;
+ goto yy429;
                             }
                         } else {
- goto yy421;
+ goto yy433;
                         }
                     }
                 }
@@ -841,52 +895,52 @@
                     if (yyaccept <= 18) {
                         if (yyaccept <= 16) {
                             if (yyaccept <= 15) {
- goto yy425;
+ goto yy437;
                             } else {
- goto yy456;
+ goto yy468;
                             }
                         } else {
                             if (yyaccept <= 17) {
- goto yy462;
+ goto yy474;
                             } else {
- goto yy470;
+ goto yy482;
                             }
                         }
                     } else {
                         if (yyaccept <= 20) {
                             if (yyaccept <= 19) {
- goto yy478;
+ goto yy490;
                             } else {
- goto yy483;
+ goto yy495;
                             }
                         } else {
- goto yy488;
+ goto yy500;
                         }
                     }
                 } else {
                     if (yyaccept <= 25) {
                         if (yyaccept <= 23) {
                             if (yyaccept <= 22) {
- goto yy491;
+ goto yy503;
                             } else {
- goto yy501;
+ goto yy513;
                             }
                         } else {
                             if (yyaccept <= 24) {
- goto yy507;
+ goto yy519;
                             } else {
- goto yy510;
+ goto yy522;
                             }
                         }
                     } else {
                         if (yyaccept <= 27) {
                             if (yyaccept <= 26) {
- goto yy517;
+ goto yy529;
                             } else {
- goto yy524;
+ goto yy536;
                             }
                         } else {
- goto yy526;
+ goto yy538;
                         }
                     }
                 }
@@ -897,52 +951,52 @@
                     if (yyaccept <= 32) {
                         if (yyaccept <= 30) {
                             if (yyaccept <= 29) {
- goto yy528;
+ goto yy540;
                             } else {
- goto yy530;
+ goto yy542;
                             }
                         } else {
                             if (yyaccept <= 31) {
- goto yy536;
+ goto yy548;
                             } else {
- goto yy542;
+ goto yy554;
                             }
                         }
                     } else {
                         if (yyaccept <= 34) {
                             if (yyaccept <= 33) {
- goto yy552;
+ goto yy564;
                             } else {
- goto yy554;
+ goto yy566;
                             }
                         } else {
- goto yy560;
+ goto yy572;
                         }
                     }
                 } else {
                     if (yyaccept <= 39) {
                         if (yyaccept <= 37) {
                             if (yyaccept <= 36) {
- goto yy566;
+ goto yy579;
                             } else {
- goto yy574;
+ goto yy587;
                             }
                         } else {
                             if (yyaccept <= 38) {
- goto yy577;
- } else {
                                 goto yy590;
+ } else {
+ goto yy603;
                             }
                         }
                     } else {
                         if (yyaccept <= 41) {
                             if (yyaccept <= 40) {
- goto yy592;
+ goto yy605;
                             } else {
- goto yy595;
+ goto yy608;
                             }
                         } else {
- goto yy598;
+ goto yy611;
                         }
                     }
                 }
@@ -951,52 +1005,52 @@
                     if (yyaccept <= 46) {
                         if (yyaccept <= 44) {
                             if (yyaccept <= 43) {
- goto yy600;
+ goto yy613;
                             } else {
- goto yy606;
+ goto yy619;
                             }
                         } else {
                             if (yyaccept <= 45) {
- goto yy615;
+ goto yy628;
                             } else {
- goto yy617;
+ goto yy630;
                             }
                         }
                     } else {
                         if (yyaccept <= 48) {
                             if (yyaccept <= 47) {
- goto yy624;
+ goto yy637;
                             } else {
- goto yy633;
+ goto yy646;
                             }
                         } else {
- goto yy639;
+ goto yy652;
                         }
                     }
                 } else {
                     if (yyaccept <= 53) {
                         if (yyaccept <= 51) {
                             if (yyaccept <= 50) {
- goto yy643;
+ goto yy656;
                             } else {
- goto yy650;
+ goto yy663;
                             }
                         } else {
                             if (yyaccept <= 52) {
- goto yy656;
+ goto yy669;
                             } else {
- goto yy662;
+ goto yy675;
                             }
                         }
                     } else {
                         if (yyaccept <= 55) {
                             if (yyaccept <= 54) {
- goto yy666;
+ goto yy679;
                             } else {
- goto yy670;
+ goto yy683;
                             }
                         } else {
- goto yy678;
+ goto yy691;
                         }
                     }
                 }
@@ -1009,29 +1063,29 @@
                     if (yyaccept <= 60) {
                         if (yyaccept <= 58) {
                             if (yyaccept <= 57) {
- goto yy692;
+ goto yy705;
                             } else {
- goto yy698;
+ goto yy711;
                             }
                         } else {
                             if (yyaccept <= 59) {
- goto yy705;
+ goto yy718;
                             } else {
- goto yy714;
+ goto yy727;
                             }
                         }
                     } else {
                         if (yyaccept <= 62) {
                             if (yyaccept <= 61) {
- goto yy719;
+ goto yy732;
                             } else {
- goto yy722;
+ goto yy735;
                             }
                         } else {
                             if (yyaccept <= 63) {
- goto yy726;
+ goto yy739;
                             } else {
- goto yy733;
+ goto yy746;
                             }
                         }
                     }
@@ -1039,26 +1093,26 @@
                     if (yyaccept <= 68) {
                         if (yyaccept <= 66) {
                             if (yyaccept <= 65) {
- goto yy743;
+ goto yy756;
                             } else {
- goto yy746;
+ goto yy759;
                             }
                         } else {
                             if (yyaccept <= 67) {
- goto yy750;
+ goto yy763;
                             } else {
- goto yy756;
+ goto yy769;
                             }
                         }
                     } else {
                         if (yyaccept <= 70) {
                             if (yyaccept <= 69) {
- goto yy758;
+ goto yy771;
                             } else {
- goto yy766;
+ goto yy779;
                             }
                         } else {
- goto yy773;
+ goto yy786;
                         }
                     }
                 }
@@ -1067,52 +1121,52 @@
                     if (yyaccept <= 75) {
                         if (yyaccept <= 73) {
                             if (yyaccept <= 72) {
- goto yy777;
+ goto yy790;
                             } else {
- goto yy779;
+ goto yy792;
                             }
                         } else {
                             if (yyaccept <= 74) {
- goto yy784;
+ goto yy797;
                             } else {
- goto yy788;
+ goto yy801;
                             }
                         }
                     } else {
                         if (yyaccept <= 77) {
                             if (yyaccept <= 76) {
- goto yy793;
+ goto yy806;
                             } else {
- goto yy797;
+ goto yy810;
                             }
                         } else {
- goto yy806;
+ goto yy819;
                         }
                     }
                 } else {
                     if (yyaccept <= 82) {
                         if (yyaccept <= 80) {
                             if (yyaccept <= 79) {
- goto yy808;
+ goto yy821;
                             } else {
- goto yy812;
+ goto yy825;
                             }
                         } else {
                             if (yyaccept <= 81) {
- goto yy816;
+ goto yy829;
                             } else {
- goto yy825;
+ goto yy838;
                             }
                         }
                     } else {
                         if (yyaccept <= 84) {
                             if (yyaccept <= 83) {
- goto yy830;
+ goto yy843;
                             } else {
- goto yy835;
+ goto yy848;
                             }
                         } else {
- goto yy838;
+ goto yy851;
                         }
                     }
                 }
@@ -1123,52 +1177,52 @@
                     if (yyaccept <= 89) {
                         if (yyaccept <= 87) {
                             if (yyaccept <= 86) {
- goto yy841;
+ goto yy854;
                             } else {
- goto yy844;
+ goto yy857;
                             }
                         } else {
                             if (yyaccept <= 88) {
- goto yy856;
+ goto yy869;
                             } else {
- goto yy861;
+ goto yy874;
                             }
                         }
                     } else {
                         if (yyaccept <= 91) {
                             if (yyaccept <= 90) {
- goto yy868;
+ goto yy881;
                             } else {
- goto yy873;
+ goto yy886;
                             }
                         } else {
- goto yy879;
+ goto yy892;
                         }
                     }
                 } else {
                     if (yyaccept <= 96) {
                         if (yyaccept <= 94) {
                             if (yyaccept <= 93) {
- goto yy888;
+ goto yy901;
                             } else {
- goto yy895;
+ goto yy908;
                             }
                         } else {
                             if (yyaccept <= 95) {
- goto yy897;
+ goto yy910;
                             } else {
- goto yy903;
+ goto yy916;
                             }
                         }
                     } else {
                         if (yyaccept <= 98) {
                             if (yyaccept <= 97) {
- goto yy908;
+ goto yy921;
                             } else {
- goto yy912;
+ goto yy925;
                             }
                         } else {
- goto yy915;
+ goto yy928;
                         }
                     }
                 }
@@ -1177,296 +1231,642 @@
                     if (yyaccept <= 103) {
                         if (yyaccept <= 101) {
                             if (yyaccept <= 100) {
- goto yy921;
+ goto yy934;
                             } else {
- goto yy925;
+ goto yy938;
                             }
                         } else {
                             if (yyaccept <= 102) {
- goto yy930;
+ goto yy943;
                             } else {
- goto yy932;
+ goto yy945;
                             }
                         }
                     } else {
                         if (yyaccept <= 105) {
                             if (yyaccept <= 104) {
- goto yy939;
+ goto yy952;
                             } else {
- goto yy942;
+ goto yy955;
                             }
                         } else {
- goto yy947;
+ goto yy960;
                         }
                     }
                 } else {
                     if (yyaccept <= 110) {
                         if (yyaccept <= 108) {
                             if (yyaccept <= 107) {
- goto yy950;
+ goto yy963;
                             } else {
- goto yy957;
+ goto yy970;
                             }
                         } else {
                             if (yyaccept <= 109) {
- goto yy959;
+ goto yy972;
                             } else {
- goto yy961;
+ goto yy974;
                             }
                         }
                     } else {
                         if (yyaccept <= 112) {
                             if (yyaccept <= 111) {
- goto yy965;
+ goto yy978;
                             } else {
- goto yy972;
+ goto yy985;
                             }
                         } else {
- goto yy974;
+ goto yy987;
                         }
                     }
                 }
             }
         }
     }
-yy99:
- ++YYCURSOR;
+yy100:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy101;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy101:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy102;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy102:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy103;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy103:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy104;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy104:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy105;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy105:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy106;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy106:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy107;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy107:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy108:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
+yy109:
     if (yybm[256+yych] & 32) {
- goto yy96;
+ goto yy108;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy112;
-yy100:
+ if (yych == '?') goto yy111;
+ if (yych != '\\') goto yy9;
+yy110:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych <= '`') {
- if (yych <= '7') {
- if (yych <= '&') {
- if (yych == '"') goto yy96;
- goto yy98;
- } else {
- if (yych <= '\'') goto yy96;
- if (yych <= '/') goto yy98;
- goto yy107;
- }
- } else {
- if (yych <= 'T') {
- if (yych == '?') goto yy105;
- goto yy98;
- } else {
- if (yych <= 'U') goto yy104;
- if (yych == '\\') goto yy96;
- goto yy98;
- }
- }
- } else {
- if (yych <= 'r') {
- if (yych <= 'f') {
- if (yych <= 'b') goto yy96;
- if (yych <= 'e') goto yy98;
- goto yy96;
- } else {
- if (yych == 'n') goto yy96;
- if (yych <= 'q') goto yy98;
- goto yy96;
- }
- } else {
- if (yych <= 'u') {
- if (yych <= 's') goto yy98;
- if (yych <= 't') goto yy96;
- goto yy103;
- } else {
- if (yych <= 'v') goto yy96;
- if (yych == 'x') goto yy106;
- goto yy98;
- }
- }
- }
-yy101:
+ if (yych == 'U') goto yy114;
+ if (yych == 'u') goto yy113;
+ goto yy99;
+yy111:
     ++YYCURSOR;
-yy102:
-#line 259 "cpp.re"
- { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1295 "cpp_re.inc"
-yy103:
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych != '?') goto yy99;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '/') goto yy110;
+ goto yy99;
+yy113:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy138;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy138;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy138;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy122;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy122;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy122;
+ goto yy99;
     }
-yy104:
+yy114:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy131;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy131;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy131;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy115;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy105:
+yy115:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy116;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy111;
- goto yy100;
-yy106:
+yy116:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 64) {
- goto yy109;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy117;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
- goto yy98;
-yy107:
+yy117:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
- } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '!') goto yy96;
- goto yy101;
- }
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= '>') {
- if (yych <= '/') goto yy96;
- if (yych >= '8') goto yy96;
- } else {
- if (yych <= '?') goto yy99;
- if (yych == '\\') goto yy100;
- goto yy96;
- }
+ if (yych <= 'F') goto yy118;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
+yy118:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy119;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy109:
+yy119:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 64) {
- goto yy109;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy120;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy120:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy121;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy121:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy108;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy108;
+ goto yy99;
+ }
+yy122:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy123;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy123:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy124;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy124:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy108;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy108;
+ goto yy99;
+ }
+yy125:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy126;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy126:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy127;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy127:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy108;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy108;
+ goto yy99;
+ }
+yy128:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy133;
+ goto yy109;
+yy129:
+ ++YYCURSOR;
+#line 274 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1591 "cpp_re.inc"
+yy131:
+ ++YYCURSOR;
+#line 266 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extcharlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1601 "cpp_re.inc"
+yy133:
+ ++YYCURSOR;
+#line 282 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extrawstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1611 "cpp_re.inc"
+yy135:
+ ++YYCURSOR;
+#line 258 "cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extrawstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1621 "cpp_re.inc"
+yy137:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy138:
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych >= '\\') goto yy140;
+yy139:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy152;
+yy140:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= '\'') goto yy137;
+ if (yych <= '/') goto yy99;
+ goto yy147;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy145;
+ goto yy99;
+ } else {
+ if (yych <= 'U') goto yy144;
+ if (yych == '\\') goto yy137;
+ goto yy99;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy137;
+ if (yych <= 'e') goto yy99;
+ goto yy137;
+ } else {
+ if (yych == 'n') goto yy137;
+ if (yych <= 'q') goto yy99;
+ goto yy137;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy99;
+ if (yych <= 't') goto yy137;
+ goto yy143;
+ } else {
+ if (yych <= 'v') goto yy137;
+ if (yych == 'x') goto yy146;
+ goto yy99;
+ }
+ }
+ }
+yy141:
+ ++YYCURSOR;
+yy142:
+#line 255 "cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1695 "cpp_re.inc"
+yy143:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy178;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy178;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy178;
+ goto yy99;
+ }
+yy144:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy171;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy171;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy171;
+ goto yy99;
+ }
+yy145:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy151;
+ goto yy140;
+yy146:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 128) {
+ goto yy149;
+ }
+ goto yy99;
+yy147:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '!') goto yy137;
+ goto yy141;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy137;
+ if (yych >= '8') goto yy137;
+ } else {
+ if (yych <= '?') goto yy139;
+ if (yych == '\\') goto yy140;
+ goto yy137;
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy149:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 128) {
+ goto yy149;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
+ if (yych == '\t') goto yy137;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
         }
     } else {
         if (yych <= '?') {
- if (yych <= '"') goto yy101;
- if (yych <= '>') goto yy96;
- goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '>') goto yy137;
+ goto yy139;
         } else {
- if (yych == '\\') goto yy100;
- goto yy96;
+ if (yych == '\\') goto yy140;
+ goto yy137;
         }
     }
-yy111:
+yy151:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych >= '\\') goto yy100;
-yy112:
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych >= '\\') goto yy140;
+yy152:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 128) {
- goto yy112;
+ if (yybm[0+yych] & 1) {
+ goto yy152;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
+ if (yych == '\t') goto yy137;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
         }
     } else {
         if (yych <= '/') {
- if (yych <= '"') goto yy101;
- if (yych <= '.') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '.') goto yy137;
         } else {
- if (yych == '\\') goto yy100;
- goto yy96;
+ if (yych == '\\') goto yy140;
+ goto yy137;
         }
     }
-yy114:
+yy154:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 1) {
- goto yy114;
+ if (yybm[0+yych] & 2) {
+ goto yy154;
     }
     if (yych <= '7') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy118;
- if (yych <= '/') goto yy96;
- goto yy107;
+ if (yych <= '"') goto yy158;
+ if (yych <= '/') goto yy137;
+ goto yy147;
             }
         }
     } else {
         if (yych <= 'U') {
- if (yych == '?') goto yy119;
- if (yych <= 'T') goto yy96;
- goto yy117;
+ if (yych == '?') goto yy159;
+ if (yych <= 'T') goto yy137;
+ goto yy157;
         } else {
             if (yych <= 'u') {
- if (yych <= 't') goto yy96;
+ if (yych <= 't') goto yy137;
             } else {
- if (yych == 'x') goto yy109;
- goto yy96;
+ if (yych == 'x') goto yy149;
+ goto yy137;
             }
         }
     }
@@ -1475,146 +1875,146 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
- goto yy128;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
+ goto yy168;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
- goto yy128;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
+ goto yy168;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych <= 'f') goto yy128;
- goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych <= 'f') goto yy168;
+ goto yy137;
             }
         }
     }
-yy117:
+yy157:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
- goto yy121;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
+ goto yy161;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
- goto yy121;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
+ goto yy161;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych <= 'f') goto yy121;
- goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych <= 'f') goto yy161;
+ goto yy137;
             }
         }
     }
-yy118:
+yy158:
     yyaccept = 6;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy102;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy119:
+ if (yych <= '!') goto yy142;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy159:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych >= '\\') goto yy100;
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych >= '\\') goto yy140;
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 128) {
- goto yy112;
+ if (yybm[0+yych] & 1) {
+ goto yy152;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
+ if (yych == '\t') goto yy137;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
         }
     } else {
         if (yych <= '/') {
- if (yych <= '"') goto yy101;
- if (yych <= '.') goto yy96;
- goto yy114;
+ if (yych <= '"') goto yy141;
+ if (yych <= '.') goto yy137;
+ goto yy154;
         } else {
- if (yych == '\\') goto yy100;
- goto yy96;
+ if (yych == '\\') goto yy140;
+ goto yy137;
         }
     }
-yy121:
+yy161:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1623,29 +2023,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1654,29 +2054,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1685,29 +2085,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1716,29 +2116,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1747,71 +2147,71 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy128:
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy168:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1820,230 +2220,230 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy131:
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy171:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy132;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy172;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy132:
+yy172:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy133;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy173;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy133:
+yy173:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy134;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy174;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy134:
+yy174:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy135;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy175;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy135:
+yy175:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy136;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy176;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy136:
+yy176:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy137;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy177;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy137:
+yy177:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy96;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy96;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy96;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy137;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy137;
+ goto yy99;
     }
-yy138:
+yy178:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy139;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy179;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy139:
+yy179:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy140;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy180;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy140:
+yy180:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy96;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy96;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy96;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy137;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy137;
+ goto yy99;
     }
-yy141:
+yy181:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy142:
- if (yybm[0+yych] & 2) {
- goto yy141;
+yy182:
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych >= '\\') goto yy144;
-yy143:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych >= '\\') goto yy184;
+yy183:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy156;
-yy144:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy196;
+yy184:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy141;
- goto yy98;
+ if (yych == '"') goto yy181;
+ goto yy99;
             } else {
- if (yych <= '\'') goto yy141;
- if (yych <= '/') goto yy98;
- goto yy149;
+ if (yych <= '\'') goto yy181;
+ if (yych <= '/') goto yy99;
+ goto yy189;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy147;
- goto yy98;
+ if (yych == '?') goto yy187;
+ goto yy99;
             } else {
- if (yych <= 'U') goto yy146;
- if (yych == '\\') goto yy141;
- goto yy98;
+ if (yych <= 'U') goto yy186;
+ if (yych == '\\') goto yy181;
+ goto yy99;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy141;
- if (yych <= 'e') goto yy98;
- goto yy141;
- } else {
- if (yych == 'n') goto yy141;
- if (yych <= 'q') goto yy98;
- goto yy141;
+ if (yych <= 'b') goto yy181;
+ if (yych <= 'e') goto yy99;
+ goto yy181;
+ } else {
+ if (yych == 'n') goto yy181;
+ if (yych <= 'q') goto yy99;
+ goto yy181;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy98;
- if (yych <= 't') goto yy141;
+ if (yych <= 's') goto yy99;
+ if (yych <= 't') goto yy181;
             } else {
- if (yych <= 'v') goto yy141;
- if (yych == 'x') goto yy148;
- goto yy98;
+ if (yych <= 'v') goto yy181;
+ if (yych == 'x') goto yy188;
+ goto yy99;
             }
         }
     }
@@ -2051,202 +2451,202 @@
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy182;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy222;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy182;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy182;
- goto yy98;
+ if (yych <= 'F') goto yy222;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy222;
+ goto yy99;
     }
-yy146:
+yy186:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy175;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy175;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy175;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy215;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy215;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy215;
+ goto yy99;
     }
-yy147:
+yy187:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy155;
- goto yy144;
-yy148:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy195;
+ goto yy184;
+yy188:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy153;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy193;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy153;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy153;
- goto yy98;
+ if (yych <= 'F') goto yy193;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy193;
+ goto yy99;
     }
-yy149:
+yy189:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\'') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy141;
- goto yy98;
+ if (yych == '\t') goto yy181;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy141;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '&') goto yy141;
- goto yy151;
+ if (yych <= '\f') goto yy181;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '&') goto yy181;
+ goto yy191;
         }
     } else {
         if (yych <= '>') {
- if (yych <= '/') goto yy141;
- if (yych >= '8') goto yy141;
+ if (yych <= '/') goto yy181;
+ if (yych >= '8') goto yy181;
         } else {
- if (yych <= '?') goto yy143;
- if (yych == '\\') goto yy144;
- goto yy141;
+ if (yych <= '?') goto yy183;
+ if (yych == '\\') goto yy184;
+ goto yy181;
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy151:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy191:
     ++YYCURSOR;
-yy152:
-#line 256 "cpp.re"
+yy192:
+#line 252 "cpp.re"
     { BOOST_WAVE_RET(T_CHARLIT); }
-#line 2142 "cpp_re.inc"
-yy153:
+#line 2542 "cpp_re.inc"
+yy193:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
- goto yy153;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
+ goto yy193;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
- goto yy153;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
+ goto yy193;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych <= 'f') goto yy153;
- goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych <= 'f') goto yy193;
+ goto yy181;
             }
         }
     }
-yy155:
+yy195:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych >= '\\') goto yy144;
-yy156:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych >= '\\') goto yy184;
+yy196:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\'') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy141;
- goto yy98;
+ if (yych == '\t') goto yy181;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy141;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '&') goto yy141;
- goto yy151;
+ if (yych <= '\f') goto yy181;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '&') goto yy181;
+ goto yy191;
         }
     } else {
         if (yych <= '>') {
- if (yych != '/') goto yy141;
+ if (yych != '/') goto yy181;
         } else {
- if (yych <= '?') goto yy156;
- if (yych == '\\') goto yy144;
- goto yy141;
+ if (yych <= '?') goto yy196;
+ if (yych == '\\') goto yy184;
+ goto yy181;
         }
     }
-yy158:
+yy198:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '>') {
         if (yych <= 0x1F) {
             if (yych <= '\t') {
- if (yych <= 0x08) goto yy98;
- goto yy141;
+ if (yych <= 0x08) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\n') goto yy98;
- if (yych <= '\f') goto yy141;
- goto yy98;
+ if (yych <= '\n') goto yy99;
+ if (yych <= '\f') goto yy181;
+ goto yy99;
             }
         } else {
             if (yych <= '\'') {
- if (yych <= '&') goto yy141;
- goto yy162;
+ if (yych <= '&') goto yy181;
+ goto yy202;
             } else {
- if (yych <= '/') goto yy141;
- if (yych <= '7') goto yy149;
- goto yy141;
+ if (yych <= '/') goto yy181;
+ if (yych <= '7') goto yy189;
+ goto yy181;
             }
         }
     } else {
         if (yych <= '\\') {
             if (yych <= 'T') {
- if (yych <= '?') goto yy163;
- goto yy141;
+ if (yych <= '?') goto yy203;
+ goto yy181;
             } else {
- if (yych <= 'U') goto yy161;
- if (yych <= '[') goto yy141;
- goto yy158;
+ if (yych <= 'U') goto yy201;
+ if (yych <= '[') goto yy181;
+ goto yy198;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 't') goto yy141;
+ if (yych <= 't') goto yy181;
             } else {
- if (yych == 'x') goto yy153;
- goto yy141;
+ if (yych == 'x') goto yy193;
+ goto yy181;
             }
         }
     }
@@ -2255,144 +2655,144 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
- goto yy172;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
+ goto yy212;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
- goto yy172;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
+ goto yy212;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych <= 'f') goto yy172;
- goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych <= 'f') goto yy212;
+ goto yy181;
             }
         }
     }
-yy161:
+yy201:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
- goto yy165;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
+ goto yy205;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
- goto yy165;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
+ goto yy205;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych <= 'f') goto yy165;
- goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych <= 'f') goto yy205;
+ goto yy181;
             }
         }
     }
-yy162:
+yy202:
     yyaccept = 7;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy152;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy163:
+ if (yych <= '&') goto yy192;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy203:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych >= '\\') goto yy144;
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych >= '\\') goto yy184;
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\'') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy141;
- goto yy98;
+ if (yych == '\t') goto yy181;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy141;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '&') goto yy141;
- goto yy151;
+ if (yych <= '\f') goto yy181;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '&') goto yy181;
+ goto yy191;
         }
     } else {
         if (yych <= '>') {
- if (yych == '/') goto yy158;
- goto yy141;
+ if (yych == '/') goto yy198;
+ goto yy181;
         } else {
- if (yych <= '?') goto yy156;
- if (yych == '\\') goto yy144;
- goto yy141;
+ if (yych <= '?') goto yy196;
+ if (yych == '\\') goto yy184;
+ goto yy181;
         }
     }
-yy165:
+yy205:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2401,29 +2801,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2432,29 +2832,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2463,29 +2863,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2494,29 +2894,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2525,71 +2925,71 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy172:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy212:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2598,601 +2998,304 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
- }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy175:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy176;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy176:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy177;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy177:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy178;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy178:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy179;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy179:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy180;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy180:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy181;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy181:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy141;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy141;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy141;
- goto yy98;
- }
-yy182:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy183;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy183:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy184;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy184:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy141;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy141;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy141;
- goto yy98;
- }
-yy185:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy211;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy211;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy211;
- goto yy98;
- }
-yy186:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy187;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy187:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy188;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy188:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy189;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy189:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy190;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy190:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy191;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy191:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy192;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy192:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy193;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy193:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy194:
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy195:
     if (yybm[0+yych] & 4) {
- goto yy194;
- }
- if (yych == '?') goto yy197;
- if (yych != '\\') goto yy9;
-yy196:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych == 'U') goto yy200;
- if (yych == 'u') goto yy199;
- goto yy98;
-yy197:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych != '?') goto yy98;
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych == '/') goto yy196;
- goto yy98;
-yy199:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy208;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy208;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy208;
- goto yy98;
- }
-yy200:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy201;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ goto yy181;
     }
-yy201:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy215:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy202;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy216;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy202:
+yy216:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy203;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy217;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy203:
+yy217:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy204;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy218;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy204:
+yy218:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy205;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy219;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy205:
+yy219:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy206;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy220;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy206:
+yy220:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy207;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy221;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy207:
+yy221:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy194;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy181;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy194;
- goto yy98;
+ if (yych <= 'F') goto yy181;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy181;
+ goto yy99;
     }
-yy208:
+yy222:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy209;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy223;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy209:
+yy223:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy210;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy224;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy210:
+yy224:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy194;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy194;
- goto yy98;
- }
-yy211:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy212;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy212:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy213;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy213:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy194;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy181;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy194;
- goto yy98;
+ if (yych <= 'F') goto yy181;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy181;
+ goto yy99;
     }
-yy214:
+yy225:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy135;
+ goto yy109;
+yy226:
     yych = *++YYCURSOR;
- if (yych == '\'') goto yy98;
- goto yy142;
-yy215:
+ if (yych == '\'') goto yy99;
+ goto yy182;
+yy227:
     ++YYCURSOR;
 #line 227 "cpp.re"
     { BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 3072 "cpp_re.inc"
-yy217:
+#line 3175 "cpp_re.inc"
+yy229:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy219;
+ if ((yych = *YYCURSOR) == '=') goto yy231;
 #line 220 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 3078 "cpp_re.inc"
-yy219:
+#line 3181 "cpp_re.inc"
+yy231:
     ++YYCURSOR;
 #line 221 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
-#line 3083 "cpp_re.inc"
-yy221:
+#line 3186 "cpp_re.inc"
+yy233:
     ++YYCURSOR;
 #line 223 "cpp.re"
     { BOOST_WAVE_RET(T_EQUAL); }
-#line 3088 "cpp_re.inc"
-yy223:
+#line 3191 "cpp_re.inc"
+yy235:
     ++YYCURSOR;
 #line 224 "cpp.re"
     { BOOST_WAVE_RET(T_NOTEQUAL); }
-#line 3093 "cpp_re.inc"
-yy225:
+#line 3196 "cpp_re.inc"
+yy237:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy230;
- goto yy98;
-yy226:
+ if (yych == '?') goto yy242;
+ goto yy99;
+yy238:
     ++YYCURSOR;
 #line 230 "cpp.re"
     { BOOST_WAVE_RET(T_OROR); }
-#line 3102 "cpp_re.inc"
-yy228:
+#line 3205 "cpp_re.inc"
+yy240:
     ++YYCURSOR;
 #line 216 "cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN); }
-#line 3107 "cpp_re.inc"
-yy230:
+#line 3210 "cpp_re.inc"
+yy242:
     yych = *++YYCURSOR;
- if (yych != '!') goto yy98;
+ if (yych != '!') goto yy99;
     ++YYCURSOR;
 #line 232 "cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3114 "cpp_re.inc"
-yy233:
+#line 3217 "cpp_re.inc"
+yy245:
     ++YYCURSOR;
 #line 228 "cpp.re"
     { BOOST_WAVE_RET(T_ANDAND); }
-#line 3119 "cpp_re.inc"
-yy235:
+#line 3222 "cpp_re.inc"
+yy247:
     ++YYCURSOR;
 #line 214 "cpp.re"
     { BOOST_WAVE_RET(T_ANDASSIGN); }
-#line 3124 "cpp_re.inc"
-yy237:
+#line 3227 "cpp_re.inc"
+yy249:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 8;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '@') {
         if (yych <= '/') {
- if (yych == '$') goto yy194;
+ if (yych == '$') goto yy108;
         } else {
- if (yych <= '9') goto yy194;
- if (yych == '?') goto yy197;
+ if (yych <= '9') goto yy108;
+ if (yych == '?') goto yy111;
         }
     } else {
         if (yych <= '^') {
- if (yych <= 'Z') goto yy194;
- if (yych == '\\') goto yy196;
+ if (yych <= 'Z') goto yy108;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy240;
- if (yych <= '`') goto yy239;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy252;
+ if (yych <= '`') goto yy251;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy239:
+yy251:
 #line 192 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
-#line 3151 "cpp_re.inc"
-yy240:
+#line 3254 "cpp_re.inc"
+yy252:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 9;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy243:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy255:
 #line 212 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
-#line 3169 "cpp_re.inc"
-yy244:
+#line 3272 "cpp_re.inc"
+yy256:
     ++YYCURSOR;
 #line 211 "cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN); }
-#line 3174 "cpp_re.inc"
-yy246:
+#line 3277 "cpp_re.inc"
+yy258:
     ++YYCURSOR;
 #line 208 "cpp.re"
     { BOOST_WAVE_RET(T_STARASSIGN); }
-#line 3179 "cpp_re.inc"
-yy248:
+#line 3282 "cpp_re.inc"
+yy260:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '*') goto yy254;
+ if ((yych = *YYCURSOR) == '*') goto yy266;
 #line 248 "cpp.re"
     { BOOST_WAVE_RET(T_ARROW); }
-#line 3185 "cpp_re.inc"
-yy250:
+#line 3288 "cpp_re.inc"
+yy262:
     ++YYCURSOR;
 #line 236 "cpp.re"
     { BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 3190 "cpp_re.inc"
-yy252:
+#line 3293 "cpp_re.inc"
+yy264:
     ++YYCURSOR;
 #line 207 "cpp.re"
     { BOOST_WAVE_RET(T_MINUSASSIGN); }
-#line 3195 "cpp_re.inc"
-yy254:
+#line 3298 "cpp_re.inc"
+yy266:
     ++YYCURSOR;
 #line 239 "cpp.re"
     {
@@ -3204,487 +3307,487 @@
                 BOOST_WAVE_RET(T_ARROWSTAR);
             }
         }
-#line 3208 "cpp_re.inc"
-yy256:
+#line 3311 "cpp_re.inc"
+yy268:
     ++YYCURSOR;
 #line 235 "cpp.re"
     { BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 3213 "cpp_re.inc"
-yy258:
+#line 3316 "cpp_re.inc"
+yy270:
     ++YYCURSOR;
 #line 206 "cpp.re"
     { BOOST_WAVE_RET(T_PLUSASSIGN); }
-#line 3218 "cpp_re.inc"
-yy260:
+#line 3321 "cpp_re.inc"
+yy272:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
     yych = *YYCURSOR;
-yy261:
+yy273:
     if (yych <= 'h') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy260;
- goto yy98;
+ if (yych == '\t') goto yy272;
+ goto yy99;
             } else {
- if (yych <= '\f') goto yy260;
- if (yych <= 0x1F) goto yy98;
- goto yy260;
+ if (yych <= '\f') goto yy272;
+ if (yych <= 0x1F) goto yy99;
+ goto yy272;
             }
         } else {
             if (yych <= 'c') {
- if (yych != '/') goto yy98;
+ if (yych != '/') goto yy99;
             } else {
- if (yych <= 'd') goto yy269;
- if (yych <= 'e') goto yy263;
- goto yy98;
+ if (yych <= 'd') goto yy281;
+ if (yych <= 'e') goto yy275;
+ goto yy99;
             }
         }
     } else {
         if (yych <= 'q') {
             if (yych <= 'l') {
- if (yych <= 'i') goto yy270;
- if (yych <= 'k') goto yy98;
- goto yy267;
+ if (yych <= 'i') goto yy282;
+ if (yych <= 'k') goto yy99;
+ goto yy279;
             } else {
- if (yych == 'p') goto yy266;
- goto yy98;
+ if (yych == 'p') goto yy278;
+ goto yy99;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 'r') goto yy264;
- if (yych <= 't') goto yy98;
- goto yy268;
+ if (yych <= 'r') goto yy276;
+ if (yych <= 't') goto yy99;
+ goto yy280;
             } else {
- if (yych == 'w') goto yy265;
- goto yy98;
+ if (yych == 'w') goto yy277;
+ goto yy99;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych == '*') goto yy377;
- goto yy98;
-yy263:
+ if (yych == '*') goto yy389;
+ goto yy99;
+yy275:
     yych = *++YYCURSOR;
     if (yych <= 'm') {
- if (yych == 'l') goto yy353;
- goto yy98;
+ if (yych == 'l') goto yy365;
+ goto yy99;
     } else {
- if (yych <= 'n') goto yy354;
- if (yych == 'r') goto yy355;
- goto yy98;
+ if (yych <= 'n') goto yy366;
+ if (yych == 'r') goto yy367;
+ goto yy99;
     }
-yy264:
- yych = *++YYCURSOR;
- if (yych == 'e') goto yy347;
- goto yy98;
-yy265:
- yych = *++YYCURSOR;
- if (yych == 'a') goto yy340;
- goto yy98;
-yy266:
+yy276:
     yych = *++YYCURSOR;
- if (yych == 'r') goto yy334;
- goto yy98;
-yy267:
+ if (yych == 'e') goto yy359;
+ goto yy99;
+yy277:
     yych = *++YYCURSOR;
- if (yych == 'i') goto yy330;
- goto yy98;
-yy268:
+ if (yych == 'a') goto yy352;
+ goto yy99;
+yy278:
     yych = *++YYCURSOR;
- if (yych == 'n') goto yy325;
- goto yy98;
-yy269:
+ if (yych == 'r') goto yy346;
+ goto yy99;
+yy279:
     yych = *++YYCURSOR;
- if (yych == 'e') goto yy319;
- goto yy98;
-yy270:
+ if (yych == 'i') goto yy342;
+ goto yy99;
+yy280:
     yych = *++YYCURSOR;
- if (yych == 'f') goto yy278;
- if (yych == 'n') goto yy277;
- goto yy98;
-yy271:
+ if (yych == 'n') goto yy337;
+ goto yy99;
+yy281:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy274;
- goto yy98;
-yy272:
+ if (yych == 'e') goto yy331;
+ goto yy99;
+yy282:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy290;
+ if (yych == 'n') goto yy289;
+ goto yy99;
+yy283:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy286;
+ goto yy99;
+yy284:
     ++YYCURSOR;
 #line 153 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND); }
-#line 3316 "cpp_re.inc"
-yy274:
+#line 3419 "cpp_re.inc"
+yy286:
     yych = *++YYCURSOR;
- if (yych != '=') goto yy98;
+ if (yych != '=') goto yy99;
     ++YYCURSOR;
 #line 154 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3323 "cpp_re.inc"
-yy277:
+#line 3426 "cpp_re.inc"
+yy289:
     yych = *++YYCURSOR;
- if (yych == 'c') goto yy289;
- goto yy98;
-yy278:
+ if (yych == 'c') goto yy301;
+ goto yy99;
+yy290:
     yyaccept = 10;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy281;
- if (yych == 'n') goto yy280;
-yy279:
-#line 271 "cpp.re"
+ if (yych == 'd') goto yy293;
+ if (yych == 'n') goto yy292;
+yy291:
+#line 301 "cpp.re"
     { BOOST_WAVE_RET(T_PP_IF); }
-#line 3336 "cpp_re.inc"
-yy280:
+#line 3439 "cpp_re.inc"
+yy292:
     yych = *++YYCURSOR;
- if (yych == 'd') goto yy285;
- goto yy98;
-yy281:
+ if (yych == 'd') goto yy297;
+ goto yy99;
+yy293:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 272 "cpp.re"
+#line 302 "cpp.re"
     { BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 3349 "cpp_re.inc"
-yy285:
+#line 3452 "cpp_re.inc"
+yy297:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 273 "cpp.re"
+#line 303 "cpp.re"
     { BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 3358 "cpp_re.inc"
-yy289:
+#line 3461 "cpp_re.inc"
+yy301:
     yych = *++YYCURSOR;
- if (yych != 'l') goto yy98;
+ if (yych != 'l') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'u') goto yy98;
+ if (yych != 'u') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'd') goto yy98;
+ if (yych != 'd') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yyaccept = 11;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '_') goto yy295;
- goto yy297;
-yy294:
-#line 269 "cpp.re"
+ if (yych == '_') goto yy307;
+ goto yy309;
+yy306:
+#line 299 "cpp.re"
     { BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 3375 "cpp_re.inc"
-yy295:
+#line 3478 "cpp_re.inc"
+yy307:
     yych = *++YYCURSOR;
- if (yych == 'n') goto yy316;
- goto yy98;
-yy296:
+ if (yych == 'n') goto yy328;
+ goto yy99;
+yy308:
     yyaccept = 11;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-yy297:
+yy309:
     if (yych <= ' ') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy296;
- goto yy294;
+ if (yych == '\t') goto yy308;
+ goto yy306;
         } else {
- if (yych <= '\f') goto yy296;
- if (yych <= 0x1F) goto yy294;
- goto yy296;
+ if (yych <= '\f') goto yy308;
+ if (yych <= 0x1F) goto yy306;
+ goto yy308;
         }
     } else {
         if (yych <= '.') {
- if (yych == '"') goto yy300;
- goto yy294;
+ if (yych == '"') goto yy312;
+ goto yy306;
         } else {
- if (yych <= '/') goto yy298;
- if (yych == '<') goto yy299;
- goto yy294;
+ if (yych <= '/') goto yy310;
+ if (yych == '<') goto yy311;
+ goto yy306;
         }
     }
-yy298:
+yy310:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych == '*') goto yy309;
- goto yy98;
-yy299:
+ if (yych == '*') goto yy321;
+ goto yy99;
+yy311:
     yych = *++YYCURSOR;
- if (yych == '>') goto yy98;
- goto yy306;
-yy300:
+ if (yych == '>') goto yy99;
+ goto yy318;
+yy312:
     yych = *++YYCURSOR;
- if (yych == '"') goto yy98;
- goto yy302;
-yy301:
+ if (yych == '"') goto yy99;
+ goto yy314;
+yy313:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy302:
+yy314:
     if (yybm[0+yych] & 8) {
- goto yy301;
+ goto yy313;
     }
- if (yych <= '!') goto yy98;
+ if (yych <= '!') goto yy99;
     ++YYCURSOR;
-#line 266 "cpp.re"
+#line 296 "cpp.re"
     { BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 3431 "cpp_re.inc"
-yy305:
+#line 3534 "cpp_re.inc"
+yy317:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy306:
+yy318:
     if (yybm[0+yych] & 16) {
- goto yy305;
+ goto yy317;
     }
- if (yych <= '=') goto yy98;
+ if (yych <= '=') goto yy99;
     ++YYCURSOR;
-#line 263 "cpp.re"
+#line 293 "cpp.re"
     { BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 3444 "cpp_re.inc"
-yy309:
+#line 3547 "cpp_re.inc"
+yy321:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy309;
+ goto yy321;
     }
- if (yych == '\r') goto yy311;
- if (yych <= ')') goto yy98;
- goto yy313;
-yy311:
+ if (yych == '\r') goto yy323;
+ if (yych <= ')') goto yy99;
+ goto yy325;
+yy323:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy309;
+ goto yy321;
     }
- if (yych == '\r') goto yy311;
- if (yych <= ')') goto yy98;
-yy313:
+ if (yych == '\r') goto yy323;
+ if (yych <= ')') goto yy99;
+yy325:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy313;
+ goto yy325;
     }
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy309;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy321;
     } else {
- if (yych <= 0x1F) goto yy98;
- if (yych == '/') goto yy296;
- goto yy309;
+ if (yych <= 0x1F) goto yy99;
+ if (yych == '/') goto yy308;
+ goto yy321;
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy309;
+ goto yy321;
     }
- if (yych == '\r') goto yy311;
- if (yych <= ')') goto yy98;
- goto yy313;
-yy316:
+ if (yych == '\r') goto yy323;
+ if (yych <= ')') goto yy99;
+ goto yy325;
+yy328:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'x') goto yy98;
+ if (yych != 'x') goto yy99;
     yych = *++YYCURSOR;
- if (yych == 't') goto yy296;
- goto yy98;
-yy319:
+ if (yych == 't') goto yy308;
+ goto yy99;
+yy331:
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 277 "cpp.re"
+#line 307 "cpp.re"
     { BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 3508 "cpp_re.inc"
-yy325:
+#line 3611 "cpp_re.inc"
+yy337:
     yych = *++YYCURSOR;
- if (yych != 'd') goto yy98;
+ if (yych != 'd') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 278 "cpp.re"
+#line 308 "cpp.re"
     { BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 3519 "cpp_re.inc"
-yy330:
+#line 3622 "cpp_re.inc"
+yy342:
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 279 "cpp.re"
+#line 309 "cpp.re"
     { BOOST_WAVE_RET(T_PP_LINE); }
-#line 3528 "cpp_re.inc"
-yy334:
+#line 3631 "cpp_re.inc"
+yy346:
     yych = *++YYCURSOR;
- if (yych != 'a') goto yy98;
+ if (yych != 'a') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'm') goto yy98;
+ if (yych != 'm') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'a') goto yy98;
+ if (yych != 'a') goto yy99;
     ++YYCURSOR;
-#line 281 "cpp.re"
+#line 311 "cpp.re"
     { BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 3541 "cpp_re.inc"
-yy340:
+#line 3644 "cpp_re.inc"
+yy352:
     yych = *++YYCURSOR;
- if (yych != 'r') goto yy98;
+ if (yych != 'r') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     ++YYCURSOR;
-#line 283 "cpp.re"
+#line 313 "cpp.re"
     { BOOST_WAVE_RET(T_PP_WARNING); }
-#line 3556 "cpp_re.inc"
-yy347:
+#line 3659 "cpp_re.inc"
+yy359:
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'o') goto yy98;
+ if (yych != 'o') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     ++YYCURSOR;
-#line 285 "cpp.re"
+#line 315 "cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
-#line 3569 "cpp_re.inc"
-yy353:
+#line 3672 "cpp_re.inc"
+yy365:
     yych = *++YYCURSOR;
- if (yych == 'i') goto yy371;
- if (yych == 's') goto yy372;
- goto yy98;
-yy354:
+ if (yych == 'i') goto yy383;
+ if (yych == 's') goto yy384;
+ goto yy99;
+yy366:
     yych = *++YYCURSOR;
- if (yych == 'd') goto yy360;
- goto yy98;
-yy355:
+ if (yych == 'd') goto yy372;
+ goto yy99;
+yy367:
     yych = *++YYCURSOR;
- if (yych != 'r') goto yy98;
+ if (yych != 'r') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'o') goto yy98;
+ if (yych != 'o') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'r') goto yy98;
+ if (yych != 'r') goto yy99;
     ++YYCURSOR;
-#line 280 "cpp.re"
+#line 310 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ERROR); }
-#line 3589 "cpp_re.inc"
-yy360:
+#line 3692 "cpp_re.inc"
+yy372:
     yych = *++YYCURSOR;
- if (yych == 'i') goto yy361;
- if (yych == 'r') goto yy362;
- goto yy98;
-yy361:
+ if (yych == 'i') goto yy373;
+ if (yych == 'r') goto yy374;
+ goto yy99;
+yy373:
     yych = *++YYCURSOR;
- if (yych == 'f') goto yy369;
- goto yy98;
-yy362:
+ if (yych == 'f') goto yy381;
+ goto yy99;
+yy374:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'o') goto yy98;
+ if (yych != 'o') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     ++YYCURSOR;
-#line 286 "cpp.re"
+#line 316 "cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
-#line 3613 "cpp_re.inc"
-yy369:
+#line 3716 "cpp_re.inc"
+yy381:
     ++YYCURSOR;
-#line 276 "cpp.re"
+#line 306 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 3618 "cpp_re.inc"
-yy371:
+#line 3721 "cpp_re.inc"
+yy383:
     yych = *++YYCURSOR;
- if (yych == 'f') goto yy375;
- goto yy98;
-yy372:
+ if (yych == 'f') goto yy387;
+ goto yy99;
+yy384:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 274 "cpp.re"
+#line 304 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3629 "cpp_re.inc"
-yy375:
+#line 3732 "cpp_re.inc"
+yy387:
     ++YYCURSOR;
-#line 275 "cpp.re"
+#line 305 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3634 "cpp_re.inc"
-yy377:
+#line 3737 "cpp_re.inc"
+yy389:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
     } else {
- if (yych <= 0x1F) goto yy98;
- if (yych == '*') goto yy381;
- goto yy377;
+ if (yych <= 0x1F) goto yy99;
+ if (yych == '*') goto yy393;
+ goto yy389;
     }
-yy379:
+yy391:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
- goto yy379;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
+ goto yy391;
     } else {
- if (yych <= 0x1F) goto yy98;
- if (yych != '*') goto yy377;
+ if (yych <= 0x1F) goto yy99;
+ if (yych != '*') goto yy389;
     }
-yy381:
+yy393:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
- if (yych >= 0x0E) goto yy98;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
+ if (yych >= 0x0E) goto yy99;
     } else {
         if (yych <= '*') {
- if (yych <= ')') goto yy377;
- goto yy381;
+ if (yych <= ')') goto yy389;
+ goto yy393;
         } else {
- if (yych == '/') goto yy260;
- goto yy377;
+ if (yych == '/') goto yy272;
+ goto yy389;
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
- goto yy379;
- } else {
- if (yych <= 0x1F) goto yy98;
- if (yych == '*') goto yy381;
- goto yy377;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
+ goto yy391;
+ } else {
+ if (yych <= 0x1F) goto yy99;
+ if (yych == '*') goto yy393;
+ goto yy389;
     }
-yy384:
+yy396:
     ++YYCURSOR;
 #line 165 "cpp.re"
     {
@@ -3696,2750 +3799,2756 @@
                 BOOST_WAVE_RET(T_COLON_COLON);
             }
         }
-#line 3700 "cpp_re.inc"
-yy386:
+#line 3803 "cpp_re.inc"
+yy398:
     ++YYCURSOR;
 #line 149 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
-#line 3705 "cpp_re.inc"
-yy388:
+#line 3808 "cpp_re.inc"
+yy400:
     yyaccept = 12;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy261;
+ if (yych == '\t') goto yy273;
             } else {
- if (yych <= '\f') goto yy261;
- if (yych >= ' ') goto yy261;
+ if (yych <= '\f') goto yy273;
+ if (yych >= ' ') goto yy273;
             }
         } else {
             if (yych <= '.') {
- if (yych == '%') goto yy394;
+ if (yych == '%') goto yy406;
             } else {
- if (yych <= '/') goto yy261;
- if (yych >= 'd') goto yy261;
+ if (yych <= '/') goto yy273;
+ if (yych >= 'd') goto yy273;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'k') {
- if (yych == 'i') goto yy261;
+ if (yych == 'i') goto yy273;
             } else {
- if (yych <= 'l') goto yy261;
- if (yych >= 'p') goto yy261;
+ if (yych <= 'l') goto yy273;
+ if (yych >= 'p') goto yy273;
             }
         } else {
             if (yych <= 't') {
- if (yych == 'r') goto yy261;
+ if (yych == 'r') goto yy273;
             } else {
- if (yych == 'v') goto yy389;
- if (yych <= 'w') goto yy261;
+ if (yych == 'v') goto yy401;
+ if (yych <= 'w') goto yy273;
             }
         }
     }
-yy389:
+yy401:
 #line 151 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_ALT); }
-#line 3745 "cpp_re.inc"
-yy390:
+#line 3848 "cpp_re.inc"
+yy402:
     ++YYCURSOR;
 #line 210 "cpp.re"
     { BOOST_WAVE_RET(T_PERCENTASSIGN); }
-#line 3750 "cpp_re.inc"
-yy392:
+#line 3853 "cpp_re.inc"
+yy404:
     ++YYCURSOR;
 #line 143 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
-#line 3755 "cpp_re.inc"
-yy394:
+#line 3858 "cpp_re.inc"
+yy406:
     yych = *++YYCURSOR;
- if (yych != ':') goto yy98;
+ if (yych != ':') goto yy99;
     ++YYCURSOR;
 #line 157 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
-#line 3762 "cpp_re.inc"
-yy397:
+#line 3865 "cpp_re.inc"
+yy409:
     ++YYCURSOR;
 #line 226 "cpp.re"
     { BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 3767 "cpp_re.inc"
-yy399:
+#line 3870 "cpp_re.inc"
+yy411:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy405;
+ if ((yych = *YYCURSOR) == '=') goto yy417;
 #line 219 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 3773 "cpp_re.inc"
-yy401:
+#line 3876 "cpp_re.inc"
+yy413:
     ++YYCURSOR;
 #line 146 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
-#line 3778 "cpp_re.inc"
-yy403:
+#line 3881 "cpp_re.inc"
+yy415:
     ++YYCURSOR;
 #line 140 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
-#line 3783 "cpp_re.inc"
-yy405:
+#line 3886 "cpp_re.inc"
+yy417:
     ++YYCURSOR;
 #line 222 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
-#line 3788 "cpp_re.inc"
-yy407:
+#line 3891 "cpp_re.inc"
+yy419:
     yych = *++YYCURSOR;
     switch (yych) {
- case '!': goto yy420;
- case '\'': goto yy418;
- case '(': goto yy412;
- case ')': goto yy414;
- case '-': goto yy422;
- case '/': goto yy424;
- case '<': goto yy408;
- case '=': goto yy416;
- case '>': goto yy410;
- default: goto yy98;
+ case '!': goto yy432;
+ case '\'': goto yy430;
+ case '(': goto yy424;
+ case ')': goto yy426;
+ case '-': goto yy434;
+ case '/': goto yy436;
+ case '<': goto yy420;
+ case '=': goto yy428;
+ case '>': goto yy422;
+ default: goto yy99;
     }
-yy408:
+yy420:
     ++YYCURSOR;
 #line 139 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
-#line 3807 "cpp_re.inc"
-yy410:
+#line 3910 "cpp_re.inc"
+yy422:
     ++YYCURSOR;
 #line 142 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
-#line 3812 "cpp_re.inc"
-yy412:
+#line 3915 "cpp_re.inc"
+yy424:
     ++YYCURSOR;
 #line 145 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
-#line 3817 "cpp_re.inc"
-yy414:
+#line 3920 "cpp_re.inc"
+yy426:
     ++YYCURSOR;
 #line 148 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
-#line 3822 "cpp_re.inc"
-yy416:
+#line 3925 "cpp_re.inc"
+yy428:
     yyaccept = 13;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'c') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy261;
+ if (yych == '\t') goto yy273;
             } else {
- if (yych <= '\f') goto yy261;
- if (yych >= ' ') goto yy261;
+ if (yych <= '\f') goto yy273;
+ if (yych >= ' ') goto yy273;
             }
         } else {
             if (yych <= '.') {
- if (yych == '#') goto yy437;
+ if (yych == '#') goto yy449;
             } else {
- if (yych <= '/') goto yy261;
- if (yych == '?') goto yy436;
+ if (yych <= '/') goto yy273;
+ if (yych == '?') goto yy448;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'i') {
- if (yych <= 'e') goto yy261;
- if (yych >= 'i') goto yy261;
+ if (yych <= 'e') goto yy273;
+ if (yych >= 'i') goto yy273;
             } else {
- if (yych == 'l') goto yy261;
- if (yych >= 'p') goto yy261;
+ if (yych == 'l') goto yy273;
+ if (yych >= 'p') goto yy273;
             }
         } else {
             if (yych <= 't') {
- if (yych == 'r') goto yy261;
+ if (yych == 'r') goto yy273;
             } else {
- if (yych == 'v') goto yy417;
- if (yych <= 'w') goto yy261;
+ if (yych == 'v') goto yy429;
+ if (yych <= 'w') goto yy273;
             }
         }
     }
-yy417:
+yy429:
 #line 152 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
-#line 3863 "cpp_re.inc"
-yy418:
+#line 3966 "cpp_re.inc"
+yy430:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy434;
+ if ((yych = *YYCURSOR) == '=') goto yy446;
 #line 191 "cpp.re"
     { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
-#line 3869 "cpp_re.inc"
-yy420:
+#line 3972 "cpp_re.inc"
+yy432:
     yyaccept = 14;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '>') {
- if (yych == '=') goto yy429;
+ if (yych == '=') goto yy441;
     } else {
- if (yych <= '?') goto yy426;
- if (yych == '|') goto yy427;
+ if (yych <= '?') goto yy438;
+ if (yych == '|') goto yy439;
     }
-yy421:
+yy433:
 #line 197 "cpp.re"
     { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
-#line 3882 "cpp_re.inc"
-yy422:
+#line 3985 "cpp_re.inc"
+yy434:
     ++YYCURSOR;
 #line 199 "cpp.re"
     { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
-#line 3887 "cpp_re.inc"
-yy424:
+#line 3990 "cpp_re.inc"
+yy436:
     yyaccept = 15;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'U') goto yy186;
- if (yych == 'u') goto yy185;
-yy425:
+ if (yych == 'U') goto yy100;
+ if (yych == 'u') goto yy98;
+yy437:
 #line 249 "cpp.re"
     { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
-#line 3896 "cpp_re.inc"
-yy426:
+#line 3999 "cpp_re.inc"
+yy438:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy431;
- goto yy98;
-yy427:
+ if (yych == '?') goto yy443;
+ goto yy99;
+yy439:
     ++YYCURSOR;
 #line 231 "cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3905 "cpp_re.inc"
-yy429:
+#line 4008 "cpp_re.inc"
+yy441:
     ++YYCURSOR;
 #line 218 "cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
-#line 3910 "cpp_re.inc"
-yy431:
+#line 4013 "cpp_re.inc"
+yy443:
     yych = *++YYCURSOR;
- if (yych != '!') goto yy98;
+ if (yych != '!') goto yy99;
     ++YYCURSOR;
 #line 234 "cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3917 "cpp_re.inc"
-yy434:
+#line 4020 "cpp_re.inc"
+yy446:
     ++YYCURSOR;
 #line 213 "cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
-#line 3922 "cpp_re.inc"
-yy436:
+#line 4025 "cpp_re.inc"
+yy448:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy439;
- goto yy98;
-yy437:
+ if (yych == '?') goto yy451;
+ goto yy99;
+yy449:
     ++YYCURSOR;
 #line 155 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3931 "cpp_re.inc"
-yy439:
+#line 4034 "cpp_re.inc"
+yy451:
     yych = *++YYCURSOR;
- if (yych != '=') goto yy98;
+ if (yych != '=') goto yy99;
     ++YYCURSOR;
 #line 156 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3938 "cpp_re.inc"
-yy442:
+#line 4041 "cpp_re.inc"
+yy454:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'e': goto yy495;
- case 'f': goto yy493;
- case 'i': goto yy492;
- case 'l': goto yy496;
- case 's': goto yy449;
- case 't': goto yy494;
- default: goto yy195;
+ case 'a': goto yy455;
+ case 'b': goto yy456;
+ case 'c': goto yy457;
+ case 'd': goto yy458;
+ case 'e': goto yy507;
+ case 'f': goto yy505;
+ case 'i': goto yy504;
+ case 'l': goto yy508;
+ case 's': goto yy461;
+ case 't': goto yy506;
+ default: goto yy109;
     }
-yy443:
+yy455:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy489;
- goto yy195;
-yy444:
+ if (yych == 's') goto yy501;
+ goto yy109;
+yy456:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy484;
- goto yy195;
-yy445:
+ if (yych == 'a') goto yy496;
+ goto yy109;
+yy457:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy479;
- goto yy195;
-yy446:
+ if (yych == 'd') goto yy491;
+ goto yy109;
+yy458:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy471;
- goto yy195;
-yy447:
+ if (yych == 'e') goto yy483;
+ goto yy109;
+yy459:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy463;
- goto yy195;
-yy448:
+ if (yych == 'a') goto yy475;
+ goto yy109;
+yy460:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy457;
- goto yy195;
-yy449:
+ if (yych == 'n') goto yy469;
+ goto yy109;
+yy461:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 16;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy456:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy468:
 #line 130 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
-#line 4014 "cpp_re.inc"
-yy457:
+#line 4117 "cpp_re.inc"
+yy469:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
-yy458:
+ if (yych != 'l') goto yy109;
+yy470:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 17;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy462:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy474:
 #line 135 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
-#line 4039 "cpp_re.inc"
-yy463:
+#line 4142 "cpp_re.inc"
+yy475:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 18;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy470:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy482:
 #line 129 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
-#line 4069 "cpp_re.inc"
-yy471:
+#line 4172 "cpp_re.inc"
+yy483:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 19;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy478:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy490:
 #line 127 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
-#line 4099 "cpp_re.inc"
-yy479:
+#line 4202 "cpp_re.inc"
+yy491:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 20;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy483:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy495:
 #line 128 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
-#line 4120 "cpp_re.inc"
-yy484:
+#line 4223 "cpp_re.inc"
+yy496:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 21;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy488:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy500:
 #line 126 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
-#line 4141 "cpp_re.inc"
-yy489:
+#line 4244 "cpp_re.inc"
+yy501:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 22;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy491:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy503:
 #line 136 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
-#line 4156 "cpp_re.inc"
-yy492:
+#line 4259 "cpp_re.inc"
+yy504:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy518;
- goto yy195;
-yy493:
+ if (yych == 'n') goto yy530;
+ goto yy109;
+yy505:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy463;
- if (yych == 'i') goto yy511;
- goto yy195;
-yy494:
+ if (yych == 'a') goto yy475;
+ if (yych == 'i') goto yy523;
+ goto yy109;
+yy506:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy508;
- goto yy195;
-yy495:
+ if (yych == 'r') goto yy520;
+ goto yy109;
+yy507:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'x') goto yy502;
- goto yy195;
-yy496:
+ if (yych == 'x') goto yy514;
+ goto yy109;
+yy508:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'v') goto yy195;
+ if (yych != 'v') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 23;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy501:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy513:
 #line 134 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
-#line 4201 "cpp_re.inc"
-yy502:
+#line 4304 "cpp_re.inc"
+yy514:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 24;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy507:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy519:
 #line 132 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
-#line 4225 "cpp_re.inc"
-yy508:
+#line 4328 "cpp_re.inc"
+yy520:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'y') goto yy195;
+ if (yych != 'y') goto yy109;
     yyaccept = 25;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy510:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy522:
 #line 131 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
-#line 4240 "cpp_re.inc"
-yy511:
+#line 4343 "cpp_re.inc"
+yy523:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'y') goto yy195;
+ if (yych != 'y') goto yy109;
     yyaccept = 26;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy517:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy529:
 #line 133 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
-#line 4267 "cpp_re.inc"
-yy518:
+#line 4370 "cpp_re.inc"
+yy530:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy458;
- if (yych != 't') goto yy195;
+ if (yych == 'l') goto yy470;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case '1': goto yy520;
- case '3': goto yy521;
- case '6': goto yy522;
- case '8': goto yy523;
- default: goto yy195;
+ case '1': goto yy532;
+ case '3': goto yy533;
+ case '6': goto yy534;
+ case '8': goto yy535;
+ default: goto yy109;
     }
-yy520:
+yy532:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '6') goto yy529;
- goto yy195;
-yy521:
+ if (yych == '6') goto yy541;
+ goto yy109;
+yy533:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '2') goto yy527;
- goto yy195;
-yy522:
+ if (yych == '2') goto yy539;
+ goto yy109;
+yy534:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '4') goto yy525;
- goto yy195;
-yy523:
+ if (yych == '4') goto yy537;
+ goto yy109;
+yy535:
     yyaccept = 27;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy524:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy536:
 #line 122 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
-#line 4308 "cpp_re.inc"
-yy525:
+#line 4411 "cpp_re.inc"
+yy537:
     yyaccept = 28;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy526:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy538:
 #line 125 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
-#line 4320 "cpp_re.inc"
-yy527:
+#line 4423 "cpp_re.inc"
+yy539:
     yyaccept = 29;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy528:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy540:
 #line 124 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
-#line 4332 "cpp_re.inc"
-yy529:
+#line 4435 "cpp_re.inc"
+yy541:
     yyaccept = 30;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy530:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy542:
 #line 123 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
-#line 4344 "cpp_re.inc"
-yy531:
+#line 4447 "cpp_re.inc"
+yy543:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'h') goto yy537;
- goto yy195;
-yy532:
+ if (yych == 'h') goto yy549;
+ goto yy109;
+yy544:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 31;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy536:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy548:
 #line 120 "cpp.re"
     { BOOST_WAVE_RET(T_WHILE); }
-#line 4370 "cpp_re.inc"
-yy537:
+#line 4473 "cpp_re.inc"
+yy549:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 32;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy542:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy554:
 #line 119 "cpp.re"
     { BOOST_WAVE_RET(T_WCHART); }
-#line 4394 "cpp_re.inc"
-yy543:
+#line 4497 "cpp_re.inc"
+yy555:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy555;
- goto yy195;
-yy544:
+ if (yych == 'r') goto yy567;
+ goto yy109;
+yy556:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy545;
- if (yych == 'l') goto yy546;
- goto yy195;
-yy545:
+ if (yych == 'i') goto yy557;
+ if (yych == 'l') goto yy558;
+ goto yy109;
+yy557:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy553;
- goto yy195;
-yy546:
+ if (yych == 'd') goto yy565;
+ goto yy109;
+yy558:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 33;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy552:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy564:
 #line 118 "cpp.re"
     { BOOST_WAVE_RET(T_VOLATILE); }
-#line 4437 "cpp_re.inc"
-yy553:
+#line 4540 "cpp_re.inc"
+yy565:
     yyaccept = 34;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy554:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy566:
 #line 117 "cpp.re"
     { BOOST_WAVE_RET(T_VOID); }
-#line 4449 "cpp_re.inc"
-yy555:
+#line 4552 "cpp_re.inc"
+yy567:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 35;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy560:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy572:
 #line 116 "cpp.re"
     { BOOST_WAVE_RET(T_VIRTUAL); }
-#line 4473 "cpp_re.inc"
-yy561:
+#line 4576 "cpp_re.inc"
+yy573:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy129;
+ if (yych == 'R') goto yy128;
+ goto yy109;
+yy574:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy567;
- if (yych == 's') goto yy568;
- goto yy195;
-yy562:
+ if (yych == 'i') goto yy580;
+ if (yych == 's') goto yy581;
+ goto yy109;
+yy575:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 36;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy566:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy579:
 #line 115 "cpp.re"
     { BOOST_WAVE_RET(T_USING); }
-#line 4500 "cpp_re.inc"
-yy567:
+#line 4609 "cpp_re.inc"
+yy580:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy575;
- goto yy195;
-yy568:
+ if (yych == 'o') goto yy588;
+ goto yy109;
+yy581:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 37;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy574:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy587:
 #line 114 "cpp.re"
     { BOOST_WAVE_RET(T_UNSIGNED); }
-#line 4532 "cpp_re.inc"
-yy575:
+#line 4641 "cpp_re.inc"
+yy588:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 38;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy577:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy590:
 #line 113 "cpp.re"
     { BOOST_WAVE_RET(T_UNION); }
-#line 4547 "cpp_re.inc"
-yy578:
+#line 4656 "cpp_re.inc"
+yy591:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'm') goto yy618;
- goto yy195;
-yy579:
+ if (yych == 'm') goto yy631;
+ goto yy109;
+yy592:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy601;
- if (yych == 'r') goto yy602;
- goto yy195;
-yy580:
+ if (yych == 'i') goto yy614;
+ if (yych == 'r') goto yy615;
+ goto yy109;
+yy593:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'u') goto yy596;
- if (yych == 'y') goto yy597;
- goto yy195;
-yy581:
+ if (yych == 'u') goto yy609;
+ if (yych == 'y') goto yy610;
+ goto yy109;
+yy594:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     } else {
- if (yych <= 'i') goto yy585;
- if (yych == 'n') goto yy586;
- goto yy195;
+ if (yych <= 'i') goto yy598;
+ if (yych == 'n') goto yy599;
+ goto yy109;
     }
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy593;
- goto yy195;
-yy585:
+ if (yych == 'e') goto yy606;
+ goto yy109;
+yy598:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy591;
- goto yy195;
-yy586:
+ if (yych == 'd') goto yy604;
+ goto yy109;
+yy599:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 39;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy590:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy603:
 #line 112 "cpp.re"
     { BOOST_WAVE_RET(T_TYPENAME); }
-#line 4610 "cpp_re.inc"
-yy591:
+#line 4719 "cpp_re.inc"
+yy604:
     yyaccept = 40;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy592:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy605:
 #line 111 "cpp.re"
     { BOOST_WAVE_RET(T_TYPEID); }
-#line 4622 "cpp_re.inc"
-yy593:
+#line 4731 "cpp_re.inc"
+yy606:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'f') goto yy195;
+ if (yych != 'f') goto yy109;
     yyaccept = 41;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy595:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy608:
 #line 110 "cpp.re"
     { BOOST_WAVE_RET(T_TYPEDEF); }
-#line 4637 "cpp_re.inc"
-yy596:
+#line 4746 "cpp_re.inc"
+yy609:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy599;
- goto yy195;
-yy597:
+ if (yych == 'e') goto yy612;
+ goto yy109;
+yy610:
     yyaccept = 42;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy598:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy611:
 #line 109 "cpp.re"
     { BOOST_WAVE_RET(T_TRY); }
-#line 4654 "cpp_re.inc"
-yy599:
+#line 4763 "cpp_re.inc"
+yy612:
     yyaccept = 43;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy600:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy613:
 #line 108 "cpp.re"
     { BOOST_WAVE_RET(T_TRUE); }
-#line 4666 "cpp_re.inc"
-yy601:
+#line 4775 "cpp_re.inc"
+yy614:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy616;
- goto yy195;
-yy602:
+ if (yych == 's') goto yy629;
+ goto yy109;
+yy615:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy603;
- if (yych == 'o') goto yy604;
- goto yy195;
-yy603:
+ if (yych == 'e') goto yy616;
+ if (yych == 'o') goto yy617;
+ goto yy109;
+yy616:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy607;
- goto yy195;
-yy604:
+ if (yych == 'a') goto yy620;
+ goto yy109;
+yy617:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'w') goto yy195;
+ if (yych != 'w') goto yy109;
     yyaccept = 44;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy606:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy619:
 #line 107 "cpp.re"
     { BOOST_WAVE_RET(T_THROW); }
-#line 4697 "cpp_re.inc"
-yy607:
+#line 4806 "cpp_re.inc"
+yy620:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 45;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy615:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy628:
 #line 106 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
-#line 4730 "cpp_re.inc"
-yy616:
+#line 4839 "cpp_re.inc"
+yy629:
     yyaccept = 46;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy617:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy630:
 #line 105 "cpp.re"
     { BOOST_WAVE_RET(T_THIS); }
-#line 4742 "cpp_re.inc"
-yy618:
+#line 4851 "cpp_re.inc"
+yy631:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 47;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy624:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy637:
 #line 104 "cpp.re"
     { BOOST_WAVE_RET(T_TEMPLATE); }
-#line 4769 "cpp_re.inc"
-yy625:
+#line 4878 "cpp_re.inc"
+yy638:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy667;
- goto yy195;
-yy626:
+ if (yych == 'o') goto yy680;
+ goto yy109;
+yy639:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'g') goto yy657;
- if (yych == 'z') goto yy658;
- goto yy195;
-yy627:
+ if (yych == 'g') goto yy670;
+ if (yych == 'z') goto yy671;
+ goto yy109;
+yy640:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy634;
- if (yych == 'r') goto yy635;
- goto yy195;
-yy628:
+ if (yych == 'a') goto yy647;
+ if (yych == 'r') goto yy648;
+ goto yy109;
+yy641:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'h') goto yy195;
+ if (yych != 'h') goto yy109;
     yyaccept = 48;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy633:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy646:
 #line 103 "cpp.re"
     { BOOST_WAVE_RET(T_SWITCH); }
-#line 4810 "cpp_re.inc"
-yy634:
+#line 4919 "cpp_re.inc"
+yy647:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 't') goto yy640;
- goto yy195;
-yy635:
+ if (yych == 't') goto yy653;
+ goto yy109;
+yy648:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 49;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy639:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy652:
 #line 102 "cpp.re"
     { BOOST_WAVE_RET(T_STRUCT); }
-#line 4836 "cpp_re.inc"
-yy640:
+#line 4945 "cpp_re.inc"
+yy653:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 50;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '@') {
         if (yych <= '/') {
- if (yych == '$') goto yy194;
+ if (yych == '$') goto yy108;
         } else {
- if (yych <= '9') goto yy194;
- if (yych == '?') goto yy197;
+ if (yych <= '9') goto yy108;
+ if (yych == '?') goto yy111;
         }
     } else {
         if (yych <= '^') {
- if (yych <= 'Z') goto yy194;
- if (yych == '\\') goto yy196;
+ if (yych <= 'Z') goto yy108;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy644;
- if (yych <= '`') goto yy643;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy657;
+ if (yych <= '`') goto yy656;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy643:
+yy656:
 #line 99 "cpp.re"
     { BOOST_WAVE_RET(T_STATIC); }
-#line 4866 "cpp_re.inc"
-yy644:
+#line 4975 "cpp_re.inc"
+yy657:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy645;
- if (yych == 'c') goto yy646;
- goto yy195;
-yy645:
+ if (yych == 'a') goto yy658;
+ if (yych == 'c') goto yy659;
+ goto yy109;
+yy658:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy651;
- goto yy195;
-yy646:
+ if (yych == 's') goto yy664;
+ goto yy109;
+yy659:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 51;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy650:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy663:
 #line 100 "cpp.re"
     { BOOST_WAVE_RET(T_STATICCAST); }
-#line 4898 "cpp_re.inc"
-yy651:
+#line 5007 "cpp_re.inc"
+yy664:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 52;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy656:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy669:
 #line 101 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
-#line 4922 "cpp_re.inc"
-yy657:
+#line 5031 "cpp_re.inc"
+yy670:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy663;
- goto yy195;
-yy658:
+ if (yych == 'n') goto yy676;
+ goto yy109;
+yy671:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'f') goto yy195;
+ if (yych != 'f') goto yy109;
     yyaccept = 53;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy662:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy675:
 #line 98 "cpp.re"
     { BOOST_WAVE_RET(T_SIZEOF); }
-#line 4948 "cpp_re.inc"
-yy663:
+#line 5057 "cpp_re.inc"
+yy676:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 54;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy666:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy679:
 #line 97 "cpp.re"
     { BOOST_WAVE_RET(T_SIGNED); }
-#line 4966 "cpp_re.inc"
-yy667:
+#line 5075 "cpp_re.inc"
+yy680:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 55;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy670:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy683:
 #line 96 "cpp.re"
     { BOOST_WAVE_RET(T_SHORT); }
-#line 4984 "cpp_re.inc"
-yy671:
+#line 5093 "cpp_re.inc"
+yy684:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     } else {
- if (yych <= 'i') goto yy673;
- if (yych == 't') goto yy674;
- goto yy195;
+ if (yych <= 'i') goto yy686;
+ if (yych == 't') goto yy687;
+ goto yy109;
     }
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy693;
- goto yy195;
-yy673:
+ if (yych == 'i') goto yy706;
+ goto yy109;
+yy686:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy679;
- goto yy195;
-yy674:
+ if (yych == 'n') goto yy692;
+ goto yy109;
+yy687:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 56;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy678:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy691:
 #line 95 "cpp.re"
     { BOOST_WAVE_RET(T_RETURN); }
-#line 5024 "cpp_re.inc"
-yy679:
+#line 5133 "cpp_re.inc"
+yy692:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 57;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy692:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy705:
 #line 94 "cpp.re"
     { BOOST_WAVE_RET(T_REINTERPRETCAST); }
-#line 5072 "cpp_re.inc"
-yy693:
+#line 5181 "cpp_re.inc"
+yy706:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 58;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy698:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy711:
 #line 93 "cpp.re"
     { BOOST_WAVE_RET(T_REGISTER); }
-#line 5096 "cpp_re.inc"
-yy699:
+#line 5205 "cpp_re.inc"
+yy712:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy706;
- if (yych == 'o') goto yy707;
- goto yy195;
-yy700:
+ if (yych == 'i') goto yy719;
+ if (yych == 'o') goto yy720;
+ goto yy109;
+yy713:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'b') goto yy195;
+ if (yych != 'b') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 59;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy705:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy718:
 #line 92 "cpp.re"
     { BOOST_WAVE_RET(T_PUBLIC); }
-#line 5126 "cpp_re.inc"
-yy706:
+#line 5235 "cpp_re.inc"
+yy719:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'v') goto yy715;
- goto yy195;
-yy707:
+ if (yych == 'v') goto yy728;
+ goto yy109;
+yy720:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 60;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy714:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy727:
 #line 91 "cpp.re"
     { BOOST_WAVE_RET(T_PROTECTED); }
-#line 5161 "cpp_re.inc"
-yy715:
+#line 5270 "cpp_re.inc"
+yy728:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 61;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy719:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy732:
 #line 90 "cpp.re"
     { BOOST_WAVE_RET(T_PRIVATE); }
-#line 5182 "cpp_re.inc"
-yy720:
+#line 5291 "cpp_re.inc"
+yy733:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy727;
- goto yy195;
-yy721:
+ if (yych == 'e') goto yy740;
+ goto yy109;
+yy734:
     yyaccept = 62;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '@') {
         if (yych <= '/') {
- if (yych == '$') goto yy194;
+ if (yych == '$') goto yy108;
         } else {
- if (yych <= '9') goto yy194;
- if (yych == '?') goto yy197;
+ if (yych <= '9') goto yy108;
+ if (yych == '?') goto yy111;
         }
     } else {
         if (yych <= '^') {
- if (yych <= 'Z') goto yy194;
- if (yych == '\\') goto yy196;
+ if (yych <= 'Z') goto yy108;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy723;
- if (yych <= '`') goto yy722;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy736;
+ if (yych <= '`') goto yy735;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy722:
+yy735:
 #line 233 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
-#line 5211 "cpp_re.inc"
-yy723:
+#line 5320 "cpp_re.inc"
+yy736:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 63;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy726:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy739:
 #line 217 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
-#line 5229 "cpp_re.inc"
-yy727:
+#line 5338 "cpp_re.inc"
+yy740:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 64;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy733:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy746:
 #line 89 "cpp.re"
     { BOOST_WAVE_RET(T_OPERATOR); }
-#line 5256 "cpp_re.inc"
-yy734:
+#line 5365 "cpp_re.inc"
+yy747:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'm') goto yy759;
- goto yy195;
-yy735:
+ if (yych == 'm') goto yy772;
+ goto yy109;
+yy748:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'w') goto yy757;
- goto yy195;
-yy736:
+ if (yych == 'w') goto yy770;
+ goto yy109;
+yy749:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy744;
- if (yych == 't') goto yy745;
- goto yy195;
-yy737:
+ if (yych == 'e') goto yy757;
+ if (yych == 't') goto yy758;
+ goto yy109;
+yy750:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 65;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy743:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy756:
 #line 88 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
-#line 5299 "cpp_re.inc"
-yy744:
+#line 5408 "cpp_re.inc"
+yy757:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'x') goto yy751;
- goto yy195;
-yy745:
+ if (yych == 'x') goto yy764;
+ goto yy109;
+yy758:
     yyaccept = 66;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '@') {
         if (yych <= '/') {
- if (yych == '$') goto yy194;
+ if (yych == '$') goto yy108;
         } else {
- if (yych <= '9') goto yy194;
- if (yych == '?') goto yy197;
+ if (yych <= '9') goto yy108;
+ if (yych == '?') goto yy111;
         }
     } else {
         if (yych <= '^') {
- if (yych <= 'Z') goto yy194;
- if (yych == '\\') goto yy196;
+ if (yych <= 'Z') goto yy108;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy747;
- if (yych <= '`') goto yy746;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy760;
+ if (yych <= '`') goto yy759;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy746:
+yy759:
 #line 202 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
-#line 5328 "cpp_re.inc"
-yy747:
+#line 5437 "cpp_re.inc"
+yy760:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 67;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy750:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy763:
 #line 225 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
-#line 5346 "cpp_re.inc"
-yy751:
+#line 5455 "cpp_re.inc"
+yy764:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 68;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy756:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy769:
 #line 87 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
-#line 5370 "cpp_re.inc"
-yy757:
+#line 5479 "cpp_re.inc"
+yy770:
     yyaccept = 69;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy758:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy771:
 #line 86 "cpp.re"
     { BOOST_WAVE_RET(T_NEW); }
-#line 5382 "cpp_re.inc"
-yy759:
+#line 5491 "cpp_re.inc"
+yy772:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 70;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy766:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy779:
 #line 85 "cpp.re"
     { BOOST_WAVE_RET(T_NAMESPACE); }
-#line 5412 "cpp_re.inc"
-yy767:
+#line 5521 "cpp_re.inc"
+yy780:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'b') goto yy195;
+ if (yych != 'b') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 71;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy773:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy786:
 #line 84 "cpp.re"
     { BOOST_WAVE_RET(T_MUTABLE); }
-#line 5439 "cpp_re.inc"
-yy774:
+#line 5548 "cpp_re.inc"
+yy787:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 72;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy777:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy790:
 #line 83 "cpp.re"
     { BOOST_WAVE_RET(T_LONG); }
-#line 5457 "cpp_re.inc"
-yy778:
+#line 5566 "cpp_re.inc"
+yy791:
     yyaccept = 73;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy779:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy792:
 #line 79 "cpp.re"
     { BOOST_WAVE_RET(T_IF); }
-#line 5469 "cpp_re.inc"
-yy780:
+#line 5578 "cpp_re.inc"
+yy793:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'p') goto yy789;
- goto yy195;
-yy781:
+ if (yych == 'p') goto yy802;
+ goto yy109;
+yy794:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy782;
- if (yych == 't') goto yy783;
- goto yy195;
-yy782:
+ if (yych == 'l') goto yy795;
+ if (yych == 't') goto yy796;
+ goto yy109;
+yy795:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy785;
- goto yy195;
-yy783:
+ if (yych == 'i') goto yy798;
+ goto yy109;
+yy796:
     yyaccept = 74;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy784:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy797:
 #line 82 "cpp.re"
     { BOOST_WAVE_RET(T_INT); }
-#line 5497 "cpp_re.inc"
-yy785:
+#line 5606 "cpp_re.inc"
+yy798:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 75;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy788:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy801:
 #line 81 "cpp.re"
     { BOOST_WAVE_RET(T_INLINE); }
-#line 5515 "cpp_re.inc"
-yy789:
+#line 5624 "cpp_re.inc"
+yy802:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 76;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy793:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy806:
 #line 80 "cpp.re"
     { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
-#line 5536 "cpp_re.inc"
-yy794:
+#line 5645 "cpp_re.inc"
+yy807:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 77;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy797:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy810:
 #line 78 "cpp.re"
     { BOOST_WAVE_RET(T_GOTO); }
-#line 5554 "cpp_re.inc"
-yy798:
+#line 5663 "cpp_re.inc"
+yy811:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy813;
- goto yy195;
-yy799:
+ if (yych == 'l') goto yy826;
+ goto yy109;
+yy812:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy809;
- goto yy195;
-yy800:
+ if (yych == 'o') goto yy822;
+ goto yy109;
+yy813:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy807;
- goto yy195;
-yy801:
+ if (yych == 'r') goto yy820;
+ goto yy109;
+yy814:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 78;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy806:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy819:
 #line 77 "cpp.re"
     { BOOST_WAVE_RET(T_FRIEND); }
-#line 5593 "cpp_re.inc"
-yy807:
+#line 5702 "cpp_re.inc"
+yy820:
     yyaccept = 79;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy808:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy821:
 #line 76 "cpp.re"
     { BOOST_WAVE_RET(T_FOR); }
-#line 5605 "cpp_re.inc"
-yy809:
+#line 5714 "cpp_re.inc"
+yy822:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 80;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy812:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy825:
 #line 75 "cpp.re"
     { BOOST_WAVE_RET(T_FLOAT); }
-#line 5623 "cpp_re.inc"
-yy813:
+#line 5732 "cpp_re.inc"
+yy826:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 81;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy816:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy829:
 #line 74 "cpp.re"
     { BOOST_WAVE_RET(T_FALSE); }
-#line 5641 "cpp_re.inc"
-yy817:
+#line 5750 "cpp_re.inc"
+yy830:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy839;
- goto yy195;
-yy818:
+ if (yych == 's') goto yy852;
+ goto yy109;
+yy831:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'u') goto yy836;
- goto yy195;
-yy819:
+ if (yych == 'u') goto yy849;
+ goto yy109;
+yy832:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'p') goto yy820;
- if (yych == 't') goto yy821;
- goto yy195;
-yy820:
+ if (yych == 'p') goto yy833;
+ if (yych == 't') goto yy834;
+ goto yy109;
+yy833:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy826;
- if (yych == 'o') goto yy827;
- goto yy195;
-yy821:
+ if (yych == 'l') goto yy839;
+ if (yych == 'o') goto yy840;
+ goto yy109;
+yy834:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 82;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy825:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy838:
 #line 73 "cpp.re"
     { BOOST_WAVE_RET(T_EXTERN); }
-#line 5684 "cpp_re.inc"
-yy826:
+#line 5793 "cpp_re.inc"
+yy839:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy831;
- goto yy195;
-yy827:
+ if (yych == 'i') goto yy844;
+ goto yy109;
+yy840:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 83;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy830:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy843:
 #line 72 "cpp.re"
     { BOOST_WAVE_RET(T_EXPORT); }
-#line 5707 "cpp_re.inc"
-yy831:
+#line 5816 "cpp_re.inc"
+yy844:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 84;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy835:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy848:
 #line 71 "cpp.re"
     { BOOST_WAVE_RET(T_EXPLICIT); }
-#line 5728 "cpp_re.inc"
-yy836:
+#line 5837 "cpp_re.inc"
+yy849:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 85;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy838:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy851:
 #line 70 "cpp.re"
     { BOOST_WAVE_RET(T_ENUM); }
-#line 5743 "cpp_re.inc"
-yy839:
+#line 5852 "cpp_re.inc"
+yy852:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 86;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy841:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy854:
 #line 69 "cpp.re"
     { BOOST_WAVE_RET(T_ELSE); }
-#line 5758 "cpp_re.inc"
-yy842:
+#line 5867 "cpp_re.inc"
+yy855:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
- if (yych == 'c') goto yy862;
- goto yy195;
+ if (yych == 'c') goto yy875;
+ goto yy109;
     } else {
- if (yych <= 'f') goto yy863;
- if (yych == 'l') goto yy864;
- goto yy195;
+ if (yych <= 'f') goto yy876;
+ if (yych == 'l') goto yy877;
+ goto yy109;
     }
-yy843:
+yy856:
     yyaccept = 87;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '9') {
- if (yych == '$') goto yy194;
- if (yych >= '0') goto yy194;
+ if (yych == '$') goto yy108;
+ if (yych >= '0') goto yy108;
         } else {
- if (yych == '?') goto yy197;
- if (yych >= 'A') goto yy194;
+ if (yych == '?') goto yy111;
+ if (yych >= 'A') goto yy108;
         }
     } else {
         if (yych <= '_') {
- if (yych == '\\') goto yy196;
- if (yych >= '_') goto yy194;
+ if (yych == '\\') goto yy110;
+ if (yych >= '_') goto yy108;
         } else {
             if (yych <= 't') {
- if (yych >= 'a') goto yy194;
+ if (yych >= 'a') goto yy108;
             } else {
- if (yych <= 'u') goto yy857;
- if (yych <= 'z') goto yy194;
+ if (yych <= 'u') goto yy870;
+ if (yych <= 'z') goto yy108;
             }
         }
     }
-yy844:
+yy857:
 #line 66 "cpp.re"
     { BOOST_WAVE_RET(T_DO); }
-#line 5797 "cpp_re.inc"
-yy845:
+#line 5906 "cpp_re.inc"
+yy858:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 88;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy856:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy869:
 #line 68 "cpp.re"
     { BOOST_WAVE_RET(T_DYNAMICCAST); }
-#line 5839 "cpp_re.inc"
-yy857:
+#line 5948 "cpp_re.inc"
+yy870:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'b') goto yy195;
+ if (yych != 'b') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 89;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy861:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy874:
 #line 67 "cpp.re"
     { BOOST_WAVE_RET(T_DOUBLE); }
-#line 5860 "cpp_re.inc"
-yy862:
+#line 5969 "cpp_re.inc"
+yy875:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy874;
- goto yy195;
-yy863:
+ if (yych == 'l') goto yy887;
+ goto yy109;
+yy876:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy869;
- goto yy195;
-yy864:
+ if (yych == 'a') goto yy882;
+ goto yy109;
+yy877:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 90;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy868:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy881:
 #line 65 "cpp.re"
     { BOOST_WAVE_RET(T_DELETE); }
-#line 5891 "cpp_re.inc"
-yy869:
+#line 6000 "cpp_re.inc"
+yy882:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 91;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy873:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy886:
 #line 64 "cpp.re"
     { BOOST_WAVE_RET(T_DEFAULT); }
-#line 5912 "cpp_re.inc"
-yy874:
+#line 6021 "cpp_re.inc"
+yy887:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'y') goto yy195;
+ if (yych != 'y') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 92;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy879:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy892:
 #line 63 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
-#line 5936 "cpp_re.inc"
-yy880:
+#line 6045 "cpp_re.inc"
+yy893:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'r') goto yy195;
- if (yych <= 's') goto yy926;
- if (yych <= 't') goto yy927;
- goto yy195;
-yy881:
+ if (yych <= 'r') goto yy109;
+ if (yych <= 's') goto yy939;
+ if (yych <= 't') goto yy940;
+ goto yy109;
+yy894:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy913;
- goto yy195;
-yy882:
+ if (yych == 'a') goto yy926;
+ goto yy109;
+yy895:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy909;
- goto yy195;
-yy883:
+ if (yych == 'a') goto yy922;
+ goto yy109;
+yy896:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'l') goto yy195;
- if (yych <= 'm') goto yy885;
- if (yych >= 'o') goto yy195;
+ if (yych <= 'l') goto yy109;
+ if (yych <= 'm') goto yy898;
+ if (yych >= 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'r') goto yy195;
- if (yych <= 's') goto yy889;
- if (yych <= 't') goto yy890;
- goto yy195;
-yy885:
+ if (yych <= 'r') goto yy109;
+ if (yych <= 's') goto yy902;
+ if (yych <= 't') goto yy903;
+ goto yy109;
+yy898:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 93;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy888:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy901:
 #line 200 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
-#line 5983 "cpp_re.inc"
-yy889:
+#line 6092 "cpp_re.inc"
+yy902:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 't') goto yy896;
- goto yy195;
-yy890:
+ if (yych == 't') goto yy909;
+ goto yy109;
+yy903:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 94;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy895:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy908:
 #line 62 "cpp.re"
     { BOOST_WAVE_RET(T_CONTINUE); }
-#line 6012 "cpp_re.inc"
-yy896:
+#line 6121 "cpp_re.inc"
+yy909:
     yyaccept = 95;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '9') {
- if (yych == '$') goto yy194;
- if (yych >= '0') goto yy194;
+ if (yych == '$') goto yy108;
+ if (yych >= '0') goto yy108;
         } else {
- if (yych == '?') goto yy197;
- if (yych >= 'A') goto yy194;
+ if (yych == '?') goto yy111;
+ if (yych >= 'A') goto yy108;
         }
     } else {
         if (yych <= '_') {
- if (yych == '\\') goto yy196;
- if (yych >= '_') goto yy898;
+ if (yych == '\\') goto yy110;
+ if (yych >= '_') goto yy911;
         } else {
             if (yych <= 'd') {
- if (yych >= 'a') goto yy194;
+ if (yych >= 'a') goto yy108;
             } else {
- if (yych <= 'e') goto yy899;
- if (yych <= 'z') goto yy194;
+ if (yych <= 'e') goto yy912;
+ if (yych <= 'z') goto yy108;
             }
         }
     }
-yy897:
+yy910:
 #line 59 "cpp.re"
     { BOOST_WAVE_RET(T_CONST); }
-#line 6040 "cpp_re.inc"
-yy898:
+#line 6149 "cpp_re.inc"
+yy911:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'c') goto yy904;
- goto yy195;
-yy899:
+ if (yych == 'c') goto yy917;
+ goto yy109;
+yy912:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'x') goto yy195;
+ if (yych != 'x') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 96;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy903:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy916:
 #line 60 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
-#line 6066 "cpp_re.inc"
-yy904:
+#line 6175 "cpp_re.inc"
+yy917:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 97;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy908:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy921:
 #line 61 "cpp.re"
     { BOOST_WAVE_RET(T_CONSTCAST); }
-#line 6087 "cpp_re.inc"
-yy909:
+#line 6196 "cpp_re.inc"
+yy922:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 98;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy912:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy925:
 #line 58 "cpp.re"
     { BOOST_WAVE_RET(T_CLASS); }
-#line 6105 "cpp_re.inc"
-yy913:
+#line 6214 "cpp_re.inc"
+yy926:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 99;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '>') {
         if (yych <= '0') {
- if (yych == '$') goto yy194;
- if (yych >= '0') goto yy194;
+ if (yych == '$') goto yy108;
+ if (yych >= '0') goto yy108;
         } else {
             if (yych <= '2') {
- if (yych <= '1') goto yy916;
- goto yy194;
+ if (yych <= '1') goto yy929;
+ goto yy108;
             } else {
- if (yych <= '3') goto yy917;
- if (yych <= '9') goto yy194;
+ if (yych <= '3') goto yy930;
+ if (yych <= '9') goto yy108;
             }
         }
     } else {
         if (yych <= '\\') {
             if (yych <= '@') {
- if (yych <= '?') goto yy197;
+ if (yych <= '?') goto yy111;
             } else {
- if (yych <= 'Z') goto yy194;
- if (yych >= '\\') goto yy196;
+ if (yych <= 'Z') goto yy108;
+ if (yych >= '\\') goto yy110;
             }
         } else {
             if (yych <= '_') {
- if (yych >= '_') goto yy194;
+ if (yych >= '_') goto yy108;
             } else {
- if (yych <= '`') goto yy915;
- if (yych <= 'z') goto yy194;
+ if (yych <= '`') goto yy928;
+ if (yych <= 'z') goto yy108;
             }
         }
     }
-yy915:
+yy928:
 #line 55 "cpp.re"
     { BOOST_WAVE_RET(T_CHAR); }
-#line 6145 "cpp_re.inc"
-yy916:
+#line 6254 "cpp_re.inc"
+yy929:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '6') goto yy922;
- goto yy195;
-yy917:
+ if (yych == '6') goto yy935;
+ goto yy109;
+yy930:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '2') goto yy195;
+ if (yych != '2') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 100;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy921:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy934:
 #line 57 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
-#line 6171 "cpp_re.inc"
-yy922:
+#line 6280 "cpp_re.inc"
+yy935:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 101;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy925:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy938:
 #line 56 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
-#line 6189 "cpp_re.inc"
-yy926:
+#line 6298 "cpp_re.inc"
+yy939:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy931;
- goto yy195;
-yy927:
+ if (yych == 'e') goto yy944;
+ goto yy109;
+yy940:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'h') goto yy195;
+ if (yych != 'h') goto yy109;
     yyaccept = 102;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy930:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy943:
 #line 54 "cpp.re"
     { BOOST_WAVE_RET(T_CATCH); }
-#line 6212 "cpp_re.inc"
-yy931:
+#line 6321 "cpp_re.inc"
+yy944:
     yyaccept = 103;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy932:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy945:
 #line 53 "cpp.re"
     { BOOST_WAVE_RET(T_CASE); }
-#line 6224 "cpp_re.inc"
-yy933:
+#line 6333 "cpp_re.inc"
+yy946:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 't') goto yy943;
- goto yy195;
-yy934:
+ if (yych == 't') goto yy956;
+ goto yy109;
+yy947:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy940;
- goto yy195;
-yy935:
+ if (yych == 'o') goto yy953;
+ goto yy109;
+yy948:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'k') goto yy195;
+ if (yych != 'k') goto yy109;
     yyaccept = 104;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy939:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy952:
 #line 52 "cpp.re"
     { BOOST_WAVE_RET(T_BREAK); }
-#line 6255 "cpp_re.inc"
-yy940:
+#line 6364 "cpp_re.inc"
+yy953:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 105;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy942:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy955:
 #line 51 "cpp.re"
     { BOOST_WAVE_RET(T_BOOL); }
-#line 6270 "cpp_re.inc"
-yy943:
+#line 6379 "cpp_re.inc"
+yy956:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy944;
- if (yych == 'o') goto yy945;
- goto yy195;
-yy944:
+ if (yych == 'a') goto yy957;
+ if (yych == 'o') goto yy958;
+ goto yy109;
+yy957:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy948;
- goto yy195;
-yy945:
+ if (yych == 'n') goto yy961;
+ goto yy109;
+yy958:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 106;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy947:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy960:
 #line 196 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
-#line 6296 "cpp_re.inc"
-yy948:
+#line 6405 "cpp_re.inc"
+yy961:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 107;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy950:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy963:
 #line 194 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
-#line 6311 "cpp_re.inc"
-yy951:
+#line 6420 "cpp_re.inc"
+yy964:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy966;
- goto yy195;
-yy952:
+ if (yych == 'i') goto yy979;
+ goto yy109;
+yy965:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy960;
- goto yy195;
-yy953:
+ if (yych == 'd') goto yy973;
+ goto yy109;
+yy966:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'm') goto yy958;
- goto yy195;
-yy954:
+ if (yych == 'm') goto yy971;
+ goto yy109;
+yy967:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 108;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy957:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy970:
 #line 50 "cpp.re"
     { BOOST_WAVE_RET(T_AUTO); }
-#line 6344 "cpp_re.inc"
-yy958:
+#line 6453 "cpp_re.inc"
+yy971:
     yyaccept = 109;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy959:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy972:
 #line 49 "cpp.re"
     { BOOST_WAVE_RET(T_ASM); }
-#line 6356 "cpp_re.inc"
-yy960:
+#line 6465 "cpp_re.inc"
+yy973:
     yyaccept = 110;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '@') {
         if (yych <= '/') {
- if (yych == '$') goto yy194;
+ if (yych == '$') goto yy108;
         } else {
- if (yych <= '9') goto yy194;
- if (yych == '?') goto yy197;
+ if (yych <= '9') goto yy108;
+ if (yych == '?') goto yy111;
         }
     } else {
         if (yych <= '^') {
- if (yych <= 'Z') goto yy194;
- if (yych == '\\') goto yy196;
+ if (yych <= 'Z') goto yy108;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy962;
- if (yych <= '`') goto yy961;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy975;
+ if (yych <= '`') goto yy974;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy961:
+yy974:
 #line 229 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
-#line 6380 "cpp_re.inc"
-yy962:
+#line 6489 "cpp_re.inc"
+yy975:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 111;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy965:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy978:
 #line 215 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
-#line 6398 "cpp_re.inc"
-yy966:
+#line 6507 "cpp_re.inc"
+yy979:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy969;
- if (yych == 'o') goto yy970;
- goto yy195;
-yy969:
+ if (yych == 'a') goto yy982;
+ if (yych == 'o') goto yy983;
+ goto yy109;
+yy982:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy973;
- goto yy195;
-yy970:
+ if (yych == 's') goto yy986;
+ goto yy109;
+yy983:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'f') goto yy195;
+ if (yych != 'f') goto yy109;
     yyaccept = 112;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy972:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy985:
 #line 48 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
-#line 6430 "cpp_re.inc"
-yy973:
+#line 6539 "cpp_re.inc"
+yy986:
     yyaccept = 113;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy974:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy987:
 #line 47 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
-#line 6442 "cpp_re.inc"
-yy975:
+#line 6551 "cpp_re.inc"
+yy988:
     ++YYCURSOR;
 #line 176 "cpp.re"
     {
@@ -6451,71 +6560,71 @@
                 BOOST_WAVE_RET(T_DOTSTAR);
             }
         }
-#line 6455 "cpp_re.inc"
-yy977:
+#line 6564 "cpp_re.inc"
+yy990:
     yych = *++YYCURSOR;
- if (yych == '.') goto yy979;
- goto yy98;
-yy978:
+ if (yych == '.') goto yy992;
+ goto yy99;
+yy991:
     yych = *++YYCURSOR;
     goto yy7;
-yy979:
+yy992:
     ++YYCURSOR;
 #line 162 "cpp.re"
     { BOOST_WAVE_RET(T_ELLIPSIS); }
-#line 6467 "cpp_re.inc"
-yy981:
+#line 6576 "cpp_re.inc"
+yy994:
     ++YYCURSOR;
 #line 209 "cpp.re"
     { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
-#line 6472 "cpp_re.inc"
-yy983:
+#line 6581 "cpp_re.inc"
+yy996:
     ++YYCURSOR;
 #line 44 "cpp.re"
     { goto cppcomment; }
-#line 6477 "cpp_re.inc"
-yy985:
+#line 6586 "cpp_re.inc"
+yy998:
     ++YYCURSOR;
 #line 43 "cpp.re"
     { goto ccomment; }
-#line 6482 "cpp_re.inc"
+#line 6591 "cpp_re.inc"
 }
-#line 318 "cpp.re"
+#line 348 "cpp.re"
 
 
 ccomment:
 
-#line 6489 "cpp_re.inc"
+#line 6598 "cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= '\f') {
         if (yych <= 0x08) {
- if (yych <= 0x00) goto yy996;
- goto yy998;
+ if (yych <= 0x00) goto yy1009;
+ goto yy1011;
         } else {
- if (yych == '\n') goto yy991;
- goto yy994;
+ if (yych == '\n') goto yy1004;
+ goto yy1007;
         }
     } else {
         if (yych <= 0x1F) {
- if (yych <= '\r') goto yy993;
- goto yy998;
+ if (yych <= '\r') goto yy1006;
+ goto yy1011;
         } else {
- if (yych != '*') goto yy995;
+ if (yych != '*') goto yy1008;
         }
     }
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '/') goto yy1001;
-yy990:
-#line 333 "cpp.re"
+ if ((yych = *YYCURSOR) == '/') goto yy1014;
+yy1003:
+#line 363 "cpp.re"
     { goto ccomment; }
-#line 6515 "cpp_re.inc"
-yy991:
+#line 6624 "cpp_re.inc"
+yy1004:
     ++YYCURSOR;
-yy992:
-#line 325 "cpp.re"
+yy1005:
+#line 355 "cpp.re"
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
         /*s->tok = cursor; */
@@ -6523,20 +6632,20 @@
         cursor.column = 1;
         goto ccomment;
     }
-#line 6527 "cpp_re.inc"
-yy993:
+#line 6636 "cpp_re.inc"
+yy1006:
     yych = *++YYCURSOR;
- if (yych == '\n') goto yy1000;
- goto yy992;
-yy994:
+ if (yych == '\n') goto yy1013;
+ goto yy1005;
+yy1007:
     yych = *++YYCURSOR;
- goto yy990;
-yy995:
+ goto yy1003;
+yy1008:
     yych = *++YYCURSOR;
- goto yy990;
-yy996:
+ goto yy1003;
+yy1009:
     ++YYCURSOR;
-#line 336 "cpp.re"
+#line 366 "cpp.re"
     {
         if(cursor == s->eof)
         {
@@ -6552,49 +6661,49 @@
                 "invalid character: '\\000' in input stream");
         }
     }
-#line 6556 "cpp_re.inc"
-yy998:
+#line 6665 "cpp_re.inc"
+yy1011:
     ++YYCURSOR;
-#line 353 "cpp.re"
+#line 383 "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 6566 "cpp_re.inc"
-yy1000:
+#line 6675 "cpp_re.inc"
+yy1013:
     yych = *++YYCURSOR;
- goto yy992;
-yy1001:
+ goto yy1005;
+yy1014:
     ++YYCURSOR;
-#line 322 "cpp.re"
+#line 352 "cpp.re"
     { BOOST_WAVE_RET(T_CCOMMENT); }
-#line 6574 "cpp_re.inc"
+#line 6683 "cpp_re.inc"
 }
-#line 359 "cpp.re"
+#line 389 "cpp.re"
 
 
 cppcomment:
 
-#line 6581 "cpp_re.inc"
+#line 6690 "cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= '\n') {
- if (yych <= 0x00) goto yy1011;
- if (yych <= 0x08) goto yy1013;
- if (yych <= '\t') goto yy1008;
- } else {
- if (yych <= '\f') goto yy1008;
- if (yych <= '\r') goto yy1007;
- if (yych <= 0x1F) goto yy1013;
- goto yy1010;
+ if (yych <= 0x00) goto yy1024;
+ if (yych <= 0x08) goto yy1026;
+ if (yych <= '\t') goto yy1021;
+ } else {
+ if (yych <= '\f') goto yy1021;
+ if (yych <= '\r') goto yy1020;
+ if (yych <= 0x1F) goto yy1026;
+ goto yy1023;
     }
     ++YYCURSOR;
-yy1006:
-#line 364 "cpp.re"
+yy1019:
+#line 394 "cpp.re"
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
         /*s->tok = cursor; */
@@ -6602,23 +6711,23 @@
         cursor.column = 1;
         BOOST_WAVE_RET(T_CPPCOMMENT);
     }
-#line 6606 "cpp_re.inc"
-yy1007:
+#line 6715 "cpp_re.inc"
+yy1020:
     yych = *++YYCURSOR;
- if (yych == '\n') goto yy1015;
- goto yy1006;
-yy1008:
+ if (yych == '\n') goto yy1028;
+ goto yy1019;
+yy1021:
     ++YYCURSOR;
-yy1009:
-#line 372 "cpp.re"
+yy1022:
+#line 402 "cpp.re"
     { goto cppcomment; }
-#line 6616 "cpp_re.inc"
-yy1010:
+#line 6725 "cpp_re.inc"
+yy1023:
     yych = *++YYCURSOR;
- goto yy1009;
-yy1011:
+ goto yy1022;
+yy1024:
     ++YYCURSOR;
-#line 375 "cpp.re"
+#line 405 "cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -6627,7 +6736,7 @@
             (*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)
         {
@@ -6637,23 +6746,23 @@
         }
         BOOST_WAVE_RET(T_CPPCOMMENT);
     }
-#line 6641 "cpp_re.inc"
-yy1013:
+#line 6750 "cpp_re.inc"
+yy1026:
     ++YYCURSOR;
-#line 395 "cpp.re"
+#line 425 "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 6651 "cpp_re.inc"
-yy1015:
+#line 6760 "cpp_re.inc"
+yy1028:
     ++YYCURSOR;
     yych = *YYCURSOR;
- goto yy1006;
+ goto yy1019;
 }
-#line 401 "cpp.re"
+#line 431 "cpp.re"
 
 
 /* this subscanner is called whenever a pp_number has been started */
@@ -6665,7 +6774,7 @@
 
     if (s->detect_pp_numbers) {
     
-#line 6669 "cpp_re.inc"
+#line 6778 "cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -6704,253 +6813,272 @@
     };
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
- if (yych == '.') goto yy1019;
- if (yych <= '/') goto yy1018;
- if (yych <= '9') goto yy1020;
-yy1018:
+ if (yych <= '-') {
+ if (yych <= 0x08) goto yy1031;
+ if (yych <= '\r') goto yy1036;
+ if (yych >= ' ') goto yy1036;
+ } else {
+ if (yych <= '.') goto yy1032;
+ if (yych <= '/') goto yy1036;
+ if (yych <= '9') goto yy1034;
+ goto yy1036;
+ }
+yy1031:
     YYCURSOR = YYMARKER;
- goto yy1022;
-yy1019:
+ goto yy1035;
+yy1032:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '/') goto yy1033;
+ if (yych <= '9') goto yy1037;
+yy1033:
+#line 446 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 6837 "cpp_re.inc"
+yy1034:
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy1038;
+yy1035:
+#line 443 "cpp.re"
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+#line 6844 "cpp_re.inc"
+yy1036:
     yych = *++YYCURSOR;
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
-yy1020:
+ goto yy1033;
+yy1037:
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
+yy1038:
     if (yybm[0+yych] & 64) {
- goto yy1020;
+ goto yy1037;
     }
     if (yych <= 'Z') {
- if (yych == '?') goto yy1026;
- if (yych >= 'A') goto yy1023;
+ if (yych == '?') goto yy1042;
+ if (yych <= '@') goto yy1035;
     } else {
         if (yych <= '\\') {
- if (yych >= '\\') goto yy1025;
+ if (yych <= '[') goto yy1035;
+ goto yy1041;
         } else {
- if (yych == 'e') goto yy1023;
+ if (yych != 'e') goto yy1035;
         }
     }
-yy1022:
-#line 413 "cpp.re"
- { BOOST_WAVE_RET(T_PP_NUMBER); }
-#line 6738 "cpp_re.inc"
-yy1023:
+yy1039:
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1023;
+ goto yy1039;
     }
     if (yych <= '>') {
         if (yych <= '+') {
- if (yych == '$') goto yy1020;
- if (yych <= '*') goto yy1022;
- goto yy1020;
+ if (yych == '$') goto yy1037;
+ if (yych <= '*') goto yy1035;
+ goto yy1037;
         } else {
             if (yych <= '.') {
- if (yych <= ',') goto yy1022;
- goto yy1020;
+ if (yych <= ',') goto yy1035;
+ goto yy1037;
             } else {
- if (yych <= '/') goto yy1022;
- if (yych <= '9') goto yy1020;
- goto yy1022;
+ if (yych <= '/') goto yy1035;
+ if (yych <= '9') goto yy1037;
+ goto yy1035;
             }
         }
     } else {
         if (yych <= '\\') {
             if (yych <= '@') {
- if (yych <= '?') goto yy1026;
- goto yy1022;
+ if (yych <= '?') goto yy1042;
+ goto yy1035;
             } else {
- if (yych <= 'Z') goto yy1020;
- if (yych <= '[') goto yy1022;
+ if (yych <= 'Z') goto yy1037;
+ if (yych <= '[') goto yy1035;
             }
         } else {
             if (yych <= '_') {
- if (yych <= '^') goto yy1022;
- goto yy1020;
+ if (yych <= '^') goto yy1035;
+ goto yy1037;
             } else {
- if (yych <= '`') goto yy1022;
- if (yych <= 'z') goto yy1020;
- goto yy1022;
+ if (yych <= '`') goto yy1035;
+ if (yych <= 'z') goto yy1037;
+ goto yy1035;
             }
         }
     }
-yy1025:
+yy1041:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych == 'U') goto yy1029;
- if (yych == 'u') goto yy1028;
- goto yy1018;
-yy1026:
+ if (yych == 'U') goto yy1045;
+ if (yych == 'u') goto yy1044;
+ goto yy1031;
+yy1042:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych != '?') goto yy1018;
+ if (yych != '?') goto yy1031;
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych == '/') goto yy1025;
- goto yy1018;
-yy1028:
+ if (yych == '/') goto yy1041;
+ goto yy1031;
+yy1044:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     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;
+ if (yych <= '/') goto yy1031;
+ if (yych <= '9') goto yy1053;
+ goto yy1031;
+ } else {
+ if (yych <= 'F') goto yy1053;
+ if (yych <= '`') goto yy1031;
+ if (yych <= 'f') goto yy1053;
+ goto yy1031;
     }
-yy1029:
+yy1045:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1030;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1046;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1030:
+yy1046:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1031;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1047;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1031:
+yy1047:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1032;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1048;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1032:
+yy1048:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1033;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1049;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1033:
+yy1049:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1034;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1050;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1034:
+yy1050:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1035;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1051;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1035:
+yy1051:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1036;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1052;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1036:
+yy1052:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych <= '9') goto yy1020;
- goto yy1018;
- } else {
- if (yych <= 'F') goto yy1020;
- if (yych <= '`') goto yy1018;
- if (yych <= 'f') goto yy1020;
- goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych <= '9') goto yy1037;
+ goto yy1031;
+ } else {
+ if (yych <= 'F') goto yy1037;
+ if (yych <= '`') goto yy1031;
+ if (yych <= 'f') goto yy1037;
+ goto yy1031;
     }
-yy1037:
+yy1053:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1038;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1054;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1038:
+yy1054:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych >= ':') goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych >= ':') goto yy1031;
     } else {
- if (yych <= 'F') goto yy1039;
- if (yych <= '`') goto yy1018;
- if (yych >= 'g') goto yy1018;
+ if (yych <= 'F') goto yy1055;
+ if (yych <= '`') goto yy1031;
+ if (yych >= 'g') goto yy1031;
     }
-yy1039:
+yy1055:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1018;
- if (yych <= '9') goto yy1020;
- goto yy1018;
- } else {
- if (yych <= 'F') goto yy1020;
- if (yych <= '`') goto yy1018;
- if (yych <= 'f') goto yy1020;
- goto yy1018;
+ if (yych <= '/') goto yy1031;
+ if (yych <= '9') goto yy1037;
+ goto yy1031;
+ } else {
+ if (yych <= 'F') goto yy1037;
+ if (yych <= '`') goto yy1031;
+ if (yych <= 'f') goto yy1037;
+ goto yy1031;
     }
 }
-#line 414 "cpp.re"
+#line 447 "cpp.re"
 
     }
     else {
     
-#line 6954 "cpp_re.inc"
+#line 7082 "cpp_re.inc"
 {
     YYCTYPE yych;
     unsigned int yyaccept = 0;
@@ -6990,372 +7118,2007 @@
     };
     if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
     yych = *YYCURSOR;
- if (yych <= '/') {
- if (yych == '.') goto yy1047;
+ if (yych <= '-') {
+ if (yych <= 0x08) goto yy1058;
+ if (yych <= '\r') goto yy1064;
+ if (yych >= ' ') goto yy1064;
     } else {
- if (yych <= '0') goto yy1043;
- if (yych <= '9') goto yy1045;
+ if (yych <= '/') {
+ if (yych <= '.') goto yy1062;
+ goto yy1064;
+ } else {
+ if (yych <= '0') goto yy1059;
+ if (yych <= '9') goto yy1061;
+ goto yy1064;
+ }
     }
-yy1042:
+yy1058:
     YYCURSOR = YYMARKER;
     if (yyaccept <= 0) {
- goto yy1044;
+ goto yy1060;
     } else {
- goto yy1050;
+ goto yy1067;
     }
-yy1043:
+yy1059:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[0+yych] & 64) {
- goto yy1062;
+ goto yy1081;
     }
     if (yych <= 'E') {
         if (yych <= '/') {
- if (yych == '.') goto yy1048;
+ if (yych == '.') goto yy1065;
         } else {
- if (yych <= '9') goto yy1065;
- if (yych >= 'E') goto yy1058;
+ if (yych <= '9') goto yy1084;
+ if (yych >= 'E') goto yy1077;
         }
     } else {
         if (yych <= 'd') {
- if (yych == 'X') goto yy1064;
+ if (yych == 'X') goto yy1083;
         } else {
- if (yych <= 'e') goto yy1058;
- if (yych == 'x') goto yy1064;
+ if (yych <= 'e') goto yy1077;
+ if (yych == 'x') goto yy1083;
         }
     }
-yy1044:
-#line 421 "cpp.re"
+yy1060:
+#line 454 "cpp.re"
     { goto integer_suffix; }
-#line 7031 "cpp_re.inc"
-yy1045:
+#line 7167 "cpp_re.inc"
+yy1061:
     yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 32) {
- goto yy1045;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+ if (yych == '.') goto yy1065;
+ if (yych <= '/') goto yy1060;
+ goto yy1075;
+ } else {
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy1060;
+ goto yy1077;
+ } else {
+ if (yych == 'e') goto yy1077;
+ goto yy1060;
+ }
     }
- if (yych <= 'D') {
- if (yych == '.') goto yy1048;
- goto yy1044;
- } else {
- if (yych <= 'E') goto yy1058;
- if (yych == 'e') goto yy1058;
- goto yy1044;
+yy1062:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 32) {
+ goto yy1065;
     }
-yy1047:
+yy1063:
+#line 457 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7192 "cpp_re.inc"
+yy1064:
     yych = *++YYCURSOR;
- if (yych <= '/') goto yy1042;
- if (yych >= ':') goto yy1042;
-yy1048:
+ goto yy1063;
+yy1065:
     yyaccept = 1;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
- if (yych <= 'K') {
- if (yych <= 'D') {
- if (yych <= '/') goto yy1050;
- if (yych <= '9') goto yy1048;
+ if (yybm[0+yych] & 32) {
+ goto yy1065;
+ }
+ if (yych <= 'L') {
+ if (yych <= 'E') {
+ if (yych >= 'E') goto yy1068;
         } else {
- if (yych <= 'E') goto yy1051;
- if (yych <= 'F') goto yy1052;
+ if (yych <= 'F') goto yy1069;
+ if (yych >= 'L') goto yy1070;
         }
     } else {
- if (yych <= 'e') {
- if (yych <= 'L') goto yy1053;
- if (yych >= 'e') goto yy1051;
+ if (yych <= 'f') {
+ if (yych <= 'd') goto yy1067;
+ if (yych <= 'e') goto yy1068;
+ goto yy1069;
         } else {
- if (yych <= 'f') goto yy1052;
- if (yych == 'l') goto yy1053;
+ if (yych == 'l') goto yy1070;
         }
     }
-yy1050:
-#line 419 "cpp.re"
+yy1067:
+#line 452 "cpp.re"
     { BOOST_WAVE_RET(T_FLOATLIT); }
-#line 7077 "cpp_re.inc"
-yy1051:
+#line 7223 "cpp_re.inc"
+yy1068:
     yych = *++YYCURSOR;
     if (yych <= ',') {
- if (yych == '+') goto yy1055;
- goto yy1042;
+ if (yych == '+') goto yy1072;
+ goto yy1058;
     } else {
- if (yych <= '-') goto yy1055;
- if (yych <= '/') goto yy1042;
- if (yych <= '9') goto yy1056;
- goto yy1042;
- }
-yy1052:
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy1054;
- if (yych == 'l') goto yy1054;
- goto yy1050;
-yy1053:
+ if (yych <= '-') goto yy1072;
+ if (yych <= '/') goto yy1058;
+ if (yych <= '9') goto yy1073;
+ goto yy1058;
+ }
+yy1069:
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1071;
+ if (yych == 'l') goto yy1071;
+ goto yy1067;
+yy1070:
     yych = *++YYCURSOR;
- if (yych == 'F') goto yy1054;
- if (yych != 'f') goto yy1050;
-yy1054:
+ if (yych == 'F') goto yy1071;
+ if (yych != 'f') goto yy1067;
+yy1071:
     yych = *++YYCURSOR;
- goto yy1050;
-yy1055:
+ goto yy1067;
+yy1072:
     yych = *++YYCURSOR;
- if (yych <= '/') goto yy1042;
- if (yych >= ':') goto yy1042;
-yy1056:
+ if (yych <= '/') goto yy1058;
+ if (yych >= ':') goto yy1058;
+yy1073:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= 'K') {
         if (yych <= '9') {
- if (yych <= '/') goto yy1050;
- goto yy1056;
+ if (yych <= '/') goto yy1067;
+ goto yy1073;
         } else {
- if (yych == 'F') goto yy1052;
- goto yy1050;
+ if (yych == 'F') goto yy1069;
+ goto yy1067;
         }
     } else {
         if (yych <= 'f') {
- if (yych <= 'L') goto yy1053;
- if (yych <= 'e') goto yy1050;
- goto yy1052;
+ if (yych <= 'L') goto yy1070;
+ if (yych <= 'e') goto yy1067;
+ goto yy1069;
         } else {
- if (yych == 'l') goto yy1053;
- goto yy1050;
+ if (yych == 'l') goto yy1070;
+ goto yy1067;
         }
     }
-yy1058:
+yy1075:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych == '.') goto yy1065;
+ if (yych <= '/') goto yy1060;
+ goto yy1075;
+ } else {
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy1060;
+ } else {
+ if (yych != 'e') goto yy1060;
+ }
+ }
+yy1077:
     yych = *++YYCURSOR;
     if (yych <= ',') {
- if (yych != '+') goto yy1042;
+ if (yych != '+') goto yy1058;
     } else {
- if (yych <= '-') goto yy1059;
- if (yych <= '/') goto yy1042;
- if (yych <= '9') goto yy1060;
- goto yy1042;
+ if (yych <= '-') goto yy1078;
+ if (yych <= '/') goto yy1058;
+ if (yych <= '9') goto yy1079;
+ goto yy1058;
     }
-yy1059:
+yy1078:
     yych = *++YYCURSOR;
- if (yych <= '/') goto yy1042;
- if (yych >= ':') goto yy1042;
-yy1060:
+ if (yych <= '/') goto yy1058;
+ if (yych >= ':') goto yy1058;
+yy1079:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
     if (yych <= 'K') {
         if (yych <= '9') {
- if (yych <= '/') goto yy1050;
- goto yy1060;
+ if (yych <= '/') goto yy1067;
+ goto yy1079;
         } else {
- if (yych == 'F') goto yy1052;
- goto yy1050;
+ if (yych == 'F') goto yy1069;
+ goto yy1067;
         }
     } else {
         if (yych <= 'f') {
- if (yych <= 'L') goto yy1053;
- if (yych <= 'e') goto yy1050;
- goto yy1052;
+ if (yych <= 'L') goto yy1070;
+ if (yych <= 'e') goto yy1067;
+ goto yy1069;
         } else {
- if (yych == 'l') goto yy1053;
- goto yy1050;
+ if (yych == 'l') goto yy1070;
+ goto yy1067;
         }
     }
-yy1062:
+yy1081:
     yyaccept = 0;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 64) {
- goto yy1062;
+ goto yy1081;
     }
     if (yych <= '9') {
- if (yych == '.') goto yy1048;
- if (yych <= '/') goto yy1044;
- goto yy1065;
+ if (yych == '.') goto yy1065;
+ if (yych <= '/') goto yy1060;
+ goto yy1084;
     } else {
         if (yych <= 'E') {
- if (yych <= 'D') goto yy1044;
- goto yy1058;
+ if (yych <= 'D') goto yy1060;
+ goto yy1077;
         } else {
- if (yych == 'e') goto yy1058;
- goto yy1044;
+ if (yych == 'e') goto yy1077;
+ goto yy1060;
         }
     }
-yy1064:
+yy1083:
     yych = *++YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1067;
+ goto yy1086;
     }
- goto yy1042;
-yy1065:
+ goto yy1058;
+yy1084:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
     if (yych <= '9') {
- if (yych == '.') goto yy1048;
- if (yych <= '/') goto yy1042;
- goto yy1065;
+ if (yych == '.') goto yy1065;
+ if (yych <= '/') goto yy1058;
+ goto yy1084;
     } else {
         if (yych <= 'E') {
- if (yych <= 'D') goto yy1042;
- goto yy1058;
+ if (yych <= 'D') goto yy1058;
+ goto yy1077;
         } else {
- if (yych == 'e') goto yy1058;
- goto yy1042;
+ if (yych == 'e') goto yy1077;
+ goto yy1058;
         }
     }
-yy1067:
+yy1086:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1067;
+ goto yy1086;
     }
- goto yy1044;
+ goto yy1060;
 }
-#line 422 "cpp.re"
+#line 458 "cpp.re"
 
     }
 }
 
-/* this subscanner is called, whenever a Integer was recognized */
+/* this subscanner is called, whenever an Integer was recognized */
 integer_suffix:
 {
     if (s->enable_ms_extensions) {
     
-#line 7226 "cpp_re.inc"
+#line 7388 "cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *(YYMARKER = YYCURSOR);
- if (yych <= 'h') {
- if (yych <= 'L') {
- if (yych >= 'L') goto yy1073;
+ yych = *YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy1090;
+ if (yych <= '\r') goto yy1095;
         } else {
- if (yych == 'U') goto yy1072;
+ if (yych == 'L') goto yy1092;
+ if (yych <= 'T') goto yy1095;
+ goto yy1091;
         }
     } else {
- if (yych <= 'l') {
- if (yych <= 'i') goto yy1074;
- if (yych >= 'l') goto yy1073;
+ if (yych <= 'k') {
+ if (yych == 'i') goto yy1093;
+ goto yy1095;
         } else {
- if (yych == 'u') goto yy1072;
+ if (yych <= 'l') goto yy1092;
+ if (yych == 'u') goto yy1091;
+ goto yy1095;
         }
     }
-yy1071:
-#line 435 "cpp.re"
+yy1090:
+#line 471 "cpp.re"
     { BOOST_WAVE_RET(T_INTLIT); }
-#line 7248 "cpp_re.inc"
-yy1072:
+#line 7415 "cpp_re.inc"
+yy1091:
     yych = *++YYCURSOR;
- if (yych == 'L') goto yy1081;
- if (yych == 'l') goto yy1081;
- goto yy1071;
-yy1073:
+ if (yych == 'L') goto yy1102;
+ if (yych == 'l') goto yy1102;
+ goto yy1090;
+yy1092:
     yych = *++YYCURSOR;
     if (yych <= 'U') {
- if (yych == 'L') goto yy1080;
- if (yych <= 'T') goto yy1071;
- goto yy1079;
+ if (yych == 'L') goto yy1101;
+ if (yych <= 'T') goto yy1090;
+ goto yy1100;
     } else {
         if (yych <= 'l') {
- if (yych <= 'k') goto yy1071;
- goto yy1080;
+ if (yych <= 'k') goto yy1090;
+ goto yy1101;
         } else {
- if (yych == 'u') goto yy1079;
- goto yy1071;
+ if (yych == 'u') goto yy1100;
+ goto yy1090;
         }
     }
-yy1074:
+yy1093:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '6') goto yy1096;
+yy1094:
+#line 474 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7442 "cpp_re.inc"
+yy1095:
     yych = *++YYCURSOR;
- if (yych == '6') goto yy1076;
-yy1075:
- YYCURSOR = YYMARKER;
- goto yy1071;
-yy1076:
+ goto yy1094;
+yy1096:
     yych = *++YYCURSOR;
- if (yych != '4') goto yy1075;
-yy1077:
+ if (yych == '4') goto yy1098;
+ YYCURSOR = YYMARKER;
+ goto yy1094;
+yy1098:
     ++YYCURSOR;
-yy1078:
-#line 432 "cpp.re"
+yy1099:
+#line 468 "cpp.re"
     { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7283 "cpp_re.inc"
-yy1079:
+#line 7456 "cpp_re.inc"
+yy1100:
     yych = *++YYCURSOR;
- goto yy1071;
-yy1080:
+ goto yy1090;
+yy1101:
     yych = *++YYCURSOR;
- if (yych == 'U') goto yy1077;
- if (yych == 'u') goto yy1077;
- goto yy1078;
-yy1081:
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == 'L') goto yy1077;
- if (yych == 'l') goto yy1077;
- goto yy1071;
+ if (yych == 'U') goto yy1098;
+ if (yych == 'u') goto yy1098;
+ goto yy1099;
+yy1102:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == 'L') goto yy1098;
+ if (yych == 'l') goto yy1098;
+ goto yy1090;
 }
-#line 436 "cpp.re"
+#line 475 "cpp.re"
 
     }
     else {
     
-#line 7303 "cpp_re.inc"
+#line 7476 "cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
- if (yych <= 'U') {
- if (yych == 'L') goto yy1086;
- if (yych >= 'U') goto yy1085;
+ if (yych <= 'T') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy1105;
+ if (yych <= '\r') goto yy1108;
+ } else {
+ if (yych == 'L') goto yy1107;
+ goto yy1108;
+ }
     } else {
         if (yych <= 'l') {
- if (yych >= 'l') goto yy1086;
+ if (yych <= 'U') goto yy1106;
+ if (yych <= 'k') goto yy1108;
+ goto yy1107;
         } else {
- if (yych == 'u') goto yy1085;
+ if (yych == 'u') goto yy1106;
+ goto yy1108;
         }
     }
-yy1084:
-#line 444 "cpp.re"
+yy1105:
+#line 483 "cpp.re"
     { BOOST_WAVE_RET(T_INTLIT); }
-#line 7321 "cpp_re.inc"
-yy1085:
+#line 7502 "cpp_re.inc"
+yy1106:
     yych = *++YYCURSOR;
- if (yych == 'L') goto yy1091;
- if (yych == 'l') goto yy1091;
- goto yy1084;
-yy1086:
+ if (yych == 'L') goto yy1114;
+ if (yych == 'l') goto yy1114;
+ goto yy1105;
+yy1107:
     yych = *++YYCURSOR;
     if (yych <= 'U') {
- if (yych == 'L') goto yy1088;
- if (yych <= 'T') goto yy1084;
+ if (yych == 'L') goto yy1111;
+ if (yych <= 'T') goto yy1105;
+ goto yy1110;
     } else {
         if (yych <= 'l') {
- if (yych <= 'k') goto yy1084;
- goto yy1088;
+ if (yych <= 'k') goto yy1105;
+ goto yy1111;
         } else {
- if (yych != 'u') goto yy1084;
+ if (yych == 'u') goto yy1110;
+ goto yy1105;
         }
     }
+yy1108:
+ ++YYCURSOR;
+#line 486 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7527 "cpp_re.inc"
+yy1110:
     yych = *++YYCURSOR;
- goto yy1084;
-yy1088:
+ goto yy1105;
+yy1111:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == 'U') goto yy1090;
- if (yych == 'u') goto yy1090;
-yy1089:
-#line 441 "cpp.re"
+ if ((yych = *YYCURSOR) == 'U') goto yy1113;
+ if (yych == 'u') goto yy1113;
+yy1112:
+#line 480 "cpp.re"
     { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7349 "cpp_re.inc"
-yy1090:
+#line 7538 "cpp_re.inc"
+yy1113:
     yych = *++YYCURSOR;
- goto yy1089;
-yy1091:
+ goto yy1112;
+yy1114:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == 'L') goto yy1090;
- if (yych == 'l') goto yy1090;
- goto yy1084;
+ if ((yych = *YYCURSOR) == 'L') goto yy1113;
+ if (yych == 'l') goto yy1113;
+ goto yy1105;
 }
-#line 445 "cpp.re"
+#line 487 "cpp.re"
 
     }
 }
+
+/* this subscanner is invoked for C++0x extended character literals */
+extcharlit:
+{
+
+#line 7557 "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 yy1117;
+ if (yych <= '\t') goto yy1118;
+ goto yy1122;
+ } else {
+ if (yych <= '\f') goto yy1118;
+ if (yych <= '\r') goto yy1122;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '\'') goto yy1122;
+ goto yy1118;
+ } else {
+ if (yych <= '?') goto yy1120;
+ if (yych == '\\') goto yy1121;
+ goto yy1118;
+ }
+ }
+yy1117:
+ YYCURSOR = YYMARKER;
+ goto yy1119;
+yy1118:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\'') goto yy1130;
+yy1119:
+#line 499 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7624 "cpp_re.inc"
+yy1120:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '\'') goto yy1130;
+ if (yych == '?') goto yy1145;
+ goto yy1119;
+yy1121:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1125;
+ goto yy1119;
+ } else {
+ if (yych <= '\'') goto yy1125;
+ if (yych <= '/') goto yy1119;
+ goto yy1128;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1126;
+ goto yy1119;
+ } else {
+ if (yych <= 'U') goto yy1124;
+ if (yych == '\\') goto yy1125;
+ goto yy1119;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1125;
+ if (yych <= 'e') goto yy1119;
+ goto yy1125;
+ } else {
+ if (yych == 'n') goto yy1125;
+ if (yych <= 'q') goto yy1119;
+ goto yy1125;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1119;
+ if (yych <= 't') goto yy1125;
+ goto yy1123;
+ } else {
+ if (yych <= 'v') goto yy1125;
+ if (yych == 'x') goto yy1127;
+ goto yy1119;
+ }
+ }
+ }
+yy1122:
+ yych = *++YYCURSOR;
+ goto yy1119;
+yy1123:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych <= '9') goto yy1142;
+ goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1142;
+ if (yych <= '`') goto yy1117;
+ if (yych <= 'f') goto yy1142;
+ goto yy1117;
+ }
+yy1124:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych <= '9') goto yy1135;
+ goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1135;
+ if (yych <= '`') goto yy1117;
+ if (yych <= 'f') goto yy1135;
+ goto yy1117;
+ }
+yy1125:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1130;
+ goto yy1117;
+yy1126:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1130;
+ if (yych == '?') goto yy1134;
+ goto yy1117;
+yy1127:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1117;
+ goto yy1133;
+yy1128:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1130;
+ if (yych <= '/') goto yy1117;
+ if (yych >= '8') goto yy1117;
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1130;
+ if (yych <= '/') goto yy1117;
+ if (yych <= '7') goto yy1125;
+ goto yy1117;
+yy1130:
+ ++YYCURSOR;
+#line 496 "cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 7729 "cpp_re.inc"
+yy1132:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy1133:
+ if (yybm[0+yych] & 128) {
+ goto yy1132;
+ }
+ if (yych == '\'') goto yy1130;
+ goto yy1117;
+yy1134:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1125;
+ goto yy1117;
+yy1135:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1136;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1136:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1137;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1137:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1138;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1138:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1139;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1139:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1140;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1140:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1141;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1141:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych <= '9') goto yy1125;
+ goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1125;
+ if (yych <= '`') goto yy1117;
+ if (yych <= 'f') goto yy1125;
+ goto yy1117;
+ }
+yy1142:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1143;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1143:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1144;
+ if (yych <= '`') goto yy1117;
+ if (yych >= 'g') goto yy1117;
+ }
+yy1144:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1117;
+ if (yych <= '9') goto yy1125;
+ goto yy1117;
+ } else {
+ if (yych <= 'F') goto yy1125;
+ if (yych <= '`') goto yy1117;
+ if (yych <= 'f') goto yy1125;
+ goto yy1117;
+ }
+yy1145:
+ yych = *++YYCURSOR;
+ if (yych != '/') goto yy1117;
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1125;
+ goto yy1117;
+ } else {
+ if (yych <= '\'') goto yy1125;
+ if (yych <= '/') goto yy1117;
+ goto yy1128;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1126;
+ goto yy1117;
+ } else {
+ if (yych <= 'U') goto yy1124;
+ if (yych == '\\') goto yy1125;
+ goto yy1117;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1125;
+ if (yych <= 'e') goto yy1117;
+ goto yy1125;
+ } else {
+ if (yych == 'n') goto yy1125;
+ if (yych <= 'q') goto yy1117;
+ goto yy1125;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1117;
+ if (yych <= 't') goto yy1125;
+ goto yy1123;
+ } else {
+ if (yych <= 'v') goto yy1125;
+ if (yych == 'x') goto yy1127;
+ goto yy1117;
+ }
+ }
+ }
+}
+#line 500 "cpp.re"
+
+}
+
+/* this subscanner is invoked for C++0x extended character string literals */
+extstringlit:
+{
+
+#line 7904 "cpp_re.inc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 16, 0, 16, 16, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 16, 0, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 16, 16, 16, 16, 16, 32,
+ 16, 144, 144, 144, 144, 144, 144, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 64, 16, 16, 16,
+ 16, 144, 144, 144, 144, 144, 144, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1149;
+ if (yych <= '\t') goto yy1150;
+ goto yy1156;
+ } else {
+ if (yych <= '\f') goto yy1150;
+ if (yych <= '\r') goto yy1156;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '"') goto yy1154;
+ goto yy1150;
+ } else {
+ if (yych <= '?') goto yy1152;
+ if (yych == '\\') goto yy1153;
+ goto yy1150;
+ }
+ }
+yy1149:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 0) {
+ goto yy1151;
+ } else {
+ goto yy1155;
+ }
+yy1150:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1160;
+ } else {
+ if (yych <= '\f') goto yy1160;
+ if (yych >= ' ') goto yy1160;
+ }
+yy1151:
+#line 511 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7982 "cpp_re.inc"
+yy1152:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy1168;
+ }
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1160;
+ goto yy1151;
+ } else {
+ if (yych <= '\f') goto yy1160;
+ if (yych <= 0x1F) goto yy1151;
+ goto yy1160;
+ }
+yy1153:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1159;
+ goto yy1151;
+ } else {
+ if (yych <= '\'') goto yy1159;
+ if (yych <= '/') goto yy1151;
+ goto yy1163;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1161;
+ goto yy1151;
+ } else {
+ if (yych <= 'U') goto yy1158;
+ if (yych == '\\') goto yy1159;
+ goto yy1151;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1159;
+ if (yych <= 'e') goto yy1151;
+ goto yy1159;
+ } else {
+ if (yych == 'n') goto yy1159;
+ if (yych <= 'q') goto yy1151;
+ goto yy1159;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1151;
+ if (yych <= 't') goto yy1159;
+ goto yy1157;
+ } else {
+ if (yych <= 'v') goto yy1159;
+ if (yych == 'x') goto yy1162;
+ goto yy1151;
+ }
+ }
+ }
+yy1154:
+ ++YYCURSOR;
+yy1155:
+#line 508 "cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 8048 "cpp_re.inc"
+yy1156:
+ yych = *++YYCURSOR;
+ goto yy1151;
+yy1157:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych <= '9') goto yy1197;
+ goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1197;
+ if (yych <= '`') goto yy1149;
+ if (yych <= 'f') goto yy1197;
+ goto yy1149;
+ }
+yy1158:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych <= '9') goto yy1190;
+ goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1190;
+ if (yych <= '`') goto yy1149;
+ if (yych <= 'f') goto yy1190;
+ goto yy1149;
+ }
+yy1159:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy1160:
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1166;
+ goto yy1167;
+yy1161:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1189;
+ goto yy1167;
+yy1162:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1176;
+ }
+ goto yy1149;
+yy1163:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= '\f') goto yy1159;
+ if (yych <= 0x1F) goto yy1149;
+ if (yych <= '!') goto yy1159;
+ goto yy1165;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy1159;
+ if (yych >= '8') goto yy1159;
+ } else {
+ if (yych <= '?') goto yy1166;
+ if (yych == '\\') goto yy1167;
+ goto yy1159;
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1166;
+ goto yy1167;
+yy1165:
+ yych = *++YYCURSOR;
+ goto yy1155;
+yy1166:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1168;
+yy1167:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= '\'') goto yy1159;
+ if (yych <= '/') goto yy1149;
+ goto yy1163;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1161;
+ goto yy1149;
+ } else {
+ if (yych <= 'U') goto yy1158;
+ if (yych == '\\') goto yy1159;
+ goto yy1149;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1159;
+ if (yych <= 'e') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych == 'n') goto yy1159;
+ if (yych <= 'q') goto yy1149;
+ goto yy1159;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1149;
+ if (yych <= 't') goto yy1159;
+ goto yy1157;
+ } else {
+ if (yych <= 'v') goto yy1159;
+ if (yych == 'x') goto yy1162;
+ goto yy1149;
+ }
+ }
+ }
+yy1168:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1168;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= '\f') goto yy1159;
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '.') goto yy1159;
+ } else {
+ if (yych == '\\') goto yy1167;
+ goto yy1159;
+ }
+ }
+yy1170:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy1170;
+ }
+ if (yych <= '7') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1174;
+ if (yych <= '/') goto yy1159;
+ goto yy1163;
+ }
+ }
+ } else {
+ if (yych <= 'U') {
+ if (yych == '?') goto yy1175;
+ if (yych <= 'T') goto yy1159;
+ goto yy1173;
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 't') goto yy1159;
+ } else {
+ if (yych == 'x') goto yy1176;
+ goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ goto yy1186;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ goto yy1186;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych <= 'f') goto yy1186;
+ goto yy1159;
+ }
+ }
+ }
+yy1173:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ goto yy1179;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ goto yy1179;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych <= 'f') goto yy1179;
+ goto yy1159;
+ }
+ }
+ }
+yy1174:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1155;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1166;
+ goto yy1167;
+yy1175:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1178;
+ goto yy1167;
+yy1176:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1176;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= '\f') goto yy1159;
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ }
+ } else {
+ if (yych <= '?') {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '>') goto yy1159;
+ goto yy1166;
+ } else {
+ if (yych == '\\') goto yy1167;
+ goto yy1159;
+ }
+ }
+yy1178:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy1168;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= '\f') goto yy1159;
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '.') goto yy1159;
+ goto yy1170;
+ } else {
+ if (yych == '\\') goto yy1167;
+ goto yy1159;
+ }
+ }
+yy1179:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1166;
+ goto yy1167;
+yy1186:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '9') {
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy1159;
+ if (yych <= '\n') goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '!') {
+ if (yych <= 0x1F) goto yy1149;
+ goto yy1159;
+ } else {
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1159;
+ }
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '?') goto yy1166;
+ if (yych <= '@') goto yy1159;
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '[') goto yy1159;
+ goto yy1167;
+ } else {
+ if (yych <= '`') goto yy1159;
+ if (yych >= 'g') goto yy1159;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1166;
+ goto yy1167;
+yy1189:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 16) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1149;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '[') goto yy1168;
+ goto yy1167;
+yy1190:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1191;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1191:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1192;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1192:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1193;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1193:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1194;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1194:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1195;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1195:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1196;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1196:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych <= '9') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1159;
+ if (yych <= '`') goto yy1149;
+ if (yych <= 'f') goto yy1159;
+ goto yy1149;
+ }
+yy1197:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1198;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1198:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych >= ':') goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1199;
+ if (yych <= '`') goto yy1149;
+ if (yych >= 'g') goto yy1149;
+ }
+yy1199:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1149;
+ if (yych <= '9') goto yy1159;
+ goto yy1149;
+ } else {
+ if (yych <= 'F') goto yy1159;
+ if (yych <= '`') goto yy1149;
+ if (yych <= 'f') goto yy1159;
+ goto yy1149;
+ }
+}
+#line 512 "cpp.re"
+
+}
+
+extrawstringlit:
+{
+
+#line 8823 "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 yy1202;
+ if (yych <= '\t') goto yy1203;
+ goto yy1207;
+ } else {
+ if (yych <= '\f') goto yy1203;
+ if (yych <= '\r') goto yy1209;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych == '"') goto yy1210;
+ goto yy1203;
+ } else {
+ if (yych <= '?') goto yy1205;
+ if (yych == '\\') goto yy1206;
+ goto yy1203;
+ }
+ }
+yy1202:
+ YYCURSOR = YYMARKER;
+ goto yy1204;
+yy1203:
+ ++YYCURSOR;
+yy1204:
+#line 519 "cpp.re"
+ {
+ goto extrawstringlit;
+ }
+#line 8891 "cpp_re.inc"
+yy1205:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1231;
+ goto yy1204;
+yy1206:
+ yych = *++YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy1203;
+ goto yy1202;
+ } else {
+ if (yych <= '\'') goto yy1203;
+ if (yych <= '/') goto yy1202;
+ goto yy1216;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy1214;
+ goto yy1202;
+ } else {
+ if (yych <= 'U') goto yy1213;
+ if (yych == '\\') goto yy1203;
+ goto yy1202;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy1203;
+ if (yych <= 'e') goto yy1202;
+ goto yy1203;
+ } else {
+ if (yych == 'n') goto yy1203;
+ if (yych <= 'q') goto yy1202;
+ goto yy1203;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy1202;
+ if (yych <= 't') goto yy1203;
+ goto yy1212;
+ } else {
+ if (yych <= 'v') goto yy1203;
+ if (yych == 'x') goto yy1215;
+ goto yy1202;
+ }
+ }
+ }
+yy1207:
+ ++YYCURSOR;
+yy1208:
+#line 524 "cpp.re"
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringlit;
+ }
+#line 8950 "cpp_re.inc"
+yy1209:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy1207;
+ goto yy1208;
+yy1210:
+ ++YYCURSOR;
+#line 530 "cpp.re"
+ { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
+#line 8959 "cpp_re.inc"
+yy1212:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych <= '9') goto yy1228;
+ goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1228;
+ if (yych <= '`') goto yy1202;
+ if (yych <= 'f') goto yy1228;
+ goto yy1202;
+ }
+yy1213:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych <= '9') goto yy1221;
+ goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1221;
+ if (yych <= '`') goto yy1202;
+ if (yych <= 'f') goto yy1221;
+ goto yy1202;
+ }
+yy1214:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1220;
+ goto yy1204;
+yy1215:
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1218;
+ }
+ goto yy1202;
+yy1216:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy1204;
+ if (yych >= '8') goto yy1204;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy1204;
+ if (yych <= '7') goto yy1203;
+ goto yy1204;
+yy1218:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy1218;
+ }
+ goto yy1204;
+yy1220:
+ yych = *++YYCURSOR;
+ if (yych == '/') goto yy1203;
+ goto yy1202;
+yy1221:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1222;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1222:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1223;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1223:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1224;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1224:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1225;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1225:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1226;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1226:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1227;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1227:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych <= '9') goto yy1203;
+ goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1203;
+ if (yych <= '`') goto yy1202;
+ if (yych <= 'f') goto yy1203;
+ goto yy1202;
+ }
+yy1228:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1229;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1229:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych >= ':') goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1230;
+ if (yych <= '`') goto yy1202;
+ if (yych >= 'g') goto yy1202;
+ }
+yy1230:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1202;
+ if (yych <= '9') goto yy1203;
+ goto yy1202;
+ } else {
+ if (yych <= 'F') goto yy1203;
+ if (yych <= '`') goto yy1202;
+ if (yych <= 'f') goto yy1203;
+ goto yy1202;
+ }
+yy1231:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '/') goto yy1206;
+ goto yy1202;
+}
+#line 531 "cpp.re"
+
+}

Modified: trunk/libs/wave/src/cpplexer/re2clex/strict_cpp.re
==============================================================================
--- trunk/libs/wave/src/cpplexer/re2clex/strict_cpp.re (original)
+++ trunk/libs/wave/src/cpplexer/re2clex/strict_cpp.re 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -248,16 +248,46 @@
     "->" { BOOST_WAVE_RET(T_ARROW); }
     "??/" { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
 
-
- ([a-zA-Z_] | UniversalChar) ([a-zA-Z_0-9] | UniversalChar)*
- { BOOST_WAVE_RET(T_IDENTIFIER); }
-
- "L"? (['] (EscapeSequence|any\[\n\r\\']|UniversalChar)+ ['])
+ "L"? (['] (EscapeSequence | UniversalChar | any\[\n\r\\'])+ ['])
         { BOOST_WAVE_RET(T_CHARLIT); }
     
- "L"? (["] (EscapeSequence|any\[\n\r\\"]|UniversalChar)* ["])
+ "L"? (["] (EscapeSequence | UniversalChar | any\[\n\r\\"])* ["])
         { BOOST_WAVE_RET(T_STRINGLIT); }
     
+ "L"? "R" ["]
+ {
+ if (s->act_in_cpp0x_mode)
+ 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)
+ 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); }
@@ -411,6 +441,9 @@
     /*!re2c
         "."? Digit (Digit | NonDigit | ExponentStart | ".")*
             { BOOST_WAVE_RET(T_PP_NUMBER); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
     else {
@@ -419,11 +452,14 @@
             { BOOST_WAVE_RET(T_FLOATLIT); }
             
         Integer { goto integer_suffix; }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
 }
 
-/* this subscanner is called, whenever a Integer was recognized */
+/* this subscanner is called, whenever an Integer was recognized */
 integer_suffix:
 {
     if (s->enable_ms_extensions) {
@@ -433,6 +469,9 @@
 
         IntegerSuffix?
             { BOOST_WAVE_RET(T_INTLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
     else {
@@ -442,6 +481,52 @@
 
         IntegerSuffix?
             { BOOST_WAVE_RET(T_INTLIT); }
+
+ any
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
     */
     }
 }
+
+/* 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:
+{
+ /*!re2c
+ (EscapeSequence | UniversalChar | any\[\r\n\\"])
+ {
+ goto extrawstringlit;
+ }
+
+ Newline
+ {
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto extrawstringlit;
+ }
+
+ ["] { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
+ */
+}

Modified: trunk/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc
==============================================================================
--- trunk/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc (original)
+++ trunk/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc 2010-12-08 20:44:51 EST (Wed, 08 Dec 2010)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Tue Dec 07 10:44:39 2010 */
+/* Generated by re2c 0.13.5 on Wed Dec 08 19:42:44 2010 */
 #line 1 "strict_cpp.re"
 /*=============================================================================
     Boost.Wave: A Standard compliant C++ preprocessor library
@@ -28,76 +28,76 @@
     static const unsigned char yybm[] = {
         /* table 1 .. 8: 0 */
           0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 32, 58, 58, 64, 0, 0,
+ 0, 60, 32, 60, 60, 64, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
- 58, 58, 50, 58, 58, 58, 58, 56,
- 58, 58, 154, 58, 58, 58, 58, 58,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 58, 58, 58, 58, 42, 56,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 57, 58, 58, 62,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
+ 60, 60, 52, 60, 60, 60, 60, 56,
+ 60, 60, 156, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 44, 57,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 58, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
         /* table 9 .. 12: 256 */
           0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 48, 48, 0, 0, 0,
+ 0, 80, 0, 80, 80, 0, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
           0, 0, 0, 0, 0, 0, 0, 0,
- 48, 32, 0, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
+ 80, 64, 0, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 64, 64, 64, 64, 64, 0,
+ 64, 224, 224, 224, 224, 224, 224, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 64, 0, 64, 64, 96,
+ 64, 224, 224, 224, 224, 224, 224, 96,
          96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 32, 32, 32, 32, 32, 128,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 0, 32, 32, 32,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
     };
 
     if ((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
     yych = *YYCURSOR;
     switch (yych) {
- case 0x00: goto yy88;
+ case 0x00: goto yy90;
     case 0x01:
     case 0x02:
     case 0x03:
@@ -123,19 +123,19 @@
     case 0x1C:
     case 0x1D:
     case 0x1E:
- case 0x1F: goto yy91;
+ case 0x1F: goto yy93;
     case '\t':
     case '\v':
- case '\f': goto yy82;
- case '\n': goto yy85;
- case '\r': goto yy87;
- case ' ': goto yy84;
+ case '\f': goto yy84;
+ case '\n': goto yy87;
+ case '\r': goto yy89;
+ case ' ': goto yy86;
     case '!': goto yy68;
- case '"': goto yy81;
+ case '"': goto yy79;
     case '#': goto yy45;
     case '%': goto yy37;
     case '&': goto yy62;
- case '\'': goto yy80;
+ case '\'': goto yy77;
     case '(': goto yy47;
     case ')': goto yy49;
     case '*': goto yy57;
@@ -176,10 +176,8 @@
     case 'O':
     case 'P':
     case 'Q':
- case 'R':
     case 'S':
     case 'T':
- case 'U':
     case 'V':
     case 'W':
     case 'X':
@@ -190,10 +188,12 @@
     case 'k':
     case 'q':
     case 'y':
- case 'z': goto yy76;
- case 'L': goto yy77;
+ case 'z': goto yy82;
+ case 'L': goto yy76;
+ case 'R': goto yy80;
+ case 'U': goto yy81;
     case '[': goto yy39;
- case '\\': goto yy78;
+ case '\\': goto yy83;
     case ']': goto yy41;
     case '^': goto yy59;
     case '_': goto yy28;
@@ -221,15 +221,15 @@
     case '|': goto yy64;
     case '}': goto yy35;
     case '~': goto yy66;
- default: goto yy90;
+ default: goto yy92;
     }
 yy2:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '.') {
- if (yych == '*') goto yy985;
+ if (yych == '*') goto yy998;
     } else {
- if (yych <= '/') goto yy983;
- if (yych == '=') goto yy981;
+ if (yych <= '/') goto yy996;
+ if (yych == '=') goto yy994;
     }
 #line 188 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DIVIDE); }
@@ -238,11 +238,11 @@
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '-') {
- if (yych == '*') goto yy975;
+ if (yych == '*') goto yy988;
     } else {
- if (yych <= '.') goto yy977;
+ if (yych <= '.') goto yy990;
         if (yych <= '/') goto yy5;
- if (yych <= '9') goto yy978;
+ if (yych <= '9') goto yy991;
     }
 yy5:
 #line 174 "strict_cpp.re"
@@ -258,474 +258,524 @@
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'l': goto yy951;
- case 'n': goto yy952;
- case 's': goto yy953;
- case 'u': goto yy954;
- default: goto yy195;
+ case 'l': goto yy964;
+ case 'n': goto yy965;
+ case 's': goto yy966;
+ case 'u': goto yy967;
+ default: goto yy109;
     }
 yy9:
-#line 253 "strict_cpp.re"
+#line 290 "strict_cpp.re"
     { BOOST_WAVE_RET(T_IDENTIFIER); }
 #line 271 "strict_cpp_re.inc"
 yy10:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'n') {
- if (yych == 'i') goto yy933;
- goto yy195;
+ if (yych == 'i') goto yy946;
+ goto yy109;
     } else {
- if (yych <= 'o') goto yy934;
- if (yych == 'r') goto yy935;
- goto yy195;
+ if (yych <= 'o') goto yy947;
+ if (yych == 'r') goto yy948;
+ goto yy109;
     }
 yy11:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'a': goto yy880;
- case 'h': goto yy881;
- case 'l': goto yy882;
- case 'o': goto yy883;
- default: goto yy195;
+ case 'a': goto yy893;
+ case 'h': goto yy894;
+ case 'l': goto yy895;
+ case 'o': goto yy896;
+ default: goto yy109;
     }
 yy12:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'n') {
- if (yych == 'e') goto yy842;
- goto yy195;
+ if (yych == 'e') goto yy855;
+ goto yy109;
     } else {
- if (yych <= 'o') goto yy843;
- if (yych == 'y') goto yy845;
- goto yy195;
+ if (yych <= 'o') goto yy856;
+ if (yych == 'y') goto yy858;
+ goto yy109;
     }
 yy13:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'm') {
- if (yych == 'l') goto yy817;
- goto yy195;
+ if (yych == 'l') goto yy830;
+ goto yy109;
     } else {
- if (yych <= 'n') goto yy818;
- if (yych == 'x') goto yy819;
- goto yy195;
+ if (yych <= 'n') goto yy831;
+ if (yych == 'x') goto yy832;
+ goto yy109;
     }
 yy14:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'a': goto yy798;
- case 'l': goto yy799;
- case 'o': goto yy800;
- case 'r': goto yy801;
- default: goto yy195;
+ case 'a': goto yy811;
+ case 'l': goto yy812;
+ case 'o': goto yy813;
+ case 'r': goto yy814;
+ default: goto yy109;
     }
 yy15:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy794;
- goto yy195;
+ if (yych == 'o') goto yy807;
+ goto yy109;
 yy16:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'l') {
- if (yych == 'f') goto yy778;
- goto yy195;
+ if (yych == 'f') goto yy791;
+ goto yy109;
     } else {
- if (yych <= 'm') goto yy780;
- if (yych <= 'n') goto yy781;
- goto yy195;
+ if (yych <= 'm') goto yy793;
+ if (yych <= 'n') goto yy794;
+ goto yy109;
     }
 yy17:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy774;
- goto yy195;
+ if (yych == 'o') goto yy787;
+ goto yy109;
 yy18:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'u') goto yy767;
- goto yy195;
+ if (yych == 'u') goto yy780;
+ goto yy109;
 yy19:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
- if (yych == 'a') goto yy734;
- if (yych <= 'd') goto yy195;
- goto yy735;
+ if (yych == 'a') goto yy747;
+ if (yych <= 'd') goto yy109;
+ goto yy748;
     } else {
         if (yych <= 'o') {
- if (yych <= 'n') goto yy195;
- goto yy736;
+ if (yych <= 'n') goto yy109;
+ goto yy749;
         } else {
- if (yych == 'u') goto yy737;
- goto yy195;
+ if (yych == 'u') goto yy750;
+ goto yy109;
         }
     }
 yy20:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'p') goto yy720;
- if (yych == 'r') goto yy721;
- goto yy195;
+ if (yych == 'p') goto yy733;
+ if (yych == 'r') goto yy734;
+ goto yy109;
 yy21:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy699;
- if (yych == 'u') goto yy700;
- goto yy195;
+ if (yych == 'r') goto yy712;
+ if (yych == 'u') goto yy713;
+ goto yy109;
 yy22:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy671;
- goto yy195;
+ if (yych == 'e') goto yy684;
+ goto yy109;
 yy23:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 's') {
- if (yych <= 'g') goto yy195;
- if (yych <= 'h') goto yy625;
- if (yych <= 'i') goto yy626;
- goto yy195;
- } else {
- if (yych <= 't') goto yy627;
- if (yych == 'w') goto yy628;
- goto yy195;
+ if (yych <= 'g') goto yy109;
+ if (yych <= 'h') goto yy638;
+ if (yych <= 'i') goto yy639;
+ goto yy109;
+ } else {
+ if (yych <= 't') goto yy640;
+ if (yych == 'w') goto yy641;
+ goto yy109;
     }
 yy24:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
- if (yych == 'e') goto yy578;
- if (yych <= 'g') goto yy195;
- goto yy579;
+ if (yych == 'e') goto yy591;
+ if (yych <= 'g') goto yy109;
+ goto yy592;
     } else {
         if (yych <= 'r') {
- if (yych <= 'q') goto yy195;
- goto yy580;
+ if (yych <= 'q') goto yy109;
+ goto yy593;
         } else {
- if (yych == 'y') goto yy581;
- goto yy195;
+ if (yych == 'y') goto yy594;
+ goto yy109;
         }
     }
 yy25:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy561;
- if (yych == 's') goto yy562;
- goto yy195;
+ if (yych <= '8') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy129;
+ goto yy109;
+ } else {
+ if (yych <= '\'') goto yy131;
+ if (yych <= '7') goto yy109;
+ goto yy573;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == 'R') goto yy128;
+ goto yy109;
+ } else {
+ if (yych <= 'n') goto yy574;
+ if (yych == 's') goto yy575;
+ goto yy109;
+ }
+ }
 yy26:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy543;
- if (yych == 'o') goto yy544;
- goto yy195;
+ if (yych == 'i') goto yy555;
+ if (yych == 'o') goto yy556;
+ goto yy109;
 yy27:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'c') goto yy531;
- if (yych == 'h') goto yy532;
- goto yy195;
+ if (yych == 'c') goto yy543;
+ if (yych == 'h') goto yy544;
+ goto yy109;
 yy28:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case '_': goto yy442;
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'f': goto yy447;
- case 'i': goto yy448;
- case 's': goto yy449;
- default: goto yy195;
+ case '_': goto yy454;
+ case 'a': goto yy455;
+ case 'b': goto yy456;
+ case 'c': goto yy457;
+ case 'd': goto yy458;
+ case 'f': goto yy459;
+ case 'i': goto yy460;
+ case 's': goto yy461;
+ default: goto yy109;
     }
 yy29:
     ++YYCURSOR;
 #line 138 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE); }
-#line 449 "strict_cpp_re.inc"
+#line 465 "strict_cpp_re.inc"
 yy31:
     yyaccept = 2;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '?') goto yy407;
+ if (yych == '?') goto yy419;
 yy32:
 #line 163 "strict_cpp.re"
     { BOOST_WAVE_RET(T_QUESTION_MARK); }
-#line 457 "strict_cpp_re.inc"
+#line 473 "strict_cpp_re.inc"
 yy33:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= ':') {
- if (yych == '%') goto yy403;
- if (yych >= ':') goto yy401;
+ if (yych == '%') goto yy415;
+ if (yych >= ':') goto yy413;
     } else {
         if (yych <= ';') goto yy34;
- if (yych <= '<') goto yy399;
- if (yych <= '=') goto yy397;
+ if (yych <= '<') goto yy411;
+ if (yych <= '=') goto yy409;
     }
 yy34:
 #line 204 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LESS); }
-#line 471 "strict_cpp_re.inc"
+#line 487 "strict_cpp_re.inc"
 yy35:
     ++YYCURSOR;
 #line 141 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE); }
-#line 476 "strict_cpp_re.inc"
+#line 492 "strict_cpp_re.inc"
 yy37:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '<') {
- if (yych == ':') goto yy388;
+ if (yych == ':') goto yy400;
     } else {
- if (yych <= '=') goto yy390;
- if (yych <= '>') goto yy392;
+ if (yych <= '=') goto yy402;
+ if (yych <= '>') goto yy404;
     }
 #line 189 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PERCENT); }
-#line 487 "strict_cpp_re.inc"
+#line 503 "strict_cpp_re.inc"
 yy39:
     ++YYCURSOR;
 #line 144 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET); }
-#line 492 "strict_cpp_re.inc"
+#line 508 "strict_cpp_re.inc"
 yy41:
     ++YYCURSOR;
 #line 147 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET); }
-#line 497 "strict_cpp_re.inc"
+#line 513 "strict_cpp_re.inc"
 yy43:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == ':') goto yy384;
- if (yych == '>') goto yy386;
+ if ((yych = *YYCURSOR) == ':') goto yy396;
+ if (yych == '>') goto yy398;
 #line 161 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COLON); }
-#line 504 "strict_cpp_re.inc"
+#line 520 "strict_cpp_re.inc"
 yy45:
     yyaccept = 3;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'c') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy261;
+ if (yych == '\t') goto yy273;
             } else {
- if (yych <= '\f') goto yy261;
- if (yych >= ' ') goto yy261;
+ if (yych <= '\f') goto yy273;
+ if (yych >= ' ') goto yy273;
             }
         } else {
             if (yych <= '.') {
- if (yych == '#') goto yy272;
+ if (yych == '#') goto yy284;
             } else {
- if (yych <= '/') goto yy261;
- if (yych == '?') goto yy271;
+ if (yych <= '/') goto yy273;
+ if (yych == '?') goto yy283;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'i') {
- if (yych <= 'e') goto yy261;
- if (yych >= 'i') goto yy261;
+ if (yych <= 'e') goto yy273;
+ if (yych >= 'i') goto yy273;
             } else {
- if (yych == 'l') goto yy261;
- if (yych >= 'p') goto yy261;
+ if (yych == 'l') goto yy273;
+ if (yych >= 'p') goto yy273;
             }
         } else {
             if (yych <= 't') {
- if (yych == 'r') goto yy261;
+ if (yych == 'r') goto yy273;
             } else {
                 if (yych == 'v') goto yy46;
- if (yych <= 'w') goto yy261;
+ if (yych <= 'w') goto yy273;
             }
         }
     }
 yy46:
 #line 150 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND); }
-#line 545 "strict_cpp_re.inc"
+#line 561 "strict_cpp_re.inc"
 yy47:
     ++YYCURSOR;
 #line 158 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTPAREN); }
-#line 550 "strict_cpp_re.inc"
+#line 566 "strict_cpp_re.inc"
 yy49:
     ++YYCURSOR;
 #line 159 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTPAREN); }
-#line 555 "strict_cpp_re.inc"
+#line 571 "strict_cpp_re.inc"
 yy51:
     ++YYCURSOR;
 #line 160 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SEMICOLON); }
-#line 560 "strict_cpp_re.inc"
+#line 576 "strict_cpp_re.inc"
 yy53:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '+') goto yy256;
- if (yych == '=') goto yy258;
+ if ((yych = *YYCURSOR) == '+') goto yy268;
+ if (yych == '=') goto yy270;
 #line 185 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUS); }
-#line 567 "strict_cpp_re.inc"
+#line 583 "strict_cpp_re.inc"
 yy55:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy250;
+ if (yych == '-') goto yy262;
     } else {
- if (yych <= '=') goto yy252;
- if (yych <= '>') goto yy248;
+ if (yych <= '=') goto yy264;
+ if (yych <= '>') goto yy260;
     }
 #line 186 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUS); }
-#line 578 "strict_cpp_re.inc"
+#line 594 "strict_cpp_re.inc"
 yy57:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy246;
+ if ((yych = *YYCURSOR) == '=') goto yy258;
 #line 187 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STAR); }
-#line 584 "strict_cpp_re.inc"
+#line 600 "strict_cpp_re.inc"
 yy59:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy244;
+ if ((yych = *YYCURSOR) == '=') goto yy256;
 #line 190 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XOR); }
-#line 590 "strict_cpp_re.inc"
+#line 606 "strict_cpp_re.inc"
 yy61:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy237;
- goto yy195;
+ if (yych == 'o') goto yy249;
+ goto yy109;
 yy62:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '&') goto yy233;
- if (yych == '=') goto yy235;
+ if ((yych = *YYCURSOR) == '&') goto yy245;
+ if (yych == '=') goto yy247;
 #line 193 "strict_cpp.re"
     { BOOST_WAVE_RET(T_AND); }
-#line 602 "strict_cpp_re.inc"
+#line 618 "strict_cpp_re.inc"
 yy64:
     yyaccept = 4;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '>') {
- if (yych == '=') goto yy228;
+ if (yych == '=') goto yy240;
     } else {
- if (yych <= '?') goto yy225;
- if (yych == '|') goto yy226;
+ if (yych <= '?') goto yy237;
+ if (yych == '|') goto yy238;
     }
 yy65:
 #line 195 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OR); }
-#line 615 "strict_cpp_re.inc"
+#line 631 "strict_cpp_re.inc"
 yy66:
     ++YYCURSOR;
 #line 198 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COMPL); }
-#line 620 "strict_cpp_re.inc"
+#line 636 "strict_cpp_re.inc"
 yy68:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy223;
+ if ((yych = *YYCURSOR) == '=') goto yy235;
 #line 201 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NOT); }
-#line 626 "strict_cpp_re.inc"
+#line 642 "strict_cpp_re.inc"
 yy70:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy221;
+ if ((yych = *YYCURSOR) == '=') goto yy233;
 #line 203 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ASSIGN); }
-#line 632 "strict_cpp_re.inc"
+#line 648 "strict_cpp_re.inc"
 yy72:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '<') goto yy73;
- if (yych <= '=') goto yy215;
- if (yych <= '>') goto yy217;
+ if (yych <= '=') goto yy227;
+ if (yych <= '>') goto yy229;
 yy73:
 #line 205 "strict_cpp.re"
     { BOOST_WAVE_RET(T_GREATER); }
-#line 641 "strict_cpp_re.inc"
+#line 657 "strict_cpp_re.inc"
 yy74:
     ++YYCURSOR;
 #line 237 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COMMA); }
-#line 646 "strict_cpp_re.inc"
+#line 662 "strict_cpp_re.inc"
 yy76:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- goto yy195;
-yy77:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
- }
- if (yych <= '\'') {
- if (yych == '"') goto yy96;
- if (yych <= '&') goto yy9;
- goto yy214;
+ if (yych <= '@') {
+ if (yych <= '\'') {
+ if (yych == '"') goto yy137;
+ if (yych <= '&') goto yy9;
+ goto yy226;
+ } else {
+ if (yych <= '9') {
+ if (yych <= '/') goto yy9;
+ goto yy108;
+ } else {
+ if (yych == '?') goto yy111;
+ goto yy9;
+ }
+ }
     } else {
- if (yych <= '?') {
- if (yych <= '>') goto yy9;
- goto yy197;
+ if (yych <= '\\') {
+ if (yych <= 'R') {
+ if (yych <= 'Q') goto yy108;
+ goto yy225;
+ } else {
+ if (yych <= 'Z') goto yy108;
+ if (yych <= '[') goto yy9;
+ goto yy110;
+ }
         } else {
- if (yych == '\\') goto yy196;
- goto yy9;
+ if (yych <= '_') {
+ if (yych <= '^') goto yy9;
+ goto yy108;
+ } else {
+ if (yych <= '`') goto yy9;
+ if (yych <= 'z') goto yy108;
+ goto yy9;
+ }
         }
     }
-yy78:
+yy77:
     yyaccept = 5;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'U') goto yy186;
- if (yych == 'u') goto yy185;
-yy79:
-#line 309 "strict_cpp.re"
+ if (yych <= '\f') {
+ if (yych == '\t') goto yy182;
+ if (yych >= '\v') goto yy182;
+ } else {
+ if (yych <= 0x1F) goto yy78;
+ if (yych != '\'') goto yy182;
+ }
+yy78:
+#line 339 "strict_cpp.re"
     { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 678 "strict_cpp_re.inc"
-yy80:
+#line 714 "strict_cpp_re.inc"
+yy79:
     yyaccept = 5;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\f') {
- if (yych == '\t') goto yy142;
- if (yych <= '\n') goto yy79;
- goto yy142;
- } else {
- if (yych <= 0x1F) goto yy79;
- if (yych == '\'') goto yy79;
- goto yy142;
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy138;
+ goto yy78;
+ } else {
+ if (yych <= '\f') goto yy138;
+ if (yych <= 0x1F) goto yy78;
+ goto yy138;
     }
+yy80:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy135;
+ goto yy109;
 yy81:
- yyaccept = 5;
+ yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '\n') {
- if (yych == '\t') goto yy97;
- goto yy79;
+ if (yych <= '&') {
+ if (yych == '"') goto yy129;
+ goto yy109;
     } else {
- if (yych <= '\f') goto yy97;
- if (yych <= 0x1F) goto yy79;
- goto yy97;
+ if (yych <= '\'') goto yy131;
+ if (yych == 'R') goto yy128;
+ goto yy109;
     }
 yy82:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy109;
+yy83:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == 'U') goto yy100;
+ if (yych == 'u') goto yy98;
+ goto yy78;
+yy84:
     ++YYCURSOR;
     yych = *YYCURSOR;
- goto yy95;
-yy83:
-#line 289 "strict_cpp.re"
+ goto yy97;
+yy85:
+#line 319 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SPACE); }
-#line 709 "strict_cpp_re.inc"
-yy84:
+#line 759 "strict_cpp_re.inc"
+yy86:
     yych = *++YYCURSOR;
- goto yy95;
-yy85:
+ goto yy97;
+yy87:
     ++YYCURSOR;
-yy86:
-#line 292 "strict_cpp.re"
+yy88:
+#line 322 "strict_cpp.re"
     {
         s->line++;
         cursor.column = 1;
         BOOST_WAVE_RET(T_NEWLINE);
     }
-#line 722 "strict_cpp_re.inc"
-yy87:
+#line 772 "strict_cpp_re.inc"
+yy89:
     yych = *++YYCURSOR;
- if (yych == '\n') goto yy93;
- goto yy86;
-yy88:
+ if (yych == '\n') goto yy95;
+ goto yy88;
+yy90:
     ++YYCURSOR;
-#line 299 "strict_cpp.re"
+#line 329 "strict_cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -735,45 +785,43 @@
         }
         BOOST_WAVE_RET(T_EOF);
     }
-#line 739 "strict_cpp_re.inc"
-yy90:
+#line 789 "strict_cpp_re.inc"
+yy92:
     yych = *++YYCURSOR;
- goto yy79;
-yy91:
+ goto yy78;
+yy93:
     ++YYCURSOR;
-#line 312 "strict_cpp.re"
+#line 342 "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 752 "strict_cpp_re.inc"
-yy93:
- yych = *++YYCURSOR;
- goto yy86;
-yy94:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
+#line 802 "strict_cpp_re.inc"
 yy95:
- if (yybm[256+yych] & 16) {
- goto yy94;
- }
- goto yy83;
+ yych = *++YYCURSOR;
+ goto yy88;
 yy96:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
 yy97:
- if (yybm[256+yych] & 32) {
+ if (yybm[256+yych] & 16) {
         goto yy96;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
+ goto yy85;
 yy98:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy125;
+ } else {
+ if (yych <= 'F') goto yy125;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy125;
+ }
+yy99:
     YYCURSOR = YYMARKER;
     if (yyaccept <= 56) {
         if (yyaccept <= 28) {
@@ -798,13 +846,13 @@
                             if (yyaccept <= 4) {
                                 goto yy65;
                             } else {
- goto yy79;
+ goto yy78;
                             }
                         } else {
                             if (yyaccept <= 6) {
- goto yy102;
+ goto yy142;
                             } else {
- goto yy152;
+ goto yy192;
                             }
                         }
                     }
@@ -812,26 +860,26 @@
                     if (yyaccept <= 11) {
                         if (yyaccept <= 9) {
                             if (yyaccept <= 8) {
- goto yy239;
+ goto yy251;
                             } else {
- goto yy243;
+ goto yy255;
                             }
                         } else {
                             if (yyaccept <= 10) {
- goto yy279;
+ goto yy291;
                             } else {
- goto yy294;
+ goto yy306;
                             }
                         }
                     } else {
                         if (yyaccept <= 13) {
                             if (yyaccept <= 12) {
- goto yy389;
+ goto yy401;
                             } else {
- goto yy417;
+ goto yy429;
                             }
                         } else {
- goto yy421;
+ goto yy433;
                         }
                     }
                 }
@@ -840,52 +888,52 @@
                     if (yyaccept <= 18) {
                         if (yyaccept <= 16) {
                             if (yyaccept <= 15) {
- goto yy425;
+ goto yy437;
                             } else {
- goto yy456;
+ goto yy468;
                             }
                         } else {
                             if (yyaccept <= 17) {
- goto yy462;
+ goto yy474;
                             } else {
- goto yy470;
+ goto yy482;
                             }
                         }
                     } else {
                         if (yyaccept <= 20) {
                             if (yyaccept <= 19) {
- goto yy478;
+ goto yy490;
                             } else {
- goto yy483;
+ goto yy495;
                             }
                         } else {
- goto yy488;
+ goto yy500;
                         }
                     }
                 } else {
                     if (yyaccept <= 25) {
                         if (yyaccept <= 23) {
                             if (yyaccept <= 22) {
- goto yy491;
+ goto yy503;
                             } else {
- goto yy501;
+ goto yy513;
                             }
                         } else {
                             if (yyaccept <= 24) {
- goto yy507;
+ goto yy519;
                             } else {
- goto yy510;
+ goto yy522;
                             }
                         }
                     } else {
                         if (yyaccept <= 27) {
                             if (yyaccept <= 26) {
- goto yy517;
+ goto yy529;
                             } else {
- goto yy524;
+ goto yy536;
                             }
                         } else {
- goto yy526;
+ goto yy538;
                         }
                     }
                 }
@@ -896,52 +944,52 @@
                     if (yyaccept <= 32) {
                         if (yyaccept <= 30) {
                             if (yyaccept <= 29) {
- goto yy528;
+ goto yy540;
                             } else {
- goto yy530;
+ goto yy542;
                             }
                         } else {
                             if (yyaccept <= 31) {
- goto yy536;
+ goto yy548;
                             } else {
- goto yy542;
+ goto yy554;
                             }
                         }
                     } else {
                         if (yyaccept <= 34) {
                             if (yyaccept <= 33) {
- goto yy552;
+ goto yy564;
                             } else {
- goto yy554;
+ goto yy566;
                             }
                         } else {
- goto yy560;
+ goto yy572;
                         }
                     }
                 } else {
                     if (yyaccept <= 39) {
                         if (yyaccept <= 37) {
                             if (yyaccept <= 36) {
- goto yy566;
+ goto yy579;
                             } else {
- goto yy574;
+ goto yy587;
                             }
                         } else {
                             if (yyaccept <= 38) {
- goto yy577;
- } else {
                                 goto yy590;
+ } else {
+ goto yy603;
                             }
                         }
                     } else {
                         if (yyaccept <= 41) {
                             if (yyaccept <= 40) {
- goto yy592;
+ goto yy605;
                             } else {
- goto yy595;
+ goto yy608;
                             }
                         } else {
- goto yy598;
+ goto yy611;
                         }
                     }
                 }
@@ -950,52 +998,52 @@
                     if (yyaccept <= 46) {
                         if (yyaccept <= 44) {
                             if (yyaccept <= 43) {
- goto yy600;
+ goto yy613;
                             } else {
- goto yy606;
+ goto yy619;
                             }
                         } else {
                             if (yyaccept <= 45) {
- goto yy615;
+ goto yy628;
                             } else {
- goto yy617;
+ goto yy630;
                             }
                         }
                     } else {
                         if (yyaccept <= 48) {
                             if (yyaccept <= 47) {
- goto yy624;
+ goto yy637;
                             } else {
- goto yy633;
+ goto yy646;
                             }
                         } else {
- goto yy639;
+ goto yy652;
                         }
                     }
                 } else {
                     if (yyaccept <= 53) {
                         if (yyaccept <= 51) {
                             if (yyaccept <= 50) {
- goto yy643;
+ goto yy656;
                             } else {
- goto yy650;
+ goto yy663;
                             }
                         } else {
                             if (yyaccept <= 52) {
- goto yy656;
+ goto yy669;
                             } else {
- goto yy662;
+ goto yy675;
                             }
                         }
                     } else {
                         if (yyaccept <= 55) {
                             if (yyaccept <= 54) {
- goto yy666;
+ goto yy679;
                             } else {
- goto yy670;
+ goto yy683;
                             }
                         } else {
- goto yy678;
+ goto yy691;
                         }
                     }
                 }
@@ -1008,29 +1056,29 @@
                     if (yyaccept <= 60) {
                         if (yyaccept <= 58) {
                             if (yyaccept <= 57) {
- goto yy692;
+ goto yy705;
                             } else {
- goto yy698;
+ goto yy711;
                             }
                         } else {
                             if (yyaccept <= 59) {
- goto yy705;
+ goto yy718;
                             } else {
- goto yy714;
+ goto yy727;
                             }
                         }
                     } else {
                         if (yyaccept <= 62) {
                             if (yyaccept <= 61) {
- goto yy719;
+ goto yy732;
                             } else {
- goto yy722;
+ goto yy735;
                             }
                         } else {
                             if (yyaccept <= 63) {
- goto yy726;
+ goto yy739;
                             } else {
- goto yy733;
+ goto yy746;
                             }
                         }
                     }
@@ -1038,26 +1086,26 @@
                     if (yyaccept <= 68) {
                         if (yyaccept <= 66) {
                             if (yyaccept <= 65) {
- goto yy743;
+ goto yy756;
                             } else {
- goto yy746;
+ goto yy759;
                             }
                         } else {
                             if (yyaccept <= 67) {
- goto yy750;
+ goto yy763;
                             } else {
- goto yy756;
+ goto yy769;
                             }
                         }
                     } else {
                         if (yyaccept <= 70) {
                             if (yyaccept <= 69) {
- goto yy758;
+ goto yy771;
                             } else {
- goto yy766;
+ goto yy779;
                             }
                         } else {
- goto yy773;
+ goto yy786;
                         }
                     }
                 }
@@ -1066,52 +1114,52 @@
                     if (yyaccept <= 75) {
                         if (yyaccept <= 73) {
                             if (yyaccept <= 72) {
- goto yy777;
+ goto yy790;
                             } else {
- goto yy779;
+ goto yy792;
                             }
                         } else {
                             if (yyaccept <= 74) {
- goto yy784;
+ goto yy797;
                             } else {
- goto yy788;
+ goto yy801;
                             }
                         }
                     } else {
                         if (yyaccept <= 77) {
                             if (yyaccept <= 76) {
- goto yy793;
+ goto yy806;
                             } else {
- goto yy797;
+ goto yy810;
                             }
                         } else {
- goto yy806;
+ goto yy819;
                         }
                     }
                 } else {
                     if (yyaccept <= 82) {
                         if (yyaccept <= 80) {
                             if (yyaccept <= 79) {
- goto yy808;
+ goto yy821;
                             } else {
- goto yy812;
+ goto yy825;
                             }
                         } else {
                             if (yyaccept <= 81) {
- goto yy816;
+ goto yy829;
                             } else {
- goto yy825;
+ goto yy838;
                             }
                         }
                     } else {
                         if (yyaccept <= 84) {
                             if (yyaccept <= 83) {
- goto yy830;
+ goto yy843;
                             } else {
- goto yy835;
+ goto yy848;
                             }
                         } else {
- goto yy838;
+ goto yy851;
                         }
                     }
                 }
@@ -1122,52 +1170,52 @@
                     if (yyaccept <= 89) {
                         if (yyaccept <= 87) {
                             if (yyaccept <= 86) {
- goto yy841;
+ goto yy854;
                             } else {
- goto yy844;
+ goto yy857;
                             }
                         } else {
                             if (yyaccept <= 88) {
- goto yy856;
+ goto yy869;
                             } else {
- goto yy861;
+ goto yy874;
                             }
                         }
                     } else {
                         if (yyaccept <= 91) {
                             if (yyaccept <= 90) {
- goto yy868;
+ goto yy881;
                             } else {
- goto yy873;
+ goto yy886;
                             }
                         } else {
- goto yy879;
+ goto yy892;
                         }
                     }
                 } else {
                     if (yyaccept <= 96) {
                         if (yyaccept <= 94) {
                             if (yyaccept <= 93) {
- goto yy888;
+ goto yy901;
                             } else {
- goto yy895;
+ goto yy908;
                             }
                         } else {
                             if (yyaccept <= 95) {
- goto yy897;
+ goto yy910;
                             } else {
- goto yy903;
+ goto yy916;
                             }
                         }
                     } else {
                         if (yyaccept <= 98) {
                             if (yyaccept <= 97) {
- goto yy908;
+ goto yy921;
                             } else {
- goto yy912;
+ goto yy925;
                             }
                         } else {
- goto yy915;
+ goto yy928;
                         }
                     }
                 }
@@ -1176,296 +1224,642 @@
                     if (yyaccept <= 103) {
                         if (yyaccept <= 101) {
                             if (yyaccept <= 100) {
- goto yy921;
+ goto yy934;
                             } else {
- goto yy925;
+ goto yy938;
                             }
                         } else {
                             if (yyaccept <= 102) {
- goto yy930;
+ goto yy943;
                             } else {
- goto yy932;
+ goto yy945;
                             }
                         }
                     } else {
                         if (yyaccept <= 105) {
                             if (yyaccept <= 104) {
- goto yy939;
+ goto yy952;
                             } else {
- goto yy942;
+ goto yy955;
                             }
                         } else {
- goto yy947;
+ goto yy960;
                         }
                     }
                 } else {
                     if (yyaccept <= 110) {
                         if (yyaccept <= 108) {
                             if (yyaccept <= 107) {
- goto yy950;
+ goto yy963;
                             } else {
- goto yy957;
+ goto yy970;
                             }
                         } else {
                             if (yyaccept <= 109) {
- goto yy959;
+ goto yy972;
                             } else {
- goto yy961;
+ goto yy974;
                             }
                         }
                     } else {
                         if (yyaccept <= 112) {
                             if (yyaccept <= 111) {
- goto yy965;
+ goto yy978;
                             } else {
- goto yy972;
+ goto yy985;
                             }
                         } else {
- goto yy974;
+ goto yy987;
                         }
                     }
                 }
             }
         }
     }
-yy99:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
- }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy112;
 yy100:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '`') {
- if (yych <= '7') {
- if (yych <= '&') {
- if (yych == '"') goto yy96;
- goto yy98;
- } else {
- if (yych <= '\'') goto yy96;
- if (yych <= '/') goto yy98;
- goto yy107;
- }
- } else {
- if (yych <= 'T') {
- if (yych == '?') goto yy105;
- goto yy98;
- } else {
- if (yych <= 'U') goto yy104;
- if (yych == '\\') goto yy96;
- goto yy98;
- }
- }
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'r') {
- if (yych <= 'f') {
- if (yych <= 'b') goto yy96;
- if (yych <= 'e') goto yy98;
- goto yy96;
- } else {
- if (yych == 'n') goto yy96;
- if (yych <= 'q') goto yy98;
- goto yy96;
- }
- } else {
- if (yych <= 'u') {
- if (yych <= 's') goto yy98;
- if (yych <= 't') goto yy96;
- goto yy103;
- } else {
- if (yych <= 'v') goto yy96;
- if (yych == 'x') goto yy106;
- goto yy98;
- }
- }
+ if (yych <= 'F') goto yy101;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
 yy101:
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy102;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
 yy102:
-#line 259 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1294 "strict_cpp_re.inc"
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy103;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
 yy103:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy138;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy138;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy138;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy104;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
 yy104:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy131;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy131;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy131;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy105;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
 yy105:
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy106;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy106:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy107;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy107:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy108:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
+yy109:
     if (yybm[256+yych] & 32) {
- goto yy96;
+ goto yy108;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy111;
- goto yy100;
-yy106:
+ if (yych == '?') goto yy111;
+ if (yych != '\\') goto yy9;
+yy110:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 64) {
- goto yy109;
- }
- goto yy98;
-yy107:
+ if (yych == 'U') goto yy114;
+ if (yych == 'u') goto yy113;
+ goto yy99;
+yy111:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych <= '"') {
- if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
- } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '!') goto yy96;
- goto yy101;
- }
+ if (yych != '?') goto yy99;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych == '/') goto yy110;
+ goto yy99;
+yy113:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy122;
+ goto yy99;
     } else {
- if (yych <= '>') {
- if (yych <= '/') goto yy96;
- if (yych >= '8') goto yy96;
- } else {
- if (yych <= '?') goto yy99;
- if (yych == '\\') goto yy100;
- goto yy96;
- }
+ if (yych <= 'F') goto yy122;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy122;
+ goto yy99;
     }
+yy114:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy115;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy109:
+yy115:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 64) {
- goto yy109;
- }
- if (yych <= '!') {
- if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
- } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- goto yy96;
- }
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= '?') {
- if (yych <= '"') goto yy101;
- if (yych <= '>') goto yy96;
- goto yy99;
- } else {
- if (yych == '\\') goto yy100;
- goto yy96;
- }
+ if (yych <= 'F') goto yy116;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy111:
+yy116:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy117;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych >= '\\') goto yy100;
-yy112:
+yy117:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy118;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy118:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy119;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy119:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy120;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy120:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy121;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy121:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy108;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy108;
+ goto yy99;
+ }
+yy122:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy123;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy123:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy124;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy124:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy108;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy108;
+ goto yy99;
+ }
+yy125:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy126;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy126:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
+ } else {
+ if (yych <= 'F') goto yy127;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
+ }
+yy127:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy108;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy108;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy108;
+ goto yy99;
+ }
+yy128:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy133;
+ goto yy109;
+yy129:
+ ++YYCURSOR;
+#line 274 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1584 "strict_cpp_re.inc"
+yy131:
+ ++YYCURSOR;
+#line 266 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extcharlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1594 "strict_cpp_re.inc"
+yy133:
+ ++YYCURSOR;
+#line 282 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extrawstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1604 "strict_cpp_re.inc"
+yy135:
+ ++YYCURSOR;
+#line 258 "strict_cpp.re"
+ {
+ if (s->act_in_cpp0x_mode)
+ goto extrawstringlit;
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_IDENTIFIER);
+ }
+#line 1614 "strict_cpp_re.inc"
+yy137:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy138:
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych >= '\\') goto yy140;
+yy139:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy152;
+yy140:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '`') {
+ if (yych <= '7') {
+ if (yych <= '&') {
+ if (yych == '"') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= '\'') goto yy137;
+ if (yych <= '/') goto yy99;
+ goto yy147;
+ }
+ } else {
+ if (yych <= 'T') {
+ if (yych == '?') goto yy145;
+ goto yy99;
+ } else {
+ if (yych <= 'U') goto yy144;
+ if (yych == '\\') goto yy137;
+ goto yy99;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy137;
+ if (yych <= 'e') goto yy99;
+ goto yy137;
+ } else {
+ if (yych == 'n') goto yy137;
+ if (yych <= 'q') goto yy99;
+ goto yy137;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy99;
+ if (yych <= 't') goto yy137;
+ goto yy143;
+ } else {
+ if (yych <= 'v') goto yy137;
+ if (yych == 'x') goto yy146;
+ goto yy99;
+ }
+ }
+ }
+yy141:
+ ++YYCURSOR;
+yy142:
+#line 255 "strict_cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1688 "strict_cpp_re.inc"
+yy143:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy178;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy178;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy178;
+ goto yy99;
+ }
+yy144:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy171;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy171;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy171;
+ goto yy99;
+ }
+yy145:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy151;
+ goto yy140;
+yy146:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 128) {
+ goto yy149;
+ }
+ goto yy99;
+yy147:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '"') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '!') goto yy137;
+ goto yy141;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych <= '/') goto yy137;
+ if (yych >= '8') goto yy137;
+ } else {
+ if (yych <= '?') goto yy139;
+ if (yych == '\\') goto yy140;
+ goto yy137;
+ }
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy149:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[256+yych] & 128) {
- goto yy112;
+ goto yy149;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
+ if (yych == '\t') goto yy137;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
         }
     } else {
- if (yych <= '/') {
- if (yych <= '"') goto yy101;
- if (yych <= '.') goto yy96;
+ if (yych <= '?') {
+ if (yych <= '"') goto yy141;
+ if (yych <= '>') goto yy137;
+ goto yy139;
         } else {
- if (yych == '\\') goto yy100;
- goto yy96;
+ if (yych == '\\') goto yy140;
+ goto yy137;
         }
     }
-yy114:
+yy151:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
+ }
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych >= '\\') goto yy140;
+yy152:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 1) {
- goto yy114;
+ goto yy152;
+ }
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych == '\t') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych <= '"') goto yy141;
+ if (yych <= '.') goto yy137;
+ } else {
+ if (yych == '\\') goto yy140;
+ goto yy137;
+ }
+ }
+yy154:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yybm[0+yych] & 2) {
+ goto yy154;
     }
     if (yych <= '7') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy118;
- if (yych <= '/') goto yy96;
- goto yy107;
+ if (yych <= '"') goto yy158;
+ if (yych <= '/') goto yy137;
+ goto yy147;
             }
         }
     } else {
         if (yych <= 'U') {
- if (yych == '?') goto yy119;
- if (yych <= 'T') goto yy96;
- goto yy117;
+ if (yych == '?') goto yy159;
+ if (yych <= 'T') goto yy137;
+ goto yy157;
         } else {
             if (yych <= 'u') {
- if (yych <= 't') goto yy96;
+ if (yych <= 't') goto yy137;
             } else {
- if (yych == 'x') goto yy109;
- goto yy96;
+ if (yych == 'x') goto yy149;
+ goto yy137;
             }
         }
     }
@@ -1474,146 +1868,146 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
- goto yy128;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
+ goto yy168;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
- goto yy128;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
+ goto yy168;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych <= 'f') goto yy128;
- goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych <= 'f') goto yy168;
+ goto yy137;
             }
         }
     }
-yy117:
+yy157:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
- goto yy121;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
+ goto yy161;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
- goto yy121;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
+ goto yy161;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych <= 'f') goto yy121;
- goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych <= 'f') goto yy161;
+ goto yy137;
             }
         }
     }
-yy118:
+yy158:
     yyaccept = 6;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy102;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy119:
+ if (yych <= '!') goto yy142;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy159:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych >= '\\') goto yy100;
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych >= '\\') goto yy140;
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 128) {
- goto yy112;
+ if (yybm[0+yych] & 1) {
+ goto yy152;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy96;
- goto yy98;
+ if (yych == '\t') goto yy137;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy96;
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= '\f') goto yy137;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
         }
     } else {
         if (yych <= '/') {
- if (yych <= '"') goto yy101;
- if (yych <= '.') goto yy96;
- goto yy114;
+ if (yych <= '"') goto yy141;
+ if (yych <= '.') goto yy137;
+ goto yy154;
         } else {
- if (yych == '\\') goto yy100;
- goto yy96;
+ if (yych == '\\') goto yy140;
+ goto yy137;
         }
     }
-yy121:
+yy161:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1622,29 +2016,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1653,29 +2047,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1684,29 +2078,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1715,29 +2109,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1746,71 +2140,71 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy128:
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy168:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
@@ -1819,230 +2213,230 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy96;
- if (yych <= '\n') goto yy98;
- goto yy96;
+ if (yych == '\t') goto yy137;
+ if (yych <= '\n') goto yy99;
+ goto yy137;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy98;
- goto yy96;
+ if (yych <= 0x1F) goto yy99;
+ goto yy137;
             } else {
- if (yych <= '"') goto yy101;
- if (yych <= '/') goto yy96;
+ if (yych <= '"') goto yy141;
+ if (yych <= '/') goto yy137;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy99;
- if (yych <= '@') goto yy96;
+ if (yych == '?') goto yy139;
+ if (yych <= '@') goto yy137;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy96;
- goto yy100;
+ if (yych <= '[') goto yy137;
+ goto yy140;
             } else {
- if (yych <= '`') goto yy96;
- if (yych >= 'g') goto yy96;
+ if (yych <= '`') goto yy137;
+ if (yych >= 'g') goto yy137;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[256+yych] & 32) {
- goto yy96;
+ if (yybm[256+yych] & 64) {
+ goto yy137;
     }
- if (yych <= '!') goto yy98;
- if (yych <= '"') goto yy101;
- if (yych <= '[') goto yy99;
- goto yy100;
-yy131:
+ if (yych <= '!') goto yy99;
+ if (yych <= '"') goto yy141;
+ if (yych <= '[') goto yy139;
+ goto yy140;
+yy171:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy132;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy172;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy132:
+yy172:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy133;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy173;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy133:
+yy173:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy134;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy174;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy134:
+yy174:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy135;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy175;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy135:
+yy175:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy136;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy176;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy136:
+yy176:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy137;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy177;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy137:
+yy177:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy96;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy96;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy96;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy137;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy137;
+ goto yy99;
     }
-yy138:
+yy178:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy139;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy179;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy139:
+yy179:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy140;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy180;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy140:
+yy180:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy96;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy96;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy96;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy137;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy137;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy137;
+ goto yy99;
     }
-yy141:
+yy181:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy142:
- if (yybm[0+yych] & 2) {
- goto yy141;
+yy182:
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych >= '\\') goto yy144;
-yy143:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych >= '\\') goto yy184;
+yy183:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy156;
-yy144:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy196;
+yy184:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy141;
- goto yy98;
+ if (yych == '"') goto yy181;
+ goto yy99;
             } else {
- if (yych <= '\'') goto yy141;
- if (yych <= '/') goto yy98;
- goto yy149;
+ if (yych <= '\'') goto yy181;
+ if (yych <= '/') goto yy99;
+ goto yy189;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy147;
- goto yy98;
+ if (yych == '?') goto yy187;
+ goto yy99;
             } else {
- if (yych <= 'U') goto yy146;
- if (yych == '\\') goto yy141;
- goto yy98;
+ if (yych <= 'U') goto yy186;
+ if (yych == '\\') goto yy181;
+ goto yy99;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy141;
- if (yych <= 'e') goto yy98;
- goto yy141;
- } else {
- if (yych == 'n') goto yy141;
- if (yych <= 'q') goto yy98;
- goto yy141;
+ if (yych <= 'b') goto yy181;
+ if (yych <= 'e') goto yy99;
+ goto yy181;
+ } else {
+ if (yych == 'n') goto yy181;
+ if (yych <= 'q') goto yy99;
+ goto yy181;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy98;
- if (yych <= 't') goto yy141;
+ if (yych <= 's') goto yy99;
+ if (yych <= 't') goto yy181;
             } else {
- if (yych <= 'v') goto yy141;
- if (yych == 'x') goto yy148;
- goto yy98;
+ if (yych <= 'v') goto yy181;
+ if (yych == 'x') goto yy188;
+ goto yy99;
             }
         }
     }
@@ -2050,202 +2444,202 @@
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy182;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy222;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy182;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy182;
- goto yy98;
+ if (yych <= 'F') goto yy222;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy222;
+ goto yy99;
     }
-yy146:
+yy186:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy175;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy175;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy175;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy215;
+ goto yy99;
+ } else {
+ if (yych <= 'F') goto yy215;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy215;
+ goto yy99;
     }
-yy147:
+yy187:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy155;
- goto yy144;
-yy148:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy195;
+ goto yy184;
+yy188:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy153;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy193;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy153;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy153;
- goto yy98;
+ if (yych <= 'F') goto yy193;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy193;
+ goto yy99;
     }
-yy149:
+yy189:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\'') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy141;
- goto yy98;
+ if (yych == '\t') goto yy181;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy141;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '&') goto yy141;
- goto yy151;
+ if (yych <= '\f') goto yy181;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '&') goto yy181;
+ goto yy191;
         }
     } else {
         if (yych <= '>') {
- if (yych <= '/') goto yy141;
- if (yych >= '8') goto yy141;
+ if (yych <= '/') goto yy181;
+ if (yych >= '8') goto yy181;
         } else {
- if (yych <= '?') goto yy143;
- if (yych == '\\') goto yy144;
- goto yy141;
+ if (yych <= '?') goto yy183;
+ if (yych == '\\') goto yy184;
+ goto yy181;
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy151:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy191:
     ++YYCURSOR;
-yy152:
-#line 256 "strict_cpp.re"
+yy192:
+#line 252 "strict_cpp.re"
     { BOOST_WAVE_RET(T_CHARLIT); }
-#line 2141 "strict_cpp_re.inc"
-yy153:
+#line 2535 "strict_cpp_re.inc"
+yy193:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
- goto yy153;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
+ goto yy193;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
- goto yy153;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
+ goto yy193;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych <= 'f') goto yy153;
- goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych <= 'f') goto yy193;
+ goto yy181;
             }
         }
     }
-yy155:
+yy195:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych >= '\\') goto yy144;
-yy156:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych >= '\\') goto yy184;
+yy196:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\'') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy141;
- goto yy98;
+ if (yych == '\t') goto yy181;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy141;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '&') goto yy141;
- goto yy151;
+ if (yych <= '\f') goto yy181;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '&') goto yy181;
+ goto yy191;
         }
     } else {
         if (yych <= '>') {
- if (yych != '/') goto yy141;
+ if (yych != '/') goto yy181;
         } else {
- if (yych <= '?') goto yy156;
- if (yych == '\\') goto yy144;
- goto yy141;
+ if (yych <= '?') goto yy196;
+ if (yych == '\\') goto yy184;
+ goto yy181;
         }
     }
-yy158:
+yy198:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '>') {
         if (yych <= 0x1F) {
             if (yych <= '\t') {
- if (yych <= 0x08) goto yy98;
- goto yy141;
+ if (yych <= 0x08) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\n') goto yy98;
- if (yych <= '\f') goto yy141;
- goto yy98;
+ if (yych <= '\n') goto yy99;
+ if (yych <= '\f') goto yy181;
+ goto yy99;
             }
         } else {
             if (yych <= '\'') {
- if (yych <= '&') goto yy141;
- goto yy162;
+ if (yych <= '&') goto yy181;
+ goto yy202;
             } else {
- if (yych <= '/') goto yy141;
- if (yych <= '7') goto yy149;
- goto yy141;
+ if (yych <= '/') goto yy181;
+ if (yych <= '7') goto yy189;
+ goto yy181;
             }
         }
     } else {
         if (yych <= '\\') {
             if (yych <= 'T') {
- if (yych <= '?') goto yy163;
- goto yy141;
+ if (yych <= '?') goto yy203;
+ goto yy181;
             } else {
- if (yych <= 'U') goto yy161;
- if (yych <= '[') goto yy141;
- goto yy158;
+ if (yych <= 'U') goto yy201;
+ if (yych <= '[') goto yy181;
+ goto yy198;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 't') goto yy141;
+ if (yych <= 't') goto yy181;
             } else {
- if (yych == 'x') goto yy153;
- goto yy141;
+ if (yych == 'x') goto yy193;
+ goto yy181;
             }
         }
     }
@@ -2254,144 +2648,144 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
- goto yy172;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
+ goto yy212;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
- goto yy172;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
+ goto yy212;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych <= 'f') goto yy172;
- goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych <= 'f') goto yy212;
+ goto yy181;
             }
         }
     }
-yy161:
+yy201:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
- goto yy165;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
+ goto yy205;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
- goto yy165;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
+ goto yy205;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych <= 'f') goto yy165;
- goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych <= 'f') goto yy205;
+ goto yy181;
             }
         }
     }
-yy162:
+yy202:
     yyaccept = 7;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy152;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy163:
+ if (yych <= '&') goto yy192;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy203:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych >= '\\') goto yy144;
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych >= '\\') goto yy184;
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\'') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy141;
- goto yy98;
+ if (yych == '\t') goto yy181;
+ goto yy99;
         } else {
- if (yych <= '\f') goto yy141;
- if (yych <= 0x1F) goto yy98;
- if (yych <= '&') goto yy141;
- goto yy151;
+ if (yych <= '\f') goto yy181;
+ if (yych <= 0x1F) goto yy99;
+ if (yych <= '&') goto yy181;
+ goto yy191;
         }
     } else {
         if (yych <= '>') {
- if (yych == '/') goto yy158;
- goto yy141;
+ if (yych == '/') goto yy198;
+ goto yy181;
         } else {
- if (yych <= '?') goto yy156;
- if (yych == '\\') goto yy144;
- goto yy141;
+ if (yych <= '?') goto yy196;
+ if (yych == '\\') goto yy184;
+ goto yy181;
         }
     }
-yy165:
+yy205:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2400,29 +2794,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2431,29 +2825,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2462,29 +2856,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2493,29 +2887,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2524,71 +2918,71 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
+ if (yybm[0+yych] & 4) {
+ goto yy181;
     }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy172:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy212:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
@@ -2597,601 +2991,304 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy141;
- if (yych <= '\n') goto yy98;
- goto yy141;
+ if (yych == '\t') goto yy181;
+ if (yych <= '\n') goto yy99;
+ goto yy181;
         } else {
             if (yych <= '&') {
- if (yych <= 0x1F) goto yy98;
- goto yy141;
+ if (yych <= 0x1F) goto yy99;
+ goto yy181;
             } else {
- if (yych <= '\'') goto yy151;
- if (yych <= '/') goto yy141;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '/') goto yy181;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy143;
- if (yych <= '@') goto yy141;
+ if (yych == '?') goto yy183;
+ if (yych <= '@') goto yy181;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy141;
- goto yy144;
+ if (yych <= '[') goto yy181;
+ goto yy184;
             } else {
- if (yych <= '`') goto yy141;
- if (yych >= 'g') goto yy141;
+ if (yych <= '`') goto yy181;
+ if (yych >= 'g') goto yy181;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yybm[0+yych] & 2) {
- goto yy141;
- }
- if (yych <= '&') goto yy98;
- if (yych <= '\'') goto yy151;
- if (yych <= '[') goto yy143;
- goto yy144;
-yy175:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy176;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy176:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy177;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy177:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy178;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy178:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy179;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy179:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy180;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy180:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy181;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy181:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy141;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy141;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy141;
- goto yy98;
- }
-yy182:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy183;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy183:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy184;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy184:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy141;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy141;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy141;
- goto yy98;
- }
-yy185:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy211;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy211;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy211;
- goto yy98;
- }
-yy186:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy187;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy187:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy188;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy188:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy189;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy189:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy190;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy190:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy191;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy191:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy192;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy192:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy193;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy193:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy194:
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy195:
     if (yybm[0+yych] & 4) {
- goto yy194;
- }
- if (yych == '?') goto yy197;
- if (yych != '\\') goto yy9;
-yy196:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych == 'U') goto yy200;
- if (yych == 'u') goto yy199;
- goto yy98;
-yy197:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych != '?') goto yy98;
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych == '/') goto yy196;
- goto yy98;
-yy199:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy208;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy208;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy208;
- goto yy98;
- }
-yy200:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy201;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ goto yy181;
     }
-yy201:
+ if (yych <= '&') goto yy99;
+ if (yych <= '\'') goto yy191;
+ if (yych <= '[') goto yy183;
+ goto yy184;
+yy215:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy202;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy216;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy202:
+yy216:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy203;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy217;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy203:
+yy217:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy204;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy218;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy204:
+yy218:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy205;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy219;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy205:
+yy219:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy206;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy220;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy206:
+yy220:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy207;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy221;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy207:
+yy221:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy194;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy181;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy194;
- goto yy98;
+ if (yych <= 'F') goto yy181;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy181;
+ goto yy99;
     }
-yy208:
+yy222:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy209;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy223;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy209:
+yy223:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych >= ':') goto yy99;
     } else {
- if (yych <= 'F') goto yy210;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
+ if (yych <= 'F') goto yy224;
+ if (yych <= '`') goto yy99;
+ if (yych >= 'g') goto yy99;
     }
-yy210:
+yy224:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy194;
- goto yy98;
- } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy194;
- goto yy98;
- }
-yy211:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy212;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy212:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych >= ':') goto yy98;
- } else {
- if (yych <= 'F') goto yy213;
- if (yych <= '`') goto yy98;
- if (yych >= 'g') goto yy98;
- }
-yy213:
- yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy98;
- if (yych <= '9') goto yy194;
- goto yy98;
+ if (yych <= '/') goto yy99;
+ if (yych <= '9') goto yy181;
+ goto yy99;
     } else {
- if (yych <= 'F') goto yy194;
- if (yych <= '`') goto yy98;
- if (yych <= 'f') goto yy194;
- goto yy98;
+ if (yych <= 'F') goto yy181;
+ if (yych <= '`') goto yy99;
+ if (yych <= 'f') goto yy181;
+ goto yy99;
     }
-yy214:
+yy225:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy135;
+ goto yy109;
+yy226:
     yych = *++YYCURSOR;
- if (yych == '\'') goto yy98;
- goto yy142;
-yy215:
+ if (yych == '\'') goto yy99;
+ goto yy182;
+yy227:
     ++YYCURSOR;
 #line 227 "strict_cpp.re"
     { BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 3071 "strict_cpp_re.inc"
-yy217:
+#line 3168 "strict_cpp_re.inc"
+yy229:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy219;
+ if ((yych = *YYCURSOR) == '=') goto yy231;
 #line 220 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 3077 "strict_cpp_re.inc"
-yy219:
+#line 3174 "strict_cpp_re.inc"
+yy231:
     ++YYCURSOR;
 #line 221 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
-#line 3082 "strict_cpp_re.inc"
-yy221:
+#line 3179 "strict_cpp_re.inc"
+yy233:
     ++YYCURSOR;
 #line 223 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EQUAL); }
-#line 3087 "strict_cpp_re.inc"
-yy223:
+#line 3184 "strict_cpp_re.inc"
+yy235:
     ++YYCURSOR;
 #line 224 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NOTEQUAL); }
-#line 3092 "strict_cpp_re.inc"
-yy225:
+#line 3189 "strict_cpp_re.inc"
+yy237:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy230;
- goto yy98;
-yy226:
+ if (yych == '?') goto yy242;
+ goto yy99;
+yy238:
     ++YYCURSOR;
 #line 230 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR); }
-#line 3101 "strict_cpp_re.inc"
-yy228:
+#line 3198 "strict_cpp_re.inc"
+yy240:
     ++YYCURSOR;
 #line 216 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN); }
-#line 3106 "strict_cpp_re.inc"
-yy230:
+#line 3203 "strict_cpp_re.inc"
+yy242:
     yych = *++YYCURSOR;
- if (yych != '!') goto yy98;
+ if (yych != '!') goto yy99;
     ++YYCURSOR;
 #line 232 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3113 "strict_cpp_re.inc"
-yy233:
+#line 3210 "strict_cpp_re.inc"
+yy245:
     ++YYCURSOR;
 #line 228 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ANDAND); }
-#line 3118 "strict_cpp_re.inc"
-yy235:
+#line 3215 "strict_cpp_re.inc"
+yy247:
     ++YYCURSOR;
 #line 214 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ANDASSIGN); }
-#line 3123 "strict_cpp_re.inc"
-yy237:
+#line 3220 "strict_cpp_re.inc"
+yy249:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 8;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
- if (yych <= '/') goto yy239;
- if (yych <= '9') goto yy194;
+ if (yych <= '/') goto yy251;
+ if (yych <= '9') goto yy108;
         } else {
- if (yych <= '?') goto yy197;
- if (yych >= 'A') goto yy194;
+ if (yych <= '?') goto yy111;
+ if (yych >= 'A') goto yy108;
         }
     } else {
         if (yych <= '^') {
- if (yych == '\\') goto yy196;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy240;
- if (yych <= '`') goto yy239;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy252;
+ if (yych <= '`') goto yy251;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy239:
+yy251:
 #line 192 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
-#line 3150 "strict_cpp_re.inc"
-yy240:
+#line 3247 "strict_cpp_re.inc"
+yy252:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 9;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy243:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy255:
 #line 212 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
-#line 3168 "strict_cpp_re.inc"
-yy244:
+#line 3265 "strict_cpp_re.inc"
+yy256:
     ++YYCURSOR;
 #line 211 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN); }
-#line 3173 "strict_cpp_re.inc"
-yy246:
+#line 3270 "strict_cpp_re.inc"
+yy258:
     ++YYCURSOR;
 #line 208 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STARASSIGN); }
-#line 3178 "strict_cpp_re.inc"
-yy248:
+#line 3275 "strict_cpp_re.inc"
+yy260:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '*') goto yy254;
+ if ((yych = *YYCURSOR) == '*') goto yy266;
 #line 248 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ARROW); }
-#line 3184 "strict_cpp_re.inc"
-yy250:
+#line 3281 "strict_cpp_re.inc"
+yy262:
     ++YYCURSOR;
 #line 236 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 3189 "strict_cpp_re.inc"
-yy252:
+#line 3286 "strict_cpp_re.inc"
+yy264:
     ++YYCURSOR;
 #line 207 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MINUSASSIGN); }
-#line 3194 "strict_cpp_re.inc"
-yy254:
+#line 3291 "strict_cpp_re.inc"
+yy266:
     ++YYCURSOR;
 #line 239 "strict_cpp.re"
     {
@@ -3203,487 +3300,487 @@
                 BOOST_WAVE_RET(T_ARROWSTAR);
             }
         }
-#line 3207 "strict_cpp_re.inc"
-yy256:
+#line 3304 "strict_cpp_re.inc"
+yy268:
     ++YYCURSOR;
 #line 235 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 3212 "strict_cpp_re.inc"
-yy258:
+#line 3309 "strict_cpp_re.inc"
+yy270:
     ++YYCURSOR;
 #line 206 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PLUSASSIGN); }
-#line 3217 "strict_cpp_re.inc"
-yy260:
+#line 3314 "strict_cpp_re.inc"
+yy272:
     ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
     yych = *YYCURSOR;
-yy261:
+yy273:
     if (yych <= 'h') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy260;
- goto yy98;
+ if (yych == '\t') goto yy272;
+ goto yy99;
             } else {
- if (yych <= '\f') goto yy260;
- if (yych <= 0x1F) goto yy98;
- goto yy260;
+ if (yych <= '\f') goto yy272;
+ if (yych <= 0x1F) goto yy99;
+ goto yy272;
             }
         } else {
             if (yych <= 'c') {
- if (yych != '/') goto yy98;
+ if (yych != '/') goto yy99;
             } else {
- if (yych <= 'd') goto yy269;
- if (yych <= 'e') goto yy263;
- goto yy98;
+ if (yych <= 'd') goto yy281;
+ if (yych <= 'e') goto yy275;
+ goto yy99;
             }
         }
     } else {
         if (yych <= 'q') {
             if (yych <= 'l') {
- if (yych <= 'i') goto yy270;
- if (yych <= 'k') goto yy98;
- goto yy267;
+ if (yych <= 'i') goto yy282;
+ if (yych <= 'k') goto yy99;
+ goto yy279;
             } else {
- if (yych == 'p') goto yy266;
- goto yy98;
+ if (yych == 'p') goto yy278;
+ goto yy99;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 'r') goto yy264;
- if (yych <= 't') goto yy98;
- goto yy268;
+ if (yych <= 'r') goto yy276;
+ if (yych <= 't') goto yy99;
+ goto yy280;
             } else {
- if (yych == 'w') goto yy265;
- goto yy98;
+ if (yych == 'w') goto yy277;
+ goto yy99;
             }
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych == '*') goto yy377;
- goto yy98;
-yy263:
+ if (yych == '*') goto yy389;
+ goto yy99;
+yy275:
     yych = *++YYCURSOR;
     if (yych <= 'm') {
- if (yych == 'l') goto yy353;
- goto yy98;
+ if (yych == 'l') goto yy365;
+ goto yy99;
     } else {
- if (yych <= 'n') goto yy354;
- if (yych == 'r') goto yy355;
- goto yy98;
+ if (yych <= 'n') goto yy366;
+ if (yych == 'r') goto yy367;
+ goto yy99;
     }
-yy264:
- yych = *++YYCURSOR;
- if (yych == 'e') goto yy347;
- goto yy98;
-yy265:
- yych = *++YYCURSOR;
- if (yych == 'a') goto yy340;
- goto yy98;
-yy266:
+yy276:
     yych = *++YYCURSOR;
- if (yych == 'r') goto yy334;
- goto yy98;
-yy267:
+ if (yych == 'e') goto yy359;
+ goto yy99;
+yy277:
     yych = *++YYCURSOR;
- if (yych == 'i') goto yy330;
- goto yy98;
-yy268:
+ if (yych == 'a') goto yy352;
+ goto yy99;
+yy278:
     yych = *++YYCURSOR;
- if (yych == 'n') goto yy325;
- goto yy98;
-yy269:
+ if (yych == 'r') goto yy346;
+ goto yy99;
+yy279:
     yych = *++YYCURSOR;
- if (yych == 'e') goto yy319;
- goto yy98;
-yy270:
+ if (yych == 'i') goto yy342;
+ goto yy99;
+yy280:
     yych = *++YYCURSOR;
- if (yych == 'f') goto yy278;
- if (yych == 'n') goto yy277;
- goto yy98;
-yy271:
+ if (yych == 'n') goto yy337;
+ goto yy99;
+yy281:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy274;
- goto yy98;
-yy272:
+ if (yych == 'e') goto yy331;
+ goto yy99;
+yy282:
+ yych = *++YYCURSOR;
+ if (yych == 'f') goto yy290;
+ if (yych == 'n') goto yy289;
+ goto yy99;
+yy283:
+ yych = *++YYCURSOR;
+ if (yych == '?') goto yy286;
+ goto yy99;
+yy284:
     ++YYCURSOR;
 #line 153 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND); }
-#line 3315 "strict_cpp_re.inc"
-yy274:
+#line 3412 "strict_cpp_re.inc"
+yy286:
     yych = *++YYCURSOR;
- if (yych != '=') goto yy98;
+ if (yych != '=') goto yy99;
     ++YYCURSOR;
 #line 154 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3322 "strict_cpp_re.inc"
-yy277:
+#line 3419 "strict_cpp_re.inc"
+yy289:
     yych = *++YYCURSOR;
- if (yych == 'c') goto yy289;
- goto yy98;
-yy278:
+ if (yych == 'c') goto yy301;
+ goto yy99;
+yy290:
     yyaccept = 10;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy281;
- if (yych == 'n') goto yy280;
-yy279:
-#line 271 "strict_cpp.re"
+ if (yych == 'd') goto yy293;
+ if (yych == 'n') goto yy292;
+yy291:
+#line 301 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_IF); }
-#line 3335 "strict_cpp_re.inc"
-yy280:
+#line 3432 "strict_cpp_re.inc"
+yy292:
     yych = *++YYCURSOR;
- if (yych == 'd') goto yy285;
- goto yy98;
-yy281:
+ if (yych == 'd') goto yy297;
+ goto yy99;
+yy293:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 272 "strict_cpp.re"
+#line 302 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 3348 "strict_cpp_re.inc"
-yy285:
+#line 3445 "strict_cpp_re.inc"
+yy297:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 273 "strict_cpp.re"
+#line 303 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 3357 "strict_cpp_re.inc"
-yy289:
+#line 3454 "strict_cpp_re.inc"
+yy301:
     yych = *++YYCURSOR;
- if (yych != 'l') goto yy98;
+ if (yych != 'l') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'u') goto yy98;
+ if (yych != 'u') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'd') goto yy98;
+ if (yych != 'd') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yyaccept = 11;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '_') goto yy295;
- goto yy297;
-yy294:
-#line 269 "strict_cpp.re"
+ if (yych == '_') goto yy307;
+ goto yy309;
+yy306:
+#line 299 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 3374 "strict_cpp_re.inc"
-yy295:
+#line 3471 "strict_cpp_re.inc"
+yy307:
     yych = *++YYCURSOR;
- if (yych == 'n') goto yy316;
- goto yy98;
-yy296:
+ if (yych == 'n') goto yy328;
+ goto yy99;
+yy308:
     yyaccept = 11;
     YYMARKER = ++YYCURSOR;
     if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
     yych = *YYCURSOR;
-yy297:
+yy309:
     if (yych <= ' ') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy296;
- goto yy294;
+ if (yych == '\t') goto yy308;
+ goto yy306;
         } else {
- if (yych <= '\f') goto yy296;
- if (yych <= 0x1F) goto yy294;
- goto yy296;
+ if (yych <= '\f') goto yy308;
+ if (yych <= 0x1F) goto yy306;
+ goto yy308;
         }
     } else {
         if (yych <= '.') {
- if (yych == '"') goto yy300;
- goto yy294;
+ if (yych == '"') goto yy312;
+ goto yy306;
         } else {
- if (yych <= '/') goto yy298;
- if (yych == '<') goto yy299;
- goto yy294;
+ if (yych <= '/') goto yy310;
+ if (yych == '<') goto yy311;
+ goto yy306;
         }
     }
-yy298:
+yy310:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych == '*') goto yy309;
- goto yy98;
-yy299:
+ if (yych == '*') goto yy321;
+ goto yy99;
+yy311:
     yych = *++YYCURSOR;
- if (yych == '>') goto yy98;
- goto yy306;
-yy300:
+ if (yych == '>') goto yy99;
+ goto yy318;
+yy312:
     yych = *++YYCURSOR;
- if (yych == '"') goto yy98;
- goto yy302;
-yy301:
+ if (yych == '"') goto yy99;
+ goto yy314;
+yy313:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy302:
+yy314:
     if (yybm[0+yych] & 8) {
- goto yy301;
+ goto yy313;
     }
- if (yych <= '!') goto yy98;
+ if (yych <= '!') goto yy99;
     ++YYCURSOR;
-#line 266 "strict_cpp.re"
+#line 296 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 3430 "strict_cpp_re.inc"
-yy305:
+#line 3527 "strict_cpp_re.inc"
+yy317:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy306:
+yy318:
     if (yybm[0+yych] & 16) {
- goto yy305;
+ goto yy317;
     }
- if (yych <= '=') goto yy98;
+ if (yych <= '=') goto yy99;
     ++YYCURSOR;
-#line 263 "strict_cpp.re"
+#line 293 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 3443 "strict_cpp_re.inc"
-yy309:
+#line 3540 "strict_cpp_re.inc"
+yy321:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy309;
+ goto yy321;
     }
- if (yych == '\r') goto yy311;
- if (yych <= ')') goto yy98;
- goto yy313;
-yy311:
+ if (yych == '\r') goto yy323;
+ if (yych <= ')') goto yy99;
+ goto yy325;
+yy323:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy309;
+ goto yy321;
     }
- if (yych == '\r') goto yy311;
- if (yych <= ')') goto yy98;
-yy313:
+ if (yych == '\r') goto yy323;
+ if (yych <= ')') goto yy99;
+yy325:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy313;
+ goto yy325;
     }
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy309;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy321;
     } else {
- if (yych <= 0x1F) goto yy98;
- if (yych == '/') goto yy296;
- goto yy309;
+ if (yych <= 0x1F) goto yy99;
+ if (yych == '/') goto yy308;
+ goto yy321;
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy309;
+ goto yy321;
     }
- if (yych == '\r') goto yy311;
- if (yych <= ')') goto yy98;
- goto yy313;
-yy316:
+ if (yych == '\r') goto yy323;
+ if (yych <= ')') goto yy99;
+ goto yy325;
+yy328:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'x') goto yy98;
+ if (yych != 'x') goto yy99;
     yych = *++YYCURSOR;
- if (yych == 't') goto yy296;
- goto yy98;
-yy319:
+ if (yych == 't') goto yy308;
+ goto yy99;
+yy331:
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 277 "strict_cpp.re"
+#line 307 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 3507 "strict_cpp_re.inc"
-yy325:
+#line 3604 "strict_cpp_re.inc"
+yy337:
     yych = *++YYCURSOR;
- if (yych != 'd') goto yy98;
+ if (yych != 'd') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'f') goto yy98;
+ if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 278 "strict_cpp.re"
+#line 308 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 3518 "strict_cpp_re.inc"
-yy330:
+#line 3615 "strict_cpp_re.inc"
+yy342:
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 279 "strict_cpp.re"
+#line 309 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_LINE); }
-#line 3527 "strict_cpp_re.inc"
-yy334:
+#line 3624 "strict_cpp_re.inc"
+yy346:
     yych = *++YYCURSOR;
- if (yych != 'a') goto yy98;
+ if (yych != 'a') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'm') goto yy98;
+ if (yych != 'm') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'a') goto yy98;
+ if (yych != 'a') goto yy99;
     ++YYCURSOR;
-#line 281 "strict_cpp.re"
+#line 311 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 3540 "strict_cpp_re.inc"
-yy340:
+#line 3637 "strict_cpp_re.inc"
+yy352:
     yych = *++YYCURSOR;
- if (yych != 'r') goto yy98;
+ if (yych != 'r') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     ++YYCURSOR;
-#line 283 "strict_cpp.re"
+#line 313 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_WARNING); }
-#line 3555 "strict_cpp_re.inc"
-yy347:
+#line 3652 "strict_cpp_re.inc"
+yy359:
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'o') goto yy98;
+ if (yych != 'o') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     ++YYCURSOR;
-#line 285 "strict_cpp.re"
+#line 315 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
-#line 3568 "strict_cpp_re.inc"
-yy353:
+#line 3665 "strict_cpp_re.inc"
+yy365:
     yych = *++YYCURSOR;
- if (yych == 'i') goto yy371;
- if (yych == 's') goto yy372;
- goto yy98;
-yy354:
+ if (yych == 'i') goto yy383;
+ if (yych == 's') goto yy384;
+ goto yy99;
+yy366:
     yych = *++YYCURSOR;
- if (yych == 'd') goto yy360;
- goto yy98;
-yy355:
+ if (yych == 'd') goto yy372;
+ goto yy99;
+yy367:
     yych = *++YYCURSOR;
- if (yych != 'r') goto yy98;
+ if (yych != 'r') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'o') goto yy98;
+ if (yych != 'o') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'r') goto yy98;
+ if (yych != 'r') goto yy99;
     ++YYCURSOR;
-#line 280 "strict_cpp.re"
+#line 310 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ERROR); }
-#line 3588 "strict_cpp_re.inc"
-yy360:
+#line 3685 "strict_cpp_re.inc"
+yy372:
     yych = *++YYCURSOR;
- if (yych == 'i') goto yy361;
- if (yych == 'r') goto yy362;
- goto yy98;
-yy361:
+ if (yych == 'i') goto yy373;
+ if (yych == 'r') goto yy374;
+ goto yy99;
+yy373:
     yych = *++YYCURSOR;
- if (yych == 'f') goto yy369;
- goto yy98;
-yy362:
+ if (yych == 'f') goto yy381;
+ goto yy99;
+yy374:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'g') goto yy98;
+ if (yych != 'g') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'i') goto yy98;
+ if (yych != 'i') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'o') goto yy98;
+ if (yych != 'o') goto yy99;
     yych = *++YYCURSOR;
- if (yych != 'n') goto yy98;
+ if (yych != 'n') goto yy99;
     ++YYCURSOR;
-#line 286 "strict_cpp.re"
+#line 316 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
-#line 3612 "strict_cpp_re.inc"
-yy369:
+#line 3709 "strict_cpp_re.inc"
+yy381:
     ++YYCURSOR;
-#line 276 "strict_cpp.re"
+#line 306 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 3617 "strict_cpp_re.inc"
-yy371:
+#line 3714 "strict_cpp_re.inc"
+yy383:
     yych = *++YYCURSOR;
- if (yych == 'f') goto yy375;
- goto yy98;
-yy372:
+ if (yych == 'f') goto yy387;
+ goto yy99;
+yy384:
     yych = *++YYCURSOR;
- if (yych != 'e') goto yy98;
+ if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 274 "strict_cpp.re"
+#line 304 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3628 "strict_cpp_re.inc"
-yy375:
+#line 3725 "strict_cpp_re.inc"
+yy387:
     ++YYCURSOR;
-#line 275 "strict_cpp.re"
+#line 305 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3633 "strict_cpp_re.inc"
-yy377:
+#line 3730 "strict_cpp_re.inc"
+yy389:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
     } else {
- if (yych <= 0x1F) goto yy98;
- if (yych == '*') goto yy381;
- goto yy377;
+ if (yych <= 0x1F) goto yy99;
+ if (yych == '*') goto yy393;
+ goto yy389;
     }
-yy379:
+yy391:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
- goto yy379;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
+ goto yy391;
     } else {
- if (yych <= 0x1F) goto yy98;
- if (yych != '*') goto yy377;
+ if (yych <= 0x1F) goto yy99;
+ if (yych != '*') goto yy389;
     }
-yy381:
+yy393:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
- if (yych >= 0x0E) goto yy98;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
+ if (yych >= 0x0E) goto yy99;
     } else {
         if (yych <= '*') {
- if (yych <= ')') goto yy377;
- goto yy381;
+ if (yych <= ')') goto yy389;
+ goto yy393;
         } else {
- if (yych == '/') goto yy260;
- goto yy377;
+ if (yych == '/') goto yy272;
+ goto yy389;
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '\r') {
- if (yych <= 0x08) goto yy98;
- if (yych <= '\f') goto yy377;
- goto yy379;
- } else {
- if (yych <= 0x1F) goto yy98;
- if (yych == '*') goto yy381;
- goto yy377;
+ if (yych <= 0x08) goto yy99;
+ if (yych <= '\f') goto yy389;
+ goto yy391;
+ } else {
+ if (yych <= 0x1F) goto yy99;
+ if (yych == '*') goto yy393;
+ goto yy389;
     }
-yy384:
+yy396:
     ++YYCURSOR;
 #line 165 "strict_cpp.re"
     {
@@ -3695,2738 +3792,2744 @@
                 BOOST_WAVE_RET(T_COLON_COLON);
             }
         }
-#line 3699 "strict_cpp_re.inc"
-yy386:
+#line 3796 "strict_cpp_re.inc"
+yy398:
     ++YYCURSOR;
 #line 149 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
-#line 3704 "strict_cpp_re.inc"
-yy388:
+#line 3801 "strict_cpp_re.inc"
+yy400:
     yyaccept = 12;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy261;
+ if (yych == '\t') goto yy273;
             } else {
- if (yych <= '\f') goto yy261;
- if (yych >= ' ') goto yy261;
+ if (yych <= '\f') goto yy273;
+ if (yych >= ' ') goto yy273;
             }
         } else {
             if (yych <= '.') {
- if (yych == '%') goto yy394;
+ if (yych == '%') goto yy406;
             } else {
- if (yych <= '/') goto yy261;
- if (yych >= 'd') goto yy261;
+ if (yych <= '/') goto yy273;
+ if (yych >= 'd') goto yy273;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'k') {
- if (yych == 'i') goto yy261;
+ if (yych == 'i') goto yy273;
             } else {
- if (yych <= 'l') goto yy261;
- if (yych >= 'p') goto yy261;
+ if (yych <= 'l') goto yy273;
+ if (yych >= 'p') goto yy273;
             }
         } else {
             if (yych <= 't') {
- if (yych == 'r') goto yy261;
+ if (yych == 'r') goto yy273;
             } else {
- if (yych == 'v') goto yy389;
- if (yych <= 'w') goto yy261;
+ if (yych == 'v') goto yy401;
+ if (yych <= 'w') goto yy273;
             }
         }
     }
-yy389:
+yy401:
 #line 151 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_ALT); }
-#line 3744 "strict_cpp_re.inc"
-yy390:
+#line 3841 "strict_cpp_re.inc"
+yy402:
     ++YYCURSOR;
 #line 210 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PERCENTASSIGN); }
-#line 3749 "strict_cpp_re.inc"
-yy392:
+#line 3846 "strict_cpp_re.inc"
+yy404:
     ++YYCURSOR;
 #line 143 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
-#line 3754 "strict_cpp_re.inc"
-yy394:
+#line 3851 "strict_cpp_re.inc"
+yy406:
     yych = *++YYCURSOR;
- if (yych != ':') goto yy98;
+ if (yych != ':') goto yy99;
     ++YYCURSOR;
 #line 157 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
-#line 3761 "strict_cpp_re.inc"
-yy397:
+#line 3858 "strict_cpp_re.inc"
+yy409:
     ++YYCURSOR;
 #line 226 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 3766 "strict_cpp_re.inc"
-yy399:
+#line 3863 "strict_cpp_re.inc"
+yy411:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy405;
+ if ((yych = *YYCURSOR) == '=') goto yy417;
 #line 219 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 3772 "strict_cpp_re.inc"
-yy401:
+#line 3869 "strict_cpp_re.inc"
+yy413:
     ++YYCURSOR;
 #line 146 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
-#line 3777 "strict_cpp_re.inc"
-yy403:
+#line 3874 "strict_cpp_re.inc"
+yy415:
     ++YYCURSOR;
 #line 140 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
-#line 3782 "strict_cpp_re.inc"
-yy405:
+#line 3879 "strict_cpp_re.inc"
+yy417:
     ++YYCURSOR;
 #line 222 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
-#line 3787 "strict_cpp_re.inc"
-yy407:
+#line 3884 "strict_cpp_re.inc"
+yy419:
     yych = *++YYCURSOR;
     switch (yych) {
- case '!': goto yy420;
- case '\'': goto yy418;
- case '(': goto yy412;
- case ')': goto yy414;
- case '-': goto yy422;
- case '/': goto yy424;
- case '<': goto yy408;
- case '=': goto yy416;
- case '>': goto yy410;
- default: goto yy98;
+ case '!': goto yy432;
+ case '\'': goto yy430;
+ case '(': goto yy424;
+ case ')': goto yy426;
+ case '-': goto yy434;
+ case '/': goto yy436;
+ case '<': goto yy420;
+ case '=': goto yy428;
+ case '>': goto yy422;
+ default: goto yy99;
     }
-yy408:
+yy420:
     ++YYCURSOR;
 #line 139 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
-#line 3806 "strict_cpp_re.inc"
-yy410:
+#line 3903 "strict_cpp_re.inc"
+yy422:
     ++YYCURSOR;
 #line 142 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
-#line 3811 "strict_cpp_re.inc"
-yy412:
+#line 3908 "strict_cpp_re.inc"
+yy424:
     ++YYCURSOR;
 #line 145 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
-#line 3816 "strict_cpp_re.inc"
-yy414:
+#line 3913 "strict_cpp_re.inc"
+yy426:
     ++YYCURSOR;
 #line 148 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
-#line 3821 "strict_cpp_re.inc"
-yy416:
+#line 3918 "strict_cpp_re.inc"
+yy428:
     yyaccept = 13;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'c') {
         if (yych <= ' ') {
             if (yych <= '\n') {
- if (yych == '\t') goto yy261;
+ if (yych == '\t') goto yy273;
             } else {
- if (yych <= '\f') goto yy261;
- if (yych >= ' ') goto yy261;
+ if (yych <= '\f') goto yy273;
+ if (yych >= ' ') goto yy273;
             }
         } else {
             if (yych <= '.') {
- if (yych == '#') goto yy437;
+ if (yych == '#') goto yy449;
             } else {
- if (yych <= '/') goto yy261;
- if (yych == '?') goto yy436;
+ if (yych <= '/') goto yy273;
+ if (yych == '?') goto yy448;
             }
         }
     } else {
         if (yych <= 'p') {
             if (yych <= 'i') {
- if (yych <= 'e') goto yy261;
- if (yych >= 'i') goto yy261;
+ if (yych <= 'e') goto yy273;
+ if (yych >= 'i') goto yy273;
             } else {
- if (yych == 'l') goto yy261;
- if (yych >= 'p') goto yy261;
+ if (yych == 'l') goto yy273;
+ if (yych >= 'p') goto yy273;
             }
         } else {
             if (yych <= 't') {
- if (yych == 'r') goto yy261;
+ if (yych == 'r') goto yy273;
             } else {
- if (yych == 'v') goto yy417;
- if (yych <= 'w') goto yy261;
+ if (yych == 'v') goto yy429;
+ if (yych <= 'w') goto yy273;
             }
         }
     }
-yy417:
+yy429:
 #line 152 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
-#line 3862 "strict_cpp_re.inc"
-yy418:
+#line 3959 "strict_cpp_re.inc"
+yy430:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy434;
+ if ((yych = *YYCURSOR) == '=') goto yy446;
 #line 191 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
-#line 3868 "strict_cpp_re.inc"
-yy420:
+#line 3965 "strict_cpp_re.inc"
+yy432:
     yyaccept = 14;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '>') {
- if (yych == '=') goto yy429;
+ if (yych == '=') goto yy441;
     } else {
- if (yych <= '?') goto yy426;
- if (yych == '|') goto yy427;
+ if (yych <= '?') goto yy438;
+ if (yych == '|') goto yy439;
     }
-yy421:
+yy433:
 #line 197 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
-#line 3881 "strict_cpp_re.inc"
-yy422:
+#line 3978 "strict_cpp_re.inc"
+yy434:
     ++YYCURSOR;
 #line 199 "strict_cpp.re"
     { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
-#line 3886 "strict_cpp_re.inc"
-yy424:
+#line 3983 "strict_cpp_re.inc"
+yy436:
     yyaccept = 15;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'U') goto yy186;
- if (yych == 'u') goto yy185;
-yy425:
+ if (yych == 'U') goto yy100;
+ if (yych == 'u') goto yy98;
+yy437:
 #line 249 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
-#line 3895 "strict_cpp_re.inc"
-yy426:
+#line 3992 "strict_cpp_re.inc"
+yy438:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy431;
- goto yy98;
-yy427:
+ if (yych == '?') goto yy443;
+ goto yy99;
+yy439:
     ++YYCURSOR;
 #line 231 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3904 "strict_cpp_re.inc"
-yy429:
+#line 4001 "strict_cpp_re.inc"
+yy441:
     ++YYCURSOR;
 #line 218 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
-#line 3909 "strict_cpp_re.inc"
-yy431:
+#line 4006 "strict_cpp_re.inc"
+yy443:
     yych = *++YYCURSOR;
- if (yych != '!') goto yy98;
+ if (yych != '!') goto yy99;
     ++YYCURSOR;
 #line 234 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3916 "strict_cpp_re.inc"
-yy434:
+#line 4013 "strict_cpp_re.inc"
+yy446:
     ++YYCURSOR;
 #line 213 "strict_cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
-#line 3921 "strict_cpp_re.inc"
-yy436:
+#line 4018 "strict_cpp_re.inc"
+yy448:
     yych = *++YYCURSOR;
- if (yych == '?') goto yy439;
- goto yy98;
-yy437:
+ if (yych == '?') goto yy451;
+ goto yy99;
+yy449:
     ++YYCURSOR;
 #line 155 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3930 "strict_cpp_re.inc"
-yy439:
+#line 4027 "strict_cpp_re.inc"
+yy451:
     yych = *++YYCURSOR;
- if (yych != '=') goto yy98;
+ if (yych != '=') goto yy99;
     ++YYCURSOR;
 #line 156 "strict_cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3937 "strict_cpp_re.inc"
-yy442:
+#line 4034 "strict_cpp_re.inc"
+yy454:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'e': goto yy495;
- case 'f': goto yy493;
- case 'i': goto yy492;
- case 'l': goto yy496;
- case 's': goto yy449;
- case 't': goto yy494;
- default: goto yy195;
+ case 'a': goto yy455;
+ case 'b': goto yy456;
+ case 'c': goto yy457;
+ case 'd': goto yy458;
+ case 'e': goto yy507;
+ case 'f': goto yy505;
+ case 'i': goto yy504;
+ case 'l': goto yy508;
+ case 's': goto yy461;
+ case 't': goto yy506;
+ default: goto yy109;
     }
-yy443:
+yy455:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy489;
- goto yy195;
-yy444:
+ if (yych == 's') goto yy501;
+ goto yy109;
+yy456:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy484;
- goto yy195;
-yy445:
+ if (yych == 'a') goto yy496;
+ goto yy109;
+yy457:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy479;
- goto yy195;
-yy446:
+ if (yych == 'd') goto yy491;
+ goto yy109;
+yy458:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy471;
- goto yy195;
-yy447:
+ if (yych == 'e') goto yy483;
+ goto yy109;
+yy459:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy463;
- goto yy195;
-yy448:
+ if (yych == 'a') goto yy475;
+ goto yy109;
+yy460:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy457;
- goto yy195;
-yy449:
+ if (yych == 'n') goto yy469;
+ goto yy109;
+yy461:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 16;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy456:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy468:
 #line 130 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
-#line 4013 "strict_cpp_re.inc"
-yy457:
+#line 4110 "strict_cpp_re.inc"
+yy469:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
-yy458:
+ if (yych != 'l') goto yy109;
+yy470:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 17;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy462:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy474:
 #line 135 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
-#line 4038 "strict_cpp_re.inc"
-yy463:
+#line 4135 "strict_cpp_re.inc"
+yy475:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 18;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy470:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy482:
 #line 129 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
-#line 4068 "strict_cpp_re.inc"
-yy471:
+#line 4165 "strict_cpp_re.inc"
+yy483:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 19;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy478:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy490:
 #line 127 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
-#line 4098 "strict_cpp_re.inc"
-yy479:
+#line 4195 "strict_cpp_re.inc"
+yy491:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 20;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy483:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy495:
 #line 128 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
-#line 4119 "strict_cpp_re.inc"
-yy484:
+#line 4216 "strict_cpp_re.inc"
+yy496:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 21;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy488:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy500:
 #line 126 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
-#line 4140 "strict_cpp_re.inc"
-yy489:
+#line 4237 "strict_cpp_re.inc"
+yy501:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 22;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy491:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy503:
 #line 136 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
-#line 4155 "strict_cpp_re.inc"
-yy492:
+#line 4252 "strict_cpp_re.inc"
+yy504:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy518;
- goto yy195;
-yy493:
+ if (yych == 'n') goto yy530;
+ goto yy109;
+yy505:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy463;
- if (yych == 'i') goto yy511;
- goto yy195;
-yy494:
+ if (yych == 'a') goto yy475;
+ if (yych == 'i') goto yy523;
+ goto yy109;
+yy506:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy508;
- goto yy195;
-yy495:
+ if (yych == 'r') goto yy520;
+ goto yy109;
+yy507:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'x') goto yy502;
- goto yy195;
-yy496:
+ if (yych == 'x') goto yy514;
+ goto yy109;
+yy508:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'v') goto yy195;
+ if (yych != 'v') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 23;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy501:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy513:
 #line 134 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
-#line 4200 "strict_cpp_re.inc"
-yy502:
+#line 4297 "strict_cpp_re.inc"
+yy514:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 24;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy507:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy519:
 #line 132 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
-#line 4224 "strict_cpp_re.inc"
-yy508:
+#line 4321 "strict_cpp_re.inc"
+yy520:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'y') goto yy195;
+ if (yych != 'y') goto yy109;
     yyaccept = 25;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy510:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy522:
 #line 131 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
-#line 4239 "strict_cpp_re.inc"
-yy511:
+#line 4336 "strict_cpp_re.inc"
+yy523:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'y') goto yy195;
+ if (yych != 'y') goto yy109;
     yyaccept = 26;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy517:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy529:
 #line 133 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
-#line 4266 "strict_cpp_re.inc"
-yy518:
+#line 4363 "strict_cpp_re.inc"
+yy530:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy458;
- if (yych != 't') goto yy195;
+ if (yych == 'l') goto yy470;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     switch (yych) {
- case '1': goto yy520;
- case '3': goto yy521;
- case '6': goto yy522;
- case '8': goto yy523;
- default: goto yy195;
+ case '1': goto yy532;
+ case '3': goto yy533;
+ case '6': goto yy534;
+ case '8': goto yy535;
+ default: goto yy109;
     }
-yy520:
+yy532:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '6') goto yy529;
- goto yy195;
-yy521:
+ if (yych == '6') goto yy541;
+ goto yy109;
+yy533:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '2') goto yy527;
- goto yy195;
-yy522:
+ if (yych == '2') goto yy539;
+ goto yy109;
+yy534:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '4') goto yy525;
- goto yy195;
-yy523:
+ if (yych == '4') goto yy537;
+ goto yy109;
+yy535:
     yyaccept = 27;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy524:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy536:
 #line 122 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
-#line 4307 "strict_cpp_re.inc"
-yy525:
+#line 4404 "strict_cpp_re.inc"
+yy537:
     yyaccept = 28;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy526:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy538:
 #line 125 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
-#line 4319 "strict_cpp_re.inc"
-yy527:
+#line 4416 "strict_cpp_re.inc"
+yy539:
     yyaccept = 29;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy528:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy540:
 #line 124 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
-#line 4331 "strict_cpp_re.inc"
-yy529:
+#line 4428 "strict_cpp_re.inc"
+yy541:
     yyaccept = 30;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy530:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy542:
 #line 123 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
-#line 4343 "strict_cpp_re.inc"
-yy531:
+#line 4440 "strict_cpp_re.inc"
+yy543:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'h') goto yy537;
- goto yy195;
-yy532:
+ if (yych == 'h') goto yy549;
+ goto yy109;
+yy544:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 31;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy536:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy548:
 #line 120 "strict_cpp.re"
     { BOOST_WAVE_RET(T_WHILE); }
-#line 4369 "strict_cpp_re.inc"
-yy537:
+#line 4466 "strict_cpp_re.inc"
+yy549:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 32;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy542:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy554:
 #line 119 "strict_cpp.re"
     { BOOST_WAVE_RET(T_WCHART); }
-#line 4393 "strict_cpp_re.inc"
-yy543:
+#line 4490 "strict_cpp_re.inc"
+yy555:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy555;
- goto yy195;
-yy544:
+ if (yych == 'r') goto yy567;
+ goto yy109;
+yy556:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy545;
- if (yych == 'l') goto yy546;
- goto yy195;
-yy545:
+ if (yych == 'i') goto yy557;
+ if (yych == 'l') goto yy558;
+ goto yy109;
+yy557:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy553;
- goto yy195;
-yy546:
+ if (yych == 'd') goto yy565;
+ goto yy109;
+yy558:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 33;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy552:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy564:
 #line 118 "strict_cpp.re"
     { BOOST_WAVE_RET(T_VOLATILE); }
-#line 4436 "strict_cpp_re.inc"
-yy553:
+#line 4533 "strict_cpp_re.inc"
+yy565:
     yyaccept = 34;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy554:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy566:
 #line 117 "strict_cpp.re"
     { BOOST_WAVE_RET(T_VOID); }
-#line 4448 "strict_cpp_re.inc"
-yy555:
+#line 4545 "strict_cpp_re.inc"
+yy567:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 35;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy560:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy572:
 #line 116 "strict_cpp.re"
     { BOOST_WAVE_RET(T_VIRTUAL); }
-#line 4472 "strict_cpp_re.inc"
-yy561:
+#line 4569 "strict_cpp_re.inc"
+yy573:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '"') goto yy129;
+ if (yych == 'R') goto yy128;
+ goto yy109;
+yy574:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy567;
- if (yych == 's') goto yy568;
- goto yy195;
-yy562:
+ if (yych == 'i') goto yy580;
+ if (yych == 's') goto yy581;
+ goto yy109;
+yy575:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 36;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy566:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy579:
 #line 115 "strict_cpp.re"
     { BOOST_WAVE_RET(T_USING); }
-#line 4499 "strict_cpp_re.inc"
-yy567:
+#line 4602 "strict_cpp_re.inc"
+yy580:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy575;
- goto yy195;
-yy568:
+ if (yych == 'o') goto yy588;
+ goto yy109;
+yy581:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 37;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy574:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy587:
 #line 114 "strict_cpp.re"
     { BOOST_WAVE_RET(T_UNSIGNED); }
-#line 4531 "strict_cpp_re.inc"
-yy575:
+#line 4634 "strict_cpp_re.inc"
+yy588:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 38;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy577:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy590:
 #line 113 "strict_cpp.re"
     { BOOST_WAVE_RET(T_UNION); }
-#line 4546 "strict_cpp_re.inc"
-yy578:
+#line 4649 "strict_cpp_re.inc"
+yy591:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'm') goto yy618;
- goto yy195;
-yy579:
+ if (yych == 'm') goto yy631;
+ goto yy109;
+yy592:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy601;
- if (yych == 'r') goto yy602;
- goto yy195;
-yy580:
+ if (yych == 'i') goto yy614;
+ if (yych == 'r') goto yy615;
+ goto yy109;
+yy593:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'u') goto yy596;
- if (yych == 'y') goto yy597;
- goto yy195;
-yy581:
+ if (yych == 'u') goto yy609;
+ if (yych == 'y') goto yy610;
+ goto yy109;
+yy594:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     } else {
- if (yych <= 'i') goto yy585;
- if (yych == 'n') goto yy586;
- goto yy195;
+ if (yych <= 'i') goto yy598;
+ if (yych == 'n') goto yy599;
+ goto yy109;
     }
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy593;
- goto yy195;
-yy585:
+ if (yych == 'e') goto yy606;
+ goto yy109;
+yy598:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'd') goto yy591;
- goto yy195;
-yy586:
+ if (yych == 'd') goto yy604;
+ goto yy109;
+yy599:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 39;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy590:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy603:
 #line 112 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TYPENAME); }
-#line 4609 "strict_cpp_re.inc"
-yy591:
+#line 4712 "strict_cpp_re.inc"
+yy604:
     yyaccept = 40;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy592:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy605:
 #line 111 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TYPEID); }
-#line 4621 "strict_cpp_re.inc"
-yy593:
+#line 4724 "strict_cpp_re.inc"
+yy606:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'f') goto yy195;
+ if (yych != 'f') goto yy109;
     yyaccept = 41;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy595:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy608:
 #line 110 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TYPEDEF); }
-#line 4636 "strict_cpp_re.inc"
-yy596:
+#line 4739 "strict_cpp_re.inc"
+yy609:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy599;
- goto yy195;
-yy597:
+ if (yych == 'e') goto yy612;
+ goto yy109;
+yy610:
     yyaccept = 42;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy598:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy611:
 #line 109 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TRY); }
-#line 4653 "strict_cpp_re.inc"
-yy599:
+#line 4756 "strict_cpp_re.inc"
+yy612:
     yyaccept = 43;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy600:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy613:
 #line 108 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TRUE); }
-#line 4665 "strict_cpp_re.inc"
-yy601:
+#line 4768 "strict_cpp_re.inc"
+yy614:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy616;
- goto yy195;
-yy602:
+ if (yych == 's') goto yy629;
+ goto yy109;
+yy615:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy603;
- if (yych == 'o') goto yy604;
- goto yy195;
-yy603:
+ if (yych == 'e') goto yy616;
+ if (yych == 'o') goto yy617;
+ goto yy109;
+yy616:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy607;
- goto yy195;
-yy604:
+ if (yych == 'a') goto yy620;
+ goto yy109;
+yy617:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'w') goto yy195;
+ if (yych != 'w') goto yy109;
     yyaccept = 44;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy606:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy619:
 #line 107 "strict_cpp.re"
     { BOOST_WAVE_RET(T_THROW); }
-#line 4696 "strict_cpp_re.inc"
-yy607:
+#line 4799 "strict_cpp_re.inc"
+yy620:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 45;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy615:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy628:
 #line 106 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
-#line 4729 "strict_cpp_re.inc"
-yy616:
+#line 4832 "strict_cpp_re.inc"
+yy629:
     yyaccept = 46;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy617:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy630:
 #line 105 "strict_cpp.re"
     { BOOST_WAVE_RET(T_THIS); }
-#line 4741 "strict_cpp_re.inc"
-yy618:
+#line 4844 "strict_cpp_re.inc"
+yy631:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 47;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy624:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy637:
 #line 104 "strict_cpp.re"
     { BOOST_WAVE_RET(T_TEMPLATE); }
-#line 4768 "strict_cpp_re.inc"
-yy625:
+#line 4871 "strict_cpp_re.inc"
+yy638:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy667;
- goto yy195;
-yy626:
+ if (yych == 'o') goto yy680;
+ goto yy109;
+yy639:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'g') goto yy657;
- if (yych == 'z') goto yy658;
- goto yy195;
-yy627:
+ if (yych == 'g') goto yy670;
+ if (yych == 'z') goto yy671;
+ goto yy109;
+yy640:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy634;
- if (yych == 'r') goto yy635;
- goto yy195;
-yy628:
+ if (yych == 'a') goto yy647;
+ if (yych == 'r') goto yy648;
+ goto yy109;
+yy641:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'h') goto yy195;
+ if (yych != 'h') goto yy109;
     yyaccept = 48;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy633:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy646:
 #line 103 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SWITCH); }
-#line 4809 "strict_cpp_re.inc"
-yy634:
+#line 4912 "strict_cpp_re.inc"
+yy647:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 't') goto yy640;
- goto yy195;
-yy635:
+ if (yych == 't') goto yy653;
+ goto yy109;
+yy648:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 49;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy639:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy652:
 #line 102 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STRUCT); }
-#line 4835 "strict_cpp_re.inc"
-yy640:
+#line 4938 "strict_cpp_re.inc"
+yy653:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 50;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
- if (yych <= '/') goto yy643;
- if (yych <= '9') goto yy194;
+ if (yych <= '/') goto yy656;
+ if (yych <= '9') goto yy108;
         } else {
- if (yych <= '?') goto yy197;
- if (yych >= 'A') goto yy194;
+ if (yych <= '?') goto yy111;
+ if (yych >= 'A') goto yy108;
         }
     } else {
         if (yych <= '^') {
- if (yych == '\\') goto yy196;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy644;
- if (yych <= '`') goto yy643;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy657;
+ if (yych <= '`') goto yy656;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy643:
+yy656:
 #line 99 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STATIC); }
-#line 4865 "strict_cpp_re.inc"
-yy644:
+#line 4968 "strict_cpp_re.inc"
+yy657:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'a') goto yy645;
- if (yych == 'c') goto yy646;
- goto yy195;
-yy645:
+ if (yych == 'a') goto yy658;
+ if (yych == 'c') goto yy659;
+ goto yy109;
+yy658:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy651;
- goto yy195;
-yy646:
+ if (yych == 's') goto yy664;
+ goto yy109;
+yy659:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 51;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy650:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy663:
 #line 100 "strict_cpp.re"
     { BOOST_WAVE_RET(T_STATICCAST); }
-#line 4897 "strict_cpp_re.inc"
-yy651:
+#line 5000 "strict_cpp_re.inc"
+yy664:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 52;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy656:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy669:
 #line 101 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
-#line 4921 "strict_cpp_re.inc"
-yy657:
+#line 5024 "strict_cpp_re.inc"
+yy670:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy663;
- goto yy195;
-yy658:
+ if (yych == 'n') goto yy676;
+ goto yy109;
+yy671:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'f') goto yy195;
+ if (yych != 'f') goto yy109;
     yyaccept = 53;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy662:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy675:
 #line 98 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SIZEOF); }
-#line 4947 "strict_cpp_re.inc"
-yy663:
+#line 5050 "strict_cpp_re.inc"
+yy676:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 54;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy666:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy679:
 #line 97 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SIGNED); }
-#line 4965 "strict_cpp_re.inc"
-yy667:
+#line 5068 "strict_cpp_re.inc"
+yy680:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 55;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy670:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy683:
 #line 96 "strict_cpp.re"
     { BOOST_WAVE_RET(T_SHORT); }
-#line 4983 "strict_cpp_re.inc"
-yy671:
+#line 5086 "strict_cpp_re.inc"
+yy684:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'h') {
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     } else {
- if (yych <= 'i') goto yy673;
- if (yych == 't') goto yy674;
- goto yy195;
+ if (yych <= 'i') goto yy686;
+ if (yych == 't') goto yy687;
+ goto yy109;
     }
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy693;
- goto yy195;
-yy673:
+ if (yych == 'i') goto yy706;
+ goto yy109;
+yy686:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'n') goto yy679;
- goto yy195;
-yy674:
+ if (yych == 'n') goto yy692;
+ goto yy109;
+yy687:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'u') goto yy195;
+ if (yych != 'u') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 56;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy678:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy691:
 #line 95 "strict_cpp.re"
     { BOOST_WAVE_RET(T_RETURN); }
-#line 5023 "strict_cpp_re.inc"
-yy679:
+#line 5126 "strict_cpp_re.inc"
+yy692:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 57;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy692:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy705:
 #line 94 "strict_cpp.re"
     { BOOST_WAVE_RET(T_REINTERPRETCAST); }
-#line 5071 "strict_cpp_re.inc"
-yy693:
+#line 5174 "strict_cpp_re.inc"
+yy706:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 58;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy698:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy711:
 #line 93 "strict_cpp.re"
     { BOOST_WAVE_RET(T_REGISTER); }
-#line 5095 "strict_cpp_re.inc"
-yy699:
+#line 5198 "strict_cpp_re.inc"
+yy712:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy706;
- if (yych == 'o') goto yy707;
- goto yy195;
-yy700:
+ if (yych == 'i') goto yy719;
+ if (yych == 'o') goto yy720;
+ goto yy109;
+yy713:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'b') goto yy195;
+ if (yych != 'b') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 59;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy705:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy718:
 #line 92 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PUBLIC); }
-#line 5125 "strict_cpp_re.inc"
-yy706:
+#line 5228 "strict_cpp_re.inc"
+yy719:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'v') goto yy715;
- goto yy195;
-yy707:
+ if (yych == 'v') goto yy728;
+ goto yy109;
+yy720:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 60;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy714:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy727:
 #line 91 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PROTECTED); }
-#line 5160 "strict_cpp_re.inc"
-yy715:
+#line 5263 "strict_cpp_re.inc"
+yy728:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 61;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy719:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy732:
 #line 90 "strict_cpp.re"
     { BOOST_WAVE_RET(T_PRIVATE); }
-#line 5181 "strict_cpp_re.inc"
-yy720:
+#line 5284 "strict_cpp_re.inc"
+yy733:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy727;
- goto yy195;
-yy721:
+ if (yych == 'e') goto yy740;
+ goto yy109;
+yy734:
     yyaccept = 62;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
- if (yych <= '/') goto yy722;
- if (yych <= '9') goto yy194;
+ if (yych <= '/') goto yy735;
+ if (yych <= '9') goto yy108;
         } else {
- if (yych <= '?') goto yy197;
- if (yych >= 'A') goto yy194;
+ if (yych <= '?') goto yy111;
+ if (yych >= 'A') goto yy108;
         }
     } else {
         if (yych <= '^') {
- if (yych == '\\') goto yy196;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy723;
- if (yych <= '`') goto yy722;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy736;
+ if (yych <= '`') goto yy735;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy722:
+yy735:
 #line 233 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
-#line 5210 "strict_cpp_re.inc"
-yy723:
+#line 5313 "strict_cpp_re.inc"
+yy736:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 63;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy726:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy739:
 #line 217 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
-#line 5228 "strict_cpp_re.inc"
-yy727:
+#line 5331 "strict_cpp_re.inc"
+yy740:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 64;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy733:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy746:
 #line 89 "strict_cpp.re"
     { BOOST_WAVE_RET(T_OPERATOR); }
-#line 5255 "strict_cpp_re.inc"
-yy734:
+#line 5358 "strict_cpp_re.inc"
+yy747:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'm') goto yy759;
- goto yy195;
-yy735:
+ if (yych == 'm') goto yy772;
+ goto yy109;
+yy748:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'w') goto yy757;
- goto yy195;
-yy736:
+ if (yych == 'w') goto yy770;
+ goto yy109;
+yy749:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'e') goto yy744;
- if (yych == 't') goto yy745;
- goto yy195;
-yy737:
+ if (yych == 'e') goto yy757;
+ if (yych == 't') goto yy758;
+ goto yy109;
+yy750:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 65;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy743:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy756:
 #line 88 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
-#line 5298 "strict_cpp_re.inc"
-yy744:
+#line 5401 "strict_cpp_re.inc"
+yy757:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'x') goto yy751;
- goto yy195;
-yy745:
+ if (yych == 'x') goto yy764;
+ goto yy109;
+yy758:
     yyaccept = 66;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'Z') {
         if (yych <= '>') {
- if (yych <= '/') goto yy746;
- if (yych <= '9') goto yy194;
+ if (yych <= '/') goto yy759;
+ if (yych <= '9') goto yy108;
         } else {
- if (yych <= '?') goto yy197;
- if (yych >= 'A') goto yy194;
+ if (yych <= '?') goto yy111;
+ if (yych >= 'A') goto yy108;
         }
     } else {
         if (yych <= '^') {
- if (yych == '\\') goto yy196;
+ if (yych == '\\') goto yy110;
         } else {
- if (yych <= '_') goto yy747;
- if (yych <= '`') goto yy746;
- if (yych <= 'z') goto yy194;
+ if (yych <= '_') goto yy760;
+ if (yych <= '`') goto yy759;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy746:
+yy759:
 #line 202 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
-#line 5327 "strict_cpp_re.inc"
-yy747:
+#line 5430 "strict_cpp_re.inc"
+yy760:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'q') goto yy195;
+ if (yych != 'q') goto yy109;
     yyaccept = 67;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy750:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy763:
 #line 225 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
-#line 5345 "strict_cpp_re.inc"
-yy751:
+#line 5448 "strict_cpp_re.inc"
+yy764:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 68;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy756:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy769:
 #line 87 "strict_cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
-#line 5369 "strict_cpp_re.inc"
-yy757:
+#line 5472 "strict_cpp_re.inc"
+yy770:
     yyaccept = 69;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy758:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy771:
 #line 86 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NEW); }
-#line 5381 "strict_cpp_re.inc"
-yy759:
+#line 5484 "strict_cpp_re.inc"
+yy772:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'p') goto yy195;
+ if (yych != 'p') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 70;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy766:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy779:
 #line 85 "strict_cpp.re"
     { BOOST_WAVE_RET(T_NAMESPACE); }
-#line 5411 "strict_cpp_re.inc"
-yy767:
+#line 5514 "strict_cpp_re.inc"
+yy780:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'b') goto yy195;
+ if (yych != 'b') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'l') goto yy195;
+ if (yych != 'l') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 71;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy773:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy786:
 #line 84 "strict_cpp.re"
     { BOOST_WAVE_RET(T_MUTABLE); }
-#line 5438 "strict_cpp_re.inc"
-yy774:
+#line 5541 "strict_cpp_re.inc"
+yy787:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'g') goto yy195;
+ if (yych != 'g') goto yy109;
     yyaccept = 72;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy777:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy790:
 #line 83 "strict_cpp.re"
     { BOOST_WAVE_RET(T_LONG); }
-#line 5456 "strict_cpp_re.inc"
-yy778:
+#line 5559 "strict_cpp_re.inc"
+yy791:
     yyaccept = 73;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy779:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy792:
 #line 79 "strict_cpp.re"
     { BOOST_WAVE_RET(T_IF); }
-#line 5468 "strict_cpp_re.inc"
-yy780:
+#line 5571 "strict_cpp_re.inc"
+yy793:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'p') goto yy789;
- goto yy195;
-yy781:
+ if (yych == 'p') goto yy802;
+ goto yy109;
+yy794:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy782;
- if (yych == 't') goto yy783;
- goto yy195;
-yy782:
+ if (yych == 'l') goto yy795;
+ if (yych == 't') goto yy796;
+ goto yy109;
+yy795:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy785;
- goto yy195;
-yy783:
+ if (yych == 'i') goto yy798;
+ goto yy109;
+yy796:
     yyaccept = 74;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy784:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy797:
 #line 82 "strict_cpp.re"
     { BOOST_WAVE_RET(T_INT); }
-#line 5496 "strict_cpp_re.inc"
-yy785:
+#line 5599 "strict_cpp_re.inc"
+yy798:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 75;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy788:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy801:
 #line 81 "strict_cpp.re"
     { BOOST_WAVE_RET(T_INLINE); }
-#line 5514 "strict_cpp_re.inc"
-yy789:
+#line 5617 "strict_cpp_re.inc"
+yy802:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 76;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy793:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy806:
 #line 80 "strict_cpp.re"
     { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
-#line 5535 "strict_cpp_re.inc"
-yy794:
+#line 5638 "strict_cpp_re.inc"
+yy807:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'o') goto yy195;
+ if (yych != 'o') goto yy109;
     yyaccept = 77;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy797:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy810:
 #line 78 "strict_cpp.re"
     { BOOST_WAVE_RET(T_GOTO); }
-#line 5553 "strict_cpp_re.inc"
-yy798:
+#line 5656 "strict_cpp_re.inc"
+yy811:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy813;
- goto yy195;
-yy799:
+ if (yych == 'l') goto yy826;
+ goto yy109;
+yy812:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'o') goto yy809;
- goto yy195;
-yy800:
+ if (yych == 'o') goto yy822;
+ goto yy109;
+yy813:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'r') goto yy807;
- goto yy195;
-yy801:
+ if (yych == 'r') goto yy820;
+ goto yy109;
+yy814:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'd') goto yy195;
+ if (yych != 'd') goto yy109;
     yyaccept = 78;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy806:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy819:
 #line 77 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FRIEND); }
-#line 5592 "strict_cpp_re.inc"
-yy807:
+#line 5695 "strict_cpp_re.inc"
+yy820:
     yyaccept = 79;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy808:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy821:
 #line 76 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FOR); }
-#line 5604 "strict_cpp_re.inc"
-yy809:
+#line 5707 "strict_cpp_re.inc"
+yy822:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 80;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy812:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy825:
 #line 75 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FLOAT); }
-#line 5622 "strict_cpp_re.inc"
-yy813:
+#line 5725 "strict_cpp_re.inc"
+yy826:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 81;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy816:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy829:
 #line 74 "strict_cpp.re"
     { BOOST_WAVE_RET(T_FALSE); }
-#line 5640 "strict_cpp_re.inc"
-yy817:
+#line 5743 "strict_cpp_re.inc"
+yy830:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 's') goto yy839;
- goto yy195;
-yy818:
+ if (yych == 's') goto yy852;
+ goto yy109;
+yy831:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'u') goto yy836;
- goto yy195;
-yy819:
+ if (yych == 'u') goto yy849;
+ goto yy109;
+yy832:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'p') goto yy820;
- if (yych == 't') goto yy821;
- goto yy195;
-yy820:
+ if (yych == 'p') goto yy833;
+ if (yych == 't') goto yy834;
+ goto yy109;
+yy833:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'l') goto yy826;
- if (yych == 'o') goto yy827;
- goto yy195;
-yy821:
+ if (yych == 'l') goto yy839;
+ if (yych == 'o') goto yy840;
+ goto yy109;
+yy834:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 82;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy825:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy838:
 #line 73 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EXTERN); }
-#line 5683 "strict_cpp_re.inc"
-yy826:
+#line 5786 "strict_cpp_re.inc"
+yy839:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych == 'i') goto yy831;
- goto yy195;
-yy827:
+ if (yych == 'i') goto yy844;
+ goto yy109;
+yy840:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'r') goto yy195;
+ if (yych != 'r') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 83;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy830:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy843:
 #line 72 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EXPORT); }
-#line 5706 "strict_cpp_re.inc"
-yy831:
+#line 5809 "strict_cpp_re.inc"
+yy844:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109;
     yyaccept = 84;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy835:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy848:
 #line 71 "strict_cpp.re"
     { BOOST_WAVE_RET(T_EXPLICIT); }
-#line 5727 "strict_cpp_re.inc"
-yy836:
+#line 5830 "strict_cpp_re.inc"
+yy849:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 85;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy838:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy851:
 #line 70 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ENUM); }
-#line 5742 "strict_cpp_re.inc"
-yy839:
+#line 5845 "strict_cpp_re.inc"
+yy852:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'e') goto yy195;
+ if (yych != 'e') goto yy109;
     yyaccept = 86;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy194;
+ if (yybm[256+yych] & 32) {
+ goto yy108;
     }
- if (yych == '?') goto yy197;
- if (yych == '\\') goto yy196;
-yy841:
+ if (yych == '?') goto yy111;
+ if (yych == '\\') goto yy110;
+yy854:
 #line 69 "strict_cpp.re"
     { BOOST_WAVE_RET(T_ELSE); }
-#line 5757 "strict_cpp_re.inc"
-yy842:
+#line 5860 "strict_cpp_re.inc"
+yy855:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= 'e') {
- if (yych == 'c') goto yy862;
- goto yy195;
+ if (yych == 'c') goto yy875;
+ goto yy109;
     } else {
- if (yych <= 'f') goto yy863;
- if (yych == 'l') goto yy864;
- goto yy195;
+ if (yych <= 'f') goto yy876;
+ if (yych == 'l') goto yy877;
+ goto yy109;
     }
-yy843:
+yy856:
     yyaccept = 87;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '[') {
         if (yych <= '>') {
- if (yych <= '/') goto yy844;
- if (yych <= '9') goto yy194;
+ if (yych <= '/') goto yy857;
+ if (yych <= '9') goto yy108;
         } else {
- if (yych <= '?') goto yy197;
- if (yych <= '@') goto yy844;
- if (yych <= 'Z') goto yy194;
+ if (yych <= '?') goto yy111;
+ if (yych <= '@') goto yy857;
+ if (yych <= 'Z') goto yy108;
         }
     } else {
         if (yych <= '`') {
- if (yych <= '\\') goto yy196;
- if (yych == '_') goto yy194;
+ if (yych <= '\\') goto yy110;
+ if (yych == '_') goto yy108;
         } else {
- if (yych == 'u') goto yy857;
- if (yych <= 'z') goto yy194;
+ if (yych == 'u') goto yy870;
+ if (yych <= 'z') goto yy108;
         }
     }
-yy844:
+yy857:
 #line 66 "strict_cpp.re"
     { BOOST_WAVE_RET(T_DO); }
-#line 5793 "strict_cpp_re.inc"
-yy845:
+#line 5896 "strict_cpp_re.inc"
+yy858:
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'n') goto yy195;
+ if (yych != 'n') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'm') goto yy195;
+ if (yych != 'm') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'i') goto yy195;
+ if (yych != 'i') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '_') goto yy195;
+ if (yych != '_') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'c') goto yy195;
+ if (yych != 'c') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 'a') goto yy195;
+ if (yych != 'a') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 's') goto yy195;
+ if (yych != 's') goto yy109;
     yyaccept = 1;
     yych = *(YYMARKER = ++YYCURSOR);
- if (yych != 't') goto yy195;
+ if (yych != 't') goto yy109; <