Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r85641 - in branches/release: . boost boost/fusion boost/fusion/adapted/struct/detail boost/fusion/container/deque boost/wave boost/wave/cpplexer/re2clex boost/wave/util libs libs/fusion libs/fusion/doc libs/fusion/preprocess libs/wave libs/wave/doc libs/wave/samples/cpp_tokens/slex libs/wave/samples/list_includes/lexertl libs/wave/samples/token_statistics/xlex libs/wave/samples/waveidl/idllexer libs/wave/src/cpplexer/re2clex libs/wave/test/testwave libs/wave/test/testwave/testfiles
From: hartmut.kaiser_at_[hidden]
Date: 2013-09-10 08:47:28


Author: hkaiser
Date: 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013)
New Revision: 85641
URL: http://svn.boost.org/trac/boost/changeset/85641

Log:
Wave: Merging from trunk

Added:
   branches/release/libs/wave/test/testwave/testfiles/t_9_024.cpp
      - copied unchanged from r85077, trunk/libs/wave/test/testwave/testfiles/t_9_024.cpp
Deleted:
   branches/release/libs/fusion/preprocess/preprocess.bat
   branches/release/libs/fusion/preprocess/preprocess.cpp
   branches/release/libs/fusion/preprocess/wave.cfg
Properties modified:
   branches/release/ (props changed)
   branches/release/boost/ (props changed)
   branches/release/boost/fusion/ (props changed)
   branches/release/boost/wave/ (props changed)
   branches/release/libs/ (props changed)
   branches/release/libs/fusion/ (props changed)
   branches/release/libs/wave/ (props changed)
Text files modified:
   branches/release/boost/fusion/adapted/struct/detail/define_struct_inline.hpp | 133 ++
   branches/release/boost/fusion/container/deque/deque.hpp | 2
   branches/release/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp | 2
   branches/release/boost/wave/util/flex_string.hpp | 2
   branches/release/libs/fusion/doc/tuple.qbk | 4
   /dev/null | 7
   /dev/null | 10
   /dev/null | 14
   branches/release/libs/wave/ChangeLog | 6
   branches/release/libs/wave/doc/class_reference_inptpolcy.html | 4
   branches/release/libs/wave/doc/wave_driver.html | 6
   branches/release/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp | 2
   branches/release/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp | 2
   branches/release/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp | 2
   branches/release/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp | 2
   branches/release/libs/wave/src/cpplexer/re2clex/cpp.re | 47
   branches/release/libs/wave/src/cpplexer/re2clex/cpp_re.inc | 2068 ++++++++++++++++++++-------------------
   branches/release/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc | 2
   branches/release/libs/wave/test/testwave/testfiles/t_9_024.cpp | 34
   branches/release/libs/wave/test/testwave/testfiles/test.cfg | 3
   branches/release/libs/wave/test/testwave/testwave_app.cpp | 33
   branches/release/libs/wave/test/testwave/testwave_app.hpp | 8
   22 files changed, 1280 insertions(+), 1113 deletions(-)

Modified: branches/release/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
==============================================================================
--- branches/release/boost/fusion/adapted/struct/detail/define_struct_inline.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/boost/fusion/adapted/struct/detail/define_struct_inline.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -8,6 +8,7 @@
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEFINE_STRUCT_INLINE_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEFINE_STRUCT_INLINE_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/category_of.hpp>
 #include <boost/fusion/sequence/sequence_facade.hpp>
 #include <boost/fusion/iterator/iterator_facade.hpp>
@@ -25,8 +26,32 @@
 #include <boost/preprocessor/seq/for_each_i.hpp>
 #include <boost/preprocessor/seq/size.hpp>
 #include <boost/preprocessor/seq/enum.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
 #include <boost/preprocessor/tuple/elem.hpp>
 
+// MSVC and GCC <= 4.4 have a bug that affects partial specializations of
+// nested templates under some circumstances. This affects the implementation
+// of BOOST_FUSION_DEFINE_STRUCT_INLINE, which uses such specializations for
+// the iterator class's 'deref' and 'value_of' metafunctions. On these compilers
+// an alternate implementation for these metafunctions is used that does not
+// require such specializations. The alternate implementation takes longer
+// to compile so its use is restricted to the offending compilers.
+// For MSVC, the bug was reported at https://connect.microsoft.com/VisualStudio/feedback/details/757891/c-compiler-error-involving-partial-specializations-of-nested-templates
+// For GCC, 4.4 and earlier are no longer maintained so there is no need
+// to report a bug.
+#if defined(BOOST_MSVC) || (defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 4)))
+ #define BOOST_FUSION_NEED_NESTED_TEMPLATE_PARTIAL_SPEC_WKND
+#endif
+
+#ifdef BOOST_FUSION_NEED_NESTED_TEMPLATE_PARTIAL_SPEC_WKND
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/fusion/sequence/intrinsic/at_c.hpp>
+#include <boost/fusion/container/vector.hpp>
+#endif
+
+
 #define BOOST_FUSION_MAKE_DEFAULT_INIT_LIST_ENTRY(R, DATA, N, ATTRIBUTE) \
     BOOST_PP_COMMA_IF(N) BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE)()
 
@@ -148,6 +173,95 @@
 #define BOOST_FUSION_MAKE_DATA_MEMBER(R, DATA, N, ATTRIBUTE) \
     BOOST_PP_TUPLE_ELEM(2, 0, ATTRIBUTE) BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE);
 
+#ifdef BOOST_FUSION_NEED_NESTED_TEMPLATE_PARTIAL_SPEC_WKND
+
+#define BOOST_FUSION_DEFINE_ITERATOR_VALUE_OF(NAME, ATTRIBUTE_SEQ_SIZE) \
+ template <typename boost_fusion_detail_Iterator> \
+ struct value_of : boost::fusion::result_of::at_c< \
+ ref_vec_t, \
+ boost_fusion_detail_Iterator::index::value \
+ > \
+ { \
+ };
+
+#define BOOST_FUSION_DEFINE_ITERATOR_DEREF(NAME, ATTRIBUTES_SEQ) \
+ template <typename boost_fusion_detail_Iterator> \
+ struct deref \
+ { \
+ typedef typename boost::remove_const< \
+ boost_fusion_detail_Iterator \
+ >::type iterator_raw_type; \
+ \
+ static const int index = iterator_raw_type::index::value; \
+ \
+ typedef typename boost::fusion::result_of::at_c< \
+ ref_vec_t, \
+ index \
+ >::type result_raw_type; \
+ \
+ typedef typename boost::mpl::if_< \
+ boost::is_const<typename iterator_raw_type::sequence_type>, \
+ typename boost::add_const<result_raw_type>::type, \
+ result_raw_type \
+ >::type type; \
+ \
+ static type call(iterator_raw_type const& iter) \
+ { \
+ return boost::fusion::at_c<index>(iter.ref_vec); \
+ } \
+ };
+
+#define BOOST_FUSION_MAKE_ITERATOR_WKND_FIELD_NAME(R, DATA, N, ATTRIBUTE) \
+ BOOST_PP_COMMA_IF(N) seq.BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE)
+
+#define BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES(ATTRIBUTES_SEQ) \
+ , ref_vec(BOOST_PP_SEQ_FOR_EACH_I( \
+ BOOST_FUSION_MAKE_ITERATOR_WKND_FIELD_NAME, \
+ ~, \
+ BOOST_PP_SEQ_TAIL(ATTRIBUTES_SEQ)))
+
+#define BOOST_FUSION_MAKE_ITERATOR_WKND_REF(Z, N, DATA) \
+ BOOST_PP_COMMA_IF(N) \
+ typename boost::mpl::if_< \
+ boost::is_const<boost_fusion_detail_Seq>, \
+ typename boost::add_const< \
+ typename boost_fusion_detail_Seq::t##N##_type \
+ >::type, \
+ typename boost_fusion_detail_Seq::t##N##_type \
+ >::type&
+
+#define BOOST_FUSION_DEFINE_ITERATOR_WKND_MEMBERS(ATTRIBUTES_SEQ_SIZE) \
+ typedef boost::fusion::vector< \
+ BOOST_PP_REPEAT( \
+ ATTRIBUTES_SEQ_SIZE, \
+ BOOST_FUSION_MAKE_ITERATOR_WKND_REF, \
+ ~) \
+ > ref_vec_t; \
+ \
+ ref_vec_t ref_vec;
+
+#else
+
+#define BOOST_FUSION_DEFINE_ITERATOR_VALUE_OF(NAME, ATTRIBUTES_SEQ_SIZE) \
+ template <typename boost_fusion_detail_T> struct value_of; \
+ BOOST_PP_REPEAT( \
+ ATTRIBUTES_SEQ_SIZE, \
+ BOOST_FUSION_MAKE_ITERATOR_VALUE_OF_SPECS, \
+ NAME)
+
+#define BOOST_FUSION_DEFINE_ITERATOR_DEREF(NAME, ATTRIBUTES_SEQ) \
+ template <typename boost_fusion_detail_T> struct deref; \
+ BOOST_PP_SEQ_FOR_EACH_I( \
+ BOOST_FUSION_MAKE_ITERATOR_DEREF_SPECS, \
+ NAME, \
+ ATTRIBUTES_SEQ)
+
+#define BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES(ATTRIBUTES_SEQ)
+
+#define BOOST_FUSION_DEFINE_ITERATOR_WKND_MEMBERS(ATTRIBUTES_SEQ_SIZE)
+
+#endif // BOOST_FUSION_NEED_NESTED_TEMPLATE_PARTIAL_SPEC_WKND
+
 // Note: We can't nest the iterator inside the struct because we run into
 // a MSVC10 bug involving partial specializations of nested templates.
 
@@ -219,21 +333,18 @@
         typedef boost_fusion_detail_Seq sequence_type; \
                                                                                 \
         BOOST_FUSION_ITERATOR_NAME(NAME)(boost_fusion_detail_Seq& seq) \
- : seq_(seq) {} \
+ : seq_(seq) \
+ BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES( \
+ (0)ATTRIBUTES_SEQ) \
+ {} \
                                                                                 \
         boost_fusion_detail_Seq& seq_; \
                                                                                 \
- template <typename boost_fusion_detail_T> struct value_of; \
- BOOST_PP_REPEAT( \
- ATTRIBUTES_SEQ_SIZE, \
- BOOST_FUSION_MAKE_ITERATOR_VALUE_OF_SPECS, \
- NAME) \
+ BOOST_FUSION_DEFINE_ITERATOR_WKND_MEMBERS(ATTRIBUTES_SEQ_SIZE) \
                                                                                 \
- template <typename boost_fusion_detail_T> struct deref; \
- BOOST_PP_SEQ_FOR_EACH_I( \
- BOOST_FUSION_MAKE_ITERATOR_DEREF_SPECS, \
- NAME, \
- ATTRIBUTES_SEQ) \
+ BOOST_FUSION_DEFINE_ITERATOR_VALUE_OF(NAME, ATTRIBUTES_SEQ_SIZE) \
+ \
+ BOOST_FUSION_DEFINE_ITERATOR_DEREF(NAME, ATTRIBUTES_SEQ) \
                                                                                 \
         template <typename boost_fusion_detail_It> \
         struct next \

Modified: branches/release/boost/fusion/container/deque/deque.hpp
==============================================================================
--- branches/release/boost/fusion/container/deque/deque.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/boost/fusion/container/deque/deque.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -11,7 +11,7 @@
 #include <boost/config.hpp>
 
 ///////////////////////////////////////////////////////////////////////////////
-// With variadics, we will use the PP version version
+// With variadics, we will use the PP version
 ///////////////////////////////////////////////////////////////////////////////
 #if defined(BOOST_NO_VARIADIC_TEMPLATES)
 # include <boost/fusion/container/deque/detail/pp_deque.hpp>

Modified: branches/release/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
==============================================================================
--- branches/release/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -394,7 +394,7 @@
 //
 // This function is declared inside the cpp_lex_token.hpp file, which is
 // referenced by the source file calling the lexer and the source file, which
-// instantiates the lex_functor. But is is defined here, so it will be
+// instantiates the lex_functor. But it is defined here, so it will be
 // instantiated only while compiling the source file, which instantiates the
 // lex_functor. While the cpp_re2c_token.hpp file may be included everywhere,
 // this file (cpp_re2c_lexer.hpp) should be included only once. This allows

Modified: branches/release/boost/wave/util/flex_string.hpp
==============================================================================
--- branches/release/boost/wave/util/flex_string.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/boost/wave/util/flex_string.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -344,7 +344,7 @@
             // 11-17-2000: comment added:
             // No need to allocate (capacity + 1) to
             // accommodate the terminating 0, because Data already
- // has one one character in there
+ // has one character in there
             pData_ = static_cast<Data*>(
                 malloc(sizeof(Data) + capacity * sizeof(E)));
             if (!pData_) boost::throw_exception(std::bad_alloc());

Modified: branches/release/libs/fusion/doc/tuple.qbk
==============================================================================
--- branches/release/libs/fusion/doc/tuple.qbk Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/fusion/doc/tuple.qbk 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -91,7 +91,7 @@
     template<typename T1, typename T2, ..., typename TN>
     tuple<T1&, T2&, ..., TN&> tie(T1& t1, T2& t2, ..., TN& tn);
 
-[*Returns]: tuple<T1&, T2&, ..., TN&>(t1, t2, ..., tN). When argument `ti` is `ignore`, assigning any value to the corresponding tuple element has has no effect.
+[*Returns]: tuple<T1&, T2&, ..., TN&>(t1, t2, ..., tN). When argument `ti` is `ignore`, assigning any value to the corresponding tuple element has no effect.
 
 [endsect]
 
@@ -254,7 +254,7 @@
 
 [*Type]: `T2`
 
-[*Value]: Returns thetype of the second element of the pair
+[*Value]: Returns the type of the second element of the pair
 
     template<int I, typename T1, typename T2>
     P& get(std::pair<T1, T2>& pr);

Deleted: branches/release/libs/fusion/preprocess/preprocess.bat
==============================================================================
--- branches/release/libs/fusion/preprocess/preprocess.bat 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85640)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,7 +0,0 @@
-
-
-wave @wave.cfg -DFUSION_MAX_VECTOR_SIZE=10 -DFUSION_MAX_LIST_SIZE=10 -DFUSION_MAX_ZIP_SEQUENCES=10 preprocess.cpp
-wave @wave.cfg -DFUSION_MAX_VECTOR_SIZE=20 -DFUSION_MAX_LIST_SIZE=20 -DFUSION_MAX_ZIP_SEQUENCES=20 preprocess.cpp
-wave @wave.cfg -DFUSION_MAX_VECTOR_SIZE=30 -DFUSION_MAX_LIST_SIZE=30 -DFUSION_MAX_ZIP_SEQUENCES=30 preprocess.cpp
-wave @wave.cfg -DFUSION_MAX_VECTOR_SIZE=40 -DFUSION_MAX_LIST_SIZE=40 -DFUSION_MAX_ZIP_SEQUENCES=40 preprocess.cpp
-wave @wave.cfg -DFUSION_MAX_VECTOR_SIZE=50 -DFUSION_MAX_LIST_SIZE=50 -DFUSION_MAX_ZIP_SEQUENCES=50 preprocess.cpp

Deleted: branches/release/libs/fusion/preprocess/preprocess.cpp
==============================================================================
--- branches/release/libs/fusion/preprocess/preprocess.cpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85640)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,10 +0,0 @@
-/*=============================================================================
- Copyright (c) 2011 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#include <boost/fusion/container.hpp>
-#include <boost/fusion/algorithm.hpp>
-#include <boost/fusion/tuple.hpp>
-

Deleted: branches/release/libs/fusion/preprocess/wave.cfg
==============================================================================
--- branches/release/libs/fusion/preprocess/wave.cfg 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85640)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,14 +0,0 @@
--DBOOST_FUSION_DONT_USE_PREPROCESSED_FILES
--DBOOST_FUSION_CREATE_PREPROCESSED_FILES
--SC:/dev/boost
--SC:/dev/tools/mingw/include
--SC:/dev/tools/mingw/lib/gcc/mingw32/4.5.2/include
--SC:/dev/tools/mingw/lib/gcc/mingw32/4.5.2/include/c++
--SC:/dev/tools/mingw/lib/gcc/mingw32/4.5.2/include/c++/mingw32
---variadics
--NBOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL
--NBOOST_PROTO_USE_GET_POINTER
--NBOOST_PROTO_GET_POINTER
---timer
-
-

Modified: branches/release/libs/wave/ChangeLog
==============================================================================
--- branches/release/libs/wave/ChangeLog Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/ChangeLog 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -1,7 +1,7 @@
 Boost.Wave: A Standard compliant C++ preprocessor library
 http://www.boost.org/
 
-Copyright (c) 2001-2011 Hartmut Kaiser. Distributed under the Boost
+Copyright (c) 2001-2013 Hartmut Kaiser. Distributed under the Boost
 Software License, Version 1.0. (See accompanying file
 LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 -------------------------------------------------------------------------------
@@ -20,6 +20,10 @@
 
 CHANGELOG
 
+Boost V1.55:
+ - Fixed #8848: Wave driver improperly processes 0xFFFFui64 token
+ - Fixed #9098: Wave driver option --c++0x invalid
+
 Boost V1.54:
  - Fixed #8478: Make Boost.wave compatible with Clang's -Wimplicit-fallthrough
    diagnostic.

Modified: branches/release/libs/wave/doc/class_reference_inptpolcy.html
==============================================================================
--- branches/release/libs/wave/doc/class_reference_inptpolcy.html Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/doc/class_reference_inptpolcy.html 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -71,8 +71,8 @@
                 }
                 
                 iter_ctx.instring = <span class="keyword">std::string</span>(
- <span class="keyword">std::istreambuf_iterator</span><char>(instream.rdbuf()),
- <span class="keyword">std::istreambuf_iterator</span><char>());
+ <span class="keyword">std::istreambuf_iterator</span><char>&lt;char&gt;(instream.rdbuf()),
+ <span class="keyword">std::istreambuf_iterator</span><char>&lt;char&gt;());
 
                 iter_ctx.first = iterator_type(iter_ctx.instring.begin(),
                     iter_ctx.instring.end(),

Modified: branches/release/libs/wave/doc/wave_driver.html
==============================================================================
--- branches/release/libs/wave/doc/wave_driver.html Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/doc/wave_driver.html 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -56,7 +56,7 @@
     --long_long: enable long long support if C++ mode
     --variadics: enable variadics and placemarkers in C++ mode
     --c99: enable C99 mode (implies variadics and placemarkers)
- --c++0x enable C++0x mode (implies --variadics and --long_long)
+ --c++11 enable C++11 mode (implies --variadics and --long_long)
     -l [ --listincludes ] arg: list included file to a file [arg] or to stdout [-]
     -m [ --macronames ] arg: list names of all defined macros to a file [arg] or
                                  to stdout [-]
@@ -192,9 +192,9 @@
     about predefined macros you may look here.
   </p>
 </blockquote>
-<p dir="ltr">--c++0x</p>
+<p dir="ltr">--c++11</p>
 <blockquote>
- <p dir="ltr">Enable the C++0x mode. This mode enables C++0x specific keywords and features, such
+ <p dir="ltr">Enable the C++11 mode. This mode enables C++11 specific keywords and features, such
     as variadics (macros with variable parameter lists), placemarkers (empty macro
     arguments) and <tt>operator&nbsp;_Pragma</tt> support.
     Several predefined macros are different for this mode, for more information

Modified: branches/release/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp
==============================================================================
--- branches/release/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -780,7 +780,7 @@
 //
 // This function is declared inside the cpp_slex_token.hpp file, which is
 // referenced by the source file calling the lexer and the source file, which
-// instantiates the lex_functor. But is is defined here, so it will be
+// instantiates the lex_functor. But it is defined here, so it will be
 // instantiated only while compiling the source file, which instantiates the
 // lex_functor. While the cpp_slex_token.hpp file may be included everywhere,
 // this file (cpp_slex_lexer.hpp) should be included only once. This allows

Modified: branches/release/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp
==============================================================================
--- branches/release/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -782,7 +782,7 @@
 //
 // This function is declared inside the xlex_interface.hpp file, which is
 // referenced by the source file calling the lexer and the source file, which
-// instantiates the lex_functor. But is is defined here, so it will be
+// instantiates the lex_functor. But it is defined here, so it will be
 // instantiated only while compiling the source file, which instantiates the
 // lex_functor. While the xlex_interface.hpp file may be included everywhere,
 // this file (xlex_lexer.hpp) should be included only once. This allows

Modified: branches/release/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp
==============================================================================
--- branches/release/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -557,7 +557,7 @@
 //
 // This function is declared inside the xlex_interface.hpp file, which is
 // referenced by the source file calling the lexer and the source file, which
-// instantiates the lex_functor. But is is defined here, so it will be
+// instantiates the lex_functor. But it is defined here, so it will be
 // instantiated only while compiling the source file, which instantiates the
 // lex_functor. While the xlex_interface.hpp file may be included everywhere,
 // this file (xlex_lexer.hpp) should be included only once. This allows

Modified: branches/release/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp
==============================================================================
--- branches/release/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -246,7 +246,7 @@
 //
 // This function is declared inside the cpp_slex_token.hpp file, which is
 // referenced by the source file calling the lexer and the source file, which
-// instantiates the lex_functor. But is is defined here, so it will be
+// instantiates the lex_functor. But it is defined here, so it will be
 // instantiated only while compiling the source file, which instantiates the
 // lex_functor. While the cpp_re2c_token.hpp file may be included everywhere,
 // this file (cpp_re2c_lexer.hpp) should be included only once. This allows

Modified: branches/release/libs/wave/src/cpplexer/re2clex/cpp.re
==============================================================================
--- branches/release/libs/wave/src/cpplexer/re2clex/cpp.re Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/src/cpplexer/re2clex/cpp.re 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2011 Hartmut Kaiser.
+ Copyright (c) 2001-2013 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -16,27 +16,28 @@
 =============================================================================*/
 
 /*!re2c
-re2c:indent:string = " ";
-any = [\t\v\f\r\n\040-\377];
-anyctrl = [\001-\037];
-OctalDigit = [0-7];
-Digit = [0-9];
-HexDigit = [a-fA-F0-9];
-Integer = (("0" [xX] HexDigit+) | ("0" OctalDigit*) | ([1-9] Digit*));
-ExponentStart = [Ee] [+-];
-ExponentPart = [Ee] [+-]? Digit+;
-FractionalConstant = (Digit* "." Digit+) | (Digit+ ".");
-FloatingSuffix = [fF] [lL]? | [lL] [fF]?;
-IntegerSuffix = [uU] [lL]? | [lL] [uU]?;
-LongIntegerSuffix = [uU] ([lL] [lL]) | ([lL] [lL]) [uU]?;
-Backslash = [\\] | "??/";
-EscapeSequence = Backslash ([abfnrtv?'"] | Backslash | "x" HexDigit+ | OctalDigit OctalDigit? OctalDigit?);
-HexQuad = HexDigit HexDigit HexDigit HexDigit;
-UniversalChar = Backslash ("u" HexQuad | "U" HexQuad HexQuad);
-Newline = "\r\n" | "\n" | "\r";
-PPSpace = ([ \t\f\v]|("/*"(any\[*]|Newline|("*"+(any\[*/]|Newline)))*"*"+"/"))*;
-Pound = "#" | "??=" | "%:";
-NonDigit = [a-zA-Z_$] | UniversalChar;
+re2c:indent:string = " ";
+any = [\t\v\f\r\n\040-\377];
+anyctrl = [\001-\037];
+OctalDigit = [0-7];
+Digit = [0-9];
+HexDigit = [a-fA-F0-9];
+Integer = (("0" [xX] HexDigit+) | ("0" OctalDigit*) | ([1-9] Digit*));
+ExponentStart = [Ee] [+-];
+ExponentPart = [Ee] [+-]? Digit+;
+FractionalConstant = (Digit* "." Digit+) | (Digit+ ".");
+FloatingSuffix = [fF] [lL]? | [lL] [fF]?;
+IntegerSuffix = [uU] [lL]? | [lL] [uU]?;
+LongIntegerSuffix = [uU] ([lL] [lL]) | ([lL] [lL]) [uU]?;
+MSLongIntegerSuffix = "u"? "i64";
+Backslash = [\\] | "??/";
+EscapeSequence = Backslash ([abfnrtv?'"] | Backslash | "x" HexDigit+ | OctalDigit OctalDigit? OctalDigit?);
+HexQuad = HexDigit HexDigit HexDigit HexDigit;
+UniversalChar = Backslash ("u" HexQuad | "U" HexQuad HexQuad);
+Newline = "\r\n" | "\n" | "\r";
+PPSpace = ([ \t\f\v]|("/*"(any\[*]|Newline|("*"+(any\[*/]|Newline)))*"*"+"/"))*;
+Pound = "#" | "??=" | "%:";
+NonDigit = [a-zA-Z_$] | UniversalChar;
 */
 
 /*!re2c
@@ -458,7 +459,7 @@
 {
     if (s->enable_ms_extensions) {
     /*!re2c
- LongIntegerSuffix | "i64"
+ LongIntegerSuffix | MSLongIntegerSuffix
             { BOOST_WAVE_RET(T_LONGINTLIT); }
 
         IntegerSuffix?

Modified: branches/release/libs/wave/src/cpplexer/re2clex/cpp_re.inc
==============================================================================
--- branches/release/libs/wave/src/cpplexer/re2clex/cpp_re.inc Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/src/cpplexer/re2clex/cpp_re.inc 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -1,10 +1,10 @@
-/* Generated by re2c 0.13.5 on Sun Jan 09 15:38:23 2011 */
+/* Generated by re2c 0.13.5 on Thu Jul 18 20:13:38 2013 */
 #line 1 "cpp.re"
 /*=============================================================================
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2011 Hartmut Kaiser.
+ Copyright (c) 2001-2013 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -17,7 +17,7 @@
         handle errors better.
 =============================================================================*/
 
-#line 40 "cpp.re"
+#line 41 "cpp.re"
 
 
 
@@ -232,7 +232,7 @@
         if (yych <= '/') goto yy996;
         if (yych == '=') goto yy994;
     }
-#line 188 "cpp.re"
+#line 189 "cpp.re"
     { BOOST_WAVE_RET(T_DIVIDE); }
 #line 238 "cpp_re.inc"
 yy4:
@@ -246,13 +246,13 @@
         if (yych <= '9') goto yy991;
     }
 yy5:
-#line 174 "cpp.re"
+#line 175 "cpp.re"
     { BOOST_WAVE_RET(T_DOT); }
 #line 252 "cpp_re.inc"
 yy6:
     ++YYCURSOR;
 yy7:
-#line 45 "cpp.re"
+#line 46 "cpp.re"
     { goto pp_number; }
 #line 258 "cpp_re.inc"
 yy8:
@@ -266,7 +266,7 @@
     default: goto yy109;
     }
 yy9:
-#line 290 "cpp.re"
+#line 291 "cpp.re"
     { BOOST_WAVE_RET(T_IDENTIFIER); }
 #line 272 "cpp_re.inc"
 yy10:
@@ -460,7 +460,7 @@
     }
 yy29:
     ++YYCURSOR;
-#line 138 "cpp.re"
+#line 139 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE); }
 #line 466 "cpp_re.inc"
 yy31:
@@ -468,7 +468,7 @@
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych == '?') goto yy419;
 yy32:
-#line 163 "cpp.re"
+#line 164 "cpp.re"
     { BOOST_WAVE_RET(T_QUESTION_MARK); }
 #line 474 "cpp_re.inc"
 yy33:
@@ -482,12 +482,12 @@
         if (yych <= '=') goto yy409;
     }
 yy34:
-#line 204 "cpp.re"
+#line 205 "cpp.re"
     { BOOST_WAVE_RET(T_LESS); }
 #line 488 "cpp_re.inc"
 yy35:
     ++YYCURSOR;
-#line 141 "cpp.re"
+#line 142 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE); }
 #line 493 "cpp_re.inc"
 yy37:
@@ -498,24 +498,24 @@
         if (yych <= '=') goto yy402;
         if (yych <= '>') goto yy404;
     }
-#line 189 "cpp.re"
+#line 190 "cpp.re"
     { BOOST_WAVE_RET(T_PERCENT); }
 #line 504 "cpp_re.inc"
 yy39:
     ++YYCURSOR;
-#line 144 "cpp.re"
+#line 145 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET); }
 #line 509 "cpp_re.inc"
 yy41:
     ++YYCURSOR;
-#line 147 "cpp.re"
+#line 148 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET); }
 #line 514 "cpp_re.inc"
 yy43:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == ':') goto yy396;
     if (yych == '>') goto yy398;
-#line 161 "cpp.re"
+#line 162 "cpp.re"
     { BOOST_WAVE_RET(T_COLON); }
 #line 521 "cpp_re.inc"
 yy45:
@@ -556,29 +556,29 @@
         }
     }
 yy46:
-#line 150 "cpp.re"
+#line 151 "cpp.re"
     { BOOST_WAVE_RET(T_POUND); }
 #line 562 "cpp_re.inc"
 yy47:
     ++YYCURSOR;
-#line 158 "cpp.re"
+#line 159 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTPAREN); }
 #line 567 "cpp_re.inc"
 yy49:
     ++YYCURSOR;
-#line 159 "cpp.re"
+#line 160 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTPAREN); }
 #line 572 "cpp_re.inc"
 yy51:
     ++YYCURSOR;
-#line 160 "cpp.re"
+#line 161 "cpp.re"
     { BOOST_WAVE_RET(T_SEMICOLON); }
 #line 577 "cpp_re.inc"
 yy53:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '+') goto yy268;
     if (yych == '=') goto yy270;
-#line 185 "cpp.re"
+#line 186 "cpp.re"
     { BOOST_WAVE_RET(T_PLUS); }
 #line 584 "cpp_re.inc"
 yy55:
@@ -589,19 +589,19 @@
         if (yych <= '=') goto yy264;
         if (yych <= '>') goto yy260;
     }
-#line 186 "cpp.re"
+#line 187 "cpp.re"
     { BOOST_WAVE_RET(T_MINUS); }
 #line 595 "cpp_re.inc"
 yy57:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy258;
-#line 187 "cpp.re"
+#line 188 "cpp.re"
     { BOOST_WAVE_RET(T_STAR); }
 #line 601 "cpp_re.inc"
 yy59:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy256;
-#line 190 "cpp.re"
+#line 191 "cpp.re"
     { BOOST_WAVE_RET(T_XOR); }
 #line 607 "cpp_re.inc"
 yy61:
@@ -613,7 +613,7 @@
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '&') goto yy245;
     if (yych == '=') goto yy247;
-#line 193 "cpp.re"
+#line 194 "cpp.re"
     { BOOST_WAVE_RET(T_AND); }
 #line 619 "cpp_re.inc"
 yy64:
@@ -626,24 +626,24 @@
         if (yych == '|') goto yy238;
     }
 yy65:
-#line 195 "cpp.re"
+#line 196 "cpp.re"
     { BOOST_WAVE_RET(T_OR); }
 #line 632 "cpp_re.inc"
 yy66:
     ++YYCURSOR;
-#line 198 "cpp.re"
+#line 199 "cpp.re"
     { BOOST_WAVE_RET(T_COMPL); }
 #line 637 "cpp_re.inc"
 yy68:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy235;
-#line 201 "cpp.re"
+#line 202 "cpp.re"
     { BOOST_WAVE_RET(T_NOT); }
 #line 643 "cpp_re.inc"
 yy70:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy233;
-#line 203 "cpp.re"
+#line 204 "cpp.re"
     { BOOST_WAVE_RET(T_ASSIGN); }
 #line 649 "cpp_re.inc"
 yy72:
@@ -652,12 +652,12 @@
     if (yych <= '=') goto yy227;
     if (yych <= '>') goto yy229;
 yy73:
-#line 205 "cpp.re"
+#line 206 "cpp.re"
     { BOOST_WAVE_RET(T_GREATER); }
 #line 658 "cpp_re.inc"
 yy74:
     ++YYCURSOR;
-#line 237 "cpp.re"
+#line 238 "cpp.re"
     { BOOST_WAVE_RET(T_COMMA); }
 #line 663 "cpp_re.inc"
 yy76:
@@ -715,7 +715,7 @@
         if (yych != '\'') goto yy182;
     }
 yy78:
-#line 339 "cpp.re"
+#line 340 "cpp.re"
     { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
 #line 721 "cpp_re.inc"
 yy79:
@@ -760,7 +760,7 @@
     yych = *YYCURSOR;
     goto yy97;
 yy85:
-#line 319 "cpp.re"
+#line 320 "cpp.re"
     { BOOST_WAVE_RET(T_SPACE); }
 #line 766 "cpp_re.inc"
 yy86:
@@ -769,7 +769,7 @@
 yy87:
     ++YYCURSOR;
 yy88:
-#line 322 "cpp.re"
+#line 323 "cpp.re"
     {
         s->line++;
         cursor.column = 1;
@@ -782,7 +782,7 @@
     goto yy88;
 yy90:
     ++YYCURSOR;
-#line 329 "cpp.re"
+#line 330 "cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -798,7 +798,7 @@
     goto yy78;
 yy93:
     ++YYCURSOR;
-#line 342 "cpp.re"
+#line 343 "cpp.re"
     {
         // flag the error
         BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
@@ -1580,7 +1580,7 @@
     goto yy109;
 yy129:
     ++YYCURSOR;
-#line 274 "cpp.re"
+#line 275 "cpp.re"
     {
             if (s->act_in_cpp0x_mode)
                 goto extstringlit;
@@ -1590,7 +1590,7 @@
 #line 1591 "cpp_re.inc"
 yy131:
     ++YYCURSOR;
-#line 266 "cpp.re"
+#line 267 "cpp.re"
     {
             if (s->act_in_cpp0x_mode)
                 goto extcharlit;
@@ -1600,7 +1600,7 @@
 #line 1601 "cpp_re.inc"
 yy133:
     ++YYCURSOR;
-#line 282 "cpp.re"
+#line 283 "cpp.re"
     {
             if (s->act_in_cpp0x_mode)
                 goto extrawstringlit;
@@ -1610,7 +1610,7 @@
 #line 1611 "cpp_re.inc"
 yy135:
     ++YYCURSOR;
-#line 258 "cpp.re"
+#line 259 "cpp.re"
     {
             if (s->act_in_cpp0x_mode)
                 goto extrawstringlit;
@@ -1689,7 +1689,7 @@
 yy141:
     ++YYCURSOR;
 yy142:
-#line 255 "cpp.re"
+#line 256 "cpp.re"
     { BOOST_WAVE_RET(T_STRINGLIT); }
 #line 1695 "cpp_re.inc"
 yy143:
@@ -2536,7 +2536,7 @@
 yy191:
     ++YYCURSOR;
 yy192:
-#line 252 "cpp.re"
+#line 253 "cpp.re"
     { BOOST_WAVE_RET(T_CHARLIT); }
 #line 2542 "cpp_re.inc"
 yy193:
@@ -3169,28 +3169,28 @@
     goto yy182;
 yy227:
     ++YYCURSOR;
-#line 227 "cpp.re"
+#line 228 "cpp.re"
     { BOOST_WAVE_RET(T_GREATEREQUAL); }
 #line 3175 "cpp_re.inc"
 yy229:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy231;
-#line 220 "cpp.re"
+#line 221 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHT); }
 #line 3181 "cpp_re.inc"
 yy231:
     ++YYCURSOR;
-#line 221 "cpp.re"
+#line 222 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
 #line 3186 "cpp_re.inc"
 yy233:
     ++YYCURSOR;
-#line 223 "cpp.re"
+#line 224 "cpp.re"
     { BOOST_WAVE_RET(T_EQUAL); }
 #line 3191 "cpp_re.inc"
 yy235:
     ++YYCURSOR;
-#line 224 "cpp.re"
+#line 225 "cpp.re"
     { BOOST_WAVE_RET(T_NOTEQUAL); }
 #line 3196 "cpp_re.inc"
 yy237:
@@ -3199,29 +3199,29 @@
     goto yy99;
 yy238:
     ++YYCURSOR;
-#line 230 "cpp.re"
+#line 231 "cpp.re"
     { BOOST_WAVE_RET(T_OROR); }
 #line 3205 "cpp_re.inc"
 yy240:
     ++YYCURSOR;
-#line 216 "cpp.re"
+#line 217 "cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN); }
 #line 3210 "cpp_re.inc"
 yy242:
     yych = *++YYCURSOR;
     if (yych != '!') goto yy99;
     ++YYCURSOR;
-#line 232 "cpp.re"
+#line 233 "cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
 #line 3217 "cpp_re.inc"
 yy245:
     ++YYCURSOR;
-#line 228 "cpp.re"
+#line 229 "cpp.re"
     { BOOST_WAVE_RET(T_ANDAND); }
 #line 3222 "cpp_re.inc"
 yy247:
     ++YYCURSOR;
-#line 214 "cpp.re"
+#line 215 "cpp.re"
     { BOOST_WAVE_RET(T_ANDASSIGN); }
 #line 3227 "cpp_re.inc"
 yy249:
@@ -3248,7 +3248,7 @@
         }
     }
 yy251:
-#line 192 "cpp.re"
+#line 193 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
 #line 3254 "cpp_re.inc"
 yy252:
@@ -3266,38 +3266,38 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy255:
-#line 212 "cpp.re"
+#line 213 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
 #line 3272 "cpp_re.inc"
 yy256:
     ++YYCURSOR;
-#line 211 "cpp.re"
+#line 212 "cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN); }
 #line 3277 "cpp_re.inc"
 yy258:
     ++YYCURSOR;
-#line 208 "cpp.re"
+#line 209 "cpp.re"
     { BOOST_WAVE_RET(T_STARASSIGN); }
 #line 3282 "cpp_re.inc"
 yy260:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '*') goto yy266;
-#line 248 "cpp.re"
+#line 249 "cpp.re"
     { BOOST_WAVE_RET(T_ARROW); }
 #line 3288 "cpp_re.inc"
 yy262:
     ++YYCURSOR;
-#line 236 "cpp.re"
+#line 237 "cpp.re"
     { BOOST_WAVE_RET(T_MINUSMINUS); }
 #line 3293 "cpp_re.inc"
 yy264:
     ++YYCURSOR;
-#line 207 "cpp.re"
+#line 208 "cpp.re"
     { BOOST_WAVE_RET(T_MINUSASSIGN); }
 #line 3298 "cpp_re.inc"
 yy266:
     ++YYCURSOR;
-#line 239 "cpp.re"
+#line 240 "cpp.re"
     {
             if (s->act_in_c99_mode) {
                 --YYCURSOR;
@@ -3310,12 +3310,12 @@
 #line 3311 "cpp_re.inc"
 yy268:
     ++YYCURSOR;
-#line 235 "cpp.re"
+#line 236 "cpp.re"
     { BOOST_WAVE_RET(T_PLUSPLUS); }
 #line 3316 "cpp_re.inc"
 yy270:
     ++YYCURSOR;
-#line 206 "cpp.re"
+#line 207 "cpp.re"
     { BOOST_WAVE_RET(T_PLUSASSIGN); }
 #line 3321 "cpp_re.inc"
 yy272:
@@ -3413,14 +3413,14 @@
     goto yy99;
 yy284:
     ++YYCURSOR;
-#line 153 "cpp.re"
+#line 154 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND); }
 #line 3419 "cpp_re.inc"
 yy286:
     yych = *++YYCURSOR;
     if (yych != '=') goto yy99;
     ++YYCURSOR;
-#line 154 "cpp.re"
+#line 155 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
 #line 3426 "cpp_re.inc"
 yy289:
@@ -3433,7 +3433,7 @@
     if (yych == 'd') goto yy293;
     if (yych == 'n') goto yy292;
 yy291:
-#line 301 "cpp.re"
+#line 302 "cpp.re"
     { BOOST_WAVE_RET(T_PP_IF); }
 #line 3439 "cpp_re.inc"
 yy292:
@@ -3446,7 +3446,7 @@
     yych = *++YYCURSOR;
     if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 302 "cpp.re"
+#line 303 "cpp.re"
     { BOOST_WAVE_RET(T_PP_IFDEF); }
 #line 3452 "cpp_re.inc"
 yy297:
@@ -3455,7 +3455,7 @@
     yych = *++YYCURSOR;
     if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 303 "cpp.re"
+#line 304 "cpp.re"
     { BOOST_WAVE_RET(T_PP_IFNDEF); }
 #line 3461 "cpp_re.inc"
 yy301:
@@ -3472,7 +3472,7 @@
     if (yych == '_') goto yy307;
     goto yy309;
 yy306:
-#line 299 "cpp.re"
+#line 300 "cpp.re"
     { BOOST_WAVE_RET(T_PP_INCLUDE); }
 #line 3478 "cpp_re.inc"
 yy307:
@@ -3528,7 +3528,7 @@
     }
     if (yych <= '!') goto yy99;
     ++YYCURSOR;
-#line 296 "cpp.re"
+#line 297 "cpp.re"
     { BOOST_WAVE_RET(T_PP_QHEADER); }
 #line 3534 "cpp_re.inc"
 yy317:
@@ -3541,7 +3541,7 @@
     }
     if (yych <= '=') goto yy99;
     ++YYCURSOR;
-#line 293 "cpp.re"
+#line 294 "cpp.re"
     { BOOST_WAVE_RET(T_PP_HHEADER); }
 #line 3547 "cpp_re.inc"
 yy321:
@@ -3605,7 +3605,7 @@
     yych = *++YYCURSOR;
     if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 307 "cpp.re"
+#line 308 "cpp.re"
     { BOOST_WAVE_RET(T_PP_DEFINE); }
 #line 3611 "cpp_re.inc"
 yy337:
@@ -3616,7 +3616,7 @@
     yych = *++YYCURSOR;
     if (yych != 'f') goto yy99;
     ++YYCURSOR;
-#line 308 "cpp.re"
+#line 309 "cpp.re"
     { BOOST_WAVE_RET(T_PP_UNDEF); }
 #line 3622 "cpp_re.inc"
 yy342:
@@ -3625,7 +3625,7 @@
     yych = *++YYCURSOR;
     if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 309 "cpp.re"
+#line 310 "cpp.re"
     { BOOST_WAVE_RET(T_PP_LINE); }
 #line 3631 "cpp_re.inc"
 yy346:
@@ -3638,7 +3638,7 @@
     yych = *++YYCURSOR;
     if (yych != 'a') goto yy99;
     ++YYCURSOR;
-#line 311 "cpp.re"
+#line 312 "cpp.re"
     { BOOST_WAVE_RET(T_PP_PRAGMA); }
 #line 3644 "cpp_re.inc"
 yy352:
@@ -3653,7 +3653,7 @@
     yych = *++YYCURSOR;
     if (yych != 'g') goto yy99;
     ++YYCURSOR;
-#line 313 "cpp.re"
+#line 314 "cpp.re"
     { BOOST_WAVE_RET(T_PP_WARNING); }
 #line 3659 "cpp_re.inc"
 yy359:
@@ -3666,7 +3666,7 @@
     yych = *++YYCURSOR;
     if (yych != 'n') goto yy99;
     ++YYCURSOR;
-#line 315 "cpp.re"
+#line 316 "cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
 #line 3672 "cpp_re.inc"
 yy365:
@@ -3686,7 +3686,7 @@
     yych = *++YYCURSOR;
     if (yych != 'r') goto yy99;
     ++YYCURSOR;
-#line 310 "cpp.re"
+#line 311 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ERROR); }
 #line 3692 "cpp_re.inc"
 yy372:
@@ -3710,12 +3710,12 @@
     yych = *++YYCURSOR;
     if (yych != 'n') goto yy99;
     ++YYCURSOR;
-#line 316 "cpp.re"
+#line 317 "cpp.re"
     { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
 #line 3716 "cpp_re.inc"
 yy381:
     ++YYCURSOR;
-#line 306 "cpp.re"
+#line 307 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ENDIF); }
 #line 3721 "cpp_re.inc"
 yy383:
@@ -3726,12 +3726,12 @@
     yych = *++YYCURSOR;
     if (yych != 'e') goto yy99;
     ++YYCURSOR;
-#line 304 "cpp.re"
+#line 305 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ELSE); }
 #line 3732 "cpp_re.inc"
 yy387:
     ++YYCURSOR;
-#line 305 "cpp.re"
+#line 306 "cpp.re"
     { BOOST_WAVE_RET(T_PP_ELIF); }
 #line 3737 "cpp_re.inc"
 yy389:
@@ -3789,7 +3789,7 @@
     }
 yy396:
     ++YYCURSOR;
-#line 165 "cpp.re"
+#line 166 "cpp.re"
     {
             if (s->act_in_c99_mode) {
                 --YYCURSOR;
@@ -3802,7 +3802,7 @@
 #line 3803 "cpp_re.inc"
 yy398:
     ++YYCURSOR;
-#line 149 "cpp.re"
+#line 150 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
 #line 3808 "cpp_re.inc"
 yy400:
@@ -3842,50 +3842,50 @@
         }
     }
 yy401:
-#line 151 "cpp.re"
+#line 152 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_ALT); }
 #line 3848 "cpp_re.inc"
 yy402:
     ++YYCURSOR;
-#line 210 "cpp.re"
+#line 211 "cpp.re"
     { BOOST_WAVE_RET(T_PERCENTASSIGN); }
 #line 3853 "cpp_re.inc"
 yy404:
     ++YYCURSOR;
-#line 143 "cpp.re"
+#line 144 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
 #line 3858 "cpp_re.inc"
 yy406:
     yych = *++YYCURSOR;
     if (yych != ':') goto yy99;
     ++YYCURSOR;
-#line 157 "cpp.re"
+#line 158 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
 #line 3865 "cpp_re.inc"
 yy409:
     ++YYCURSOR;
-#line 226 "cpp.re"
+#line 227 "cpp.re"
     { BOOST_WAVE_RET(T_LESSEQUAL); }
 #line 3870 "cpp_re.inc"
 yy411:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy417;
-#line 219 "cpp.re"
+#line 220 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFT); }
 #line 3876 "cpp_re.inc"
 yy413:
     ++YYCURSOR;
-#line 146 "cpp.re"
+#line 147 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
 #line 3881 "cpp_re.inc"
 yy415:
     ++YYCURSOR;
-#line 140 "cpp.re"
+#line 141 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
 #line 3886 "cpp_re.inc"
 yy417:
     ++YYCURSOR;
-#line 222 "cpp.re"
+#line 223 "cpp.re"
     { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
 #line 3891 "cpp_re.inc"
 yy419:
@@ -3904,22 +3904,22 @@
     }
 yy420:
     ++YYCURSOR;
-#line 139 "cpp.re"
+#line 140 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
 #line 3910 "cpp_re.inc"
 yy422:
     ++YYCURSOR;
-#line 142 "cpp.re"
+#line 143 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
 #line 3915 "cpp_re.inc"
 yy424:
     ++YYCURSOR;
-#line 145 "cpp.re"
+#line 146 "cpp.re"
     { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
 #line 3920 "cpp_re.inc"
 yy426:
     ++YYCURSOR;
-#line 148 "cpp.re"
+#line 149 "cpp.re"
     { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
 #line 3925 "cpp_re.inc"
 yy428:
@@ -3960,13 +3960,13 @@
         }
     }
 yy429:
-#line 152 "cpp.re"
+#line 153 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
 #line 3966 "cpp_re.inc"
 yy430:
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '=') goto yy446;
-#line 191 "cpp.re"
+#line 192 "cpp.re"
     { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
 #line 3972 "cpp_re.inc"
 yy432:
@@ -3979,12 +3979,12 @@
         if (yych == '|') goto yy439;
     }
 yy433:
-#line 197 "cpp.re"
+#line 198 "cpp.re"
     { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
 #line 3985 "cpp_re.inc"
 yy434:
     ++YYCURSOR;
-#line 199 "cpp.re"
+#line 200 "cpp.re"
     { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
 #line 3990 "cpp_re.inc"
 yy436:
@@ -3993,7 +3993,7 @@
     if (yych == 'U') goto yy100;
     if (yych == 'u') goto yy98;
 yy437:
-#line 249 "cpp.re"
+#line 250 "cpp.re"
     { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
 #line 3999 "cpp_re.inc"
 yy438:
@@ -4002,24 +4002,24 @@
     goto yy99;
 yy439:
     ++YYCURSOR;
-#line 231 "cpp.re"
+#line 232 "cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
 #line 4008 "cpp_re.inc"
 yy441:
     ++YYCURSOR;
-#line 218 "cpp.re"
+#line 219 "cpp.re"
     { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
 #line 4013 "cpp_re.inc"
 yy443:
     yych = *++YYCURSOR;
     if (yych != '!') goto yy99;
     ++YYCURSOR;
-#line 234 "cpp.re"
+#line 235 "cpp.re"
     { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
 #line 4020 "cpp_re.inc"
 yy446:
     ++YYCURSOR;
-#line 213 "cpp.re"
+#line 214 "cpp.re"
     { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
 #line 4025 "cpp_re.inc"
 yy448:
@@ -4028,14 +4028,14 @@
     goto yy99;
 yy449:
     ++YYCURSOR;
-#line 155 "cpp.re"
+#line 156 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
 #line 4034 "cpp_re.inc"
 yy451:
     yych = *++YYCURSOR;
     if (yych != '=') goto yy99;
     ++YYCURSOR;
-#line 156 "cpp.re"
+#line 157 "cpp.re"
     { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
 #line 4041 "cpp_re.inc"
 yy454:
@@ -4111,7 +4111,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy468:
-#line 130 "cpp.re"
+#line 131 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
 #line 4117 "cpp_re.inc"
 yy469:
@@ -4136,7 +4136,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy474:
-#line 135 "cpp.re"
+#line 136 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
 #line 4142 "cpp_re.inc"
 yy475:
@@ -4166,7 +4166,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy482:
-#line 129 "cpp.re"
+#line 130 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
 #line 4172 "cpp_re.inc"
 yy483:
@@ -4196,7 +4196,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy490:
-#line 127 "cpp.re"
+#line 128 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
 #line 4202 "cpp_re.inc"
 yy491:
@@ -4217,7 +4217,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy495:
-#line 128 "cpp.re"
+#line 129 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
 #line 4223 "cpp_re.inc"
 yy496:
@@ -4238,7 +4238,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy500:
-#line 126 "cpp.re"
+#line 127 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
 #line 4244 "cpp_re.inc"
 yy501:
@@ -4253,7 +4253,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy503:
-#line 136 "cpp.re"
+#line 137 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
 #line 4259 "cpp_re.inc"
 yy504:
@@ -4298,7 +4298,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy513:
-#line 134 "cpp.re"
+#line 135 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
 #line 4304 "cpp_re.inc"
 yy514:
@@ -4322,7 +4322,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy519:
-#line 132 "cpp.re"
+#line 133 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
 #line 4328 "cpp_re.inc"
 yy520:
@@ -4337,7 +4337,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy522:
-#line 131 "cpp.re"
+#line 132 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
 #line 4343 "cpp_re.inc"
 yy523:
@@ -4364,7 +4364,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy529:
-#line 133 "cpp.re"
+#line 134 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
 #line 4370 "cpp_re.inc"
 yy530:
@@ -4405,7 +4405,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy536:
-#line 122 "cpp.re"
+#line 123 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
 #line 4411 "cpp_re.inc"
 yy537:
@@ -4417,7 +4417,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy538:
-#line 125 "cpp.re"
+#line 126 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
 #line 4423 "cpp_re.inc"
 yy539:
@@ -4429,7 +4429,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy540:
-#line 124 "cpp.re"
+#line 125 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
 #line 4435 "cpp_re.inc"
 yy541:
@@ -4441,7 +4441,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy542:
-#line 123 "cpp.re"
+#line 124 "cpp.re"
     { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
 #line 4447 "cpp_re.inc"
 yy543:
@@ -4467,7 +4467,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy548:
-#line 120 "cpp.re"
+#line 121 "cpp.re"
     { BOOST_WAVE_RET(T_WHILE); }
 #line 4473 "cpp_re.inc"
 yy549:
@@ -4491,7 +4491,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy554:
-#line 119 "cpp.re"
+#line 120 "cpp.re"
     { BOOST_WAVE_RET(T_WCHART); }
 #line 4497 "cpp_re.inc"
 yy555:
@@ -4534,7 +4534,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy564:
-#line 118 "cpp.re"
+#line 119 "cpp.re"
     { BOOST_WAVE_RET(T_VOLATILE); }
 #line 4540 "cpp_re.inc"
 yy565:
@@ -4546,7 +4546,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy566:
-#line 117 "cpp.re"
+#line 118 "cpp.re"
     { BOOST_WAVE_RET(T_VOID); }
 #line 4552 "cpp_re.inc"
 yy567:
@@ -4570,7 +4570,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy572:
-#line 116 "cpp.re"
+#line 117 "cpp.re"
     { BOOST_WAVE_RET(T_VIRTUAL); }
 #line 4576 "cpp_re.inc"
 yy573:
@@ -4603,7 +4603,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy579:
-#line 115 "cpp.re"
+#line 116 "cpp.re"
     { BOOST_WAVE_RET(T_USING); }
 #line 4609 "cpp_re.inc"
 yy580:
@@ -4635,7 +4635,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy587:
-#line 114 "cpp.re"
+#line 115 "cpp.re"
     { BOOST_WAVE_RET(T_UNSIGNED); }
 #line 4641 "cpp_re.inc"
 yy588:
@@ -4650,7 +4650,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy590:
-#line 113 "cpp.re"
+#line 114 "cpp.re"
     { BOOST_WAVE_RET(T_UNION); }
 #line 4656 "cpp_re.inc"
 yy591:
@@ -4713,7 +4713,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy603:
-#line 112 "cpp.re"
+#line 113 "cpp.re"
     { BOOST_WAVE_RET(T_TYPENAME); }
 #line 4719 "cpp_re.inc"
 yy604:
@@ -4725,7 +4725,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy605:
-#line 111 "cpp.re"
+#line 112 "cpp.re"
     { BOOST_WAVE_RET(T_TYPEID); }
 #line 4731 "cpp_re.inc"
 yy606:
@@ -4740,7 +4740,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy608:
-#line 110 "cpp.re"
+#line 111 "cpp.re"
     { BOOST_WAVE_RET(T_TYPEDEF); }
 #line 4746 "cpp_re.inc"
 yy609:
@@ -4757,7 +4757,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy611:
-#line 109 "cpp.re"
+#line 110 "cpp.re"
     { BOOST_WAVE_RET(T_TRY); }
 #line 4763 "cpp_re.inc"
 yy612:
@@ -4769,7 +4769,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy613:
-#line 108 "cpp.re"
+#line 109 "cpp.re"
     { BOOST_WAVE_RET(T_TRUE); }
 #line 4775 "cpp_re.inc"
 yy614:
@@ -4800,7 +4800,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy619:
-#line 107 "cpp.re"
+#line 108 "cpp.re"
     { BOOST_WAVE_RET(T_THROW); }
 #line 4806 "cpp_re.inc"
 yy620:
@@ -4833,7 +4833,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy628:
-#line 106 "cpp.re"
+#line 107 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); }
 #line 4839 "cpp_re.inc"
 yy629:
@@ -4845,7 +4845,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy630:
-#line 105 "cpp.re"
+#line 106 "cpp.re"
     { BOOST_WAVE_RET(T_THIS); }
 #line 4851 "cpp_re.inc"
 yy631:
@@ -4872,7 +4872,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy637:
-#line 104 "cpp.re"
+#line 105 "cpp.re"
     { BOOST_WAVE_RET(T_TEMPLATE); }
 #line 4878 "cpp_re.inc"
 yy638:
@@ -4913,7 +4913,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy646:
-#line 103 "cpp.re"
+#line 104 "cpp.re"
     { BOOST_WAVE_RET(T_SWITCH); }
 #line 4919 "cpp_re.inc"
 yy647:
@@ -4939,7 +4939,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy652:
-#line 102 "cpp.re"
+#line 103 "cpp.re"
     { BOOST_WAVE_RET(T_STRUCT); }
 #line 4945 "cpp_re.inc"
 yy653:
@@ -4969,7 +4969,7 @@
         }
     }
 yy656:
-#line 99 "cpp.re"
+#line 100 "cpp.re"
     { BOOST_WAVE_RET(T_STATIC); }
 #line 4975 "cpp_re.inc"
 yy657:
@@ -5001,7 +5001,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy663:
-#line 100 "cpp.re"
+#line 101 "cpp.re"
     { BOOST_WAVE_RET(T_STATICCAST); }
 #line 5007 "cpp_re.inc"
 yy664:
@@ -5025,7 +5025,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy669:
-#line 101 "cpp.re"
+#line 102 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); }
 #line 5031 "cpp_re.inc"
 yy670:
@@ -5051,7 +5051,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy675:
-#line 98 "cpp.re"
+#line 99 "cpp.re"
     { BOOST_WAVE_RET(T_SIZEOF); }
 #line 5057 "cpp_re.inc"
 yy676:
@@ -5069,7 +5069,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy679:
-#line 97 "cpp.re"
+#line 98 "cpp.re"
     { BOOST_WAVE_RET(T_SIGNED); }
 #line 5075 "cpp_re.inc"
 yy680:
@@ -5087,7 +5087,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy683:
-#line 96 "cpp.re"
+#line 97 "cpp.re"
     { BOOST_WAVE_RET(T_SHORT); }
 #line 5093 "cpp_re.inc"
 yy684:
@@ -5127,7 +5127,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy691:
-#line 95 "cpp.re"
+#line 96 "cpp.re"
     { BOOST_WAVE_RET(T_RETURN); }
 #line 5133 "cpp_re.inc"
 yy692:
@@ -5175,7 +5175,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy705:
-#line 94 "cpp.re"
+#line 95 "cpp.re"
     { BOOST_WAVE_RET(T_REINTERPRETCAST); }
 #line 5181 "cpp_re.inc"
 yy706:
@@ -5199,7 +5199,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy711:
-#line 93 "cpp.re"
+#line 94 "cpp.re"
     { BOOST_WAVE_RET(T_REGISTER); }
 #line 5205 "cpp_re.inc"
 yy712:
@@ -5229,7 +5229,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy718:
-#line 92 "cpp.re"
+#line 93 "cpp.re"
     { BOOST_WAVE_RET(T_PUBLIC); }
 #line 5235 "cpp_re.inc"
 yy719:
@@ -5264,7 +5264,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy727:
-#line 91 "cpp.re"
+#line 92 "cpp.re"
     { BOOST_WAVE_RET(T_PROTECTED); }
 #line 5270 "cpp_re.inc"
 yy728:
@@ -5285,7 +5285,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy732:
-#line 90 "cpp.re"
+#line 91 "cpp.re"
     { BOOST_WAVE_RET(T_PRIVATE); }
 #line 5291 "cpp_re.inc"
 yy733:
@@ -5314,7 +5314,7 @@
         }
     }
 yy735:
-#line 233 "cpp.re"
+#line 234 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
 #line 5320 "cpp_re.inc"
 yy736:
@@ -5332,7 +5332,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy739:
-#line 217 "cpp.re"
+#line 218 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
 #line 5338 "cpp_re.inc"
 yy740:
@@ -5359,7 +5359,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy746:
-#line 89 "cpp.re"
+#line 90 "cpp.re"
     { BOOST_WAVE_RET(T_OPERATOR); }
 #line 5365 "cpp_re.inc"
 yy747:
@@ -5402,7 +5402,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy756:
-#line 88 "cpp.re"
+#line 89 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); }
 #line 5408 "cpp_re.inc"
 yy757:
@@ -5431,7 +5431,7 @@
         }
     }
 yy759:
-#line 202 "cpp.re"
+#line 203 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
 #line 5437 "cpp_re.inc"
 yy760:
@@ -5449,7 +5449,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy763:
-#line 225 "cpp.re"
+#line 226 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
 #line 5455 "cpp_re.inc"
 yy764:
@@ -5473,7 +5473,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy769:
-#line 87 "cpp.re"
+#line 88 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); }
 #line 5479 "cpp_re.inc"
 yy770:
@@ -5485,7 +5485,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy771:
-#line 86 "cpp.re"
+#line 87 "cpp.re"
     { BOOST_WAVE_RET(T_NEW); }
 #line 5491 "cpp_re.inc"
 yy772:
@@ -5515,7 +5515,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy779:
-#line 85 "cpp.re"
+#line 86 "cpp.re"
     { BOOST_WAVE_RET(T_NAMESPACE); }
 #line 5521 "cpp_re.inc"
 yy780:
@@ -5542,7 +5542,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy786:
-#line 84 "cpp.re"
+#line 85 "cpp.re"
     { BOOST_WAVE_RET(T_MUTABLE); }
 #line 5548 "cpp_re.inc"
 yy787:
@@ -5560,7 +5560,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy790:
-#line 83 "cpp.re"
+#line 84 "cpp.re"
     { BOOST_WAVE_RET(T_LONG); }
 #line 5566 "cpp_re.inc"
 yy791:
@@ -5572,7 +5572,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy792:
-#line 79 "cpp.re"
+#line 80 "cpp.re"
     { BOOST_WAVE_RET(T_IF); }
 #line 5578 "cpp_re.inc"
 yy793:
@@ -5600,7 +5600,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy797:
-#line 82 "cpp.re"
+#line 83 "cpp.re"
     { BOOST_WAVE_RET(T_INT); }
 #line 5606 "cpp_re.inc"
 yy798:
@@ -5618,7 +5618,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy801:
-#line 81 "cpp.re"
+#line 82 "cpp.re"
     { BOOST_WAVE_RET(T_INLINE); }
 #line 5624 "cpp_re.inc"
 yy802:
@@ -5639,7 +5639,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy806:
-#line 80 "cpp.re"
+#line 81 "cpp.re"
     { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
 #line 5645 "cpp_re.inc"
 yy807:
@@ -5657,7 +5657,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy810:
-#line 78 "cpp.re"
+#line 79 "cpp.re"
     { BOOST_WAVE_RET(T_GOTO); }
 #line 5663 "cpp_re.inc"
 yy811:
@@ -5696,7 +5696,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy819:
-#line 77 "cpp.re"
+#line 78 "cpp.re"
     { BOOST_WAVE_RET(T_FRIEND); }
 #line 5702 "cpp_re.inc"
 yy820:
@@ -5708,7 +5708,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy821:
-#line 76 "cpp.re"
+#line 77 "cpp.re"
     { BOOST_WAVE_RET(T_FOR); }
 #line 5714 "cpp_re.inc"
 yy822:
@@ -5726,7 +5726,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy825:
-#line 75 "cpp.re"
+#line 76 "cpp.re"
     { BOOST_WAVE_RET(T_FLOAT); }
 #line 5732 "cpp_re.inc"
 yy826:
@@ -5744,7 +5744,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy829:
-#line 74 "cpp.re"
+#line 75 "cpp.re"
     { BOOST_WAVE_RET(T_FALSE); }
 #line 5750 "cpp_re.inc"
 yy830:
@@ -5787,7 +5787,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy838:
-#line 73 "cpp.re"
+#line 74 "cpp.re"
     { BOOST_WAVE_RET(T_EXTERN); }
 #line 5793 "cpp_re.inc"
 yy839:
@@ -5810,7 +5810,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy843:
-#line 72 "cpp.re"
+#line 73 "cpp.re"
     { BOOST_WAVE_RET(T_EXPORT); }
 #line 5816 "cpp_re.inc"
 yy844:
@@ -5831,7 +5831,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy848:
-#line 71 "cpp.re"
+#line 72 "cpp.re"
     { BOOST_WAVE_RET(T_EXPLICIT); }
 #line 5837 "cpp_re.inc"
 yy849:
@@ -5846,7 +5846,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy851:
-#line 70 "cpp.re"
+#line 71 "cpp.re"
     { BOOST_WAVE_RET(T_ENUM); }
 #line 5852 "cpp_re.inc"
 yy852:
@@ -5861,7 +5861,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy854:
-#line 69 "cpp.re"
+#line 70 "cpp.re"
     { BOOST_WAVE_RET(T_ELSE); }
 #line 5867 "cpp_re.inc"
 yy855:
@@ -5900,7 +5900,7 @@
         }
     }
 yy857:
-#line 66 "cpp.re"
+#line 67 "cpp.re"
     { BOOST_WAVE_RET(T_DO); }
 #line 5906 "cpp_re.inc"
 yy858:
@@ -5942,7 +5942,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy869:
-#line 68 "cpp.re"
+#line 69 "cpp.re"
     { BOOST_WAVE_RET(T_DYNAMICCAST); }
 #line 5948 "cpp_re.inc"
 yy870:
@@ -5963,7 +5963,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy874:
-#line 67 "cpp.re"
+#line 68 "cpp.re"
     { BOOST_WAVE_RET(T_DOUBLE); }
 #line 5969 "cpp_re.inc"
 yy875:
@@ -5994,7 +5994,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy881:
-#line 65 "cpp.re"
+#line 66 "cpp.re"
     { BOOST_WAVE_RET(T_DELETE); }
 #line 6000 "cpp_re.inc"
 yy882:
@@ -6015,7 +6015,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy886:
-#line 64 "cpp.re"
+#line 65 "cpp.re"
     { BOOST_WAVE_RET(T_DEFAULT); }
 #line 6021 "cpp_re.inc"
 yy887:
@@ -6039,7 +6039,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy892:
-#line 63 "cpp.re"
+#line 64 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); }
 #line 6045 "cpp_re.inc"
 yy893:
@@ -6086,7 +6086,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy901:
-#line 200 "cpp.re"
+#line 201 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
 #line 6092 "cpp_re.inc"
 yy902:
@@ -6115,7 +6115,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy908:
-#line 62 "cpp.re"
+#line 63 "cpp.re"
     { BOOST_WAVE_RET(T_CONTINUE); }
 #line 6121 "cpp_re.inc"
 yy909:
@@ -6143,7 +6143,7 @@
         }
     }
 yy910:
-#line 59 "cpp.re"
+#line 60 "cpp.re"
     { BOOST_WAVE_RET(T_CONST); }
 #line 6149 "cpp_re.inc"
 yy911:
@@ -6169,7 +6169,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy916:
-#line 60 "cpp.re"
+#line 61 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); }
 #line 6175 "cpp_re.inc"
 yy917:
@@ -6190,7 +6190,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy921:
-#line 61 "cpp.re"
+#line 62 "cpp.re"
     { BOOST_WAVE_RET(T_CONSTCAST); }
 #line 6196 "cpp_re.inc"
 yy922:
@@ -6208,7 +6208,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy925:
-#line 58 "cpp.re"
+#line 59 "cpp.re"
     { BOOST_WAVE_RET(T_CLASS); }
 #line 6214 "cpp_re.inc"
 yy926:
@@ -6248,7 +6248,7 @@
         }
     }
 yy928:
-#line 55 "cpp.re"
+#line 56 "cpp.re"
     { BOOST_WAVE_RET(T_CHAR); }
 #line 6254 "cpp_re.inc"
 yy929:
@@ -6274,7 +6274,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy934:
-#line 57 "cpp.re"
+#line 58 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); }
 #line 6280 "cpp_re.inc"
 yy935:
@@ -6292,7 +6292,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy938:
-#line 56 "cpp.re"
+#line 57 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); }
 #line 6298 "cpp_re.inc"
 yy939:
@@ -6315,7 +6315,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy943:
-#line 54 "cpp.re"
+#line 55 "cpp.re"
     { BOOST_WAVE_RET(T_CATCH); }
 #line 6321 "cpp_re.inc"
 yy944:
@@ -6327,7 +6327,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy945:
-#line 53 "cpp.re"
+#line 54 "cpp.re"
     { BOOST_WAVE_RET(T_CASE); }
 #line 6333 "cpp_re.inc"
 yy946:
@@ -6358,7 +6358,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy952:
-#line 52 "cpp.re"
+#line 53 "cpp.re"
     { BOOST_WAVE_RET(T_BREAK); }
 #line 6364 "cpp_re.inc"
 yy953:
@@ -6373,7 +6373,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy955:
-#line 51 "cpp.re"
+#line 52 "cpp.re"
     { BOOST_WAVE_RET(T_BOOL); }
 #line 6379 "cpp_re.inc"
 yy956:
@@ -6399,7 +6399,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy960:
-#line 196 "cpp.re"
+#line 197 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
 #line 6405 "cpp_re.inc"
 yy961:
@@ -6414,7 +6414,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy963:
-#line 194 "cpp.re"
+#line 195 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
 #line 6420 "cpp_re.inc"
 yy964:
@@ -6447,7 +6447,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy970:
-#line 50 "cpp.re"
+#line 51 "cpp.re"
     { BOOST_WAVE_RET(T_AUTO); }
 #line 6453 "cpp_re.inc"
 yy971:
@@ -6459,7 +6459,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy972:
-#line 49 "cpp.re"
+#line 50 "cpp.re"
     { BOOST_WAVE_RET(T_ASM); }
 #line 6465 "cpp_re.inc"
 yy973:
@@ -6483,7 +6483,7 @@
         }
     }
 yy974:
-#line 229 "cpp.re"
+#line 230 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
 #line 6489 "cpp_re.inc"
 yy975:
@@ -6501,7 +6501,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy978:
-#line 215 "cpp.re"
+#line 216 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
 #line 6507 "cpp_re.inc"
 yy979:
@@ -6533,7 +6533,7 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy985:
-#line 48 "cpp.re"
+#line 49 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); }
 #line 6539 "cpp_re.inc"
 yy986:
@@ -6545,12 +6545,12 @@
     if (yych == '?') goto yy111;
     if (yych == '\\') goto yy110;
 yy987:
-#line 47 "cpp.re"
+#line 48 "cpp.re"
     { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); }
 #line 6551 "cpp_re.inc"
 yy988:
     ++YYCURSOR;
-#line 176 "cpp.re"
+#line 177 "cpp.re"
     {
             if (s->act_in_c99_mode) {
                 --YYCURSOR;
@@ -6570,26 +6570,26 @@
     goto yy7;
 yy992:
     ++YYCURSOR;
-#line 162 "cpp.re"
+#line 163 "cpp.re"
     { BOOST_WAVE_RET(T_ELLIPSIS); }
 #line 6576 "cpp_re.inc"
 yy994:
     ++YYCURSOR;
-#line 209 "cpp.re"
+#line 210 "cpp.re"
     { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
 #line 6581 "cpp_re.inc"
 yy996:
     ++YYCURSOR;
-#line 44 "cpp.re"
+#line 45 "cpp.re"
     { goto cppcomment; }
 #line 6586 "cpp_re.inc"
 yy998:
     ++YYCURSOR;
-#line 43 "cpp.re"
+#line 44 "cpp.re"
     { goto ccomment; }
 #line 6591 "cpp_re.inc"
 }
-#line 348 "cpp.re"
+#line 349 "cpp.re"
 
 
 ccomment:
@@ -6618,13 +6618,13 @@
     ++YYCURSOR;
     if ((yych = *YYCURSOR) == '/') goto yy1014;
 yy1003:
-#line 363 "cpp.re"
+#line 364 "cpp.re"
     { goto ccomment; }
 #line 6624 "cpp_re.inc"
 yy1004:
     ++YYCURSOR;
 yy1005:
-#line 355 "cpp.re"
+#line 356 "cpp.re"
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
         /*s->tok = cursor; */
@@ -6645,7 +6645,7 @@
     goto yy1003;
 yy1009:
     ++YYCURSOR;
-#line 366 "cpp.re"
+#line 367 "cpp.re"
     {
         if(cursor == s->eof)
         {
@@ -6664,7 +6664,7 @@
 #line 6665 "cpp_re.inc"
 yy1011:
     ++YYCURSOR;
-#line 383 "cpp.re"
+#line 384 "cpp.re"
     {
         // flag the error
         BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
@@ -6677,11 +6677,11 @@
     goto yy1005;
 yy1014:
     ++YYCURSOR;
-#line 352 "cpp.re"
+#line 353 "cpp.re"
     { BOOST_WAVE_RET(T_CCOMMENT); }
 #line 6683 "cpp_re.inc"
 }
-#line 389 "cpp.re"
+#line 390 "cpp.re"
 
 
 cppcomment:
@@ -6703,7 +6703,7 @@
     }
     ++YYCURSOR;
 yy1019:
-#line 394 "cpp.re"
+#line 395 "cpp.re"
     {
         /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
         /*s->tok = cursor; */
@@ -6719,7 +6719,7 @@
 yy1021:
     ++YYCURSOR;
 yy1022:
-#line 402 "cpp.re"
+#line 403 "cpp.re"
     { goto cppcomment; }
 #line 6725 "cpp_re.inc"
 yy1023:
@@ -6727,7 +6727,7 @@
     goto yy1022;
 yy1024:
     ++YYCURSOR;
-#line 405 "cpp.re"
+#line 406 "cpp.re"
     {
         if (s->eof && cursor != s->eof)
         {
@@ -6749,7 +6749,7 @@
 #line 6750 "cpp_re.inc"
 yy1026:
     ++YYCURSOR;
-#line 425 "cpp.re"
+#line 426 "cpp.re"
     {
         // flag the error
         BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
@@ -6762,7 +6762,7 @@
     yych = *YYCURSOR;
     goto yy1019;
 }
-#line 431 "cpp.re"
+#line 432 "cpp.re"
 
 
 /* this subscanner is called whenever a pp_number has been started */
@@ -6841,7 +6841,7 @@
         }
     }
 yy1035:
-#line 443 "cpp.re"
+#line 444 "cpp.re"
     { BOOST_WAVE_RET(T_PP_NUMBER); }
 #line 6847 "cpp_re.inc"
 yy1036:
@@ -7054,7 +7054,7 @@
         goto yy1031;
     }
 }
-#line 444 "cpp.re"
+#line 445 "cpp.re"
 
     }
     else {
@@ -7134,7 +7134,7 @@
         }
     }
 yy1057:
-#line 451 "cpp.re"
+#line 452 "cpp.re"
     { goto integer_suffix; }
 #line 7140 "cpp_re.inc"
 yy1058:
@@ -7180,7 +7180,7 @@
         }
     }
 yy1063:
-#line 449 "cpp.re"
+#line 450 "cpp.re"
     { BOOST_WAVE_RET(T_FLOATLIT); }
 #line 7186 "cpp_re.inc"
 yy1064:
@@ -7321,7 +7321,7 @@
     }
     goto yy1057;
 }
-#line 452 "cpp.re"
+#line 453 "cpp.re"
 
     }
 }
@@ -7334,137 +7334,147 @@
 #line 7335 "cpp_re.inc"
 {
     YYCTYPE yych;
- if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
     yych = *(YYMARKER = YYCURSOR);
     if (yych <= 'h') {
         if (yych <= 'L') {
- if (yych >= 'L') goto yy1086;
+ if (yych >= 'L') goto yy1087;
         } else {
             if (yych == 'U') goto yy1085;
         }
     } else {
         if (yych <= 'l') {
- if (yych <= 'i') goto yy1087;
- if (yych >= 'l') goto yy1086;
+ if (yych <= 'i') goto yy1088;
+ if (yych >= 'l') goto yy1087;
         } else {
- if (yych == 'u') goto yy1085;
+ if (yych == 'u') goto yy1086;
         }
     }
 yy1084:
-#line 465 "cpp.re"
+#line 466 "cpp.re"
     { BOOST_WAVE_RET(T_INTLIT); }
 #line 7357 "cpp_re.inc"
 yy1085:
     yych = *++YYCURSOR;
- if (yych == 'L') goto yy1094;
- if (yych == 'l') goto yy1094;
+ if (yych == 'L') goto yy1095;
+ if (yych == 'l') goto yy1095;
     goto yy1084;
 yy1086:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'h') {
+ if (yych == 'L') goto yy1095;
+ goto yy1084;
+ } else {
+ if (yych <= 'i') goto yy1088;
+ if (yych == 'l') goto yy1095;
+ goto yy1084;
+ }
+yy1087:
     yych = *++YYCURSOR;
     if (yych <= 'U') {
- if (yych == 'L') goto yy1093;
+ if (yych == 'L') goto yy1094;
         if (yych <= 'T') goto yy1084;
- goto yy1092;
+ goto yy1093;
     } else {
         if (yych <= 'l') {
             if (yych <= 'k') goto yy1084;
- goto yy1093;
+ goto yy1094;
         } else {
- if (yych == 'u') goto yy1092;
+ if (yych == 'u') goto yy1093;
             goto yy1084;
         }
     }
-yy1087:
- yych = *++YYCURSOR;
- if (yych == '6') goto yy1089;
 yy1088:
+ yych = *++YYCURSOR;
+ if (yych == '6') goto yy1090;
+yy1089:
     YYCURSOR = YYMARKER;
     goto yy1084;
-yy1089:
- yych = *++YYCURSOR;
- if (yych != '4') goto yy1088;
 yy1090:
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych != '4') goto yy1089;
 yy1091:
-#line 462 "cpp.re"
- { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7392 "cpp_re.inc"
+ ++YYCURSOR;
 yy1092:
- yych = *++YYCURSOR;
- goto yy1084;
+#line 463 "cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 7402 "cpp_re.inc"
 yy1093:
     yych = *++YYCURSOR;
- if (yych == 'U') goto yy1090;
- if (yych == 'u') goto yy1090;
- goto yy1091;
+ goto yy1084;
 yy1094:
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy1091;
+ if (yych == 'u') goto yy1091;
+ goto yy1092;
+yy1095:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == 'L') goto yy1090;
- if (yych == 'l') goto yy1090;
+ if ((yych = *YYCURSOR) == 'L') goto yy1091;
+ if (yych == 'l') goto yy1091;
     goto yy1084;
 }
-#line 466 "cpp.re"
+#line 467 "cpp.re"
 
     }
     else {
     
-#line 7412 "cpp_re.inc"
+#line 7422 "cpp_re.inc"
 {
     YYCTYPE yych;
     if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
     yych = *YYCURSOR;
     if (yych <= 'U') {
- if (yych == 'L') goto yy1099;
- if (yych >= 'U') goto yy1098;
+ if (yych == 'L') goto yy1100;
+ if (yych >= 'U') goto yy1099;
     } else {
         if (yych <= 'l') {
- if (yych >= 'l') goto yy1099;
+ if (yych >= 'l') goto yy1100;
         } else {
- if (yych == 'u') goto yy1098;
+ if (yych == 'u') goto yy1099;
         }
     }
-yy1097:
-#line 474 "cpp.re"
- { BOOST_WAVE_RET(T_INTLIT); }
-#line 7430 "cpp_re.inc"
 yy1098:
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy1104;
- if (yych == 'l') goto yy1104;
- goto yy1097;
+#line 475 "cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 7440 "cpp_re.inc"
 yy1099:
     yych = *++YYCURSOR;
+ if (yych == 'L') goto yy1105;
+ if (yych == 'l') goto yy1105;
+ goto yy1098;
+yy1100:
+ yych = *++YYCURSOR;
     if (yych <= 'U') {
- if (yych == 'L') goto yy1101;
- if (yych <= 'T') goto yy1097;
+ if (yych == 'L') goto yy1102;
+ if (yych <= 'T') goto yy1098;
     } else {
         if (yych <= 'l') {
- if (yych <= 'k') goto yy1097;
- goto yy1101;
+ if (yych <= 'k') goto yy1098;
+ goto yy1102;
         } else {
- if (yych != 'u') goto yy1097;
+ if (yych != 'u') goto yy1098;
         }
     }
     yych = *++YYCURSOR;
- goto yy1097;
-yy1101:
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == 'U') goto yy1103;
- if (yych == 'u') goto yy1103;
+ goto yy1098;
 yy1102:
-#line 471 "cpp.re"
- { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7458 "cpp_re.inc"
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == 'U') goto yy1104;
+ if (yych == 'u') goto yy1104;
 yy1103:
- yych = *++YYCURSOR;
- goto yy1102;
+#line 472 "cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 7468 "cpp_re.inc"
 yy1104:
+ yych = *++YYCURSOR;
+ goto yy1103;
+yy1105:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == 'L') goto yy1103;
- if (yych == 'l') goto yy1103;
- goto yy1097;
+ if ((yych = *YYCURSOR) == 'L') goto yy1104;
+ if (yych == 'l') goto yy1104;
+ goto yy1098;
 }
-#line 475 "cpp.re"
+#line 476 "cpp.re"
 
     }
 }
@@ -7473,7 +7483,7 @@
 extcharlit:
 {
     
-#line 7477 "cpp_re.inc"
+#line 7487 "cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -7514,305 +7524,305 @@
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
- if (yych <= 0x08) goto yy1107;
- if (yych <= '\t') goto yy1108;
- goto yy1112;
+ if (yych <= 0x08) goto yy1108;
+ if (yych <= '\t') goto yy1109;
+ goto yy1113;
         } else {
- if (yych <= '\f') goto yy1108;
- if (yych <= '\r') goto yy1112;
+ if (yych <= '\f') goto yy1109;
+ if (yych <= '\r') goto yy1113;
         }
     } else {
         if (yych <= '>') {
- if (yych == '\'') goto yy1112;
- goto yy1108;
+ if (yych == '\'') goto yy1113;
+ goto yy1109;
         } else {
- if (yych <= '?') goto yy1110;
- if (yych == '\\') goto yy1111;
- goto yy1108;
+ if (yych <= '?') goto yy1111;
+ if (yych == '\\') goto yy1112;
+ goto yy1109;
         }
     }
-yy1107:
- YYCURSOR = YYMARKER;
- goto yy1109;
 yy1108:
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\'') goto yy1120;
+ YYCURSOR = YYMARKER;
+ goto yy1110;
 yy1109:
-#line 487 "cpp.re"
- { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 7544 "cpp_re.inc"
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\'') goto yy1121;
 yy1110:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '\'') goto yy1120;
- if (yych == '?') goto yy1135;
- goto yy1109;
+#line 488 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7554 "cpp_re.inc"
 yy1111:
     yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '\'') goto yy1121;
+ if (yych == '?') goto yy1136;
+ goto yy1110;
+yy1112:
+ yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy1115;
- goto yy1109;
+ if (yych == '"') goto yy1116;
+ goto yy1110;
             } else {
- if (yych <= '\'') goto yy1115;
- if (yych <= '/') goto yy1109;
- goto yy1118;
+ if (yych <= '\'') goto yy1116;
+ if (yych <= '/') goto yy1110;
+ goto yy1119;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy1116;
- goto yy1109;
+ if (yych == '?') goto yy1117;
+ goto yy1110;
             } else {
- if (yych <= 'U') goto yy1114;
- if (yych == '\\') goto yy1115;
- goto yy1109;
+ if (yych <= 'U') goto yy1115;
+ if (yych == '\\') goto yy1116;
+ goto yy1110;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy1115;
- if (yych <= 'e') goto yy1109;
- goto yy1115;
- } else {
- if (yych == 'n') goto yy1115;
- if (yych <= 'q') goto yy1109;
- goto yy1115;
+ if (yych <= 'b') goto yy1116;
+ if (yych <= 'e') goto yy1110;
+ goto yy1116;
+ } else {
+ if (yych == 'n') goto yy1116;
+ if (yych <= 'q') goto yy1110;
+ goto yy1116;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy1109;
- if (yych <= 't') goto yy1115;
- goto yy1113;
- } else {
- if (yych <= 'v') goto yy1115;
- if (yych == 'x') goto yy1117;
- goto yy1109;
+ if (yych <= 's') goto yy1110;
+ if (yych <= 't') goto yy1116;
+ goto yy1114;
+ } else {
+ if (yych <= 'v') goto yy1116;
+ if (yych == 'x') goto yy1118;
+ goto yy1110;
             }
         }
     }
-yy1112:
- yych = *++YYCURSOR;
- goto yy1109;
 yy1113:
     yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych <= '9') goto yy1132;
- goto yy1107;
- } else {
- if (yych <= 'F') goto yy1132;
- if (yych <= '`') goto yy1107;
- if (yych <= 'f') goto yy1132;
- goto yy1107;
- }
+ goto yy1110;
 yy1114:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych <= '9') goto yy1125;
- goto yy1107;
- } else {
- if (yych <= 'F') goto yy1125;
- if (yych <= '`') goto yy1107;
- if (yych <= 'f') goto yy1125;
- goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych <= '9') goto yy1133;
+ goto yy1108;
+ } else {
+ if (yych <= 'F') goto yy1133;
+ if (yych <= '`') goto yy1108;
+ if (yych <= 'f') goto yy1133;
+ goto yy1108;
     }
 yy1115:
     yych = *++YYCURSOR;
- if (yych == '\'') goto yy1120;
- goto yy1107;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1108;
+ if (yych <= '9') goto yy1126;
+ goto yy1108;
+ } else {
+ if (yych <= 'F') goto yy1126;
+ if (yych <= '`') goto yy1108;
+ if (yych <= 'f') goto yy1126;
+ goto yy1108;
+ }
 yy1116:
     yych = *++YYCURSOR;
- if (yych == '\'') goto yy1120;
- if (yych == '?') goto yy1124;
- goto yy1107;
+ if (yych == '\'') goto yy1121;
+ goto yy1108;
 yy1117:
     yych = *++YYCURSOR;
- if (yych == '\'') goto yy1107;
- goto yy1123;
+ if (yych == '\'') goto yy1121;
+ if (yych == '?') goto yy1125;
+ goto yy1108;
 yy1118:
     yych = *++YYCURSOR;
- if (yych == '\'') goto yy1120;
- if (yych <= '/') goto yy1107;
- if (yych >= '8') goto yy1107;
- yych = *++YYCURSOR;
- if (yych == '\'') goto yy1120;
- if (yych <= '/') goto yy1107;
- if (yych <= '7') goto yy1115;
- goto yy1107;
-yy1120:
+ if (yych == '\'') goto yy1108;
+ goto yy1124;
+yy1119:
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1121;
+ if (yych <= '/') goto yy1108;
+ if (yych >= '8') goto yy1108;
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy1121;
+ if (yych <= '/') goto yy1108;
+ if (yych <= '7') goto yy1116;
+ goto yy1108;
+yy1121:
     ++YYCURSOR;
-#line 484 "cpp.re"
+#line 485 "cpp.re"
     { BOOST_WAVE_RET(T_CHARLIT); }
-#line 7649 "cpp_re.inc"
-yy1122:
+#line 7659 "cpp_re.inc"
+yy1123:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy1123:
+yy1124:
     if (yybm[0+yych] & 128) {
- goto yy1122;
+ goto yy1123;
     }
- if (yych == '\'') goto yy1120;
- goto yy1107;
-yy1124:
- yych = *++YYCURSOR;
- if (yych == '/') goto yy1115;
- goto yy1107;
+ if (yych == '\'') goto yy1121;
+ goto yy1108;
 yy1125:
     yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
- } else {
- if (yych <= 'F') goto yy1126;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
- }
+ if (yych == '/') goto yy1116;
+ goto yy1108;
 yy1126:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
     } else {
         if (yych <= 'F') goto yy1127;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1127:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
     } else {
         if (yych <= 'F') goto yy1128;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1128:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
     } else {
         if (yych <= 'F') goto yy1129;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1129:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
     } else {
         if (yych <= 'F') goto yy1130;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1130:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
     } else {
         if (yych <= 'F') goto yy1131;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1131:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych <= '9') goto yy1115;
- goto yy1107;
- } else {
- if (yych <= 'F') goto yy1115;
- if (yych <= '`') goto yy1107;
- if (yych <= 'f') goto yy1115;
- goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
+ } else {
+ if (yych <= 'F') goto yy1132;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1132:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
- } else {
- if (yych <= 'F') goto yy1133;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych <= '9') goto yy1116;
+ goto yy1108;
+ } else {
+ if (yych <= 'F') goto yy1116;
+ if (yych <= '`') goto yy1108;
+ if (yych <= 'f') goto yy1116;
+ goto yy1108;
     }
 yy1133:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych >= ':') goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
     } else {
         if (yych <= 'F') goto yy1134;
- if (yych <= '`') goto yy1107;
- if (yych >= 'g') goto yy1107;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1134:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1107;
- if (yych <= '9') goto yy1115;
- goto yy1107;
- } else {
- if (yych <= 'F') goto yy1115;
- if (yych <= '`') goto yy1107;
- if (yych <= 'f') goto yy1115;
- goto yy1107;
+ if (yych <= '/') goto yy1108;
+ if (yych >= ':') goto yy1108;
+ } else {
+ if (yych <= 'F') goto yy1135;
+ if (yych <= '`') goto yy1108;
+ if (yych >= 'g') goto yy1108;
     }
 yy1135:
     yych = *++YYCURSOR;
- if (yych != '/') goto yy1107;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1108;
+ if (yych <= '9') goto yy1116;
+ goto yy1108;
+ } else {
+ if (yych <= 'F') goto yy1116;
+ if (yych <= '`') goto yy1108;
+ if (yych <= 'f') goto yy1116;
+ goto yy1108;
+ }
+yy1136:
+ yych = *++YYCURSOR;
+ if (yych != '/') goto yy1108;
     ++YYCURSOR;
     if ((yych = *YYCURSOR) <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy1115;
- goto yy1107;
+ if (yych == '"') goto yy1116;
+ goto yy1108;
             } else {
- if (yych <= '\'') goto yy1115;
- if (yych <= '/') goto yy1107;
- goto yy1118;
+ if (yych <= '\'') goto yy1116;
+ if (yych <= '/') goto yy1108;
+ goto yy1119;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy1116;
- goto yy1107;
+ if (yych == '?') goto yy1117;
+ goto yy1108;
             } else {
- if (yych <= 'U') goto yy1114;
- if (yych == '\\') goto yy1115;
- goto yy1107;
+ if (yych <= 'U') goto yy1115;
+ if (yych == '\\') goto yy1116;
+ goto yy1108;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy1115;
- if (yych <= 'e') goto yy1107;
- goto yy1115;
- } else {
- if (yych == 'n') goto yy1115;
- if (yych <= 'q') goto yy1107;
- goto yy1115;
+ if (yych <= 'b') goto yy1116;
+ if (yych <= 'e') goto yy1108;
+ goto yy1116;
+ } else {
+ if (yych == 'n') goto yy1116;
+ if (yych <= 'q') goto yy1108;
+ goto yy1116;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy1107;
- if (yych <= 't') goto yy1115;
- goto yy1113;
- } else {
- if (yych <= 'v') goto yy1115;
- if (yych == 'x') goto yy1117;
- goto yy1107;
+ if (yych <= 's') goto yy1108;
+ if (yych <= 't') goto yy1116;
+ goto yy1114;
+ } else {
+ if (yych <= 'v') goto yy1116;
+ if (yych == 'x') goto yy1118;
+ goto yy1108;
             }
         }
     }
 }
-#line 488 "cpp.re"
+#line 489 "cpp.re"
 
 }
 
@@ -7820,7 +7830,7 @@
 extstringlit:
 {
     
-#line 7824 "cpp_re.inc"
+#line 7834 "cpp_re.inc"
 {
     YYCTYPE yych;
     unsigned int yyaccept = 0;
@@ -7862,323 +7872,323 @@
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
- if (yych <= 0x08) goto yy1139;
- if (yych <= '\t') goto yy1140;
- goto yy1146;
+ if (yych <= 0x08) goto yy1140;
+ if (yych <= '\t') goto yy1141;
+ goto yy1147;
         } else {
- if (yych <= '\f') goto yy1140;
- if (yych <= '\r') goto yy1146;
+ if (yych <= '\f') goto yy1141;
+ if (yych <= '\r') goto yy1147;
         }
     } else {
         if (yych <= '>') {
- if (yych == '"') goto yy1144;
- goto yy1140;
+ if (yych == '"') goto yy1145;
+ goto yy1141;
         } else {
- if (yych <= '?') goto yy1142;
- if (yych == '\\') goto yy1143;
- goto yy1140;
+ if (yych <= '?') goto yy1143;
+ if (yych == '\\') goto yy1144;
+ goto yy1141;
         }
     }
-yy1139:
+yy1140:
     YYCURSOR = YYMARKER;
     if (yyaccept <= 0) {
- goto yy1141;
+ goto yy1142;
     } else {
- goto yy1145;
+ goto yy1146;
     }
-yy1140:
+yy1141:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '\n') {
- if (yych == '\t') goto yy1150;
+ if (yych == '\t') goto yy1151;
     } else {
- if (yych <= '\f') goto yy1150;
- if (yych >= ' ') goto yy1150;
+ if (yych <= '\f') goto yy1151;
+ if (yych >= ' ') goto yy1151;
     }
-yy1141:
-#line 499 "cpp.re"
- { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 7902 "cpp_re.inc"
 yy1142:
+#line 500 "cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 7912 "cpp_re.inc"
+yy1143:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yybm[0+yych] & 32) {
- goto yy1158;
+ goto yy1159;
     }
     if (yych <= '\n') {
- if (yych == '\t') goto yy1150;
- goto yy1141;
+ if (yych == '\t') goto yy1151;
+ goto yy1142;
     } else {
- if (yych <= '\f') goto yy1150;
- if (yych <= 0x1F) goto yy1141;
- goto yy1150;
+ if (yych <= '\f') goto yy1151;
+ if (yych <= 0x1F) goto yy1142;
+ goto yy1151;
     }
-yy1143:
+yy1144:
     yyaccept = 0;
     yych = *(YYMARKER = ++YYCURSOR);
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy1149;
- goto yy1141;
+ if (yych == '"') goto yy1150;
+ goto yy1142;
             } else {
- if (yych <= '\'') goto yy1149;
- if (yych <= '/') goto yy1141;
- goto yy1153;
+ if (yych <= '\'') goto yy1150;
+ if (yych <= '/') goto yy1142;
+ goto yy1154;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy1151;
- goto yy1141;
+ if (yych == '?') goto yy1152;
+ goto yy1142;
             } else {
- if (yych <= 'U') goto yy1148;
- if (yych == '\\') goto yy1149;
- goto yy1141;
+ if (yych <= 'U') goto yy1149;
+ if (yych == '\\') goto yy1150;
+ goto yy1142;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy1149;
- if (yych <= 'e') goto yy1141;
- goto yy1149;
- } else {
- if (yych == 'n') goto yy1149;
- if (yych <= 'q') goto yy1141;
- goto yy1149;
+ if (yych <= 'b') goto yy1150;
+ if (yych <= 'e') goto yy1142;
+ goto yy1150;
+ } else {
+ if (yych == 'n') goto yy1150;
+ if (yych <= 'q') goto yy1142;
+ goto yy1150;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy1141;
- if (yych <= 't') goto yy1149;
- goto yy1147;
- } else {
- if (yych <= 'v') goto yy1149;
- if (yych == 'x') goto yy1152;
- goto yy1141;
+ if (yych <= 's') goto yy1142;
+ if (yych <= 't') goto yy1150;
+ goto yy1148;
+ } else {
+ if (yych <= 'v') goto yy1150;
+ if (yych == 'x') goto yy1153;
+ goto yy1142;
             }
         }
     }
-yy1144:
- ++YYCURSOR;
 yy1145:
-#line 496 "cpp.re"
- { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 7968 "cpp_re.inc"
+ ++YYCURSOR;
 yy1146:
- yych = *++YYCURSOR;
- goto yy1141;
+#line 497 "cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 7978 "cpp_re.inc"
 yy1147:
+ yych = *++YYCURSOR;
+ goto yy1142;
+yy1148:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych <= '9') goto yy1187;
- goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych <= '9') goto yy1188;
+ goto yy1140;
     } else {
- if (yych <= 'F') goto yy1187;
- if (yych <= '`') goto yy1139;
- if (yych <= 'f') goto yy1187;
- goto yy1139;
+ if (yych <= 'F') goto yy1188;
+ if (yych <= '`') goto yy1140;
+ if (yych <= 'f') goto yy1188;
+ goto yy1140;
     }
-yy1148:
+yy1149:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych <= '9') goto yy1180;
- goto yy1139;
- } else {
- if (yych <= 'F') goto yy1180;
- if (yych <= '`') goto yy1139;
- if (yych <= 'f') goto yy1180;
- goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych <= '9') goto yy1181;
+ goto yy1140;
+ } else {
+ if (yych <= 'F') goto yy1181;
+ if (yych <= '`') goto yy1140;
+ if (yych <= 'f') goto yy1181;
+ goto yy1140;
     }
-yy1149:
+yy1150:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
-yy1150:
+yy1151:
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1156;
- goto yy1157;
-yy1151:
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1157;
+ goto yy1158;
+yy1152:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1179;
- goto yy1157;
-yy1152:
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1180;
+ goto yy1158;
+yy1153:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1166;
+ goto yy1167;
     }
- goto yy1139;
-yy1153:
+ goto yy1140;
+yy1154:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '"') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy1149;
- goto yy1139;
+ if (yych == '\t') goto yy1150;
+ goto yy1140;
         } else {
- if (yych <= '\f') goto yy1149;
- if (yych <= 0x1F) goto yy1139;
- if (yych <= '!') goto yy1149;
- goto yy1155;
+ if (yych <= '\f') goto yy1150;
+ if (yych <= 0x1F) goto yy1140;
+ if (yych <= '!') goto yy1150;
+ goto yy1156;
         }
     } else {
         if (yych <= '>') {
- if (yych <= '/') goto yy1149;
- if (yych >= '8') goto yy1149;
+ if (yych <= '/') goto yy1150;
+ if (yych >= '8') goto yy1150;
         } else {
- if (yych <= '?') goto yy1156;
- if (yych == '\\') goto yy1157;
- goto yy1149;
+ if (yych <= '?') goto yy1157;
+ if (yych == '\\') goto yy1158;
+ goto yy1150;
         }
     }
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1156;
- goto yy1157;
-yy1155:
- yych = *++YYCURSOR;
- goto yy1145;
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1157;
+ goto yy1158;
 yy1156:
+ yych = *++YYCURSOR;
+ goto yy1146;
+yy1157:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1158;
-yy1157:
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1159;
+yy1158:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy1149;
- goto yy1139;
+ if (yych == '"') goto yy1150;
+ goto yy1140;
             } else {
- if (yych <= '\'') goto yy1149;
- if (yych <= '/') goto yy1139;
- goto yy1153;
+ if (yych <= '\'') goto yy1150;
+ if (yych <= '/') goto yy1140;
+ goto yy1154;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy1151;
- goto yy1139;
+ if (yych == '?') goto yy1152;
+ goto yy1140;
             } else {
- if (yych <= 'U') goto yy1148;
- if (yych == '\\') goto yy1149;
- goto yy1139;
+ if (yych <= 'U') goto yy1149;
+ if (yych == '\\') goto yy1150;
+ goto yy1140;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy1149;
- if (yych <= 'e') goto yy1139;
- goto yy1149;
- } else {
- if (yych == 'n') goto yy1149;
- if (yych <= 'q') goto yy1139;
- goto yy1149;
+ if (yych <= 'b') goto yy1150;
+ if (yych <= 'e') goto yy1140;
+ goto yy1150;
+ } else {
+ if (yych == 'n') goto yy1150;
+ if (yych <= 'q') goto yy1140;
+ goto yy1150;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy1139;
- if (yych <= 't') goto yy1149;
- goto yy1147;
- } else {
- if (yych <= 'v') goto yy1149;
- if (yych == 'x') goto yy1152;
- goto yy1139;
+ if (yych <= 's') goto yy1140;
+ if (yych <= 't') goto yy1150;
+ goto yy1148;
+ } else {
+ if (yych <= 'v') goto yy1150;
+ if (yych == 'x') goto yy1153;
+ goto yy1140;
             }
         }
     }
-yy1158:
+yy1159:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy1158;
+ goto yy1159;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy1149;
- goto yy1139;
+ if (yych == '\t') goto yy1150;
+ goto yy1140;
         } else {
- if (yych <= '\f') goto yy1149;
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= '\f') goto yy1150;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
         }
     } else {
         if (yych <= '/') {
- if (yych <= '"') goto yy1155;
- if (yych <= '.') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '.') goto yy1150;
         } else {
- if (yych == '\\') goto yy1157;
- goto yy1149;
+ if (yych == '\\') goto yy1158;
+ goto yy1150;
         }
     }
-yy1160:
+yy1161:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 64) {
- goto yy1160;
+ goto yy1161;
     }
     if (yych <= '7') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1164;
- if (yych <= '/') goto yy1149;
- goto yy1153;
+ if (yych <= '"') goto yy1165;
+ if (yych <= '/') goto yy1150;
+ goto yy1154;
             }
         }
     } else {
         if (yych <= 'U') {
- if (yych == '?') goto yy1165;
- if (yych <= 'T') goto yy1149;
- goto yy1163;
+ if (yych == '?') goto yy1166;
+ if (yych <= 'T') goto yy1150;
+ goto yy1164;
         } else {
             if (yych <= 'u') {
- if (yych <= 't') goto yy1149;
+ if (yych <= 't') goto yy1150;
             } else {
- if (yych == 'x') goto yy1166;
- goto yy1149;
+ if (yych == 'x') goto yy1167;
+ goto yy1150;
             }
         }
     }
@@ -8187,174 +8197,174 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
- goto yy1176;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
+ goto yy1177;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
- goto yy1176;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
+ goto yy1177;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych <= 'f') goto yy1176;
- goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych <= 'f') goto yy1177;
+ goto yy1150;
             }
         }
     }
-yy1163:
+yy1164:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
- goto yy1169;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
+ goto yy1170;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
- goto yy1169;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
+ goto yy1170;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych <= 'f') goto yy1169;
- goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych <= 'f') goto yy1170;
+ goto yy1150;
             }
         }
     }
-yy1164:
+yy1165:
     yyaccept = 1;
     YYMARKER = ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1145;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1156;
- goto yy1157;
-yy1165:
+ if (yych <= '!') goto yy1146;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1157;
+ goto yy1158;
+yy1166:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1168;
- goto yy1157;
-yy1166:
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1169;
+ goto yy1158;
+yy1167:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1166;
+ goto yy1167;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy1149;
- goto yy1139;
+ if (yych == '\t') goto yy1150;
+ goto yy1140;
         } else {
- if (yych <= '\f') goto yy1149;
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= '\f') goto yy1150;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
         }
     } else {
         if (yych <= '?') {
- if (yych <= '"') goto yy1155;
- if (yych <= '>') goto yy1149;
- goto yy1156;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '>') goto yy1150;
+ goto yy1157;
         } else {
- if (yych == '\\') goto yy1157;
- goto yy1149;
+ if (yych == '\\') goto yy1158;
+ goto yy1150;
         }
     }
-yy1168:
+yy1169:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 32) {
- goto yy1158;
+ goto yy1159;
     }
     if (yych <= '!') {
         if (yych <= '\n') {
- if (yych == '\t') goto yy1149;
- goto yy1139;
+ if (yych == '\t') goto yy1150;
+ goto yy1140;
         } else {
- if (yych <= '\f') goto yy1149;
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= '\f') goto yy1150;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
         }
     } else {
         if (yych <= '/') {
- if (yych <= '"') goto yy1155;
- if (yych <= '.') goto yy1149;
- goto yy1160;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '.') goto yy1150;
+ goto yy1161;
         } else {
- if (yych == '\\') goto yy1157;
- goto yy1149;
+ if (yych == '\\') goto yy1158;
+ goto yy1150;
         }
     }
-yy1169:
+yy1170:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8363,29 +8373,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8394,29 +8404,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8425,29 +8435,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8456,29 +8466,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8487,29 +8497,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8517,41 +8527,41 @@
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1156;
- goto yy1157;
-yy1176:
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1157;
+ goto yy1158;
+yy1177:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8560,29 +8570,29 @@
     yych = *YYCURSOR;
     if (yych <= '9') {
         if (yych <= '\f') {
- if (yych == '\t') goto yy1149;
- if (yych <= '\n') goto yy1139;
- goto yy1149;
+ if (yych == '\t') goto yy1150;
+ if (yych <= '\n') goto yy1140;
+ goto yy1150;
         } else {
             if (yych <= '!') {
- if (yych <= 0x1F) goto yy1139;
- goto yy1149;
+ if (yych <= 0x1F) goto yy1140;
+ goto yy1150;
             } else {
- if (yych <= '"') goto yy1155;
- if (yych <= '/') goto yy1149;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '/') goto yy1150;
             }
         }
     } else {
         if (yych <= 'F') {
- if (yych == '?') goto yy1156;
- if (yych <= '@') goto yy1149;
+ if (yych == '?') goto yy1157;
+ if (yych <= '@') goto yy1150;
         } else {
             if (yych <= '\\') {
- if (yych <= '[') goto yy1149;
- goto yy1157;
+ if (yych <= '[') goto yy1150;
+ goto yy1158;
             } else {
- if (yych <= '`') goto yy1149;
- if (yych >= 'g') goto yy1149;
+ if (yych <= '`') goto yy1150;
+ if (yych >= 'g') goto yy1150;
             }
         }
     }
@@ -8590,156 +8600,156 @@
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 16) {
- goto yy1149;
- }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1156;
- goto yy1157;
-yy1179:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 16) {
- goto yy1149;
+ goto yy1150;
     }
- if (yych <= '!') goto yy1139;
- if (yych <= '"') goto yy1155;
- if (yych <= '[') goto yy1158;
- goto yy1157;
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1157;
+ goto yy1158;
 yy1180:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
- } else {
- if (yych <= 'F') goto yy1181;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yybm[0+yych] & 16) {
+ goto yy1150;
     }
+ if (yych <= '!') goto yy1140;
+ if (yych <= '"') goto yy1156;
+ if (yych <= '[') goto yy1159;
+ goto yy1158;
 yy1181:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
     } else {
         if (yych <= 'F') goto yy1182;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1182:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
     } else {
         if (yych <= 'F') goto yy1183;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1183:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
     } else {
         if (yych <= 'F') goto yy1184;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1184:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
     } else {
         if (yych <= 'F') goto yy1185;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1185:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
     } else {
         if (yych <= 'F') goto yy1186;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1186:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych <= '9') goto yy1149;
- goto yy1139;
- } else {
- if (yych <= 'F') goto yy1149;
- if (yych <= '`') goto yy1139;
- if (yych <= 'f') goto yy1149;
- goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
+ } else {
+ if (yych <= 'F') goto yy1187;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1187:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
- } else {
- if (yych <= 'F') goto yy1188;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych <= '9') goto yy1150;
+ goto yy1140;
+ } else {
+ if (yych <= 'F') goto yy1150;
+ if (yych <= '`') goto yy1140;
+ if (yych <= 'f') goto yy1150;
+ goto yy1140;
     }
 yy1188:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych >= ':') goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
     } else {
         if (yych <= 'F') goto yy1189;
- if (yych <= '`') goto yy1139;
- if (yych >= 'g') goto yy1139;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
     }
 yy1189:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1139;
- if (yych <= '9') goto yy1149;
- goto yy1139;
- } else {
- if (yych <= 'F') goto yy1149;
- if (yych <= '`') goto yy1139;
- if (yych <= 'f') goto yy1149;
- goto yy1139;
+ if (yych <= '/') goto yy1140;
+ if (yych >= ':') goto yy1140;
+ } else {
+ if (yych <= 'F') goto yy1190;
+ if (yych <= '`') goto yy1140;
+ if (yych >= 'g') goto yy1140;
+ }
+yy1190:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1140;
+ if (yych <= '9') goto yy1150;
+ goto yy1140;
+ } else {
+ if (yych <= 'F') goto yy1150;
+ if (yych <= '`') goto yy1140;
+ if (yych <= 'f') goto yy1150;
+ goto yy1140;
     }
 }
-#line 500 "cpp.re"
+#line 501 "cpp.re"
 
 }
 
 extrawstringlit:
 {
     
-#line 8743 "cpp_re.inc"
+#line 8753 "cpp_re.inc"
 {
     YYCTYPE yych;
     static const unsigned char yybm[] = {
@@ -8780,265 +8790,265 @@
     yych = *YYCURSOR;
     if (yych <= 0x1F) {
         if (yych <= '\n') {
- if (yych <= 0x08) goto yy1192;
- if (yych <= '\t') goto yy1193;
- goto yy1197;
+ if (yych <= 0x08) goto yy1193;
+ if (yych <= '\t') goto yy1194;
+ goto yy1198;
         } else {
- if (yych <= '\f') goto yy1193;
- if (yych <= '\r') goto yy1199;
+ if (yych <= '\f') goto yy1194;
+ if (yych <= '\r') goto yy1200;
         }
     } else {
         if (yych <= '>') {
- if (yych == '"') goto yy1200;
- goto yy1193;
+ if (yych == '"') goto yy1201;
+ goto yy1194;
         } else {
- if (yych <= '?') goto yy1195;
- if (yych == '\\') goto yy1196;
- goto yy1193;
+ if (yych <= '?') goto yy1196;
+ if (yych == '\\') goto yy1197;
+ goto yy1194;
         }
     }
-yy1192:
- YYCURSOR = YYMARKER;
- goto yy1194;
 yy1193:
- ++YYCURSOR;
+ YYCURSOR = YYMARKER;
+ goto yy1195;
 yy1194:
-#line 507 "cpp.re"
+ ++YYCURSOR;
+yy1195:
+#line 508 "cpp.re"
     {
             goto extrawstringlit;
         }
-#line 8811 "cpp_re.inc"
-yy1195:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '?') goto yy1221;
- goto yy1194;
+#line 8821 "cpp_re.inc"
 yy1196:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1222;
+ goto yy1195;
+yy1197:
     yych = *++YYCURSOR;
     if (yych <= '`') {
         if (yych <= '7') {
             if (yych <= '&') {
- if (yych == '"') goto yy1193;
- goto yy1192;
+ if (yych == '"') goto yy1194;
+ goto yy1193;
             } else {
- if (yych <= '\'') goto yy1193;
- if (yych <= '/') goto yy1192;
- goto yy1206;
+ if (yych <= '\'') goto yy1194;
+ if (yych <= '/') goto yy1193;
+ goto yy1207;
             }
         } else {
             if (yych <= 'T') {
- if (yych == '?') goto yy1204;
- goto yy1192;
+ if (yych == '?') goto yy1205;
+ goto yy1193;
             } else {
- if (yych <= 'U') goto yy1203;
- if (yych == '\\') goto yy1193;
- goto yy1192;
+ if (yych <= 'U') goto yy1204;
+ if (yych == '\\') goto yy1194;
+ goto yy1193;
             }
         }
     } else {
         if (yych <= 'r') {
             if (yych <= 'f') {
- if (yych <= 'b') goto yy1193;
- if (yych <= 'e') goto yy1192;
- goto yy1193;
- } else {
- if (yych == 'n') goto yy1193;
- if (yych <= 'q') goto yy1192;
- goto yy1193;
+ if (yych <= 'b') goto yy1194;
+ if (yych <= 'e') goto yy1193;
+ goto yy1194;
+ } else {
+ if (yych == 'n') goto yy1194;
+ if (yych <= 'q') goto yy1193;
+ goto yy1194;
             }
         } else {
             if (yych <= 'u') {
- if (yych <= 's') goto yy1192;
- if (yych <= 't') goto yy1193;
- goto yy1202;
- } else {
- if (yych <= 'v') goto yy1193;
- if (yych == 'x') goto yy1205;
- goto yy1192;
+ if (yych <= 's') goto yy1193;
+ if (yych <= 't') goto yy1194;
+ goto yy1203;
+ } else {
+ if (yych <= 'v') goto yy1194;
+ if (yych == 'x') goto yy1206;
+ goto yy1193;
             }
         }
     }
-yy1197:
- ++YYCURSOR;
 yy1198:
-#line 512 "cpp.re"
+ ++YYCURSOR;
+yy1199:
+#line 513 "cpp.re"
     {
             s->line += count_backslash_newlines(s, cursor) +1;
             cursor.column = 1;
             goto extrawstringlit;
         }
-#line 8870 "cpp_re.inc"
-yy1199:
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy1197;
- goto yy1198;
+#line 8880 "cpp_re.inc"
 yy1200:
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy1198;
+ goto yy1199;
+yy1201:
     ++YYCURSOR;
-#line 518 "cpp.re"
+#line 519 "cpp.re"
     { BOOST_WAVE_RET(T_RAWSTRINGLIT); }
-#line 8879 "cpp_re.inc"
-yy1202:
+#line 8889 "cpp_re.inc"
+yy1203:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych <= '9') goto yy1218;
- goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych <= '9') goto yy1219;
+ goto yy1193;
     } else {
- if (yych <= 'F') goto yy1218;
- if (yych <= '`') goto yy1192;
- if (yych <= 'f') goto yy1218;
- goto yy1192;
+ if (yych <= 'F') goto yy1219;
+ if (yych <= '`') goto yy1193;
+ if (yych <= 'f') goto yy1219;
+ goto yy1193;
     }
-yy1203:
+yy1204:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych <= '9') goto yy1211;
- goto yy1192;
- } else {
- if (yych <= 'F') goto yy1211;
- if (yych <= '`') goto yy1192;
- if (yych <= 'f') goto yy1211;
- goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych <= '9') goto yy1212;
+ goto yy1193;
+ } else {
+ if (yych <= 'F') goto yy1212;
+ if (yych <= '`') goto yy1193;
+ if (yych <= 'f') goto yy1212;
+ goto yy1193;
     }
-yy1204:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '?') goto yy1210;
- goto yy1194;
 yy1205:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '?') goto yy1211;
+ goto yy1195;
+yy1206:
     yych = *++YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1208;
+ goto yy1209;
     }
- goto yy1192;
-yy1206:
+ goto yy1193;
+yy1207:
     yych = *++YYCURSOR;
- if (yych <= '/') goto yy1194;
- if (yych >= '8') goto yy1194;
+ if (yych <= '/') goto yy1195;
+ if (yych >= '8') goto yy1195;
     yych = *++YYCURSOR;
- if (yych <= '/') goto yy1194;
- if (yych <= '7') goto yy1193;
- goto yy1194;
-yy1208:
+ if (yych <= '/') goto yy1195;
+ if (yych <= '7') goto yy1194;
+ goto yy1195;
+yy1209:
     ++YYCURSOR;
     if (YYLIMIT <= YYCURSOR) YYFILL(1);
     yych = *YYCURSOR;
     if (yybm[0+yych] & 128) {
- goto yy1208;
+ goto yy1209;
     }
- goto yy1194;
-yy1210:
- yych = *++YYCURSOR;
- if (yych == '/') goto yy1193;
- goto yy1192;
+ goto yy1195;
 yy1211:
     yych = *++YYCURSOR;
- if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
- } else {
- if (yych <= 'F') goto yy1212;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
- }
+ if (yych == '/') goto yy1194;
+ goto yy1193;
 yy1212:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
     } else {
         if (yych <= 'F') goto yy1213;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1213:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
     } else {
         if (yych <= 'F') goto yy1214;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1214:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
     } else {
         if (yych <= 'F') goto yy1215;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1215:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
     } else {
         if (yych <= 'F') goto yy1216;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1216:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
     } else {
         if (yych <= 'F') goto yy1217;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1217:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych <= '9') goto yy1193;
- goto yy1192;
- } else {
- if (yych <= 'F') goto yy1193;
- if (yych <= '`') goto yy1192;
- if (yych <= 'f') goto yy1193;
- goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
+ } else {
+ if (yych <= 'F') goto yy1218;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1218:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
- } else {
- if (yych <= 'F') goto yy1219;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych <= '9') goto yy1194;
+ goto yy1193;
+ } else {
+ if (yych <= 'F') goto yy1194;
+ if (yych <= '`') goto yy1193;
+ if (yych <= 'f') goto yy1194;
+ goto yy1193;
     }
 yy1219:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych >= ':') goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
     } else {
         if (yych <= 'F') goto yy1220;
- if (yych <= '`') goto yy1192;
- if (yych >= 'g') goto yy1192;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1220:
     yych = *++YYCURSOR;
     if (yych <= '@') {
- if (yych <= '/') goto yy1192;
- if (yych <= '9') goto yy1193;
- goto yy1192;
- } else {
- if (yych <= 'F') goto yy1193;
- if (yych <= '`') goto yy1192;
- if (yych <= 'f') goto yy1193;
- goto yy1192;
+ if (yych <= '/') goto yy1193;
+ if (yych >= ':') goto yy1193;
+ } else {
+ if (yych <= 'F') goto yy1221;
+ if (yych <= '`') goto yy1193;
+ if (yych >= 'g') goto yy1193;
     }
 yy1221:
+ yych = *++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1193;
+ if (yych <= '9') goto yy1194;
+ goto yy1193;
+ } else {
+ if (yych <= 'F') goto yy1194;
+ if (yych <= '`') goto yy1193;
+ if (yych <= 'f') goto yy1194;
+ goto yy1193;
+ }
+yy1222:
     ++YYCURSOR;
- if ((yych = *YYCURSOR) == '/') goto yy1196;
- goto yy1192;
+ if ((yych = *YYCURSOR) == '/') goto yy1197;
+ goto yy1193;
 }
-#line 519 "cpp.re"
+#line 520 "cpp.re"
 
 }

Modified: branches/release/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc
==============================================================================
--- branches/release/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Sun Jan 09 15:38:28 2011 */
+/* Generated by re2c 0.13.5 on Thu Jul 18 20:13:38 2013 */
 #line 1 "strict_cpp.re"
 /*=============================================================================
     Boost.Wave: A Standard compliant C++ preprocessor library

Copied: branches/release/libs/wave/test/testwave/testfiles/t_9_024.cpp (from r85077, trunk/libs/wave/test/testwave/testfiles/t_9_024.cpp)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/release/libs/wave/test/testwave/testfiles/t_9_024.cpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641, copy of r85077, trunk/libs/wave/test/testwave/testfiles/t_9_024.cpp)
@@ -0,0 +1,34 @@
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+ http://www.boost.org/
+
+ Copyright (c) 2001-2013 Hartmut Kaiser. Distributed under the Boost
+ Software License, Version 1.0. (See accompanying file
+ LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+
+// Verifies resolution of #8848: Wave driver improperly processes 0xFFFFui64
+// token
+
+//O --long_long
+
+#if defined(__TESTWAVE_SUPPORT_MS_EXTENSIONS__)
+
+#define TEST 0xFFFFFui64
+
+TEST
+
+//R #line 19 "t_9_024.cpp"
+//R 0xFFFFFui64
+
+//H 10: t_9_024.cpp(15): #if
+//H 11: t_9_024.cpp(15): #if defined(__TESTWAVE_SUPPORT_MS_EXTENSIONS__): 1
+//H 10: t_9_024.cpp(17): #define
+//H 08: t_9_024.cpp(17): TEST=0xFFFFFui64
+//H 01: t_9_024.cpp(17): TEST
+//H 02: 0xFFFFFui64
+//H 03: 0xFFFFFui64
+//H 10: t_9_024.cpp(33): #endif
+
+#endif
+

Modified: branches/release/libs/wave/test/testwave/testfiles/test.cfg
==============================================================================
--- branches/release/libs/wave/test/testwave/testfiles/test.cfg Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/test/testwave/testfiles/test.cfg 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -2,7 +2,7 @@
 # Boost.Wave: A Standard compliant C++ preprocessor library
 # http://www.boost.org/
 #
-# Copyright (c) 2003-2011 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2003-2013 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #
@@ -239,3 +239,4 @@
 t_9_021.cpp
 t_9_022.cpp
 t_9_023.cpp
+t_9_024.cpp

Modified: branches/release/libs/wave/test/testwave/testwave_app.cpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testwave_app.cpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/test/testwave/testwave_app.cpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2013 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -1198,6 +1198,27 @@
     return true;
 }
 
+#if BOOST_WAVE_SUPPORT_MS_EXTENSIONS
+// Predefine __TESTWAVE_SUPPORT_MS_EXTENSIONS__
+template <typename Context>
+inline bool
+testwave_app::add_support_ms_extensions_definition(Context& ctx)
+{
+ std::string macro("__TESTWAVE_SUPPORT_MS_EXTENSIONS__=1");
+ if (!ctx.add_macro_definition(macro, true)) {
+ std::cerr << "testwave: failed to predefine macro: " << macro
+ << std::endl;
+ return false;
+ }
+ else if (9 == debuglevel) {
+ std::cerr << "add_support_ms_extensions_definition: predefined macro: "
+ << macro
+ << std::endl;
+ }
+ return true;
+}
+#endif
+
 ///////////////////////////////////////////////////////////////////////////////
 //
 // Add special predefined macros to the context object.
@@ -1260,6 +1281,16 @@
                   << std::endl;
     }
 
+#if BOOST_WAVE_SUPPORT_MS_EXTENSIONS
+// Predefine __TESTWAVE_SUPPORT_MS_EXTENSIONS__
+ if (!add_support_ms_extensions_definition(ctx))
+ {
+ std::cerr << "testwave: failed to add a predefined macro "
+ "(__TESTWAVE_SUPPORT_MS_EXTENSIONS__)."
+ << std::endl;
+ }
+#endif
+
 #if BOOST_WAVE_USE_STRICT_LEXER != 0
     return add_strict_lexer_definition(ctx);
 #else

Modified: branches/release/libs/wave/test/testwave/testwave_app.hpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testwave_app.hpp Tue Sep 10 08:20:48 2013 (r85640)
+++ branches/release/libs/wave/test/testwave/testwave_app.hpp 2013-09-10 08:47:28 EDT (Tue, 10 Sep 2013) (r85641)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2013 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -120,6 +120,12 @@
     template <typename Context>
     bool add_strict_lexer_definition(Context& ctx);
 
+#if BOOST_WAVE_SUPPORT_MS_EXTENSIONS
+ // Predefine __TESTWAVE_SUPPORT_MS_EXTENSIONS__
+ template <typename Context>
+ bool add_support_ms_extensions_definition(Context& ctx);
+#endif
+
 private:
     int debuglevel;
     boost::program_options::options_description desc_options;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk