|
Boost-Commit : |
From: nicola.musatti_at_[hidden]
Date: 2007-10-07 16:11:17
Author: nmusatti
Date: 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
New Revision: 39768
URL: http://svn.boost.org/trac/boost/changeset/39768
Log:
Merge from trunk
Added:
branches/bcbboost/boost/thread/detail/platform.hpp
- copied unchanged from r39765, /trunk/boost/thread/detail/platform.hpp
branches/bcbboost/boost/thread/pthread/
- copied from r39765, /trunk/boost/thread/pthread/
branches/bcbboost/boost/thread/pthread/once.hpp
- copied unchanged from r39765, /trunk/boost/thread/pthread/once.hpp
branches/bcbboost/boost/thread/win32/
- copied from r39765, /trunk/boost/thread/win32/
branches/bcbboost/boost/thread/win32/interlocked_read.hpp
- copied unchanged from r39765, /trunk/boost/thread/win32/interlocked_read.hpp
branches/bcbboost/boost/thread/win32/once.hpp
- copied unchanged from r39765, /trunk/boost/thread/win32/once.hpp
branches/bcbboost/boost/thread/win32/thread_primitives.hpp
- copied unchanged from r39765, /trunk/boost/thread/win32/thread_primitives.hpp
branches/bcbboost/libs/numeric/ublas/doc/index.html
- copied unchanged from r39765, /trunk/libs/numeric/ublas/doc/index.html
branches/bcbboost/libs/wave/test/testwave/testwave_app_dll.cpp
- copied unchanged from r39765, /trunk/libs/wave/test/testwave/testwave_app_dll.cpp
branches/bcbboost/libs/wave/test/testwave/testwave_dll.cpp
- copied unchanged from r39765, /trunk/libs/wave/test/testwave/testwave_dll.cpp
branches/bcbboost/tools/jam/doc/history.qbk
- copied unchanged from r39765, /trunk/tools/jam/doc/history.qbk
Removed:
branches/bcbboost/boost/thread/read_write_mutex.hpp
branches/bcbboost/libs/thread/build/Jamfile
branches/bcbboost/libs/thread/build/threads.jam
branches/bcbboost/libs/thread/build/threads.mcp
branches/bcbboost/libs/thread/src/read_write_mutex.cpp
branches/bcbboost/libs/thread/test/test_read_write_mutex.cpp
branches/bcbboost/libs/thread/tutorial/Jamfile
Properties modified:
branches/bcbboost/tools/build/v2/example/customization/inline_file.py (props changed)
branches/bcbboost/tools/jam/build_dist.bat (contents, props changed)
branches/bcbboost/tools/jam/build_dist.sh (contents, props changed)
Text files modified:
branches/bcbboost/boost/asio/detail/epoll_reactor.hpp | 60
branches/bcbboost/boost/asio/detail/winsock_init.hpp | 1
branches/bcbboost/boost/asio/ip/detail/socket_option.hpp | 2
branches/bcbboost/boost/config/compiler/borland.hpp | 3
branches/bcbboost/boost/config/platform/cygwin.hpp | 3
branches/bcbboost/boost/foreach.hpp | 24
branches/bcbboost/boost/function/function_template.hpp | 3
branches/bcbboost/boost/functional/detail/hash_float.hpp | 64
branches/bcbboost/boost/fusion/sequence/adapted/boost_tuple/boost_tuple_iterator.hpp | 1
branches/bcbboost/boost/fusion/sequence/conversion/detail/as_map.hpp | 10
branches/bcbboost/boost/fusion/sequence/conversion/detail/as_set.hpp | 10
branches/bcbboost/boost/fusion/sequence/conversion/detail/as_vector.hpp | 10
branches/bcbboost/boost/graph/make_biconnected_planar.hpp | 5
branches/bcbboost/boost/graph/planar_detail/boyer_myrvold_impl.hpp | 12
branches/bcbboost/boost/math/common_factor_rt.hpp | 8
branches/bcbboost/boost/pool/detail/mutex.hpp | 12
branches/bcbboost/boost/serialization/valarray.hpp | 4
branches/bcbboost/boost/spirit/core/non_terminal/impl/object_with_id.ipp | 2
branches/bcbboost/boost/spirit/phoenix/closures.hpp | 2
branches/bcbboost/boost/spirit/utility/impl/chset/range_run.ipp | 6
branches/bcbboost/boost/thread/barrier.hpp | 2
branches/bcbboost/boost/thread/condition.hpp | 1
branches/bcbboost/boost/thread/mutex.hpp | 1
branches/bcbboost/boost/thread/once.hpp | 43
branches/bcbboost/boost/thread/tss.hpp | 1
branches/bcbboost/boost/typeof/template_template_param.hpp | 29
branches/bcbboost/boost/typeof/typeof.hpp | 2
branches/bcbboost/boost/typeof/typeof_impl.hpp | 34
branches/bcbboost/boost/wave/cpplexer/cpp_lex_token.hpp | 2
branches/bcbboost/boost/wave/cpplexer/cpplexer_exceptions.hpp | 46
branches/bcbboost/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp | 23
branches/bcbboost/boost/wave/cpplexer/re2clex/scanner.hpp | 3
branches/bcbboost/boost/wave/util/cpp_macromap.hpp | 6
branches/bcbboost/boost/wave/util/cpp_macromap_predef.hpp | 139
branches/bcbboost/boost/wave/util/flex_string.hpp | 40
branches/bcbboost/boost/xpressive/match_results.hpp | 37
branches/bcbboost/boost/xpressive/proto/traits.hpp | 12
branches/bcbboost/boost/xpressive/regex_algorithms.hpp | 2
branches/bcbboost/libs/config/doc/Jamfile.v2 | 6
branches/bcbboost/libs/config/test/Jamfile.v2 | 3
branches/bcbboost/libs/config/test/config_test.cpp | 2
branches/bcbboost/libs/filesystem/test/operations_test.cpp | 89
branches/bcbboost/libs/functional/hash/test/hash_float_test.cpp | 2
branches/bcbboost/libs/math/doc/Jamfile.v2 | 25
branches/bcbboost/libs/program_options/src/cmdline.cpp | 7
branches/bcbboost/libs/program_options/src/options_description.cpp | 2
branches/bcbboost/libs/python/build/Jamfile.v2 | 8
branches/bcbboost/libs/range/test/string.cpp | 8
branches/bcbboost/libs/regex/doc/Jamfile.v2 | 11
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/examples.html | 9
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/faq.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/futher.html | 5
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/headers.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/history.html | 13
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/locale.html | 11
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/performance.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/redist.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/standards.html | 15
branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/thread_safety.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/captures.html | 9
branches/bcbboost/libs/regex/doc/html/boost_regex/configuration.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/algorithm.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/compiler.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/linkage.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/locale.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/tuning.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/format.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html | 11
branches/bcbboost/libs/regex/doc/html/boost_regex/format/perl_format.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/format/sed_format.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/install.html | 19
branches/bcbboost/libs/regex/doc/html/boost_regex/introduction_and_overview.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/partial_matches.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/bad_expression.html | 9
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/basic_regex.html | 56
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html | 19
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/error_type.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_flag_type.html | 5
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_results.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html | 9
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html | 13
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/posix.html | 72
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_iterator.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_match.html | 25
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_replace.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_search.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html | 7
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_traits.html | 5
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/sub_match.html | 11
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_extended.html | 83
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html | 47
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html | 3
branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html | 87
branches/bcbboost/libs/regex/doc/html/boost_regex/unicode.html | 7
branches/bcbboost/libs/regex/doc/html/index.html | 4
branches/bcbboost/libs/regex/doc/regex.qbk | 3
branches/bcbboost/libs/regex/src/static_mutex.cpp | 2
branches/bcbboost/libs/regex/test/regress/info.hpp | 2
branches/bcbboost/libs/spirit/test/numerics_tests.cpp | 4
branches/bcbboost/libs/spirit/test/owi_mt_tests.cpp | 4
branches/bcbboost/libs/system/test/system_error_test.cpp | 15
branches/bcbboost/libs/thread/build/Jamfile.v2 | 4
branches/bcbboost/libs/thread/doc/acknowledgements.xml | 5
branches/bcbboost/libs/thread/doc/build.xml | 131
branches/bcbboost/libs/thread/doc/concepts.xml | 29
branches/bcbboost/libs/thread/doc/entities.xml | 1
branches/bcbboost/libs/thread/doc/once-ref.xml | 18
branches/bcbboost/libs/thread/doc/read_write_mutex-ref.xml | 30
branches/bcbboost/libs/thread/doc/reference.xml | 6
branches/bcbboost/libs/thread/doc/release_notes.xml | 58
branches/bcbboost/libs/thread/doc/thread-ref.xml | 15
branches/bcbboost/libs/thread/src/condition.cpp | 20
branches/bcbboost/libs/thread/src/mutex.inl | 20
branches/bcbboost/libs/thread/src/once.cpp | 167
branches/bcbboost/libs/thread/src/recursive_mutex.cpp | 6
branches/bcbboost/libs/thread/src/thread.cpp | 35
branches/bcbboost/libs/thread/src/timeconv.inl | 1
branches/bcbboost/libs/thread/src/tss.cpp | 14
branches/bcbboost/libs/thread/src/tss_hooks.cpp | 251
branches/bcbboost/libs/thread/test/Jamfile.v2 | 2
branches/bcbboost/libs/thread/test/test_once.cpp | 71
branches/bcbboost/libs/thread/test/test_tss.cpp | 9
branches/bcbboost/libs/thread/test/util.inl | 2
branches/bcbboost/libs/type_traits/doc/Jamfile.v2 | 9
branches/bcbboost/libs/type_traits/doc/function_traits.qbk | 6
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/background.html | 22
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/intrinsics.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 15
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html | 81
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html | 27
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 2
branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html | 2
branches/bcbboost/libs/type_traits/doc/html/index.html | 2
branches/bcbboost/libs/type_traits/test/promote_basic_test.cpp | 30
branches/bcbboost/libs/type_traits/test/promote_enum_test.cpp | 2
branches/bcbboost/libs/type_traits/test/promote_util.hpp | 8
branches/bcbboost/libs/wave/ChangeLog | 6
branches/bcbboost/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp | 4
branches/bcbboost/libs/wave/samples/cpp_tokens/slex_iterator.hpp | 3
branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl.re | 31
branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re.cpp | 341
branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp | 9
branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp.re | 27
branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.cpp | 7
branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.inc | 14035 ++++++++++++++++++++-------------------
branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp.re | 27
branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc | 14011 +++++++++++++++++++-------------------
branches/bcbboost/libs/wave/test/build/Jamfile.v2 | 40
branches/bcbboost/libs/wave/test/testwave/testfiles/t_6_067.cpp | 2
branches/bcbboost/libs/xpressive/test/regress.ipp | 35
branches/bcbboost/libs/xpressive/test/test.hpp | 13
branches/bcbboost/more/formal_review_schedule.html | 2
branches/bcbboost/status/Jamfile.v2 | 4
branches/bcbboost/status/explicit-failures-markup.xml | 51
branches/bcbboost/tools/boostbook/xsl/type.xsl | 2
branches/bcbboost/tools/build/v2/build/targets.jam | 15
branches/bcbboost/tools/build/v2/build/version.jam | 2
branches/bcbboost/tools/build/v2/changes.txt | 29
branches/bcbboost/tools/build/v2/index.html | 135
branches/bcbboost/tools/build/v2/release_procedure.txt | 20
branches/bcbboost/tools/build/v2/roll.sh | 6
branches/bcbboost/tools/build/v2/test/boostbook.py | 8
branches/bcbboost/tools/build/v2/test/boostbook/Jamroot | 2
branches/bcbboost/tools/build/v2/test/boostbook/docs.xml | 2
branches/bcbboost/tools/build/v2/test/example_qt4.py | 6
branches/bcbboost/tools/build/v2/test/test-config-example.jam | 4
branches/bcbboost/tools/build/v2/tools/builtin.jam | 1
branches/bcbboost/tools/build/v2/tools/gcc.jam | 33
branches/bcbboost/tools/build/v2/tools/msvc.jam | 12
branches/bcbboost/tools/build/v2/tools/pathscale.jam | 4
branches/bcbboost/tools/build/v2/tools/stlport.jam | 27
branches/bcbboost/tools/jam/build_dist.bat | 35
branches/bcbboost/tools/jam/build_dist.sh | 28
branches/bcbboost/tools/jam/doc/bjam.qbk | 9
branches/bcbboost/tools/jam/src/boost-jam.spec | 128
branches/bcbboost/tools/jam/src/build.jam | 48
branches/bcbboost/tools/jam/src/builtins.c | 33
branches/bcbboost/tools/jam/src/compile.c | 1
branches/bcbboost/tools/jam/src/execunix.c | 18
branches/bcbboost/tools/jam/src/patchlevel.h | 6
branches/bcbboost/tools/regression/boost_svn_export_archive.sh | 2
branches/bcbboost/tools/regression/compiler_status.cpp | 141
branches/bcbboost/tools/regression/process_jam_log.cpp | 8
branches/bcbboost/tools/regression/xsl_reports/runner/regression.py | 4
237 files changed, 16430 insertions(+), 15739 deletions(-)
Modified: branches/bcbboost/boost/asio/detail/epoll_reactor.hpp
==============================================================================
--- branches/bcbboost/boost/asio/detail/epoll_reactor.hpp (original)
+++ branches/bcbboost/boost/asio/detail/epoll_reactor.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -156,6 +156,8 @@
ev.data.fd = descriptor;
int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev);
+ if (result != 0 && errno == ENOENT)
+ result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev);
if (result != 0)
{
boost::system::error_code ec(errno,
@@ -190,6 +192,8 @@
ev.data.fd = descriptor;
int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev);
+ if (result != 0 && errno == ENOENT)
+ result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev);
if (result != 0)
{
boost::system::error_code ec(errno,
@@ -220,6 +224,8 @@
ev.data.fd = descriptor;
int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev);
+ if (result != 0 && errno == ENOENT)
+ result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev);
if (result != 0)
{
boost::system::error_code ec(errno,
@@ -252,6 +258,8 @@
ev.data.fd = descriptor;
int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev);
+ if (result != 0 && errno == ENOENT)
+ result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev);
if (result != 0)
{
boost::system::error_code ec(errno,
@@ -420,23 +428,40 @@
else
more_writes = write_op_queue_.has_operation(descriptor);
- epoll_event ev = { 0, { 0 } };
- ev.events = EPOLLERR | EPOLLHUP;
- if (more_reads)
- ev.events |= EPOLLIN;
- if (more_writes)
- ev.events |= EPOLLOUT;
- if (more_except)
- ev.events |= EPOLLPRI;
- ev.data.fd = descriptor;
- int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev);
- if (result != 0)
+ if ((events[i].events == EPOLLHUP)
+ && !more_except && !more_reads && !more_writes)
{
- ec = boost::system::error_code(errno,
- boost::asio::error::system_category);
- read_op_queue_.dispatch_all_operations(descriptor, ec);
- write_op_queue_.dispatch_all_operations(descriptor, ec);
- except_op_queue_.dispatch_all_operations(descriptor, ec);
+ // If we have only an EPOLLHUP event and no operations associated
+ // with the descriptor then we need to delete the descriptor from
+ // epoll. The epoll_wait system call will produce EPOLLHUP events
+ // even if they are not specifically requested, so if we do not
+ // remove the descriptor we can end up in a tight loop of repeated
+ // calls to epoll_wait.
+ epoll_event ev = { 0, { 0 } };
+ epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev);
+ }
+ else
+ {
+ epoll_event ev = { 0, { 0 } };
+ ev.events = EPOLLERR | EPOLLHUP;
+ if (more_reads)
+ ev.events |= EPOLLIN;
+ if (more_writes)
+ ev.events |= EPOLLOUT;
+ if (more_except)
+ ev.events |= EPOLLPRI;
+ ev.data.fd = descriptor;
+ int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev);
+ if (result != 0 && errno == ENOENT)
+ result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev);
+ if (result != 0)
+ {
+ ec = boost::system::error_code(errno,
+ boost::asio::error::system_category);
+ read_op_queue_.dispatch_all_operations(descriptor, ec);
+ write_op_queue_.dispatch_all_operations(descriptor, ec);
+ except_op_queue_.dispatch_all_operations(descriptor, ec);
+ }
}
}
}
@@ -532,7 +557,8 @@
if (minimum_wait_duration > boost::posix_time::time_duration())
{
- return minimum_wait_duration.total_milliseconds();
+ int milliseconds = minimum_wait_duration.total_milliseconds();
+ return milliseconds > 0 ? milliseconds : 1;
}
else
{
Modified: branches/bcbboost/boost/asio/detail/winsock_init.hpp
==============================================================================
--- branches/bcbboost/boost/asio/detail/winsock_init.hpp (original)
+++ branches/bcbboost/boost/asio/detail/winsock_init.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -29,6 +29,7 @@
#include <boost/throw_exception.hpp>
#include <boost/asio/detail/pop_options.hpp>
+#include <boost/asio/error.hpp>
#include <boost/asio/detail/noncopyable.hpp>
#include <boost/asio/detail/socket_types.hpp>
Modified: branches/bcbboost/boost/asio/ip/detail/socket_option.hpp
==============================================================================
--- branches/bcbboost/boost/asio/ip/detail/socket_option.hpp (original)
+++ branches/bcbboost/boost/asio/ip/detail/socket_option.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -38,7 +38,7 @@
class boolean
{
public:
-#if defined(__sun) || defined(_AIX)
+#if defined(__sun) || defined(_AIX) || defined(__osf__)
typedef unsigned char value_type;
#else
typedef int value_type;
Modified: branches/bcbboost/boost/config/compiler/borland.hpp
==============================================================================
--- branches/bcbboost/boost/config/compiler/borland.hpp (original)
+++ branches/bcbboost/boost/config/compiler/borland.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -117,6 +117,8 @@
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_IS_ABSTRACT
+# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
// Temporary workaround
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
@@ -204,3 +206,4 @@
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
+
Modified: branches/bcbboost/boost/config/platform/cygwin.hpp
==============================================================================
--- branches/bcbboost/boost/config/platform/cygwin.hpp (original)
+++ branches/bcbboost/boost/config/platform/cygwin.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -12,6 +12,8 @@
#define BOOST_NO_CWCHAR
#define BOOST_NO_SWPRINTF
#define BOOST_HAS_DIRENT_H
+#define BOOST_HAS_LOG1P
+#define BOOST_HAS_EXPM1
//
// Threading API:
@@ -46,3 +48,4 @@
+
Modified: branches/bcbboost/boost/foreach.hpp
==============================================================================
--- branches/bcbboost/boost/foreach.hpp (original)
+++ branches/bcbboost/boost/foreach.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -619,6 +619,18 @@
return iterator(boost::begin(derefof(auto_any_cast<type *, boost::mpl::false_>(col))));
}
+// work around msvc bugs wrt array types that have been deduced
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+template<typename T, std::size_t N, typename C>
+inline auto_any<BOOST_DEDUCED_TYPENAME boost::mpl::if_<C, T const *, T*>::type>
+begin(auto_any_t col, type2type<T[N], C> *, boost::mpl::false_ *) // lvalue
+{
+ typedef BOOST_DEDUCED_TYPENAME type2type<T[N], C>::type type;
+ typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<C, T const *, T*>::type iterator;
+ return &((*(auto_any_cast<type *, boost::mpl::false_>(col)))[0]);
+}
+#endif
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
template<typename T>
auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, const_>::type>
@@ -656,6 +668,18 @@
return iterator(boost::end(derefof(auto_any_cast<type *, boost::mpl::false_>(col))));
}
+// work around msvc bugs wrt array types that have been deduced
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+template<typename T, std::size_t N, typename C>
+inline auto_any<BOOST_DEDUCED_TYPENAME boost::mpl::if_<C, T const *, T*>::type>
+end(auto_any_t col, type2type<T[N], C> *, boost::mpl::false_ *) // lvalue
+{
+ typedef BOOST_DEDUCED_TYPENAME type2type<T[N], C>::type type;
+ typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<C, T const *, T*>::type iterator;
+ return &((*(auto_any_cast<type *, boost::mpl::false_>(col)))[0]) + N;
+}
+#endif
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
template<typename T>
auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, const_>::type>
Modified: branches/bcbboost/boost/function/function_template.hpp
==============================================================================
--- branches/bcbboost/boost/function/function_template.hpp (original)
+++ branches/bcbboost/boost/function/function_template.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -437,8 +437,9 @@
if (base.manager)
base.manager(functor, functor, destroy_functor_tag);
}
-
+#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
private:
+#endif
// Function pointers
template<typename FunctionPtr>
bool
Modified: branches/bcbboost/boost/functional/detail/hash_float.hpp
==============================================================================
--- branches/bcbboost/boost/functional/detail/hash_float.hpp (original)
+++ branches/bcbboost/boost/functional/detail/hash_float.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -15,23 +15,35 @@
#endif
#include <boost/functional/detail/float_functions.hpp>
+#include <boost/cstdint.hpp>
#include <boost/limits.hpp>
#include <boost/assert.hpp>
-// Don't use fpclassify or _fpclass for stlport.
-#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-# if defined(__GLIBCPP__) || defined(__GLIBCXX__)
+// Select implementation for the current platform.
+
+// Cygwn
+#if defined(__CYGWIN__)
+# if defined(__i386__) || defined(_M_IX86)
+# define BOOST_HASH_USE_x86_BINARY_HASH
+# endif
+
+// STLport
+#elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
+// _fpclass and fpclassify aren't good enough on STLport.
+
// GNU libstdc++ 3
-# if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \
- !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
-# define BOOST_HASH_USE_FPCLASSIFY
-# endif
-# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
+#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
+# if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \
+ !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
+# define BOOST_HASH_USE_FPCLASSIFY
+# endif
+
// Dinkumware Library, on Visual C++
-# if defined(BOOST_MSVC)
-# define BOOST_HASH_USE_FPCLASS
-# endif
+#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
+# if defined(BOOST_MSVC)
+# define BOOST_HASH_USE_FPCLASS
# endif
+
#endif
namespace boost
@@ -43,6 +55,33 @@
seed ^= value + (seed<<6) + (seed>>2);
}
+// A simple, non-portable hash algorithm for x86.
+#if defined(BOOST_HASH_USE_x86_BINARY_HASH)
+ inline std::size_t float_hash_impl(float v)
+ {
+ boost::uint32_t* ptr = (boost::uint32_t*)&v;
+ std::size_t seed = *ptr;
+ return seed;
+ }
+
+ inline std::size_t float_hash_impl(double v)
+ {
+ boost::uint32_t* ptr = (boost::uint32_t*)&v;
+ std::size_t seed = *ptr++;
+ hash_float_combine(seed, *ptr);
+ return seed;
+ }
+
+ inline std::size_t float_hash_impl(long double v)
+ {
+ boost::uint32_t* ptr = (boost::uint32_t*)&v;
+ std::size_t seed = *ptr++;
+ hash_float_combine(seed, *ptr++);
+ hash_float_combine(seed, *(boost::uint16_t*)ptr);
+ return seed;
+ }
+
+#else
template <class T>
inline std::size_t float_hash_impl(T v)
{
@@ -68,6 +107,7 @@
return seed;
}
+#endif
template <class T>
inline std::size_t float_hash_value(T v)
@@ -111,7 +151,7 @@
return 0;
}
#else
- return float_hash_impl(v);
+ return v == 0 ? 0 : float_hash_impl(v);
#endif
}
}
Modified: branches/bcbboost/boost/fusion/sequence/adapted/boost_tuple/boost_tuple_iterator.hpp
==============================================================================
--- branches/bcbboost/boost/fusion/sequence/adapted/boost_tuple/boost_tuple_iterator.hpp (original)
+++ branches/bcbboost/boost/fusion/sequence/adapted/boost_tuple/boost_tuple_iterator.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -13,6 +13,7 @@
#include <boost/mpl/identity.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/or.hpp>
#include <boost/tuple/tuple.hpp>
namespace boost { namespace fusion
Modified: branches/bcbboost/boost/fusion/sequence/conversion/detail/as_map.hpp
==============================================================================
--- branches/bcbboost/boost/fusion/sequence/conversion/detail/as_map.hpp (original)
+++ branches/bcbboost/boost/fusion/sequence/conversion/detail/as_map.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ 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)
==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
@@ -15,7 +15,7 @@
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/inc.hpp>
#include <boost/preprocessor/dec.hpp>
-#include <boost/fusion/sequence/container/map/map_fwd.hpp>
+#include <boost/fusion/sequence/container/map/map.hpp>
#include <boost/fusion/iterator/value_of.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -24,7 +24,7 @@
{
template <int size>
struct as_map;
-
+
template <>
struct as_map<0>
{
@@ -33,7 +33,7 @@
{
typedef map<> type;
};
-
+
template <typename Iterator>
static typename apply<Iterator>::type
call(Iterator)
@@ -84,7 +84,7 @@
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
typedef map<BOOST_PP_ENUM_PARAMS(N, T)> type;
};
-
+
template <typename Iterator>
static typename apply<Iterator>::type
call(Iterator const& i0)
Modified: branches/bcbboost/boost/fusion/sequence/conversion/detail/as_set.hpp
==============================================================================
--- branches/bcbboost/boost/fusion/sequence/conversion/detail/as_set.hpp (original)
+++ branches/bcbboost/boost/fusion/sequence/conversion/detail/as_set.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ 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)
==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
@@ -15,7 +15,7 @@
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/inc.hpp>
#include <boost/preprocessor/dec.hpp>
-#include <boost/fusion/sequence/container/set/set_fwd.hpp>
+#include <boost/fusion/sequence/container/set/set.hpp>
#include <boost/fusion/iterator/value_of.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -24,7 +24,7 @@
{
template <int size>
struct as_set;
-
+
template <>
struct as_set<0>
{
@@ -33,7 +33,7 @@
{
typedef set<> type;
};
-
+
template <typename Iterator>
static typename apply<Iterator>::type
call(Iterator)
@@ -84,7 +84,7 @@
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
typedef set<BOOST_PP_ENUM_PARAMS(N, T)> type;
};
-
+
template <typename Iterator>
static typename apply<Iterator>::type
call(Iterator const& i0)
Modified: branches/bcbboost/boost/fusion/sequence/conversion/detail/as_vector.hpp
==============================================================================
--- branches/bcbboost/boost/fusion/sequence/conversion/detail/as_vector.hpp (original)
+++ branches/bcbboost/boost/fusion/sequence/conversion/detail/as_vector.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ 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)
==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
@@ -15,7 +15,7 @@
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/inc.hpp>
#include <boost/preprocessor/dec.hpp>
-#include <boost/fusion/sequence/container/vector/vector_fwd.hpp>
+#include <boost/fusion/sequence/container/vector/vector.hpp>
#include <boost/fusion/iterator/value_of.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -24,7 +24,7 @@
{
template <int size>
struct as_vector;
-
+
template <>
struct as_vector<0>
{
@@ -33,7 +33,7 @@
{
typedef vector<> type;
};
-
+
template <typename Iterator>
static typename apply<Iterator>::type
call(Iterator)
@@ -84,7 +84,7 @@
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
typedef vector<BOOST_PP_ENUM_PARAMS(N, T)> type;
};
-
+
template <typename Iterator>
static typename apply<Iterator>::type
call(Iterator const& i0)
Modified: branches/bcbboost/boost/graph/make_biconnected_planar.hpp
==============================================================================
--- branches/bcbboost/boost/graph/make_biconnected_planar.hpp (original)
+++ branches/bcbboost/boost/graph/make_biconnected_planar.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -44,8 +44,9 @@
typedef iterator_property_map
<std::vector<std::size_t>::iterator, EdgeIndexMap> component_map_t;
+ edge_size_t n_edges(num_edges(g));
std::vector<vertex_t> articulation_points;
- std::vector<edge_size_t> component_vector(num_edges(g));
+ std::vector<edge_size_t> component_vector(n_edges);
component_map_t component_map(component_vector.begin(), em);
biconnected_components(g, component_map,
@@ -58,7 +59,7 @@
vertex_t v(*ap);
embedding_iterator_t pi = embedding[v].begin();
embedding_iterator_t pi_end = embedding[v].end();
- edge_size_t previous_component;
+ edge_size_t previous_component(n_edges + 1);
vertex_t previous_vertex = graph_traits<Graph>::null_vertex();
for(; pi != pi_end; ++pi)
Modified: branches/bcbboost/boost/graph/planar_detail/boyer_myrvold_impl.hpp
==============================================================================
--- branches/bcbboost/boost/graph/planar_detail/boyer_myrvold_impl.hpp (original)
+++ branches/bcbboost/boost/graph/planar_detail/boyer_myrvold_impl.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -465,9 +465,7 @@
// to v. This will set the stage for the walkdown to efficiently
// traverse the graph of bicomps down from v.
- typedef face_iterator
- <Graph, vertex_to_face_handle_map_t, vertex_t, both_sides>
- walkup_iterator_t;
+ typedef face_vertex_iterator<both_sides>::type walkup_iterator_t;
out_edge_iterator_t oi, oi_end;
for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
@@ -1083,9 +1081,7 @@
return current_endpoint;
}
- typedef face_iterator
- <Graph, vertex_to_face_handle_map_t, edge_t, single_side>
- walkup_itr_t;
+ typedef face_edge_iterator<>::type walkup_itr_t;
walkup_itr_t
walkup_itr(current_endpoint, face_handles, first_side());
@@ -1323,9 +1319,7 @@
bicomp_root = current_vertex;
}
-
- typedef face_iterator
- <Graph, vertex_to_face_handle_map_t, edge_t, single_side> walkup_itr_t;
+ typedef face_edge_iterator<>::type walkup_itr_t;
std::vector<bool> outer_face_edge_vector(num_edges(g), false);
edge_to_bool_map_t outer_face_edge(outer_face_edge_vector.begin(), em);
Modified: branches/bcbboost/boost/math/common_factor_rt.hpp
==============================================================================
--- branches/bcbboost/boost/math/common_factor_rt.hpp (original)
+++ branches/bcbboost/boost/math/common_factor_rt.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -15,6 +15,7 @@
#include <boost/config.hpp> // for BOOST_NESTED_TEMPLATE, etc.
#include <boost/limits.hpp> // for std::numeric_limits
+#include <boost/detail/workaround.hpp>
namespace boost
@@ -142,11 +143,18 @@
// Whittle down the values via their differences
do
{
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+ while ( !(r[ which ] & 1u) )
+ {
+ r[ which ] = (r[which] >> 1);
+ }
+#else
// Remove factors of two from the even one
while ( !(r[ which ] & 1u) )
{
r[ which ] >>= 1;
}
+#endif
// Replace the larger of the two with their difference
if ( r[!which] > r[which] )
Modified: branches/bcbboost/boost/pool/detail/mutex.hpp
==============================================================================
--- branches/bcbboost/boost/pool/detail/mutex.hpp (original)
+++ branches/bcbboost/boost/pool/detail/mutex.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -30,8 +30,10 @@
#ifdef BOOST_WINDOWS
#define BOOST_MUTEX_HELPER BOOST_MUTEX_HELPER_WIN32
#else
- #include <unistd.h>
- #ifdef _POSIX_THREADS
+ #if defined(BOOST_HAS_UNISTD_H)
+ #include <unistd.h>
+ #endif
+ #if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS)
#define BOOST_MUTEX_HELPER BOOST_MUTEX_HELPER_PTHREAD
#endif
#endif
@@ -45,7 +47,7 @@
# ifdef BOOST_WINDOWS
# include <windows.h>
# endif
-# ifdef _POSIX_THREADS
+# if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS)
# include <pthread.h>
# endif
#endif
@@ -83,7 +85,7 @@
#endif // defined(BOOST_WINDOWS)
-#ifdef _POSIX_THREADS
+#if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS)
class pthread_mutex
{
@@ -107,7 +109,7 @@
{ pthread_mutex_unlock(&mtx); }
};
-#endif // defined(_POSIX_THREADS)
+#endif // defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS)
#endif // !defined(BOOST_NO_MT)
Modified: branches/bcbboost/boost/serialization/valarray.hpp
==============================================================================
--- branches/bcbboost/boost/serialization/valarray.hpp (original)
+++ branches/bcbboost/boost/serialization/valarray.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -41,7 +41,7 @@
{
const collection_size_type count(t.size());
ar << BOOST_SERIALIZATION_NVP(count);
- if (count)
+ if (t.size())
ar << make_array(detail::get_data(t), t.size());
}
@@ -52,7 +52,7 @@
collection_size_type count;
ar >> BOOST_SERIALIZATION_NVP(count);
t.resize(count);
- if (count)
+ if (t.size())
ar >> make_array(detail::get_data(t), t.size());
}
Modified: branches/bcbboost/boost/spirit/core/non_terminal/impl/object_with_id.ipp
==============================================================================
--- branches/bcbboost/boost/spirit/core/non_terminal/impl/object_with_id.ipp (original)
+++ branches/bcbboost/boost/spirit/core/non_terminal/impl/object_with_id.ipp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -133,7 +133,7 @@
{
#ifdef BOOST_SPIRIT_THREADSAFE
static boost::once_flag been_here = BOOST_ONCE_INIT;
- boost::call_once(mutex_init, been_here);
+ boost::call_once(been_here, mutex_init);
boost::mutex &mutex = mutex_instance();
boost::mutex::scoped_lock lock(mutex);
#endif
Modified: branches/bcbboost/boost/spirit/phoenix/closures.hpp
==============================================================================
--- branches/bcbboost/boost/spirit/phoenix/closures.hpp (original)
+++ branches/bcbboost/boost/spirit/phoenix/closures.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -418,7 +418,7 @@
{
#ifdef PHOENIX_THREADSAFE
static boost::once_flag been_here = BOOST_ONCE_INIT;
- boost::call_once(tsp_frame_instance_init, been_here);
+ boost::call_once(been_here, tsp_frame_instance_init);
boost::thread_specific_ptr<holder_t*> &tsp_frame = tsp_frame_instance();
if (!tsp_frame.get())
tsp_frame.reset(new holder_t *(0));
Modified: branches/bcbboost/boost/spirit/utility/impl/chset/range_run.ipp
==============================================================================
--- branches/bcbboost/boost/spirit/utility/impl/chset/range_run.ipp (original)
+++ branches/bcbboost/boost/spirit/utility/impl/chset/range_run.ipp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -129,7 +129,7 @@
range_compare<CharT>()
);
- if (iter != run.end() && iter->includes(r) ||
+ if ((iter != run.end() && iter->includes(r)) ||
((iter != run.begin()) && (iter - 1)->includes(r)))
return;
@@ -166,6 +166,7 @@
if ((iter != run.begin()) &&
(left_iter = (iter - 1))->includes(r.first))
+ {
if (left_iter->last > r.last)
{
CharT save_last = left_iter->last;
@@ -177,7 +178,8 @@
{
left_iter->last = r.first-1;
}
-
+ }
+
iterator i = iter;
while (i != run.end() && r.includes(*i))
i++;
Modified: branches/bcbboost/boost/thread/barrier.hpp
==============================================================================
--- branches/bcbboost/boost/thread/barrier.hpp (original)
+++ branches/bcbboost/boost/thread/barrier.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -29,7 +29,7 @@
#ifdef BOOST_MSVC
# pragma warning(push)
# pragma warning(disable: 4251 4231 4660 4275)
-#endif
+#endif
condition m_cond;
#ifdef BOOST_MSVC
# pragma warning(pop)
Modified: branches/bcbboost/boost/thread/condition.hpp
==============================================================================
--- branches/bcbboost/boost/thread/condition.hpp (original)
+++ branches/bcbboost/boost/thread/condition.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -28,6 +28,7 @@
# pragma warning(push)
# pragma warning(disable: 4251 4231 4660 4275)
#endif
+
namespace detail {
class BOOST_THREAD_DECL condition_impl : private noncopyable
Modified: branches/bcbboost/boost/thread/mutex.hpp
==============================================================================
--- branches/bcbboost/boost/thread/mutex.hpp (original)
+++ branches/bcbboost/boost/thread/mutex.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -29,6 +29,7 @@
# pragma warning(push)
# pragma warning(disable: 4251 4231 4660 4275)
#endif
+
class BOOST_THREAD_DECL mutex
: private noncopyable
{
Modified: branches/bcbboost/boost/thread/once.hpp
==============================================================================
--- branches/bcbboost/boost/thread/once.hpp (original)
+++ branches/bcbboost/boost/thread/once.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,37 +1,28 @@
-// Copyright (C) 2001-2003
-// William E. Kempf
-//
-// 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)
-
-#ifndef BOOST_ONCE_WEK080101_HPP
-#define BOOST_ONCE_WEK080101_HPP
-
-#include <boost/thread/detail/config.hpp>
+#ifndef BOOST_THREAD_ONCE_HPP
+#define BOOST_THREAD_ONCE_HPP
-#if defined(BOOST_HAS_PTHREADS)
-# include <pthread.h>
-#endif
+// once.hpp
+//
+// (C) Copyright 2006-7 Anthony Williams
+//
+// 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/thread/detail/platform.hpp>
+#ifdef BOOST_HAS_MPTASKS
namespace boost {
-#if defined(BOOST_HAS_PTHREADS)
-
-typedef pthread_once_t once_flag;
-#define BOOST_ONCE_INIT PTHREAD_ONCE_INIT
-
-#elif (defined(BOOST_HAS_WINTHREADS) || defined(BOOST_HAS_MPTASKS))
-
typedef long once_flag;
#define BOOST_ONCE_INIT 0
-#endif
+void call_once(once_flag& flag, void (*func)());
-void BOOST_THREAD_DECL call_once(void (*func)(), once_flag& flag);
+}
-} // namespace boost
+#else
+#include BOOST_THREAD_PLATFORM(once.hpp)
+#endif
-// Change Log:
-// 1 Aug 01 WEKEMPF Initial version.
-#endif // BOOST_ONCE_WEK080101_HPP
+#endif
Deleted: branches/bcbboost/boost/thread/read_write_mutex.hpp
==============================================================================
--- branches/bcbboost/boost/thread/read_write_mutex.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
+++ (empty file)
@@ -1,285 +0,0 @@
-// Copyright (C) 2002-2003
-// David Moore, William E. Kempf, Michael Glassford
-//
-// 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)
-
-// A Boost::threads implementation of a synchronization
-// primitive which can allow multiple readers or a single
-// writer to have access to a shared resource.
-
-#ifndef BOOST_READ_WRITE_MUTEX_JDM030602_HPP
-#define BOOST_READ_WRITE_MUTEX_JDM030602_HPP
-
-#include <boost/thread/detail/config.hpp>
-
-#include <boost/utility.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/detail/lock.hpp>
-#include <boost/thread/detail/read_write_lock.hpp>
-#include <boost/thread/condition.hpp>
-
-namespace boost {
-// disable warnings about non dll import
-// see: http://www.boost.org/more/separate_compilation.html#dlls
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4251 4231 4660 4275)
-#endif
-namespace read_write_scheduling_policy {
- enum read_write_scheduling_policy_enum
- {
- writer_priority, //Prefer writers; can starve readers
- reader_priority, //Prefer readers; can starve writers
- alternating_many_reads, //Alternate readers and writers; before a writer, release all queued readers
- alternating_single_read //Alternate readers and writers; before a writer, release only one queued reader
- };
-} // namespace read_write_scheduling_policy
-
-namespace detail {
-
-namespace thread {
-
-// Shared implementation construct for explicit Scheduling Policies
-// This implementation is susceptible to self-deadlock, though....
-template<typename Mutex>
-struct read_write_mutex_impl
-{
- typedef Mutex mutex_type;
- typedef detail::thread::scoped_lock<Mutex> scoped_lock;
- typedef detail::thread::scoped_try_lock<Mutex> scoped_try_lock;
- typedef detail::thread::scoped_timed_lock<Mutex> scoped_timed_lock;
-
- read_write_mutex_impl(read_write_scheduling_policy::read_write_scheduling_policy_enum sp);
-#if !BOOST_WORKAROUND(__BORLANDC__,<= 0x564)
- ~read_write_mutex_impl();
-#endif
-
- Mutex m_prot;
-
- const read_write_scheduling_policy::read_write_scheduling_policy_enum m_sp;
- int m_state; //-1 = write lock; 0 = unlocked; >0 = read locked
-
- boost::condition m_waiting_writers;
- boost::condition m_waiting_readers;
- boost::condition m_waiting_promotion;
- int m_num_waiting_writers;
- int m_num_waiting_readers;
- bool m_state_waiting_promotion;
-
- int m_num_waking_writers;
- int m_num_waking_readers;
- int m_num_max_waking_writers; //Debug only
- int m_num_max_waking_readers; //Debug only
-
- bool m_readers_next;
-
- void do_read_lock();
- void do_write_lock();
- void do_write_unlock();
- void do_read_unlock();
- bool do_try_write_lock();
- bool do_try_read_lock();
- bool do_timed_write_lock(const xtime &xt);
- bool do_timed_read_lock(const xtime &xt);
-
- void do_demote_to_read_lock();
- bool do_try_demote_to_read_lock();
- bool do_timed_demote_to_read_lock(const xtime &xt);
-
- void do_promote_to_write_lock();
- bool do_try_promote_to_write_lock();
- bool do_timed_promote_to_write_lock(const xtime &xt);
-
- bool locked();
- read_write_lock_state::read_write_lock_state_enum state();
-
-private:
-
- bool do_demote_to_read_lock_impl();
-
- enum scheduling_reason
- {
- scheduling_reason_unlock,
- scheduling_reason_timeout,
- scheduling_reason_demote
- };
-
- void do_scheduling_impl(const scheduling_reason reason);
- bool do_wake_one_reader(void);
- bool do_wake_all_readers(void);
- bool do_wake_writer(void);
- bool waker_exists(void);
-};
-
-} // namespace detail
-
-} // namespace thread
-
-class BOOST_THREAD_DECL read_write_mutex : private noncopyable
-{
-public:
-
- read_write_mutex(read_write_scheduling_policy::read_write_scheduling_policy_enum sp);
- ~read_write_mutex();
-
- read_write_scheduling_policy::read_write_scheduling_policy_enum policy() const { return m_impl.m_sp; }
-
- friend class detail::thread::read_write_lock_ops<read_write_mutex>;
-
- typedef detail::thread::scoped_read_write_lock<
- read_write_mutex> scoped_read_write_lock;
-
- typedef detail::thread::scoped_read_lock<
- read_write_mutex> scoped_read_lock;
-
- typedef detail::thread::scoped_write_lock<
- read_write_mutex> scoped_write_lock;
-
-private:
-
- // Operations that will eventually be done only
- // via lock types
- void do_write_lock();
- void do_read_lock();
- void do_write_unlock();
- void do_read_unlock();
-
- void do_demote_to_read_lock();
-
- void do_promote_to_write_lock();
-
- bool locked();
- read_write_lock_state::read_write_lock_state_enum state();
-
- detail::thread::read_write_mutex_impl<mutex> m_impl;
-};
-
-class BOOST_THREAD_DECL try_read_write_mutex : private noncopyable
-{
-public:
-
- try_read_write_mutex(read_write_scheduling_policy::read_write_scheduling_policy_enum sp);
- ~try_read_write_mutex();
-
- read_write_scheduling_policy::read_write_scheduling_policy_enum policy() const { return m_impl.m_sp; }
-
- friend class detail::thread::read_write_lock_ops<try_read_write_mutex>;
-
- typedef detail::thread::scoped_read_write_lock<
- try_read_write_mutex> scoped_read_write_lock;
- typedef detail::thread::scoped_try_read_write_lock<
- try_read_write_mutex> scoped_try_read_write_lock;
-
- typedef detail::thread::scoped_read_lock<
- try_read_write_mutex> scoped_read_lock;
- typedef detail::thread::scoped_try_read_lock<
- try_read_write_mutex> scoped_try_read_lock;
-
- typedef detail::thread::scoped_write_lock<
- try_read_write_mutex> scoped_write_lock;
- typedef detail::thread::scoped_try_write_lock<
- try_read_write_mutex> scoped_try_write_lock;
-
-private:
-
- // Operations that will eventually be done only
- // via lock types
- void do_write_lock();
- void do_read_lock();
- void do_write_unlock();
- void do_read_unlock();
- bool do_try_write_lock();
- bool do_try_read_lock();
-
-
- void do_demote_to_read_lock();
- bool do_try_demote_to_read_lock();
-
- void do_promote_to_write_lock();
- bool do_try_promote_to_write_lock();
-
- bool locked();
- read_write_lock_state::read_write_lock_state_enum state();
-
- detail::thread::read_write_mutex_impl<try_mutex> m_impl;
-};
-
-class BOOST_THREAD_DECL timed_read_write_mutex : private noncopyable
-{
-public:
-
- timed_read_write_mutex(read_write_scheduling_policy::read_write_scheduling_policy_enum sp);
- ~timed_read_write_mutex();
-
- read_write_scheduling_policy::read_write_scheduling_policy_enum policy() const { return m_impl.m_sp; }
-
- friend class detail::thread::read_write_lock_ops<timed_read_write_mutex>;
-
- typedef detail::thread::scoped_read_write_lock<
- timed_read_write_mutex> scoped_read_write_lock;
- typedef detail::thread::scoped_try_read_write_lock<
- timed_read_write_mutex> scoped_try_read_write_lock;
- typedef detail::thread::scoped_timed_read_write_lock<
- timed_read_write_mutex> scoped_timed_read_write_lock;
-
- typedef detail::thread::scoped_read_lock<
- timed_read_write_mutex> scoped_read_lock;
- typedef detail::thread::scoped_try_read_lock<
- timed_read_write_mutex> scoped_try_read_lock;
- typedef detail::thread::scoped_timed_read_lock<
- timed_read_write_mutex> scoped_timed_read_lock;
-
- typedef detail::thread::scoped_write_lock<
- timed_read_write_mutex> scoped_write_lock;
- typedef detail::thread::scoped_try_write_lock<
- timed_read_write_mutex> scoped_try_write_lock;
- typedef detail::thread::scoped_timed_write_lock<
- timed_read_write_mutex> scoped_timed_write_lock;
-
-private:
-
- // Operations that will eventually be done only
- // via lock types
- void do_write_lock();
- void do_read_lock();
- void do_write_unlock();
- void do_read_unlock();
- bool do_try_write_lock();
- bool do_try_read_lock();
- bool do_timed_write_lock(const xtime &xt);
- bool do_timed_read_lock(const xtime &xt);
-
- void do_demote_to_read_lock();
- bool do_try_demote_to_read_lock();
- bool do_timed_demote_to_read_lock(const xtime &xt);
-
- void do_promote_to_write_lock();
- bool do_try_promote_to_write_lock();
- bool do_timed_promote_to_write_lock(const xtime &xt);
-
- bool locked();
- read_write_lock_state::read_write_lock_state_enum state();
-
- detail::thread::read_write_mutex_impl<timed_mutex> m_impl;
-};
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-} // namespace boost
-
-#endif
-
-// Change Log:
-// 10 Mar 02
-// Original version.
-// 4 May 04 GlassfordM
-// Implement lock promotion and demotion.
-// Add locked() and state() member functions for debugging
-// (should these be made public?).
-// Rename to improve consistency and eliminate abbreviations:
-// Use "read" and "write" instead of "shared" and "exclusive".
-// Change "rd" to "read", "wr" to "write", "rw" to "read_write".
-// Add mutex_type typdef.
Modified: branches/bcbboost/boost/thread/tss.hpp
==============================================================================
--- branches/bcbboost/boost/thread/tss.hpp (original)
+++ branches/bcbboost/boost/thread/tss.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -45,6 +45,7 @@
throw boost::thread_resource_error();
}
}
+
~tss();
void* get() const;
void set(void* value);
Modified: branches/bcbboost/boost/typeof/template_template_param.hpp
==============================================================================
--- branches/bcbboost/boost/typeof/template_template_param.hpp (original)
+++ branches/bcbboost/boost/typeof/template_template_param.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -93,10 +93,17 @@
#define BOOST_TYPEOF_TYPEDEF_INT_PN(z,n,Params) typedef int BOOST_PP_CAT(P,n);
+#ifdef __BORLANDC__
+#define BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME BOOST_PP_CAT(\
+ BOOST_PP_CAT(\
+ BOOST_PP_CAT(\
+ decode_nested_template_helper,\
+ BOOST_TYPEOF_REGISTRATION_GROUP\
+ ),0x10000\
+ ),__LINE__\
+ )
#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)\
- template<>\
- struct decode_nested_template_helper_impl<boost::mpl::size_t<ID> >\
- {\
+ struct BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME {\
template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
struct decode_params;\
template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
@@ -105,12 +112,24 @@
typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
};\
};
+//Template template param decoding
+#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
+ typedef typename BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME::decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
+#else
+#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)
//Template template param decoding
#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
- typedef typename decode_nested_template_helper_impl<self_id>::template decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
-
+ template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
+ struct decode_params;\
+ template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
+ struct decode_params<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER_TYPES) >\
+ {\
+ typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
+ };\
+ typedef typename decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
+#endif
#define BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
BOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) BOOST_PP_CAT(T, n)
Modified: branches/bcbboost/boost/typeof/typeof.hpp
==============================================================================
--- branches/bcbboost/boost/typeof/typeof.hpp (original)
+++ branches/bcbboost/boost/typeof/typeof.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -132,7 +132,7 @@
# endif
#elif defined(__BORLANDC__)
-# if (__BORLANDC__ < 0x600)
+# if (__BORLANDC__ < 0x590)
# define BOOST_TYPEOF_NO_FUNCTION_TYPES
# define BOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
# endif
Modified: branches/bcbboost/boost/typeof/typeof_impl.hpp
==============================================================================
--- branches/bcbboost/boost/typeof/typeof_impl.hpp (original)
+++ branches/bcbboost/boost/typeof/typeof_impl.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -106,6 +106,38 @@
typedef _typeof_encode_fraction<self_t::iteration> fraction_type;
#endif
+#ifdef __BORLANDC__
+namespace boost { namespace type_of {
+ template<typename Pos,typename Iter>
+ struct generic_typeof_fraction_iter {
+ typedef generic_typeof_fraction_iter<Pos,Iter> self_t;
+ static const int pos=(Pos::value);
+ static const int iteration=(pos/5);
+ static const int where=pos%5;
+ typedef typename Iter::template _apply_next<self_t::iteration>::type fraction_type;
+ typedef generic_typeof_fraction_iter<typename Pos::next,Iter> next;
+ typedef typename v_iter<fraction_type,mpl::int_<self_t::where> >::type type;
+ };
+}}
+#define BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
+ template<int _Typeof_Iteration>\
+ struct _typeof_encode_fraction {\
+ typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
+ BOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*BOOST_TYPEOF_LIMIT_SIZE));\
+ typedef boost::type_of::offset_vector<BOOST_TYPEOF_VECTOR(0)<>,boost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
+ BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM,expr)\
+ template<int Next>\
+ struct _apply_next {\
+ typedef _typeof_encode_fraction<Next> type;\
+ };\
+ };\
+ template<typename Pos>\
+ struct _typeof_fraction_iter {\
+ typedef boost::type_of::generic_typeof_fraction_iter<Pos,_typeof_encode_fraction<0> > self_t;\
+ typedef typename self_t::next next;\
+ typedef typename self_t::type type;\
+ };
+#else
#define BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
template<int _Typeof_Iteration>\
struct _typeof_encode_fraction {\
@@ -124,7 +156,7 @@
typedef typename boost::type_of::v_iter<fraction_type,boost::mpl::int_<self_t::where> >::type type;\
typedef _typeof_fraction_iter<typename Pos::next> next;\
};
-
+#endif
#ifdef __MWERKS__
# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
Modified: branches/bcbboost/boost/wave/cpplexer/cpp_lex_token.hpp
==============================================================================
--- branches/bcbboost/boost/wave/cpplexer/cpp_lex_token.hpp (original)
+++ branches/bcbboost/boost/wave/cpplexer/cpp_lex_token.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -206,7 +206,7 @@
string_type const &get_value() const { return data->get_value(); }
position_type const &get_position() const { return data->get_position(); }
bool is_eoi() const { return token_id(*data) == T_EOI; }
-
+
void set_token_id (token_id id_) { make_unique(); data->set_token_id(id_); }
void set_value (string_type const &value_) { make_unique(); data->set_value(value_); }
void set_position (position_type const &pos_) { make_unique(); data->set_position(pos_); }
Modified: branches/bcbboost/boost/wave/cpplexer/cpplexer_exceptions.hpp
==============================================================================
--- branches/bcbboost/boost/wave/cpplexer/cpplexer_exceptions.hpp (original)
+++ branches/bcbboost/boost/wave/cpplexer/cpplexer_exceptions.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -60,6 +60,41 @@
#endif // BOOST_NO_STRINGSTREAM
#endif // BOOST_WAVE_LEXER_THROW
+#if !defined(BOOST_WAVE_LEXER_THROW_VAR)
+#ifdef BOOST_NO_STRINGSTREAM
+#include <strstream>
+#define BOOST_WAVE_LEXER_THROW_VAR(cls, codearg, msg, line, column, name) \
+ { \
+ using namespace boost::wave; \
+ cls::error_code code = static_cast<cls::error_code>(codearg); \
+ std::strstream stream; \
+ stream << cls::severity_text(code) << ": " \
+ << cls::error_text(code); \
+ if ((msg)[0] != 0) stream << ": " << (msg); \
+ stream << std::ends; \
+ std::string throwmsg = stream.str(); stream.freeze(false); \
+ boost::throw_exception(cls(throwmsg.c_str(), code, line, column, \
+ name)); \
+ } \
+ /**/
+#else
+#include <sstream>
+#define BOOST_WAVE_LEXER_THROW_VAR(cls, codearg, msg, line, column, name) \
+ { \
+ using namespace boost::wave; \
+ cls::error_code code = static_cast<cls::error_code>(codearg); \
+ std::stringstream stream; \
+ stream << cls::severity_text(code) << ": " \
+ << cls::error_text(code); \
+ if ((msg)[0] != 0) stream << ": " << (msg); \
+ stream << std::ends; \
+ boost::throw_exception(cls(stream.str().c_str(), code, line, column, \
+ name)); \
+ } \
+ /**/
+#endif // BOOST_NO_STRINGSTREAM
+#endif // BOOST_WAVE_LEXER_THROW
+
///////////////////////////////////////////////////////////////////////////////
namespace boost {
namespace wave {
@@ -135,7 +170,8 @@
universal_char_base_charset = 2,
universal_char_not_allowed = 3,
invalid_long_long_literal = 4,
- generic_lexing_error = 5
+ generic_lexing_error = 5,
+ generic_lexing_warning = 6
};
lexing_exception(char const *what_, error_code code, int line_,
@@ -173,6 +209,8 @@
case lexing_exception::universal_char_base_charset:
case lexing_exception::universal_char_not_allowed:
case lexing_exception::invalid_long_long_literal:
+ case lexing_exception::generic_lexing_warning:
+ case lexing_exception::generic_lexing_error:
return true; // for now allow all exceptions to be recoverable
case lexing_exception::unexpected_error:
@@ -194,7 +232,8 @@
"this universal character is not allowed in an identifier", // universal_char_not_allowed
"long long suffixes are not allowed in pure C++ mode, "
"enable long_long mode to allow these", // invalid_long_long_literal
- "generic lexing error" // generic_lexing_error
+ "generic lexer error", // generic_lexing_error
+ "generic lexer warning" // generic_lexing_warning
};
return preprocess_exception_errors[code];
}
@@ -207,7 +246,8 @@
util::severity_error, // universal_char_base_charset
util::severity_error, // universal_char_not_allowed
util::severity_warning, // invalid_long_long_literal
- util::severity_error // generic_lexing_error
+ util::severity_error, // generic_lexing_error
+ util::severity_warning // invalid_long_long_literal
};
return preprocess_exception_severity[code];
}
Modified: branches/bcbboost/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
==============================================================================
--- branches/bcbboost/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp (original)
+++ branches/bcbboost/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -67,7 +67,7 @@
typedef typename token_type::string_type string_type;
lexer(IteratorT const &first, IteratorT const &last,
- PositionT const &pos, boost::wave::language_support language);
+ PositionT const &pos, boost::wave::language_support language_);
~lexer();
lex_token<PositionT> get();
@@ -87,7 +87,7 @@
#endif
// error reporting from the re2c generated lexer
- static int report_error(Scanner const* s, char const *, ...);
+ static int report_error(Scanner const* s, int code, char const *, ...);
private:
static char const *tok_names[];
@@ -110,8 +110,8 @@
inline
lexer<IteratorT, PositionT>::lexer(IteratorT const &first,
IteratorT const &last, PositionT const &pos,
- boost::wave::language_support language)
-: filename(pos.get_file()), at_eof(false), language(language)
+ boost::wave::language_support language_)
+: filename(pos.get_file()), at_eof(false), language(language_)
{
using namespace std; // some systems have memset in std
memset(&scanner, '\0', sizeof(Scanner));
@@ -132,17 +132,17 @@
#endif
#if BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0
- scanner.act_in_c99_mode = boost::wave::need_c99(language);
+ scanner.act_in_c99_mode = boost::wave::need_c99(language_);
#endif
#if BOOST_WAVE_SUPPORT_IMPORT_KEYWORD != 0
- scanner.enable_import_keyword = !boost::wave::need_c99(language);
+ scanner.enable_import_keyword = !boost::wave::need_c99(language_);
#else
scanner.enable_import_keyword = false;
#endif
- scanner.detect_pp_numbers = boost::wave::need_prefer_pp_numbers(language);
- scanner.single_line_only = boost::wave::need_single_line(language);
+ scanner.detect_pp_numbers = boost::wave::need_prefer_pp_numbers(language_);
+ scanner.single_line_only = boost::wave::need_single_line(language_);
}
template <typename IteratorT, typename PositionT>
@@ -291,7 +291,8 @@
template <typename IteratorT, typename PositionT>
inline int
-lexer<IteratorT, PositionT>::report_error(Scanner const *s, char const *msg, ...)
+lexer<IteratorT, PositionT>::report_error(Scanner const *s, int errcode,
+ char const *msg, ...)
{
BOOST_ASSERT(0 != s);
BOOST_ASSERT(0 != msg);
@@ -304,8 +305,8 @@
vsprintf(buffer, msg, params);
va_end(params);
- BOOST_WAVE_LEXER_THROW(lexing_exception, generic_lexing_error, buffer,
- s->line, s->column, s->file_name);
+ BOOST_WAVE_LEXER_THROW_VAR(lexing_exception, errcode, buffer, s->line,
+ s->column, s->file_name);
// BOOST_UNREACHABLE_RETURN(0);
return 0;
}
Modified: branches/bcbboost/boost/wave/cpplexer/re2clex/scanner.hpp
==============================================================================
--- branches/bcbboost/boost/wave/cpplexer/re2clex/scanner.hpp (original)
+++ branches/bcbboost/boost/wave/cpplexer/re2clex/scanner.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -28,7 +28,8 @@
struct Scanner;
typedef unsigned char uchar;
-typedef int (* ReportErrorProc)(struct Scanner const *, char const *, ...);
+typedef int (* ReportErrorProc)(struct Scanner const *, int errorcode,
+ char const *, ...);
typedef struct Scanner {
uchar* first; /* start of input buffer */
Modified: branches/bcbboost/boost/wave/util/cpp_macromap.hpp
==============================================================================
--- branches/bcbboost/boost/wave/util/cpp_macromap.hpp (original)
+++ branches/bcbboost/boost/wave/util/cpp_macromap.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -139,7 +139,7 @@
void reset_macromap();
position_type &get_main_pos() { return main_pos; }
-
+
// interface for macro name introspection
typedef typename defined_macros_type::name_iterator name_iterator;
typedef typename defined_macros_type::const_name_iterator const_name_iterator;
@@ -1238,8 +1238,8 @@
macro_def.macrodefinition, curr_token, arguments);
#else
if (ctx.get_hooks().expanding_function_like_macro(
- ctx, macro_def.macroname, macro_def.macroparameters,
- macro_def.macrodefinition, curr_token, arguments,
+ ctx, macro_def.macroname, macro_def.macroparameters,
+ macro_def.macrodefinition, curr_token, arguments,
seqstart, first))
{
// do not expand this macro, just copy the whole sequence
Modified: branches/bcbboost/boost/wave/util/cpp_macromap_predef.hpp
==============================================================================
--- branches/bcbboost/boost/wave/util/cpp_macromap_predef.hpp (original)
+++ branches/bcbboost/boost/wave/util/cpp_macromap_predef.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -44,22 +44,22 @@
class predefined_macros
{
typedef BOOST_WAVE_STRINGTYPE string_type;
-
+
public:
// list of static predefined macros
- struct static_macros {
- char const *name;
- boost::wave::token_id token_id;
- char const *value;
- };
+ struct static_macros {
+ char const *name;
+ boost::wave::token_id token_id;
+ char const *value;
+ };
// list of dynamic predefined macros
struct dynamic_macros {
char const *name;
boost::wave::token_id token_id;
string_type (predefined_macros:: *generator)() const;
- };
-
+ };
+
private:
boost::wave::util::time_conversion_helper compilation_time_;
string_type datestr_; // __DATE__
@@ -69,12 +69,12 @@
protected:
void reset_datestr()
- {
- static const char *const monthnames[] = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
- };
-
+ {
+ static const char *const monthnames[] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+ };
+
// for some systems sprintf, time_t etc. is in namespace std
using namespace std;
@@ -91,11 +91,11 @@
}
else {
datestr_ = "\"??? ?? ????\"";
+ }
}
- }
void reset_timestr()
- {
+ {
// for some systems sprintf, time_t etc. is in namespace std
using namespace std;
@@ -112,57 +112,57 @@
}
else {
timestr_ = "\"??:??:??\"";
+ }
}
- }
-
- void reset_version()
- {
- char buffer[sizeof("0x00000000")+1];
- // for some systems sprintf, time_t etc. is in namespace std
- using namespace std;
+ void reset_version()
+ {
+ char buffer[sizeof("0x00000000")+1];
+
+ // for some systems sprintf, time_t etc. is in namespace std
+ using namespace std;
- // calculate the number of days since Dec 13 2001
- // (the day the Wave project was started)
- tm first_day;
-
- using namespace std; // for some systems memset is in namespace std
- memset (&first_day, 0, sizeof(tm));
- first_day.tm_mon = 11; // Dec
- first_day.tm_mday = 13; // 13
- first_day.tm_year = 101; // 2001
+ // calculate the number of days since Dec 13 2001
+ // (the day the Wave project was started)
+ tm first_day;
+
+ using namespace std; // for some systems memset is in namespace std
+ memset (&first_day, 0, sizeof(tm));
+ first_day.tm_mon = 11; // Dec
+ first_day.tm_mday = 13; // 13
+ first_day.tm_year = 101; // 2001
long seconds = long(difftime(compilation_time_.get_time(), mktime(&first_day)));
- sprintf(buffer, "0x%02d%1d%1d%04ld", BOOST_WAVE_VERSION_MAJOR,
- BOOST_WAVE_VERSION_MINOR, BOOST_WAVE_VERSION_SUBMINOR,
- seconds/(3600*24));
+ sprintf(buffer, "0x%02d%1d%1d%04ld", BOOST_WAVE_VERSION_MAJOR,
+ BOOST_WAVE_VERSION_MINOR, BOOST_WAVE_VERSION_SUBMINOR,
+ seconds/(3600*24));
version_ = buffer;
- }
+ }
void reset_versionstr()
- {
- char buffer[sizeof("\"00.00.00.0000 \"")+sizeof(BOOST_PLATFORM)+sizeof(BOOST_COMPILER)+4];
+ {
+ char buffer[sizeof("\"00.00.00.0000 \"")+sizeof(BOOST_PLATFORM)+sizeof(BOOST_COMPILER)+4];
- // for some systems sprintf, time_t etc. is in namespace std
- using namespace std;
+ // for some systems sprintf, time_t etc. is in namespace std
+ using namespace std;
- // calculate the number of days since Dec 13 2001
- // (the day the Wave project was started)
- tm first_day;
-
- memset (&first_day, 0, sizeof(tm));
- first_day.tm_mon = 11; // Dec
- first_day.tm_mday = 13; // 13
- first_day.tm_year = 101; // 2001
+ // calculate the number of days since Dec 13 2001
+ // (the day the Wave project was started)
+ tm first_day;
+
+ memset (&first_day, 0, sizeof(tm));
+ first_day.tm_mon = 11; // Dec
+ first_day.tm_mday = 13; // 13
+ first_day.tm_year = 101; // 2001
long seconds = long(difftime(compilation_time_.get_time(), mktime(&first_day)));
- sprintf(buffer, "\"%d.%d.%d.%ld [%s/%s]\"", BOOST_WAVE_VERSION_MAJOR,
- BOOST_WAVE_VERSION_MINOR, BOOST_WAVE_VERSION_SUBMINOR,
- seconds/(3600*24), BOOST_PLATFORM, BOOST_COMPILER);
+ sprintf(buffer, "\"%d.%d.%d.%ld [%s/%s]\"", BOOST_WAVE_VERSION_MAJOR,
+ BOOST_WAVE_VERSION_MINOR, BOOST_WAVE_VERSION_SUBMINOR,
+ seconds/(3600*24), BOOST_PLATFORM, BOOST_COMPILER);
versionstr_ = buffer;
- }
+ }
// dynamic predefined macros
string_type get_date() const { return datestr_; } // __DATE__
@@ -170,7 +170,7 @@
// __SPIRIT_PP__/__WAVE__
string_type get_version() const
- {
+ {
char buffer[sizeof("0x0000")+1];
using namespace std; // for some systems sprintf is in namespace std
@@ -178,11 +178,11 @@
BOOST_WAVE_VERSION_MINOR, BOOST_WAVE_VERSION_SUBMINOR);
return buffer;
}
-
+
// __WAVE_CONFIG__
string_type get_config() const
{
- char buffer[sizeof("0x00000000")+1];
+ char buffer[sizeof("0x00000000")+1];
using namespace std; // for some systems sprintf is in namespace std
sprintf(buffer, "0x%08x", BOOST_WAVE_CONFIG);
@@ -209,7 +209,7 @@
// __SPIRIT_PP_VERSION_STR__/__WAVE_VERSION_STR__
string_type get_versionstr() const { return versionstr_; }
-
+
// C++ mode
static_macros const& static_data_cpp(std::size_t i) const
{
@@ -221,10 +221,7 @@
BOOST_ASSERT(i < sizeof(data)/sizeof(data[0]));
return data[i];
}
- std::size_t static_data_cpp_size() const
- {
- }
-
+
#if BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0
// C99 mode
static_macros const& static_data_c99(std::size_t i) const
@@ -235,18 +232,15 @@
{ "__STDC_HOSTED__", T_INTLIT, "0" },
{ "__WAVE_HAS_VARIADICS__", T_INTLIT, "1" },
{ 0, T_EOF, 0 }
- };
+ };
BOOST_ASSERT(i < sizeof(data)/sizeof(data[0]));
return data[i];
}
- std::size_t static_data_c99_size() const
- {
- }
#endif
-
+
dynamic_macros const& dynamic_data(std::size_t i) const
- {
- static dynamic_macros data[] = {
+ {
+ static dynamic_macros data[] = {
{ "__DATE__", T_STRINGLIT, &predefined_macros::get_date },
{ "__TIME__", T_STRINGLIT, &predefined_macros::get_time },
{ "__SPIRIT_PP__", T_INTLIT, &predefined_macros::get_version },
@@ -256,13 +250,10 @@
{ "__WAVE_VERSION__", T_INTLIT, &predefined_macros::get_fullversion },
{ "__WAVE_VERSION_STR__", T_STRINGLIT, &predefined_macros::get_versionstr },
{ "__WAVE_CONFIG__", T_INTLIT, &predefined_macros::get_config },
- { 0, T_EOF, 0 }
- };
- BOOST_ASSERT(i < sizeof(data)/sizeof(data[0]));
- return data[i];
- }
- std::size_t dynamic_data_size() const
- {
+ { 0, T_EOF, 0 }
+ };
+ BOOST_ASSERT(i < sizeof(data)/sizeof(data[0]));
+ return data[i];
}
}; // predefined_macros
Modified: branches/bcbboost/boost/wave/util/flex_string.hpp
==============================================================================
--- branches/bcbboost/boost/wave/util/flex_string.hpp (original)
+++ branches/bcbboost/boost/wave/util/flex_string.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -98,6 +98,7 @@
#include <functional>
#include <limits>
#include <stdexcept>
+#include <iosfwd>
#include <cstddef>
#include <cstring>
#include <cstdlib>
@@ -1405,7 +1406,7 @@
class Storage = AllocatorStringStorage<E, A> >
class flex_string : private Storage
{
-#if defined(THROW_ON_ENFORCE)
+#if defined(BOOST_WAVE_FLEXSTRING_THROW_ON_ENFORCE)
template <typename Exception>
static void Enforce(bool condition, Exception*, const char* msg)
{ if (!condition) boost::throw_exception(Exception(msg)); }
@@ -1413,8 +1414,9 @@
template <typename Exception>
static inline void Enforce(bool condition, Exception*, const char* msg)
{ BOOST_ASSERT(condition && msg); }
-#endif // defined(THROW_ON_ENFORCE)
+#endif // defined(BOOST_WAVE_FLEXSTRING_THROW_ON_ENFORCE)
+#ifndef NDEBUG
bool Sane() const
{
return
@@ -1428,9 +1430,9 @@
struct Invariant;
friend struct Invariant;
+
struct Invariant
{
-#ifndef NDEBUG
Invariant(const flex_string& s) : s_(s)
{
BOOST_ASSERT(s_.Sane());
@@ -1441,10 +1443,8 @@
}
private:
const flex_string& s_;
-#else
- Invariant(const flex_string&) {}
-#endif
};
+#endif
public:
// types
@@ -1644,7 +1644,9 @@
flex_string& append(const value_type* s, const size_type n)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
static std::less_equal<const value_type*> le;
if (le(&*begin(), s) && le(s, &*end())) // aliasing
{
@@ -1699,7 +1701,9 @@
flex_string& assign(const value_type* s, size_type n)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
if (size() >= n)
{
std::copy(s, s + n, begin());
@@ -1762,7 +1766,9 @@
flex_string& InsertImplDiscr(iterator p,
size_type n, value_type c, Selector<1>)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
assert(p >= begin() && p <= end());
if (capacity() - size() < n)
{
@@ -1798,7 +1804,9 @@
void InsertImpl(iterator i,
FwdIterator s1, FwdIterator s2, std::forward_iterator_tag)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
const size_type pos = i - begin();
const typename std::iterator_traits<FwdIterator>::difference_type n2 =
std::distance(s1, s2);
@@ -1860,7 +1868,9 @@
flex_string& erase(size_type pos = 0, size_type n = npos)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
Enforce(pos <= length(), (std::out_of_range*)0, "");
Procust(n, length() - pos);
std::copy(begin() + pos + n, end(), begin() + pos);
@@ -1909,7 +1919,9 @@
flex_string& replace(size_type pos, size_type n1,
StrOrLength s_or_n2, NumOrChar n_or_c)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
Enforce(pos <= size(), (std::out_of_range*)0, "");
Procust(n1, length() - pos);
const iterator b = begin() + pos;
@@ -1962,7 +1974,9 @@
void ReplaceImpl(iterator i1, iterator i2,
FwdIterator s1, FwdIterator s2, std::forward_iterator_tag)
{
- Invariant checker(*this); checker;
+#ifndef NDEBUG
+ Invariant checker(*this);
+#endif
const typename std::iterator_traits<iterator>::difference_type n1 =
i2 - i1;
assert(n1 >= 0);
Modified: branches/bcbboost/boost/xpressive/match_results.hpp
==============================================================================
--- branches/bcbboost/boost/xpressive/match_results.hpp (original)
+++ branches/bcbboost/boost/xpressive/match_results.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -92,8 +92,8 @@
///////////////////////////////////////////////////////////////////////////////
// transform_op enum
//
-enum transform_op { None, Upper, Lower };
-enum transform_scope { Next, Rest };
+enum transform_op { None = 0, Upper = 1, Lower = 2 };
+enum transform_scope { Next = 0, Rest = 1 };
///////////////////////////////////////////////////////////////////////////////
// case_converting_iterator
@@ -134,40 +134,31 @@
friend bool set_transform(case_converting_iterator &iter, transform_op trans, transform_scope scope)
{
- (scope == Next ? iter.next_ : iter.rest_) = trans;
+ BOOST_ASSERT(scope == Next || scope == Rest);
+ if(scope == Next)
+ iter.next_ = trans;
+ else
+ iter.rest_ = trans;
return true;
}
- case_converting_iterator &operator =(Char const &ch)
+ case_converting_iterator &operator =(Char ch)
{
- switch(this->next_)
+ switch(this->next_ ? this->next_ : this->rest_)
{
case Lower:
- *this->out_ = this->traits_->tolower(ch);
- this->next_ = None;
+ ch = this->traits_->tolower(ch);
break;
case Upper:
- *this->out_ = this->traits_->toupper(ch);
- this->next_ = None;
+ ch = this->traits_->toupper(ch);
break;
- default:
- switch(this->rest_)
- {
- case Lower:
- *this->out_ = this->traits_->tolower(ch);
- break;
-
- case Upper:
- *this->out_ = this->traits_->toupper(ch);
- break;
-
- default:
- *this->out_ = ch;
- }
+ default:;
}
+ *this->out_ = ch;
+ this->next_ = None;
return *this;
}
Modified: branches/bcbboost/boost/xpressive/proto/traits.hpp
==============================================================================
--- branches/bcbboost/boost/xpressive/proto/traits.hpp (original)
+++ branches/bcbboost/boost/xpressive/proto/traits.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -589,7 +589,7 @@
arg(Expr &expr BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
{
return proto::unref(expr.proto_base().arg0);
- };
+ }
/// \overload
///
@@ -598,7 +598,7 @@
arg(Expr const &expr)
{
return proto::unref(expr.proto_base().arg0);
- };
+ }
/// \overload
///
@@ -607,7 +607,7 @@
arg(Expr &expr BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
{
return result_of::arg<Expr, N>::call(expr);
- };
+ }
/// \overload
///
@@ -616,7 +616,7 @@
arg(Expr const &expr)
{
return result_of::arg<Expr, N>::call(expr);
- };
+ }
/// arg_c
///
@@ -625,7 +625,7 @@
arg_c(Expr &expr BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
{
return result_of::arg_c<Expr, N>::call(expr);
- };
+ }
/// \overload
///
@@ -633,7 +633,7 @@
typename result_of::arg_c<Expr, N>::const_reference arg_c(Expr const &expr)
{
return result_of::arg_c<Expr, N>::call(expr);
- };
+ }
}}
Modified: branches/bcbboost/boost/xpressive/regex_algorithms.hpp
==============================================================================
--- branches/bcbboost/boost/xpressive/regex_algorithms.hpp (original)
+++ branches/bcbboost/boost/xpressive/regex_algorithms.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -570,7 +570,7 @@
(
std::basic_string<Char> const &str
, basic_regex<typename std::basic_string<Char>::const_iterator> const &re
- , std::basic_string<Char> const &fmt
+ , std::basic_string<typename mpl::identity<Char>::type> const &fmt
, regex_constants::match_flag_type flags = regex_constants::match_default
)
{
Modified: branches/bcbboost/libs/config/doc/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/config/doc/Jamfile.v2 (original)
+++ branches/bcbboost/libs/config/doc/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -14,6 +14,8 @@
import quickbook ;
+path-constant boost-images : ../../../doc/src/images ;
+
xml config
:
config.qbk
@@ -49,10 +51,12 @@
# Set this one for PDF generation *only*:
# default pnd graphics are awful in PDF form,
# better use SVG's instead:
- #<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
;
+
Modified: branches/bcbboost/libs/config/test/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/config/test/Jamfile.v2 (original)
+++ branches/bcbboost/libs/config/test/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -15,7 +15,7 @@
include $(DOT)/options_v2.jam ;
run config_info.cpp ;
-run math_info.cpp : : : <toolset>borland:<runtime-link>static ;
+run math_info.cpp : : : <toolset>borland:<runtime-link>static <toolset>borland:<link>static ;
run config_test.cpp ;
run limits_test.cpp ../../test/build//boost_test_exec_monitor ;
run abi/abi_test.cpp abi/main.cpp ;
@@ -358,3 +358,4 @@
[ compile-fail no_wchar_t_fail.cpp ] ;
+
Modified: branches/bcbboost/libs/config/test/config_test.cpp
==============================================================================
--- branches/bcbboost/libs/config/test/config_test.cpp (original)
+++ branches/bcbboost/libs/config/test/config_test.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -11,6 +11,7 @@
// one or more macros need to be defined.
// see boost_*.ipp for more details
+
// Do not edit this file, it was generated automatically by
#include <boost/config.hpp>
@@ -1146,3 +1147,4 @@
return error_count;
}
+
Modified: branches/bcbboost/libs/filesystem/test/operations_test.cpp
==============================================================================
--- branches/bcbboost/libs/filesystem/test/operations_test.cpp (original)
+++ branches/bcbboost/libs/filesystem/test/operations_test.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -22,9 +22,7 @@
#include <boost/config.hpp>
#include <boost/test/minimal.hpp>
//#include <boost/concept_check.hpp>
-#include <boost/bind.hpp>
-using boost::bind;
using boost::system::error_code;
using boost::system::system_category;
using boost::system::system_error;
@@ -55,7 +53,7 @@
using ::difftime; using ::time; using ::tm; using ::mktime; using ::system; }
# endif
-#define CHECK_EXCEPTION(b,e) throws_fs_error(b,e,__LINE__)
+#define CHECK_EXCEPTION(Functor,Expect) throws_fs_error(Functor,Expect,__LINE__)
namespace
{
@@ -209,7 +207,47 @@
BOOST_CHECK( exception_thrown );
}
+ void bad_file_size()
+ {
+ fs::file_size( " No way, Jose" );
+ }
+
+ void bad_directory_size()
+ {
+ fs::file_size( fs::current_path() );
+ }
+
+ fs::path bad_create_directory_path;
+ void bad_create_directory()
+ {
+ fs::create_directory( bad_create_directory_path );
+ }
+
+ void bad_equivalent()
+ {
+ fs::equivalent( "no-such-path", "another-not-present-path" );
+ }
+
+ fs::path bad_remove_dir;
+ void bad_remove()
+ {
+ fs::remove( bad_remove_dir );
+ }
+ class renamer
+ {
+ public:
+ renamer( const fs::path & p1, const fs::path & p2 )
+ : from(p1), to(p2) {}
+ void operator()()
+ {
+ fs::rename( from, to );
+ }
+ private:
+ fs::path from;
+ fs::path to;
+ };
+
} // unnamed namespace
// test_main ---------------------------------------------------------------//
@@ -324,7 +362,7 @@
BOOST_CHECK( !fs::exists( dir ) );
// the bound functions should throw, so CHECK_EXCEPTION() should return true
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::file_size), ng ), ENOENT ) );
+ BOOST_CHECK( CHECK_EXCEPTION( bad_file_size, ENOENT ) );
// test path::exception members
try { fs::file_size( ng ); } // will throw
@@ -378,10 +416,9 @@
# endif
if ( platform == "Windows" )
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::file_size), dir ),
- ENOENT ) );
+ BOOST_CHECK( CHECK_EXCEPTION( bad_directory_size, ENOENT ) );
else
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::file_size), dir ), 0 ) );
+ BOOST_CHECK( CHECK_EXCEPTION( bad_directory_size, 0 ) );
BOOST_CHECK( !fs::create_directory( dir ) );
BOOST_CHECK( !fs::is_symlink( dir ) );
@@ -521,8 +558,8 @@
BOOST_CHECK( fs::is_regular( file_ph ) );
BOOST_CHECK( BOOST_FS_IS_EMPTY( file_ph ) );
BOOST_CHECK( fs::file_size( file_ph ) == 0 );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::create_directory),
- file_ph ), EEXIST ) );
+ bad_create_directory_path = file_ph;
+ BOOST_CHECK( CHECK_EXCEPTION( bad_create_directory, EEXIST ) );
stat = fs::status( file_ph );
BOOST_CHECK( fs::status_known( stat ) );
BOOST_CHECK( fs::exists( stat ) );
@@ -542,9 +579,7 @@
verify_file( file_ph, "foobar1" );
// equivalence tests
- fs::path ng2("does_not_exist2");
- BOOST_CHECK( CHECK_EXCEPTION(
- bind( BOOST_BND(fs::equivalent), ng, ng2 ), ENOENT ) );
+ BOOST_CHECK( CHECK_EXCEPTION( bad_equivalent, ENOENT ) );
BOOST_CHECK( fs::equivalent( file_ph, dir / "f1" ) );
BOOST_CHECK( fs::equivalent( dir, d1 / ".." ) );
BOOST_CHECK( !fs::equivalent( file_ph, dir ) );
@@ -640,29 +675,30 @@
// [case 1] make sure can't rename() a non-existent file
BOOST_CHECK( !fs::exists( d1 / "f99" ) );
BOOST_CHECK( !fs::exists( d1 / "f98" ) );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename), d1 / "f99", d1 / "f98" ),
- ENOENT ) );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename), fs::path(""), d1 / "f98" ),
- ENOENT ) );
+ renamer n1a( d1 / "f99", d1 / "f98" );
+ BOOST_CHECK( CHECK_EXCEPTION( n1a, ENOENT ) );
+ renamer n1b( fs::path(""), d1 / "f98" );
+ BOOST_CHECK( CHECK_EXCEPTION( n1b, ENOENT ) );
// [case 2] rename() target.empty()
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename), file_ph, "" ),
- ENOENT ) );
+ renamer n2( file_ph, "" );
+ BOOST_CHECK( CHECK_EXCEPTION( n2, ENOENT ) );
// [case 3] make sure can't rename() to an existent file or directory
BOOST_CHECK( fs::exists( dir / "f1" ) );
BOOST_CHECK( fs::exists( d1 / "f2" ) );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename),
- dir / "f1", d1 / "f2" ), EEXIST ) );
+ renamer n3a( dir / "f1", d1 / "f2" );
+ BOOST_CHECK( CHECK_EXCEPTION( n3a, EEXIST ) );
// several POSIX implementations (cygwin, openBSD) report ENOENT instead of EEXIST,
// so we don't verify error type on the above test.
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename), dir, d1 ), 0 ) );
+ renamer n3b( dir, d1 );
+ BOOST_CHECK( CHECK_EXCEPTION( n3b, 0 ) );
// [case 4A] can't rename() file to a nonexistent parent directory
BOOST_CHECK( !fs::is_directory( dir / "f1" ) );
BOOST_CHECK( !fs::exists( dir / "d3/f3" ) );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename), dir / "f1", dir / "d3/f3" ),
- ENOENT ) );
+ renamer n4a( dir / "f1", dir / "d3/f3" );
+ BOOST_CHECK( CHECK_EXCEPTION( n4a, ENOENT ) );
// [case 4B] rename() file in same directory
BOOST_CHECK( fs::exists( d1 / "f2" ) );
@@ -688,8 +724,8 @@
BOOST_CHECK( fs::exists( d1 ) );
BOOST_CHECK( !fs::exists( dir / "d3/d5" ) );
BOOST_CHECK( !fs::exists( dir / "d3" ) );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::rename), d1, dir / "d3/d5" ),
- ENOENT ) );
+ renamer n5a( d1, dir / "d3/d5" );
+ BOOST_CHECK( CHECK_EXCEPTION( n5a, ENOENT ) );
// [case 5B] rename() on directory
fs::path d3( dir / "d3" );
@@ -738,7 +774,8 @@
BOOST_CHECK( fs::exists( d1 ) );
BOOST_CHECK( fs::is_directory( d1 ) );
BOOST_CHECK( BOOST_FS_IS_EMPTY( d1 ) );
- BOOST_CHECK( CHECK_EXCEPTION( bind( BOOST_BND(fs::remove), dir ), ENOTEMPTY ) );
+ bad_remove_dir = dir;
+ BOOST_CHECK( CHECK_EXCEPTION( bad_remove, ENOTEMPTY ) );
BOOST_CHECK( fs::remove( d1 ) );
BOOST_CHECK( !fs::exists( d1 ) );
Modified: branches/bcbboost/libs/functional/hash/test/hash_float_test.cpp
==============================================================================
--- branches/bcbboost/libs/functional/hash/test/hash_float_test.cpp (original)
+++ branches/bcbboost/libs/functional/hash/test/hash_float_test.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -66,7 +66,7 @@
if(infinity == infinity2)
BOOST_TEST(x1(infinity) == x1(infinity2));
- if(infinity == infinity3);
+ if(infinity == infinity3)
BOOST_TEST(x1(infinity) == x1(infinity3));
if(infinity == infinity4)
BOOST_TEST(x1(infinity) == x1(infinity4));
Modified: branches/bcbboost/libs/math/doc/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/math/doc/Jamfile.v2 (original)
+++ branches/bcbboost/libs/math/doc/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -5,6 +5,9 @@
using quickbook ;
+path-constant boost-images : ../../../doc/src/images ;
+path-constant images_location : ../../../doc/html ;
+
xml math : math.qbk ;
boostbook standalone
:
@@ -12,6 +15,28 @@
:
<xsl:param>nav.layout=none
<xsl:param>navig.graphics=0
+ # PDF Options:
+ # TOC Generation: this is needed for FOP-0.9 and later:
+ #<xsl:param>fop1.extensions=1
+ # Or enable this if you're using XEP:
+ <xsl:param>xep.extensions=1
+ # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
+ <xsl:param>fop.extensions=0
+ # No indent on body text:
+ <xsl:param>body.start.indent=0pt
+ # Margin size:
+ <xsl:param>page.margin.inner=0.5in
+ # Margin size:
+ <xsl:param>page.margin.outer=0.5in
+ # Yes, we want graphics for admonishments:
+ <xsl:param>admon.graphics=1
+ # Set this one for PDF generation *only*:
+ # default pnd graphics are awful in PDF form,
+ # better use SVG's instead:
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
+ <format>pdf:<xsl:param>img.src.path=$(images_location)/
;
+
Modified: branches/bcbboost/libs/program_options/src/cmdline.cpp
==============================================================================
--- branches/bcbboost/libs/program_options/src/cmdline.cpp (original)
+++ branches/bcbboost/libs/program_options/src/cmdline.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -290,8 +290,8 @@
// First check that the option is valid, and get its description.
// TODO: case-sensitivity.
- const option_description* xd =
- m_desc->find_nothrow(opt.string_key, (m_style & allow_guessing));
+ const option_description* xd = m_desc->find_nothrow(opt.string_key,
+ (m_style & allow_guessing) ? true : false);
if (!xd)
{
@@ -470,7 +470,8 @@
((m_style & allow_slash_for_short) && tok[0] == '/')))
{
if (m_desc->find_nothrow(tok.substr(1, tok.find('=')-1),
- m_style & allow_guessing)) {
+ (m_style & allow_guessing) ? true : false))
+ {
args[0].insert(0, "-");
if (args[0][1] == '/')
args[0][1] = '-';
Modified: branches/bcbboost/libs/program_options/src/options_description.cpp
==============================================================================
--- branches/bcbboost/libs/program_options/src/options_description.cpp (original)
+++ branches/bcbboost/libs/program_options/src/options_description.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -408,7 +408,7 @@
{
// is last_space within the second half ot the
// current line
- if (unsigned(distance(last_space, line_end)) <
+ if ((unsigned)distance(last_space, line_end) <
(line_length - indent) / 2)
{
line_end = last_space;
Modified: branches/bcbboost/libs/python/build/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/python/build/Jamfile.v2 (original)
+++ branches/bcbboost/libs/python/build/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -7,8 +7,6 @@
import python ;
-if [ python.configured ] {
-
project boost/python
: source-location ../src
@@ -70,9 +68,3 @@
<link>static:<define>BOOST_PYTHON_STATIC_LIB
<link>shared:<define>BOOST_PYTHON_DYNAMIC_LIB
;
-}
-else
-{
- ECHO "warning: Python location is not configured" ;
- ECHO "warning: the Boost.Python library won't be built" ;
-}
Modified: branches/bcbboost/libs/range/test/string.cpp
==============================================================================
--- branches/bcbboost/libs/range/test/string.cpp (original)
+++ branches/bcbboost/libs/range/test/string.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -33,28 +33,28 @@
inline BOOST_DEDUCED_TYPENAME boost::range_iterator<T>::type
str_begin( T& r )
{
- return boost::begin( as_literal(r) );
+ return boost::begin( boost::as_literal(r) );
}
template< class T >
inline BOOST_DEDUCED_TYPENAME boost::range_iterator<T>::type
str_end( T& r )
{
- return boost::end( as_literal(r) );
+ return boost::end( boost::as_literal(r) );
}
template< class T >
inline BOOST_DEDUCED_TYPENAME boost::range_size<T>::type
str_size( const T& r )
{
- return boost::size( as_literal(r) );
+ return boost::size( boost::as_literal(r) );
}
template< class T >
inline bool
str_empty( T& r )
{
- return boost::empty( as_literal(r) );
+ return boost::empty( boost::as_literal(r) );
}
template< typename Container, typename T >
Modified: branches/bcbboost/libs/regex/doc/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/regex/doc/Jamfile.v2 (original)
+++ branches/bcbboost/libs/regex/doc/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -5,6 +5,8 @@
using quickbook ;
+path-constant boost-images : ../../../doc/src/images ;
+
xml regex : regex.qbk ;
boostbook standalone
:
@@ -48,13 +50,8 @@
# Set this one for PDF generation *only*:
# default pnd graphics are awful in PDF form,
# better use SVG's instead:
- #<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
;
-
-
-
-
-
-
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.background_information"></a>Background Information</h2></div></div></div>
+<a name="boost_regex.background_information"></a>Background Information
+</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> Headers</span></dt>
<dt><span class="section"> Localization</span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.background_information.acknowledgements"></a><a href="acknowledgements.html" title="Acknowledgements">
- Acknowledgements</a></h3></div></div></div>
+ Acknowledgements</a>
+</h3></div></div></div>
<p>
The author can be contacted at john - at - johnmaddock.co.uk; the home page
for this library is at www.boost.org.
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/examples.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/examples.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/examples.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,9 +25,10 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.background_information.examples"></a><a href="examples.html" title="Test and Example Programs"> Test and
- Example Programs</a></h3></div></div></div>
+ Example Programs</a>
+</h3></div></div></div>
<a name="boost_regex.background_information.examples.test_programs"></a><h5>
-<a name="id657635"></a>
+<a name="id647645"></a>
<a href="examples.html#boost_regex.background_information.examples.test_programs">Test
Programs</a>
</h5>
@@ -97,7 +98,7 @@
Files: captures_test.cpp.
</p>
<a name="boost_regex.background_information.examples.example_programs"></a><h5>
-<a name="id657851"></a>
+<a name="id647853"></a>
<a href="examples.html#boost_regex.background_information.examples.example_programs">Example
programs</a>
</h5>
@@ -123,7 +124,7 @@
Files: regex_timer.cpp.
</p>
<a name="boost_regex.background_information.examples.code_snippets"></a><h5>
-<a name="id657934"></a>
+<a name="id647934"></a>
<a href="examples.html#boost_regex.background_information.examples.code_snippets">Code
snippets</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/faq.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/faq.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/faq.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.background_information.faq"></a> FAQ</h3></div></div></div>
+<a name="boost_regex.background_information.faq"></a> FAQ
+</h3></div></div></div>
<p>
<span class="bold"><strong>Q.</strong></span> I can't get regex++ to work with escape
characters, what's going on?
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/futher.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/futher.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/futher.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.background_information.futher"></a><a href="futher.html" title="References and Further Information"> References
- and Further Information</a></h3></div></div></div>
+ and Further Information</a>
+</h3></div></div></div>
<p>
Short tutorials on regular expressions can be <a href="http://etext.lib.virginia.edu/helpsheets/regex.html" target="_top">found
here</a> and here.
@@ -36,7 +37,7 @@
</p>
<p>
Boost.Regex forms the basis for the regular expression chapter of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
- report on C++ Library Extensions</a>.
+ Report on C++ Library Extensions</a>.
</p>
<p>
The <a href="http://www.opengroup.org/onlinepubs/7908799/toc.htm" target="_top">Open
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/headers.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/headers.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/headers.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.background_information.headers"></a> Headers</h3></div></div></div>
+<a name="boost_regex.background_information.headers"></a> Headers
+</h3></div></div></div>
<p>
There are two main headers used by this library: <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
provides full access to the main template library, while <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/history.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/history.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/history.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -23,9 +23,10 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.background_information.history"></a> History</h3></div></div></div>
+<a name="boost_regex.background_information.history"></a> History
+</h3></div></div></div>
<a name="boost_regex.background_information.history.boost_1_34"></a><h5>
-<a name="id660132"></a>
+<a name="id650103"></a>
<a href="history.html#boost_regex.background_information.history.boost_1_34">Boost
1.34</a>
</h5>
@@ -48,7 +49,7 @@
</li>
</ul></div>
<a name="boost_regex.background_information.history.boost_1_33_1"></a><h5>
-<a name="id660185"></a>
+<a name="id650154"></a>
<a href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost
1.33.1</a>
</h5>
@@ -118,7 +119,7 @@
</li>
</ul></div>
<a name="boost_regex.background_information.history.boost_1_33_0"></a><h5>
-<a name="id660316"></a>
+<a name="id650284"></a>
<a href="history.html#boost_regex.background_information.history.boost_1_33_0">Boost
1.33.0</a>
</h5>
@@ -173,7 +174,7 @@
</li>
</ul></div>
<a name="boost_regex.background_information.history.boost_1_32_1"></a><h5>
-<a name="id660424"></a>
+<a name="id650390"></a>
<a href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost
1.32.1</a>
</h5>
@@ -181,7 +182,7 @@
Fixed bug in partial matches of bounded repeats of '.'.
</li></ul></div>
<a name="boost_regex.background_information.history.boost_1_31_0"></a><h5>
-<a name="id660459"></a>
+<a name="id650424"></a>
<a href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost
1.31.0</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/locale.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/locale.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/locale.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.background_information.locale"></a> Localization</h3></div></div></div>
+<a name="boost_regex.background_information.locale"></a> Localization
+</h3></div></div></div>
<p>
Boost.Regex provides extensive support for run-time localization, the localization
model used can be split into two parts: front-end and back-end.
@@ -57,7 +58,7 @@
There are three separate localization mechanisms supported by Boost.Regex:
</p>
<a name="boost_regex.background_information.locale.win32_localization_model_"></a><h5>
-<a name="id654095"></a>
+<a name="id644136"></a>
<a href="locale.html#boost_regex.background_information.locale.win32_localization_model_">Win32
localization model.</a>
</h5>
@@ -91,7 +92,7 @@
are treated as "unknown" graphic characters.
</p>
<a name="boost_regex.background_information.locale.c_localization_model_"></a><h5>
-<a name="id654344"></a>
+<a name="id644382"></a>
<a href="locale.html#boost_regex.background_information.locale.c_localization_model_">C
localization model.</a>
</h5>
@@ -115,7 +116,7 @@
libraries including version 1 of this library.
</p>
<a name="boost_regex.background_information.locale.c___localization_model_"></a><h5>
-<a name="id654459"></a>
+<a name="id644495"></a>
<a href="locale.html#boost_regex.background_information.locale.c___localization_model_">C++
localization model.</a>
</h5>
@@ -154,7 +155,7 @@
in your code. The best way to ensure this is to add the #define to <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
</p>
<a name="boost_regex.background_information.locale.providing_a_message_catalogue"></a><h5>
-<a name="id654924"></a>
+<a name="id644957"></a>
<a href="locale.html#boost_regex.background_information.locale.providing_a_message_catalogue">Providing
a message catalogue</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/performance.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/performance.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/performance.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.background_information.performance"></a> Performance</h3></div></div></div>
+<a name="boost_regex.background_information.performance"></a> Performance
+</h3></div></div></div>
<p>
The performance of Boost.Regex in both recursive and non-recursive modes
should be broadly comparable to other regular expression libraries: recursive
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/redist.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/redist.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/redist.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.background_information.redist"></a> Redistributables</h3></div></div></div>
+<a name="boost_regex.background_information.redist"></a> Redistributables
+</h3></div></div></div>
<p>
If you are using Microsoft or Borland C++ and link to a dll version of the
run time library, then you can choose to also link to a dll version of Boost.Regex
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/standards.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/standards.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/standards.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,17 +25,18 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.background_information.standards"></a><a href="standards.html" title="Standards Conformance"> Standards
- Conformance</a></h3></div></div></div>
+ Conformance</a>
+</h3></div></div></div>
<a name="boost_regex.background_information.standards.c__"></a><h5>
-<a name="id658934"></a>
+<a name="id648931"></a>
<a href="standards.html#boost_regex.background_information.standards.c__">C++</a>
</h5>
<p>
Boost.Regex is intended to conform to the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
- report on C++ Library Extensions</a>.
+ Report on C++ Library Extensions</a>.
</p>
<a name="boost_regex.background_information.standards.ecmascript___javascript"></a><h5>
-<a name="id658974"></a>
+<a name="id648969"></a>
<a href="standards.html#boost_regex.background_information.standards.ecmascript___javascript">ECMAScript
/ JavaScript</a>
</h5>
@@ -48,7 +49,7 @@
rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.
</p>
<a name="boost_regex.background_information.standards.perl"></a><h5>
-<a name="id659016"></a>
+<a name="id649008"></a>
<a href="standards.html#boost_regex.background_information.standards.perl">Perl</a>
</h5>
<p>
@@ -61,7 +62,7 @@
(??{code}) Not implementable in a compiled strongly typed language.
</p>
<a name="boost_regex.background_information.standards.posix"></a><h5>
-<a name="id659056"></a>
+<a name="id649047"></a>
<a href="standards.html#boost_regex.background_information.standards.posix">POSIX</a>
</h5>
<p>
@@ -81,7 +82,7 @@
a custom traits class.
</p>
<a name="boost_regex.background_information.standards.unicode"></a><h5>
-<a name="id659101"></a>
+<a name="id649094"></a>
<a href="standards.html#boost_regex.background_information.standards.unicode">Unicode</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/thread_safety.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/thread_safety.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/background_information/thread_safety.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.background_information.thread_safety"></a><a href="thread_safety.html" title="Thread Safety"> Thread
- Safety</a></h3></div></div></div>
+ Safety</a>
+</h3></div></div></div>
<p>
The Boost.Regex library is thread safe when Boost is: you can verify that
Boost is in thread safe mode by checking to see if <code class="computeroutput"><span class="identifier">BOOST_HAS_THREADS</span></code>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/captures.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/captures.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/captures.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_regex.captures"></a><a href="captures.html" title="Understanding Marked Sub-Expressions and Captures"> Understanding Marked Sub-Expressions
- and Captures</a></h2></div></div></div>
+ and Captures</a>
+</h2></div></div></div>
<p>
Captures are the iterator ranges that are "captured" by marked sub-expressions
as a regular expression gets matched. Each marked sub-expression can result
@@ -34,7 +35,7 @@
accessed.
</p>
<a name="boost_regex.captures.marked_sub_expressions"></a><h5>
-<a name="id502375"></a>
+<a name="id492811"></a>
<a href="captures.html#boost_regex.captures.marked_sub_expressions">Marked sub-expressions</a>
</h5>
<p>
@@ -218,7 +219,7 @@
output stream.
</p>
<a name="boost_regex.captures.unmatched_sub_expressions"></a><h5>
-<a name="id502992"></a>
+<a name="id493435"></a>
<a href="captures.html#boost_regex.captures.unmatched_sub_expressions">Unmatched Sub-Expressions</a>
</h5>
<p>
@@ -231,7 +232,7 @@
you can determine which sub-expressions matched by accessing the <code class="computeroutput"><span class="identifier">sub_match</span><span class="special">::</span><span class="identifier">matched</span></code> data member.
</p>
<a name="boost_regex.captures.repeated_captures"></a><h5>
-<a name="id503058"></a>
+<a name="id493497"></a>
<a href="captures.html#boost_regex.captures.repeated_captures">Repeated Captures</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/configuration.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/configuration.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/configuration.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.configuration"></a> Configuration</h2></div></div></div>
+<a name="boost_regex.configuration"></a> Configuration
+</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> Compiler Setup</span></dt>
<dt><span class="section"><a href="configuration/locale.html"> Locale and traits
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/algorithm.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/algorithm.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/algorithm.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.configuration.algorithm"></a> Algorithm Selection</h3></div></div></div>
+<a name="boost_regex.configuration.algorithm"></a> Algorithm Selection
+</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/compiler.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/compiler.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/compiler.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.configuration.compiler"></a> Compiler Setup</h3></div></div></div>
+<a name="boost_regex.configuration.compiler"></a> Compiler Setup
+</h3></div></div></div>
<p>
You shouldn't need to do anything special to configure Boost.Regex for use
with your compiler - the <a href="../../../../../config/index.html" target="_top">Boost.Config
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/linkage.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/linkage.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/linkage.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.configuration.linkage"></a> Linkage Options</h3></div></div></div>
+<a name="boost_regex.configuration.linkage"></a> Linkage Options
+</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/locale.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/locale.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/locale.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.configuration.locale"></a><a href="locale.html" title="Locale and traits class selection"> Locale and traits
- class selection</a></h3></div></div></div>
+ class selection</a>
+</h3></div></div></div>
<p>
The following macros (see user.hpp)
control how Boost.Regex interacts with the user's locale:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/tuning.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/tuning.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/configuration/tuning.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.configuration.tuning"></a> Algorithm Tuning</h3></div></div></div>
+<a name="boost_regex.configuration.tuning"></a> Algorithm Tuning
+</h3></div></div></div>
<p>
The following option applies only if BOOST_REGEX_RECURSIVE is set.
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/format.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/format.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/format.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.format"></a> Search and Replace Format String Syntax</h2></div></div></div>
+<a name="boost_regex.format"></a> Search and Replace Format String Syntax
+</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> Sed Format String Syntax</span></dt>
<dt><span class="section"> Perl Format String Syntax</span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,13 +25,14 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.format.boost_format_syntax"></a><a href="boost_format_syntax.html" title="Boost-Extended Format String Syntax"> Boost-Extended
- Format String Syntax</a></h3></div></div></div>
+ Format String Syntax</a>
+</h3></div></div></div>
<p>
Boost-Extended format strings treat all characters as literals except for
'$', '\', '(', ')', '?', and ':'.
</p>
<a name="boost_regex.format.boost_format_syntax.grouping"></a><h5>
-<a name="id525206"></a>
+<a name="id515451"></a>
<a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.grouping">Grouping</a>
</h5>
<p>
@@ -39,7 +40,7 @@
you want a to output literal parenthesis.
</p>
<a name="boost_regex.format.boost_format_syntax.conditionals"></a><h5>
-<a name="id525237"></a>
+<a name="id515481"></a>
<a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.conditionals">Conditionals</a>
</h5>
<p>
@@ -65,7 +66,7 @@
with "bar" otherwise.
</p>
<a name="boost_regex.format.boost_format_syntax.placeholder_sequences"></a><h5>
-<a name="id525296"></a>
+<a name="id515539"></a>
<a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.placeholder_sequences">Placeholder
Sequences</a>
</h5>
@@ -160,7 +161,7 @@
as a literal.
</p>
<a name="boost_regex.format.boost_format_syntax.escape_sequences"></a><h5>
-<a name="id525470"></a>
+<a name="id515710"></a>
<a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.escape_sequences">Escape
Sequences</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/format/perl_format.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/format/perl_format.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/format/perl_format.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.format.perl_format"></a> Perl Format String Syntax</h3></div></div></div>
+<a name="boost_regex.format.perl_format"></a> Perl Format String Syntax
+</h3></div></div></div>
<p>
Perl-style format strings treat all characters as literals except '$' and
'\' which start placeholder and escape sequences respectively.
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/format/sed_format.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/format/sed_format.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/format/sed_format.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.format.sed_format"></a> Sed Format String Syntax</h3></div></div></div>
+<a name="boost_regex.format.sed_format"></a> Sed Format String Syntax
+</h3></div></div></div>
<p>
Sed-style format strings treat all characters as literals except:
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/install.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/install.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/install.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.install"></a> Building and Installing the Library</h2></div></div></div>
+<a name="boost_regex.install"></a> Building and Installing the Library
+</h2></div></div></div>
<p>
When you extract the library from its zip file, you must preserve its internal
directory structure (for example by using the -d option when extracting). If
@@ -48,7 +49,7 @@
file before you can use it, instructions for specific platforms are as follows:
</p>
<a name="boost_regex.install.building_with_bjam"></a><h5>
-<a name="id428518"></a>
+<a name="id440409"></a>
<a href="install.html#boost_regex.install.building_with_bjam">Building with bjam</a>
</h5>
<p>
@@ -57,7 +58,7 @@
started guide</a> for more information.
</p>
<a name="boost_regex.install.building_with_unicode_and_icu_support"></a><h5>
-<a name="id428552"></a>
+<a name="id435769"></a>
<a href="install.html#boost_regex.install.building_with_unicode_and_icu_support">Building
With Unicode and ICU Support</a>
</h5>
@@ -95,11 +96,11 @@
ICU you are using is binary compatible with the toolset you use to build Boost.
</p>
<a name="boost_regex.install.building_via_makefiles"></a><h5>
-<a name="id428749"></a>
+<a name="id435961"></a>
<a href="install.html#boost_regex.install.building_via_makefiles">Building via makefiles</a>
</h5>
<a name="boost_regex.install.borland_c___builder_"></a><h6>
-<a name="id428773"></a>
+<a name="id435984"></a>
<a href="install.html#boost_regex.install.borland_c___builder_">Borland C++ Builder:</a>
</h6>
<div class="itemizedlist"><ul type="disc">
@@ -165,7 +166,7 @@
a lot in compile times!
</p>
<a name="boost_regex.install.microsoft_visual_c___6__7__7_1_and_8"></a><h5>
-<a name="id499616"></a>
+<a name="id490033"></a>
<a href="install.html#boost_regex.install.microsoft_visual_c___6__7__7_1_and_8">Microsoft
Visual C++ 6, 7, 7.1 and 8</a>
</h5>
@@ -252,7 +253,7 @@
</li>
</ul></div>
<a name="boost_regex.install.gcc_2_95_and_later_"></a><h6>
-<a name="id499932"></a>
+<a name="id490345"></a>
<a href="install.html#boost_regex.install.gcc_2_95_and_later_">GCC(2.95 and later)</a>
</h6>
<p>
@@ -301,7 +302,7 @@
see the config library documentation.
</p>
<a name="boost_regex.install.sun_workshop_6_1"></a><h6>
-<a name="id500129"></a>
+<a name="id490546"></a>
<a href="install.html#boost_regex.install.sun_workshop_6_1">Sun Workshop 6.1</a>
</h6>
<p>
@@ -346,7 +347,7 @@
will build v9 variants of the regex library named libboost_regex_v9.a etc.
</p>
<a name="boost_regex.install.makefiles_for_other_compilers"></a><h6>
-<a name="id500349"></a>
+<a name="id490768"></a>
<a href="install.html#boost_regex.install.makefiles_for_other_compilers">Makefiles
for Other compilers</a>
</h6>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/introduction_and_overview.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/introduction_and_overview.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/introduction_and_overview.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_regex.introduction_and_overview"></a><a href="introduction_and_overview.html" title="Introduction and Overview">Introduction and
- Overview</a></h2></div></div></div>
+ Overview</a>
+</h2></div></div></div>
<p>
Regular expressions are a form of pattern-matching that are often used in text
processing; many users will be familiar with the Unix utilities grep, sed and
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/partial_matches.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/partial_matches.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/partial_matches.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.partial_matches"></a> Partial Matches</h2></div></div></div>
+<a name="boost_regex.partial_matches"></a> Partial Matches
+</h2></div></div></div>
<p>
The match_flag_type
<code class="computeroutput"><span class="identifier">match_partial</span></code> can be passed
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.ref"></a> Reference</h2></div></div></div>
+<a name="boost_regex.ref"></a> Reference
+</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> basic_regex</span></dt>
<dt><span class="section"> match_results</span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/bad_expression.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/bad_expression.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/bad_expression.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,9 +24,10 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.bad_expression"></a> bad_expression</h3></div></div></div>
+<a name="boost_regex.ref.bad_expression"></a> bad_expression
+</h3></div></div></div>
<a name="boost_regex.ref.bad_expression.synopsis"></a><h5>
-<a name="id606370"></a>
+<a name="id596527"></a>
<a href="bad_expression.html#boost_regex.ref.bad_expression.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -55,7 +56,7 @@
<span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.bad_expression.description"></a><h5>
-<a name="id606877"></a>
+<a name="id597032"></a>
<a href="bad_expression.html#boost_regex.ref.bad_expression.description">Description</a>
</h5>
<pre class="programlisting">
@@ -88,7 +89,7 @@
and <code class="computeroutput"><span class="identifier">bad_expression</span></code> for errors,
these have been replaced by the single class <code class="computeroutput"><span class="identifier">regex_error</span></code>
to keep the library in synchronization with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
- report on C++ Library Extensions</a>.
+ Report on C++ Library Extensions</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/basic_regex.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/basic_regex.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/basic_regex.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,9 +24,10 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.basic_regex"></a> basic_regex</h3></div></div></div>
+<a name="boost_regex.ref.basic_regex"></a> basic_regex
+</h3></div></div></div>
<a name="boost_regex.ref.basic_regex.synopsis"></a><h5>
-<a name="id525886"></a>
+<a name="id516124"></a>
<a href="basic_regex.html#boost_regex.ref.basic_regex.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -245,7 +246,7 @@
<span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.basic_regex.description"></a><h5>
-<a name="id531834"></a>
+<a name="id522059"></a>
<a href="basic_regex.html#boost_regex.ref.basic_regex.description">Description</a>
</h5>
<p>
@@ -330,7 +331,7 @@
<code class="computeroutput"><span class="identifier">basic_regex</span></code>.
</p>
<div class="table">
-<a name="id533774"></a><p class="title"><b>Table 1. basic_regex default construction postconditions</b></p>
+<a name="id523997"></a><p class="title"><b>Table 1. basic_regex default construction postconditions</b></p>
<div class="table-contents"><table class="table" summary="basic_regex default construction postconditions">
<colgroup>
<col>
@@ -411,7 +412,7 @@
flags</a> specified in <span class="emphasis"><em>f</em></span>.
</p>
<div class="table">
-<a name="id534175"></a><p class="title"><b>Table 2. Postconditions for basic_regex construction</b></p>
+<a name="id524397"></a><p class="title"><b>Table 2. Postconditions for basic_regex construction</b></p>
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
<colgroup>
<col>
@@ -517,7 +518,7 @@
specified in <span class="emphasis"><em>f</em></span>.
</p>
<div class="table">
-<a name="id534722"></a><p class="title"><b>Table 3. Postconditions for basic_regex construction</b></p>
+<a name="id524943"></a><p class="title"><b>Table 3. Postconditions for basic_regex construction</b></p>
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
<colgroup>
<col>
@@ -622,7 +623,7 @@
according the option flags specified in <span class="emphasis"><em>f</em></span>.
</p>
<div class="table">
-<a name="id535258"></a><p class="title"><b>Table 4. Postconditions for basic_regex construction</b></p>
+<a name="id525478"></a><p class="title"><b>Table 4. Postconditions for basic_regex construction</b></p>
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
<colgroup>
<col>
@@ -735,7 +736,7 @@
flags</a> specified in <span class="emphasis"><em>f</em></span>.
</p>
<div class="table">
-<a name="id535896"></a><p class="title"><b>Table 5. Postconditions for basic_regex construction</b></p>
+<a name="id526115"></a><p class="title"><b>Table 5. Postconditions for basic_regex construction</b></p>
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
<colgroup>
<col>
@@ -838,7 +839,7 @@
flags</a> specified in <span class="emphasis"><em>f</em></span>.
</p>
<div class="table">
-<a name="id536373"></a><p class="title"><b>Table 6. Postconditions for basic_regex construction</b></p>
+<a name="id526591"></a><p class="title"><b>Table 6. Postconditions for basic_regex construction</b></p>
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
<colgroup>
<col>
@@ -1049,7 +1050,7 @@
in <span class="emphasis"><em>f</em></span>.
</p>
<div class="table">
-<a name="id538250"></a><p class="title"><b>Table 7. Postconditions for basic_regex::assign</b></p>
+<a name="id528460"></a><p class="title"><b>Table 7. Postconditions for basic_regex::assign</b></p>
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex::assign">
<colgroup>
<col>
@@ -1233,20 +1234,13 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- Comparisons between basic_regex
objects are provided
- on an experimental basis: please note that these are not present in the
- <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
- report on C++ Library Extensions</a>, so use with care if you are
- writing code that may need to be ported to other implementations of
- basic_regex
.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ Comparisons between basic_regex
objects are provided
+ on an experimental basis: please note that these are not present in the
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+ Report on C++ Library Extensions</a>, so use with care if you are writing
+ code that may need to be ported to other implementations of basic_regex
.
+ </p></td></tr>
</table></div>
<a name="boost_regex.basic_regex.op_eq"></a><p>
</p>
@@ -1319,16 +1313,10 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- The basic_regex stream inserter is provided on an experimental basis,
- and outputs the textual representation of the expression to the stream.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ The basic_regex stream inserter is provided on an experimental basis, and
+ outputs the textual representation of the expression to the stream.
+ </p></td></tr>
</table></div>
<a name="boost_regex.basic_regex.op_stream"></a><p>
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.concepts"></a> Concepts</h3></div></div></div>
+<a name="boost_regex.ref.concepts"></a> Concepts
+</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> charT Requirements</span></dt>
<dt><span class="section"><a href="concepts/traits_concept.html"> Traits Class
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_regex.ref.concepts.charT_concept"></a> charT Requirements</h4></div></div></div>
+<a name="boost_regex.ref.concepts.charT_concept"></a> charT Requirements
+</h4></div></div></div>
<p>
Type <code class="computeroutput"><span class="identifier">charT</span></code> used a template
argument to class template basic_regex
, must have a trivial
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.concepts.iterator_concepts"></a><a href="iterator_concepts.html" title="Iterator Rrequirements"> Iterator
- Rrequirements</a></h4></div></div></div>
+ Rrequirements</a>
+</h4></div></div></div>
<p>
The regular expression algorithms (and iterators) take all require a Bidirectional-Iterator.
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.concepts.traits_concept"></a><a href="traits_concept.html" title="Traits Class Requirements"> Traits Class
- Requirements</a></h4></div></div></div>
+ Requirements</a>
+</h4></div></div></div>
<p>
There are two sets of requirements for the <code class="computeroutput"><span class="identifier">traits</span></code>
template argument to basic_regex
: a mininal interface
@@ -33,7 +34,7 @@
Boost-specific enhanced interface.
</p>
<a name="boost_regex.ref.concepts.traits_concept.minimal_requirements_"></a><h5>
-<a name="id633145"></a>
+<a name="id623213"></a>
<a href="traits_concept.html#boost_regex.ref.concepts.traits_concept.minimal_requirements_">Minimal
requirements.</a>
</h5>
@@ -400,7 +401,7 @@
</tbody>
</table></div>
<a name="boost_regex.ref.concepts.traits_concept.additional_optional_requirements"></a><h5>
-<a name="id633988"></a>
+<a name="id624046"></a>
<a href="traits_concept.html#boost_regex.ref.concepts.traits_concept.additional_optional_requirements">Additional
Optional Requirements</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.deprecated_interfaces"></a>Deprecated Interfaces</h3></div></div></div>
+<a name="boost_regex.ref.deprecated_interfaces"></a>Deprecated Interfaces
+</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="deprecated_interfaces/regex_format.html">
regex_format (Deprecated)</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.old_regex"></a><a href="old_regex.html" title="High Level Class RegEx (Deprecated)"> High
- Level Class RegEx (Deprecated)</a></h4></div></div></div>
+ Level Class RegEx (Deprecated)</a>
+</h4></div></div></div>
<p>
The high level wrapper class RegEx is now deprecated and does not form
part of the regular expression standardization proposal. This type still
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.regex_format"></a><a href="regex_format.html" title="regex_format (Deprecated)">
- regex_format (Deprecated)</a></h4></div></div></div>
+ regex_format (Deprecated)</a>
+</h4></div></div></div>
<p>
The algorithm <code class="computeroutput"><span class="identifier">regex_format</span></code>
is deprecated; new code should use match_results<>::format
instead. Existing code
@@ -33,7 +34,7 @@
previous version of Boost.Regex and will not be further updated:
</p>
<a name="boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format"></a><h5>
-<a name="id634739"></a>
+<a name="id624790"></a>
<a href="regex_format.html#boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format">Algorithm
regex_format</a>
</h5>
@@ -67,16 +68,10 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- This version may not be available, or may be available in a more limited
- form, depending upon your compilers capabilities
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ This version may not be available, or may be available in a more limited
+ form, depending upon your compilers capabilities
+ </p></td></tr>
</table></div>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.regex_grep"></a><a href="regex_grep.html" title="regex_grep (Deprecated)">
- regex_grep (Deprecated)</a></h4></div></div></div>
+ regex_grep (Deprecated)</a>
+</h4></div></div></div>
<p>
The algorithm <code class="computeroutput"><span class="identifier">regex_grep</span></code>
is deprecated in favor of regex_iterator
which provides
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.regex_split"></a><a href="regex_split.html" title="regex_split (deprecated)">
- regex_split (deprecated)</a></h4></div></div></div>
+ regex_split (deprecated)</a>
+</h4></div></div></div>
<p>
The algorithm regex_split
has been deprecated
in favor of the iterator regex_token_iterator
which has
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/error_type.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/error_type.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/error_type.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,9 +24,10 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.error_type"></a> error_type</h3></div></div></div>
+<a name="boost_regex.ref.error_type"></a> error_type
+</h3></div></div></div>
<a name="boost_regex.ref.error_type.synopsis"></a><h5>
-<a name="id612401"></a>
+<a name="id602525"></a>
<a href="error_type.html#boost_regex.ref.error_type.synopsis">Synopsis</a>
</h5>
<p>
@@ -57,7 +58,7 @@
</span><span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.error_type.description"></a><h5>
-<a name="id612967"></a>
+<a name="id603090"></a>
<a href="error_type.html#boost_regex.ref.error_type.description">Description</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_flag_type.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_flag_type.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_flag_type.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.match_flag_type"></a> match_flag_type</h3></div></div></div>
+<a name="boost_regex.ref.match_flag_type"></a> match_flag_type
+</h3></div></div></div>
<p>
The type <code class="computeroutput"><span class="identifier">match_flag_type</span></code>
is an implementation specific bitmask type (see C++ std 17.3.2.1.2) that
@@ -69,7 +70,7 @@
</span><span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.match_flag_type.description"></a><h5>
-<a name="id611631"></a>
+<a name="id601756"></a>
<a href="match_flag_type.html#boost_regex.ref.match_flag_type.description">Description</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_results.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_results.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/match_results.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,9 +24,10 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.match_results"></a> match_results</h3></div></div></div>
+<a name="boost_regex.ref.match_results"></a> match_results
+</h3></div></div></div>
<a name="boost_regex.ref.match_results.synopsis"></a><h5>
-<a name="id541678"></a>
+<a name="id531867"></a>
<a href="match_results.html#boost_regex.ref.match_results.synopsis">Synopsis</a>
</h5>
<pre class="programlisting">
@@ -143,7 +144,7 @@
<span class="identifier">match_results</span><span class="special"><</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">>&</span> <span class="identifier">m2</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.match_results.description"></a><h5>
-<a name="id544593"></a>
+<a name="id534910"></a>
<a href="match_results.html#boost_regex.ref.match_results.description">Description</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.non_std_strings"></a><a href="non_std_strings.html" title="Interfacing With Non-Standard String Types"> Interfacing With Non-Standard
- String Types</a></h3></div></div></div>
+ String Types</a>
+</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="non_std_strings/icu.html"> Working With
Unicode and ICU String Types</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.non_std_strings.icu"></a><a href="icu.html" title="Working With Unicode and ICU String Types"> Working With
- Unicode and ICU String Types</a></h4></div></div></div>
+ Unicode and ICU String Types</a>
+</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="icu/intro.html"> Introduction
to using Regex with ICU</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.intro"></a><a href="intro.html" title="Introduction to using Regex with ICU"> Introduction
- to using Regex with ICU</a></h5></div></div></div>
+ to using Regex with ICU</a>
+</h5></div></div></div>
<p>
The header:
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo"></a><a href="unicode_algo.html" title="Unicode Regular Expression Algorithms">
- Unicode Regular Expression Algorithms</a></h5></div></div></div>
+ Unicode Regular Expression Algorithms</a>
+</h5></div></div></div>
<p>
The regular expression algorithms regex_match
, regex_search
and regex_replace
all expect that
the character sequence upon which they operate, is encoded in the same
@@ -42,7 +43,7 @@
on to the "real" algorithm.
</p>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match"></a><h5>
-<a name="id615442"></a>
+<a name="id605568"></a>
<a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match">u32regex_match</a>
</h5>
<p>
@@ -90,7 +91,7 @@
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search"></a><h5>
-<a name="id616166"></a>
+<a name="id606290"></a>
<a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search">u32regex_search</a>
</h5>
<p>
@@ -130,7 +131,7 @@
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h5>
-<a name="id616762"></a>
+<a name="id606884"></a>
<a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace">u32regex_replace</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,9 +25,10 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter"></a><a href="unicode_iter.html" title="Unicode Aware Regex Iterators">
- Unicode Aware Regex Iterators</a></h5></div></div></div>
+ Unicode Aware Regex Iterators</a>
+</h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator"></a><h5>
-<a name="id617228"></a>
+<a name="id607345"></a>
<a href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator">u32regex_iterator</a>
</h5>
<p>
@@ -128,7 +129,7 @@
Provided of course that the input is encoded as UTF-8.
</p>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator"></a><h5>
-<a name="id618980"></a>
+<a name="id609095"></a>
<a href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator">u32regex_token_iterator</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.unicode_types"></a><a href="unicode_types.html" title="Unicode regular expression types">
- Unicode regular expression types</a></h5></div></div></div>
+ Unicode regular expression types</a>
+</h5></div></div></div>
<p>
Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> provides a regular expression traits
class that handles UTF-32 characters:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings"></a><a href="mfc_strings.html" title="Using Boost Regex With MFC Strings"> Using
- Boost Regex With MFC Strings</a></h4></div></div></div>
+ Boost Regex With MFC Strings</a>
+</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="mfc_strings/mfc_intro.html">
Introduction to Boost.Regex and MFC Strings</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo"></a><a href="mfc_algo.html" title="Overloaded Algorithms For MFC String Types">
- Overloaded Algorithms For MFC String Types</a></h5></div></div></div>
+ Overloaded Algorithms For MFC String Types</a>
+</h5></div></div></div>
<p>
For each regular expression algorithm that's overloaded for a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></code> argument, there is also
one overloaded for the MFC/ATL string types. These algorithm signatures
@@ -33,7 +34,7 @@
here they are anyway:
</p>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match"></a><h5>
-<a name="id624157"></a>
+<a name="id614261"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match">regex_match</a>
</h5>
<p>
@@ -83,7 +84,7 @@
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_"></a><h5>
-<a name="id625074"></a>
+<a name="id615176"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_">regex_match
(second overload)</a>
</h5>
@@ -113,7 +114,7 @@
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search"></a><h5>
-<a name="id625670"></a>
+<a name="id615769"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search">regex_search</a>
</h5>
<p>
@@ -154,7 +155,7 @@
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_"></a><h5>
-<a name="id626413"></a>
+<a name="id616509"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_">regex_search
(second overload)</a>
</h5>
@@ -170,7 +171,7 @@
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></code>
</p>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace"></a><h5>
-<a name="id626820"></a>
+<a name="id616914"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace">regex_replace</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_intro"></a><a href="mfc_intro.html" title="Introduction to Boost.Regex and MFC Strings">
- Introduction to Boost.Regex and MFC Strings</a></h5></div></div></div>
+ Introduction to Boost.Regex and MFC Strings</a>
+</h5></div></div></div>
<p>
The header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">mfc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> provides Boost.Regex support for
MFC string types: note that this support requires Visual Studio .NET
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,13 +25,14 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter"></a><a href="mfc_iter.html" title="Iterating Over the Matches Within An MFC String">
- Iterating Over the Matches Within An MFC String</a></h5></div></div></div>
+ Iterating Over the Matches Within An MFC String</a>
+</h5></div></div></div>
<p>
The following helper functions are provided to ease the conversion from
an MFC/ATL string to a regex_iterator
or regex_token_iterator
:
</p>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper"></a><h5>
-<a name="id627908"></a>
+<a name="id617998"></a>
<a href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper">regex_iterator
creation helper</a>
</h5>
@@ -69,7 +70,7 @@
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers"></a><h5>
-<a name="id628662"></a>
+<a name="id618750"></a>
<a href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers">regex_token_iterator
creation helpers</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_regex_create"></a><a href="mfc_regex_create.html" title="Regular Expression Creation From an MFC String">
- Regular Expression Creation From an MFC String</a></h5></div></div></div>
+ Regular Expression Creation From an MFC String</a>
+</h5></div></div></div>
<p>
The following helper function is available to assist in the creation
of a regular expression from an MFC/ATL string type:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_regex_types"></a><a href="mfc_regex_types.html" title="Regex Types Used With MFC Strings">
- Regex Types Used With MFC Strings</a></h5></div></div></div>
+ Regex Types Used With MFC Strings</a>
+</h5></div></div></div>
<p>
The following typedefs are provided for the convenience of those working
with TCHAR's:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/posix.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/posix.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/posix.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,26 +24,20 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.posix"></a> POSIX Compatible C API's</h3></div></div></div>
+<a name="boost_regex.ref.posix"></a> POSIX Compatible C API's
+</h3></div></div></div>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- this is an abridged reference to the POSIX API functions, these are provided
- for compatibility with other libraries, rather than as an API to be used
- in new code (unless you need access from a language other than C++).
- This version of these functions should also happily coexist with other
- versions, as the names used are macros that expand to the actual function
- names.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ this is an abridged reference to the POSIX API functions, these are provided
+ for compatibility with other libraries, rather than as an API to be used
+ in new code (unless you need access from a language other than C++). This
+ version of these functions should also happily coexist with other versions,
+ as the names used are macros that expand to the actual function names.
+ </p></td></tr>
</table></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
@@ -65,20 +59,12 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- Note that all the symbols defined here are enclosed inside namespace
- <code class="computeroutput"><span class="identifier">boost</span></code> when used in C++
- programs, unless you use <code class="computeroutput"><span class="preprocessor">#include</span>
- <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code> instead - in which case the symbols
- are still defined in namespace boost, but are made available in the global
- namespace as well.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ Note that all the symbols defined here are enclosed inside namespace <code class="computeroutput"><span class="identifier">boost</span></code> when used in C++ programs, unless
+ you use <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>
+ instead - in which case the symbols are still defined in namespace boost,
+ but are made available in the global namespace as well.
+ </p></td></tr>
</table></div>
<p>
The functions are defined as:
@@ -171,24 +157,18 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- <code class="computeroutput"><span class="identifier">regex_t</span></code> is actually a
- <code class="computeroutput"><span class="preprocessor">#define</span></code> - it is either
- <code class="computeroutput"><span class="identifier">regex_tA</span></code> or <code class="computeroutput"><span class="identifier">regex_tW</span></code> depending upon whether <code class="computeroutput"><span class="identifier">UNICODE</span></code> is defined or not, <code class="computeroutput"><span class="identifier">TCHAR</span></code> is either <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> again depending
- upon the macro <code class="computeroutput"><span class="identifier">UNICODE</span></code>.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ <code class="computeroutput"><span class="identifier">regex_t</span></code> is actually a
+ <code class="computeroutput"><span class="preprocessor">#define</span></code> - it is either
+ <code class="computeroutput"><span class="identifier">regex_tA</span></code> or <code class="computeroutput"><span class="identifier">regex_tW</span></code> depending upon whether <code class="computeroutput"><span class="identifier">UNICODE</span></code> is defined or not, <code class="computeroutput"><span class="identifier">TCHAR</span></code> is either <code class="computeroutput"><span class="keyword">char</span></code>
+ or <code class="computeroutput"><span class="keyword">wchar_t</span></code> again depending
+ upon the macro <code class="computeroutput"><span class="identifier">UNICODE</span></code>.
+ </p></td></tr>
</table></div>
<a name="regcomp"></a><p>
</p>
<a name="boost_regex.ref.posix.regcomp"></a><h5>
-<a name="id631602"></a>
+<a name="id621675"></a>
<a href="posix.html#boost_regex.ref.posix.regcomp">regcomp</a>
</h5>
<p>
@@ -402,7 +382,7 @@
<a name="regerror"></a><p>
</p>
<a name="boost_regex.ref.posix.regerror"></a><h5>
-<a name="id632245"></a>
+<a name="id622319"></a>
<a href="posix.html#boost_regex.ref.posix.regerror">regerror</a>
</h5>
<p>
@@ -490,7 +470,7 @@
<a name="regexec"></a><p>
</p>
<a name="boost_regex.ref.posix.regexec"></a><h5>
-<a name="id632430"></a>
+<a name="id622502"></a>
<a href="posix.html#boost_regex.ref.posix.regexec">regexec</a>
</h5>
<p>
@@ -560,7 +540,7 @@
<a name="regfree"></a><p>
</p>
<a name="boost_regex.ref.posix.regfree"></a><h5>
-<a name="id632571"></a>
+<a name="id622643"></a>
<a href="posix.html#boost_regex.ref.posix.regfree">regfree</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_iterator.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_iterator.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_iterator.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.regex_iterator"></a> regex_iterator</h3></div></div></div>
+<a name="boost_regex.ref.regex_iterator"></a> regex_iterator
+</h3></div></div></div>
<p>
The iterator type regex_iterator
will enumerate all
of the regular expression matches found in some sequence: dereferencing a
@@ -78,7 +79,7 @@
<span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_flag_type</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.regex_iterator.description"></a><h5>
-<a name="id590439"></a>
+<a name="id580636"></a>
<a href="regex_iterator.html#boost_regex.ref.regex_iterator.description">Description</a>
</h5>
<p>
@@ -447,7 +448,7 @@
<span class="emphasis"><em>m</em></span>.
</p>
<a name="boost_regex.ref.regex_iterator.examples"></a><h5>
-<a name="id593596"></a>
+<a name="id583783"></a>
<a href="regex_iterator.html#boost_regex.ref.regex_iterator.examples">Examples</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_match.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_match.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_match.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.regex_match"></a> regex_match</h3></div></div></div>
+<a name="boost_regex.ref.regex_match"></a> regex_match
+</h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
@@ -40,18 +41,12 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- Note that the result is true only if the expression matches the <span class="bold"><strong>whole</strong></span> of the input sequence. If you want to search
- for an expression somewhere within the sequence then use regex_search
. If you want to
- match a prefix of the character string then use regex_search
with the flag match_continuous
- set.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ Note that the result is true only if the expression matches the <span class="bold"><strong>whole</strong></span> of the input sequence. If you want to search
+ for an expression somewhere within the sequence then use regex_search
. If you want to match
+ a prefix of the character string then use regex_search
with the flag match_continuous
+ set.
+ </p></td></tr>
</table></div>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
@@ -87,7 +82,7 @@
<span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.regex_match.description"></a><h5>
-<a name="id573984"></a>
+<a name="id564196"></a>
<a href="regex_match.html#boost_regex.ref.regex_match.description">Description</a>
</h5>
<pre class="programlisting">
@@ -373,7 +368,7 @@
<span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
</p>
<a name="boost_regex.ref.regex_match.examples"></a><h5>
-<a name="id577171"></a>
+<a name="id567381"></a>
<a href="regex_match.html#boost_regex.ref.regex_match.examples">Examples</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_replace.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_replace.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_replace.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.regex_replace"></a> regex_replace</h3></div></div></div>
+<a name="boost_regex.ref.regex_replace"></a> regex_replace
+</h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
@@ -54,7 +55,7 @@
<span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.regex_replace.description"></a><h5>
-<a name="id584499"></a>
+<a name="id574703"></a>
<a href="regex_replace.html#boost_regex.ref.regex_replace.description">Description</a>
</h5>
<pre class="programlisting">
@@ -174,7 +175,7 @@
and then returns <code class="computeroutput"><span class="identifier">result</span></code>.
</p>
<a name="boost_regex.ref.regex_replace.examples"></a><h5>
-<a name="id586060"></a>
+<a name="id576263"></a>
<a href="regex_replace.html#boost_regex.ref.regex_replace.examples">Examples</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_search.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_search.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_search.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.regex_search"></a> regex_search</h3></div></div></div>
+<a name="boost_regex.ref.regex_search"></a> regex_search
+</h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
@@ -74,7 +75,7 @@
<span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.regex_search.description"></a><h5>
-<a name="id579391"></a>
+<a name="id569599"></a>
<a href="regex_search.html#boost_regex.ref.regex_search.description">Description</a>
</h5>
<pre class="programlisting">
@@ -362,7 +363,7 @@
<span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
</p>
<a name="boost_regex.ref.regex_search.examples"></a><h5>
-<a name="id582664"></a>
+<a name="id572871"></a>
<a href="regex_search.html#boost_regex.ref.regex_search.examples">Examples</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.regex_token_iterator"></a> regex_token_iterator</h3></div></div></div>
+<a name="boost_regex.ref.regex_token_iterator"></a> regex_token_iterator
+</h3></div></div></div>
<p>
The template class regex_token_iterator
is an iterator
adapter; that is to say it represents a new view of an existing iterator
@@ -136,7 +137,7 @@
<span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_flag_type</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.regex_token_iterator.description"></a><h5>
-<a name="id599429"></a>
+<a name="id589606"></a>
<a href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.description">Description</a>
</h5>
<a name="boost_regex.regex_token_iterator.construct1"></a><p>
@@ -396,7 +397,7 @@
<span class="emphasis"><em>m</em></span>.
</p>
<a name="boost_regex.ref.regex_token_iterator.examples"></a><h5>
-<a name="id603680"></a>
+<a name="id593839"></a>
<a href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.examples">Examples</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_traits.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_traits.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/regex_traits.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.regex_traits"></a> regex_traits</h3></div></div></div>
+<a name="boost_regex.ref.regex_traits"></a> regex_traits
+</h3></div></div></div>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
@@ -46,7 +47,7 @@
<span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.regex_traits.description"></a><h5>
-<a name="id613656"></a>
+<a name="id603776"></a>
<a href="regex_traits.html#boost_regex.ref.regex_traits.description">Description</a>
</h5>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/sub_match.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/sub_match.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/sub_match.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.sub_match"></a> sub_match</h3></div></div></div>
+<a name="boost_regex.ref.sub_match"></a> sub_match
+</h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
@@ -330,11 +331,11 @@
<span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.sub_match.description"></a><h5>
-<a name="id558364"></a>
+<a name="id548633"></a>
<a href="sub_match.html#boost_regex.ref.sub_match.description">Description</a>
</h5>
<a name="boost_regex.ref.sub_match.members"></a><h6>
-<a name="id558388"></a>
+<a name="id548656"></a>
<a href="sub_match.html#boost_regex.ref.sub_match.members">Members</a>
</h6>
<a name="boost_regex.sub_match.value_type"></a><p>
@@ -488,7 +489,7 @@
</li>
</ul></div>
<a name="boost_regex.ref.sub_match.sub_match_non_member_operators"></a><h6>
-<a name="id559990"></a>
+<a name="id550247"></a>
<a href="sub_match.html#boost_regex.ref.sub_match.sub_match_non_member_operators">sub_match
non-member operators</a>
</h6>
@@ -1072,7 +1073,7 @@
<span class="special">+</span> <span class="identifier">m2</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span></code>.
</p>
<a name="boost_regex.ref.sub_match.stream_inserter"></a><h6>
-<a name="id572060"></a>
+<a name="id562277"></a>
<a href="sub_match.html#boost_regex.ref.sub_match.stream_inserter">Stream inserter</a>
</h6>
<a name="boost_regex.sub_match.op_stream"></a><p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.ref.syntax_option_type"></a> syntax_option_type</h3></div></div></div>
+<a name="boost_regex.ref.syntax_option_type"></a> syntax_option_type
+</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="syntax_option_type/syntax_option_type_synopsis.html">
syntax_option_type Synopsis</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_basic"></a><a href="syntax_option_type_basic.html" title="Options for POSIX Basic Regular Expressions">
- Options for POSIX Basic Regular Expressions</a></h4></div></div></div>
+ Options for POSIX Basic Regular Expressions</a>
+</h4></div></div></div>
<p>
Exactly one of the following must always be set for POSIX basic regular
expressions:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_extended"></a><a href="syntax_option_type_extended.html" title="Options for POSIX Extended Regular Expressions">
- Options for POSIX Extended Regular Expressions</a></h4></div></div></div>
+ Options for POSIX Extended Regular Expressions</a>
+</h4></div></div></div>
<p>
Exactly one of the following must always be set for <a href="../../syntax/basic_extended.html" title="POSIX Extended Regular Expression Syntax">POSIX
extended regular expressions</a>:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_literal"></a><a href="syntax_option_type_literal.html" title="Options for Literal Strings">
- Options for Literal Strings</a></h4></div></div></div>
+ Options for Literal Strings</a>
+</h4></div></div></div>
<p>
The following must always be set to interpret the expression as a string
literal:
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_overview"></a><a href="syntax_option_type_overview.html" title="Overview of syntax_option_type">
- Overview of syntax_option_type</a></h4></div></div></div>
+ Overview of syntax_option_type</a>
+</h4></div></div></div>
<p>
The type syntax_option_type
is an implementation
specific bitmask type (see C++ standard 17.3.2.1.2). Setting its elements
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_perl"></a><a href="syntax_option_type_perl.html" title="Options for Perl Regular Expressions">
- Options for Perl Regular Expressions</a></h4></div></div></div>
+ Options for Perl Regular Expressions</a>
+</h4></div></div></div>
<p>
One of the following must always be set for perl regular expressions:
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_synopsis"></a><a href="syntax_option_type_synopsis.html" title="syntax_option_type Synopsis">
- syntax_option_type Synopsis</a></h4></div></div></div>
+ syntax_option_type Synopsis</a>
+</h4></div></div></div>
<p>
Type syntax_option_type
is an implementation specific bitmask type that controls how a regular
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.syntax"></a> Regular Expression Syntax</h2></div></div></div>
+<a name="boost_regex.syntax"></a> Regular Expression Syntax
+</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="syntax/perl_syntax.html"> Perl Regular Expression
Syntax</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_extended.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_extended.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_extended.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,9 +25,10 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.syntax.basic_extended"></a><a href="basic_extended.html" title="POSIX Extended Regular Expression Syntax"> POSIX Extended Regular
- Expression Syntax</a></h3></div></div></div>
+ Expression Syntax</a>
+</h3></div></div></div>
<a name="boost_regex.syntax.basic_extended.synopsis"></a><h4>
-<a name="id513772"></a>
+<a name="id504125"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.synopsis">Synopsis</a>
</h4>
<p>
@@ -46,7 +47,7 @@
<a name="boost_regex.posix_extended_syntax"></a><p>
</p>
<a name="boost_regex.syntax.basic_extended.posix_extended_syntax"></a><h4>
-<a name="id514040"></a>
+<a name="id504391"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.posix_extended_syntax">POSIX
Extended Syntax</a>
</h4>
@@ -56,7 +57,7 @@
</p>
<pre class="programlisting">.[{()\*+?|^$</pre>
<a name="boost_regex.syntax.basic_extended.wildcard_"></a><h5>
-<a name="id514081"></a>
+<a name="id504431"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.wildcard_">Wildcard:</a>
</h5>
<p>
@@ -74,7 +75,7 @@
</li>
</ul></div>
<a name="boost_regex.syntax.basic_extended.anchors_"></a><h5>
-<a name="id514151"></a>
+<a name="id504499"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.anchors_">Anchors:</a>
</h5>
<p>
@@ -86,7 +87,7 @@
of an expression, or the last character of a sub-expression.
</p>
<a name="boost_regex.syntax.basic_extended.marked_sub_expressions_"></a><h5>
-<a name="id514188"></a>
+<a name="id504534"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.marked_sub_expressions_">Marked
sub-expressions:</a>
</h5>
@@ -98,7 +99,7 @@
to by a back-reference.
</p>
<a name="boost_regex.syntax.basic_extended.repeats_"></a><h5>
-<a name="id514246"></a>
+<a name="id504591"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.repeats_">Repeats:</a>
</h5>
<p>
@@ -187,7 +188,7 @@
operator to be applied to.
</p>
<a name="boost_regex.syntax.basic_extended.back_references_"></a><h5>
-<a name="id514700"></a>
+<a name="id505042"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.back_references_">Back references:</a>
</h5>
<p>
@@ -213,19 +214,13 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../doc/html/images/caution.png"></td>
<th align="left">Caution</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- The POSIX standard does not support back-references for "extended"
- regular expressions, this is a compatible extension to that standard.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ The POSIX standard does not support back-references for "extended"
+ regular expressions, this is a compatible extension to that standard.
+ </p></td></tr>
</table></div>
<a name="boost_regex.syntax.basic_extended.alternation"></a><h5>
-<a name="id514802"></a>
+<a name="id505138"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.alternation">Alternation</a>
</h5>
<p>
@@ -238,7 +233,7 @@
will match either of "abd" or "abef".
</p>
<a name="boost_regex.syntax.basic_extended.character_sets_"></a><h5>
-<a name="id514907"></a>
+<a name="id505242"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.character_sets_">Character
sets:</a>
</h5>
@@ -251,7 +246,7 @@
A bracket expression may contain any combination of the following:
</p>
<a name="boost_regex.syntax.basic_extended.single_characters_"></a><h6>
-<a name="id514945"></a>
+<a name="id505278"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.single_characters_">Single
characters:</a>
</h6>
@@ -260,7 +255,7 @@
or 'c'.
</p>
<a name="boost_regex.syntax.basic_extended.character_ranges_"></a><h6>
-<a name="id514997"></a>
+<a name="id505328"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.character_ranges_">Character
ranges:</a>
</h6>
@@ -276,7 +271,7 @@
the code points of the characters only.
</p>
<a name="boost_regex.syntax.basic_extended.negation_"></a><h6>
-<a name="id515099"></a>
+<a name="id505429"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.negation_">Negation:</a>
</h6>
<p>
@@ -285,7 +280,7 @@
range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
</p>
<a name="boost_regex.syntax.basic_extended.character_classes_"></a><h6>
-<a name="id515183"></a>
+<a name="id505512"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.character_classes_">Character
classes:</a>
</h6>
@@ -295,7 +290,7 @@
<a href="character_classes.html" title="Character Class Names">character class names</a>.
</p>
<a name="boost_regex.syntax.basic_extended.collating_elements_"></a><h6>
-<a name="id515267"></a>
+<a name="id505594"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.collating_elements_">Collating
Elements:</a>
</h6>
@@ -324,7 +319,7 @@
matches a NUL character.
</p>
<a name="boost_regex.syntax.basic_extended.equivalence_classes_"></a><h6>
-<a name="id515428"></a>
+<a name="id505757"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.equivalence_classes_">Equivalence
classes:</a>
</h6>
@@ -341,7 +336,7 @@
or even all locales on one platform.
</p>
<a name="boost_regex.syntax.basic_extended.combinations_"></a><h6>
-<a name="id515538"></a>
+<a name="id505861"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.combinations_">Combinations:</a>
</h6>
<p>
@@ -349,7 +344,7 @@
<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
</p>
<a name="boost_regex.syntax.basic_extended.escapes"></a><h5>
-<a name="id515618"></a>
+<a name="id505941"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.escapes">Escapes</a>
</h5>
<p>
@@ -375,7 +370,7 @@
extensions are also supported by Boost.Regex:
</p>
<a name="boost_regex.syntax.basic_extended.escapes_matching_a_specific_character"></a><h6>
-<a name="id515687"></a>
+<a name="id506011"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.escapes_matching_a_specific_character">Escapes
matching a specific character</a>
</h6>
@@ -564,7 +559,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_"></a><h6>
-<a name="id516038"></a>
+<a name="id506358"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_">"Single
character" character classes:</a>
</h6>
@@ -718,7 +713,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.basic_extended.character_properties"></a><h6>
-<a name="id516672"></a>
+<a name="id506990"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.character_properties">Character
Properties</a>
</h6>
@@ -825,7 +820,7 @@
matches any "digit" character, as does <code class="computeroutput"><span class="special">\</span><span class="identifier">p</span><span class="special">{</span><span class="identifier">digit</span><span class="special">}</span></code>.
</p>
<a name="boost_regex.syntax.basic_extended.word_boundaries"></a><h6>
-<a name="id517074"></a>
+<a name="id507391"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.word_boundaries">Word Boundaries</a>
</h6>
<p>
@@ -900,7 +895,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.basic_extended.buffer_boundaries"></a><h6>
-<a name="id517269"></a>
+<a name="id507584"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.buffer_boundaries">Buffer
boundaries</a>
</h6>
@@ -991,7 +986,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.basic_extended.continuation_escape"></a><h6>
-<a name="id517506"></a>
+<a name="id507819"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.continuation_escape">Continuation
Escape</a>
</h6>
@@ -1003,7 +998,7 @@
match to start where the last one ended.
</p>
<a name="boost_regex.syntax.basic_extended.quoting_escape"></a><h6>
-<a name="id517557"></a>
+<a name="id507869"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.quoting_escape">Quoting
escape</a>
</h6>
@@ -1018,7 +1013,7 @@
<span class="special">\*+</span><span class="identifier">aaa</span>
</pre>
<a name="boost_regex.syntax.basic_extended.unicode_escapes"></a><h6>
-<a name="id517683"></a>
+<a name="id507993"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.unicode_escapes">Unicode
escapes</a>
</h6>
@@ -1069,7 +1064,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.basic_extended.any_other_escape"></a><h6>
-<a name="id517818"></a>
+<a name="id508126"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.any_other_escape">Any other
escape</a>
</h6>
@@ -1078,7 +1073,7 @@
\@ matches a literal '@'.
</p>
<a name="boost_regex.syntax.basic_extended.operator_precedence"></a><h5>
-<a name="id517850"></a>
+<a name="id508156"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.operator_precedence">Operator
precedence</a>
</h5>
@@ -1114,7 +1109,7 @@
</li>
</ol></div>
<a name="boost_regex.syntax.basic_extended.what_gets_matched"></a><h5>
-<a name="id518041"></a>
+<a name="id508346"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.what_gets_matched">What
Gets Matched</a>
</h5>
@@ -1124,11 +1119,11 @@
rule</a>.
</p>
<a name="boost_regex.syntax.basic_extended.variations"></a><h4>
-<a name="id518082"></a>
+<a name="id508386"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.variations">Variations</a>
</h4>
<a name="boost_regex.syntax.basic_extended.egrep"></a><h5>
-<a name="id518106"></a>
+<a name="id508409"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.egrep">Egrep</a>
</h5>
<p>
@@ -1150,7 +1145,7 @@
used with the -E option.
</p>
<a name="boost_regex.syntax.basic_extended.awk"></a><h5>
-<a name="id518267"></a>
+<a name="id508568"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.awk">awk</a>
</h5>
<p>
@@ -1164,7 +1159,7 @@
these by default anyway.
</p>
<a name="boost_regex.syntax.basic_extended.options"></a><h4>
-<a name="id518315"></a>
+<a name="id508614"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.options">Options</a>
</h4>
<p>
@@ -1177,7 +1172,7 @@
modify how the case and locale sensitivity are to be applied.
</p>
<a name="boost_regex.syntax.basic_extended.references"></a><h4>
-<a name="id518446"></a>
+<a name="id508743"></a>
<a href="basic_extended.html#boost_regex.syntax.basic_extended.references">References</a>
</h4>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,9 +25,10 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.syntax.basic_syntax"></a><a href="basic_syntax.html" title="POSIX Basic Regular Expression Syntax"> POSIX Basic Regular
- Expression Syntax</a></h3></div></div></div>
+ Expression Syntax</a>
+</h3></div></div></div>
<a name="boost_regex.syntax.basic_syntax.synopsis"></a><h4>
-<a name="id518533"></a>
+<a name="id508828"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.synopsis">Synopsis</a>
</h4>
<p>
@@ -45,7 +46,7 @@
<a name="boost_regex.posix_basic"></a><p>
</p>
<a name="boost_regex.syntax.basic_syntax.posix_basic_syntax"></a><h4>
-<a name="id518828"></a>
+<a name="id509121"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.posix_basic_syntax">POSIX
Basic Syntax</a>
</h4>
@@ -55,7 +56,7 @@
</p>
<pre class="programlisting">.[\*^$</pre>
<a name="boost_regex.syntax.basic_syntax.wildcard_"></a><h5>
-<a name="id518869"></a>
+<a name="id509160"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.wildcard_">Wildcard:</a>
</h5>
<p>
@@ -73,7 +74,7 @@
</li>
</ul></div>
<a name="boost_regex.syntax.basic_syntax.anchors_"></a><h5>
-<a name="id518939"></a>
+<a name="id509229"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.anchors_">Anchors:</a>
</h5>
<p>
@@ -85,7 +86,7 @@
of an expression, or the last character of a sub-expression.
</p>
<a name="boost_regex.syntax.basic_syntax.marked_sub_expressions_"></a><h5>
-<a name="id518977"></a>
+<a name="id509266"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.marked_sub_expressions_">Marked
sub-expressions:</a>
</h5>
@@ -97,7 +98,7 @@
by a back-reference.
</p>
<a name="boost_regex.syntax.basic_syntax.repeats_"></a><h5>
-<a name="id519035"></a>
+<a name="id509322"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.repeats_">Repeats:</a>
</h5>
<p>
@@ -155,7 +156,7 @@
to.
</p>
<a name="boost_regex.syntax.basic_syntax.back_references_"></a><h5>
-<a name="id519282"></a>
+<a name="id509566"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.back_references_">Back references:</a>
</h5>
<p>
@@ -173,7 +174,7 @@
</p>
<pre class="programlisting">aaabba</pre>
<a name="boost_regex.syntax.basic_syntax.character_sets_"></a><h5>
-<a name="id519358"></a>
+<a name="id509641"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_sets_">Character
sets:</a>
</h5>
@@ -186,7 +187,7 @@
A bracket expression may contain any combination of the following:
</p>
<a name="boost_regex.syntax.basic_syntax.single_characters_"></a><h6>
-<a name="id519395"></a>
+<a name="id509677"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.single_characters_">Single
characters:</a>
</h6>
@@ -195,7 +196,7 @@
or 'c'.
</p>
<a name="boost_regex.syntax.basic_syntax.character_ranges_"></a><h6>
-<a name="id519447"></a>
+<a name="id509727"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_ranges_">Character
ranges:</a>
</h6>
@@ -211,7 +212,7 @@
of the characters only.
</p>
<a name="boost_regex.syntax.basic_syntax.negation_"></a><h6>
-<a name="id519540"></a>
+<a name="id509818"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.negation_">Negation:</a>
</h6>
<p>
@@ -220,7 +221,7 @@
range a-c.
</p>
<a name="boost_regex.syntax.basic_syntax.character_classes_"></a><h6>
-<a name="id519603"></a>
+<a name="id509879"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_classes_">Character
classes:</a>
</h6>
@@ -230,7 +231,7 @@
<a href="character_classes.html" title="Character Class Names">character class names</a>.
</p>
<a name="boost_regex.syntax.basic_syntax.collating_elements_"></a><h6>
-<a name="id519687"></a>
+<a name="id509963"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.collating_elements_">Collating
Elements:</a>
</h6>
@@ -259,7 +260,7 @@
element names</a>.
</p>
<a name="boost_regex.syntax.basic_syntax.equivalence_classes_"></a><h6>
-<a name="id519834"></a>
+<a name="id510111"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.equivalence_classes_">Equivalence
classes:</a>
</h6>
@@ -276,7 +277,7 @@
or even all locales on one platform.
</p>
<a name="boost_regex.syntax.basic_syntax.combinations_"></a><h6>
-<a name="id519943"></a>
+<a name="id510216"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.combinations_">Combinations:</a>
</h6>
<p>
@@ -284,7 +285,7 @@
<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]].</span></code>
</p>
<a name="boost_regex.syntax.basic_syntax.escapes"></a><h5>
-<a name="id520022"></a>
+<a name="id510295"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.escapes">Escapes</a>
</h5>
<p>
@@ -299,7 +300,7 @@
will match either a literal '\' or a '^'.
</p>
<a name="boost_regex.syntax.basic_syntax.what_gets_matched"></a><h4>
-<a name="id520081"></a>
+<a name="id510351"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.what_gets_matched">What Gets
Matched</a>
</h4>
@@ -309,13 +310,13 @@
rule</a>.
</p>
<a name="boost_regex.syntax.basic_syntax.variations"></a><h4>
-<a name="id520122"></a>
+<a name="id510390"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.variations">Variations</a>
</h4>
<a name="boost_regex.grep_syntax"></a><p>
</p>
<a name="boost_regex.syntax.basic_syntax.grep"></a><h5>
-<a name="id520156"></a>
+<a name="id510423"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.grep">Grep</a>
</h5>
<p>
@@ -334,7 +335,7 @@
As its name suggests, this behavior is consistent with the Unix utility grep.
</p>
<a name="boost_regex.syntax.basic_syntax.emacs"></a><h5>
-<a name="id520303"></a>
+<a name="id510568"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.emacs">emacs</a>
</h5>
<p>
@@ -614,7 +615,7 @@
leftmost-longest rule</a>.
</p>
<a name="boost_regex.syntax.basic_syntax.options"></a><h4>
-<a name="id520799"></a>
+<a name="id511063"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.options">Options</a>
</h4>
<p>
@@ -628,7 +629,7 @@
options</a> modify how the case and locale sensitivity are to be applied.
</p>
<a name="boost_regex.syntax.basic_syntax.references"></a><h4>
-<a name="id520975"></a>
+<a name="id511236"></a>
<a href="basic_syntax.html#boost_regex.syntax.basic_syntax.references">References</a>
</h4>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.syntax.character_classes"></a><a href="character_classes.html" title="Character Class Names"> Character Class
- Names</a></h3></div></div></div>
+ Names</a>
+</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="character_classes/std_char_clases.html">
Character Classes that are Always Supported</a></span></dt>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.syntax.character_classes.optional_char_class_names"></a><a href="optional_char_class_names.html" title="Character classes that are supported by Unicode Regular Expressions">
- Character classes that are supported by Unicode Regular Expressions</a></h4></div></div></div>
+ Character classes that are supported by Unicode Regular Expressions</a>
+</h4></div></div></div>
<p>
The following character classes are only supported by Unicode Regular Expressions:
that is those that use the <code class="computeroutput"><span class="identifier">u32regex</span></code>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.syntax.character_classes.std_char_clases"></a><a href="std_char_clases.html" title="Character Classes that are Always Supported">
- Character Classes that are Always Supported</a></h4></div></div></div>
+ Character Classes that are Always Supported</a>
+</h4></div></div></div>
<p>
The following character class names are always supported by Boost.Regex:
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.syntax.collating_names"></a> Collating Names</h3></div></div></div>
+<a name="boost_regex.syntax.collating_names"></a> Collating Names
+</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"> Digraphs</span></dt>
<dt><span class="section"><a href="collating_names/posix_symbolic_names.html">
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_regex.syntax.collating_names.digraphs"></a> Digraphs</h4></div></div></div>
+<a name="boost_regex.syntax.collating_names.digraphs"></a> Digraphs
+</h4></div></div></div>
<p>
The following are treated as valid digraphs when used as a collating name:
</p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.syntax.collating_names.named_unicode"></a><a href="named_unicode.html" title="Named Unicode Characters">
- Named Unicode Characters</a></h4></div></div></div>
+ Named Unicode Characters</a>
+</h4></div></div></div>
<p>
When using Unicode aware regular expressions
(with the <code class="computeroutput"><span class="identifier">u32regex</span></code> type),
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.syntax.collating_names.posix_symbolic_names"></a><a href="posix_symbolic_names.html" title="POSIX Symbolic Names">
- POSIX Symbolic Names</a></h4></div></div></div>
+ POSIX Symbolic Names</a>
+</h4></div></div></div>
<p>
The following symbolic names are recognised as valid collating element
names, in addition to any single character, this allows you to write for
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,7 +25,8 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.syntax.leftmost_longest_rule"></a><a href="leftmost_longest_rule.html" title="The Leftmost Longest Rule"> The Leftmost
- Longest Rule</a></h3></div></div></div>
+ Longest Rule</a>
+</h3></div></div></div>
<p>
Often there is more than one way of matching a regular expression at a particular
location, for POSIX basic and extended regular expressions, the "best"
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -25,9 +25,10 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.syntax.perl_syntax"></a><a href="perl_syntax.html" title="Perl Regular Expression Syntax"> Perl Regular Expression
- Syntax</a></h3></div></div></div>
+ Syntax</a>
+</h3></div></div></div>
<a name="boost_regex.syntax.perl_syntax.synopsis"></a><h4>
-<a name="id507102"></a>
+<a name="id497527"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.synopsis">Synopsis</a>
</h4>
<p>
@@ -45,7 +46,7 @@
</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e2</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">perl</span><span class="special">|</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">icase</span><span class="special">);</span>
</pre>
<a name="boost_regex.syntax.perl_syntax.perl_regular_expression_syntax"></a><h4>
-<a name="id507326"></a>
+<a name="id497750"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_regular_expression_syntax">Perl
Regular Expression Syntax</a>
</h4>
@@ -55,7 +56,7 @@
</p>
<pre class="programlisting">.[{()\*+?|^$</pre>
<a name="boost_regex.syntax.perl_syntax.wildcard"></a><h5>
-<a name="id507366"></a>
+<a name="id497788"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.wildcard">Wildcard</a>
</h5>
<p>
@@ -75,7 +76,7 @@
</li>
</ul></div>
<a name="boost_regex.syntax.perl_syntax.anchors"></a><h5>
-<a name="id507448"></a>
+<a name="id497869"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.anchors">Anchors</a>
</h5>
<p>
@@ -85,7 +86,7 @@
A '$' character shall match the end of a line.
</p>
<a name="boost_regex.syntax.perl_syntax.marked_sub_expressions"></a><h5>
-<a name="id507483"></a>
+<a name="id497903"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.marked_sub_expressions">Marked
sub-expressions</a>
</h5>
@@ -97,7 +98,7 @@
to by a back-reference.
</p>
<a name="boost_regex.syntax.perl_syntax.non_marking_grouping"></a><h5>
-<a name="id507541"></a>
+<a name="id497958"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_grouping">Non-marking
grouping</a>
</h5>
@@ -111,7 +112,7 @@
out any separate sub-expressions.
</p>
<a name="boost_regex.syntax.perl_syntax.repeats"></a><h5>
-<a name="id507631"></a>
+<a name="id498047"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.repeats">Repeats</a>
</h5>
<p>
@@ -205,7 +206,7 @@
operator to be applied to.
</p>
<a name="boost_regex.syntax.perl_syntax.non_greedy_repeats"></a><h5>
-<a name="id508116"></a>
+<a name="id498529"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_greedy_repeats">Non greedy
repeats</a>
</h5>
@@ -236,7 +237,7 @@
input as possible.
</p>
<a name="boost_regex.syntax.perl_syntax.back_references"></a><h5>
-<a name="id508262"></a>
+<a name="id498674"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.back_references">Back references</a>
</h5>
<p>
@@ -258,7 +259,7 @@
<span class="identifier">aaabba</span>
</pre>
<a name="boost_regex.syntax.perl_syntax.alternation"></a><h5>
-<a name="id508349"></a>
+<a name="id498760"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.alternation">Alternation</a>
</h5>
<p>
@@ -287,7 +288,7 @@
<code class="computeroutput"><span class="special">(?:</span><span class="identifier">abc</span><span class="special">)??</span></code> has exactly the same effect.
</p>
<a name="boost_regex.syntax.perl_syntax.character_sets"></a><h5>
-<a name="id508539"></a>
+<a name="id498948"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_sets">Character sets</a>
</h5>
<p>
@@ -300,7 +301,7 @@
A bracket expression may contain any combination of the following:
</p>
<a name="boost_regex.syntax.perl_syntax.single_characters"></a><h6>
-<a name="id508600"></a>
+<a name="id499007"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.single_characters">Single characters</a>
</h6>
<p>
@@ -308,7 +309,7 @@
or 'c'.
</p>
<a name="boost_regex.syntax.perl_syntax.character_ranges"></a><h6>
-<a name="id508652"></a>
+<a name="id499058"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_ranges">Character
ranges</a>
</h6>
@@ -321,7 +322,7 @@
regular expression, then ranges are locale sensitive.
</p>
<a name="boost_regex.syntax.perl_syntax.negation"></a><h6>
-<a name="id508734"></a>
+<a name="id499138"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.negation">Negation</a>
</h6>
<p>
@@ -330,7 +331,7 @@
range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
</p>
<a name="boost_regex.syntax.perl_syntax.character_classes"></a><h6>
-<a name="id508817"></a>
+<a name="id499220"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_classes">Character
classes</a>
</h6>
@@ -340,7 +341,7 @@
<a href="character_classes.html" title="Character Class Names">character class names</a>.
</p>
<a name="boost_regex.syntax.perl_syntax.collating_elements"></a><h6>
-<a name="id508902"></a>
+<a name="id499304"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.collating_elements">Collating
Elements</a>
</h6>
@@ -365,7 +366,7 @@
character.
</p>
<a name="boost_regex.syntax.perl_syntax.equivalence_classes"></a><h6>
-<a name="id509054"></a>
+<a name="id499453"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.equivalence_classes">Equivalence
classes</a>
</h6>
@@ -382,7 +383,7 @@
or even all locales on one platform.
</p>
<a name="boost_regex.syntax.perl_syntax.escaped_characters"></a><h6>
-<a name="id509163"></a>
+<a name="id499556"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escaped_characters">Escaped
Characters</a>
</h6>
@@ -394,7 +395,7 @@
is <span class="emphasis"><em>not</em></span> a "word" character.
</p>
<a name="boost_regex.syntax.perl_syntax.combinations"></a><h6>
-<a name="id509270"></a>
+<a name="id499662"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.combinations">Combinations</a>
</h6>
<p>
@@ -402,7 +403,7 @@
<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
</p>
<a name="boost_regex.syntax.perl_syntax.escapes"></a><h5>
-<a name="id509349"></a>
+<a name="id499740"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escapes">Escapes</a>
</h5>
<p>
@@ -595,7 +596,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.perl_syntax._quot_single_character_quot__character_classes_"></a><h6>
-<a name="id510063"></a>
+<a name="id500453"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax._quot_single_character_quot__character_classes_">"Single
character" character classes:</a>
</h6>
@@ -749,7 +750,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.perl_syntax.character_properties"></a><h6>
-<a name="id510698"></a>
+<a name="id501085"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_properties">Character
Properties</a>
</h6>
@@ -857,7 +858,7 @@
matches any "digit" character, as does <code class="computeroutput"><span class="special">\</span><span class="identifier">p</span><span class="special">{</span><span class="identifier">digit</span><span class="special">}</span></code>.
</p>
<a name="boost_regex.syntax.perl_syntax.word_boundaries"></a><h6>
-<a name="id511109"></a>
+<a name="id501494"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.word_boundaries">Word Boundaries</a>
</h6>
<p>
@@ -879,7 +880,7 @@
Matches only when not at a word boundary.
</p>
<a name="boost_regex.syntax.perl_syntax.buffer_boundaries"></a><h6>
-<a name="id511213"></a>
+<a name="id501596"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.buffer_boundaries">Buffer boundaries</a>
</h6>
<p>
@@ -904,7 +905,7 @@
to the regular expression <code class="computeroutput"><span class="special">\</span><span class="identifier">n</span><span class="special">*\</span><span class="identifier">z</span></code>
</p>
<a name="boost_regex.syntax.perl_syntax.continuation_escape"></a><h6>
-<a name="id511298"></a>
+<a name="id501679"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.continuation_escape">Continuation
Escape</a>
</h6>
@@ -916,7 +917,7 @@
match to start where the last one ended.
</p>
<a name="boost_regex.syntax.perl_syntax.quoting_escape"></a><h6>
-<a name="id511350"></a>
+<a name="id501730"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.quoting_escape">Quoting escape</a>
</h6>
<p>
@@ -930,7 +931,7 @@
<span class="special">\*+</span><span class="identifier">aaa</span>
</pre>
<a name="boost_regex.syntax.perl_syntax.unicode_escapes"></a><h6>
-<a name="id511455"></a>
+<a name="id501834"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.unicode_escapes">Unicode escapes</a>
</h6>
<p>
@@ -941,7 +942,7 @@
combining characters.
</p>
<a name="boost_regex.syntax.perl_syntax.any_other_escape"></a><h6>
-<a name="id511521"></a>
+<a name="id501898"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.any_other_escape">Any other
escape</a>
</h6>
@@ -950,7 +951,7 @@
\@ matches a literal '@'.
</p>
<a name="boost_regex.syntax.perl_syntax.perl_extended_patterns"></a><h5>
-<a name="id511551"></a>
+<a name="id501927"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_extended_patterns">Perl
Extended Patterns</a>
</h5>
@@ -959,7 +960,7 @@
<code class="computeroutput"><span class="special">(?</span></code>.
</p>
<a name="boost_regex.syntax.perl_syntax.comments"></a><h6>
-<a name="id511594"></a>
+<a name="id501968"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.comments">Comments</a>
</h6>
<p>
@@ -968,7 +969,7 @@
are ignored.
</p>
<a name="boost_regex.syntax.perl_syntax.modifiers"></a><h6>
-<a name="id511648"></a>
+<a name="id502021"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.modifiers">Modifiers</a>
</h6>
<p>
@@ -983,7 +984,7 @@
applies the specified modifiers to pattern only.
</p>
<a name="boost_regex.syntax.perl_syntax.non_marking_groups"></a><h6>
-<a name="id511776"></a>
+<a name="id502148"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_groups">Non-marking
groups</a>
</h6>
@@ -992,7 +993,7 @@
an additional sub-expression.
</p>
<a name="boost_regex.syntax.perl_syntax.lookahead"></a><h6>
-<a name="id511829"></a>
+<a name="id502199"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.lookahead">Lookahead</a>
</h6>
<p>
@@ -1016,7 +1017,7 @@
could be used to validate the password.
</p>
<a name="boost_regex.syntax.perl_syntax.lookbehind"></a><h6>
-<a name="id511972"></a>
+<a name="id502341"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.lookbehind">Lookbehind</a>
</h6>
<p>
@@ -1030,7 +1031,7 @@
(pattern must be of fixed length).
</p>
<a name="boost_regex.syntax.perl_syntax.independent_sub_expressions"></a><h6>
-<a name="id512053"></a>
+<a name="id502420"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.independent_sub_expressions">Independent
sub-expressions</a>
</h6>
@@ -1043,7 +1044,7 @@
no match is found at all.
</p>
<a name="boost_regex.syntax.perl_syntax.conditional_expressions"></a><h6>
-<a name="id512120"></a>
+<a name="id502484"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.conditional_expressions">Conditional
Expressions</a>
</h6>
@@ -1063,7 +1064,7 @@
sub-expression has been matched).
</p>
<a name="boost_regex.syntax.perl_syntax.operator_precedence"></a><h5>
-<a name="id512289"></a>
+<a name="id502653"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.operator_precedence">Operator
precedence</a>
</h5>
@@ -1099,7 +1100,7 @@
</li>
</ol></div>
<a name="boost_regex.syntax.perl_syntax.what_gets_matched"></a><h4>
-<a name="id512468"></a>
+<a name="id502831"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.what_gets_matched">What gets
matched</a>
</h4>
@@ -1284,7 +1285,7 @@
</tbody>
</table></div>
<a name="boost_regex.syntax.perl_syntax.variations"></a><h4>
-<a name="id513386"></a>
+<a name="id503746"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.variations">Variations</a>
</h4>
<p>
@@ -1293,7 +1294,7 @@
<code class="computeroutput"><span class="identifier">JavaScript</span></code> and <code class="computeroutput"><span class="identifier">JScript</span></code></a> are all synonyms for <code class="computeroutput"><span class="identifier">perl</span></code>.
</p>
<a name="boost_regex.syntax.perl_syntax.options"></a><h4>
-<a name="id513482"></a>
+<a name="id503840"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.options">Options</a>
</h4>
<p>
@@ -1306,7 +1307,7 @@
sensitivity are to be applied.
</p>
<a name="boost_regex.syntax.perl_syntax.pattern_modifiers"></a><h4>
-<a name="id513585"></a>
+<a name="id503941"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.pattern_modifiers">Pattern
Modifiers</a>
</h4>
@@ -1318,7 +1319,7 @@
and <code class="computeroutput"><span class="identifier">no_mod_s</span></code></a>.
</p>
<a name="boost_regex.syntax.perl_syntax.references"></a><h4>
-<a name="id513714"></a>
+<a name="id504068"></a>
<a href="perl_syntax.html#boost_regex.syntax.perl_syntax.references">References</a>
</h4>
<p>
Modified: branches/bcbboost/libs/regex/doc/html/boost_regex/unicode.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/boost_regex/unicode.html (original)
+++ branches/bcbboost/libs/regex/doc/html/boost_regex/unicode.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,12 +24,13 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_regex.unicode"></a> Unicode and Boost.Regex</h2></div></div></div>
+<a name="boost_regex.unicode"></a> Unicode and Boost.Regex
+</h2></div></div></div>
<p>
There are two ways to use Boost.Regex with Unicode strings:
</p>
<a name="boost_regex.unicode.rely_on_wchar_t"></a><h5>
-<a name="id502097"></a>
+<a name="id492534"></a>
<a href="unicode.html#boost_regex.unicode.rely_on_wchar_t">Rely on wchar_t</a>
</h5>
<p>
@@ -55,7 +56,7 @@
</li>
</ul></div>
<a name="boost_regex.unicode.use_a_unicode_aware_regular_expression_type_"></a><h5>
-<a name="id502280"></a>
+<a name="id492718"></a>
<a href="unicode.html#boost_regex.unicode.use_a_unicode_aware_regular_expression_type_">Use
a Unicode Aware Regular Expression Type.</a>
</h5>
Modified: branches/bcbboost/libs/regex/doc/html/index.html
==============================================================================
--- branches/bcbboost/libs/regex/doc/html/index.html (original)
+++ branches/bcbboost/libs/regex/doc/html/index.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -28,7 +28,7 @@
</h3></div></div></div>
<div><p class="copyright">Copyright © 2007 John Maddock</p></div>
<div><div class="legalnotice">
-<a name="id428465"></a><p>
+<a name="id489795"></a><p>
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)
</p>
@@ -202,7 +202,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: August 25, 2007 at 08:47:36 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 06, 2007 at 17:41:11 GMT</small></p></td>
<td align="right"><small></small></td>
</tr></table>
<hr>
Modified: branches/bcbboost/libs/regex/doc/regex.qbk
==============================================================================
--- branches/bcbboost/libs/regex/doc/regex.qbk (original)
+++ branches/bcbboost/libs/regex/doc/regex.qbk 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -17,7 +17,7 @@
[template sub[x]'''<subscript>'''[x]'''</subscript>''']
-[template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical report on C++ Library Extensions]]
+[template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical Report on C++ Library Extensions]]
[template syntax_option_type[] [link boost_regex.ref.syntax_option_type `syntax_option_type`]]
[template error_type[] [link boost_regex.ref.error_type `error_type`]]
[template bad_expression[] [link boost_regex.ref.bad_expression `bad_expression`]]
@@ -100,3 +100,4 @@
[include history.qbk]
[endsect]
+
Modified: branches/bcbboost/libs/regex/src/static_mutex.cpp
==============================================================================
--- branches/bcbboost/libs/regex/src/static_mutex.cpp (original)
+++ branches/bcbboost/libs/regex/src/static_mutex.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -155,7 +155,7 @@
{
if(0 == m_have_lock)
{
- boost::call_once(&static_mutex::init, static_mutex::m_once);
+ boost::call_once(static_mutex::m_once,&static_mutex::init);
if(0 == m_plock)
m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, false);
m_plock->lock();
Modified: branches/bcbboost/libs/regex/test/regress/info.hpp
==============================================================================
--- branches/bcbboost/libs/regex/test/regress/info.hpp (original)
+++ branches/bcbboost/libs/regex/test/regress/info.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -67,7 +67,7 @@
{
#ifdef TEST_THREADS
static boost::once_flag f = BOOST_ONCE_INIT;
- boost::call_once(&init_data, f);
+ boost::call_once(f,&init_data);
return do_get_data();
#else
static data_type d;
Modified: branches/bcbboost/libs/spirit/test/numerics_tests.cpp
==============================================================================
--- branches/bcbboost/libs/spirit/test/numerics_tests.cpp (original)
+++ branches/bcbboost/libs/spirit/test/numerics_tests.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -111,11 +111,7 @@
char const* int_underflow = "-2147483649";
char const* max_binary = "11111111111111111111111111111111";
char const* binary_overflow = "100000000000000000000000000000000";
-#if defined(__hpux) || defined(__osf__) || defined(__vms)
char const* max_octal = "37777777777";
-#else
- char const* max_octal = "77777777777";
-#endif
char const* octal_overflow = "100000000000";
char const* max_hex = "FFFFFFFF";
char const* hex_overflow = "100000000";
Modified: branches/bcbboost/libs/spirit/test/owi_mt_tests.cpp
==============================================================================
--- branches/bcbboost/libs/spirit/test/owi_mt_tests.cpp (original)
+++ branches/bcbboost/libs/spirit/test/owi_mt_tests.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -132,7 +132,7 @@
}
p = n;
}
-};
+}
struct less1
{
@@ -164,7 +164,7 @@
}
++p;
}
-};
+}
void concurrent_creation_of_objects()
{
Modified: branches/bcbboost/libs/system/test/system_error_test.cpp
==============================================================================
--- branches/bcbboost/libs/system/test/system_error_test.cpp (original)
+++ branches/bcbboost/libs/system/test/system_error_test.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -23,7 +23,7 @@
#include <iostream>
#ifdef BOOST_WINDOWS_API
-#include <winerror.h>
+#include <windows.h>
#endif
using boost::system::system_error;
@@ -41,10 +41,15 @@
BOOST_CHECK( ex.code().value() == v );
BOOST_CHECK( ex.code().category() == system_category );
# ifdef BOOST_WINDOWS_API
- BOOST_CHECK( std::string( ex.what() ) == str );
- if ( std::string( ex.what() ) != str )
- std::cout << "expected \"" << str << "\", but what() returned \""
- << ex.what() << "\"\n";
+ LANGID language_id = ::GetUserDefaultUILanguage();
+ // std::cout << "GetUserDefaultUILanguage() returns " << language_id << '\n';
+ if ( language_id == 0x0409 ) // English (United States)
+ {
+ BOOST_CHECK( std::string( ex.what() ) == str );
+ if ( std::string( ex.what() ) != str )
+ std::cout << "expected \"" << str << "\", but what() returned \""
+ << ex.what() << "\"\n";
+ }
# endif
}
Deleted: branches/bcbboost/libs/thread/build/Jamfile
==============================================================================
--- branches/bcbboost/libs/thread/build/Jamfile 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
+++ (empty file)
@@ -1,122 +0,0 @@
-# Copyright (C) 2001-2003
-# William E. Kempf
-#
-# 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)
-#
-# Boost.Threads build Jamfile
-#
-# Additional configuration variables used:
-# See threads.jam.
-
-# Declare the location of this subproject relative to the root.
-subproject libs/thread/build ;
-
-# Include threads.jam for Boost.Threads global build information.
-# This greatly simplifies the Jam code needed to configure the build
-# for the various Win32 build types.
-import ./threads ;
-
-{
- CPP_SOURCES =
- barrier
- condition
- exceptions
- mutex
- once
- recursive_mutex
- read_write_mutex
- thread
- tss_hooks
- tss_dll
- tss_pe
- tss
- xtime
- ;
-
- template boost_thread_lib_base
- : ## sources ##
- <template>thread_base
- ../src/$(CPP_SOURCES).cpp
- : ## requirements ##
- <sysinclude>$(BOOST_ROOT) #:should be unnecessary (because already included in thread_base)
- <define>BOOST_THREAD_BUILD_LIB=1
- # the common names rule ensures that the library will
- # be named according to the rules used by the install
- # and auto-link features:
- common-variant-tag
- : ## default build ##
- ;
-
- template boost_thread_dll_base
- : ## sources ##
- <template>thread_base
- ../src/$(CPP_SOURCES).cpp
- : ## requirements ##
- <sysinclude>$(BOOST_ROOT) #:should be unnecessary (because already included in thread_base)
- <define>BOOST_THREAD_BUILD_DLL=1
- <runtime-link>dynamic
- # the common names rule ensures that the library will
- # be named according to the rules used by the install
- # and auto-link features:
- common-variant-tag
- : ## default build ##
- ;
-
- lib $(boost_thread_lib_name)
- : ## sources ##
- <template>boost_thread_lib_base
- : ## requirements ##
- <define>BOOST_THREAD_LIB_NAME=$(boost_thread_lib_name)
- : ## default build ##
- ;
-
- dll $(boost_thread_lib_name)
- : ## sources ##
- <template>boost_thread_dll_base
- : ## requirements ##
- <define>BOOST_THREAD_LIB_NAME=$(boost_thread_lib_name)
- : ## default build ##
- ;
-
- stage bin-stage
- : <dll>$(boost_thread_lib_name)
- <lib>$(boost_thread_lib_name)
- ;
-
- install thread lib
- : <dll>$(boost_thread_lib_name)
- <lib>$(boost_thread_lib_name)
- ;
-
- if $(boost_thread_lib_settings_ptw32)
- {
- lib $(boost_thread_lib_name_ptw32)
- : ## sources ##
- <template>boost_thread_lib_base
- : ## requirements ##
- <define>BOOST_THREAD_LIB_NAME=$(boost_thread_lib_name_ptw32)
- $(boost_thread_lib_settings_ptw32)
- : ## default build ##
- ;
-
- dll $(boost_thread_lib_name_ptw32)
- : ## sources ##
- <template>boost_thread_dll_base
- : ## requirements ##
- <define>BOOST_THREAD_LIB_NAME=$(boost_thread_lib_name_ptw32)
- $(boost_thread_lib_settings_ptw32)
- : ## default build ##
- ;
-
- stage bin-stage
- : <dll>$(boost_thread_lib_name_ptw32)
- <lib>$(boost_thread_lib_name_ptw32)
- ;
-
- install thread lib
- : <dll>$(boost_thread_lib_name_ptw32)
- <lib>$(boost_thread_lib_name_ptw32)
- ;
- }
-}
Modified: branches/bcbboost/libs/thread/build/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/thread/build/Jamfile.v2 (original)
+++ branches/bcbboost/libs/thread/build/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -18,9 +18,9 @@
condition
exceptions
mutex
- once
+# once
recursive_mutex
- read_write_mutex
+# read_write_mutex
thread
tss_hooks
tss_dll
Deleted: branches/bcbboost/libs/thread/build/threads.jam
==============================================================================
--- branches/bcbboost/libs/thread/build/threads.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
+++ (empty file)
@@ -1,65 +0,0 @@
-# Copyright (C) 2001-2003
-# William E. Kempf
-#
-# 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)
-
-# Additional configuration variables used:
-# 1. PTW32_DIR and PTW32_LIB may be used on Win32 platforms to specify that
-# a version of Boost.Threads should be built that uses the
-# the pthreads-win32 library instead of the Win32 native threading APIs.
-# This feature is mostly used for testing and it's generally recommended
-# that you use the Win32 native threading libraries instead.
-#
-# PTW32_Dir should be set to the installation path of the
-# pthreads-win32 library and PTW32_LIB should be set to the name of the
-# library variant to link against (see the pthreads-win32 documentation).
-# Example: jam -sPTW32_DIR="c:\pthreads-win32" -sPTW32_LIB="pthreadVCE.lib"
-# Alternately, environment variables having the names PTW32_DIR and PTW32_LIB
-# can be set instead of passing these values on the command line.
-#
-# In either case, libraries having the names boost_thread_ptw32<tags>.dll
-# and libboost_thread_ptw32<tags>.lib will be built
-# in addition to the usual boost_thread<tags>.dll and
-# libboost_thread<tags>.lib. Link with one of the ptw32 versions
-# of the Boost.Threads libraries to use the version of Boost.Threads
-# that is implemented using pthreads-win32 (you will need to #define
-# BOOST_THREAD_NO_LIB or BOOST_ALL_NO_LIB to disable auto-linking
-# if your platform supports auto-linking in order to prevent
-# your build from attempting to link to two different versions of
-# the Boost.Threads library).
-
-# Do some OS-specific setup
-{
- #thread library name
- boost_thread_lib_name = boost_thread ;
-
- #thread library name with "pthreads-win32" library
- boost_thread_lib_name_ptw32 = boost_thread_ptw32 ;
-
- if $(NT)
- {
- if $(PTW32_DIR)
- {
- if $(PTW32_LIB)
- {
- boost_thread_lib_settings_ptw32 =
- <define>BOOST_HAS_PTHREADS
- <define>PtW32NoCatchWarn
- <include>$(PTW32_DIR)/pre-built/include
- <library-file>$(PTW32_DIR)/pre-built/lib/$(PTW32_LIB)
- ;
- }
- }
- }
-
- template thread_base
- : ## sources ##
- : ## requirements ##
- <sysinclude>$(BOOST_ROOT)
- <threading>multi
- <borland><*><cxxflags>-w-8004
- <borland><*><cxxflags>-w-8057
- : ## default build ##
- ;
-}
Deleted: branches/bcbboost/libs/thread/build/threads.mcp
==============================================================================
Binary files branches/bcbboost/libs/thread/build/threads.mcp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007) and (empty file) differ
Modified: branches/bcbboost/libs/thread/doc/acknowledgements.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/acknowledgements.xml (original)
+++ branches/bcbboost/libs/thread/doc/acknowledgements.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -63,6 +63,11 @@
Steve Cleary, Steven Kirk, Thomas Holenstein, Thomas Matelich, Trevor
Perrin, Valentin Bonnard, Vesa Karvonen, Wayne Miller, and William
Kempf.</para>
+ <para>
+ As of February 2006 Anthony Williams and Roland Schwarz took over maintainance
+ and further development of the library after it has been in an orphaned state
+ for a rather long period of time.
+ </para>
<para>Apologies for anyone inadvertently missed.</para>
</section>
Modified: branches/bcbboost/libs/thread/doc/build.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/build.xml (original)
+++ branches/bcbboost/libs/thread/doc/build.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -5,6 +5,7 @@
%thread.entities;
]>
<!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
+ Copyright (c) 2007 Roland Schwarz
Subject to the Boost Software License, Version 1.0.
(See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
-->
@@ -25,38 +26,112 @@
</para>
<section id="thread.build.building">
<title>Building the &Boost.Thread; Libraries</title>
- <para>
- To build the &Boost.Thread; libraries using &Boost.Build;, simply change to the
- directory <emphasis>boost_root</emphasis>/libs/thread/build and execute the command:
- <programlisting>bjam -sTOOLS=<emphasis>toolset</emphasis></programlisting>
- This will create the debug and the release builds of the &Boost.Thread; library.
- <note>Invoking the above command in <emphasis>boost_root</emphasis> will build all of
- the Boost distribution, including &Boost.Thread;.</note>
- </para>
- <para>
- The Jamfile supplied with &Boost.Thread; produces a dynamic link library named
- <emphasis>boost_thread{build-specific-tags}.{extension}</emphasis>, where the build-specific
- tags indicate the toolset used to build the library, whether it's a debug or release
- build, what version of Boost was used, etc.; and the extension is the appropriate extension
- for a dynamic link library for the platform for which &Boost.Thread; is being built.
- For instance, a debug library built for Win32 with VC++ 7.1 using Boost 1.31 would
- be named <emphasis>boost_thread-vc71-mt-gd-1_31.dll</emphasis>.
- </para>
- <para>
- The source files that are used to create the &Boost.Thread; library
- are all of the *.cpp files found in <emphasis>boost_root</emphasis>/libs/thread/src.
- These need to be built with the compiler's and linker's multi-threading support enabled.
- If you want to create your own build solution you'll have to follow these same
- guidelines. One of the most frequently reported problems when trying to do this
- occurs from not enabling the compiler's and linker's support for multi-threading.
- </para>
+ <para>
+ Building the &Boost.Thread; Library depends on how you intend to use it. You have several options:
+ <itemizedlist>
+ <listitem>
+ Using as a <link linkend="thread.build.precompiled">precompiled</link> library, possibly
+ with auto-linking, or for use from within an IDE.
+ </listitem>
+ <listitem>
+ Use from a <link linkend="thread.build.bjam">&Boost.Build;</link> project.
+ </listitem>
+ <listitem>
+ Using in <link linkend="thread.build.source">source</link> form.
+ </listitem>
+ </itemizedlist>
+ </para>
+ <section id="thread.build.precompiled">
+ <title>Precompiled</title>
+ <para>
+ Using the &Boost.Thread; library in precompiled form is the way to go if you want to
+ install the library to a standard place, from where your linker is able to resolve code
+ in binary form. You also will want this option if compile time is a concern. Multiple
+ variants are available, for different toolsets and build variants (debug/release).
+ The library files are named <emphasis>{lead}boost_thread{build-specific-tags}.{extension}</emphasis>,
+ where the build-specific-tags indicate the toolset used to build the library, whether it's
+ a debug or release build, what version of &Boost; was used, etc.; and the lead and extension
+ are the appropriate extensions for a dynamic link library or static library for the platform
+ for which &Boost.Thread; is being built.
+ For instance, a debug build of the dynamic library built for Win32 with VC++ 7.1 using Boost 1.34 would
+ be named <emphasis>boost_thread-vc71-mt-gd-1_34.dll</emphasis>.
+ More information on this should be available from the &Boost.Build; documentation.
+ </para>
+ <para>
+ Building should be possible with the default configuration. If you are running into problems,
+ it might be wise to adjust your local settings of &Boost.Build; though. Typically you will
+ need to get your user-config.jam file to reflect your environment, i.e. used toolsets. Please
+ refer to the &Boost.Build; documentation to learn how to do this.
+ </para>
+ <para>
+ To create the libraries you need to open a command shell and change to the
+ <emphasis>boost_root</emphasis> directory. From there you give the command
+ <programlisting>bjam --toolset=<emphasis>mytoolset</emphasis> stage --with-thread</programlisting>
+ Replace <emphasis>mytoolset</emphasis> with the name of your toolset, e.g. msvc-7.1 .
+ This will compile and put the libraries into the <emphasis>stage</emphasis> directory which is just below the
+ <emphasis>boost_root</emphasis> directory. &Boost.Build; by default will generate static and
+ dynamic variants for debug and release.
+ </para>
+ <note>
+ Invoking the above command without the --with-thread switch &Boost.Build; will build all of
+ the Boost distribution, including &Boost.Thread;.
+ </note>
+ <para>
+ The next step is to copy your libraries to a place where your linker is able to pick them up.
+ It is also quite possible to leave them in the stage directory and instruct your IDE to take them
+ from there.
+ </para>
+ <para>
+ In your IDE you then need to add <emphasis>boost_root</emphasis>/boost to the paths where the compiler
+ expects to find files to be included. For toolsets that support <emphasis>auto-linking</emphasis>
+ it is not necessary to explicitly specify the name of the library to link against, it is sufficient
+ to specify the path of the stage directory. Typically this is true on Windows. For gcc you need
+ to specify the exact library name (including all the tags). Please don't forget that threading
+ support must be turned on to be able to use the library. You should be able now to build your
+ project from the IDE.
+ </para>
+ </section>
+ <section id="thread.build.bjam">
+ <title>&Boost.Build; Project</title>
+ <para>
+ If you have decided to use &Boost.Build; as a build environment for your application, you simply
+ need to add a single line to your <emphasis>Jamroot</emphasis> file:
+ <programlisting>use-project /boost : {path-to-boost-root} ;</programlisting>
+ where <emphasis>{path-to-boost-root}</emphasis> needs to be replaced with the location of
+ your copy of the boost tree.
+ Later when you specify a component that needs to link against &Boost.Thread; you specify this
+ as e.g.:
+ <programlisting>exe myapp : {myappsources} /boost//thread ;</programlisting>
+ and you are done.
+ </para>
+ </section>
+ <section id="thread.build.source">
+ <title>Source Form</title>
+ <para>
+ Of course it is also possible to use the &Boost.Thread; library in source form.
+ First you need to specify the <emphasis>boost_root</emphasis>/boost directory as
+ a path where your compiler expects to find files to include. It is not easy
+ to isolate the &Boost.Thread; include files from the rest of the boost
+ library though. You would also need to isolate every include file that the thread
+ library depends on. Next you need to copy the files from
+ <emphasis>boost_root</emphasis>/libs/thread/src to your project and instruct your
+ build system to compile them together with your project. Please look into the
+ <emphasis>Jamfile</emphasis> in <emphasis>boost_root</emphasis>/libs/thread/build
+ to find out which compiler options and defines you will need to get a clean compile.
+ Using the boost library in this way is the least recommended, and should only be
+ considered if avoiding dependency on &Boost.Build; is a requirement. Even if so
+ it might be a better option to use the library in it's precompiled form.
+ Precompiled downloads are available from the boost consulting web site, or as
+ part of most linux distributions.
+ </para>
+ </section>
</section>
<section id="thread.build.testing">
<title>Testing the &Boost.Thread; Libraries</title>
<para>
- To test the &Boost.Thread; libraries using &Boost.Build;, simply change to the
- directory <emphasis>boost_root</emphasis>/libs/thread/test and execute the command:
- <programlisting>bjam -sTOOLS=<emphasis>toolset</emphasis> test</programlisting>
+ To test the &Boost.Thread; libraries using &Boost.Build;, simply change to the
+ directory <emphasis>boost_root</emphasis>/libs/thread/test and execute the command:
+ <programlisting>bjam --toolset=<emphasis>mytoolset</emphasis> test</programlisting>
</para>
</section>
</section>
Modified: branches/bcbboost/libs/thread/doc/concepts.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/concepts.xml (original)
+++ branches/bcbboost/libs/thread/doc/concepts.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -18,7 +18,17 @@
which allow only one thread at a time to access a resource when it is
being modified (the "Write" part of Read/Write), but allows multiple threads
to access a resource when it is only being referenced (the "Read" part of
- Read/Write).</para>
+ Read/Write).</para>
+ <note> Unfortunately it turned out that the current implementation of Read/Write Mutex has
+ some serious problems. So it was decided not to put this implementation into
+ release grade code. Also discussions on the mailing list led to the
+ conclusion that the current concepts need to be rethought. In particular
+ the schedulings <link linkend="thread.concepts.read-write-scheduling-policies.inter-class">
+ Inter-Class Scheduling Policies</link> are deemed unnecessary.
+ There seems to be common belief that a fair scheme suffices.
+ The following documentation has been retained however, to give
+ readers of this document the opportunity to study the original design.
+ </note>
<section id="thread.concepts.mutexes">
<title>Mutexes</title>
@@ -739,13 +749,18 @@
<section id="thread.concepts.read-write-mutexes">
<title>Read/Write Mutexes</title>
- <note>Since the read/write mutex and related classes are new,
- both interface and implementation are liable to change
- in future releases of &Boost.Thread;.
- The lock concepts and lock promotion and demotion in particular
- are still under discussion and very likely to change.</note>
+ <note> Unfortunately it turned out that the current implementation has
+ some serious problems. So it was decided not to put this implementation into
+ release grade code. Also discussions on the mailing list led to the
+ conclusion that the current concepts need to be rethought. In particular
+ the schedulings <link linkend="thread.concepts.read-write-scheduling-policies.inter-class">
+ Inter-Class Scheduling Policies</link> are deemed unnecessary.
+ There seems to be common belief that a fair scheme suffices.
+ The following documentation has been retained however, to give
+ readers of this document the opportunity to study the original design.
+ </note>
- <para>A read/write mutex (short for reader/writer mutual-exclusion) object
+ <para>A read/write mutex (short for reader/writer mutual-exclusion) object
is used to serialize access to a resource shared between multiple
threads, where multiple "readers" can share simultaneous access, but
"writers" require exclusive access. The
Modified: branches/bcbboost/libs/thread/doc/entities.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/entities.xml (original)
+++ branches/bcbboost/libs/thread/doc/entities.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -2,6 +2,7 @@
Subject to the Boost Software License, Version 1.0.
(See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
-->
+<!ENTITY Boost "<emphasis role='bold'>Boost</emphasis>">
<!ENTITY Boost.Thread "<emphasis role='bold'>Boost.Thread</emphasis>">
<!ENTITY Boost.Build "<emphasis role='bold'>Boost.Build</emphasis>">
<!ENTITY cite.AndrewsSchneider83 "<citation><xref
Modified: branches/bcbboost/libs/thread/doc/once-ref.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/once-ref.xml (original)
+++ branches/bcbboost/libs/thread/doc/once-ref.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -65,25 +65,23 @@
void thread_proc()
{
- boost::call_once(&init, once);
+ boost::call_once(once, &init);
}</programlisting>
</para></description>
- <parameter name="func">
- <paramtype>void (*func)()</paramtype>
- </parameter>
-
<parameter name="flag">
<paramtype>once_flag&</paramtype>
</parameter>
-
- <requires>The function <code>func</code> shall not throw
- exceptions.</requires>
+
+ <parameter name="func">
+ <paramtype>Function func</paramtype>
+ </parameter>
<effects>As if (in an atomic fashion):
- <code>if (flag == BOOST_ONCE_INIT) func();</code></effects>
+ <code>if (flag == BOOST_ONCE_INIT) func();</code>. If <code>func()</code> throws an exception, it shall be as if this
+thread never invoked <code>call_once</code></effects>
- <postconditions><code>flag != BOOST_ONCE_INIT</code>
+ <postconditions><code>flag != BOOST_ONCE_INIT</code> unless <code>func()</code> throws an exception.
</postconditions>
</function>
</namespace>
Modified: branches/bcbboost/libs/thread/doc/read_write_mutex-ref.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/read_write_mutex-ref.xml (original)
+++ branches/bcbboost/libs/thread/doc/read_write_mutex-ref.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -37,6 +37,16 @@
<purpose>
<para>The <classname>read_write_mutex</classname> class is a model of the
<link linkend="thread.concepts.ReadWriteMutex">ReadWriteMutex</link> concept.</para>
+ <note> Unfortunately it turned out that the current implementation of Read/Write Mutex has
+ some serious problems. So it was decided not to put this implementation into
+ release grade code. Also discussions on the mailing list led to the
+ conclusion that the current concepts need to be rethought. In particular
+ the schedulings <link linkend="thread.concepts.read-write-scheduling-policies.inter-class">
+ Inter-Class Scheduling Policies</link> are deemed unnecessary.
+ There seems to be common belief that a fair scheme suffices.
+ The following documentation has been retained however, to give
+ readers of this document the opportunity to study the original design.
+ </note>
</purpose>
<description>
@@ -160,6 +170,16 @@
<purpose>
<para>The <classname>try_read_write_mutex</classname> class is a model of the
<link linkend="thread.concepts.TryReadWriteMutex">TryReadWriteMutex</link> concept.</para>
+ <note> Unfortunately it turned out that the current implementation of Read/Write Mutex has
+ some serious problems. So it was decided not to put this implementation into
+ release grade code. Also discussions on the mailing list led to the
+ conclusion that the current concepts need to be rethought. In particular
+ the schedulings <link linkend="thread.concepts.read-write-scheduling-policies.inter-class">
+ Inter-Class Scheduling Policies</link> are deemed unnecessary.
+ There seems to be common belief that a fair scheme suffices.
+ The following documentation has been retained however, to give
+ readers of this document the opportunity to study the original design.
+ </note>
</purpose>
<description>
@@ -302,6 +322,16 @@
<purpose>
<para>The <classname>timed_read_write_mutex</classname> class is a model of the
<link linkend="thread.concepts.TimedReadWriteMutex">TimedReadWriteMutex</link> concept.</para>
+ <note> Unfortunately it turned out that the current implementation of Read/Write Mutex has
+ some serious problems. So it was decided not to put this implementation into
+ release grade code. Also discussions on the mailing list led to the
+ conclusion that the current concepts need to be rethought. In particular
+ the schedulings <link linkend="thread.concepts.read-write-scheduling-policies.inter-class">
+ Inter-Class Scheduling Policies</link> are deemed unnecessary.
+ There seems to be common belief that a fair scheme suffices.
+ The following documentation has been retained however, to give
+ readers of this document the opportunity to study the original design.
+ </note>
</purpose>
<description>
Modified: branches/bcbboost/libs/thread/doc/reference.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/reference.xml (original)
+++ branches/bcbboost/libs/thread/doc/reference.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -17,6 +17,12 @@
<xi:include href="mutex-ref.xml"/>
<xi:include href="once-ref.xml"/>
<xi:include href="recursive_mutex-ref.xml"/>
+<!--
+ The read_write_mutex is held back from release, since the
+ implementation suffers from a serious, yet unresolved bug.
+ The implementation is likely to appear in a reworked
+ form in the next release.
+-->
<xi:include href="read_write_mutex-ref.xml"/>
<xi:include href="thread-ref.xml"/>
<xi:include href="tss-ref.xml"/>
Modified: branches/bcbboost/libs/thread/doc/release_notes.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/release_notes.xml (original)
+++ branches/bcbboost/libs/thread/doc/release_notes.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -10,7 +10,63 @@
-->
<section id="thread.release_notes" last-revision="$Date$">
<title>Release Notes</title>
- <section id="thread.release_notes.boost_1_32_0">
+ <section id="thread.release_notes.boost_1_34_0">
+ <title>Boost 1.34.0</title>
+
+ <section id="thread.release_notes.boost_1_34_0.change_log.maintainance">
+ <title>New team of maintainers</title>
+
+ <para>
+ Since the original author William E. Kempf no longer is available to
+ maintain the &Boost.Thread; library, a new team has been formed
+ in an attempt to continue the work on &Boost.Thread;.
+ Fortunately William E. Kempf has given
+ <ulink url="http://lists.boost.org/Archives/boost/2006/09/110143.php">
+ permission </ulink>
+ to use his work under the boost license.
+ </para>
+ <para>
+ The team currently consists of
+ <itemizedlist>
+ <listitem>
+ Anthony Williams, for the Win32 platform,
+ </listitem>
+ <listitem>
+ Roland Schwarz, for the linux platform, and various "housekeeping" tasks.
+ </listitem>
+ </itemizedlist>
+ Volunteers for other platforms are welcome!
+ </para>
+ <para>
+ As the &Boost.Thread; was kind of orphaned over the last release, this release
+ attempts to fix the known bugs. Upcoming releases will bring in new things.
+ </para>
+ </section>
+
+ <section id="thread.release_notes.boost_1_34_0.change_log.read_write_mutex">
+ <title>read_write_mutex still broken</title>
+
+ <para>
+ <note>
+ It has been decided not to release the Read/Write Mutex, since the current
+ implementation suffers from a serious bug. The documentation of the concepts
+ has been included though, giving the interested reader an opportunity to study the
+ original concepts. Please refer to the following links if you are interested
+ which problems led to the decision to held back this mutex type.The issue
+ has been discovered before 1.33 was released and the code has
+ been omitted from that release. A reworked mutex is expected to appear in 1.35.
+ Also see:
+ <ulink url="http://lists.boost.org/Archives/boost/2005/08/92307.php">
+ read_write_mutex bug</ulink>
+ and
+ <ulink url="http://lists.boost.org/Archives/boost/2005/09/93180.php">
+ read_write_mutex fundamentally broken in 1.33</ulink>
+ </note>
+ </para>
+ </section>
+
+ </section>
+ <section id="thread.release_notes.boost_1_32_0">
<title>Boost 1.32.0</title>
<section id="thread.release_notes.boost_1_32_0.change_log.documentation">
Modified: branches/bcbboost/libs/thread/doc/thread-ref.xml
==============================================================================
--- branches/bcbboost/libs/thread/doc/thread-ref.xml (original)
+++ branches/bcbboost/libs/thread/doc/thread-ref.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -264,20 +264,7 @@
<effects>Calls <code>join()</code> on each of the managed
<classname>thread</classname> objects.</effects>
</method>
- </method-group>
-
- <method-group name="capacity">
-
- <method name="size" cv="const">
- <type>int</type>
-
- <returns>the number of <classname>thread</classname>
- objects in the group
- </returns>
-
- </method>
-
- </method-group>
+ </method-group>
</class>
</namespace>
</header>
Modified: branches/bcbboost/libs/thread/src/condition.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/condition.cpp (original)
+++ branches/bcbboost/libs/thread/src/condition.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -27,6 +27,12 @@
# include "mac/safe.hpp"
#endif
+// The following include can be removed after the bug on QNX
+// has been tracked down. I need this only for debugging
+//#if !defined(NDEBUG) && defined(BOOST_HAS_PTHREADS)
+#include <iostream>
+//#endif
+
namespace boost {
namespace detail {
@@ -373,6 +379,20 @@
int res = 0;
res = pthread_cond_timedwait(&m_condition, pmutex, &ts);
+// Test code for QNX debugging, to get information during regressions
+#ifndef NDEBUG
+ if (res == EINVAL) {
+ boost::xtime now;
+ boost::xtime_get(&now, boost::TIME_UTC);
+ std::cerr << "now: " << now.sec << " " << now.nsec << std::endl;
+ std::cerr << "time: " << time(0) << std::endl;
+ std::cerr << "xtime: " << xt.sec << " " << xt.nsec << std::endl;
+ std::cerr << "ts: " << ts.tv_sec << " " << ts.tv_nsec << std::endl;
+ std::cerr << "pmutex: " << pmutex << std::endl;
+ std::cerr << "condition: " << &m_condition << std::endl;
+ assert(res != EINVAL);
+ }
+#endif
assert(res == 0 || res == ETIMEDOUT);
return res != ETIMEDOUT;
Modified: branches/bcbboost/libs/thread/src/mutex.inl
==============================================================================
--- branches/bcbboost/libs/thread/src/mutex.inl (original)
+++ branches/bcbboost/libs/thread/src/mutex.inl 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -24,13 +24,21 @@
version_info.dwMajorVersion >= 4)
{
if (HMODULE kernel_module = GetModuleHandle(TEXT("KERNEL32.DLL")))
- g_TryEnterCriticalSection = reinterpret_cast<TryEnterCriticalSection_type>(GetProcAddress(kernel_module, TEXT("TryEnterCriticalSection")));
+ {
+ g_TryEnterCriticalSection = reinterpret_cast<TryEnterCriticalSection_type>(
+#if defined(BOOST_NO_ANSI_APIS)
+ GetProcAddressW(kernel_module, L"TryEnterCriticalSection")
+#else
+ GetProcAddress(kernel_module, "TryEnterCriticalSection")
+#endif
+ );
+ }
}
}
inline bool has_TryEnterCriticalSection()
{
- boost::call_once(init_TryEnterCriticalSection, once_init_TryEnterCriticalSection);
+ boost::call_once(once_init_TryEnterCriticalSection, init_TryEnterCriticalSection);
return g_TryEnterCriticalSection != 0;
}
@@ -62,9 +70,11 @@
inline void* new_mutex(const char* name)
{
#if defined(BOOST_NO_ANSI_APIS)
- int num_wide_chars = (strlen(name) + 1);
- LPWSTR wide_name = (LPWSTR)_alloca( num_wide_chars * 2 );
- ::MultiByteToWideChar(CP_ACP, 0, name, -1, wide_name, num_wide_chars);
+ int const num_wide_chars = ::MultiByteToWideChar(CP_ACP, 0, name, -1, 0, 0);
+ LPWSTR const wide_name = (LPWSTR)_alloca( (num_wide_chars+1) * 2 );
+ int const res=::MultiByteToWideChar(CP_ACP, 0, name, -1, wide_name, num_wide_chars);
+ if(!res)
+ throw boost::thread_resource_error();
HANDLE mutex = CreateMutexW(0, 0, wide_name);
#else
HANDLE mutex = CreateMutexA(0, 0, name);
Modified: branches/bcbboost/libs/thread/src/once.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/once.cpp (original)
+++ branches/bcbboost/libs/thread/src/once.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,72 +1,21 @@
// Copyright (C) 2001-2003
// William E. Kempf
+// Copyright (C) 2007 Anthony Williams
//
// 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/thread/detail/config.hpp>
+#ifdef BOOST_HAS_MPTASKS
#include <boost/detail/workaround.hpp>
#include <boost/thread/once.hpp>
-#include <boost/thread/exceptions.hpp>
#include <cstdio>
#include <cassert>
+#include <Multiprocessing.h>
-#if defined(BOOST_HAS_WINTHREADS)
-# if BOOST_WORKAROUND(__BORLANDC__,<= 0x551)
- using std::size_t;
-# endif
-# include <windows.h>
-# include "mutex.inl"
-# if defined(BOOST_NO_STRINGSTREAM)
-# include <strstream>
-
-class unfreezer
-{
-public:
- unfreezer(std::ostrstream& s) : m_stream(s) {}
- ~unfreezer() { m_stream.freeze(false); }
-private:
- std::ostrstream& m_stream;
-};
-
-# else
-# include <sstream>
-# endif
-#elif defined(BOOST_HAS_MPTASKS)
-# include <Multiprocessing.h>
-#endif
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std { using ::sprintf; }
-#endif
-
-#if defined(BOOST_HAS_PTHREADS)
-namespace {
-pthread_key_t key;
-pthread_once_t once = PTHREAD_ONCE_INIT;
-
-typedef void (*once_callback)();
-}
-
-extern "C" {
-
- static void key_init()
- {
- pthread_key_create(&key, 0);
- }
-
- static void do_once()
- {
- once_callback* cb = reinterpret_cast<once_callback*>(
- pthread_getspecific(key));
- (**cb)();
- }
-
-}
-#elif defined(BOOST_HAS_MPTASKS)
namespace {
void *remote_call_proxy(void *pData)
{
@@ -83,113 +32,10 @@
}
}
-#elif defined(BOOST_HAS_WINTHREADS)
-namespace {
-// The signature for InterlockedCompareExchange has changed with the
-// addition of Win64 support. I can't determine any (consistent and
-// portable) way of using conditional compilation to detect this, so
-// we use these type wrappers. Unfortunately, the various vendors
-// use different calling conventions and other signature anamolies,
-// and thus have unique types as well. This is known to work on VC6,
-// VC7, Borland 5.5.2 and gcc 3.2. Are there other signatures for
-// other platforms?
-inline LONG ice_wrapper(LONG (__stdcall *ice)(LONG*, LONG, LONG),
- volatile LONG* dest, LONG exch, LONG cmp)
-{
- return (*ice)(const_cast<LONG*>(dest), exch, cmp);
-}
-
-inline LONG ice_wrapper(LONG (__stdcall *ice)(volatile LONG*, LONG, LONG),
- volatile LONG* dest, LONG exch, LONG cmp)
-{
- return (*ice)(dest, exch, cmp);
-}
-
-inline LONG ice_wrapper(LPVOID (__stdcall *ice)(LPVOID*, LPVOID, LPVOID),
- volatile LONG* dest, LONG exch, LONG cmp)
-{
- return (LONG)(*ice)((LPVOID*)dest, (LPVOID)exch, (LPVOID)cmp);
-}
-
-// The friendly form of InterlockedCompareExchange that defers
-// according to the above function type wrappers.
-inline LONG compare_exchange(volatile LPLONG dest, LONG exch, LONG cmp)
-{
-#ifdef _WIN64
- return InterlockedCompareExchange(dest, exch, cmp);
-#else
- return ice_wrapper(&InterlockedCompareExchange, dest, exch, cmp);
-#endif
-}
-}
-#endif
-
namespace boost {
-void call_once(void (*func)(), once_flag& flag)
+ void call_once(once_flag& flag, void (*func)())
{
-#if defined(BOOST_HAS_WINTHREADS)
- if (compare_exchange(&flag, 1, 1) == 0)
- {
-#if defined(BOOST_NO_STRINGSTREAM)
- std::ostrstream strm;
- strm << "2AC1A572DB6944B0A65C38C4140AF2F4"
- << std::hex
- << GetCurrentProcessId()
- << &flag
- << std::ends;
- unfreezer unfreeze(strm);
- HANDLE mutex=new_mutex(strm.str());
-#else
-# if defined (BOOST_NO_ANSI_APIS)
- std::wostringstream strm;
- strm << L"2AC1A572DB6944B0A65C38C4140AF2F4"
- << std::hex
- << GetCurrentProcessId()
- << &flag;
- HANDLE mutex = CreateMutexW(NULL, FALSE, strm.str().c_str());
-# else
- std::ostringstream strm;
- strm << "2AC1A572DB6944B0A65C38C4140AF2F4"
- << std::hex
- << GetCurrentProcessId()
- << &flag;
- HANDLE mutex = CreateMutexA(NULL, FALSE, strm.str().c_str());
-# endif
-#endif
- assert(mutex != NULL);
-
- int res = 0;
- res = WaitForSingleObject(mutex, INFINITE);
- assert(res == WAIT_OBJECT_0);
-
- if (compare_exchange(&flag, 1, 1) == 0)
- {
- try
- {
- func();
- }
- catch (...)
- {
- res = ReleaseMutex(mutex);
- assert(res);
- res = CloseHandle(mutex);
- assert(res);
- throw;
- }
- InterlockedExchange(&flag, 1);
- }
-
- res = ReleaseMutex(mutex);
- assert(res);
- res = CloseHandle(mutex);
- assert(res);
- }
-#elif defined(BOOST_HAS_PTHREADS)
- pthread_once(&once, &key_init);
- pthread_setspecific(key, &func);
- pthread_once(&flag, do_once);
-#elif defined(BOOST_HAS_MPTASKS)
if(flag == false)
{
// all we do here is make a remote call to blue, as blue is not
@@ -198,10 +44,7 @@
MPRemoteCall(remote_call_proxy, &sData, kMPOwningProcessRemoteContext);
assert(flag == true);
}
-#endif
}
}
-
-// Change Log:
-// 1 Aug 01 WEKEMPF Initial version.
+#endif
Deleted: branches/bcbboost/libs/thread/src/read_write_mutex.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/read_write_mutex.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
+++ (empty file)
@@ -1,1732 +0,0 @@
-// Copyright (C) 2002-2003
-// David Moore, William E. Kempf, Michael Glassford
-//
-// 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)
-
-/*
-PROBLEMS:
-
-The algorithms are not exception safe. For instance, if conditon::wait()
-or another call throws an exception, the lock state and other state data
-are not appropriately adjusted.
-
-A harder problem to fix is that, if a thread is killed while inside the
-read-write mutex functions (for example, while waiting),
-bad things happen.
-*/
-
-#include <boost/thread/detail/config.hpp>
-
-#include <boost/assert.hpp>
-#include <boost/thread/read_write_mutex.hpp>
-#include <boost/thread/xtime.hpp>
-
-#include <boost/detail/workaround.hpp>
-
-#if !defined(BOOST_NO_STRINGSTREAM)
-# include <sstream>
-#endif
-
-#ifdef BOOST_HAS_WINTHREADS
-# include <windows.h>
-# include <tchar.h>
-# include <stdio.h>
-
-# if !((_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400))
- inline bool IsDebuggerPresent(void)
- {
- return false;
- }
-# endif
-# if !defined(OutputDebugString)
- inline void OutputDebugStringA(LPCSTR)
- {}
- inline void OutputDebugStringW(LPCWSTR)
- {}
- #define OutputDebugString(str)
-# endif
-
-# if defined(BOOST_READ_WRITE_MUTEX_USE_TRACE) && !defined(BOOST_NO_STRINGSTREAM)
- inline void DoTrace(
- const char* message,
- int state,
- int num_waiting_writers,
- int num_waiting_readers,
- bool state_waiting_promotion,
- int num_waking_writers,
- int num_waking_readers,
- int num_max_waking_writers,
- int num_max_waking_readers,
- bool readers_next
- )
- {
- std::ostringstream stream;
- stream
- << std::endl
- << "***** "
- << std::hex << GetCurrentThreadId() << std::dec << " "
- << message << " "
- << state << " "
- << "["
- << num_waiting_writers << " "
- << num_waking_writers << " "
- << num_max_waking_writers
- << "] ["
- << num_waiting_readers << " "
- << num_waking_readers << " "
- << num_max_waking_readers
- << "]" << " "
- << state_waiting_promotion << " "
- << readers_next
- << std::endl;
- ::OutputDebugStringA(stream.str().c_str());
- }
-
-# define BOOST_READ_WRITE_MUTEX_TRACE(message) \
- DoTrace( \
- message, \
- m_state, \
- m_num_waiting_writers, \
- m_num_waiting_readers, \
- m_state_waiting_promotion, \
- m_num_waking_writers, \
- m_num_waking_readers, \
- m_num_max_waking_writers, \
- m_num_max_waking_readers, \
- m_readers_next \
- )
-# endif
-#endif
-
-#if !defined(BOOST_READ_WRITE_MUTEX_TRACE)
-# define BOOST_READ_WRITE_MUTEX_TRACE(message)
-#endif
-
-#if defined(BOOST_ASSERT)
-# define BOOST_ASSERT_ELSE(expr) if ((BOOST_ASSERT(expr)), true)
-#else
-# define BOOST_ASSERT_ELSE(expr) if (true)
-#endif
-
-//The following macro checks for invalid loop conditions
-//by checking for wait loops that loop more than once.
-//Please note that this does not necessarily indicate any
-//kind of error; there are several valid reasons for
-//a wait loop to loop more than once. For instance:
-//1) if a condition signals a spurious wakeup,
-// it should wait again;
-//2) if a several waiting threads (e.g. readers) are
-// notified, and the first to wake changes conditions
-// so that the others should no longer wake (e.g.
-// by promoting itself to a writer), the wait loops
-// of the other threads, when they wake, will loop again
-// and they will wait again.
-//For this reason, the BOOST_ASSERT_LOOP_COUNT is only
-//enabled when specifically requested by #defining
-//the BOOST_READ_WRITE_MUTEX_TEST_LOOP_COUNTS macro.
-
-#if defined(BOOST_READ_WRITE_MUTEX_TEST_LOOP_COUNTS)
-# define BOOST_DEFINE_LOOP_COUNT int loop_count = 0;
-# define BOOST_ASSERT_LOOP_COUNT() BOOST_ASSERT(++loop_count == 1)
-#else
-# define BOOST_DEFINE_LOOP_COUNT do {} while(false);
-# define BOOST_ASSERT_LOOP_COUNT() do {} while(false)
-#endif
-
-bool boost_error(char const* expr, char const* func, char const* file, long line)
-{
- #if WINVER
- using namespace std;
-
- #ifndef ELEMENTS
- #define ELEMENTS(a) (sizeof(a)/sizeof(*(a)))
- #endif
-
- TCHAR message[200];
- _sntprintf(message,ELEMENTS(message),TEXT("Assertion failed (func=%s, file=%s, line=%d): %s"), func, file, line, expr);
-
- ::OutputDebugString(message);
-
- if(::IsDebuggerPresent())
- ::DebugBreak();
- #endif
-
- return false;
-}
-
-namespace boost {
-namespace detail {
-namespace thread {
-
-//----------------------------------------
-
-inline bool valid_lock_state(int state)
-{
- return (state >= 0) || (state == -1);
-}
-
-inline bool valid_read_write_locked(int state)
-{
- return state != 0;
-}
-
-inline bool valid_read_locked(int state)
-{
- return state > 0;
-}
-
-inline bool valid_read_lockable(int state)
-{
- return state >= 0;
-}
-
-inline bool valid_write_locked(int state)
-{
- return state == -1;
-}
-
-inline bool valid_write_lockable(int state)
-{
- return state == 0;
-}
-
-inline bool valid_promotable(int state)
-{
- return state == 1;
-}
-
-inline bool valid_unlocked(int state)
-{
- return state == 0;
-}
-
-//----------------------------------------
-
-class adjust_state
-{
-public:
-
- adjust_state(bool& state, bool adjust = true)
- : state_(state)
- , adjust_(adjust)
- {
- if (adjust_)
- state_ = true;
- }
-
- ~adjust_state(void)
- {
- adjust_now();
- }
-
- void set_adjust(bool adjust)
- {
- adjust_ = adjust;
- }
-
- void adjust_now(void)
- {
- if (adjust_)
- {
- BOOST_ASSERT(state_);
- state_ = false;
- }
- else
- {
- BOOST_ASSERT(!state_);
- }
- adjust_ = false;
- }
-
-private:
-
- bool& state_;
- bool adjust_;
-};
-
-//----------------------------------------
-
-class adjust_count
-{
-public:
-
- adjust_count(int& count, bool adjust = true)
- : count_(count)
- , adjust_(adjust)
- {
- if (adjust_)
- ++count_;
- }
-
- ~adjust_count(void)
- {
- adjust_now();
- }
-
- void set_adjust(bool adjust)
- {
- adjust_ = adjust;
- }
-
- void adjust_now(void)
- {
- if (adjust_)
- {
- BOOST_ASSERT(count_ > 0);
- if (count_ > 0)
- --count_;
- }
- else
- {
- BOOST_ASSERT(count_ >= 0);
- }
- adjust_ = false;
- }
-
-private:
-
- int& count_;
- bool adjust_;
-};
-
-//----------------------------------------
-
-/*
-Because of the possibility that threads that call
-timed_wait may timeout instead of waking, even after
-they have been notified, the counters m_num_waking_writers
-and m_num_waking_readers cannot be exact, but rather keep
-track of the minimum number of writers and readers (respectively)
-that are waking. For this reason, adjust_count may decrement
-too many times. The max_count mechanism is an attempt to
-keep track of the maximum as well.
-*/
-
-class adjust_dual_count
-{
-public:
-
- adjust_dual_count(int& count, int& max_count, bool adjust = true)
- : count_(count)
- , max_count_(max_count)
- , adjust_(adjust)
- {
- BOOST_ASSERT(&max_count_ != &count_);
- BOOST_ASSERT(max_count_ >= count_);
-
- if (adjust_)
- {
- ++count_;
- ++max_count_;
- }
- }
-
- ~adjust_dual_count(void)
- {
- adjust_now();
- }
-
- void set_adjust(bool adjust)
- {
- adjust_ = adjust;
- }
-
- void adjust_now(void)
- {
- BOOST_ASSERT(max_count_ >= count_);
-
- if (adjust_)
- {
- BOOST_ASSERT(max_count_ > 0);
- if (count_ > 0)
- --count_;
- if (max_count_ > 0)
- --max_count_;
- }
- else
- {
- BOOST_ASSERT(max_count_ >= 0);
- }
- adjust_ = false;
- }
-
-private:
-
- int& count_;
- int& max_count_;
- bool adjust_;
-};
-
-//----------------------------------------
-
-template<typename Mutex>
-read_write_mutex_impl<Mutex>::read_write_mutex_impl(read_write_scheduling_policy::read_write_scheduling_policy_enum sp)
- : m_sp(sp)
- , m_state(0)
- , m_num_waiting_writers(0)
- , m_num_waiting_readers(0)
- , m_state_waiting_promotion(false)
- , m_num_waking_writers(0)
- , m_num_waking_readers(0)
- , m_num_max_waking_writers(0)
- , m_num_max_waking_readers(0)
- , m_readers_next(true)
-{}
-
-#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x564)
-template<typename Mutex>
-read_write_mutex_impl<Mutex>::~read_write_mutex_impl()
-{
- BOOST_ASSERT(valid_unlocked(m_state));
-
- BOOST_ASSERT(m_num_waiting_writers == 0);
- BOOST_ASSERT(m_num_waiting_readers == 0);
- BOOST_ASSERT(!m_state_waiting_promotion);
-
- BOOST_ASSERT(m_num_waking_writers == 0);
- BOOST_ASSERT(m_num_max_waking_writers == 0);
- BOOST_ASSERT(m_num_waking_readers == 0);
- BOOST_ASSERT(m_num_max_waking_readers == 0);
-}
-#endif
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_read_lock()
-{
- typename Mutex::scoped_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_read_lock() enter");
- BOOST_ASSERT(valid_lock_state(m_state));
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- //Reader priority: wait while write-locked
-
- BOOST_DEFINE_LOOP_COUNT;
- adjust_dual_count adjust_waking(m_num_waking_readers, m_num_max_waking_readers, false);
- while (m_state == -1)
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_readers);
- adjust_waking.set_adjust(true);
- m_waiting_readers.wait(l);
- };
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- //Writer priority: wait while write-locked or while writers are waiting
-
- BOOST_DEFINE_LOOP_COUNT;
- adjust_dual_count adjust_waking(m_num_waking_readers, m_num_max_waking_readers, false);
-//: if (m_num_waiting_writers > 0 && m_num_waking_writers == 0)
-//: do_wake_one_writer();
- while (m_state == -1 || (m_num_waking_writers > 0) || (m_num_waiting_writers > 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_readers);
- adjust_waking.set_adjust(true);
- m_waiting_readers.wait(l);
- }
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_single_read || m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- //Alternating priority: wait while write-locked or while not readers' turn
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_readers, m_num_max_waking_readers, false);
- while (m_state == -1 || (m_num_waiting_writers > 0 && m_num_waking_readers == 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_readers);
- adjust_waking.set_adjust(true);
- m_waiting_readers.wait(l);
- }
- }
-
- //Obtain a read lock
-
- BOOST_ASSERT(valid_read_lockable(m_state));
- ++m_state;
-
- /*
- Set m_readers_next in the lock function rather than the
- unlock function to prevent thread starvation that can happen,
- e.g., like this: if all writer threads demote themselves
- to reader threads before unlocking, they will unlock using
- do_read_unlock() which will set m_readers_next = false;
- if there are enough writer threads, this will prevent any
- "true" reader threads from ever obtaining the lock.
- */
-
- m_readers_next = false;
-
- BOOST_ASSERT(valid_read_locked(m_state));
- BOOST_READ_WRITE_MUTEX_TRACE("do_read_lock() exit");
-}
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_write_lock()
-{
- typename Mutex::scoped_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_write_lock() enter");
- BOOST_ASSERT(valid_lock_state(m_state));
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- //Reader priority: wait while locked or while readers are waiting
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
-//: if (m_num_waiting_readers > 0 && m_num_waking_readers == 0)
-//: do_wake_all_readers();
- while (m_state != 0 || (m_num_waking_readers > 0) || (m_num_waiting_readers > 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_waking.set_adjust(true);
- m_waiting_writers.wait(l);
- }
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- //Writer priority: wait while locked
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
- while (m_state != 0)
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_waking.set_adjust(true);
- m_waiting_writers.wait(l);
- }
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_single_read || m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- //Shut down extra readers that were scheduled only because of no waiting writers
-
- if (m_sp == read_write_scheduling_policy::alternating_single_read && m_num_waiting_writers == 0)
- m_num_waking_readers = (m_readers_next && m_num_waking_readers > 0) ? 1 : 0;
-
- //Alternating priority: wait while locked or while not writers' turn
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
- while (m_state != 0 || (m_num_waking_readers > 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_waking.set_adjust(true);
- m_waiting_writers.wait(l);
- }
- }
-
- //Obtain a write lock
-
- BOOST_ASSERT(valid_write_lockable(m_state));
- m_state = -1;
-
- //See note in read_write_mutex_impl<>::do_read_lock() as to why
- //m_readers_next should be set here
-
- m_readers_next = true;
-
- BOOST_ASSERT(valid_write_locked(m_state));
- BOOST_READ_WRITE_MUTEX_TRACE("do_write_lock() exit");
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_try_read_lock()
-{
- typename Mutex::scoped_try_lock l(m_prot);
- BOOST_ASSERT(valid_lock_state(m_state));
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_read_lock() enter");
-
- if (!l.locked())
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_read_lock() exit 1");
- return false;
- }
-
- bool fail;
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- //Reader priority: fail if write-locked
- fail = (m_state == -1);
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- //Writer priority: fail if write-locked or if writers are waiting
- fail = (m_state == -1 || m_num_waiting_writers > 0);
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_single_read || m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- //Alternating priority: fail if write-locked or if not readers' turn
- fail = (m_state == -1 || (m_num_waiting_writers > 0 && m_num_waking_readers == 0));
- }
-
- if (!fail)
- {
- //Obtain a read lock
-
- BOOST_ASSERT(valid_read_lockable(m_state));
- ++m_state;
-
- //See note in read_write_mutex_impl<>::do_read_lock() as to why
- //m_readers_next should be set here
-
- m_readers_next = false;
-
- BOOST_ASSERT(valid_read_locked(m_state));
- //Should be read-locked
- }
- else
- {
- BOOST_ASSERT(valid_write_locked(m_state) || m_num_waiting_writers > 0);
- //Should be write-locked or
- //writer should be waiting
- }
-
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_read_lock() exit 2");
- return !fail;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_try_write_lock()
-{
- typename Mutex::scoped_try_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_write_lock() enter");
- BOOST_ASSERT(valid_lock_state(m_state));
-
- if (!l.locked())
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_write_lock() exit 1");
- return false;
- }
-
- bool fail;
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- //Reader priority: fail if locked or if readers are waiting
- fail = (m_state != 0 || m_num_waiting_readers > 0);
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- //Writer priority: fail if locked
- fail = (m_state != 0);
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_single_read || m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- //Alternating priority: fail if locked or if not writers' turn
- fail = (m_state != 0 || m_num_waking_readers > 0);
- }
-
- if (!fail)
- {
- //Obtain a write lock
-
- BOOST_ASSERT(valid_write_lockable(m_state));
- m_state = -1;
-
- //See note in read_write_mutex_impl<>::do_read_lock() as to why
- //m_readers_next should be set here
-
- m_readers_next = true;
-
- BOOST_ASSERT(valid_write_locked(m_state));
- //Should be write-locked
- }
- else
- {
- BOOST_ASSERT(valid_read_write_locked(m_state) || m_num_waiting_readers > 0);
- //Should be read-locked or write-locked, or
- //reader should be waiting
- }
-
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_write_lock() exit 2");
- return !fail;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_timed_read_lock(const boost::xtime &xt)
-{
- typename Mutex::scoped_timed_lock l(m_prot, xt);
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_read_lock() enter");
- BOOST_ASSERT(valid_lock_state(m_state));
-
- if (!l.locked())
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_read_lock() exit 1");
- return false;
- }
-
- bool fail = false;
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- //Reader priority: wait while write-locked
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_readers, m_num_max_waking_readers, false);
- while (m_state == -1)
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_readers);
- adjust_waking.set_adjust(true);
- if (!m_waiting_readers.timed_wait(l, xt))
- {
- ++m_num_max_waking_readers;
- fail = true;
- break;
- }
- }
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- //Writer priority: wait while write-locked or while writers are waiting
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_readers, m_num_max_waking_readers, false);
-//: if (m_num_waiting_writers > 0 && m_num_waking_writers == 0)
-//: do_wake_one_writer();
- while (m_state == -1 || (m_num_waking_writers > 0) || (m_num_waiting_writers > 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_readers);
- adjust_waking.set_adjust(true);
- if (!m_waiting_readers.timed_wait(l, xt))
- {
- ++m_num_max_waking_readers;
- fail = true;
- break;
- }
- }
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_single_read || m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- //Alternating priority: wait while write-locked or while not readers' turn
-
- BOOST_DEFINE_LOOP_COUNT
- while (m_state == -1 || (m_num_waiting_writers > 0 && m_num_waking_readers == 0 && waker_exists()))
- {
- adjust_dual_count adjust_waking(m_num_waking_readers, m_num_max_waking_readers, false);
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_readers);
- adjust_waking.set_adjust(true);
- if (!m_waiting_readers.timed_wait(l, xt))
- {
- ++m_num_max_waking_readers;
- fail = true;
- break;
- }
- }
- }
-
- if (!fail)
- {
- //Obtain a read lock
-
- BOOST_ASSERT(valid_read_lockable(m_state));
- ++m_state;
-
- //See note in read_write_mutex_impl<>::do_read_lock() as to why
- //m_readers_next should be set here
-
- m_readers_next = false;
-
- BOOST_ASSERT(valid_read_locked(m_state));
- //Should be read-locked
- }
- else
- {
- //In case there is no thread with a lock that will
- //call do_scheduling_impl() when it unlocks, call it ourselves
- do_scheduling_impl(scheduling_reason_timeout);
- }
-
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_read_lock() exit 2");
- return !fail;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_timed_write_lock(const boost::xtime &xt)
-{
- typename Mutex::scoped_timed_lock l(m_prot, xt);
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_write_lock() enter");
- BOOST_ASSERT(valid_lock_state(m_state));
-
- if (!l.locked())
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_write_lock() exit 1");
- return false;
- }
-
- bool fail = false;
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- //Reader priority: wait while locked or while readers are waiting
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
-//: if (m_num_waiting_readers > 0 && m_num_waking_readers == 0)
-//: do_wake_all_readers();
- while (m_state != 0 || (m_num_waking_readers > 0) || (m_num_waiting_readers > 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_waking.set_adjust(true);
- if (!m_waiting_writers.timed_wait(l, xt))
- {
- ++m_num_max_waking_writers;
- fail = true;
- break;
- }
- }
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- //Writer priority: wait while locked
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
- while (m_state != 0)
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_waking.set_adjust(true);
- if (!m_waiting_writers.timed_wait(l, xt))
- {
- ++m_num_max_waking_writers;
- fail = true;
- break;
- }
- }
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_single_read || m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- //Shut down extra readers that were scheduled only because of no waiting writers
-
- if (m_sp == read_write_scheduling_policy::alternating_single_read && m_num_waiting_writers == 0)
- m_num_waking_readers = (m_readers_next && m_num_waking_readers > 0) ? 1 : 0;
-
- //Alternating priority: wait while locked or while not writers' turn
-
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
- while (m_state != 0 || (m_num_waking_readers > 0 && waker_exists()))
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_waking.set_adjust(true);
- if (!m_waiting_writers.timed_wait(l, xt))
- {
- ++m_num_max_waking_writers;
- fail = true;
- break;
- }
- }
- }
-
- if (!fail)
- {
- //Obtain a write lock
-
- BOOST_ASSERT(valid_write_lockable(m_state));
- m_state = -1;
-
- //See note in read_write_mutex_impl<>::do_read_lock() as to why
- //m_readers_next should be set here
-
- m_readers_next = true;
-
- BOOST_ASSERT(valid_write_locked(m_state));
- //Should be write-locked
- }
- else
- {
- //In case there is no thread with a lock that will
- //call do_scheduling_impl() when it unlocks, call it ourselves
- do_scheduling_impl(scheduling_reason_timeout);
- }
-
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_write_lock() exit 2");
- return !fail;
-}
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_read_unlock()
-{
- typename Mutex::scoped_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_read_unlock() enter");
- BOOST_ASSERT(valid_read_locked(m_state));
-
- if (m_state > 0)
- --m_state;
- else //not read-locked
- throw lock_error();
-
- do_scheduling_impl(scheduling_reason_unlock);
-
- BOOST_ASSERT(valid_read_locked(m_state) || valid_unlocked(m_state));
- BOOST_READ_WRITE_MUTEX_TRACE("do_read_unlock() exit");
-}
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_write_unlock()
-{
- typename Mutex::scoped_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_write_unlock() enter");
- BOOST_ASSERT(valid_write_locked(m_state));
-
- if (m_state == -1)
- m_state = 0;
- else BOOST_ASSERT_ELSE(m_state >= 0)
- throw lock_error(); // Trying to release a reader-locked or unlocked mutex???
-
- do_scheduling_impl(scheduling_reason_unlock);
-
- BOOST_ASSERT(valid_unlocked(m_state));
- BOOST_READ_WRITE_MUTEX_TRACE("do_write_unlock() exit");
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_demote_to_read_lock_impl()
-{
- BOOST_READ_WRITE_MUTEX_TRACE("do_demote_to_read_lock_impl() enter");
- BOOST_ASSERT(valid_write_locked(m_state));
-
- if (m_state == -1)
- {
- //Convert from write lock to read lock
- m_state = 1;
-
- //If the conditions are right, release other readers
-
- do_scheduling_impl(scheduling_reason_demote);
-
- //Lock demoted
- BOOST_ASSERT(valid_read_locked(m_state));
- BOOST_READ_WRITE_MUTEX_TRACE("do_demote_to_read_lock_impl() exit 1");
- return true;
- }
- else BOOST_ASSERT_ELSE(m_state >= 0)
- {
- //Lock is read-locked or unlocked can't be demoted
- BOOST_READ_WRITE_MUTEX_TRACE("do_demote_to_read_lock_impl() exit 2");
- throw lock_error();
- return false;
- }
- return false; //Eliminate warnings on some compilers
-}
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_demote_to_read_lock()
-{
- typename Mutex::scoped_lock l(m_prot);
- BOOST_ASSERT(valid_write_locked(m_state));
-
- do_demote_to_read_lock_impl();
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_try_demote_to_read_lock()
-{
- typename Mutex::scoped_try_lock l(m_prot);
- BOOST_ASSERT(valid_write_locked(m_state));
-
- if (!l.locked())
- return false;
- else //(l.locked())
- return do_demote_to_read_lock_impl();
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_timed_demote_to_read_lock(const boost::xtime &xt)
-{
- typename Mutex::scoped_timed_lock l(m_prot, xt);
- BOOST_ASSERT(valid_write_locked(m_state));
-
- if (!l.locked())
- return false;
- else //(l.locked())
- return do_demote_to_read_lock_impl();
-}
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_promote_to_write_lock()
-{
- typename Mutex::scoped_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_promote_to_write_lock() enter");
- BOOST_ASSERT(valid_read_locked(m_state));
-
- if (m_state == 1)
- {
- //Convert from read lock to write lock
- m_state = -1;
-
- //Lock promoted
- BOOST_ASSERT(valid_write_locked(m_state));
- }
- else if (m_state <= 0)
- {
- //Lock is write-locked or unlocked can't be promoted
- throw lock_error();
- }
- else if (m_state_waiting_promotion)
- {
- //Someone else is already trying to promote. Avoid deadlock by throwing exception.
- throw lock_error();
- }
- else BOOST_ASSERT_ELSE(m_state > 1 && !m_state_waiting_promotion)
- {
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
- while (m_state > 1)
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_state adjust_waiting_promotion(m_state_waiting_promotion);
- adjust_waking.set_adjust(true);
- m_waiting_promotion.wait(l);
- }
-
- BOOST_ASSERT(m_num_waiting_writers >= 0);
- BOOST_ASSERT(valid_promotable(m_state));
-
- //Convert from read lock to write lock
- m_state = -1;
-
- //Lock promoted
- BOOST_ASSERT(valid_write_locked(m_state));
- }
- BOOST_READ_WRITE_MUTEX_TRACE("do_promote_to_write_lock() exit");
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_try_promote_to_write_lock()
-{
- typename Mutex::scoped_try_lock l(m_prot);
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_promote_to_write_lock() enter");
- BOOST_ASSERT(valid_read_locked(m_state));
-
- bool result;
-
- if (!l.locked())
- result = false;
- else
- {
- if (m_state == 1)
- {
- //Convert from read lock to write lock
- m_state = -1;
-
- //Lock promoted
- BOOST_ASSERT(valid_write_locked(m_state));
- result = true;
- }
- else if (m_state <= 0)
- {
- //Lock is write-locked or unlocked can't be promoted
- result = false;
- }
- else if (m_state_waiting_promotion)
- {
- //Someone else is already trying to promote. Avoid deadlock by returning false.
- result = false;
- }
- else BOOST_ASSERT_ELSE(m_state > 1 && !m_state_waiting_promotion)
- {
- //There are other readers, so we can't promote
- result = false;
- }
- }
-
- BOOST_READ_WRITE_MUTEX_TRACE("do_try_promote_to_write_lock() exit");
- return result;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_timed_promote_to_write_lock(const boost::xtime &xt)
-{
- typename Mutex::scoped_timed_lock l(m_prot, xt);
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_promote_to_write_lock() enter");
- BOOST_ASSERT(valid_read_locked(m_state));
-
- if (!l.locked())
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_promote_to_write_lock( exit 1");
- return false;
- }
-
- bool fail = false;
-
- if (m_state == 1)
- {
- fail = false;
- }
- else if (m_state <= 0)
- {
- //Lock is not read-locked and can't be promoted
- fail = true;
- }
- else if (m_state_waiting_promotion)
- {
- //Someone else is already trying to promote. Avoid deadlock by returning false.
- fail = true;
- }
- else BOOST_ASSERT_ELSE(m_state > 1 && !m_state_waiting_promotion)
- {
- BOOST_DEFINE_LOOP_COUNT
- adjust_dual_count adjust_waking(m_num_waking_writers, m_num_max_waking_writers, false);
- while (m_state > 1)
- {
- BOOST_ASSERT_LOOP_COUNT(); //See note at BOOST_ASSERT_LOOP_COUNT definition above
- BOOST_ASSERT(waker_exists()); //There should be someone to wake us up
- adjust_count adjust_waiting(m_num_waiting_writers);
- adjust_state adjust_waiting_promotion(m_state_waiting_promotion);
- adjust_waking.set_adjust(true);
- if (!m_waiting_promotion.timed_wait(l, xt))
- {
- ++m_num_max_waking_writers;
- fail = true;
- break;
- }
- }
- }
-
- if (!fail)
- {
- //Convert from read lock to write lock
-
- BOOST_ASSERT(m_num_waiting_writers >= 0);
- BOOST_ASSERT(valid_promotable(m_state));
-
- m_state = -1;
-
- //Lock promoted
-
- BOOST_ASSERT(valid_write_locked(m_state));
- }
- else
- {
- //In case there is no thread with a lock that will
- //call do_scheduling_impl() when it unlocks, call it ourselves
- do_scheduling_impl(scheduling_reason_timeout);
- }
-
- BOOST_READ_WRITE_MUTEX_TRACE("do_timed_promote_to_write_lock( exit 2");
- return !fail;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::locked()
-{
- int state = m_state;
- BOOST_ASSERT(valid_lock_state(state));
-
- return state != 0;
-}
-
-template<typename Mutex>
-read_write_lock_state::read_write_lock_state_enum read_write_mutex_impl<Mutex>::state()
-{
- int state = m_state;
- BOOST_ASSERT(valid_lock_state(state));
-
- if (state > 0)
- {
- BOOST_ASSERT(valid_read_locked(state));
- return read_write_lock_state::read_locked;
- }
- else if (state == -1)
- {
- BOOST_ASSERT(valid_write_locked(state));
- return read_write_lock_state::write_locked;
- }
- else BOOST_ASSERT_ELSE(state == 0)
- return read_write_lock_state::unlocked;
- return read_write_lock_state::unlocked; //Eliminate warnings on some compilers
-}
-
-template<typename Mutex>
-void read_write_mutex_impl<Mutex>::do_scheduling_impl(const scheduling_reason reason)
-{
- switch(reason)
- {
- case scheduling_reason_unlock:
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl(): scheduling_reason_unlock");
-
- //A thread just unlocked, so there can be no existing write lock.
- //There may still be read locks, however.
-
- BOOST_ASSERT(valid_read_locked(m_state) || valid_unlocked(m_state));
-
- if (m_state_waiting_promotion)
- {
- //If a thread is waiting for promotion,
- //it must have a read lock.
-
- BOOST_ASSERT(valid_read_locked(m_state));
- }
- }
- break;
-
- case scheduling_reason_timeout:
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl(): scheduling_reason_timeout");
-
- //A thread waiting for a lock just timed out, so the
- //lock could be in any state (read locked, write locked, unlocked).
-
- BOOST_ASSERT(valid_lock_state(m_state));
-
- if (m_state_waiting_promotion)
- {
- //If a thread is waiting for promotion,
- //it must have a read lock.
-
- BOOST_ASSERT(valid_read_locked(m_state));
- }
- }
- break;
-
- case scheduling_reason_demote:
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl(): scheduling_reason_demote");
-
- //A write lock has just converted its state to a read lock;
- //since a write-locked thread has an exclusive lock,
- //and no other thread has yet been allowed to obtain
- //a read lock, the state should indicate that there is
- //exactly one reader.
-
- BOOST_ASSERT(m_state == 1);
-
- //No thread should be waiting for promotion because to do
- //so it would first have to obtain a read lock, which
- //is impossible because this thread had a write lock.
-
- BOOST_ASSERT(!m_state_waiting_promotion);
- }
- break;
-
- default:
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl(): scheduling_reason_none");
-
- throw lock_error();
- return; //eliminate warnings on some compilers
- }
- break;
- };
-
- bool woken;
-
- if (m_num_waiting_writers > 0 && m_num_waiting_readers > 0)
- {
- //Both readers and writers waiting: use scheduling policy
-
- if (m_sp == read_write_scheduling_policy::reader_priority)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl() 1: writers & readers, reader_priority");
- woken = do_wake_all_readers();
- if (woken)
- m_num_waking_writers = m_num_max_waking_writers = 0; //shut down any waking writers
- }
- else if (m_sp == read_write_scheduling_policy::writer_priority)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl(): writers & readers, writer_priority");
- woken = do_wake_writer();
- if (woken)
- m_num_waking_readers = m_num_max_waking_readers = 0; //shut down any waking readers
- }
- else if (m_sp == read_write_scheduling_policy::alternating_single_read)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl() 2: writers & readers, alternating_single_read");
- if (m_readers_next)
- {
- if (m_num_waking_writers == 0)
- woken = do_wake_one_reader();
- else
- woken = false;
- }
- else
- {
- if (m_num_waking_readers == 0)
- woken = do_wake_writer();
- else
- woken = false;
- }
- }
- else BOOST_ASSERT_ELSE(m_sp == read_write_scheduling_policy::alternating_many_reads)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl() 3: writers & readers, alternating_many_reads");
- if (m_readers_next)
- {
- if (m_num_waking_writers == 0)
- woken = do_wake_all_readers();
- else
- woken = false;
- }
- else
- {
- if (m_num_waking_readers == 0)
- woken = do_wake_writer();
- else
- woken = false;
- }
- }
- }
- else if (m_num_waiting_writers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl() 4: writers only");
- //Only writers waiting--scheduling policy doesn't matter
- woken = do_wake_writer();
- }
- else if (m_num_waiting_readers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl() 5: readers only");
- //Only readers waiting--scheduling policy doesn't matter
- woken = do_wake_all_readers();
- }
- else
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_scheduling_impl() 6: no writers or readers");
- woken = false;
- }
-
- BOOST_ASSERT(
- woken
- || (m_state == -1) || (m_state > (m_state_waiting_promotion ? 1 : 0))
- || (m_num_waking_writers + m_num_waking_readers > 0)
- || (m_num_waiting_writers + m_num_waiting_readers == 0)
- );
- //Ensure that we woke a thread,
- //that another besides the current thread is already awake to wake others when it's done,
- //that another besides the current thread will wake and can wake others when it's done,
- //or that no other threads are waiting and so none remain to be woken
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_wake_one_reader(void)
-{
- if (m_state == -1)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_one_reader() 1: don't wake, write locked");
-
- //If write-locked, don't bother waking a reader
- }
- else if (m_num_waking_readers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_one_reader() 2: don't wake, nothing to wake");
-
- //If a reader is already waking,
- //don't bother waking another
- //(since we only want one)
- }
- else if (m_num_waiting_readers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_one_reader() 3: wake");
-
- //Wake a reader
- BOOST_ASSERT(valid_read_lockable(m_state));
- m_num_waking_readers = m_num_max_waking_readers = 1;
- m_waiting_readers.notify_one();
- return true;
- }
- else
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_one_reader() 4: don't wake, nothing to wake");
- }
-
- return false;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_wake_all_readers(void)
-{
- if (m_state == -1)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_all_readers() 1: don't wake, write locked");
-
- //If write-locked, don't bother waking readers
- }
- else if (m_num_waiting_readers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_all_readers() 2: wake");
-
- //Wake readers
- BOOST_ASSERT(valid_read_lockable(m_state));
- m_num_waking_readers = m_num_max_waking_readers = m_num_waiting_readers;
- m_waiting_readers.notify_all();
- return true;
- }
- else
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_all_readers() 3: don't wake, nothing to wake");
- }
-
- return false;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::do_wake_writer(void)
-{
- if (m_state_waiting_promotion)
- {
- //If a reader is waiting for promotion, promote it
- //(it holds a read lock until it is promoted,
- //so it's not possible to wake a normal writer).
-
- if (m_state == -1 || m_state > 1)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 1: waiting promotion: don't wake, still locked");
-
- //If write-locked, or if read-locked by
- //readers other than the thread waiting
- //for promotion, don't bother waking it
- }
- else if (m_num_waking_writers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 2: waiting promotion: don't wake, writer already waking");
-
- //If a writer is already waking,
- //don't bother waking another
- //(since only one at a time can wake anyway)
- }
- else if (m_num_waiting_writers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 3: waiting promotion: wake");
-
- //Wake the thread waiting for promotion
- BOOST_ASSERT(valid_promotable(m_state));
- m_num_waking_writers = m_num_max_waking_writers = 1;
- m_waiting_promotion.notify_one();
- return true;
- }
- else
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 4: waiting promotion: don't wake, no writers to wake");
- }
- }
- else
- {
- if (m_state != 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 5: don't wake, still locked");
-
- //If locked, don't bother waking a writer
- }
- else if (m_num_waking_writers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 6: don't wake, writer already waking");
-
- //If a writer is already waking,
- //don't bother waking another
- //(since only one at a time can wake anyway)
- }
- else if (m_num_waiting_writers > 0)
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 7: wake");
-
- //Wake a writer
- BOOST_ASSERT(valid_write_lockable(m_state));
- m_num_waking_writers = m_num_max_waking_writers = 1;
- m_waiting_writers.notify_one();
- return true;
- }
- else
- {
- BOOST_READ_WRITE_MUTEX_TRACE("do_wake_writer() 8: don't wake, no writers to wake");
- }
- }
-
- return false;
-}
-
-template<typename Mutex>
-bool read_write_mutex_impl<Mutex>::waker_exists(void)
-{
- //Is there a "live" thread (one that is awake or about to wake
- //that will be able to wake up a thread about to go to sleep?
- return valid_read_write_locked(m_state) || (m_num_waking_writers + m_num_waking_readers > 0);
-}
-
- } // namespace thread
- } // namespace detail
-
-read_write_mutex::read_write_mutex(read_write_scheduling_policy::read_write_scheduling_policy_enum sp)
- : m_impl(sp)
-{}
-
-read_write_mutex::~read_write_mutex()
-{}
-
-void read_write_mutex::do_read_lock()
-{
- m_impl.do_read_lock();
-}
-
-void read_write_mutex::do_write_lock()
-{
- m_impl.do_write_lock();
-}
-
-void read_write_mutex::do_read_unlock()
-{
- m_impl.do_read_unlock();
-}
-
-void read_write_mutex::do_write_unlock()
-{
- m_impl.do_write_unlock();
-}
-
-void read_write_mutex::do_demote_to_read_lock()
-{
- m_impl.do_demote_to_read_lock();
-}
-
-void read_write_mutex::do_promote_to_write_lock()
-{
- m_impl.do_promote_to_write_lock();
-}
-
-bool read_write_mutex::locked()
-{
- return m_impl.locked();
-}
-
-read_write_lock_state::read_write_lock_state_enum read_write_mutex::state()
-{
- return m_impl.state();
-}
-
-try_read_write_mutex::try_read_write_mutex(read_write_scheduling_policy::read_write_scheduling_policy_enum sp)
- : m_impl(sp)
-{}
-
-try_read_write_mutex::~try_read_write_mutex()
-{}
-
-void try_read_write_mutex::do_read_lock()
-{
- m_impl.do_read_lock();
-}
-
-void try_read_write_mutex::do_write_lock()
-{
- m_impl.do_write_lock();
-
-}
-
-void try_read_write_mutex::do_write_unlock()
-{
- m_impl.do_write_unlock();
-}
-
-void try_read_write_mutex::do_read_unlock()
-{
- m_impl.do_read_unlock();
-}
-
-bool try_read_write_mutex::do_try_read_lock()
-{
- return m_impl.do_try_read_lock();
-}
-
-bool try_read_write_mutex::do_try_write_lock()
-{
- return m_impl.do_try_write_lock();
-}
-
-void try_read_write_mutex::do_demote_to_read_lock()
-{
- m_impl.do_demote_to_read_lock();
-}
-
-bool try_read_write_mutex::do_try_demote_to_read_lock()
-{
- return m_impl.do_try_demote_to_read_lock();
-}
-
-void try_read_write_mutex::do_promote_to_write_lock()
-{
- m_impl.do_promote_to_write_lock();
-}
-
-bool try_read_write_mutex::do_try_promote_to_write_lock()
-{
- return m_impl.do_try_promote_to_write_lock();
-}
-
-bool try_read_write_mutex::locked()
-{
- return m_impl.locked();
-}
-
-read_write_lock_state::read_write_lock_state_enum try_read_write_mutex::state()
-{
- return m_impl.state();
-}
-
-timed_read_write_mutex::timed_read_write_mutex(read_write_scheduling_policy::read_write_scheduling_policy_enum sp)
- : m_impl(sp)
-{}
-
-timed_read_write_mutex::~timed_read_write_mutex()
-{}
-
-void timed_read_write_mutex::do_read_lock()
-{
- m_impl.do_read_lock();
-}
-
-void timed_read_write_mutex::do_write_lock()
-{
- m_impl.do_write_lock();
-
-}
-
-void timed_read_write_mutex::do_read_unlock()
-{
- m_impl.do_read_unlock();
-}
-
-void timed_read_write_mutex::do_write_unlock()
-{
- m_impl.do_write_unlock();
-}
-
-bool timed_read_write_mutex::do_try_read_lock()
-{
- return m_impl.do_try_read_lock();
-}
-
-bool timed_read_write_mutex::do_try_write_lock()
-{
- return m_impl.do_try_write_lock();
-}
-
-bool timed_read_write_mutex::do_timed_read_lock(const xtime &xt)
-{
- return m_impl.do_timed_read_lock(xt);
-}
-
-bool timed_read_write_mutex::do_timed_write_lock(const xtime &xt)
-{
- return m_impl.do_timed_write_lock(xt);
-}
-
-void timed_read_write_mutex::do_demote_to_read_lock()
-{
- m_impl.do_demote_to_read_lock();
-}
-
-bool timed_read_write_mutex::do_try_demote_to_read_lock()
-{
- return m_impl.do_try_demote_to_read_lock();
-}
-
-bool timed_read_write_mutex::do_timed_demote_to_read_lock(const xtime &xt)
-{
- return m_impl.do_timed_demote_to_read_lock(xt);
-}
-
-void timed_read_write_mutex::do_promote_to_write_lock()
-{
- m_impl.do_promote_to_write_lock();
-}
-
-bool timed_read_write_mutex::do_try_promote_to_write_lock()
-{
- return m_impl.do_try_promote_to_write_lock();
-}
-
-bool timed_read_write_mutex::do_timed_promote_to_write_lock(const xtime &xt)
-{
- return m_impl.do_timed_promote_to_write_lock(xt);
-}
-
-bool timed_read_write_mutex::locked()
-{
- return m_impl.locked();
-}
-
-read_write_lock_state::read_write_lock_state_enum timed_read_write_mutex::state()
-{
- return m_impl.state();
-}
-
-#if !defined(NDEBUG)
- //Explicit instantiations of read/write locks to catch syntax errors in templates
-
- template class boost::detail::thread::scoped_read_write_lock<read_write_mutex>;
- template class boost::detail::thread::scoped_read_write_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_read_write_lock<timed_read_write_mutex>;
-
- //template class boost::detail::thread::scoped_try_read_write_lock<read_write_mutex>;
- template class boost::detail::thread::scoped_try_read_write_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_try_read_write_lock<timed_read_write_mutex>;
-
- //template class boost::detail::thread::scoped_timed_read_write_lock<read_write_mutex>;
- //template class boost::detail::thread::scoped_timed_read_write_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_timed_read_write_lock<timed_read_write_mutex>;
-
- //Explicit instantiations of read locks to catch syntax errors in templates
-
- template class boost::detail::thread::scoped_read_lock<read_write_mutex>;
- template class boost::detail::thread::scoped_read_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_read_lock<timed_read_write_mutex>;
-
- //template class boost::detail::thread::scoped_try_read_lock<read_write_mutex>;
- template class boost::detail::thread::scoped_try_read_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_try_read_lock<timed_read_write_mutex>;
-
- //template class boost::detail::thread::scoped_timed_read_lock<read_write_mutex>;
- //template class boost::detail::thread::scoped_timed_read_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_timed_read_lock<timed_read_write_mutex>;
-
- //Explicit instantiations of write locks to catch syntax errors in templates
-
- template class boost::detail::thread::scoped_write_lock<read_write_mutex>;
- template class boost::detail::thread::scoped_write_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_write_lock<timed_read_write_mutex>;
-
- //template class boost::detail::thread::scoped_try_write_lock<read_write_mutex>;
- template class boost::detail::thread::scoped_try_write_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_try_write_lock<timed_read_write_mutex>;
-
- //template class boost::detail::thread::scoped_timed_write_lock<read_write_mutex>;
- //template class boost::detail::thread::scoped_timed_write_lock<try_read_write_mutex>;
- template class boost::detail::thread::scoped_timed_write_lock<timed_read_write_mutex>;
-#endif
-} // namespace boost
-
-// Change Log:
-// 10 Mar 02
-// Original version.
-// 4 May 04 GlassfordM
-// For additional changes, see read_write_mutex.hpp.
-// Add many assertions to test validity of mutex state and operations.
-// Rework scheduling algorithm due to addition of lock promotion and
-// demotion.
-// Add explicit template instantiations to catch syntax errors
-// in templates.
Modified: branches/bcbboost/libs/thread/src/recursive_mutex.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/recursive_mutex.cpp (original)
+++ branches/bcbboost/libs/thread/src/recursive_mutex.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -291,7 +291,8 @@
res = pthread_mutex_init(&m_mutex, &attr);
{
- int res = pthread_mutexattr_destroy(&attr);
+ int res = 0;
+ res = pthread_mutexattr_destroy(&attr);
assert(res == 0);
}
if (res != 0)
@@ -447,7 +448,8 @@
res = pthread_mutex_init(&m_mutex, &attr);
{
- int res = pthread_mutexattr_destroy(&attr);
+ int res = 0;
+ res = pthread_mutexattr_destroy(&attr);
assert(res == 0);
}
if (res != 0)
Modified: branches/bcbboost/libs/thread/src/thread.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/thread.cpp (original)
+++ branches/bcbboost/libs/thread/src/thread.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,5 +1,6 @@
// Copyright (C) 2001-2003
// William E. Kempf
+// Copyright (C) 2007 Anthony Williams
//
// 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)
@@ -89,18 +90,6 @@
bool m_started;
};
-#if defined(BOOST_HAS_WINTHREADS)
-
-struct on_thread_exit_guard
-{
- ~on_thread_exit_guard()
- {
- on_thread_exit();
- }
-};
-
-#endif
-
} // unnamed namespace
extern "C" {
@@ -112,25 +101,13 @@
static OSStatus thread_proxy(void* param)
#endif
{
-// try
- {
+ thread_param* p = static_cast<thread_param*>(param);
+ boost::function0<void> threadfunc = p->m_threadfunc;
+ p->started();
+ threadfunc();
#if defined(BOOST_HAS_WINTHREADS)
-
- on_thread_exit_guard guard;
-
+ on_thread_exit();
#endif
-
- thread_param* p = static_cast<thread_param*>(param);
- boost::function0<void> threadfunc = p->m_threadfunc;
- p->started();
- threadfunc();
- }
-// catch (...)
-// {
-//#if defined(BOOST_HAS_WINTHREADS)
-// on_thread_exit();
-//#endif
-// }
#if defined(BOOST_HAS_MPTASKS)
::boost::detail::thread_cleanup();
#endif
Modified: branches/bcbboost/libs/thread/src/timeconv.inl
==============================================================================
--- branches/bcbboost/libs/thread/src/timeconv.inl (original)
+++ branches/bcbboost/libs/thread/src/timeconv.inl 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -3,6 +3,7 @@
//
// 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)
+
// boostinspect:nounnamed
namespace {
Modified: branches/bcbboost/libs/thread/src/tss.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/tss.cpp (original)
+++ branches/bcbboost/libs/thread/src/tss.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -31,7 +31,7 @@
boost::mutex* tss_data_mutex = 0;
tss_data_cleanup_handlers_type* tss_data_cleanup_handlers = 0;
#if defined(BOOST_HAS_WINTHREADS)
- DWORD tss_data_native_key;
+ DWORD tss_data_native_key=TLS_OUT_OF_INDEXES;
#elif defined(BOOST_HAS_PTHREADS)
pthread_key_t tss_data_native_key;
#elif defined(BOOST_HAS_MPTASKS)
@@ -60,6 +60,7 @@
tss_data_mutex = 0;
#if defined(BOOST_HAS_WINTHREADS)
TlsFree(tss_data_native_key);
+ tss_data_native_key=TLS_OUT_OF_INDEXES;
#elif defined(BOOST_HAS_PTHREADS)
pthread_key_delete(tss_data_native_key);
#elif defined(BOOST_HAS_MPTASKS)
@@ -78,13 +79,17 @@
(*(*tss_data_cleanup_handlers)[i])((*slots)[i]);
(*slots)[i] = 0;
}
+#if defined(BOOST_HAS_WINTHREADS)
+ TlsSetValue(tss_data_native_key,0);
+#endif
tss_data_dec_use(lock);
delete slots;
}
void init_tss_data()
{
- std::auto_ptr<tss_data_cleanup_handlers_type> temp(new tss_data_cleanup_handlers_type);
+ std::auto_ptr<tss_data_cleanup_handlers_type>
+ temp(new tss_data_cleanup_handlers_type);
std::auto_ptr<boost::mutex> temp_mutex(new boost::mutex);
if (temp_mutex.get() == 0)
@@ -96,9 +101,8 @@
//Allocate tls slot
tss_data_native_key = TlsAlloc();
- if (tss_data_native_key == 0xFFFFFFFF)
+ if (tss_data_native_key == TLS_OUT_OF_INDEXES)
return;
-
#elif defined(BOOST_HAS_PTHREADS)
int res = pthread_key_create(&tss_data_native_key, &cleanup_slots);
if (res != 0)
@@ -178,7 +182,7 @@
namespace detail {
void tss::init(boost::function1<void, void*>* pcleanup)
{
- boost::call_once(&init_tss_data, tss_data_once);
+ boost::call_once(tss_data_once, &init_tss_data);
if (tss_data_cleanup_handlers == 0)
throw thread_resource_error();
boost::mutex::scoped_lock lock(*tss_data_mutex);
Modified: branches/bcbboost/libs/thread/src/tss_hooks.cpp
==============================================================================
--- branches/bcbboost/libs/thread/src/tss_hooks.cpp (original)
+++ branches/bcbboost/libs/thread/src/tss_hooks.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,7 +1,5 @@
-// (C) Copyright Michael Glassford 2004.
-// Copyright (c) 2006 Peter Dimov
-// Copyright (c) 2006 Anthony Williams
-//
+// Copyright (C) 2004 Michael Glassford
+// Copyright (C) 2006 Roland Schwarz
// Use, modification and distribution are subject to 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)
@@ -10,152 +8,205 @@
#if defined(BOOST_HAS_WINTHREADS)
-#include <boost/thread/detail/tss_hooks.hpp>
+ #include <boost/thread/detail/tss_hooks.hpp>
-#include <boost/assert.hpp>
-#include <boost/thread/once.hpp>
+ #include <boost/assert.hpp>
+// #include <boost/thread/mutex.hpp>
+ #include <boost/thread/once.hpp>
-#include <list>
+ #include <list>
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
-namespace
-{
-
-typedef std::list<thread_exit_handler> thread_exit_handlers;
+ namespace
+ {
+ class CScopedCSLock
+ {
+ public:
+ CScopedCSLock(LPCRITICAL_SECTION cs) : cs(cs), lk(true) {
+ ::EnterCriticalSection(cs);
+ }
+ ~CScopedCSLock() {
+ if (lk) ::LeaveCriticalSection(cs);
+ }
+ void Unlock() {
+ lk = false;
+ ::LeaveCriticalSection(cs);
+ }
+ private:
+ bool lk;
+ LPCRITICAL_SECTION cs;
+ };
+
+ typedef std::list<thread_exit_handler> thread_exit_handlers;
+
+ boost::once_flag once_init_threadmon_mutex = BOOST_ONCE_INIT;
+ //boost::mutex* threadmon_mutex;
+ // We don't use boost::mutex here, to avoid a memory leak report,
+ // because we cannot delete it again easily.
+ CRITICAL_SECTION threadmon_mutex;
+ void init_threadmon_mutex(void)
+ {
+ //threadmon_mutex = new boost::mutex;
+ //if (!threadmon_mutex)
+ // throw boost::thread_resource_error();
+ ::InitializeCriticalSection(&threadmon_mutex);
+ }
-const DWORD invalid_tls_key = TLS_OUT_OF_INDEXES;
-DWORD tls_key = invalid_tls_key;
+ const DWORD invalid_tls_key = TLS_OUT_OF_INDEXES;
+ DWORD tls_key = invalid_tls_key;
-boost::once_flag once_init_tls_key = BOOST_ONCE_INIT;
+ unsigned long attached_thread_count = 0;
+ }
-void init_tls_key()
-{
- tls_key = TlsAlloc();
-}
+ /*
+ Calls to DllMain() and tls_callback() are serialized by the OS;
+ however, calls to at_thread_exit are not, so it must be protected
+ by a mutex. Since we already need a mutex for at_thread_exit(),
+ and since there is no guarantee that on_process_enter(),
+ on_process_exit(), on_thread_enter(), and on_thread_exit()
+ will be called only from DllMain() or tls_callback(), it makes
+ sense to protect those, too.
+ */
-} // unnamed namespace
+ extern "C" BOOST_THREAD_DECL int at_thread_exit(
+ thread_exit_handler exit_handler
+ )
+ {
+ boost::call_once(once_init_threadmon_mutex, init_threadmon_mutex);
+ //boost::mutex::scoped_lock lock(*threadmon_mutex);
+ CScopedCSLock lock(&threadmon_mutex);
-extern "C" BOOST_THREAD_DECL int at_thread_exit( thread_exit_handler exit_handler )
-{
- boost::call_once( init_tls_key, once_init_tls_key );
+ //Allocate a tls slot if necessary.
- if( tls_key == invalid_tls_key )
- {
- return -1;
- }
+ if (tls_key == invalid_tls_key)
+ tls_key = TlsAlloc();
- // Get the exit handlers list for the current thread from tls.
+ if (tls_key == invalid_tls_key)
+ return -1;
- thread_exit_handlers* exit_handlers =
- static_cast< thread_exit_handlers* >( TlsGetValue( tls_key ) );
+ //Get the exit handlers list for the current thread from tls.
- if( exit_handlers == 0 )
- {
- // No exit handlers list was created yet.
+ thread_exit_handlers* exit_handlers =
+ static_cast<thread_exit_handlers*>(TlsGetValue(tls_key));
- try
+ if (!exit_handlers)
{
- // Attempt to create a new exit handlers list.
+ //No exit handlers list was created yet.
- exit_handlers = new thread_exit_handlers;
+ try
+ {
+ //Attempt to create a new exit handlers list.
- if( exit_handlers == 0 )
+ exit_handlers = new thread_exit_handlers;
+ if (!exit_handlers)
+ return -1;
+
+ //Attempt to store the list pointer in tls.
+
+ if (TlsSetValue(tls_key, exit_handlers))
+ ++attached_thread_count;
+ else
+ {
+ delete exit_handlers;
+ return -1;
+ }
+ }
+ catch (...)
{
return -1;
}
+ }
- // Attempt to store the list pointer in tls.
+ //Like the C runtime library atexit() function,
+ //functions should be called in the reverse of
+ //the order they are added, so push them on the
+ //front of the list.
- if( !TlsSetValue( tls_key, exit_handlers ) )
- {
- delete exit_handlers;
- return -1;
- }
+ try
+ {
+ exit_handlers->push_front(exit_handler);
}
- catch( ... )
+ catch (...)
{
return -1;
}
- }
- // Like the C runtime library atexit() function,
- // functions should be called in the reverse of
- // the order they are added, so push them on the
- // front of the list.
+ //Like the atexit() function, a result of zero
+ //indicates success.
- try
- {
- exit_handlers->push_front( exit_handler );
+ return 0;
}
- catch( ... )
+
+ extern "C" BOOST_THREAD_DECL void on_process_enter(void)
{
- return -1;
+ boost::call_once(once_init_threadmon_mutex, init_threadmon_mutex);
+// boost::mutex::scoped_lock lock(*threadmon_mutex);
+ CScopedCSLock lock(&threadmon_mutex);
+
+ BOOST_ASSERT(attached_thread_count == 0);
}
- // Like the atexit() function, a result of zero
- // indicates success.
+ extern "C" BOOST_THREAD_DECL void on_process_exit(void)
+ {
+ boost::call_once(once_init_threadmon_mutex, init_threadmon_mutex);
+// boost::mutex::scoped_lock lock(*threadmon_mutex);
+ CScopedCSLock lock(&threadmon_mutex);
- return 0;
-}
+ BOOST_ASSERT(attached_thread_count == 0);
-extern "C" BOOST_THREAD_DECL void on_process_enter()
-{
-}
+ //Free the tls slot if one was allocated.
-extern "C" BOOST_THREAD_DECL void on_process_exit()
-{
- if( tls_key != invalid_tls_key )
+ if (tls_key != invalid_tls_key)
+ {
+ TlsFree(tls_key);
+ tls_key = invalid_tls_key;
+ }
+ }
+
+ extern "C" BOOST_THREAD_DECL void on_thread_enter(void)
{
- TlsFree(tls_key);
+ //boost::call_once(init_threadmon_mutex, once_init_threadmon_mutex);
+ //boost::mutex::scoped_lock lock(*threadmon_mutex);
}
-}
-extern "C" BOOST_THREAD_DECL void on_thread_enter()
-{
-}
+ extern "C" BOOST_THREAD_DECL void on_thread_exit(void)
+ {
+ boost::call_once(once_init_threadmon_mutex, init_threadmon_mutex);
+// boost::mutex::scoped_lock lock(*threadmon_mutex);
+ CScopedCSLock lock(&threadmon_mutex);
-extern "C" BOOST_THREAD_DECL void on_thread_exit()
-{
- // Initializing tls_key here ensures its proper visibility
- boost::call_once( init_tls_key, once_init_tls_key );
+ //Get the exit handlers list for the current thread from tls.
- // Get the exit handlers list for the current thread from tls.
+ if (tls_key == invalid_tls_key)
+ return;
- if( tls_key == invalid_tls_key )
- {
- return;
- }
+ thread_exit_handlers* exit_handlers =
+ static_cast<thread_exit_handlers*>(TlsGetValue(tls_key));
- thread_exit_handlers* exit_handlers =
- static_cast< thread_exit_handlers* >( TlsGetValue( tls_key ) );
+ //If a handlers list was found, use it.
- // If a handlers list was found, invoke its handlers.
+ if (exit_handlers && TlsSetValue(tls_key, 0))
+ {
+ BOOST_ASSERT(attached_thread_count > 0);
+ --attached_thread_count;
- if( exit_handlers != 0 )
- {
- // Call each handler and remove it from the list
+ //lock.unlock();
+ lock.Unlock();
- while( !exit_handlers->empty() )
- {
- if( thread_exit_handler exit_handler = *exit_handlers->begin() )
+ //Call each handler and remove it from the list
+
+ while (!exit_handlers->empty())
{
- (*exit_handler)();
+ if (thread_exit_handler exit_handler = *exit_handlers->begin())
+ (*exit_handler)();
+ exit_handlers->pop_front();
}
- exit_handlers->pop_front();
- }
-
- // If TlsSetValue fails, we can't delete the list,
- // since a second call to on_thread_exit will try
- // to access it.
-
- if( TlsSetValue( tls_key, 0 ) )
- {
delete exit_handlers;
+ exit_handlers = 0;
}
}
-}
#endif //defined(BOOST_HAS_WINTHREADS)
Modified: branches/bcbboost/libs/thread/test/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/thread/test/Jamfile.v2 (original)
+++ branches/bcbboost/libs/thread/test/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -40,6 +40,6 @@
[ thread-run test_once.cpp ]
[ thread-run test_xtime.cpp ]
[ thread-run test_barrier.cpp ]
- [ thread-run test_read_write_mutex.cpp ]
+# [ thread-run test_read_write_mutex.cpp ]
;
}
Modified: branches/bcbboost/libs/thread/test/test_once.cpp
==============================================================================
--- branches/bcbboost/libs/thread/test/test_once.cpp (original)
+++ branches/bcbboost/libs/thread/test/test_once.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,52 +1,61 @@
-// Copyright (C) 2001-2003
-// William E. Kempf
-//
-// 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/thread/detail/config.hpp>
-
-#include <boost/thread/once.hpp>
-#include <boost/thread/thread.hpp>
+// (C) Copyright 2006-7 Anthony Williams
+// 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/test/unit_test.hpp>
+#include <boost/thread/thread.hpp>
+#include <boost/thread/mutex.hpp>
+#include <boost/thread/once.hpp>
-#include <libs/thread/test/util.inl>
-
-int once_value = 0;
-boost::once_flag once = BOOST_ONCE_INIT;
+boost::once_flag flag=BOOST_ONCE_INIT;
+int var_to_init=0;
+boost::mutex m;
-void init_once_value()
+void initialize_variable()
{
- once_value++;
+ // ensure that if multiple threads get in here, they are serialized, so we can see the effect
+ boost::mutex::scoped_lock lock(m);
+ ++var_to_init;
}
-void test_once_thread()
+void call_once_thread()
{
- boost::call_once(init_once_value, once);
+ unsigned const loop_count=100;
+ int my_once_value=0;
+ for(unsigned i=0;i<loop_count;++i)
+ {
+ boost::call_once(flag, initialize_variable);
+ my_once_value=var_to_init;
+ if(my_once_value!=1)
+ {
+ break;
+ }
+ }
+ boost::mutex::scoped_lock lock(m);
+ BOOST_CHECK_EQUAL(my_once_value, 1);
}
-void do_test_once()
+void test_call_once()
{
- const int NUMTHREADS=5;
- boost::thread_group threads;
- for (int i=0; i<NUMTHREADS; ++i)
- threads.create_thread(&test_once_thread);
- threads.join_all();
- BOOST_CHECK_EQUAL(once_value, 1);
+ unsigned const num_threads=100;
+ boost::thread_group group;
+
+ for(unsigned i=0;i<num_threads;++i)
+ {
+ group.create_thread(&call_once_thread);
+ }
+ group.join_all();
+ BOOST_CHECK_EQUAL(var_to_init,1);
}
-void test_once()
-{
- timed_test(&do_test_once, 2);
-}
boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
{
boost::unit_test_framework::test_suite* test =
- BOOST_TEST_SUITE("Boost.Threads: once test suite");
+ BOOST_TEST_SUITE("Boost.Threads: call_once test suite");
- test->add(BOOST_TEST_CASE(test_once));
+ test->add(BOOST_TEST_CASE(test_call_once));
return test;
}
Deleted: branches/bcbboost/libs/thread/test/test_read_write_mutex.cpp
==============================================================================
--- branches/bcbboost/libs/thread/test/test_read_write_mutex.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
+++ (empty file)
@@ -1,786 +0,0 @@
-// Copyright (C) 2001-2003
-// William E. Kempf
-//
-// 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/thread/detail/config.hpp>
-
-#include <boost/thread/thread.hpp>
-#include <boost/thread/xtime.hpp>
-#include <boost/thread/read_write_mutex.hpp>
-
-#include <boost/test/unit_test.hpp>
-
-#include <iostream>
-
-#define TS_CHECK(pred) \
- do { if (!(pred)) BOOST_ERROR (#pred); } while (0)
-#define TS_CHECK_MSG(pred, msg) \
- do { if (!(pred)) BOOST_ERROR (msg); } while (0)
-
-namespace {
-
-int shared_val = 0;
-
-boost::xtime xsecs(int secs)
-{
- //Create an xtime that is secs seconds from now
- boost::xtime ret;
- TS_CHECK (boost::TIME_UTC == boost::xtime_get(&ret, boost::TIME_UTC));
- ret.sec += secs;
- return ret;
-}
-
-#define MESSAGE "w1=" << w1.value_ << ", w2=" << w2.value_ << ", r1=" << r1.value_ << ", r2=" << r2.value_
-
-template <typename RW>
-class thread_adapter
-{
-public:
-
- thread_adapter(
- void (*func)(void*, RW&),
- void* param1,
- RW ¶m2
- )
- : func_(func)
- , param1_(param1)
- , param2_(param2)
- {}
-
- void operator()() const
- {
- func_(param1_, param2_);
- }
-
-private:
-
- void (*func_)(void*, RW&);
- void* param1_;
- RW& param2_;
-};
-
-const int k_data_init = -1;
-
-template <typename RW>
-struct data
-{
- data(
- int id,
- RW& m,
- int wait_for_lock_secs,
- int sleep_with_lock_secs,
- bool demote_after_write = false
- )
- : id_(id)
- , wait_for_lock_secs_(wait_for_lock_secs)
- , sleep_with_lock_secs_(sleep_with_lock_secs)
- , test_promotion_and_demotion_(demote_after_write)
- , value_(k_data_init)
- , rw_(m)
- {}
-
- int id_;
- int wait_for_lock_secs_;
- int sleep_with_lock_secs_;
- bool test_promotion_and_demotion_;
- int value_;
-
- RW& rw_;
-};
-
-template<typename RW>
-void plain_writer(void* arg, RW& rw)
-{
- try
- {
- data<RW>* pdata = (data<RW>*) arg;
- TS_CHECK_MSG(pdata->wait_for_lock_secs_ == 0, "pdata->wait_for_lock_secs_: " << pdata->wait_for_lock_secs_);
-
- typename RW::scoped_read_write_lock l(
- rw,
- pdata->test_promotion_and_demotion_
- ? boost::read_write_lock_state::read_locked
- : boost::read_write_lock_state::write_locked
- );
-
- bool succeeded = true;
-
- if (pdata->test_promotion_and_demotion_)
- {
- try
- {
- l.promote();
- }
- catch(const boost::lock_error&)
- {
- succeeded = false;
- }
- }
-
- if (succeeded)
- {
- if (pdata->sleep_with_lock_secs_ > 0)
- boost::thread::sleep(xsecs(pdata->sleep_with_lock_secs_));
-
- shared_val += 10;
-
- if (pdata->test_promotion_and_demotion_)
- l.demote();
-
- pdata->value_ = shared_val;
- }
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "plain_writer() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void plain_reader(void* arg, RW& rw)
-{
- try
- {
- data<RW>* pdata = (data<RW>*)arg;
- TS_CHECK(!pdata->test_promotion_and_demotion_);
- TS_CHECK_MSG(pdata->wait_for_lock_secs_ == 0, "pdata->wait_for_lock_secs_: " << pdata->wait_for_lock_secs_);
-
- typename RW::scoped_read_write_lock l(rw, boost::read_write_lock_state::read_locked);
-
- if (pdata->sleep_with_lock_secs_ > 0)
- boost::thread::sleep(xsecs(pdata->sleep_with_lock_secs_));
-
- pdata->value_ = shared_val;
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "plain_reader() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void try_writer(void* arg, RW& rw)
-{
- try
- {
- data<RW>* pdata = (data<RW>*) arg;
- TS_CHECK_MSG(pdata->wait_for_lock_secs_ == 0, "pdata->wait_for_lock_secs_: " << pdata->wait_for_lock_secs_);
-
- typename RW::scoped_try_read_write_lock l(rw, boost::read_write_lock_state::unlocked);
-
- bool succeeded = false;
-
- if (pdata->test_promotion_and_demotion_)
- succeeded = l.try_read_lock() && l.try_promote();
- else
- succeeded = l.try_write_lock();
-
- if (succeeded)
- {
- if (pdata->sleep_with_lock_secs_ > 0)
- boost::thread::sleep(xsecs(pdata->sleep_with_lock_secs_));
-
- shared_val += 10;
-
- if (pdata->test_promotion_and_demotion_)
- l.demote();
-
- pdata->value_ = shared_val;
- }
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "try_writer() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void try_reader(void*arg, RW& rw)
-{
- try
- {
- data<RW>* pdata = (data<RW>*)arg;
- TS_CHECK(!pdata->test_promotion_and_demotion_);
- TS_CHECK_MSG(pdata->wait_for_lock_secs_ == 0, "pdata->wait_for_lock_secs_: " << pdata->wait_for_lock_secs_);
-
- typename RW::scoped_try_read_write_lock l(rw, boost::read_write_lock_state::unlocked);
-
- if (l.try_read_lock())
- {
- if (pdata->sleep_with_lock_secs_ > 0)
- boost::thread::sleep(xsecs(pdata->sleep_with_lock_secs_));
-
- pdata->value_ = shared_val;
- }
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "try_reader() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void timed_writer(void* arg, RW& rw)
-{
- try
- {
- data<RW>* pdata = (data<RW>*)arg;
-
- typename RW::scoped_timed_read_write_lock l(rw, boost::read_write_lock_state::unlocked);
-
- bool succeeded = false;
-
- boost::xtime xt = xsecs(pdata->wait_for_lock_secs_);
- if (pdata->test_promotion_and_demotion_)
- succeeded = l.timed_read_lock(xt) && l.timed_promote(xt);
- else
- succeeded = l.timed_write_lock(xt);
-
- if (succeeded)
- {
- if (pdata->sleep_with_lock_secs_ > 0)
- boost::thread::sleep(xsecs(pdata->sleep_with_lock_secs_));
-
- shared_val += 10;
-
- if (pdata->test_promotion_and_demotion_)
- l.demote();
-
- pdata->value_ = shared_val;
- }
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "timed_writer() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void timed_reader(void* arg, RW& rw)
-{
- try
- {
- data<RW>* pdata = (data<RW>*)arg;
- TS_CHECK(!pdata->test_promotion_and_demotion_);
-
- typename RW::scoped_timed_read_write_lock l(rw,boost::read_write_lock_state::unlocked);
-
- boost::xtime xt = xsecs(pdata->wait_for_lock_secs_);
- if (l.timed_read_lock(xt))
- {
- if (pdata->sleep_with_lock_secs_ > 0)
- boost::thread::sleep(xsecs(pdata->sleep_with_lock_secs_));
-
- pdata->value_ = shared_val;
- }
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "timed_reader() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void clear_data(data<RW>& data1, data<RW>& data2, data<RW>& data3, data<RW>& data4)
-{
- shared_val = 0;
- data1.value_ = k_data_init;
- data2.value_ = k_data_init;
- data3.value_ = k_data_init;
- data4.value_ = k_data_init;
-}
-
-bool shared_test_writelocked = false;
-bool shared_test_readlocked = false;
-bool shared_test_unlocked = false;
-
-template<typename RW>
-void run_try_tests(void* arg, RW& rw)
-{
- try
- {
- TS_CHECK(shared_test_writelocked || shared_test_readlocked || shared_test_unlocked);
-
- typename RW::scoped_try_read_write_lock l(rw, boost::read_write_lock_state::unlocked);
-
- if (shared_test_writelocked)
- {
- //Verify that write lock blocks other write locks
- TS_CHECK(!l.try_write_lock());
-
- //Verify that write lock blocks read locks
- TS_CHECK(!l.try_read_lock());
- }
- else if (shared_test_readlocked)
- {
- //Verify that read lock blocks write locks
- TS_CHECK(!l.try_write_lock());
-
- //Verify that read lock does not block other read locks
- TS_CHECK(l.try_read_lock());
-
- //Verify that read lock blocks promotion
- TS_CHECK(!l.try_promote());
- }
- else if (shared_test_unlocked)
- {
- //Verify that unlocked does not blocks write locks
- TS_CHECK(l.try_write_lock());
-
- //Verify that unlocked does not block demotion
- TS_CHECK(l.try_demote());
-
- l.unlock();
-
- //Verify that unlocked does not block read locks
- TS_CHECK(l.try_read_lock());
-
- //Verify that unlocked does not block promotion
- TS_CHECK(l.try_promote());
-
- l.unlock();
- }
- }
- catch(...)
- {
- TS_CHECK_MSG(false, "run_try_tests() exception!");
- throw;
- }
-}
-
-template<typename RW>
-void test_plain_read_write_mutex(RW& rw, bool test_promotion_and_demotion)
-{
- //Verify that a write lock prevents both readers and writers from obtaining a lock
- {
- shared_val = 0;
- data<RW> r1(1, rw, 0, 0);
- data<RW> r2(2, rw, 0, 0);
- data<RW> w1(3, rw, 0, 0);
- data<RW> w2(4, rw, 0, 0);
-
- //Write-lock the mutex and queue up other readers and writers
-
- typename RW::scoped_read_write_lock l(rw, boost::read_write_lock_state::write_locked);
-
- boost::thread tr1(thread_adapter<RW>(plain_reader, &r1, rw));
- boost::thread tr2(thread_adapter<RW>(plain_reader, &r2, rw));
- boost::thread tw1(thread_adapter<RW>(plain_writer, &w1, rw));
- boost::thread tw2(thread_adapter<RW>(plain_writer, &w2, rw));
-
- boost::thread::sleep(xsecs(1));
-
- //At this point, neither queued readers nor queued writers should have obtained access
-
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init, MESSAGE);
-
- if (test_promotion_and_demotion)
- {
- l.demote();
- boost::thread::sleep(xsecs(1));
- //:boost::thread tr3(thread_adapter<RW>(plain_reader, &r3, rw));
-
- if (rw.policy() == boost::read_write_scheduling_policy::writer_priority)
- {
- //Expected result:
- //Since writers have priority, demotion doesn't release any readers.
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init, MESSAGE);
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::reader_priority)
- {
- //Expected result:
- //Since readers have priority, demotion releases all readers.
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::alternating_many_reads)
- {
- //Expected result:
- //Since readers can be released many at a time, demotion releases all queued readers.
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- //:TS_CHECK_MSG(r3.value_ == k_data_init, MESSAGE);
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::alternating_single_read)
- {
- //Expected result:
- //Since readers can be released only one at a time, demotion releases one queued reader.
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init || r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init || r2.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r1.value_ != r2.value_, MESSAGE);
- }
- }
-
- l.unlock();
-
- tr2.join();
- tr1.join();
- tw2.join();
- tw1.join();
-
- if (rw.policy() == boost::read_write_scheduling_policy::writer_priority)
- {
- if (!test_promotion_and_demotion)
- {
- //Expected result:
- //1) either w1 or w2 obtains and releases the lock
- //2) the other of w1 and w2 obtains and releases the lock
- //3) r1 and r2 obtain and release the lock "simultaneously"
- TS_CHECK_MSG(w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 20, MESSAGE);
- }
- else
- {
- //Expected result:
- //The same, except that either w1 or w2 (but not both) may
- //fail to promote to a write lock,
- //and r1, r2, or both may "sneak in" ahead of w1 and/or w2
- //by obtaining a read lock before w1 or w2 can promote
- //their initial read lock to a write lock.
- TS_CHECK_MSG(w1.value_ == k_data_init || w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init || w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init || r1.value_ == 10 || r1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init || r2.value_ == 10 || r2.value_ == 20, MESSAGE);
- }
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::reader_priority)
- {
- if (!test_promotion_and_demotion)
- {
- //Expected result:
- //1) r1 and r2 obtain and release the lock "simultaneously"
- //2) either w1 or w2 obtains and releases the lock
- //3) the other of w1 and w2 obtains and releases the lock
- TS_CHECK_MSG(w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- }
- else
- {
- //Expected result:
- //The same, except that either w1 or w2 (but not both) may
- //fail to promote to a write lock.
- TS_CHECK_MSG(w1.value_ == k_data_init || w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init || w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- }
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::alternating_many_reads)
- {
- if (!test_promotion_and_demotion)
- {
- //Expected result:
- //1) r1 and r2 obtain and release the lock "simultaneously"
- //2) either w1 or w2 obtains and releases the lock
- //3) the other of w1 and w2 obtains and releases the lock
- TS_CHECK_MSG(w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- }
- else
- {
- //Expected result:
- //The same, except that either w1 or w2 (but not both) may
- //fail to promote to a write lock.
- TS_CHECK_MSG(w1.value_ == k_data_init || w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init || w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- }
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::alternating_single_read)
- {
- if (!test_promotion_and_demotion)
- {
- //Expected result:
- //1) either r1 or r2 obtains and releases the lock
- //2) either w1 or w2 obtains and releases the lock
- //3) the other of r1 and r2 obtains and releases the lock
- //4) the other of w1 and w2 obtains and release the lock
- TS_CHECK_MSG(w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0 || r1.value_ == 10, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0 || r2.value_ == 10, MESSAGE);
- TS_CHECK_MSG(r1.value_ != r2.value_, MESSAGE);
- }
- else
- {
- //Expected result:
- //Since w1 and w2 start as read locks, r1, r2, w1, and w2
- //obtain read locks "simultaneously". Each of w1 and w2,
- //after it obtain a read lock, attempts to promote to a
- //write lock; this attempt fails if the other has
- //already done so and currently holds the write lock;
- //otherwise it will succeed as soon as any other
- //read locks have been released.
- //In other words, any ordering is possible, and either
- //w1 or w2 (but not both) may fail to obtain the lock
- //altogether.
- TS_CHECK_MSG(w1.value_ == k_data_init || w1.value_ == 10 || w1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init || w2.value_ == 10 || w2.value_ == 20, MESSAGE);
- TS_CHECK_MSG(w1.value_ != w2.value_, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0 || r1.value_ == 10 || r1.value_ == 20, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0 || r2.value_ == 10 || r2.value_ == 20, MESSAGE);
- }
- }
- }
-
- //Verify that a read lock prevents readers but not writers from obtaining a lock
- {
- shared_val = 0;
- data<RW> r1(1, rw, 0, 0);
- data<RW> r2(2, rw, 0, 0);
- data<RW> w1(3, rw, 0, 0);
- data<RW> w2(4, rw, 0, 0);
-
- //Read-lock the mutex and queue up other readers and writers
-
- typename RW::scoped_read_write_lock l(rw, boost::read_write_lock_state::read_locked);
-
- boost::thread tr1(thread_adapter<RW>(plain_reader, &r1, rw));
- boost::thread tr2(thread_adapter<RW>(plain_reader, &r2, rw));
-
- boost::thread::sleep(xsecs(1));
-
- boost::thread tw1(thread_adapter<RW>(plain_writer, &w1, rw));
- boost::thread tw2(thread_adapter<RW>(plain_writer, &w2, rw));
-
- boost::thread::sleep(xsecs(1));
-
- //Expected result: all readers passed through before the writers entered
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
-
- if (test_promotion_and_demotion)
- {
- l.promote();
- }
-
- l.unlock();
-
- tr2.join();
- tr1.join();
- tw2.join();
- tw1.join();
- }
-
- //Verify that a read lock prevents readers but not writers from obtaining a lock
- {
- shared_val = 0;
- data<RW> r1(1, rw, 0, 0);
- data<RW> r2(2, rw, 0, 0);
- data<RW> w1(3, rw, 0, 0);
- data<RW> w2(4, rw, 0, 0);
-
- //Read-lock the mutex and queue up other readers and writers
-
- typename RW::scoped_read_write_lock l(rw, boost::read_write_lock_state::read_locked);
-
- boost::thread tw1(thread_adapter<RW>(plain_writer, &w1, rw));
- boost::thread tw2(thread_adapter<RW>(plain_writer, &w2, rw));
-
- boost::thread::sleep(xsecs(1));
-
- boost::thread tr1(thread_adapter<RW>(plain_reader, &r1, rw));
- boost::thread tr2(thread_adapter<RW>(plain_reader, &r2, rw));
-
- boost::thread::sleep(xsecs(1));
-
- if (rw.policy() == boost::read_write_scheduling_policy::writer_priority)
- {
- //Expected result:
- //Writers have priority, so no readers have been released
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init, MESSAGE);
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::reader_priority)
- {
- //Expected result:
- //Readers have priority, so all readers have been released
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == 0, MESSAGE);
- TS_CHECK_MSG(r2.value_ == 0, MESSAGE);
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::alternating_many_reads)
- {
- //Expected result:
- //It's the writers' turn, so no readers have been released
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init, MESSAGE);
- }
- else if (rw.policy() == boost::read_write_scheduling_policy::alternating_single_read)
- {
- //Expected result:
- //It's the writers' turn, so no readers have been released
- TS_CHECK_MSG(w1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(w2.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r1.value_ == k_data_init, MESSAGE);
- TS_CHECK_MSG(r2.value_ == k_data_init, MESSAGE);
- }
-
- if (test_promotion_and_demotion)
- {
- l.promote();
- }
-
- l.unlock();
-
- tr2.join();
- tr1.join();
- tw2.join();
- tw1.join();
- }
-}
-
-template<typename RW>
-void test_try_read_write_mutex(RW& rw, bool test_promotion_and_demotion)
-{
- //Repeat the plain tests with the try lock.
- //This is important to verify that try locks are proper
- //read_write_mutexes as well.
-
- test_plain_read_write_mutex(rw, test_promotion_and_demotion);
-
- //Verify try_* operations with write-locked mutex
- {
- typename RW::scoped_try_read_write_lock l(rw, boost::read_write_lock_state::write_locked);
-
- shared_test_writelocked = true;
- shared_test_readlocked = false;
- shared_test_unlocked = false;
-
- boost::thread test_thread(thread_adapter<RW>(run_try_tests, NULL, rw));
- test_thread.join();
- }
-
- //Verify try_* operations with read-locked mutex
- {
- typename RW::scoped_try_read_write_lock l(rw, boost::read_write_lock_state::read_locked);
-
- shared_test_writelocked = false;
- shared_test_readlocked = true;
- shared_test_unlocked = false;
-
- boost::thread test_thread(thread_adapter<RW>(run_try_tests, NULL, rw));
- test_thread.join();
- }
-
- //Verify try_* operations with unlocked mutex
- {
- shared_test_writelocked = false;
- shared_test_readlocked = false;
- shared_test_unlocked = true;
-
- boost::thread test_thread(thread_adapter<RW>(run_try_tests, NULL, rw));
- test_thread.join();
- }
-}
-
-template<typename RW>
-void test_timed_read_write_mutex(RW& rw, bool test_promotion_and_demotion)
-{
- //Repeat the try tests with the timed lock.
- //This is important to verify that timed locks are proper
- //try locks as well.
-
- test_try_read_write_mutex(rw, test_promotion_and_demotion);
-
- //:More tests here
-}
-
-} // namespace
-
-void do_test_read_write_mutex(bool test_promotion_and_demotion)
-{
- //Run every test for each scheduling policy
-
- for(int i = (int) boost::read_write_scheduling_policy::writer_priority;
- i <= (int) boost::read_write_scheduling_policy::alternating_single_read;
- i++)
- {
- std::cout << "plain test, sp=" << i
- << (test_promotion_and_demotion ? " with promotion & demotion" : " without promotion & demotion")
- << "\n";
- std::cout.flush();
-
- {
- boost::read_write_mutex plain_rw(static_cast<boost::read_write_scheduling_policy::read_write_scheduling_policy_enum>(i));
- test_plain_read_write_mutex(plain_rw, test_promotion_and_demotion);
- }
-
- std::cout << "try test, sp=" << i
- << (test_promotion_and_demotion ? " with promotion & demotion" : " without promotion & demotion")
- << "\n";
- std::cout.flush();
-
- {
- boost::try_read_write_mutex try_rw(static_cast<boost::read_write_scheduling_policy::read_write_scheduling_policy_enum>(i));
- test_try_read_write_mutex(try_rw, test_promotion_and_demotion);
- }
-
- std::cout << "timed test, sp=" << i
- << (test_promotion_and_demotion ? " with promotion & demotion" : " without promotion & demotion")
- << "\n";
- std::cout.flush();
-
- {
- boost::timed_read_write_mutex timed_rw(static_cast<boost::read_write_scheduling_policy::read_write_scheduling_policy_enum>(i));
- test_timed_read_write_mutex(timed_rw, test_promotion_and_demotion);
- }
- }
-}
-
-void test_read_write_mutex()
-{
- do_test_read_write_mutex(false);
- do_test_read_write_mutex(true);
-}
-
-boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
-{
- boost::unit_test_framework::test_suite* test =
- BOOST_TEST_SUITE("Boost.Threads: read_write_mutex test suite");
-
- test->add(BOOST_TEST_CASE(&test_read_write_mutex));
-
- return test;
-}
Modified: branches/bcbboost/libs/thread/test/test_tss.cpp
==============================================================================
--- branches/bcbboost/libs/thread/test/test_tss.cpp (original)
+++ branches/bcbboost/libs/thread/test/test_tss.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -144,12 +144,11 @@
<< "\n";
std::cout.flush();
- // The following is not really an error. TSS cleanup support still is available
- // for threads, launched via the boost API. Also this usually will be triggered
- // only when bound to the static version of the thread lib.
- // 2006-10-15 Roland Schwarz
+ // The following is not really an error. TSS cleanup support still is available for boost threads.
+ // Also this usually will be triggered only when bound to the static version of thread lib.
+ // 2006-10-02 Roland Schwarz
//BOOST_CHECK_EQUAL(tss_instances, 0);
- BOOST_CHECK_MESSAGE(tss_instances ==0, "Support of automatic tss cleanup for native threading API not available");
+ BOOST_CHECK_MESSAGE(tss_instances == 0, "Support of automatic tss cleanup for native threading API not available");
BOOST_CHECK_EQUAL(tss_total, 5);
#endif
}
Modified: branches/bcbboost/libs/thread/test/util.inl
==============================================================================
--- branches/bcbboost/libs/thread/test/util.inl (original)
+++ branches/bcbboost/libs/thread/test/util.inl 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -16,6 +16,8 @@
# define DEFAULT_EXECUTION_MONITOR_TYPE execution_monitor::use_condition
#endif
+// boostinspect:nounnamed
+
namespace
{
inline boost::xtime delay(int secs, int msecs=0, int nsecs=0)
Deleted: branches/bcbboost/libs/thread/tutorial/Jamfile
==============================================================================
--- branches/bcbboost/libs/thread/tutorial/Jamfile 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
+++ (empty file)
@@ -1,34 +0,0 @@
-# Copyright (C) 2001-2003
-# William E. Kempf
-#
-# 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)
-#
-# Boost.Threads tutorial Jamfile
-#
-# Additional configuration variables used:
-# 1. PTW32 may be used on Win32 platforms to specify that the pthreads-win32
-# library should be used instead of "native" threads. This feature is
-# mostly used for testing and it's generally recommended you use the
-# native threading libraries instead. PTW32 should be set to be a list
-# of two strings, the first specifying the installation path of the
-# pthreads-win32 library and the second specifying which library
-# variant to link against (see the pthreads-win32 documentation).
-# Example: jam -sPTW32="c:\pthreads-win32 pthreadVCE.lib"
-
-project
- : requirements <library>/boost/thread//boost_thread
- <threading>multi
- ;
-
-exe helloworld : helloworld.cpp ;
-exe helloworld2 : helloworld2.cpp ;
-exe helloworld3 : helloworld3.cpp ;
-exe helloworld4 : helloworld4.cpp ;
-exe factorial : factorial.cpp ;
-exe factorial2 : factorial2.cpp ;
-exe factorial3 : factorial3.cpp ;
-exe counter : counter.cpp ;
-exe bounded_buffer : bounded_buffer.cpp ;
-exe once : once.cpp ;
-
Modified: branches/bcbboost/libs/type_traits/doc/Jamfile.v2
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/Jamfile.v2 (original)
+++ branches/bcbboost/libs/type_traits/doc/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -5,13 +5,15 @@
using quickbook ;
+path-constant boost-images : ../../../doc/src/images ;
+
xml type_traits : type_traits.qbk ;
boostbook standalone
:
type_traits
:
# Path for links to Boost:
- <xsl:param>boost.root=../../../../
+ <xsl:param>boost.root=../../../..
# Path for libraries index:
<xsl:param>boost.libraries=../../../libraries.htm
# Use the main Boost stylesheet:
@@ -54,9 +56,12 @@
# Set this one for PDF generation *only*:
# default pnd graphics are awful in PDF form,
# better use SVG's instead:
- # <xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
;
#install html : ../../../doc/html/boostbook.css ;
#install ../ : ../../../boost.png ;
+
+
Modified: branches/bcbboost/libs/type_traits/doc/function_traits.qbk
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/function_traits.qbk (original)
+++ branches/bcbboost/libs/type_traits/doc/function_traits.qbk 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -15,6 +15,12 @@
* The template argument `T` is a /function type/, note that this ['[*is not]]
the same thing as a /pointer to a function/.
+[tip
+function_traits is intended to introspect only C++ functions of the
+form R (), R( A1 ), R ( A1, ... etc. ) and not function pointers or
+class member functions. To convert a function pointer type to a suitable
+type use __remove_pointer.]
+
[table Function Traits Members
[[Member] [Description]]
[[`function_traits<T>::arity`]
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/background.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -56,7 +56,7 @@
method available to them.
</p>
<a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id436312"></a>
+<a name="id437715"></a>
<a href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
</h5>
<p>
@@ -84,7 +84,7 @@
given.
</p>
<a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id436429"></a>
+<a name="id437832"></a>
<a href="background.html#boost_typetraits.background.implementation">Implementation</a>
</h5>
<p>
@@ -179,7 +179,7 @@
in the default template.
</p>
<a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id490215"></a>
+<a name="id490248"></a>
<a href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
</h5>
<p>
@@ -253,7 +253,7 @@
otherwise it will call the "slow but safe version".
</p>
<a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id490758"></a>
+<a name="id490790"></a>
<a href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
</h5>
<p>
@@ -286,7 +286,7 @@
</li>
</ul></div>
<div class="table">
-<a name="id490829"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy<const
+<a name="id490860"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy<const
T*, T*>` (times in micro-seconds)</b></p>
<div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy<const
T*, T*>` (times in micro-seconds)">
@@ -385,7 +385,7 @@
</table></div>
</div>
<br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id490986"></a>
+<a name="id491017"></a>
<a href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
</h5>
<p>
@@ -423,7 +423,7 @@
to hold non-reference types, references, and constant references:
</p>
<div class="table">
-<a name="id491349"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
+<a name="id491380"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
<div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
<colgroup>
<col>
@@ -488,7 +488,7 @@
adds a reference to its type, unless it is already a reference.
</p>
<div class="table">
-<a name="id491474"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
+<a name="id491505"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
type</b></p>
<div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor
type">
@@ -606,7 +606,7 @@
easier to maintain and easier to understand.
</p>
<a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id492096"></a>
+<a name="id492128"></a>
<a href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
</h5>
<p>
@@ -619,7 +619,7 @@
can be optimal as well as generic.
</p>
<a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id492397"></a>
+<a name="id492428"></a>
<a href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
</h5>
<p>
@@ -627,7 +627,7 @@
comments when preparing this article.
</p>
<a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id492431"></a>
+<a name="id492462"></a>
<a href="background.html#boost_typetraits.background.references">References</a>
</h5>
<div class="orderedlist"><ol type="1">
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -92,7 +92,7 @@
<span class="keyword">struct</span> remove_volatile<span class="special">;</span>
</pre>
<a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id496247"></a>
+<a name="id496277"></a>
<a href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
Compiler Workarounds:</a>
</h5>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/intrinsics.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/intrinsics.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -71,7 +71,7 @@
of the following macros:
</p>
<div class="table">
-<a name="id498491"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
+<a name="id498521"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
<div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id503633"></a><p class="title"><b>Table 1.5. Examples</b></p>
+<a name="id503663"></a><p class="title"><b>Table 1.5. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -55,7 +55,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id504273"></a><p class="title"><b>Table 1.6. Examples</b></p>
+<a name="id504304"></a><p class="title"><b>Table 1.6. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -57,7 +57,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id504986"></a><p class="title"><b>Table 1.7. Examples</b></p>
+<a name="id505017"></a><p class="title"><b>Table 1.7. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id505625"></a><p class="title"><b>Table 1.8. Examples</b></p>
+<a name="id505657"></a><p class="title"><b>Table 1.8. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id506255"></a><p class="title"><b>Table 1.9. Examples</b></p>
+<a name="id506288"></a><p class="title"><b>Table 1.9. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/decay.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/decay.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -49,7 +49,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id507917"></a><p class="title"><b>Table 1.10. Examples</b></p>
+<a name="id507948"></a><p class="title"><b>Table 1.10. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -50,7 +50,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id509705"></a><p class="title"><b>Table 1.11. Examples</b></p>
+<a name="id509736"></a><p class="title"><b>Table 1.11. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -48,8 +48,19 @@
to a function</em></span>.
</li>
</ul></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../../doc/html/images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ function_traits is intended to introspect only C++ functions of the form
+ R (), R( A1 ), R ( A1, ... etc. ) and not function pointers or class member
+ functions. To convert a function pointer type to a suitable type use remove_pointer.
+ </p></td></tr>
+</table></div>
<div class="table">
-<a name="id510164"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
+<a name="id510217"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
<div class="table-contents"><table class="table" summary="Function Traits Members">
<colgroup>
<col>
@@ -112,7 +123,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id510443"></a><p class="title"><b>Table 1.13. Examples</b></p>
+<a name="id510495"></a><p class="title"><b>Table 1.13. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -50,7 +50,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id515944"></a><p class="title"><b>Table 1.14. Examples</b></p>
+<a name="id516016"></a><p class="title"><b>Table 1.14. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -131,69 +131,44 @@
</tr>
<tr><td align="left" valign="top">
<p>
- </p>
-<p>
- Don't confuse function-types with pointers to functions:
- </p>
-<p>
- </p>
-<p>
- <code class="computeroutput"><span class="keyword">typedef</span> <span class="keyword">int</span>
- <span class="identifier">f</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span></code>
- </p>
-<p>
- </p>
-<p>
- defines a function type,
- </p>
-<p>
- </p>
-<p>
- <code class="computeroutput"><span class="identifier">f</span> <span class="identifier">foo</span><span class="special">;</span></code>
- </p>
-<p>
- </p>
-<p>
- declares a prototype for a function of type <code class="computeroutput"><span class="identifier">f</span></code>,
- </p>
-<p>
- </p>
-<p>
- <code class="computeroutput"><span class="identifier">f</span><span class="special">*</span>
- <span class="identifier">pf</span> <span class="special">=</span>
- <span class="identifier">foo</span><span class="special">;</span></code>
- </p>
-<p>
- </p>
+ Don't confuse function-types with pointers to functions:
+ </p>
<p>
- <code class="computeroutput"><span class="identifier">f</span><span class="special">&</span>
- <span class="identifier">fr</span> <span class="special">=</span>
- <span class="identifier">foo</span><span class="special">;</span></code>
- </p>
+ <code class="computeroutput"><span class="keyword">typedef</span> <span class="keyword">int</span>
+ <span class="identifier">f</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span></code>
+ </p>
<p>
- </p>
+ defines a function type,
+ </p>
<p>
- declares a pointer and a reference to the function <code class="computeroutput"><span class="identifier">foo</span></code>.
- </p>
+ <code class="computeroutput"><span class="identifier">f</span> <span class="identifier">foo</span><span class="special">;</span></code>
+ </p>
<p>
- </p>
+ declares a prototype for a function of type <code class="computeroutput"><span class="identifier">f</span></code>,
+ </p>
<p>
- If you want to detect whether some type is a pointer-to-function then
- use:
- </p>
+ <code class="computeroutput"><span class="identifier">f</span><span class="special">*</span>
+ <span class="identifier">pf</span> <span class="special">=</span>
+ <span class="identifier">foo</span><span class="special">;</span></code>
+ </p>
<p>
- </p>
+ <code class="computeroutput"><span class="identifier">f</span><span class="special">&</span>
+ <span class="identifier">fr</span> <span class="special">=</span>
+ <span class="identifier">foo</span><span class="special">;</span></code>
+ </p>
<p>
- <code class="computeroutput">is_function<span class="special"><</span>remove_pointer<span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">value</span>
- <span class="special">&&</span> is_pointer<span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span></code>
- </p>
+ declares a pointer and a reference to the function <code class="computeroutput"><span class="identifier">foo</span></code>.
+ </p>
<p>
- </p>
+ If you want to detect whether some type is a pointer-to-function then use:
+ </p>
<p>
- or for pointers to member functions you can just use is_member_function_pointer
- directly.
- </p>
+ <code class="computeroutput">is_function<span class="special"><</span>remove_pointer<span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">value</span>
+ <span class="special">&&</span> is_pointer<span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span></code>
+ </p>
<p>
+ or for pointers to member functions you can just use is_member_function_pointer
+ directly.
</p>
</td></tr>
</table></div>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -110,23 +110,16 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- <code class="computeroutput"><span class="identifier">is_pointer</span></code> detects "real"
- pointer types only, and <span class="emphasis"><em>not</em></span> smart pointers. Users
- should not specialise <code class="computeroutput"><span class="identifier">is_pointer</span></code>
- for smart pointer types, as doing so may cause Boost (and other third
- party) code to fail to function correctly. Users wanting a trait to detect
- smart pointers should create their own. However, note that there is no
- way in general to auto-magically detect smart pointer types, so such
- a trait would have to be partially specialised for each supported smart
- pointer type.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ <code class="computeroutput"><span class="identifier">is_pointer</span></code> detects "real"
+ pointer types only, and <span class="emphasis"><em>not</em></span> smart pointers. Users
+ should not specialise <code class="computeroutput"><span class="identifier">is_pointer</span></code>
+ for smart pointer types, as doing so may cause Boost (and other third party)
+ code to fail to function correctly. Users wanting a trait to detect smart
+ pointers should create their own. However, note that there is no way in
+ general to auto-magically detect smart pointer types, so such a trait would
+ have to be partially specialised for each supported smart pointer type.
+ </p></td></tr>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -55,7 +55,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id536333"></a><p class="title"><b>Table 1.15. Examples</b></p>
+<a name="id536397"></a><p class="title"><b>Table 1.15. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -55,7 +55,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id536966"></a><p class="title"><b>Table 1.16. Examples</b></p>
+<a name="id537030"></a><p class="title"><b>Table 1.16. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/promote.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/promote.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -52,7 +52,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id537667"></a><p class="title"><b>Table 1.17. Examples</b></p>
+<a name="id537732"></a><p class="title"><b>Table 1.17. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -55,7 +55,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id539102"></a><p class="title"><b>Table 1.18. Examples</b></p>
+<a name="id539167"></a><p class="title"><b>Table 1.18. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id539826"></a><p class="title"><b>Table 1.19. Examples</b></p>
+<a name="id539889"></a><p class="title"><b>Table 1.19. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id540531"></a><p class="title"><b>Table 1.20. Examples</b></p>
+<a name="id540594"></a><p class="title"><b>Table 1.20. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -55,7 +55,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id541235"></a><p class="title"><b>Table 1.21. Examples</b></p>
+<a name="id541298"></a><p class="title"><b>Table 1.21. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id541971"></a><p class="title"><b>Table 1.22. Examples</b></p>
+<a name="id542035"></a><p class="title"><b>Table 1.22. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id542652"></a><p class="title"><b>Table 1.23. Examples</b></p>
+<a name="id542716"></a><p class="title"><b>Table 1.23. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -54,7 +54,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<div class="table">
-<a name="id543259"></a><p class="title"><b>Table 1.24. Examples</b></p>
+<a name="id543323"></a><p class="title"><b>Table 1.24. Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>
Modified: branches/bcbboost/libs/type_traits/doc/html/index.html
Modified: branches/bcbboost/libs/type_traits/test/promote_basic_test.cpp
Modified: branches/bcbboost/libs/type_traits/test/promote_enum_test.cpp
Modified: branches/bcbboost/libs/type_traits/test/promote_util.hpp
Modified: branches/bcbboost/libs/wave/ChangeLog
Modified: branches/bcbboost/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp
Modified: branches/bcbboost/libs/wave/samples/cpp_tokens/slex_iterator.hpp
Modified: branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl.re
Modified: branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re.cpp
Modified: branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp
Modified: branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp.re
Modified: branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.cpp
Modified: branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.inc
Modified: branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp.re
Modified: branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc
Modified: branches/bcbboost/libs/wave/test/build/Jamfile.v2
Modified: branches/bcbboost/libs/wave/test/testwave/testfiles/t_6_067.cpp
Modified: branches/bcbboost/libs/xpressive/test/regress.ipp
Modified: branches/bcbboost/libs/xpressive/test/test.hpp
Modified: branches/bcbboost/more/formal_review_schedule.html
Modified: branches/bcbboost/status/Jamfile.v2
Modified: branches/bcbboost/status/explicit-failures-markup.xml
Modified: branches/bcbboost/tools/boostbook/xsl/type.xsl
Modified: branches/bcbboost/tools/build/v2/build/targets.jam
Modified: branches/bcbboost/tools/build/v2/build/version.jam
Modified: branches/bcbboost/tools/build/v2/changes.txt
Modified: branches/bcbboost/tools/build/v2/index.html
Modified: branches/bcbboost/tools/build/v2/release_procedure.txt
Modified: branches/bcbboost/tools/build/v2/roll.sh
Modified: branches/bcbboost/tools/build/v2/test/boostbook.py
Modified: branches/bcbboost/tools/build/v2/test/boostbook/Jamroot
Modified: branches/bcbboost/tools/build/v2/test/boostbook/docs.xml
Modified: branches/bcbboost/tools/build/v2/test/example_qt4.py
Modified: branches/bcbboost/tools/build/v2/test/test-config-example.jam
Modified: branches/bcbboost/tools/build/v2/tools/builtin.jam
Modified: branches/bcbboost/tools/build/v2/tools/gcc.jam
Modified: branches/bcbboost/tools/build/v2/tools/msvc.jam
Modified: branches/bcbboost/tools/build/v2/tools/pathscale.jam
Modified: branches/bcbboost/tools/build/v2/tools/stlport.jam
Modified: branches/bcbboost/tools/jam/build_dist.bat
Modified: branches/bcbboost/tools/jam/build_dist.sh
Modified: branches/bcbboost/tools/jam/doc/bjam.qbk
Modified: branches/bcbboost/tools/jam/src/boost-jam.spec
Modified: branches/bcbboost/tools/jam/src/build.jam
Modified: branches/bcbboost/tools/jam/src/builtins.c
Modified: branches/bcbboost/tools/jam/src/compile.c
Modified: branches/bcbboost/tools/jam/src/execunix.c
Modified: branches/bcbboost/tools/jam/src/patchlevel.h
Modified: branches/bcbboost/tools/regression/boost_svn_export_archive.sh
Modified: branches/bcbboost/tools/regression/compiler_status.cpp
Modified: branches/bcbboost/tools/regression/process_jam_log.cpp
Modified: branches/bcbboost/tools/regression/xsl_reports/runner/regression.py
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
==============================================================================
--- branches/bcbboost/libs/type_traits/doc/html/index.html (original)
+++ branches/bcbboost/libs/type_traits/doc/html/index.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -27,7 +27,7 @@
Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
Ramey and Jeremy Siek</p></div>
<div><div class="legalnotice">
-<a name="id489810"></a><p>
+<a name="id435860"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <ulink url="http://www.boost.org class="emphasis"><em>LICENSE_1_0.txt">
http:</em></span>/www.boost.org/LICENSE_1_0.txt </ulink>)
==============================================================================
--- branches/bcbboost/libs/type_traits/test/promote_basic_test.cpp (original)
+++ branches/bcbboost/libs/type_traits/test/promote_basic_test.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -57,11 +57,34 @@
// Version prior to VC8 didn't allow WCHAR_MAX in #if expressions
#if defined(BOOST_MSVC) && BOOST_MSVC < 1400
-#define BOOST_TT_AUX_WCHAR_MAX 0 // force test_cv< wchar_t, int >
-#else
-#define BOOST_TT_AUX_WCHAR_MAX WCHAR_MAX
+# define BOOST_TT_AUX_WCHAR_MAX USHORT_MAX // force test_cv< wchar_t, int >
+#elif defined(WCHAR_MAX) && !defined(__APPLE__)
+# define BOOST_TT_AUX_WCHAR_MAX WCHAR_MAX
+#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__))
+ // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned:
+# define BOOST_TT_AUX_WCHAR_MAX USHORT_MAX // force test_cv< wchar_t, int >
+#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\
+ || (defined __APPLE__)\
+ || (defined(__OpenBSD__) && defined(__GNUC__))\
+ || (defined(__NetBSD__) && defined(__GNUC__))\
+ || (defined(__FreeBSD__) && defined(__GNUC__))\
+ || (defined(__DragonFly__) && defined(__GNUC__))\
+ || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT))
+ // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int.
+ // - SGI MIPSpro with native library
+ // - gcc 3.x on HP-UX
+ // - Mac OS X with native library
+ // - gcc on FreeBSD, OpenBSD and NetBSD
+# define BOOST_TT_AUX_WCHAR_MAX INT_MAX // force test_cv< wchar_t, int >
+#elif defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 2) && !defined(__SGI_STL_PORT)
+ // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as unsigned int.
+ // - gcc 2.95.x on HP-UX
+ // (also, std::numeric_limits<wchar_t> appears to return the wrong values).
+# define BOOST_TT_AUX_WCHAR_MAX UINT_MAX // force test_cv< wchar_t, int >
#endif
+// For this PP-logic to work we need a valid WCHAR_MAX etc:
+#if defined(BOOST_TT_AUX_WCHAR_MAX) && !defined(__DECCXX)
#if BOOST_TT_AUX_WCHAR_MAX <= INT_MAX
test_cv< wchar_t, int >();
#elif WCHAR_MIN == 0 && BOOST_TT_AUX_WCHAR_MAX <= UINT_MAX
@@ -71,6 +94,7 @@
#else
test_cv< wchar_t, unsigned long >();
#endif
+#endif
#undef BOOST_TT_AUX_WCHAR_MAX
==============================================================================
--- branches/bcbboost/libs/type_traits/test/promote_enum_test.cpp (original)
+++ branches/bcbboost/libs/type_traits/test/promote_enum_test.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -91,7 +91,7 @@
}
#if (defined(BOOST_MSVC) && BOOST_MSVC <= 1400 ) || \
- (defined(BOOST_INTEL_WIN) && BOOST_INTEL_WIN <= 900)
+ (defined(BOOST_INTEL_WIN) && BOOST_INTEL_WIN <= 1000)
// Don't test UIntEnum on VC++ 8.0 and Intel for Windows 9.0,
// they are broken. More info is on top of this file.
#else
==============================================================================
--- branches/bcbboost/libs/type_traits/test/promote_util.hpp (original)
+++ branches/bcbboost/libs/type_traits/test/promote_util.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -22,10 +22,10 @@
template<class T, class Promoted>
inline void test_cv()
{
- typedef BOOST_DEDUCED_TYPENAME ::boost::promote<T >::type promoted;
- typedef BOOST_DEDUCED_TYPENAME ::boost::promote<T const >::type promoted_c;
- typedef BOOST_DEDUCED_TYPENAME ::boost::promote<T volatile>::type promoted_v;
- typedef BOOST_DEDUCED_TYPENAME ::boost::promote<T const volatile>::type promoted_cv;
+ typedef BOOST_DEDUCED_TYPENAME boost::promote<T >::type promoted;
+ typedef BOOST_DEDUCED_TYPENAME boost::promote<T const >::type promoted_c;
+ typedef BOOST_DEDUCED_TYPENAME boost::promote<T volatile>::type promoted_v;
+ typedef BOOST_DEDUCED_TYPENAME boost::promote<T const volatile>::type promoted_cv;
BOOST_STATIC_ASSERT(( ::boost::is_same< promoted , Promoted >::value ));
BOOST_STATIC_ASSERT(( ::boost::is_same< promoted_c , Promoted const >::value ));
==============================================================================
--- branches/bcbboost/libs/wave/ChangeLog (original)
+++ branches/bcbboost/libs/wave/ChangeLog 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -144,11 +144,13 @@
hooks consistent. Now return 'false' generally means: normal execution and
return 'true' generally means: skip execution of the corresponding
preprocessor action.
-- Fixed compilation problems on gcc, fixed ambiguity in with boost code
- (detail namespace was ambigious).
+- Fixed compilation problems on gcc, fixed ambiguity with boost code (detail
+ namespace was ambigious).
- Fixed predefined macro support to be thread safe.
- Added missing file to real_positions example. Thanks to Ludovic Aubert for
spotting the problem.
+- Unterminated C++/C comment diagnostics are now a warning and not an error
+ anymore.
Boost V1.34.0
- Wave Version 1.2.4
==============================================================================
--- branches/bcbboost/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp (original)
+++ branches/bcbboost/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -151,14 +151,14 @@
#define FLOAT_SUFFIX "(" "[fF][lL]?" OR "[lL][fF]?" ")"
#define CHAR_SPEC "L?"
-#define BACKSLASH "(" "\\" OR TRI(Q("/")) ")"
+#define BACKSLASH "(" Q("\\") OR TRI(Q("/")) ")"
#define ESCAPESEQ "(" BACKSLASH "(" \
"[abfnrtv?'\"]" OR \
BACKSLASH OR \
"x" HEXDIGIT "+" OR \
OCTALDIGIT OCTALDIGIT "?" OCTALDIGIT "?" \
"))"
-#define HEXQUAD HEXDIGIT HEXDIGIT HEXDIGIT HEXDIGIT
+#define HEXQUAD "(" HEXDIGIT HEXDIGIT HEXDIGIT HEXDIGIT ")"
#define UNIVERSALCHAR "(" BACKSLASH "(" \
"u" HEXQUAD OR \
"U" HEXQUAD HEXQUAD \
==============================================================================
--- branches/bcbboost/libs/wave/samples/cpp_tokens/slex_iterator.hpp (original)
+++ branches/bcbboost/libs/wave/samples/cpp_tokens/slex_iterator.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -18,6 +18,7 @@
#include <boost/assert.hpp>
#include <boost/shared_ptr.hpp>
+#include <boost/detail/workaround.hpp>
#include <boost/spirit/iterator/multi_pass.hpp>
#include <boost/wave/language_support.hpp>
@@ -55,7 +56,7 @@
boost::wave::language_support language)
: functor_ptr(slex_input_interface<TokenT>
::new_lexer(first, last, pos, language))
-#if 0 != __DECCXX_VER
+#if 0 != __DECCXX_VER || BOOST_WORKAROUND(BOOST_INTEL_LINUX, == 910)
, eof()
#endif // 0 != __DECCXX_VER
{}
==============================================================================
--- branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl.re (original)
+++ branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl.re 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -33,6 +33,7 @@
#include <boost/wave/token_ids.hpp>
#include <boost/wave/cpplexer/re2clex/aq.hpp>
#include <boost/wave/cpplexer/re2clex/scanner.hpp>
+#include <boost/wave/cpplexer/cpplexer_exceptions.hpp>
#include "idl_re.hpp"
@@ -199,8 +200,11 @@
if (buf == 0)
{
using namespace std; // some systems have printf in std
- if (0 != s->error_proc)
- (*s->error_proc)(s, "Out of memory!");
+ if (0 != s->error_proc) {
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::unexpected_error,
+ "Out of memory!");
+ }
else
printf("Out of memory!\n");
@@ -473,8 +477,11 @@
if(cursor != s->eof)
{
using namespace std; // some systems have printf in std
- if (0 != s->error_proc)
- (*s->error_proc)(s, "'\\000' in input stream");
+ if (0 != s->error_proc) {
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "'\\000' in input stream");
+ }
else
printf("Error: 0 in file\n");
}
@@ -506,14 +513,18 @@
if(cursor == s->eof)
{
if (s->error_proc)
- (*s->error_proc)(s, "Unterminated comment");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_warning,
+ "Unterminated comment");
else
printf("Error: Unterminated comment\n");
}
else
{
if (s->error_proc)
- (*s->error_proc)(s, "'\\000' in input stream");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "'\\000' in input stream");
else
printf("Error: 0 in file");
}
@@ -526,7 +537,9 @@
anyctrl
{
if (s->error_proc)
- (*s->error_proc)(s, "invalid character in input stream");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "invalid character in input stream");
else
printf("Error: 0 in file");
}
@@ -551,7 +564,9 @@
if(cursor != s->eof)
{
if (s->error_proc)
- (*s->error_proc)(s, "'\\000' in input stream");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "'\\000' in input stream");
else
printf("Error: 0 in file");
}
==============================================================================
--- branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re.cpp (original)
+++ branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,5 +1,5 @@
-/* Generated by re2c 0.12.1 on Tue Jun 26 14:37:16 2007 */
-#line 1 "idl.re"
+/* Generated by re2c 0.12.1 on Tue Oct 02 12:07:30 2007 */
+#line 1 "..\\..\\idllexer\\idl.re"
/*=============================================================================
Boost.Wave: A Standard compliant C++ preprocessor library
@@ -35,6 +35,7 @@
#include <boost/wave/token_ids.hpp>
#include <boost/wave/cpplexer/re2clex/aq.hpp>
#include <boost/wave/cpplexer/re2clex/scanner.hpp>
+#include <boost/wave/cpplexer/cpplexer_exceptions.hpp>
#include "idl_re.hpp"
@@ -201,8 +202,11 @@
if (buf == 0)
{
using namespace std; // some systems have printf in std
- if (0 != s->error_proc)
- (*s->error_proc)(s, "Out of memory!");
+ if (0 != s->error_proc) {
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::unexpected_error,
+ "Out of memory!");
+ }
else
printf("Out of memory!\n");
@@ -354,7 +358,7 @@
uchar *cursor = s->tok = s->cur;
-#line 374 "idl.re"
+#line 378 "..\\..\\idllexer\\idl.re"
{
@@ -427,7 +431,7 @@
68, 68, 68, 68, 68, 68, 68, 68,
};
-#line 431 "idl_re.cpp"
+#line 435 "..\\..\\idllexer\\idl_re.cpp"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -539,18 +543,18 @@
++YYCURSOR;
if((yych = *YYCURSOR) == '*') goto yy356;
if(yych == '/') goto yy354;
-#line 398 "idl.re"
+#line 402 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_DIVIDE); }
-#line 545 "idl_re.cpp"
+#line 549 "..\\..\\idllexer\\idl_re.cpp"
yy4:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 'R') goto yy350;
goto yy202;
yy5:
-#line 421 "idl.re"
+#line 425 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_IDENTIFIER); }
-#line 554 "idl_re.cpp"
+#line 558 "..\\..\\idllexer\\idl_re.cpp"
yy6:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -558,24 +562,24 @@
goto yy202;
yy7:
++YYCURSOR;
-#line 383 "idl.re"
+#line 387 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_LEFTBRACE); }
-#line 564 "idl_re.cpp"
+#line 568 "..\\..\\idllexer\\idl_re.cpp"
yy9:
++YYCURSOR;
-#line 384 "idl.re"
+#line 388 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_RIGHTBRACE); }
-#line 569 "idl_re.cpp"
+#line 573 "..\\..\\idllexer\\idl_re.cpp"
yy11:
++YYCURSOR;
-#line 385 "idl.re"
+#line 389 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_LEFTBRACKET); }
-#line 574 "idl_re.cpp"
+#line 578 "..\\..\\idllexer\\idl_re.cpp"
yy13:
++YYCURSOR;
-#line 386 "idl.re"
+#line 390 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_RIGHTBRACKET); }
-#line 579 "idl_re.cpp"
+#line 583 "..\\..\\idllexer\\idl_re.cpp"
yy15:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
@@ -611,127 +615,127 @@
}
}
yy16:
-#line 387 "idl.re"
+#line 391 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_POUND); }
-#line 617 "idl_re.cpp"
+#line 621 "..\\..\\idllexer\\idl_re.cpp"
yy17:
++YYCURSOR;
-#line 389 "idl.re"
+#line 393 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_LEFTPAREN); }
-#line 622 "idl_re.cpp"
+#line 626 "..\\..\\idllexer\\idl_re.cpp"
yy19:
++YYCURSOR;
-#line 390 "idl.re"
+#line 394 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_RIGHTPAREN); }
-#line 627 "idl_re.cpp"
+#line 631 "..\\..\\idllexer\\idl_re.cpp"
yy21:
++YYCURSOR;
-#line 391 "idl.re"
+#line 395 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_SEMICOLON); }
-#line 632 "idl_re.cpp"
+#line 636 "..\\..\\idllexer\\idl_re.cpp"
yy23:
++YYCURSOR;
-#line 392 "idl.re"
+#line 396 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_COLON); }
-#line 637 "idl_re.cpp"
+#line 641 "..\\..\\idllexer\\idl_re.cpp"
yy25:
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if(yych == '?') goto yy341;
yy26:
-#line 393 "idl.re"
+#line 397 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_QUESTION_MARK); }
-#line 645 "idl_re.cpp"
+#line 649 "..\\..\\idllexer\\idl_re.cpp"
yy27:
++YYCURSOR;
if((yych = *YYCURSOR) <= '/') goto yy28;
if(yych <= '9') goto yy168;
yy28:
-#line 394 "idl.re"
+#line 398 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_DOT); }
-#line 653 "idl_re.cpp"
+#line 657 "..\\..\\idllexer\\idl_re.cpp"
yy29:
++YYCURSOR;
if((yych = *YYCURSOR) == '+') goto yy339;
-#line 395 "idl.re"
+#line 399 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PLUS); }
-#line 659 "idl_re.cpp"
+#line 663 "..\\..\\idllexer\\idl_re.cpp"
yy31:
++YYCURSOR;
if((yych = *YYCURSOR) == '-') goto yy337;
-#line 396 "idl.re"
+#line 400 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_MINUS); }
-#line 665 "idl_re.cpp"
+#line 669 "..\\..\\idllexer\\idl_re.cpp"
yy33:
++YYCURSOR;
-#line 397 "idl.re"
+#line 401 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_STAR); }
-#line 670 "idl_re.cpp"
+#line 674 "..\\..\\idllexer\\idl_re.cpp"
yy35:
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
if(yych == ':') goto yy238;
yy36:
-#line 399 "idl.re"
+#line 403 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PERCENT); }
-#line 678 "idl_re.cpp"
+#line 682 "..\\..\\idllexer\\idl_re.cpp"
yy37:
++YYCURSOR;
-#line 400 "idl.re"
+#line 404 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_XOR); }
-#line 683 "idl_re.cpp"
+#line 687 "..\\..\\idllexer\\idl_re.cpp"
yy39:
++YYCURSOR;
if((yych = *YYCURSOR) == '&') goto yy236;
-#line 401 "idl.re"
+#line 405 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_AND); }
-#line 689 "idl_re.cpp"
+#line 693 "..\\..\\idllexer\\idl_re.cpp"
yy41:
++YYCURSOR;
if((yych = *YYCURSOR) == '|') goto yy234;
-#line 402 "idl.re"
+#line 406 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_OR); }
-#line 695 "idl_re.cpp"
+#line 699 "..\\..\\idllexer\\idl_re.cpp"
yy43:
++YYCURSOR;
-#line 403 "idl.re"
+#line 407 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_COMPL); }
-#line 700 "idl_re.cpp"
+#line 704 "..\\..\\idllexer\\idl_re.cpp"
yy45:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy232;
-#line 404 "idl.re"
+#line 408 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_NOT); }
-#line 706 "idl_re.cpp"
+#line 710 "..\\..\\idllexer\\idl_re.cpp"
yy47:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy230;
-#line 405 "idl.re"
+#line 409 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_ASSIGN); }
-#line 712 "idl_re.cpp"
+#line 716 "..\\..\\idllexer\\idl_re.cpp"
yy49:
++YYCURSOR;
if((yych = *YYCURSOR) <= ';') goto yy50;
if(yych <= '<') goto yy228;
if(yych <= '=') goto yy226;
yy50:
-#line 406 "idl.re"
+#line 410 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_LESS); }
-#line 721 "idl_re.cpp"
+#line 725 "..\\..\\idllexer\\idl_re.cpp"
yy51:
++YYCURSOR;
if((yych = *YYCURSOR) <= '<') goto yy52;
if(yych <= '=') goto yy222;
if(yych <= '>') goto yy224;
yy52:
-#line 407 "idl.re"
+#line 411 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_GREATER); }
-#line 730 "idl_re.cpp"
+#line 734 "..\\..\\idllexer\\idl_re.cpp"
yy53:
++YYCURSOR;
-#line 418 "idl.re"
+#line 422 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_COMMA); }
-#line 735 "idl_re.cpp"
+#line 739 "..\\..\\idllexer\\idl_re.cpp"
yy55:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -761,11 +765,11 @@
if(yych == 'U') goto yy193;
if(yych == 'u') goto yy192;
yy58:
-#line 485 "idl.re"
+#line 492 "..\\..\\idllexer\\idl.re"
{
BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType));
}
-#line 769 "idl_re.cpp"
+#line 773 "..\\..\\idllexer\\idl_re.cpp"
yy59:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
@@ -807,9 +811,9 @@
}
}
yy60:
-#line 424 "idl.re"
+#line 428 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_INTLIT); }
-#line 813 "idl_re.cpp"
+#line 817 "..\\..\\idllexer\\idl_re.cpp"
yy61:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
@@ -870,37 +874,40 @@
yych = *YYCURSOR;
goto yy74;
yy65:
-#line 463 "idl.re"
+#line 467 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_SPACE); }
-#line 876 "idl_re.cpp"
+#line 880 "..\\..\\idllexer\\idl_re.cpp"
yy66:
++YYCURSOR;
yy67:
-#line 466 "idl.re"
+#line 470 "..\\..\\idllexer\\idl.re"
{
s->line++;
BOOST_WAVE_RET(T_NEWLINE);
}
-#line 885 "idl_re.cpp"
+#line 889 "..\\..\\idllexer\\idl_re.cpp"
yy68:
yych = *++YYCURSOR;
if(yych == 0x0A) goto yy72;
goto yy67;
yy69:
++YYCURSOR;
-#line 472 "idl.re"
+#line 476 "..\\..\\idllexer\\idl.re"
{
if(cursor != s->eof)
{
using namespace std; // some systems have printf in std
- if (0 != s->error_proc)
- (*s->error_proc)(s, "'\\000' in input stream");
+ if (0 != s->error_proc) {
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "'\\000' in input stream");
+ }
else
printf("Error: 0 in file\n");
}
BOOST_WAVE_RET(T_EOF);
}
-#line 904 "idl_re.cpp"
+#line 911 "..\\..\\idllexer\\idl_re.cpp"
yy71:
yych = *++YYCURSOR;
goto yy58;
@@ -1039,9 +1046,9 @@
yy80:
++YYCURSOR;
yy81:
-#line 436 "idl.re"
+#line 440 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1045 "idl_re.cpp"
+#line 1052 "..\\..\\idllexer\\idl_re.cpp"
yy82:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -1886,9 +1893,9 @@
yy130:
++YYCURSOR;
yy131:
-#line 433 "idl.re"
+#line 437 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_CHARLIT); }
-#line 1892 "idl_re.cpp"
+#line 1899 "..\\..\\idllexer\\idl_re.cpp"
yy132:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -2510,9 +2517,9 @@
}
yy164:
++YYCURSOR;
-#line 430 "idl.re"
+#line 434 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_FIXEDPOINTLIT); }
-#line 2516 "idl_re.cpp"
+#line 2523 "..\\..\\idllexer\\idl_re.cpp"
yy166:
yyaccept = 5;
YYMARKER = ++YYCURSOR;
@@ -2573,9 +2580,9 @@
}
}
yy170:
-#line 427 "idl.re"
+#line 431 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_FLOATLIT); }
-#line 2579 "idl_re.cpp"
+#line 2586 "..\\..\\idllexer\\idl_re.cpp"
yy171:
yych = *++YYCURSOR;
if(yych <= ',') {
@@ -3081,44 +3088,44 @@
goto yy121;
yy222:
++YYCURSOR;
-#line 413 "idl.re"
+#line 417 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 3087 "idl_re.cpp"
+#line 3094 "..\\..\\idllexer\\idl_re.cpp"
yy224:
++YYCURSOR;
-#line 409 "idl.re"
+#line 413 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 3092 "idl_re.cpp"
+#line 3099 "..\\..\\idllexer\\idl_re.cpp"
yy226:
++YYCURSOR;
-#line 412 "idl.re"
+#line 416 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 3097 "idl_re.cpp"
+#line 3104 "..\\..\\idllexer\\idl_re.cpp"
yy228:
++YYCURSOR;
-#line 408 "idl.re"
+#line 412 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 3102 "idl_re.cpp"
+#line 3109 "..\\..\\idllexer\\idl_re.cpp"
yy230:
++YYCURSOR;
-#line 410 "idl.re"
+#line 414 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_EQUAL); }
-#line 3107 "idl_re.cpp"
+#line 3114 "..\\..\\idllexer\\idl_re.cpp"
yy232:
++YYCURSOR;
-#line 411 "idl.re"
+#line 415 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_NOTEQUAL); }
-#line 3112 "idl_re.cpp"
+#line 3119 "..\\..\\idllexer\\idl_re.cpp"
yy234:
++YYCURSOR;
-#line 415 "idl.re"
+#line 419 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_OROR); }
-#line 3117 "idl_re.cpp"
+#line 3124 "..\\..\\idllexer\\idl_re.cpp"
yy236:
++YYCURSOR;
-#line 414 "idl.re"
+#line 418 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_ANDAND); }
-#line 3122 "idl_re.cpp"
+#line 3129 "..\\..\\idllexer\\idl_re.cpp"
yy238:
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
@@ -3199,9 +3206,9 @@
yych = *++YYCURSOR;
if(yych != 'g') goto yy77;
++YYCURSOR;
-#line 460 "idl.re"
+#line 464 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_WARNING); }
-#line 3205 "idl_re.cpp"
+#line 3212 "..\\..\\idllexer\\idl_re.cpp"
yy255:
yych = *++YYCURSOR;
if(yych != 'a') goto yy77;
@@ -3212,18 +3219,18 @@
yych = *++YYCURSOR;
if(yych != 'a') goto yy77;
++YYCURSOR;
-#line 458 "idl.re"
+#line 462 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 3218 "idl_re.cpp"
+#line 3225 "..\\..\\idllexer\\idl_re.cpp"
yy261:
yych = *++YYCURSOR;
if(yych != 'n') goto yy77;
yych = *++YYCURSOR;
if(yych != 'e') goto yy77;
++YYCURSOR;
-#line 456 "idl.re"
+#line 460 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_LINE); }
-#line 3227 "idl_re.cpp"
+#line 3234 "..\\..\\idllexer\\idl_re.cpp"
yy265:
yych = *++YYCURSOR;
if(yych != 'd') goto yy77;
@@ -3232,9 +3239,9 @@
yych = *++YYCURSOR;
if(yych != 'f') goto yy77;
++YYCURSOR;
-#line 455 "idl.re"
+#line 459 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 3238 "idl_re.cpp"
+#line 3245 "..\\..\\idllexer\\idl_re.cpp"
yy270:
yych = *++YYCURSOR;
if(yych != 'f') goto yy77;
@@ -3245,9 +3252,9 @@
yych = *++YYCURSOR;
if(yych != 'e') goto yy77;
++YYCURSOR;
-#line 454 "idl.re"
+#line 458 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 3251 "idl_re.cpp"
+#line 3258 "..\\..\\idllexer\\idl_re.cpp"
yy276:
yych = *++YYCURSOR;
if(yych == 'r') goto yy289;
@@ -3267,41 +3274,41 @@
yych = *++YYCURSOR;
if(yych != 'f') goto yy77;
++YYCURSOR;
-#line 452 "idl.re"
+#line 456 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3273 "idl_re.cpp"
+#line 3280 "..\\..\\idllexer\\idl_re.cpp"
yy283:
++YYCURSOR;
-#line 451 "idl.re"
+#line 455 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3278 "idl_re.cpp"
+#line 3285 "..\\..\\idllexer\\idl_re.cpp"
yy285:
yych = *++YYCURSOR;
if(yych != 'i') goto yy77;
yych = *++YYCURSOR;
if(yych != 'f') goto yy77;
++YYCURSOR;
-#line 453 "idl.re"
+#line 457 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 3287 "idl_re.cpp"
+#line 3294 "..\\..\\idllexer\\idl_re.cpp"
yy289:
yych = *++YYCURSOR;
if(yych != 'o') goto yy77;
yych = *++YYCURSOR;
if(yych != 'r') goto yy77;
++YYCURSOR;
-#line 457 "idl.re"
+#line 461 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_ERROR); }
-#line 3296 "idl_re.cpp"
+#line 3303 "..\\..\\idllexer\\idl_re.cpp"
yy293:
yyaccept = 9;
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 'd') goto yy321;
if(yych == 'n') goto yy322;
yy294:
-#line 448 "idl.re"
+#line 452 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_IF); }
-#line 3305 "idl_re.cpp"
+#line 3312 "..\\..\\idllexer\\idl_re.cpp"
yy295:
yych = *++YYCURSOR;
if(yych != 'c') goto yy77;
@@ -3333,9 +3340,9 @@
}
}
yy302:
-#line 446 "idl.re"
+#line 450 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 3339 "idl_re.cpp"
+#line 3346 "..\\..\\idllexer\\idl_re.cpp"
yy303:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -3360,9 +3367,9 @@
}
if(yych <= '=') goto yy77;
++YYCURSOR;
-#line 440 "idl.re"
+#line 444 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 3366 "idl_re.cpp"
+#line 3373 "..\\..\\idllexer\\idl_re.cpp"
yy310:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -3373,9 +3380,9 @@
}
if(yych <= '!') goto yy77;
++YYCURSOR;
-#line 443 "idl.re"
+#line 447 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 3379 "idl_re.cpp"
+#line 3386 "..\\..\\idllexer\\idl_re.cpp"
yy314:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -3431,16 +3438,16 @@
yych = *++YYCURSOR;
if(yych != 'f') goto yy77;
++YYCURSOR;
-#line 450 "idl.re"
+#line 454 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 3437 "idl_re.cpp"
+#line 3444 "..\\..\\idllexer\\idl_re.cpp"
yy327:
yych = *++YYCURSOR;
if(yych != 'f') goto yy77;
++YYCURSOR;
-#line 449 "idl.re"
+#line 453 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 3444 "idl_re.cpp"
+#line 3451 "..\\..\\idllexer\\idl_re.cpp"
yy330:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -3496,14 +3503,14 @@
}
yy337:
++YYCURSOR;
-#line 417 "idl.re"
+#line 421 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 3502 "idl_re.cpp"
+#line 3509 "..\\..\\idllexer\\idl_re.cpp"
yy339:
++YYCURSOR;
-#line 416 "idl.re"
+#line 420 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 3507 "idl_re.cpp"
+#line 3514 "..\\..\\idllexer\\idl_re.cpp"
yy341:
yych = *++YYCURSOR;
if(yych == '/') goto yy342;
@@ -3516,9 +3523,9 @@
goto yy77;
yy343:
++YYCURSOR;
-#line 388 "idl.re"
+#line 392 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_POUND_POUND); }
-#line 3522 "idl_re.cpp"
+#line 3529 "..\\..\\idllexer\\idl_re.cpp"
yy345:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -3537,9 +3544,9 @@
if(yych == '?') goto yy204;
if(yych == '\\') goto yy203;
yy349:
-#line 381 "idl.re"
+#line 385 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_FALSE); }
-#line 3543 "idl_re.cpp"
+#line 3550 "..\\..\\idllexer\\idl_re.cpp"
yy350:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -3555,28 +3562,28 @@
if(yych == '?') goto yy204;
if(yych == '\\') goto yy203;
yy353:
-#line 380 "idl.re"
+#line 384 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_TRUE); }
-#line 3561 "idl_re.cpp"
+#line 3568 "..\\..\\idllexer\\idl_re.cpp"
yy354:
++YYCURSOR;
-#line 378 "idl.re"
+#line 382 "..\\..\\idllexer\\idl.re"
{ goto cppcomment; }
-#line 3566 "idl_re.cpp"
+#line 3573 "..\\..\\idllexer\\idl_re.cpp"
yy356:
++YYCURSOR;
-#line 377 "idl.re"
+#line 381 "..\\..\\idllexer\\idl.re"
{ goto ccomment; }
-#line 3571 "idl_re.cpp"
+#line 3578 "..\\..\\idllexer\\idl_re.cpp"
}
}
-#line 488 "idl.re"
+#line 495 "..\\..\\idllexer\\idl.re"
ccomment:
{
-#line 3580 "idl_re.cpp"
+#line 3587 "..\\..\\idllexer\\idl_re.cpp"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
@@ -3600,20 +3607,20 @@
++YYCURSOR;
if((yych = *YYCURSOR) == '/') goto yy371;
yy361:
-#line 501 "idl.re"
+#line 508 "..\\..\\idllexer\\idl.re"
{ goto ccomment; }
-#line 3606 "idl_re.cpp"
+#line 3613 "..\\..\\idllexer\\idl_re.cpp"
yy362:
++YYCURSOR;
yy363:
-#line 494 "idl.re"
+#line 501 "..\\..\\idllexer\\idl.re"
{
/*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
/*s->tok = cursor; */
s->line += count_backslash_newlines(s, cursor) +1;
goto ccomment;
}
-#line 3617 "idl_re.cpp"
+#line 3624 "..\\..\\idllexer\\idl_re.cpp"
yy364:
yych = *++YYCURSOR;
if(yych == 0x0A) goto yy370;
@@ -3623,20 +3630,24 @@
goto yy361;
yy366:
++YYCURSOR;
-#line 504 "idl.re"
+#line 511 "..\\..\\idllexer\\idl.re"
{
using namespace std; // some systems have printf in std
if(cursor == s->eof)
{
if (s->error_proc)
- (*s->error_proc)(s, "Unterminated comment");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_warning,
+ "Unterminated comment");
else
printf("Error: Unterminated comment\n");
}
else
{
if (s->error_proc)
- (*s->error_proc)(s, "'\\000' in input stream");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "'\\000' in input stream");
else
printf("Error: 0 in file");
}
@@ -3645,34 +3656,36 @@
/* the comment is unterminated, but nevertheless its a comment */
BOOST_WAVE_RET(T_CCOMMENT);
}
-#line 3649 "idl_re.cpp"
+#line 3660 "..\\..\\idllexer\\idl_re.cpp"
yy368:
++YYCURSOR;
-#line 527 "idl.re"
+#line 538 "..\\..\\idllexer\\idl.re"
{
if (s->error_proc)
- (*s->error_proc)(s, "invalid character in input stream");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "invalid character in input stream");
else
printf("Error: 0 in file");
}
-#line 3659 "idl_re.cpp"
+#line 3672 "..\\..\\idllexer\\idl_re.cpp"
yy370:
yych = *++YYCURSOR;
goto yy363;
yy371:
++YYCURSOR;
-#line 492 "idl.re"
+#line 499 "..\\..\\idllexer\\idl.re"
{ BOOST_WAVE_RET(T_CCOMMENT); }
-#line 3667 "idl_re.cpp"
+#line 3680 "..\\..\\idllexer\\idl_re.cpp"
}
}
-#line 534 "idl.re"
+#line 547 "..\\..\\idllexer\\idl.re"
cppcomment:
{
-#line 3676 "idl_re.cpp"
+#line 3689 "..\\..\\idllexer\\idl_re.cpp"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
@@ -3691,32 +3704,34 @@
yy376:
++YYCURSOR;
yy377:
-#line 539 "idl.re"
+#line 552 "..\\..\\idllexer\\idl.re"
{
/*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
/*s->tok = cursor; */
s->line++;
BOOST_WAVE_RET(T_CPPCOMMENT);
}
-#line 3702 "idl_re.cpp"
+#line 3715 "..\\..\\idllexer\\idl_re.cpp"
yy378:
yych = *++YYCURSOR;
if(yych == 0x0A) goto yy383;
goto yy377;
yy379:
++YYCURSOR;
-#line 546 "idl.re"
+#line 559 "..\\..\\idllexer\\idl.re"
{ goto cppcomment; }
-#line 3711 "idl_re.cpp"
+#line 3724 "..\\..\\idllexer\\idl_re.cpp"
yy381:
++YYCURSOR;
-#line 549 "idl.re"
+#line 562 "..\\..\\idllexer\\idl.re"
{
using namespace std; // some systems have printf in std
if(cursor != s->eof)
{
if (s->error_proc)
- (*s->error_proc)(s, "'\\000' in input stream");
+ (*s->error_proc)(s,
+ cpplexer::lexing_exception::generic_lexing_error,
+ "'\\000' in input stream");
else
printf("Error: 0 in file");
}
@@ -3725,14 +3740,14 @@
/* the comment is unterminated, but nevertheless its a comment */
BOOST_WAVE_RET(T_CPPCOMMENT);
}
-#line 3729 "idl_re.cpp"
+#line 3744 "..\\..\\idllexer\\idl_re.cpp"
yy383:
++YYCURSOR;
yych = *YYCURSOR;
goto yy377;
}
}
-#line 563 "idl.re"
+#line 578 "..\\..\\idllexer\\idl.re"
} /* end of scan */
==============================================================================
--- branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp (original)
+++ branches/bcbboost/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -78,7 +78,7 @@
}
// error reporting from the re2c generated lexer
- static int report_error(scanner_t const *s, char const *, ...);
+ static int report_error(scanner_t const *s, int code, char const *, ...);
private:
static char const *tok_names[];
@@ -164,7 +164,8 @@
template <typename IteratorT, typename PositionT>
inline int
-lexer<IteratorT, PositionT>::report_error(scanner_t const *s, char const* msg, ...)
+lexer<IteratorT, PositionT>::report_error(scanner_t const *s, int errcode,
+ char const* msg, ...)
{
BOOST_ASSERT(0 != s);
BOOST_ASSERT(0 != msg);
@@ -177,8 +178,8 @@
vsprintf(buffer, msg, params);
va_end(params);
- BOOST_WAVE_LEXER_THROW(boost::wave::cpplexer::lexing_exception,
- generic_lexing_error, buffer, s->line, -1, s->file_name);
+ BOOST_WAVE_LEXER_THROW_VAR(boost::wave::cpplexer::lexing_exception,
+ errcode, buffer, s->line, -1, s->file_name);
return 0;
}
==============================================================================
--- branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp.re (original)
+++ branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp.re 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -290,7 +290,8 @@
if (s->eof && cursor != s->eof)
{
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
}
BOOST_WAVE_RET(T_EOF);
}
@@ -301,8 +302,8 @@
{
// flag the error
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
}
*/
@@ -326,13 +327,15 @@
if(cursor == s->eof)
{
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "Unterminated 'C' style comment");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C' style comment");
}
else
{
--YYCURSOR; // next call returns T_EOF
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character: '\\000' in input stream");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
}
}
@@ -340,8 +343,8 @@
{
// flag the error
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
}
*/
@@ -364,14 +367,16 @@
{
--YYCURSOR; // next call returns T_EOF
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
}
--YYCURSOR; // next call returns T_EOF
if (!s->single_line_only)
{
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "Unterminated 'C++' style comment");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
}
BOOST_WAVE_RET(T_CPPCOMMENT);
}
@@ -380,8 +385,8 @@
{
// flag the error
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
}
*/
==============================================================================
--- branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.cpp (original)
+++ branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -36,6 +36,7 @@
#include <boost/wave/cpplexer/re2clex/aq.hpp>
#include <boost/wave/cpplexer/re2clex/scanner.hpp>
#include <boost/wave/cpplexer/re2clex/cpp_re.hpp>
+#include <boost/wave/cpplexer/cpplexer_exceptions.hpp>
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
@@ -212,8 +213,10 @@
if (buf == 0)
{
using namespace std; // some systems have printf in std
- if (0 != s->error_proc)
- (*s->error_proc)(s, "Out of memory!");
+ if (0 != s->error_proc) {
+ (*s->error_proc)(s, lexing_exception::unexpected_error,
+ "Out of memory!");
+ }
else
printf("Out of memory!\n");
==============================================================================
--- branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.inc (original)
+++ branches/bcbboost/libs/wave/src/cpplexer/re2clex/cpp_re.inc 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,7015 +1,7020 @@
-/* Generated by re2c 0.12.1 on Thu Jul 05 09:25:54 2007 */
-#line 1 "cpp.re"
-/*=============================================================================
- Boost.Wave: A Standard compliant C++ preprocessor library
-
- Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
- This is a lexer conforming to the Standard with a few exceptions.
- So it does allow the '$' to be part of identifiers. If you need strict
- Standards conforming behaviour, please include the lexer definition
- provided in the file strict_cpp.re.
-
- TODO:
- handle errors better.
-=============================================================================*/
-
-#line 40 "cpp.re"
-
-
-{
- static const unsigned char yybm[] = {
- /* table 1 .. 8: 0 */
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 32, 58, 58, 64, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 58, 58, 50, 58, 62, 58, 58, 56,
- 58, 58, 154, 58, 58, 58, 58, 58,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 58, 58, 58, 58, 42, 56,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 57, 58, 58, 62,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- /* table 9 .. 12: 256 */
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 48, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 48, 32, 0, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 32, 32, 32, 32, 32, 128,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 0, 32, 32, 32,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- };
-
-#line 94 "cpp_re.inc"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
-
- if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
- yych = *YYCURSOR;
- switch(yych) {
- case 0x00: goto yy88;
- case 0x01:
- case 0x02:
- case 0x03:
- case 0x04:
- case 0x05:
- case 0x06:
- case 0x07:
- case 0x08:
- case 0x0E:
- case 0x0F:
- case 0x10:
- case 0x11:
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- case 0x18:
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- case 0x1F: goto yy91;
- case 0x09:
- case 0x0B:
- case 0x0C: goto yy82;
- case 0x0A: goto yy85;
- case 0x0D: goto yy87;
- case ' ': goto yy84;
- case '!': goto yy68;
- case '"': goto yy81;
- case '#': goto yy45;
- case '$':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case 'h':
- case 'j':
- case 'k':
- case 'q':
- case 'y':
- case 'z': goto yy76;
- case '%': goto yy37;
- case '&': goto yy62;
- case '\'': goto yy80;
- case '(': goto yy47;
- case ')': goto yy49;
- case '*': goto yy57;
- case '+': goto yy53;
- case ',': goto yy74;
- case '-': goto yy55;
- case '.': goto yy4;
- case '/': goto yy2;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy6;
- case ':': goto yy43;
- case ';': goto yy51;
- case '<': goto yy33;
- case '=': goto yy70;
- case '>': goto yy72;
- case '?': goto yy31;
- case 'L': goto yy77;
- case '[': goto yy39;
- case '\\': goto yy78;
- case ']': goto yy41;
- case '^': goto yy59;
- case '_': goto yy28;
- case 'a': goto yy8;
- case 'b': goto yy10;
- case 'c': goto yy11;
- case 'd': goto yy12;
- case 'e': goto yy13;
- case 'f': goto yy14;
- case 'g': goto yy15;
- case 'i': goto yy16;
- case 'l': goto yy17;
- case 'm': goto yy18;
- case 'n': goto yy19;
- case 'o': goto yy20;
- case 'p': goto yy21;
- case 'r': goto yy22;
- case 's': goto yy23;
- case 't': goto yy24;
- case 'u': goto yy25;
- case 'v': goto yy26;
- case 'w': goto yy27;
- case 'x': goto yy61;
- case '{': goto yy29;
- case '|': goto yy64;
- case '}': goto yy35;
- case '~': goto yy66;
- default: goto yy90;
- }
-yy2:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '.') {
- if(yych == '*') goto yy922;
- } else {
- if(yych <= '/') goto yy920;
- if(yych == '=') goto yy918;
- }
-#line 178 "cpp.re"
- { BOOST_WAVE_RET(T_DIVIDE); }
-#line 239 "cpp_re.inc"
-yy4:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-') {
- if(yych == '*') goto yy912;
- } else {
- if(yych <= '.') goto yy914;
- if(yych <= '/') goto yy5;
- if(yych <= '9') goto yy915;
- }
-yy5:
-#line 164 "cpp.re"
- { BOOST_WAVE_RET(T_DOT); }
-#line 253 "cpp_re.inc"
-yy6:
- ++YYCURSOR;
-yy7:
-#line 45 "cpp.re"
- { goto pp_number; }
-#line 259 "cpp_re.inc"
-yy8:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'r') {
- if(yych == 'n') goto yy898;
- goto yy195;
- } else {
- if(yych <= 's') goto yy899;
- if(yych == 'u') goto yy900;
- goto yy195;
- }
-yy9:
-#line 243 "cpp.re"
- { BOOST_WAVE_RET(T_IDENTIFIER); }
-#line 274 "cpp_re.inc"
-yy10:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'n') {
- if(yych == 'i') goto yy880;
- goto yy195;
- } else {
- if(yych <= 'o') goto yy881;
- if(yych == 'r') goto yy882;
- goto yy195;
- }
-yy11:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case 'a': goto yy842;
- case 'h': goto yy843;
- case 'l': goto yy844;
- case 'o': goto yy845;
- default: goto yy195;
- }
-yy12:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'n') {
- if(yych == 'e') goto yy811;
- goto yy195;
- } else {
- if(yych <= 'o') goto yy812;
- if(yych == 'y') goto yy814;
- goto yy195;
- }
-yy13:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'm') {
- if(yych == 'l') goto yy786;
- goto yy195;
- } else {
- if(yych <= 'n') goto yy787;
- if(yych == 'x') goto yy788;
- goto yy195;
- }
-yy14:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case 'a': goto yy767;
- case 'l': goto yy768;
- case 'o': goto yy769;
- case 'r': goto yy770;
- default: goto yy195;
- }
-yy15:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy763;
- goto yy195;
-yy16:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'l') {
- if(yych == 'f') goto yy747;
- goto yy195;
- } else {
- if(yych <= 'm') goto yy749;
- if(yych <= 'n') goto yy750;
- goto yy195;
- }
-yy17:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy743;
- goto yy195;
-yy18:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'u') goto yy736;
- goto yy195;
-yy19:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'd') {
- if(yych == 'a') goto yy717;
- goto yy195;
- } else {
- if(yych <= 'e') goto yy718;
- if(yych == 'o') goto yy719;
- goto yy195;
- }
-yy20:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'p') goto yy703;
- if(yych == 'r') goto yy704;
- goto yy195;
-yy21:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy682;
- if(yych == 'u') goto yy683;
- goto yy195;
-yy22:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy654;
- goto yy195;
-yy23:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 's') {
- if(yych <= 'g') goto yy195;
- if(yych <= 'h') goto yy615;
- if(yych <= 'i') goto yy616;
- goto yy195;
- } else {
- if(yych <= 't') goto yy617;
- if(yych == 'w') goto yy618;
- goto yy195;
- }
-yy24:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'h') {
- if(yych == 'e') goto yy578;
- if(yych <= 'g') goto yy195;
- goto yy579;
- } else {
- if(yych <= 'r') {
- if(yych <= 'q') goto yy195;
- goto yy580;
- } else {
- if(yych == 'y') goto yy581;
- goto yy195;
- }
- }
-yy25:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy561;
- if(yych == 's') goto yy562;
- goto yy195;
-yy26:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy543;
- if(yych == 'o') goto yy544;
- goto yy195;
-yy27:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'c') goto yy531;
- if(yych == 'h') goto yy532;
- goto yy195;
-yy28:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case '_': goto yy442;
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'f': goto yy447;
- case 'i': goto yy448;
- case 's': goto yy449;
- default: goto yy195;
- }
-yy29:
- ++YYCURSOR;
-#line 128 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACE); }
-#line 447 "cpp_re.inc"
-yy31:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '?') goto yy407;
-yy32:
-#line 153 "cpp.re"
- { BOOST_WAVE_RET(T_QUESTION_MARK); }
-#line 455 "cpp_re.inc"
-yy33:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= ':') {
- if(yych == '%') goto yy403;
- if(yych >= ':') goto yy401;
- } else {
- if(yych <= ';') goto yy34;
- if(yych <= '<') goto yy399;
- if(yych <= '=') goto yy397;
- }
-yy34:
-#line 194 "cpp.re"
- { BOOST_WAVE_RET(T_LESS); }
-#line 469 "cpp_re.inc"
-yy35:
- ++YYCURSOR;
-#line 131 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACE); }
-#line 474 "cpp_re.inc"
-yy37:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '<') {
- if(yych == ':') goto yy388;
- } else {
- if(yych <= '=') goto yy390;
- if(yych <= '>') goto yy392;
- }
-#line 179 "cpp.re"
- { BOOST_WAVE_RET(T_PERCENT); }
-#line 485 "cpp_re.inc"
-yy39:
- ++YYCURSOR;
-#line 134 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACKET); }
-#line 490 "cpp_re.inc"
-yy41:
- ++YYCURSOR;
-#line 137 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACKET); }
-#line 495 "cpp_re.inc"
-yy43:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == ':') goto yy384;
- if(yych == '>') goto yy386;
-#line 151 "cpp.re"
- { BOOST_WAVE_RET(T_COLON); }
-#line 502 "cpp_re.inc"
-yy45:
- yyaccept = 3;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'c') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy261;
- } else {
- if(yych <= 0x0C) goto yy261;
- if(yych >= ' ') goto yy261;
- }
- } else {
- if(yych <= '.') {
- if(yych == '#') goto yy272;
- } else {
- if(yych <= '/') goto yy261;
- if(yych == '?') goto yy271;
- }
- }
- } else {
- if(yych <= 'p') {
- if(yych <= 'i') {
- if(yych <= 'e') goto yy261;
- if(yych >= 'i') goto yy261;
- } else {
- if(yych == 'l') goto yy261;
- if(yych >= 'p') goto yy261;
- }
- } else {
- if(yych <= 't') {
- if(yych == 'r') goto yy261;
- } else {
- if(yych == 'v') goto yy46;
- if(yych <= 'w') goto yy261;
- }
- }
- }
-yy46:
-#line 140 "cpp.re"
- { BOOST_WAVE_RET(T_POUND); }
-#line 543 "cpp_re.inc"
-yy47:
- ++YYCURSOR;
-#line 148 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTPAREN); }
-#line 548 "cpp_re.inc"
-yy49:
- ++YYCURSOR;
-#line 149 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTPAREN); }
-#line 553 "cpp_re.inc"
-yy51:
- ++YYCURSOR;
-#line 150 "cpp.re"
- { BOOST_WAVE_RET(T_SEMICOLON); }
-#line 558 "cpp_re.inc"
-yy53:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '+') goto yy256;
- if(yych == '=') goto yy258;
-#line 175 "cpp.re"
- { BOOST_WAVE_RET(T_PLUS); }
-#line 565 "cpp_re.inc"
-yy55:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '<') {
- if(yych == '-') goto yy250;
- } else {
- if(yych <= '=') goto yy252;
- if(yych <= '>') goto yy248;
- }
-#line 176 "cpp.re"
- { BOOST_WAVE_RET(T_MINUS); }
-#line 576 "cpp_re.inc"
-yy57:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy246;
-#line 177 "cpp.re"
- { BOOST_WAVE_RET(T_STAR); }
-#line 582 "cpp_re.inc"
-yy59:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy244;
-#line 180 "cpp.re"
- { BOOST_WAVE_RET(T_XOR); }
-#line 588 "cpp_re.inc"
-yy61:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy237;
- goto yy195;
-yy62:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '&') goto yy233;
- if(yych == '=') goto yy235;
-#line 183 "cpp.re"
- { BOOST_WAVE_RET(T_AND); }
-#line 600 "cpp_re.inc"
-yy64:
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '>') {
- if(yych == '=') goto yy228;
- } else {
- if(yych <= '?') goto yy225;
- if(yych == '|') goto yy226;
- }
-yy65:
-#line 185 "cpp.re"
- { BOOST_WAVE_RET(T_OR); }
-#line 613 "cpp_re.inc"
-yy66:
- ++YYCURSOR;
-#line 188 "cpp.re"
- { BOOST_WAVE_RET(T_COMPL); }
-#line 618 "cpp_re.inc"
-yy68:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy223;
-#line 191 "cpp.re"
- { BOOST_WAVE_RET(T_NOT); }
-#line 624 "cpp_re.inc"
-yy70:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy221;
-#line 193 "cpp.re"
- { BOOST_WAVE_RET(T_ASSIGN); }
-#line 630 "cpp_re.inc"
-yy72:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '<') goto yy73;
- if(yych <= '=') goto yy215;
- if(yych <= '>') goto yy217;
-yy73:
-#line 195 "cpp.re"
- { BOOST_WAVE_RET(T_GREATER); }
-#line 639 "cpp_re.inc"
-yy74:
- ++YYCURSOR;
-#line 227 "cpp.re"
- { BOOST_WAVE_RET(T_COMMA); }
-#line 644 "cpp_re.inc"
-yy76:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy195;
-yy77:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych <= '\'') {
- if(yych == '"') goto yy96;
- if(yych <= '&') goto yy9;
- goto yy214;
- } else {
- if(yych <= '?') {
- if(yych <= '>') goto yy9;
- goto yy197;
- } else {
- if(yych == '\\') goto yy196;
- goto yy9;
- }
- }
-yy78:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy186;
- if(yych == 'u') goto yy185;
-yy79:
-#line 298 "cpp.re"
- { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 676 "cpp_re.inc"
-yy80:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy142;
- if(yych <= 0x0A) goto yy79;
- goto yy142;
- } else {
- if(yych <= 0x1F) goto yy79;
- if(yych == '\'') goto yy79;
- goto yy142;
- }
-yy81:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy97;
- goto yy79;
- } else {
- if(yych <= 0x0C) goto yy97;
- if(yych <= 0x1F) goto yy79;
- goto yy97;
- }
-yy82:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy95;
-yy83:
-#line 279 "cpp.re"
- { BOOST_WAVE_RET(T_SPACE); }
-#line 707 "cpp_re.inc"
-yy84:
- yych = *++YYCURSOR;
- goto yy95;
-yy85:
- ++YYCURSOR;
-yy86:
-#line 282 "cpp.re"
- {
- s->line++;
- cursor.column = 1;
- BOOST_WAVE_RET(T_NEWLINE);
- }
-#line 720 "cpp_re.inc"
-yy87:
- yych = *++YYCURSOR;
- if(yych == 0x0A) goto yy93;
- goto yy86;
-yy88:
- ++YYCURSOR;
-#line 289 "cpp.re"
- {
- if (s->eof && cursor != s->eof)
- {
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
- }
- BOOST_WAVE_RET(T_EOF);
- }
-#line 736 "cpp_re.inc"
-yy90:
- yych = *++YYCURSOR;
- goto yy79;
-yy91:
- ++YYCURSOR;
-#line 301 "cpp.re"
- {
- // flag the error
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
- }
-#line 749 "cpp_re.inc"
-yy93:
- yych = *++YYCURSOR;
- goto yy86;
-yy94:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy95:
- if(yybm[256+yych] & 16) {
- goto yy94;
- }
- goto yy83;
-yy96:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy97:
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy98:
- YYCURSOR = YYMARKER;
- if(yyaccept <= 51) {
- if(yyaccept <= 25) {
- if(yyaccept <= 12) {
- if(yyaccept <= 6) {
- if(yyaccept <= 3) {
- if(yyaccept <= 1) {
- if(yyaccept <= 0) {
- goto yy5;
- } else {
- goto yy9;
- }
- } else {
- if(yyaccept <= 2) {
- goto yy32;
- } else {
- goto yy46;
- }
- }
- } else {
- if(yyaccept <= 5) {
- if(yyaccept <= 4) {
- goto yy65;
- } else {
- goto yy79;
- }
- } else {
- goto yy102;
- }
- }
- } else {
- if(yyaccept <= 9) {
- if(yyaccept <= 8) {
- if(yyaccept <= 7) {
- goto yy152;
- } else {
- goto yy239;
- }
- } else {
- goto yy243;
- }
- } else {
- if(yyaccept <= 11) {
- if(yyaccept <= 10) {
- goto yy279;
- } else {
- goto yy294;
- }
- } else {
- goto yy389;
- }
- }
- }
- } else {
- if(yyaccept <= 19) {
- if(yyaccept <= 16) {
- if(yyaccept <= 14) {
- if(yyaccept <= 13) {
- goto yy417;
- } else {
- goto yy421;
- }
- } else {
- if(yyaccept <= 15) {
- goto yy425;
- } else {
- goto yy456;
- }
- }
- } else {
- if(yyaccept <= 18) {
- if(yyaccept <= 17) {
- goto yy462;
- } else {
- goto yy470;
- }
- } else {
- goto yy478;
- }
- }
- } else {
- if(yyaccept <= 22) {
- if(yyaccept <= 21) {
- if(yyaccept <= 20) {
- goto yy483;
- } else {
- goto yy488;
- }
- } else {
- goto yy491;
- }
- } else {
- if(yyaccept <= 24) {
- if(yyaccept <= 23) {
- goto yy501;
- } else {
- goto yy507;
- }
- } else {
- goto yy510;
- }
- }
- }
- }
- } else {
- if(yyaccept <= 38) {
- if(yyaccept <= 32) {
- if(yyaccept <= 29) {
- if(yyaccept <= 27) {
- if(yyaccept <= 26) {
- goto yy517;
- } else {
- goto yy524;
- }
- } else {
- if(yyaccept <= 28) {
- goto yy526;
- } else {
- goto yy528;
- }
- }
- } else {
- if(yyaccept <= 31) {
- if(yyaccept <= 30) {
- goto yy530;
- } else {
- goto yy536;
- }
- } else {
- goto yy542;
- }
- }
- } else {
- if(yyaccept <= 35) {
- if(yyaccept <= 34) {
- if(yyaccept <= 33) {
- goto yy552;
- } else {
- goto yy554;
- }
- } else {
- goto yy560;
- }
- } else {
- if(yyaccept <= 37) {
- if(yyaccept <= 36) {
- goto yy566;
- } else {
- goto yy574;
- }
- } else {
- goto yy577;
- }
- }
- }
- } else {
- if(yyaccept <= 45) {
- if(yyaccept <= 42) {
- if(yyaccept <= 40) {
- if(yyaccept <= 39) {
- goto yy590;
- } else {
- goto yy592;
- }
- } else {
- if(yyaccept <= 41) {
- goto yy595;
- } else {
- goto yy598;
- }
- }
- } else {
- if(yyaccept <= 44) {
- if(yyaccept <= 43) {
- goto yy600;
- } else {
- goto yy605;
- }
- } else {
- goto yy607;
- }
- }
- } else {
- if(yyaccept <= 48) {
- if(yyaccept <= 47) {
- if(yyaccept <= 46) {
- goto yy614;
- } else {
- goto yy623;
- }
- } else {
- goto yy629;
- }
- } else {
- if(yyaccept <= 50) {
- if(yyaccept <= 49) {
- goto yy633;
- } else {
- goto yy639;
- }
- } else {
- goto yy645;
- }
- }
- }
- }
- }
- } else {
- if(yyaccept <= 77) {
- if(yyaccept <= 64) {
- if(yyaccept <= 58) {
- if(yyaccept <= 55) {
- if(yyaccept <= 53) {
- if(yyaccept <= 52) {
- goto yy649;
- } else {
- goto yy653;
- }
- } else {
- if(yyaccept <= 54) {
- goto yy661;
- } else {
- goto yy675;
- }
- }
- } else {
- if(yyaccept <= 57) {
- if(yyaccept <= 56) {
- goto yy681;
- } else {
- goto yy688;
- }
- } else {
- goto yy697;
- }
- }
- } else {
- if(yyaccept <= 61) {
- if(yyaccept <= 60) {
- if(yyaccept <= 59) {
- goto yy702;
- } else {
- goto yy705;
- }
- } else {
- goto yy709;
- }
- } else {
- if(yyaccept <= 63) {
- if(yyaccept <= 62) {
- goto yy716;
- } else {
- goto yy721;
- }
- } else {
- goto yy725;
- }
- }
- }
- } else {
- if(yyaccept <= 71) {
- if(yyaccept <= 68) {
- if(yyaccept <= 66) {
- if(yyaccept <= 65) {
- goto yy727;
- } else {
- goto yy735;
- }
- } else {
- if(yyaccept <= 67) {
- goto yy742;
- } else {
- goto yy746;
- }
- }
- } else {
- if(yyaccept <= 70) {
- if(yyaccept <= 69) {
- goto yy748;
- } else {
- goto yy753;
- }
- } else {
- goto yy757;
- }
- }
- } else {
- if(yyaccept <= 74) {
- if(yyaccept <= 73) {
- if(yyaccept <= 72) {
- goto yy762;
- } else {
- goto yy766;
- }
- } else {
- goto yy775;
- }
- } else {
- if(yyaccept <= 76) {
- if(yyaccept <= 75) {
- goto yy777;
- } else {
- goto yy781;
- }
- } else {
- goto yy785;
- }
- }
- }
- }
- } else {
- if(yyaccept <= 90) {
- if(yyaccept <= 84) {
- if(yyaccept <= 81) {
- if(yyaccept <= 79) {
- if(yyaccept <= 78) {
- goto yy794;
- } else {
- goto yy799;
- }
- } else {
- if(yyaccept <= 80) {
- goto yy804;
- } else {
- goto yy807;
- }
- }
- } else {
- if(yyaccept <= 83) {
- if(yyaccept <= 82) {
- goto yy810;
- } else {
- goto yy813;
- }
- } else {
- goto yy825;
- }
- }
- } else {
- if(yyaccept <= 87) {
- if(yyaccept <= 86) {
- if(yyaccept <= 85) {
- goto yy830;
- } else {
- goto yy836;
- }
- } else {
- goto yy841;
- }
- } else {
- if(yyaccept <= 89) {
- if(yyaccept <= 88) {
- goto yy850;
- } else {
- goto yy857;
- }
- } else {
- goto yy859;
- }
- }
- }
- } else {
- if(yyaccept <= 97) {
- if(yyaccept <= 94) {
- if(yyaccept <= 92) {
- if(yyaccept <= 91) {
- goto yy865;
- } else {
- goto yy869;
- }
- } else {
- if(yyaccept <= 93) {
- goto yy872;
- } else {
- goto yy877;
- }
- }
- } else {
- if(yyaccept <= 96) {
- if(yyaccept <= 95) {
- goto yy879;
- } else {
- goto yy886;
- }
- } else {
- goto yy889;
- }
- }
- } else {
- if(yyaccept <= 100) {
- if(yyaccept <= 99) {
- if(yyaccept <= 98) {
- goto yy894;
- } else {
- goto yy897;
- }
- } else {
- goto yy903;
- }
- } else {
- if(yyaccept <= 102) {
- if(yyaccept <= 101) {
- goto yy905;
- } else {
- goto yy907;
- }
- } else {
- goto yy911;
- }
- }
- }
- }
- }
- }
-yy99:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy112;
-yy100:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '`') {
- if(yych <= '7') {
- if(yych <= '&') {
- if(yych == '"') goto yy96;
- goto yy98;
- } else {
- if(yych <= '\'') goto yy96;
- if(yych <= '/') goto yy98;
- goto yy107;
- }
- } else {
- if(yych <= 'T') {
- if(yych == '?') goto yy105;
- goto yy98;
- } else {
- if(yych <= 'U') goto yy104;
- if(yych == '\\') goto yy96;
- goto yy98;
- }
- }
- } else {
- if(yych <= 'r') {
- if(yych <= 'f') {
- if(yych <= 'b') goto yy96;
- if(yych <= 'e') goto yy98;
- goto yy96;
- } else {
- if(yych == 'n') goto yy96;
- if(yych <= 'q') goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 's') goto yy98;
- if(yych <= 't') goto yy96;
- goto yy103;
- } else {
- if(yych <= 'v') goto yy96;
- if(yych == 'x') goto yy106;
- goto yy98;
- }
- }
- }
-yy101:
- ++YYCURSOR;
-yy102:
-#line 249 "cpp.re"
- { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1251 "cpp_re.inc"
-yy103:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy138;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy138;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy138;
- goto yy98;
- }
-yy104:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy131;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy131;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy131;
- goto yy98;
- }
-yy105:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy111;
- goto yy100;
-yy106:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 64) {
- goto yy109;
- }
- goto yy98;
-yy107:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '"') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '!') goto yy96;
- goto yy101;
- }
- } else {
- if(yych <= '>') {
- if(yych <= '/') goto yy96;
- if(yych >= '8') goto yy96;
- } else {
- if(yych <= '?') goto yy99;
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy109:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 64) {
- goto yy109;
- }
- if(yych <= '!') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= '?') {
- if(yych <= '"') goto yy101;
- if(yych <= '>') goto yy96;
- goto yy99;
- } else {
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
-yy111:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych >= '\\') goto yy100;
-yy112:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 128) {
- goto yy112;
- }
- if(yych <= '!') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= '/') {
- if(yych <= '"') goto yy101;
- if(yych <= '.') goto yy96;
- } else {
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
-yy114:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 1) {
- goto yy114;
- }
- if(yych <= '7') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy118;
- if(yych <= '/') goto yy96;
- goto yy107;
- }
- }
- } else {
- if(yych <= 'U') {
- if(yych == '?') goto yy119;
- if(yych <= 'T') goto yy96;
- goto yy117;
- } else {
- if(yych <= 'u') {
- if(yych <= 't') goto yy96;
- } else {
- if(yych == 'x') goto yy109;
- goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- goto yy128;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- goto yy128;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych <= 'f') goto yy128;
- goto yy96;
- }
- }
- }
-yy117:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- goto yy121;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- goto yy121;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych <= 'f') goto yy121;
- goto yy96;
- }
- }
- }
-yy118:
- yyaccept = 6;
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy102;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy119:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych >= '\\') goto yy100;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 128) {
- goto yy112;
- }
- if(yych <= '!') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= '/') {
- if(yych <= '"') goto yy101;
- if(yych <= '.') goto yy96;
- goto yy114;
- } else {
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
-yy121:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy128:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy131:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy132;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy132:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy133;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy133:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy134;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy134:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy135;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy135:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy136;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy136:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy137;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy137:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy96;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy96;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy96;
- goto yy98;
- }
-yy138:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy139;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy139:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy140;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy140:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy96;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy96;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy96;
- goto yy98;
- }
-yy141:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy142:
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych >= '\\') goto yy144;
-yy143:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy156;
-yy144:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '`') {
- if(yych <= '7') {
- if(yych <= '&') {
- if(yych == '"') goto yy141;
- goto yy98;
- } else {
- if(yych <= '\'') goto yy141;
- if(yych <= '/') goto yy98;
- goto yy149;
- }
- } else {
- if(yych <= 'T') {
- if(yych == '?') goto yy147;
- goto yy98;
- } else {
- if(yych <= 'U') goto yy146;
- if(yych == '\\') goto yy141;
- goto yy98;
- }
- }
- } else {
- if(yych <= 'r') {
- if(yych <= 'f') {
- if(yych <= 'b') goto yy141;
- if(yych <= 'e') goto yy98;
- goto yy141;
- } else {
- if(yych == 'n') goto yy141;
- if(yych <= 'q') goto yy98;
- goto yy141;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 's') goto yy98;
- if(yych <= 't') goto yy141;
- } else {
- if(yych <= 'v') goto yy141;
- if(yych == 'x') goto yy148;
- goto yy98;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy182;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy182;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy182;
- goto yy98;
- }
-yy146:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy175;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy175;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy175;
- goto yy98;
- }
-yy147:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy155;
- goto yy144;
-yy148:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy153;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy153;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy153;
- goto yy98;
- }
-yy149:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '\'') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy141;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy141;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '&') goto yy141;
- goto yy151;
- }
- } else {
- if(yych <= '>') {
- if(yych <= '/') goto yy141;
- if(yych >= '8') goto yy141;
- } else {
- if(yych <= '?') goto yy143;
- if(yych == '\\') goto yy144;
- goto yy141;
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy151:
- ++YYCURSOR;
-yy152:
-#line 246 "cpp.re"
- { BOOST_WAVE_RET(T_CHARLIT); }
-#line 2098 "cpp_re.inc"
-yy153:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- goto yy153;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- goto yy153;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych <= 'f') goto yy153;
- goto yy141;
- }
- }
- }
-yy155:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych >= '\\') goto yy144;
-yy156:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '\'') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy141;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy141;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '&') goto yy141;
- goto yy151;
- }
- } else {
- if(yych <= '>') {
- if(yych != '/') goto yy141;
- } else {
- if(yych <= '?') goto yy156;
- if(yych == '\\') goto yy144;
- goto yy141;
- }
- }
-yy158:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '>') {
- if(yych <= 0x1F) {
- if(yych <= 0x09) {
- if(yych <= 0x08) goto yy98;
- goto yy141;
- } else {
- if(yych <= 0x0A) goto yy98;
- if(yych <= 0x0C) goto yy141;
- goto yy98;
- }
- } else {
- if(yych <= '\'') {
- if(yych <= '&') goto yy141;
- goto yy162;
- } else {
- if(yych <= '/') goto yy141;
- if(yych <= '7') goto yy149;
- goto yy141;
- }
- }
- } else {
- if(yych <= '\\') {
- if(yych <= 'T') {
- if(yych <= '?') goto yy163;
- goto yy141;
- } else {
- if(yych <= 'U') goto yy161;
- if(yych <= '[') goto yy141;
- goto yy158;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 't') goto yy141;
- } else {
- if(yych == 'x') goto yy153;
- goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- goto yy172;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- goto yy172;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych <= 'f') goto yy172;
- goto yy141;
- }
- }
- }
-yy161:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- goto yy165;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- goto yy165;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych <= 'f') goto yy165;
- goto yy141;
- }
- }
- }
-yy162:
- yyaccept = 7;
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy152;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy163:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych >= '\\') goto yy144;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '\'') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy141;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy141;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '&') goto yy141;
- goto yy151;
- }
- } else {
- if(yych <= '>') {
- if(yych == '/') goto yy158;
- goto yy141;
- } else {
- if(yych <= '?') goto yy156;
- if(yych == '\\') goto yy144;
- goto yy141;
- }
- }
-yy165:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy172:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy175:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy176;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy176:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy177;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy177:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy178;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy178:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy179;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy179:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy180;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy180:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy181;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy181:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy141;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy141;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy141;
- goto yy98;
- }
-yy182:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy183;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy183:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy184;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy184:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy141;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy141;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy141;
- goto yy98;
- }
-yy185:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy211;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy211;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy211;
- goto yy98;
- }
-yy186:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy187;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy187:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy188;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy188:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy189;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy189:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy190;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy190:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy191;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy191:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy192;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy192:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy193;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy193:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy194:
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy195:
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych != '\\') goto yy9;
-yy196:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == 'U') goto yy200;
- if(yych == 'u') goto yy199;
- goto yy98;
-yy197:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych != '?') goto yy98;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '/') goto yy196;
- goto yy98;
-yy199:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy208;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy208;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy208;
- goto yy98;
- }
-yy200:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy201;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy201:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy202;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy202:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy203;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy203:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy204;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy204:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy205;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy205:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy206;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy206:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy207;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy207:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy194;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy194;
- goto yy98;
- }
-yy208:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy209;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy209:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy210;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy210:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy194;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy194;
- goto yy98;
- }
-yy211:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy212;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy212:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy213;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy213:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy194;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy194;
- goto yy98;
- }
-yy214:
- yych = *++YYCURSOR;
- if(yych == '\'') goto yy98;
- goto yy142;
-yy215:
- ++YYCURSOR;
-#line 217 "cpp.re"
- { BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 3028 "cpp_re.inc"
-yy217:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy219;
-#line 210 "cpp.re"
- { BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 3034 "cpp_re.inc"
-yy219:
- ++YYCURSOR;
-#line 211 "cpp.re"
- { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
-#line 3039 "cpp_re.inc"
-yy221:
- ++YYCURSOR;
-#line 213 "cpp.re"
- { BOOST_WAVE_RET(T_EQUAL); }
-#line 3044 "cpp_re.inc"
-yy223:
- ++YYCURSOR;
-#line 214 "cpp.re"
- { BOOST_WAVE_RET(T_NOTEQUAL); }
-#line 3049 "cpp_re.inc"
-yy225:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy230;
- goto yy98;
-yy226:
- ++YYCURSOR;
-#line 220 "cpp.re"
- { BOOST_WAVE_RET(T_OROR); }
-#line 3058 "cpp_re.inc"
-yy228:
- ++YYCURSOR;
-#line 206 "cpp.re"
- { BOOST_WAVE_RET(T_ORASSIGN); }
-#line 3063 "cpp_re.inc"
-yy230:
- yych = *++YYCURSOR;
- if(yych != '!') goto yy98;
- ++YYCURSOR;
-#line 222 "cpp.re"
- { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3070 "cpp_re.inc"
-yy233:
- ++YYCURSOR;
-#line 218 "cpp.re"
- { BOOST_WAVE_RET(T_ANDAND); }
-#line 3075 "cpp_re.inc"
-yy235:
- ++YYCURSOR;
-#line 204 "cpp.re"
- { BOOST_WAVE_RET(T_ANDASSIGN); }
-#line 3080 "cpp_re.inc"
-yy237:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 8;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@') {
- if(yych <= '/') {
- if(yych == '$') goto yy194;
- } else {
- if(yych <= '9') goto yy194;
- if(yych == '?') goto yy197;
- }
- } else {
- if(yych <= '^') {
- if(yych <= 'Z') goto yy194;
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy240;
- if(yych <= '`') goto yy239;
- if(yych <= 'z') goto yy194;
- }
- }
-yy239:
-#line 182 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
-#line 3107 "cpp_re.inc"
-yy240:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 9;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy243:
-#line 202 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
-#line 3125 "cpp_re.inc"
-yy244:
- ++YYCURSOR;
-#line 201 "cpp.re"
- { BOOST_WAVE_RET(T_XORASSIGN); }
-#line 3130 "cpp_re.inc"
-yy246:
- ++YYCURSOR;
-#line 198 "cpp.re"
- { BOOST_WAVE_RET(T_STARASSIGN); }
-#line 3135 "cpp_re.inc"
-yy248:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '*') goto yy254;
-#line 238 "cpp.re"
- { BOOST_WAVE_RET(T_ARROW); }
-#line 3141 "cpp_re.inc"
-yy250:
- ++YYCURSOR;
-#line 226 "cpp.re"
- { BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 3146 "cpp_re.inc"
-yy252:
- ++YYCURSOR;
-#line 197 "cpp.re"
- { BOOST_WAVE_RET(T_MINUSASSIGN); }
-#line 3151 "cpp_re.inc"
-yy254:
- ++YYCURSOR;
-#line 229 "cpp.re"
- {
- if (s->act_in_c99_mode) {
- --YYCURSOR;
- BOOST_WAVE_RET(T_ARROW);
- }
- else {
- BOOST_WAVE_RET(T_ARROWSTAR);
- }
- }
-#line 3164 "cpp_re.inc"
-yy256:
- ++YYCURSOR;
-#line 225 "cpp.re"
- { BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 3169 "cpp_re.inc"
-yy258:
- ++YYCURSOR;
-#line 196 "cpp.re"
- { BOOST_WAVE_RET(T_PLUSASSIGN); }
-#line 3174 "cpp_re.inc"
-yy260:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
- yych = *YYCURSOR;
-yy261:
- if(yych <= 'h') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy260;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy260;
- if(yych <= 0x1F) goto yy98;
- goto yy260;
- }
- } else {
- if(yych <= 'c') {
- if(yych != '/') goto yy98;
- } else {
- if(yych <= 'd') goto yy269;
- if(yych <= 'e') goto yy263;
- goto yy98;
- }
- }
- } else {
- if(yych <= 'q') {
- if(yych <= 'l') {
- if(yych <= 'i') goto yy270;
- if(yych <= 'k') goto yy98;
- goto yy267;
- } else {
- if(yych == 'p') goto yy266;
- goto yy98;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 'r') goto yy264;
- if(yych <= 't') goto yy98;
- goto yy268;
- } else {
- if(yych == 'w') goto yy265;
- goto yy98;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '*') goto yy377;
- goto yy98;
-yy263:
- yych = *++YYCURSOR;
- if(yych <= 'm') {
- if(yych == 'l') goto yy353;
- goto yy98;
- } else {
- if(yych <= 'n') goto yy354;
- if(yych == 'r') goto yy355;
- goto yy98;
- }
-yy264:
- yych = *++YYCURSOR;
- if(yych == 'e') goto yy347;
- goto yy98;
-yy265:
- yych = *++YYCURSOR;
- if(yych == 'a') goto yy340;
- goto yy98;
-yy266:
- yych = *++YYCURSOR;
- if(yych == 'r') goto yy334;
- goto yy98;
-yy267:
- yych = *++YYCURSOR;
- if(yych == 'i') goto yy330;
- goto yy98;
-yy268:
- yych = *++YYCURSOR;
- if(yych == 'n') goto yy325;
- goto yy98;
-yy269:
- yych = *++YYCURSOR;
- if(yych == 'e') goto yy319;
- goto yy98;
-yy270:
- yych = *++YYCURSOR;
- if(yych == 'f') goto yy278;
- if(yych == 'n') goto yy277;
- goto yy98;
-yy271:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy274;
- goto yy98;
-yy272:
- ++YYCURSOR;
-#line 143 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND); }
-#line 3272 "cpp_re.inc"
-yy274:
- yych = *++YYCURSOR;
- if(yych != '=') goto yy98;
- ++YYCURSOR;
-#line 144 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3279 "cpp_re.inc"
-yy277:
- yych = *++YYCURSOR;
- if(yych == 'c') goto yy289;
- goto yy98;
-yy278:
- yyaccept = 10;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy281;
- if(yych == 'n') goto yy280;
-yy279:
-#line 261 "cpp.re"
- { BOOST_WAVE_RET(T_PP_IF); }
-#line 3292 "cpp_re.inc"
-yy280:
- yych = *++YYCURSOR;
- if(yych == 'd') goto yy285;
- goto yy98;
-yy281:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- ++YYCURSOR;
-#line 262 "cpp.re"
- { BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 3305 "cpp_re.inc"
-yy285:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- ++YYCURSOR;
-#line 263 "cpp.re"
- { BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 3314 "cpp_re.inc"
-yy289:
- yych = *++YYCURSOR;
- if(yych != 'l') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'u') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'd') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '_') goto yy295;
- goto yy297;
-yy294:
-#line 259 "cpp.re"
- { BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 3331 "cpp_re.inc"
-yy295:
- yych = *++YYCURSOR;
- if(yych == 'n') goto yy316;
- goto yy98;
-yy296:
- yyaccept = 11;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
-yy297:
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy296;
- goto yy294;
- } else {
- if(yych <= 0x0C) goto yy296;
- if(yych <= 0x1F) goto yy294;
- goto yy296;
- }
- } else {
- if(yych <= '.') {
- if(yych == '"') goto yy300;
- goto yy294;
- } else {
- if(yych <= '/') goto yy298;
- if(yych == '<') goto yy299;
- goto yy294;
- }
- }
-yy298:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '*') goto yy309;
- goto yy98;
-yy299:
- yych = *++YYCURSOR;
- if(yych == '>') goto yy98;
- goto yy306;
-yy300:
- yych = *++YYCURSOR;
- if(yych == '"') goto yy98;
- goto yy302;
-yy301:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy302:
- if(yybm[0+yych] & 8) {
- goto yy301;
- }
- if(yych <= '!') goto yy98;
- ++YYCURSOR;
-#line 256 "cpp.re"
- { BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 3387 "cpp_re.inc"
-yy305:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy306:
- if(yybm[0+yych] & 16) {
- goto yy305;
- }
- if(yych <= '=') goto yy98;
- ++YYCURSOR;
-#line 253 "cpp.re"
- { BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 3400 "cpp_re.inc"
-yy309:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy309;
- }
- if(yych == 0x0D) goto yy311;
- if(yych <= ')') goto yy98;
- goto yy313;
-yy311:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy309;
- }
- if(yych == 0x0D) goto yy311;
- if(yych <= ')') goto yy98;
-yy313:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy313;
- }
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy309;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych == '/') goto yy296;
- goto yy309;
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy309;
- }
- if(yych == 0x0D) goto yy311;
- if(yych <= ')') goto yy98;
- goto yy313;
-yy316:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'x') goto yy98;
- yych = *++YYCURSOR;
- if(yych == 't') goto yy296;
- goto yy98;
-yy319:
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- ++YYCURSOR;
-#line 267 "cpp.re"
- { BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 3464 "cpp_re.inc"
-yy325:
- yych = *++YYCURSOR;
- if(yych != 'd') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- ++YYCURSOR;
-#line 268 "cpp.re"
- { BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 3475 "cpp_re.inc"
-yy330:
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- ++YYCURSOR;
-#line 269 "cpp.re"
- { BOOST_WAVE_RET(T_PP_LINE); }
-#line 3484 "cpp_re.inc"
-yy334:
- yych = *++YYCURSOR;
- if(yych != 'a') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'm') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'a') goto yy98;
- ++YYCURSOR;
-#line 271 "cpp.re"
- { BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 3497 "cpp_re.inc"
-yy340:
- yych = *++YYCURSOR;
- if(yych != 'r') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- ++YYCURSOR;
-#line 273 "cpp.re"
- { BOOST_WAVE_RET(T_PP_WARNING); }
-#line 3512 "cpp_re.inc"
-yy347:
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'o') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- ++YYCURSOR;
-#line 275 "cpp.re"
- { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
-#line 3525 "cpp_re.inc"
-yy353:
- yych = *++YYCURSOR;
- if(yych == 'i') goto yy371;
- if(yych == 's') goto yy372;
- goto yy98;
-yy354:
- yych = *++YYCURSOR;
- if(yych == 'd') goto yy360;
- goto yy98;
-yy355:
- yych = *++YYCURSOR;
- if(yych != 'r') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'o') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'r') goto yy98;
- ++YYCURSOR;
-#line 270 "cpp.re"
- { BOOST_WAVE_RET(T_PP_ERROR); }
-#line 3545 "cpp_re.inc"
-yy360:
- yych = *++YYCURSOR;
- if(yych == 'i') goto yy361;
- if(yych == 'r') goto yy362;
- goto yy98;
-yy361:
- yych = *++YYCURSOR;
- if(yych == 'f') goto yy369;
- goto yy98;
-yy362:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'o') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- ++YYCURSOR;
-#line 276 "cpp.re"
- { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
-#line 3569 "cpp_re.inc"
-yy369:
- ++YYCURSOR;
-#line 266 "cpp.re"
- { BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 3574 "cpp_re.inc"
-yy371:
- yych = *++YYCURSOR;
- if(yych == 'f') goto yy375;
- goto yy98;
-yy372:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- ++YYCURSOR;
-#line 264 "cpp.re"
- { BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3585 "cpp_re.inc"
-yy375:
- ++YYCURSOR;
-#line 265 "cpp.re"
- { BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3590 "cpp_re.inc"
-yy377:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych == '*') goto yy381;
- goto yy377;
- }
-yy379:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- goto yy379;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych != '*') goto yy377;
- }
-yy381:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x1F) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- if(yych >= 0x0E) goto yy98;
- } else {
- if(yych <= '*') {
- if(yych <= ')') goto yy377;
- goto yy381;
- } else {
- if(yych == '/') goto yy260;
- goto yy377;
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- goto yy379;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych == '*') goto yy381;
- goto yy377;
- }
-yy384:
- ++YYCURSOR;
-#line 155 "cpp.re"
- {
- if (s->act_in_c99_mode) {
- --YYCURSOR;
- BOOST_WAVE_RET(T_COLON);
- }
- else {
- BOOST_WAVE_RET(T_COLON_COLON);
- }
- }
-#line 3656 "cpp_re.inc"
-yy386:
- ++YYCURSOR;
-#line 139 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
-#line 3661 "cpp_re.inc"
-yy388:
- yyaccept = 12;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'e') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy261;
- } else {
- if(yych <= 0x0C) goto yy261;
- if(yych >= ' ') goto yy261;
- }
- } else {
- if(yych <= '.') {
- if(yych == '%') goto yy394;
- } else {
- if(yych <= '/') goto yy261;
- if(yych >= 'd') goto yy261;
- }
- }
- } else {
- if(yych <= 'p') {
- if(yych <= 'k') {
- if(yych == 'i') goto yy261;
- } else {
- if(yych <= 'l') goto yy261;
- if(yych >= 'p') goto yy261;
- }
- } else {
- if(yych <= 't') {
- if(yych == 'r') goto yy261;
- } else {
- if(yych == 'v') goto yy389;
- if(yych <= 'w') goto yy261;
- }
- }
- }
-yy389:
-#line 141 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_ALT); }
-#line 3701 "cpp_re.inc"
-yy390:
- ++YYCURSOR;
-#line 200 "cpp.re"
- { BOOST_WAVE_RET(T_PERCENTASSIGN); }
-#line 3706 "cpp_re.inc"
-yy392:
- ++YYCURSOR;
-#line 133 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
-#line 3711 "cpp_re.inc"
-yy394:
- yych = *++YYCURSOR;
- if(yych != ':') goto yy98;
- ++YYCURSOR;
-#line 147 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
-#line 3718 "cpp_re.inc"
-yy397:
- ++YYCURSOR;
-#line 216 "cpp.re"
- { BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 3723 "cpp_re.inc"
-yy399:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy405;
-#line 209 "cpp.re"
- { BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 3729 "cpp_re.inc"
-yy401:
- ++YYCURSOR;
-#line 136 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
-#line 3734 "cpp_re.inc"
-yy403:
- ++YYCURSOR;
-#line 130 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
-#line 3739 "cpp_re.inc"
-yy405:
- ++YYCURSOR;
-#line 212 "cpp.re"
- { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
-#line 3744 "cpp_re.inc"
-yy407:
- yych = *++YYCURSOR;
- switch(yych) {
- case '!': goto yy420;
- case '\'': goto yy418;
- case '(': goto yy412;
- case ')': goto yy414;
- case '-': goto yy422;
- case '/': goto yy424;
- case '<': goto yy408;
- case '=': goto yy416;
- case '>': goto yy410;
- default: goto yy98;
- }
-yy408:
- ++YYCURSOR;
-#line 129 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
-#line 3763 "cpp_re.inc"
-yy410:
- ++YYCURSOR;
-#line 132 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
-#line 3768 "cpp_re.inc"
-yy412:
- ++YYCURSOR;
-#line 135 "cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
-#line 3773 "cpp_re.inc"
-yy414:
- ++YYCURSOR;
-#line 138 "cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
-#line 3778 "cpp_re.inc"
-yy416:
- yyaccept = 13;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'c') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy261;
- } else {
- if(yych <= 0x0C) goto yy261;
- if(yych >= ' ') goto yy261;
- }
- } else {
- if(yych <= '.') {
- if(yych == '#') goto yy437;
- } else {
- if(yych <= '/') goto yy261;
- if(yych == '?') goto yy436;
- }
- }
- } else {
- if(yych <= 'p') {
- if(yych <= 'i') {
- if(yych <= 'e') goto yy261;
- if(yych >= 'i') goto yy261;
- } else {
- if(yych == 'l') goto yy261;
- if(yych >= 'p') goto yy261;
- }
- } else {
- if(yych <= 't') {
- if(yych == 'r') goto yy261;
- } else {
- if(yych == 'v') goto yy417;
- if(yych <= 'w') goto yy261;
- }
- }
- }
-yy417:
-#line 142 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
-#line 3819 "cpp_re.inc"
-yy418:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy434;
-#line 181 "cpp.re"
- { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
-#line 3825 "cpp_re.inc"
-yy420:
- yyaccept = 14;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '>') {
- if(yych == '=') goto yy429;
- } else {
- if(yych <= '?') goto yy426;
- if(yych == '|') goto yy427;
- }
-yy421:
-#line 187 "cpp.re"
- { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
-#line 3838 "cpp_re.inc"
-yy422:
- ++YYCURSOR;
-#line 189 "cpp.re"
- { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
-#line 3843 "cpp_re.inc"
-yy424:
- yyaccept = 15;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy186;
- if(yych == 'u') goto yy185;
-yy425:
-#line 239 "cpp.re"
- { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
-#line 3852 "cpp_re.inc"
-yy426:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy431;
- goto yy98;
-yy427:
- ++YYCURSOR;
-#line 221 "cpp.re"
- { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3861 "cpp_re.inc"
-yy429:
- ++YYCURSOR;
-#line 208 "cpp.re"
- { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
-#line 3866 "cpp_re.inc"
-yy431:
- yych = *++YYCURSOR;
- if(yych != '!') goto yy98;
- ++YYCURSOR;
-#line 224 "cpp.re"
- { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3873 "cpp_re.inc"
-yy434:
- ++YYCURSOR;
-#line 203 "cpp.re"
- { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
-#line 3878 "cpp_re.inc"
-yy436:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy439;
- goto yy98;
-yy437:
- ++YYCURSOR;
-#line 145 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3887 "cpp_re.inc"
-yy439:
- yych = *++YYCURSOR;
- if(yych != '=') goto yy98;
- ++YYCURSOR;
-#line 146 "cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3894 "cpp_re.inc"
-yy442:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'e': goto yy495;
- case 'f': goto yy493;
- case 'i': goto yy492;
- case 'l': goto yy496;
- case 's': goto yy449;
- case 't': goto yy494;
- default: goto yy195;
- }
-yy443:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 's') goto yy489;
- goto yy195;
-yy444:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy484;
- goto yy195;
-yy445:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy479;
- goto yy195;
-yy446:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy471;
- goto yy195;
-yy447:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy463;
- goto yy195;
-yy448:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy457;
- goto yy195;
-yy449:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 16;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy456:
-#line 120 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
-#line 3970 "cpp_re.inc"
-yy457:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
-yy458:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 17;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy462:
-#line 125 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
-#line 3995 "cpp_re.inc"
-yy463:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 18;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy470:
-#line 119 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
-#line 4025 "cpp_re.inc"
-yy471:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 19;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy478:
-#line 117 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
-#line 4055 "cpp_re.inc"
-yy479:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 20;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy483:
-#line 118 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
-#line 4076 "cpp_re.inc"
-yy484:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 21;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy488:
-#line 116 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
-#line 4097 "cpp_re.inc"
-yy489:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 22;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy491:
-#line 126 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
-#line 4112 "cpp_re.inc"
-yy492:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy518;
- goto yy195;
-yy493:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy463;
- if(yych == 'i') goto yy511;
- goto yy195;
-yy494:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy508;
- goto yy195;
-yy495:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'x') goto yy502;
- goto yy195;
-yy496:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'v') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 23;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy501:
-#line 124 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
-#line 4157 "cpp_re.inc"
-yy502:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 24;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy507:
-#line 122 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
-#line 4181 "cpp_re.inc"
-yy508:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'y') goto yy195;
- yyaccept = 25;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy510:
-#line 121 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
-#line 4196 "cpp_re.inc"
-yy511:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'y') goto yy195;
- yyaccept = 26;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy517:
-#line 123 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
-#line 4223 "cpp_re.inc"
-yy518:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy458;
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case '1': goto yy520;
- case '3': goto yy521;
- case '6': goto yy522;
- case '8': goto yy523;
- default: goto yy195;
- }
-yy520:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '6') goto yy529;
- goto yy195;
-yy521:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '2') goto yy527;
- goto yy195;
-yy522:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '4') goto yy525;
- goto yy195;
-yy523:
- yyaccept = 27;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy524:
-#line 112 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
-#line 4264 "cpp_re.inc"
-yy525:
- yyaccept = 28;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy526:
-#line 115 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
-#line 4276 "cpp_re.inc"
-yy527:
- yyaccept = 29;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy528:
-#line 114 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
-#line 4288 "cpp_re.inc"
-yy529:
- yyaccept = 30;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy530:
-#line 113 "cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
-#line 4300 "cpp_re.inc"
-yy531:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'h') goto yy537;
- goto yy195;
-yy532:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 31;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy536:
-#line 110 "cpp.re"
- { BOOST_WAVE_RET(T_WHILE); }
-#line 4326 "cpp_re.inc"
-yy537:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '_') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 32;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy542:
-#line 109 "cpp.re"
- { BOOST_WAVE_RET(T_WCHART); }
-#line 4350 "cpp_re.inc"
-yy543:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy555;
- goto yy195;
-yy544:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy545;
- if(yych == 'l') goto yy546;
- goto yy195;
-yy545:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy553;
- goto yy195;
-yy546:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 33;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy552:
-#line 108 "cpp.re"
- { BOOST_WAVE_RET(T_VOLATILE); }
-#line 4393 "cpp_re.inc"
-yy553:
- yyaccept = 34;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy554:
-#line 107 "cpp.re"
- { BOOST_WAVE_RET(T_VOID); }
-#line 4405 "cpp_re.inc"
-yy555:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 35;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy560:
-#line 106 "cpp.re"
- { BOOST_WAVE_RET(T_VIRTUAL); }
-#line 4429 "cpp_re.inc"
-yy561:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy567;
- if(yych == 's') goto yy568;
- goto yy195;
-yy562:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'g') goto yy195;
- yyaccept = 36;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy566:
-#line 105 "cpp.re"
- { BOOST_WAVE_RET(T_USING); }
-#line 4456 "cpp_re.inc"
-yy567:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy575;
- goto yy195;
-yy568:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'g') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 37;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy574:
-#line 104 "cpp.re"
- { BOOST_WAVE_RET(T_UNSIGNED); }
-#line 4488 "cpp_re.inc"
-yy575:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 38;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy577:
-#line 103 "cpp.re"
- { BOOST_WAVE_RET(T_UNION); }
-#line 4503 "cpp_re.inc"
-yy578:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'm') goto yy608;
- goto yy195;
-yy579:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy601;
- if(yych == 'r') goto yy602;
- goto yy195;
-yy580:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'u') goto yy596;
- if(yych == 'y') goto yy597;
- goto yy195;
-yy581:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'h') {
- if(yych != 'd') goto yy195;
- } else {
- if(yych <= 'i') goto yy585;
- if(yych == 'n') goto yy586;
- goto yy195;
- }
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy593;
- goto yy195;
-yy585:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy591;
- goto yy195;
-yy586:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 39;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy590:
-#line 102 "cpp.re"
- { BOOST_WAVE_RET(T_TYPENAME); }
-#line 4566 "cpp_re.inc"
-yy591:
- yyaccept = 40;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy592:
-#line 101 "cpp.re"
- { BOOST_WAVE_RET(T_TYPEID); }
-#line 4578 "cpp_re.inc"
-yy593:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'f') goto yy195;
- yyaccept = 41;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy595:
-#line 100 "cpp.re"
- { BOOST_WAVE_RET(T_TYPEDEF); }
-#line 4593 "cpp_re.inc"
-yy596:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy599;
- goto yy195;
-yy597:
- yyaccept = 42;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy598:
-#line 99 "cpp.re"
- { BOOST_WAVE_RET(T_TRY); }
-#line 4610 "cpp_re.inc"
-yy599:
- yyaccept = 43;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy600:
-#line 98 "cpp.re"
- { BOOST_WAVE_RET(T_TRUE); }
-#line 4622 "cpp_re.inc"
-yy601:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 's') goto yy606;
- goto yy195;
-yy602:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'w') goto yy195;
- yyaccept = 44;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy605:
-#line 97 "cpp.re"
- { BOOST_WAVE_RET(T_THROW); }
-#line 4645 "cpp_re.inc"
-yy606:
- yyaccept = 45;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy607:
-#line 96 "cpp.re"
- { BOOST_WAVE_RET(T_THIS); }
-#line 4657 "cpp_re.inc"
-yy608:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 46;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy614:
-#line 95 "cpp.re"
- { BOOST_WAVE_RET(T_TEMPLATE); }
-#line 4684 "cpp_re.inc"
-yy615:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy650;
- goto yy195;
-yy616:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'g') goto yy640;
- if(yych == 'z') goto yy641;
- goto yy195;
-yy617:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy624;
- if(yych == 'r') goto yy625;
- goto yy195;
-yy618:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'h') goto yy195;
- yyaccept = 47;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy623:
-#line 94 "cpp.re"
- { BOOST_WAVE_RET(T_SWITCH); }
-#line 4725 "cpp_re.inc"
-yy624:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 't') goto yy630;
- goto yy195;
-yy625:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 48;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy629:
-#line 93 "cpp.re"
- { BOOST_WAVE_RET(T_STRUCT); }
-#line 4751 "cpp_re.inc"
-yy630:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 49;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@') {
- if(yych <= '/') {
- if(yych == '$') goto yy194;
- } else {
- if(yych <= '9') goto yy194;
- if(yych == '?') goto yy197;
- }
- } else {
- if(yych <= '^') {
- if(yych <= 'Z') goto yy194;
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy634;
- if(yych <= '`') goto yy633;
- if(yych <= 'z') goto yy194;
- }
- }
-yy633:
-#line 91 "cpp.re"
- { BOOST_WAVE_RET(T_STATIC); }
-#line 4781 "cpp_re.inc"
-yy634:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 50;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy639:
-#line 92 "cpp.re"
- { BOOST_WAVE_RET(T_STATICCAST); }
-#line 4805 "cpp_re.inc"
-yy640:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy646;
- goto yy195;
-yy641:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'f') goto yy195;
- yyaccept = 51;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy645:
-#line 90 "cpp.re"
- { BOOST_WAVE_RET(T_SIZEOF); }
-#line 4831 "cpp_re.inc"
-yy646:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 52;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy649:
-#line 89 "cpp.re"
- { BOOST_WAVE_RET(T_SIGNED); }
-#line 4849 "cpp_re.inc"
-yy650:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 53;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy653:
-#line 88 "cpp.re"
- { BOOST_WAVE_RET(T_SHORT); }
-#line 4867 "cpp_re.inc"
-yy654:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'h') {
- if(yych != 'g') goto yy195;
- } else {
- if(yych <= 'i') goto yy656;
- if(yych == 't') goto yy657;
- goto yy195;
- }
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy676;
- goto yy195;
-yy656:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy662;
- goto yy195;
-yy657:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 54;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy661:
-#line 87 "cpp.re"
- { BOOST_WAVE_RET(T_RETURN); }
-#line 4907 "cpp_re.inc"
-yy662:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '_') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 55;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy675:
-#line 86 "cpp.re"
- { BOOST_WAVE_RET(T_REINTERPRETCAST); }
-#line 4955 "cpp_re.inc"
-yy676:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 56;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy681:
-#line 85 "cpp.re"
- { BOOST_WAVE_RET(T_REGISTER); }
-#line 4979 "cpp_re.inc"
-yy682:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy689;
- if(yych == 'o') goto yy690;
- goto yy195;
-yy683:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'b') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 57;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy688:
-#line 84 "cpp.re"
- { BOOST_WAVE_RET(T_PUBLIC); }
-#line 5009 "cpp_re.inc"
-yy689:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'v') goto yy698;
- goto yy195;
-yy690:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 58;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy697:
-#line 83 "cpp.re"
- { BOOST_WAVE_RET(T_PROTECTED); }
-#line 5044 "cpp_re.inc"
-yy698:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 59;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy702:
-#line 82 "cpp.re"
- { BOOST_WAVE_RET(T_PRIVATE); }
-#line 5065 "cpp_re.inc"
-yy703:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy710;
- goto yy195;
-yy704:
- yyaccept = 60;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@') {
- if(yych <= '/') {
- if(yych == '$') goto yy194;
- } else {
- if(yych <= '9') goto yy194;
- if(yych == '?') goto yy197;
- }
- } else {
- if(yych <= '^') {
- if(yych <= 'Z') goto yy194;
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy706;
- if(yych <= '`') goto yy705;
- if(yych <= 'z') goto yy194;
- }
- }
-yy705:
-#line 223 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
-#line 5094 "cpp_re.inc"
-yy706:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 61;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy709:
-#line 207 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
-#line 5112 "cpp_re.inc"
-yy710:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 62;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy716:
-#line 81 "cpp.re"
- { BOOST_WAVE_RET(T_OPERATOR); }
-#line 5139 "cpp_re.inc"
-yy717:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'm') goto yy728;
- goto yy195;
-yy718:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'w') goto yy726;
- goto yy195;
-yy719:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 63;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@') {
- if(yych <= '/') {
- if(yych == '$') goto yy194;
- } else {
- if(yych <= '9') goto yy194;
- if(yych == '?') goto yy197;
- }
- } else {
- if(yych <= '^') {
- if(yych <= 'Z') goto yy194;
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy722;
- if(yych <= '`') goto yy721;
- if(yych <= 'z') goto yy194;
- }
- }
-yy721:
-#line 192 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
-#line 5176 "cpp_re.inc"
-yy722:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 64;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy725:
-#line 215 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
-#line 5194 "cpp_re.inc"
-yy726:
- yyaccept = 65;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy727:
-#line 80 "cpp.re"
- { BOOST_WAVE_RET(T_NEW); }
-#line 5206 "cpp_re.inc"
-yy728:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 66;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy735:
-#line 79 "cpp.re"
- { BOOST_WAVE_RET(T_NAMESPACE); }
-#line 5236 "cpp_re.inc"
-yy736:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'b') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 67;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy742:
-#line 78 "cpp.re"
- { BOOST_WAVE_RET(T_MUTABLE); }
-#line 5263 "cpp_re.inc"
-yy743:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'g') goto yy195;
- yyaccept = 68;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy746:
-#line 77 "cpp.re"
- { BOOST_WAVE_RET(T_LONG); }
-#line 5281 "cpp_re.inc"
-yy747:
- yyaccept = 69;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy748:
-#line 73 "cpp.re"
- { BOOST_WAVE_RET(T_IF); }
-#line 5293 "cpp_re.inc"
-yy749:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'p') goto yy758;
- goto yy195;
-yy750:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy751;
- if(yych == 't') goto yy752;
- goto yy195;
-yy751:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy754;
- goto yy195;
-yy752:
- yyaccept = 70;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy753:
-#line 76 "cpp.re"
- { BOOST_WAVE_RET(T_INT); }
-#line 5321 "cpp_re.inc"
-yy754:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 71;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy757:
-#line 75 "cpp.re"
- { BOOST_WAVE_RET(T_INLINE); }
-#line 5339 "cpp_re.inc"
-yy758:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 72;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy762:
-#line 74 "cpp.re"
- { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
-#line 5360 "cpp_re.inc"
-yy763:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 73;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy766:
-#line 72 "cpp.re"
- { BOOST_WAVE_RET(T_GOTO); }
-#line 5378 "cpp_re.inc"
-yy767:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy782;
- goto yy195;
-yy768:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy778;
- goto yy195;
-yy769:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy776;
- goto yy195;
-yy770:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 74;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy775:
-#line 71 "cpp.re"
- { BOOST_WAVE_RET(T_FRIEND); }
-#line 5417 "cpp_re.inc"
-yy776:
- yyaccept = 75;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy777:
-#line 70 "cpp.re"
- { BOOST_WAVE_RET(T_FOR); }
-#line 5429 "cpp_re.inc"
-yy778:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 76;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy781:
-#line 69 "cpp.re"
- { BOOST_WAVE_RET(T_FLOAT); }
-#line 5447 "cpp_re.inc"
-yy782:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 77;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy785:
-#line 68 "cpp.re"
- { BOOST_WAVE_RET(T_FALSE); }
-#line 5465 "cpp_re.inc"
-yy786:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 's') goto yy808;
- goto yy195;
-yy787:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'u') goto yy805;
- goto yy195;
-yy788:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'p') goto yy789;
- if(yych == 't') goto yy790;
- goto yy195;
-yy789:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy795;
- if(yych == 'o') goto yy796;
- goto yy195;
-yy790:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 78;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy794:
-#line 67 "cpp.re"
- { BOOST_WAVE_RET(T_EXTERN); }
-#line 5508 "cpp_re.inc"
-yy795:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy800;
- goto yy195;
-yy796:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 79;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy799:
-#line 66 "cpp.re"
- { BOOST_WAVE_RET(T_EXPORT); }
-#line 5531 "cpp_re.inc"
-yy800:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 80;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy804:
-#line 65 "cpp.re"
- { BOOST_WAVE_RET(T_EXPLICIT); }
-#line 5552 "cpp_re.inc"
-yy805:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 81;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy807:
-#line 64 "cpp.re"
- { BOOST_WAVE_RET(T_ENUM); }
-#line 5567 "cpp_re.inc"
-yy808:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 82;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy810:
-#line 63 "cpp.re"
- { BOOST_WAVE_RET(T_ELSE); }
-#line 5582 "cpp_re.inc"
-yy811:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'f') goto yy831;
- if(yych == 'l') goto yy832;
- goto yy195;
-yy812:
- yyaccept = 83;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '9') {
- if(yych == '$') goto yy194;
- if(yych >= '0') goto yy194;
- } else {
- if(yych == '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '_') {
- if(yych == '\\') goto yy196;
- if(yych >= '_') goto yy194;
- } else {
- if(yych <= 't') {
- if(yych >= 'a') goto yy194;
- } else {
- if(yych <= 'u') goto yy826;
- if(yych <= 'z') goto yy194;
- }
- }
- }
-yy813:
-#line 60 "cpp.re"
- { BOOST_WAVE_RET(T_DO); }
-#line 5616 "cpp_re.inc"
-yy814:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '_') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 84;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy825:
-#line 62 "cpp.re"
- { BOOST_WAVE_RET(T_DYNAMICCAST); }
-#line 5658 "cpp_re.inc"
-yy826:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'b') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 85;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy830:
-#line 61 "cpp.re"
- { BOOST_WAVE_RET(T_DOUBLE); }
-#line 5679 "cpp_re.inc"
-yy831:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy837;
- goto yy195;
-yy832:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 86;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy836:
-#line 59 "cpp.re"
- { BOOST_WAVE_RET(T_DELETE); }
-#line 5705 "cpp_re.inc"
-yy837:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 87;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy841:
-#line 58 "cpp.re"
- { BOOST_WAVE_RET(T_DEFAULT); }
-#line 5726 "cpp_re.inc"
-yy842:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'r') goto yy195;
- if(yych <= 's') goto yy873;
- if(yych <= 't') goto yy874;
- goto yy195;
-yy843:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy870;
- goto yy195;
-yy844:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy866;
- goto yy195;
-yy845:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'l') goto yy195;
- if(yych <= 'm') goto yy847;
- if(yych >= 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'r') goto yy195;
- if(yych <= 's') goto yy851;
- if(yych <= 't') goto yy852;
- goto yy195;
-yy847:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 88;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy850:
-#line 190 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
-#line 5773 "cpp_re.inc"
-yy851:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 't') goto yy858;
- goto yy195;
-yy852:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 89;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy857:
-#line 57 "cpp.re"
- { BOOST_WAVE_RET(T_CONTINUE); }
-#line 5802 "cpp_re.inc"
-yy858:
- yyaccept = 90;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@') {
- if(yych <= '/') {
- if(yych == '$') goto yy194;
- } else {
- if(yych <= '9') goto yy194;
- if(yych == '?') goto yy197;
- }
- } else {
- if(yych <= '^') {
- if(yych <= 'Z') goto yy194;
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy860;
- if(yych <= '`') goto yy859;
- if(yych <= 'z') goto yy194;
- }
- }
-yy859:
-#line 55 "cpp.re"
- { BOOST_WAVE_RET(T_CONST); }
-#line 5826 "cpp_re.inc"
-yy860:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 91;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy865:
-#line 56 "cpp.re"
- { BOOST_WAVE_RET(T_CONSTCAST); }
-#line 5850 "cpp_re.inc"
-yy866:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 92;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy869:
-#line 54 "cpp.re"
- { BOOST_WAVE_RET(T_CLASS); }
-#line 5868 "cpp_re.inc"
-yy870:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 93;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy872:
-#line 53 "cpp.re"
- { BOOST_WAVE_RET(T_CHAR); }
-#line 5883 "cpp_re.inc"
-yy873:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy878;
- goto yy195;
-yy874:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'h') goto yy195;
- yyaccept = 94;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy877:
-#line 52 "cpp.re"
- { BOOST_WAVE_RET(T_CATCH); }
-#line 5906 "cpp_re.inc"
-yy878:
- yyaccept = 95;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy879:
-#line 51 "cpp.re"
- { BOOST_WAVE_RET(T_CASE); }
-#line 5918 "cpp_re.inc"
-yy880:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 't') goto yy890;
- goto yy195;
-yy881:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy887;
- goto yy195;
-yy882:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'k') goto yy195;
- yyaccept = 96;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy886:
-#line 50 "cpp.re"
- { BOOST_WAVE_RET(T_BREAK); }
-#line 5949 "cpp_re.inc"
-yy887:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 97;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy889:
-#line 49 "cpp.re"
- { BOOST_WAVE_RET(T_BOOL); }
-#line 5964 "cpp_re.inc"
-yy890:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy891;
- if(yych == 'o') goto yy892;
- goto yy195;
-yy891:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy895;
- goto yy195;
-yy892:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 98;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy894:
-#line 186 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
-#line 5990 "cpp_re.inc"
-yy895:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 99;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy897:
-#line 184 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
-#line 6005 "cpp_re.inc"
-yy898:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy906;
- goto yy195;
-yy899:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'm') goto yy904;
- goto yy195;
-yy900:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 100;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy903:
-#line 48 "cpp.re"
- { BOOST_WAVE_RET(T_AUTO); }
-#line 6033 "cpp_re.inc"
-yy904:
- yyaccept = 101;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy905:
-#line 47 "cpp.re"
- { BOOST_WAVE_RET(T_ASM); }
-#line 6045 "cpp_re.inc"
-yy906:
- yyaccept = 102;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@') {
- if(yych <= '/') {
- if(yych == '$') goto yy194;
- } else {
- if(yych <= '9') goto yy194;
- if(yych == '?') goto yy197;
- }
- } else {
- if(yych <= '^') {
- if(yych <= 'Z') goto yy194;
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy908;
- if(yych <= '`') goto yy907;
- if(yych <= 'z') goto yy194;
- }
- }
-yy907:
-#line 219 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
-#line 6069 "cpp_re.inc"
-yy908:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 103;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy911:
-#line 205 "cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
-#line 6087 "cpp_re.inc"
-yy912:
- ++YYCURSOR;
-#line 166 "cpp.re"
- {
- if (s->act_in_c99_mode) {
- --YYCURSOR;
- BOOST_WAVE_RET(T_DOT);
- }
- else {
- BOOST_WAVE_RET(T_DOTSTAR);
- }
- }
-#line 6100 "cpp_re.inc"
-yy914:
- yych = *++YYCURSOR;
- if(yych == '.') goto yy916;
- goto yy98;
-yy915:
- yych = *++YYCURSOR;
- goto yy7;
-yy916:
- ++YYCURSOR;
-#line 152 "cpp.re"
- { BOOST_WAVE_RET(T_ELLIPSIS); }
-#line 6112 "cpp_re.inc"
-yy918:
- ++YYCURSOR;
-#line 199 "cpp.re"
- { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
-#line 6117 "cpp_re.inc"
-yy920:
- ++YYCURSOR;
-#line 44 "cpp.re"
- { goto cppcomment; }
-#line 6122 "cpp_re.inc"
-yy922:
- ++YYCURSOR;
-#line 43 "cpp.re"
- { goto ccomment; }
-#line 6127 "cpp_re.inc"
- }
-}
-#line 307 "cpp.re"
-
-
-ccomment:
-{
-
-#line 6136 "cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 0x0C) {
- if(yych <= 0x08) {
- if(yych <= 0x00) goto yy933;
- goto yy935;
- } else {
- if(yych == 0x0A) goto yy928;
- goto yy931;
- }
- } else {
- if(yych <= 0x1F) {
- if(yych <= 0x0D) goto yy930;
- goto yy935;
- } else {
- if(yych != '*') goto yy932;
- }
- }
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy938;
-yy927:
-#line 322 "cpp.re"
- { goto ccomment; }
-#line 6162 "cpp_re.inc"
-yy928:
- ++YYCURSOR;
-yy929:
-#line 314 "cpp.re"
- {
- /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
- /*s->tok = cursor; */
- s->line += count_backslash_newlines(s, cursor) +1;
- cursor.column = 1;
- goto ccomment;
- }
-#line 6174 "cpp_re.inc"
-yy930:
- yych = *++YYCURSOR;
- if(yych == 0x0A) goto yy937;
- goto yy929;
-yy931:
- yych = *++YYCURSOR;
- goto yy927;
-yy932:
- yych = *++YYCURSOR;
- goto yy927;
-yy933:
- ++YYCURSOR;
-#line 325 "cpp.re"
- {
- if(cursor == s->eof)
- {
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "Unterminated 'C' style comment");
- }
- else
- {
- --YYCURSOR; // next call returns T_EOF
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character: '\\000' in input stream");
- }
- }
-#line 6201 "cpp_re.inc"
-yy935:
- ++YYCURSOR;
-#line 340 "cpp.re"
- {
- // flag the error
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
- }
-#line 6211 "cpp_re.inc"
-yy937:
- yych = *++YYCURSOR;
- goto yy929;
-yy938:
- ++YYCURSOR;
-#line 311 "cpp.re"
- { BOOST_WAVE_RET(T_CCOMMENT); }
-#line 6219 "cpp_re.inc"
- }
-}
-#line 346 "cpp.re"
-
-
-cppcomment:
-{
-
-#line 6228 "cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 0x0A) {
- if(yych <= 0x00) goto yy948;
- if(yych <= 0x08) goto yy950;
- if(yych <= 0x09) goto yy945;
- } else {
- if(yych <= 0x0C) goto yy945;
- if(yych <= 0x0D) goto yy944;
- if(yych <= 0x1F) goto yy950;
- goto yy947;
- }
- ++YYCURSOR;
-yy943:
-#line 351 "cpp.re"
- {
- /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
- /*s->tok = cursor; */
- s->line++;
- cursor.column = 1;
- BOOST_WAVE_RET(T_CPPCOMMENT);
- }
-#line 6253 "cpp_re.inc"
-yy944:
- yych = *++YYCURSOR;
- if(yych == 0x0A) goto yy952;
- goto yy943;
-yy945:
- ++YYCURSOR;
-yy946:
-#line 359 "cpp.re"
- { goto cppcomment; }
-#line 6263 "cpp_re.inc"
-yy947:
- yych = *++YYCURSOR;
- goto yy946;
-yy948:
- ++YYCURSOR;
-#line 362 "cpp.re"
- {
- if (s->eof && cursor != s->eof)
- {
- --YYCURSOR; // next call returns T_EOF
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
- }
-
- --YYCURSOR; // next call returns T_EOF
- if (!s->single_line_only)
- {
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "Unterminated 'C++' style comment");
- }
- BOOST_WAVE_RET(T_CPPCOMMENT);
- }
-#line 6286 "cpp_re.inc"
-yy950:
- ++YYCURSOR;
-#line 380 "cpp.re"
- {
- // flag the error
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
- }
-#line 6296 "cpp_re.inc"
-yy952:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy943;
- }
-}
-#line 386 "cpp.re"
-
-
-/* this subscanner is called whenever a pp_number has been started */
-pp_number:
-{
- cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
- marker = uchar_wrapper(s->ptr);
- limit = uchar_wrapper(s->lim);
-
- if (s->detect_pp_numbers) {
- {
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 64, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 64, 0,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 0, 0, 0, 0, 0, 0,
- 0, 64, 64, 64, 64, 128, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 64,
- 0, 64, 64, 64, 64, 128, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 6350 "cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych == '.') goto yy956;
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy957;
-yy955:
- YYCURSOR = YYMARKER;
- goto yy959;
-yy956:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
-yy957:
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 64) {
- goto yy957;
- }
- if(yych <= 'Z') {
- if(yych == '?') goto yy963;
- if(yych >= 'A') goto yy960;
- } else {
- if(yych <= '\\') {
- if(yych >= '\\') goto yy962;
- } else {
- if(yych == 'e') goto yy960;
- }
- }
-yy959:
-#line 398 "cpp.re"
- { BOOST_WAVE_RET(T_PP_NUMBER); }
-#line 6385 "cpp_re.inc"
-yy960:
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy960;
- }
- if(yych <= '>') {
- if(yych <= '+') {
- if(yych == '$') goto yy957;
- if(yych <= '*') goto yy959;
- goto yy957;
- } else {
- if(yych <= '.') {
- if(yych <= ',') goto yy959;
- goto yy957;
- } else {
- if(yych <= '/') goto yy959;
- if(yych <= '9') goto yy957;
- goto yy959;
- }
- }
- } else {
- if(yych <= '\\') {
- if(yych <= '@') {
- if(yych <= '?') goto yy963;
- goto yy959;
- } else {
- if(yych <= 'Z') goto yy957;
- if(yych <= '[') goto yy959;
- }
- } else {
- if(yych <= '_') {
- if(yych <= '^') goto yy959;
- goto yy957;
- } else {
- if(yych <= '`') goto yy959;
- if(yych <= 'z') goto yy957;
- goto yy959;
- }
- }
- }
-yy962:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == 'U') goto yy966;
- if(yych == 'u') goto yy965;
- goto yy955;
-yy963:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych != '?') goto yy955;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '/') goto yy962;
- goto yy955;
-yy965:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy974;
- goto yy955;
- } else {
- if(yych <= 'F') goto yy974;
- if(yych <= '`') goto yy955;
- if(yych <= 'f') goto yy974;
- goto yy955;
- }
-yy966:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy967;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy967:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy968;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy968:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy969;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy969:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy970;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy970:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy971;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy971:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy972;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy972:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy973;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy973:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy957;
- goto yy955;
- } else {
- if(yych <= 'F') goto yy957;
- if(yych <= '`') goto yy955;
- if(yych <= 'f') goto yy957;
- goto yy955;
- }
-yy974:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy975;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy975:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy976;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy976:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy957;
- goto yy955;
- } else {
- if(yych <= 'F') goto yy957;
- if(yych <= '`') goto yy955;
- if(yych <= 'f') goto yy957;
- goto yy955;
- }
- }
-}
-#line 399 "cpp.re"
-
- }
- else {
- {
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 224, 224, 224, 224, 224, 224, 224, 224,
- 160, 160, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 6637 "cpp_re.inc"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
- if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
- yych = *YYCURSOR;
- if(yych <= '/') {
- if(yych == '.') goto yy984;
- } else {
- if(yych <= '0') goto yy980;
- if(yych <= '9') goto yy982;
- }
-yy979:
- YYCURSOR = YYMARKER;
- if(yyaccept <= 0) {
- goto yy981;
- } else {
- goto yy987;
- }
-yy980:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 64) {
- goto yy999;
- }
- if(yych <= 'E') {
- if(yych <= '/') {
- if(yych == '.') goto yy985;
- } else {
- if(yych <= '9') goto yy1002;
- if(yych >= 'E') goto yy995;
- }
- } else {
- if(yych <= 'd') {
- if(yych == 'X') goto yy1001;
- } else {
- if(yych <= 'e') goto yy995;
- if(yych == 'x') goto yy1001;
- }
- }
-yy981:
-#line 406 "cpp.re"
- { goto integer_suffix; }
-#line 6680 "cpp_re.inc"
-yy982:
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy982;
- }
- if(yych <= 'D') {
- if(yych == '.') goto yy985;
- goto yy981;
- } else {
- if(yych <= 'E') goto yy995;
- if(yych == 'e') goto yy995;
- goto yy981;
- }
-yy984:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy979;
- if(yych >= ':') goto yy979;
-yy985:
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yych <= 'K') {
- if(yych <= 'D') {
- if(yych <= '/') goto yy987;
- if(yych <= '9') goto yy985;
- } else {
- if(yych <= 'E') goto yy988;
- if(yych <= 'F') goto yy989;
- }
- } else {
- if(yych <= 'e') {
- if(yych <= 'L') goto yy990;
- if(yych >= 'e') goto yy988;
- } else {
- if(yych <= 'f') goto yy989;
- if(yych == 'l') goto yy990;
- }
- }
-yy987:
-#line 404 "cpp.re"
- { BOOST_WAVE_RET(T_FLOATLIT); }
-#line 6726 "cpp_re.inc"
-yy988:
- yych = *++YYCURSOR;
- if(yych <= ',') {
- if(yych == '+') goto yy992;
- goto yy979;
- } else {
- if(yych <= '-') goto yy992;
- if(yych <= '/') goto yy979;
- if(yych <= '9') goto yy993;
- goto yy979;
- }
-yy989:
- yych = *++YYCURSOR;
- if(yych == 'L') goto yy991;
- if(yych == 'l') goto yy991;
- goto yy987;
-yy990:
- yych = *++YYCURSOR;
- if(yych == 'F') goto yy991;
- if(yych != 'f') goto yy987;
-yy991:
- yych = *++YYCURSOR;
- goto yy987;
-yy992:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy979;
- if(yych >= ':') goto yy979;
-yy993:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 'K') {
- if(yych <= '9') {
- if(yych <= '/') goto yy987;
- goto yy993;
- } else {
- if(yych == 'F') goto yy989;
- goto yy987;
- }
- } else {
- if(yych <= 'f') {
- if(yych <= 'L') goto yy990;
- if(yych <= 'e') goto yy987;
- goto yy989;
- } else {
- if(yych == 'l') goto yy990;
- goto yy987;
- }
- }
-yy995:
- yych = *++YYCURSOR;
- if(yych <= ',') {
- if(yych != '+') goto yy979;
- } else {
- if(yych <= '-') goto yy996;
- if(yych <= '/') goto yy979;
- if(yych <= '9') goto yy997;
- goto yy979;
- }
-yy996:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy979;
- if(yych >= ':') goto yy979;
-yy997:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 'K') {
- if(yych <= '9') {
- if(yych <= '/') goto yy987;
- goto yy997;
- } else {
- if(yych == 'F') goto yy989;
- goto yy987;
- }
- } else {
- if(yych <= 'f') {
- if(yych <= 'L') goto yy990;
- if(yych <= 'e') goto yy987;
- goto yy989;
- } else {
- if(yych == 'l') goto yy990;
- goto yy987;
- }
- }
-yy999:
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 64) {
- goto yy999;
- }
- if(yych <= '9') {
- if(yych == '.') goto yy985;
- if(yych <= '/') goto yy981;
- goto yy1002;
- } else {
- if(yych <= 'E') {
- if(yych <= 'D') goto yy981;
- goto yy995;
- } else {
- if(yych == 'e') goto yy995;
- goto yy981;
- }
- }
-yy1001:
- yych = *++YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy1004;
- }
- goto yy979;
-yy1002:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych == '.') goto yy985;
- if(yych <= '/') goto yy979;
- goto yy1002;
- } else {
- if(yych <= 'E') {
- if(yych <= 'D') goto yy979;
- goto yy995;
- } else {
- if(yych == 'e') goto yy995;
- goto yy979;
- }
- }
-yy1004:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy1004;
- }
- goto yy981;
- }
-}
-#line 407 "cpp.re"
-
- }
-}
-
-/* this subscanner is called, whenever a Integer was recognized */
-integer_suffix:
-{
- if (s->enable_ms_extensions) {
- {
-
-#line 6877 "cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *(YYMARKER = YYCURSOR);
- if(yych <= 'h') {
- if(yych <= 'L') {
- if(yych >= 'L') goto yy1010;
- } else {
- if(yych == 'U') goto yy1009;
- }
- } else {
- if(yych <= 'l') {
- if(yych <= 'i') goto yy1011;
- if(yych >= 'l') goto yy1010;
- } else {
- if(yych == 'u') goto yy1009;
- }
- }
-yy1008:
-#line 420 "cpp.re"
- { BOOST_WAVE_RET(T_INTLIT); }
-#line 6899 "cpp_re.inc"
-yy1009:
- yych = *++YYCURSOR;
- if(yych == 'L') goto yy1018;
- if(yych == 'l') goto yy1018;
- goto yy1008;
-yy1010:
- yych = *++YYCURSOR;
- if(yych <= 'U') {
- if(yych == 'L') goto yy1017;
- if(yych <= 'T') goto yy1008;
- goto yy1016;
- } else {
- if(yych <= 'l') {
- if(yych <= 'k') goto yy1008;
- goto yy1017;
- } else {
- if(yych == 'u') goto yy1016;
- goto yy1008;
- }
- }
-yy1011:
- yych = *++YYCURSOR;
- if(yych == '6') goto yy1013;
-yy1012:
- YYCURSOR = YYMARKER;
- goto yy1008;
-yy1013:
- yych = *++YYCURSOR;
- if(yych != '4') goto yy1012;
-yy1014:
- ++YYCURSOR;
-yy1015:
-#line 417 "cpp.re"
- { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 6934 "cpp_re.inc"
-yy1016:
- yych = *++YYCURSOR;
- goto yy1008;
-yy1017:
- yych = *++YYCURSOR;
- if(yych == 'U') goto yy1014;
- if(yych == 'u') goto yy1014;
- goto yy1015;
-yy1018:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == 'L') goto yy1014;
- if(yych == 'l') goto yy1014;
- goto yy1008;
- }
-}
-#line 421 "cpp.re"
-
- }
- else {
- {
-
-#line 6956 "cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yych <= 'U') {
- if(yych == 'L') goto yy1023;
- if(yych >= 'U') goto yy1022;
- } else {
- if(yych <= 'l') {
- if(yych >= 'l') goto yy1023;
- } else {
- if(yych == 'u') goto yy1022;
- }
- }
-yy1021:
-#line 429 "cpp.re"
- { BOOST_WAVE_RET(T_INTLIT); }
-#line 6974 "cpp_re.inc"
-yy1022:
- yych = *++YYCURSOR;
- if(yych == 'L') goto yy1028;
- if(yych == 'l') goto yy1028;
- goto yy1021;
-yy1023:
- yych = *++YYCURSOR;
- if(yych <= 'U') {
- if(yych == 'L') goto yy1025;
- if(yych <= 'T') goto yy1021;
- } else {
- if(yych <= 'l') {
- if(yych <= 'k') goto yy1021;
- goto yy1025;
- } else {
- if(yych != 'u') goto yy1021;
- }
- }
- yych = *++YYCURSOR;
- goto yy1021;
-yy1025:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == 'U') goto yy1027;
- if(yych == 'u') goto yy1027;
-yy1026:
-#line 426 "cpp.re"
- { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 7002 "cpp_re.inc"
-yy1027:
- yych = *++YYCURSOR;
- goto yy1026;
-yy1028:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == 'L') goto yy1027;
- if(yych == 'l') goto yy1027;
- goto yy1021;
- }
-}
-#line 430 "cpp.re"
-
- }
-}
+/* Generated by re2c 0.12.1 on Tue Oct 02 09:56:22 2007 */
+#line 1 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+
+ Copyright (c) 2001 Daniel C. Nuffer
+ Copyright (c) 2001-2007 Hartmut Kaiser.
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is a lexer conforming to the Standard with a few exceptions.
+ So it does allow the '$' to be part of identifiers. If you need strict
+ Standards conforming behaviour, please include the lexer definition
+ provided in the file strict_cpp.re.
+
+ TODO:
+ handle errors better.
+=============================================================================*/
+
+#line 40 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+
+{
+ static const unsigned char yybm[] = {
+ /* table 1 .. 8: 0 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 58, 32, 58, 58, 64, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 58, 58, 50, 58, 62, 58, 58, 56,
+ 58, 58, 154, 58, 58, 58, 58, 58,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 58, 58, 58, 58, 42, 56,
+ 58, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 58, 57, 58, 58, 62,
+ 58, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ /* table 9 .. 12: 256 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 0, 48, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 32, 0, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 32, 32, 32, 32, 32, 128,
+ 32, 96, 96, 96, 96, 96, 96, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 0, 32, 32, 32,
+ 32, 96, 96, 96, 96, 96, 96, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ };
+
+#line 94 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+
+ if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
+ yych = *YYCURSOR;
+ switch(yych) {
+ case 0x00: goto yy88;
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ case 0x08:
+ case 0x0E:
+ case 0x0F:
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ case 0x14:
+ case 0x15:
+ case 0x16:
+ case 0x17:
+ case 0x18:
+ case 0x19:
+ case 0x1A:
+ case 0x1B:
+ case 0x1C:
+ case 0x1D:
+ case 0x1E:
+ case 0x1F: goto yy91;
+ case 0x09:
+ case 0x0B:
+ case 0x0C: goto yy82;
+ case 0x0A: goto yy85;
+ case 0x0D: goto yy87;
+ case ' ': goto yy84;
+ case '!': goto yy68;
+ case '"': goto yy81;
+ case '#': goto yy45;
+ case '$':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case 'h':
+ case 'j':
+ case 'k':
+ case 'q':
+ case 'y':
+ case 'z': goto yy76;
+ case '%': goto yy37;
+ case '&': goto yy62;
+ case '\'': goto yy80;
+ case '(': goto yy47;
+ case ')': goto yy49;
+ case '*': goto yy57;
+ case '+': goto yy53;
+ case ',': goto yy74;
+ case '-': goto yy55;
+ case '.': goto yy4;
+ case '/': goto yy2;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy6;
+ case ':': goto yy43;
+ case ';': goto yy51;
+ case '<': goto yy33;
+ case '=': goto yy70;
+ case '>': goto yy72;
+ case '?': goto yy31;
+ case 'L': goto yy77;
+ case '[': goto yy39;
+ case '\\': goto yy78;
+ case ']': goto yy41;
+ case '^': goto yy59;
+ case '_': goto yy28;
+ case 'a': goto yy8;
+ case 'b': goto yy10;
+ case 'c': goto yy11;
+ case 'd': goto yy12;
+ case 'e': goto yy13;
+ case 'f': goto yy14;
+ case 'g': goto yy15;
+ case 'i': goto yy16;
+ case 'l': goto yy17;
+ case 'm': goto yy18;
+ case 'n': goto yy19;
+ case 'o': goto yy20;
+ case 'p': goto yy21;
+ case 'r': goto yy22;
+ case 's': goto yy23;
+ case 't': goto yy24;
+ case 'u': goto yy25;
+ case 'v': goto yy26;
+ case 'w': goto yy27;
+ case 'x': goto yy61;
+ case '{': goto yy29;
+ case '|': goto yy64;
+ case '}': goto yy35;
+ case '~': goto yy66;
+ default: goto yy90;
+ }
+yy2:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '.') {
+ if(yych == '*') goto yy922;
+ } else {
+ if(yych <= '/') goto yy920;
+ if(yych == '=') goto yy918;
+ }
+#line 178 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDE); }
+#line 239 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy4:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '-') {
+ if(yych == '*') goto yy912;
+ } else {
+ if(yych <= '.') goto yy914;
+ if(yych <= '/') goto yy5;
+ if(yych <= '9') goto yy915;
+ }
+yy5:
+#line 164 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DOT); }
+#line 253 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy6:
+ ++YYCURSOR;
+yy7:
+#line 45 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { goto pp_number; }
+#line 259 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy8:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'r') {
+ if(yych == 'n') goto yy898;
+ goto yy195;
+ } else {
+ if(yych <= 's') goto yy899;
+ if(yych == 'u') goto yy900;
+ goto yy195;
+ }
+yy9:
+#line 243 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_IDENTIFIER); }
+#line 274 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy10:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n') {
+ if(yych == 'i') goto yy880;
+ goto yy195;
+ } else {
+ if(yych <= 'o') goto yy881;
+ if(yych == 'r') goto yy882;
+ goto yy195;
+ }
+yy11:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case 'a': goto yy842;
+ case 'h': goto yy843;
+ case 'l': goto yy844;
+ case 'o': goto yy845;
+ default: goto yy195;
+ }
+yy12:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n') {
+ if(yych == 'e') goto yy811;
+ goto yy195;
+ } else {
+ if(yych <= 'o') goto yy812;
+ if(yych == 'y') goto yy814;
+ goto yy195;
+ }
+yy13:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'm') {
+ if(yych == 'l') goto yy786;
+ goto yy195;
+ } else {
+ if(yych <= 'n') goto yy787;
+ if(yych == 'x') goto yy788;
+ goto yy195;
+ }
+yy14:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case 'a': goto yy767;
+ case 'l': goto yy768;
+ case 'o': goto yy769;
+ case 'r': goto yy770;
+ default: goto yy195;
+ }
+yy15:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy763;
+ goto yy195;
+yy16:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'l') {
+ if(yych == 'f') goto yy747;
+ goto yy195;
+ } else {
+ if(yych <= 'm') goto yy749;
+ if(yych <= 'n') goto yy750;
+ goto yy195;
+ }
+yy17:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy743;
+ goto yy195;
+yy18:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'u') goto yy736;
+ goto yy195;
+yy19:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'd') {
+ if(yych == 'a') goto yy717;
+ goto yy195;
+ } else {
+ if(yych <= 'e') goto yy718;
+ if(yych == 'o') goto yy719;
+ goto yy195;
+ }
+yy20:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'p') goto yy703;
+ if(yych == 'r') goto yy704;
+ goto yy195;
+yy21:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy682;
+ if(yych == 'u') goto yy683;
+ goto yy195;
+yy22:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy654;
+ goto yy195;
+yy23:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 's') {
+ if(yych <= 'g') goto yy195;
+ if(yych <= 'h') goto yy615;
+ if(yych <= 'i') goto yy616;
+ goto yy195;
+ } else {
+ if(yych <= 't') goto yy617;
+ if(yych == 'w') goto yy618;
+ goto yy195;
+ }
+yy24:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'h') {
+ if(yych == 'e') goto yy578;
+ if(yych <= 'g') goto yy195;
+ goto yy579;
+ } else {
+ if(yych <= 'r') {
+ if(yych <= 'q') goto yy195;
+ goto yy580;
+ } else {
+ if(yych == 'y') goto yy581;
+ goto yy195;
+ }
+ }
+yy25:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy561;
+ if(yych == 's') goto yy562;
+ goto yy195;
+yy26:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy543;
+ if(yych == 'o') goto yy544;
+ goto yy195;
+yy27:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'c') goto yy531;
+ if(yych == 'h') goto yy532;
+ goto yy195;
+yy28:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case '_': goto yy442;
+ case 'a': goto yy443;
+ case 'b': goto yy444;
+ case 'c': goto yy445;
+ case 'd': goto yy446;
+ case 'f': goto yy447;
+ case 'i': goto yy448;
+ case 's': goto yy449;
+ default: goto yy195;
+ }
+yy29:
+ ++YYCURSOR;
+#line 128 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE); }
+#line 447 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy31:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '?') goto yy407;
+yy32:
+#line 153 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_QUESTION_MARK); }
+#line 455 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy33:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= ':') {
+ if(yych == '%') goto yy403;
+ if(yych >= ':') goto yy401;
+ } else {
+ if(yych <= ';') goto yy34;
+ if(yych <= '<') goto yy399;
+ if(yych <= '=') goto yy397;
+ }
+yy34:
+#line 194 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LESS); }
+#line 469 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy35:
+ ++YYCURSOR;
+#line 131 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE); }
+#line 474 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy37:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '<') {
+ if(yych == ':') goto yy388;
+ } else {
+ if(yych <= '=') goto yy390;
+ if(yych <= '>') goto yy392;
+ }
+#line 179 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PERCENT); }
+#line 485 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy39:
+ ++YYCURSOR;
+#line 134 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET); }
+#line 490 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy41:
+ ++YYCURSOR;
+#line 137 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+#line 495 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy43:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == ':') goto yy384;
+ if(yych == '>') goto yy386;
+#line 151 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_COLON); }
+#line 502 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy45:
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'c') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy261;
+ } else {
+ if(yych <= 0x0C) goto yy261;
+ if(yych >= ' ') goto yy261;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '#') goto yy272;
+ } else {
+ if(yych <= '/') goto yy261;
+ if(yych == '?') goto yy271;
+ }
+ }
+ } else {
+ if(yych <= 'p') {
+ if(yych <= 'i') {
+ if(yych <= 'e') goto yy261;
+ if(yych >= 'i') goto yy261;
+ } else {
+ if(yych == 'l') goto yy261;
+ if(yych >= 'p') goto yy261;
+ }
+ } else {
+ if(yych <= 't') {
+ if(yych == 'r') goto yy261;
+ } else {
+ if(yych == 'v') goto yy46;
+ if(yych <= 'w') goto yy261;
+ }
+ }
+ }
+yy46:
+#line 140 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND); }
+#line 543 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy47:
+ ++YYCURSOR;
+#line 148 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTPAREN); }
+#line 548 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy49:
+ ++YYCURSOR;
+#line 149 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTPAREN); }
+#line 553 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy51:
+ ++YYCURSOR;
+#line 150 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SEMICOLON); }
+#line 558 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy53:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '+') goto yy256;
+ if(yych == '=') goto yy258;
+#line 175 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PLUS); }
+#line 565 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy55:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '<') {
+ if(yych == '-') goto yy250;
+ } else {
+ if(yych <= '=') goto yy252;
+ if(yych <= '>') goto yy248;
+ }
+#line 176 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_MINUS); }
+#line 576 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy57:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy246;
+#line 177 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_STAR); }
+#line 582 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy59:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy244;
+#line 180 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_XOR); }
+#line 588 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy61:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy237;
+ goto yy195;
+yy62:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '&') goto yy233;
+ if(yych == '=') goto yy235;
+#line 183 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_AND); }
+#line 600 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy64:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '>') {
+ if(yych == '=') goto yy228;
+ } else {
+ if(yych <= '?') goto yy225;
+ if(yych == '|') goto yy226;
+ }
+yy65:
+#line 185 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OR); }
+#line 613 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy66:
+ ++YYCURSOR;
+#line 188 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_COMPL); }
+#line 618 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy68:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy223;
+#line 191 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_NOT); }
+#line 624 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy70:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy221;
+#line 193 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ASSIGN); }
+#line 630 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy72:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '<') goto yy73;
+ if(yych <= '=') goto yy215;
+ if(yych <= '>') goto yy217;
+yy73:
+#line 195 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_GREATER); }
+#line 639 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy74:
+ ++YYCURSOR;
+#line 227 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_COMMA); }
+#line 644 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy76:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy195;
+yy77:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych <= '\'') {
+ if(yych == '"') goto yy96;
+ if(yych <= '&') goto yy9;
+ goto yy214;
+ } else {
+ if(yych <= '?') {
+ if(yych <= '>') goto yy9;
+ goto yy197;
+ } else {
+ if(yych == '\\') goto yy196;
+ goto yy9;
+ }
+ }
+yy78:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'U') goto yy186;
+ if(yych == 'u') goto yy185;
+yy79:
+#line 299 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 676 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy80:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy142;
+ if(yych <= 0x0A) goto yy79;
+ goto yy142;
+ } else {
+ if(yych <= 0x1F) goto yy79;
+ if(yych == '\'') goto yy79;
+ goto yy142;
+ }
+yy81:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy97;
+ goto yy79;
+ } else {
+ if(yych <= 0x0C) goto yy97;
+ if(yych <= 0x1F) goto yy79;
+ goto yy97;
+ }
+yy82:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy95;
+yy83:
+#line 279 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SPACE); }
+#line 707 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy84:
+ yych = *++YYCURSOR;
+ goto yy95;
+yy85:
+ ++YYCURSOR;
+yy86:
+#line 282 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_NEWLINE);
+ }
+#line 720 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy87:
+ yych = *++YYCURSOR;
+ if(yych == 0x0A) goto yy93;
+ goto yy86;
+yy88:
+ ++YYCURSOR;
+#line 289 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+ BOOST_WAVE_RET(T_EOF);
+ }
+#line 737 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy90:
+ yych = *++YYCURSOR;
+ goto yy79;
+yy91:
+ ++YYCURSOR;
+#line 302 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 750 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy93:
+ yych = *++YYCURSOR;
+ goto yy86;
+yy94:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy95:
+ if(yybm[256+yych] & 16) {
+ goto yy94;
+ }
+ goto yy83;
+yy96:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy97:
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy98:
+ YYCURSOR = YYMARKER;
+ if(yyaccept <= 51) {
+ if(yyaccept <= 25) {
+ if(yyaccept <= 12) {
+ if(yyaccept <= 6) {
+ if(yyaccept <= 3) {
+ if(yyaccept <= 1) {
+ if(yyaccept <= 0) {
+ goto yy5;
+ } else {
+ goto yy9;
+ }
+ } else {
+ if(yyaccept <= 2) {
+ goto yy32;
+ } else {
+ goto yy46;
+ }
+ }
+ } else {
+ if(yyaccept <= 5) {
+ if(yyaccept <= 4) {
+ goto yy65;
+ } else {
+ goto yy79;
+ }
+ } else {
+ goto yy102;
+ }
+ }
+ } else {
+ if(yyaccept <= 9) {
+ if(yyaccept <= 8) {
+ if(yyaccept <= 7) {
+ goto yy152;
+ } else {
+ goto yy239;
+ }
+ } else {
+ goto yy243;
+ }
+ } else {
+ if(yyaccept <= 11) {
+ if(yyaccept <= 10) {
+ goto yy279;
+ } else {
+ goto yy294;
+ }
+ } else {
+ goto yy389;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 19) {
+ if(yyaccept <= 16) {
+ if(yyaccept <= 14) {
+ if(yyaccept <= 13) {
+ goto yy417;
+ } else {
+ goto yy421;
+ }
+ } else {
+ if(yyaccept <= 15) {
+ goto yy425;
+ } else {
+ goto yy456;
+ }
+ }
+ } else {
+ if(yyaccept <= 18) {
+ if(yyaccept <= 17) {
+ goto yy462;
+ } else {
+ goto yy470;
+ }
+ } else {
+ goto yy478;
+ }
+ }
+ } else {
+ if(yyaccept <= 22) {
+ if(yyaccept <= 21) {
+ if(yyaccept <= 20) {
+ goto yy483;
+ } else {
+ goto yy488;
+ }
+ } else {
+ goto yy491;
+ }
+ } else {
+ if(yyaccept <= 24) {
+ if(yyaccept <= 23) {
+ goto yy501;
+ } else {
+ goto yy507;
+ }
+ } else {
+ goto yy510;
+ }
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 38) {
+ if(yyaccept <= 32) {
+ if(yyaccept <= 29) {
+ if(yyaccept <= 27) {
+ if(yyaccept <= 26) {
+ goto yy517;
+ } else {
+ goto yy524;
+ }
+ } else {
+ if(yyaccept <= 28) {
+ goto yy526;
+ } else {
+ goto yy528;
+ }
+ }
+ } else {
+ if(yyaccept <= 31) {
+ if(yyaccept <= 30) {
+ goto yy530;
+ } else {
+ goto yy536;
+ }
+ } else {
+ goto yy542;
+ }
+ }
+ } else {
+ if(yyaccept <= 35) {
+ if(yyaccept <= 34) {
+ if(yyaccept <= 33) {
+ goto yy552;
+ } else {
+ goto yy554;
+ }
+ } else {
+ goto yy560;
+ }
+ } else {
+ if(yyaccept <= 37) {
+ if(yyaccept <= 36) {
+ goto yy566;
+ } else {
+ goto yy574;
+ }
+ } else {
+ goto yy577;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 45) {
+ if(yyaccept <= 42) {
+ if(yyaccept <= 40) {
+ if(yyaccept <= 39) {
+ goto yy590;
+ } else {
+ goto yy592;
+ }
+ } else {
+ if(yyaccept <= 41) {
+ goto yy595;
+ } else {
+ goto yy598;
+ }
+ }
+ } else {
+ if(yyaccept <= 44) {
+ if(yyaccept <= 43) {
+ goto yy600;
+ } else {
+ goto yy605;
+ }
+ } else {
+ goto yy607;
+ }
+ }
+ } else {
+ if(yyaccept <= 48) {
+ if(yyaccept <= 47) {
+ if(yyaccept <= 46) {
+ goto yy614;
+ } else {
+ goto yy623;
+ }
+ } else {
+ goto yy629;
+ }
+ } else {
+ if(yyaccept <= 50) {
+ if(yyaccept <= 49) {
+ goto yy633;
+ } else {
+ goto yy639;
+ }
+ } else {
+ goto yy645;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 77) {
+ if(yyaccept <= 64) {
+ if(yyaccept <= 58) {
+ if(yyaccept <= 55) {
+ if(yyaccept <= 53) {
+ if(yyaccept <= 52) {
+ goto yy649;
+ } else {
+ goto yy653;
+ }
+ } else {
+ if(yyaccept <= 54) {
+ goto yy661;
+ } else {
+ goto yy675;
+ }
+ }
+ } else {
+ if(yyaccept <= 57) {
+ if(yyaccept <= 56) {
+ goto yy681;
+ } else {
+ goto yy688;
+ }
+ } else {
+ goto yy697;
+ }
+ }
+ } else {
+ if(yyaccept <= 61) {
+ if(yyaccept <= 60) {
+ if(yyaccept <= 59) {
+ goto yy702;
+ } else {
+ goto yy705;
+ }
+ } else {
+ goto yy709;
+ }
+ } else {
+ if(yyaccept <= 63) {
+ if(yyaccept <= 62) {
+ goto yy716;
+ } else {
+ goto yy721;
+ }
+ } else {
+ goto yy725;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 71) {
+ if(yyaccept <= 68) {
+ if(yyaccept <= 66) {
+ if(yyaccept <= 65) {
+ goto yy727;
+ } else {
+ goto yy735;
+ }
+ } else {
+ if(yyaccept <= 67) {
+ goto yy742;
+ } else {
+ goto yy746;
+ }
+ }
+ } else {
+ if(yyaccept <= 70) {
+ if(yyaccept <= 69) {
+ goto yy748;
+ } else {
+ goto yy753;
+ }
+ } else {
+ goto yy757;
+ }
+ }
+ } else {
+ if(yyaccept <= 74) {
+ if(yyaccept <= 73) {
+ if(yyaccept <= 72) {
+ goto yy762;
+ } else {
+ goto yy766;
+ }
+ } else {
+ goto yy775;
+ }
+ } else {
+ if(yyaccept <= 76) {
+ if(yyaccept <= 75) {
+ goto yy777;
+ } else {
+ goto yy781;
+ }
+ } else {
+ goto yy785;
+ }
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 90) {
+ if(yyaccept <= 84) {
+ if(yyaccept <= 81) {
+ if(yyaccept <= 79) {
+ if(yyaccept <= 78) {
+ goto yy794;
+ } else {
+ goto yy799;
+ }
+ } else {
+ if(yyaccept <= 80) {
+ goto yy804;
+ } else {
+ goto yy807;
+ }
+ }
+ } else {
+ if(yyaccept <= 83) {
+ if(yyaccept <= 82) {
+ goto yy810;
+ } else {
+ goto yy813;
+ }
+ } else {
+ goto yy825;
+ }
+ }
+ } else {
+ if(yyaccept <= 87) {
+ if(yyaccept <= 86) {
+ if(yyaccept <= 85) {
+ goto yy830;
+ } else {
+ goto yy836;
+ }
+ } else {
+ goto yy841;
+ }
+ } else {
+ if(yyaccept <= 89) {
+ if(yyaccept <= 88) {
+ goto yy850;
+ } else {
+ goto yy857;
+ }
+ } else {
+ goto yy859;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 97) {
+ if(yyaccept <= 94) {
+ if(yyaccept <= 92) {
+ if(yyaccept <= 91) {
+ goto yy865;
+ } else {
+ goto yy869;
+ }
+ } else {
+ if(yyaccept <= 93) {
+ goto yy872;
+ } else {
+ goto yy877;
+ }
+ }
+ } else {
+ if(yyaccept <= 96) {
+ if(yyaccept <= 95) {
+ goto yy879;
+ } else {
+ goto yy886;
+ }
+ } else {
+ goto yy889;
+ }
+ }
+ } else {
+ if(yyaccept <= 100) {
+ if(yyaccept <= 99) {
+ if(yyaccept <= 98) {
+ goto yy894;
+ } else {
+ goto yy897;
+ }
+ } else {
+ goto yy903;
+ }
+ } else {
+ if(yyaccept <= 102) {
+ if(yyaccept <= 101) {
+ goto yy905;
+ } else {
+ goto yy907;
+ }
+ } else {
+ goto yy911;
+ }
+ }
+ }
+ }
+ }
+ }
+yy99:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy112;
+yy100:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '`') {
+ if(yych <= '7') {
+ if(yych <= '&') {
+ if(yych == '"') goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= '\'') goto yy96;
+ if(yych <= '/') goto yy98;
+ goto yy107;
+ }
+ } else {
+ if(yych <= 'T') {
+ if(yych == '?') goto yy105;
+ goto yy98;
+ } else {
+ if(yych <= 'U') goto yy104;
+ if(yych == '\\') goto yy96;
+ goto yy98;
+ }
+ }
+ } else {
+ if(yych <= 'r') {
+ if(yych <= 'f') {
+ if(yych <= 'b') goto yy96;
+ if(yych <= 'e') goto yy98;
+ goto yy96;
+ } else {
+ if(yych == 'n') goto yy96;
+ if(yych <= 'q') goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 's') goto yy98;
+ if(yych <= 't') goto yy96;
+ goto yy103;
+ } else {
+ if(yych <= 'v') goto yy96;
+ if(yych == 'x') goto yy106;
+ goto yy98;
+ }
+ }
+ }
+yy101:
+ ++YYCURSOR;
+yy102:
+#line 249 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1252 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy103:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy138;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy138;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy138;
+ goto yy98;
+ }
+yy104:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy131;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy131;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy131;
+ goto yy98;
+ }
+yy105:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy111;
+ goto yy100;
+yy106:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 64) {
+ goto yy109;
+ }
+ goto yy98;
+yy107:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '"') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '!') goto yy96;
+ goto yy101;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy96;
+ if(yych >= '8') goto yy96;
+ } else {
+ if(yych <= '?') goto yy99;
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy109:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 64) {
+ goto yy109;
+ }
+ if(yych <= '!') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= '?') {
+ if(yych <= '"') goto yy101;
+ if(yych <= '>') goto yy96;
+ goto yy99;
+ } else {
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+yy111:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych >= '\\') goto yy100;
+yy112:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 128) {
+ goto yy112;
+ }
+ if(yych <= '!') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= '/') {
+ if(yych <= '"') goto yy101;
+ if(yych <= '.') goto yy96;
+ } else {
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+yy114:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 1) {
+ goto yy114;
+ }
+ if(yych <= '7') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy118;
+ if(yych <= '/') goto yy96;
+ goto yy107;
+ }
+ }
+ } else {
+ if(yych <= 'U') {
+ if(yych == '?') goto yy119;
+ if(yych <= 'T') goto yy96;
+ goto yy117;
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 't') goto yy96;
+ } else {
+ if(yych == 'x') goto yy109;
+ goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ goto yy128;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ goto yy128;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych <= 'f') goto yy128;
+ goto yy96;
+ }
+ }
+ }
+yy117:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ goto yy121;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ goto yy121;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych <= 'f') goto yy121;
+ goto yy96;
+ }
+ }
+ }
+yy118:
+ yyaccept = 6;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy102;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy119:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych >= '\\') goto yy100;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 128) {
+ goto yy112;
+ }
+ if(yych <= '!') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= '/') {
+ if(yych <= '"') goto yy101;
+ if(yych <= '.') goto yy96;
+ goto yy114;
+ } else {
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+yy121:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy128:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy131:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy132;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy132:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy133;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy133:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy134;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy134:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy135;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy135:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy136;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy136:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy137;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy137:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy96;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy96;
+ goto yy98;
+ }
+yy138:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy139;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy139:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy140;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy140:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy96;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy96;
+ goto yy98;
+ }
+yy141:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy142:
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych >= '\\') goto yy144;
+yy143:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy156;
+yy144:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '`') {
+ if(yych <= '7') {
+ if(yych <= '&') {
+ if(yych == '"') goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= '\'') goto yy141;
+ if(yych <= '/') goto yy98;
+ goto yy149;
+ }
+ } else {
+ if(yych <= 'T') {
+ if(yych == '?') goto yy147;
+ goto yy98;
+ } else {
+ if(yych <= 'U') goto yy146;
+ if(yych == '\\') goto yy141;
+ goto yy98;
+ }
+ }
+ } else {
+ if(yych <= 'r') {
+ if(yych <= 'f') {
+ if(yych <= 'b') goto yy141;
+ if(yych <= 'e') goto yy98;
+ goto yy141;
+ } else {
+ if(yych == 'n') goto yy141;
+ if(yych <= 'q') goto yy98;
+ goto yy141;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 's') goto yy98;
+ if(yych <= 't') goto yy141;
+ } else {
+ if(yych <= 'v') goto yy141;
+ if(yych == 'x') goto yy148;
+ goto yy98;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy182;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy182;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy182;
+ goto yy98;
+ }
+yy146:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy175;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy175;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy175;
+ goto yy98;
+ }
+yy147:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy155;
+ goto yy144;
+yy148:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy153;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy153;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy153;
+ goto yy98;
+ }
+yy149:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '\'') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy141;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '&') goto yy141;
+ goto yy151;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy141;
+ if(yych >= '8') goto yy141;
+ } else {
+ if(yych <= '?') goto yy143;
+ if(yych == '\\') goto yy144;
+ goto yy141;
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy151:
+ ++YYCURSOR;
+yy152:
+#line 246 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 2099 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy153:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ goto yy153;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ goto yy153;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych <= 'f') goto yy153;
+ goto yy141;
+ }
+ }
+ }
+yy155:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych >= '\\') goto yy144;
+yy156:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '\'') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy141;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '&') goto yy141;
+ goto yy151;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych != '/') goto yy141;
+ } else {
+ if(yych <= '?') goto yy156;
+ if(yych == '\\') goto yy144;
+ goto yy141;
+ }
+ }
+yy158:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '>') {
+ if(yych <= 0x1F) {
+ if(yych <= 0x09) {
+ if(yych <= 0x08) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= 0x0A) goto yy98;
+ if(yych <= 0x0C) goto yy141;
+ goto yy98;
+ }
+ } else {
+ if(yych <= '\'') {
+ if(yych <= '&') goto yy141;
+ goto yy162;
+ } else {
+ if(yych <= '/') goto yy141;
+ if(yych <= '7') goto yy149;
+ goto yy141;
+ }
+ }
+ } else {
+ if(yych <= '\\') {
+ if(yych <= 'T') {
+ if(yych <= '?') goto yy163;
+ goto yy141;
+ } else {
+ if(yych <= 'U') goto yy161;
+ if(yych <= '[') goto yy141;
+ goto yy158;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 't') goto yy141;
+ } else {
+ if(yych == 'x') goto yy153;
+ goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ goto yy172;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ goto yy172;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych <= 'f') goto yy172;
+ goto yy141;
+ }
+ }
+ }
+yy161:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ goto yy165;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ goto yy165;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych <= 'f') goto yy165;
+ goto yy141;
+ }
+ }
+ }
+yy162:
+ yyaccept = 7;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy152;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy163:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych >= '\\') goto yy144;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '\'') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy141;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '&') goto yy141;
+ goto yy151;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych == '/') goto yy158;
+ goto yy141;
+ } else {
+ if(yych <= '?') goto yy156;
+ if(yych == '\\') goto yy144;
+ goto yy141;
+ }
+ }
+yy165:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy172:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy175:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy176;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy176:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy177;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy177:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy178;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy178:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy179;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy179:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy180;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy180:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy181;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy181:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy141;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy141;
+ goto yy98;
+ }
+yy182:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy183;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy183:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy184;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy184:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy141;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy141;
+ goto yy98;
+ }
+yy185:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy211;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy211;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy211;
+ goto yy98;
+ }
+yy186:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy187;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy187:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy188;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy188:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy189;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy189:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy190;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy190:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy191;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy191:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy192;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy192:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy193;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy193:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy194:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy195:
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych != '\\') goto yy9;
+yy196:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == 'U') goto yy200;
+ if(yych == 'u') goto yy199;
+ goto yy98;
+yy197:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych != '?') goto yy98;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '/') goto yy196;
+ goto yy98;
+yy199:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy208;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy208;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy208;
+ goto yy98;
+ }
+yy200:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy201;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy201:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy202;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy202:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy203;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy203:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy204;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy204:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy205;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy205:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy206;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy206:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy207;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy207:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy194;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy194;
+ goto yy98;
+ }
+yy208:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy209;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy209:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy210;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy210:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy194;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy194;
+ goto yy98;
+ }
+yy211:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy212;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy212:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy213;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy213:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy194;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy194;
+ goto yy98;
+ }
+yy214:
+ yych = *++YYCURSOR;
+ if(yych == '\'') goto yy98;
+ goto yy142;
+yy215:
+ ++YYCURSOR;
+#line 217 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_GREATEREQUAL); }
+#line 3029 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy217:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy219;
+#line 210 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+#line 3035 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy219:
+ ++YYCURSOR;
+#line 211 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+#line 3040 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy221:
+ ++YYCURSOR;
+#line 213 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_EQUAL); }
+#line 3045 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy223:
+ ++YYCURSOR;
+#line 214 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_NOTEQUAL); }
+#line 3050 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy225:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy230;
+ goto yy98;
+yy226:
+ ++YYCURSOR;
+#line 220 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OROR); }
+#line 3059 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy228:
+ ++YYCURSOR;
+#line 206 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN); }
+#line 3064 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy230:
+ yych = *++YYCURSOR;
+ if(yych != '!') goto yy98;
+ ++YYCURSOR;
+#line 222 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3071 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy233:
+ ++YYCURSOR;
+#line 218 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ANDAND); }
+#line 3076 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy235:
+ ++YYCURSOR;
+#line 204 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ANDASSIGN); }
+#line 3081 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy237:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 8;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@') {
+ if(yych <= '/') {
+ if(yych == '$') goto yy194;
+ } else {
+ if(yych <= '9') goto yy194;
+ if(yych == '?') goto yy197;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych <= 'Z') goto yy194;
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy240;
+ if(yych <= '`') goto yy239;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy239:
+#line 182 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+#line 3108 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy240:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 9;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy243:
+#line 202 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+#line 3126 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy244:
+ ++YYCURSOR;
+#line 201 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN); }
+#line 3131 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy246:
+ ++YYCURSOR;
+#line 198 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_STARASSIGN); }
+#line 3136 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy248:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '*') goto yy254;
+#line 238 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ARROW); }
+#line 3142 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy250:
+ ++YYCURSOR;
+#line 226 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_MINUSMINUS); }
+#line 3147 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy252:
+ ++YYCURSOR;
+#line 197 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_MINUSASSIGN); }
+#line 3152 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy254:
+ ++YYCURSOR;
+#line 229 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_ARROW);
+ }
+ else {
+ BOOST_WAVE_RET(T_ARROWSTAR);
+ }
+ }
+#line 3165 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy256:
+ ++YYCURSOR;
+#line 225 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PLUSPLUS); }
+#line 3170 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy258:
+ ++YYCURSOR;
+#line 196 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PLUSASSIGN); }
+#line 3175 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy260:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+ yych = *YYCURSOR;
+yy261:
+ if(yych <= 'h') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy260;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy260;
+ if(yych <= 0x1F) goto yy98;
+ goto yy260;
+ }
+ } else {
+ if(yych <= 'c') {
+ if(yych != '/') goto yy98;
+ } else {
+ if(yych <= 'd') goto yy269;
+ if(yych <= 'e') goto yy263;
+ goto yy98;
+ }
+ }
+ } else {
+ if(yych <= 'q') {
+ if(yych <= 'l') {
+ if(yych <= 'i') goto yy270;
+ if(yych <= 'k') goto yy98;
+ goto yy267;
+ } else {
+ if(yych == 'p') goto yy266;
+ goto yy98;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 'r') goto yy264;
+ if(yych <= 't') goto yy98;
+ goto yy268;
+ } else {
+ if(yych == 'w') goto yy265;
+ goto yy98;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '*') goto yy377;
+ goto yy98;
+yy263:
+ yych = *++YYCURSOR;
+ if(yych <= 'm') {
+ if(yych == 'l') goto yy353;
+ goto yy98;
+ } else {
+ if(yych <= 'n') goto yy354;
+ if(yych == 'r') goto yy355;
+ goto yy98;
+ }
+yy264:
+ yych = *++YYCURSOR;
+ if(yych == 'e') goto yy347;
+ goto yy98;
+yy265:
+ yych = *++YYCURSOR;
+ if(yych == 'a') goto yy340;
+ goto yy98;
+yy266:
+ yych = *++YYCURSOR;
+ if(yych == 'r') goto yy334;
+ goto yy98;
+yy267:
+ yych = *++YYCURSOR;
+ if(yych == 'i') goto yy330;
+ goto yy98;
+yy268:
+ yych = *++YYCURSOR;
+ if(yych == 'n') goto yy325;
+ goto yy98;
+yy269:
+ yych = *++YYCURSOR;
+ if(yych == 'e') goto yy319;
+ goto yy98;
+yy270:
+ yych = *++YYCURSOR;
+ if(yych == 'f') goto yy278;
+ if(yych == 'n') goto yy277;
+ goto yy98;
+yy271:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy274;
+ goto yy98;
+yy272:
+ ++YYCURSOR;
+#line 143 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND); }
+#line 3273 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy274:
+ yych = *++YYCURSOR;
+ if(yych != '=') goto yy98;
+ ++YYCURSOR;
+#line 144 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3280 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy277:
+ yych = *++YYCURSOR;
+ if(yych == 'c') goto yy289;
+ goto yy98;
+yy278:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy281;
+ if(yych == 'n') goto yy280;
+yy279:
+#line 261 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_IF); }
+#line 3293 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy280:
+ yych = *++YYCURSOR;
+ if(yych == 'd') goto yy285;
+ goto yy98;
+yy281:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ ++YYCURSOR;
+#line 262 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFDEF); }
+#line 3306 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy285:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ ++YYCURSOR;
+#line 263 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFNDEF); }
+#line 3315 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy289:
+ yych = *++YYCURSOR;
+ if(yych != 'l') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'u') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'd') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yyaccept = 11;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '_') goto yy295;
+ goto yy297;
+yy294:
+#line 259 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_INCLUDE); }
+#line 3332 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy295:
+ yych = *++YYCURSOR;
+ if(yych == 'n') goto yy316;
+ goto yy98;
+yy296:
+ yyaccept = 11;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+yy297:
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy296;
+ goto yy294;
+ } else {
+ if(yych <= 0x0C) goto yy296;
+ if(yych <= 0x1F) goto yy294;
+ goto yy296;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '"') goto yy300;
+ goto yy294;
+ } else {
+ if(yych <= '/') goto yy298;
+ if(yych == '<') goto yy299;
+ goto yy294;
+ }
+ }
+yy298:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '*') goto yy309;
+ goto yy98;
+yy299:
+ yych = *++YYCURSOR;
+ if(yych == '>') goto yy98;
+ goto yy306;
+yy300:
+ yych = *++YYCURSOR;
+ if(yych == '"') goto yy98;
+ goto yy302;
+yy301:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy302:
+ if(yybm[0+yych] & 8) {
+ goto yy301;
+ }
+ if(yych <= '!') goto yy98;
+ ++YYCURSOR;
+#line 256 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_QHEADER); }
+#line 3388 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy305:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy306:
+ if(yybm[0+yych] & 16) {
+ goto yy305;
+ }
+ if(yych <= '=') goto yy98;
+ ++YYCURSOR;
+#line 253 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_HHEADER); }
+#line 3401 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy309:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy309;
+ }
+ if(yych == 0x0D) goto yy311;
+ if(yych <= ')') goto yy98;
+ goto yy313;
+yy311:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy309;
+ }
+ if(yych == 0x0D) goto yy311;
+ if(yych <= ')') goto yy98;
+yy313:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy313;
+ }
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy309;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych == '/') goto yy296;
+ goto yy309;
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy309;
+ }
+ if(yych == 0x0D) goto yy311;
+ if(yych <= ')') goto yy98;
+ goto yy313;
+yy316:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'x') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych == 't') goto yy296;
+ goto yy98;
+yy319:
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ ++YYCURSOR;
+#line 267 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_DEFINE); }
+#line 3465 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy325:
+ yych = *++YYCURSOR;
+ if(yych != 'd') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ ++YYCURSOR;
+#line 268 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_UNDEF); }
+#line 3476 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy330:
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ ++YYCURSOR;
+#line 269 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_LINE); }
+#line 3485 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy334:
+ yych = *++YYCURSOR;
+ if(yych != 'a') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'm') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'a') goto yy98;
+ ++YYCURSOR;
+#line 271 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_PRAGMA); }
+#line 3498 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy340:
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ ++YYCURSOR;
+#line 273 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_WARNING); }
+#line 3513 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy347:
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'o') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ ++YYCURSOR;
+#line 275 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+#line 3526 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy353:
+ yych = *++YYCURSOR;
+ if(yych == 'i') goto yy371;
+ if(yych == 's') goto yy372;
+ goto yy98;
+yy354:
+ yych = *++YYCURSOR;
+ if(yych == 'd') goto yy360;
+ goto yy98;
+yy355:
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'o') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy98;
+ ++YYCURSOR;
+#line 270 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_ERROR); }
+#line 3546 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy360:
+ yych = *++YYCURSOR;
+ if(yych == 'i') goto yy361;
+ if(yych == 'r') goto yy362;
+ goto yy98;
+yy361:
+ yych = *++YYCURSOR;
+ if(yych == 'f') goto yy369;
+ goto yy98;
+yy362:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'o') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ ++YYCURSOR;
+#line 276 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+#line 3570 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy369:
+ ++YYCURSOR;
+#line 266 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_ENDIF); }
+#line 3575 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy371:
+ yych = *++YYCURSOR;
+ if(yych == 'f') goto yy375;
+ goto yy98;
+yy372:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ ++YYCURSOR;
+#line 264 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELSE); }
+#line 3586 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy375:
+ ++YYCURSOR;
+#line 265 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELIF); }
+#line 3591 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy377:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych == '*') goto yy381;
+ goto yy377;
+ }
+yy379:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ goto yy379;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych != '*') goto yy377;
+ }
+yy381:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x1F) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ if(yych >= 0x0E) goto yy98;
+ } else {
+ if(yych <= '*') {
+ if(yych <= ')') goto yy377;
+ goto yy381;
+ } else {
+ if(yych == '/') goto yy260;
+ goto yy377;
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ goto yy379;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych == '*') goto yy381;
+ goto yy377;
+ }
+yy384:
+ ++YYCURSOR;
+#line 155 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_COLON);
+ }
+ else {
+ BOOST_WAVE_RET(T_COLON_COLON);
+ }
+ }
+#line 3657 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy386:
+ ++YYCURSOR;
+#line 139 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+#line 3662 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy388:
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'e') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy261;
+ } else {
+ if(yych <= 0x0C) goto yy261;
+ if(yych >= ' ') goto yy261;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '%') goto yy394;
+ } else {
+ if(yych <= '/') goto yy261;
+ if(yych >= 'd') goto yy261;
+ }
+ }
+ } else {
+ if(yych <= 'p') {
+ if(yych <= 'k') {
+ if(yych == 'i') goto yy261;
+ } else {
+ if(yych <= 'l') goto yy261;
+ if(yych >= 'p') goto yy261;
+ }
+ } else {
+ if(yych <= 't') {
+ if(yych == 'r') goto yy261;
+ } else {
+ if(yych == 'v') goto yy389;
+ if(yych <= 'w') goto yy261;
+ }
+ }
+ }
+yy389:
+#line 141 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_ALT); }
+#line 3702 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy390:
+ ++YYCURSOR;
+#line 200 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+#line 3707 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy392:
+ ++YYCURSOR;
+#line 133 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+#line 3712 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy394:
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy98;
+ ++YYCURSOR;
+#line 147 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+#line 3719 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy397:
+ ++YYCURSOR;
+#line 216 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LESSEQUAL); }
+#line 3724 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy399:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy405;
+#line 209 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFT); }
+#line 3730 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy401:
+ ++YYCURSOR;
+#line 136 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+#line 3735 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy403:
+ ++YYCURSOR;
+#line 130 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+#line 3740 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy405:
+ ++YYCURSOR;
+#line 212 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+#line 3745 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy407:
+ yych = *++YYCURSOR;
+ switch(yych) {
+ case '!': goto yy420;
+ case '\'': goto yy418;
+ case '(': goto yy412;
+ case ')': goto yy414;
+ case '-': goto yy422;
+ case '/': goto yy424;
+ case '<': goto yy408;
+ case '=': goto yy416;
+ case '>': goto yy410;
+ default: goto yy98;
+ }
+yy408:
+ ++YYCURSOR;
+#line 129 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+#line 3764 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy410:
+ ++YYCURSOR;
+#line 132 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+#line 3769 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy412:
+ ++YYCURSOR;
+#line 135 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+#line 3774 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy414:
+ ++YYCURSOR;
+#line 138 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+#line 3779 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy416:
+ yyaccept = 13;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'c') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy261;
+ } else {
+ if(yych <= 0x0C) goto yy261;
+ if(yych >= ' ') goto yy261;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '#') goto yy437;
+ } else {
+ if(yych <= '/') goto yy261;
+ if(yych == '?') goto yy436;
+ }
+ }
+ } else {
+ if(yych <= 'p') {
+ if(yych <= 'i') {
+ if(yych <= 'e') goto yy261;
+ if(yych >= 'i') goto yy261;
+ } else {
+ if(yych == 'l') goto yy261;
+ if(yych >= 'p') goto yy261;
+ }
+ } else {
+ if(yych <= 't') {
+ if(yych == 'r') goto yy261;
+ } else {
+ if(yych == 'v') goto yy417;
+ if(yych <= 'w') goto yy261;
+ }
+ }
+ }
+yy417:
+#line 142 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+#line 3820 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy418:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy434;
+#line 181 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+#line 3826 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy420:
+ yyaccept = 14;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '>') {
+ if(yych == '=') goto yy429;
+ } else {
+ if(yych <= '?') goto yy426;
+ if(yych == '|') goto yy427;
+ }
+yy421:
+#line 187 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+#line 3839 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy422:
+ ++YYCURSOR;
+#line 189 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+#line 3844 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy424:
+ yyaccept = 15;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'U') goto yy186;
+ if(yych == 'u') goto yy185;
+yy425:
+#line 239 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+#line 3853 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy426:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy431;
+ goto yy98;
+yy427:
+ ++YYCURSOR;
+#line 221 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3862 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy429:
+ ++YYCURSOR;
+#line 208 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+#line 3867 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy431:
+ yych = *++YYCURSOR;
+ if(yych != '!') goto yy98;
+ ++YYCURSOR;
+#line 224 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3874 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy434:
+ ++YYCURSOR;
+#line 203 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+#line 3879 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy436:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy439;
+ goto yy98;
+yy437:
+ ++YYCURSOR;
+#line 145 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3888 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy439:
+ yych = *++YYCURSOR;
+ if(yych != '=') goto yy98;
+ ++YYCURSOR;
+#line 146 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3895 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy442:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case 'a': goto yy443;
+ case 'b': goto yy444;
+ case 'c': goto yy445;
+ case 'd': goto yy446;
+ case 'e': goto yy495;
+ case 'f': goto yy493;
+ case 'i': goto yy492;
+ case 'l': goto yy496;
+ case 's': goto yy449;
+ case 't': goto yy494;
+ default: goto yy195;
+ }
+yy443:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 's') goto yy489;
+ goto yy195;
+yy444:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy484;
+ goto yy195;
+yy445:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy479;
+ goto yy195;
+yy446:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy471;
+ goto yy195;
+yy447:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy463;
+ goto yy195;
+yy448:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy457;
+ goto yy195;
+yy449:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 16;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy456:
+#line 120 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+#line 3971 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy457:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+yy458:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 17;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy462:
+#line 125 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+#line 3996 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy463:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 18;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy470:
+#line 119 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+#line 4026 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy471:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 19;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy478:
+#line 117 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+#line 4056 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy479:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 20;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy483:
+#line 118 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+#line 4077 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy484:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 21;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy488:
+#line 116 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+#line 4098 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy489:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 22;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy491:
+#line 126 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+#line 4113 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy492:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy518;
+ goto yy195;
+yy493:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy463;
+ if(yych == 'i') goto yy511;
+ goto yy195;
+yy494:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy508;
+ goto yy195;
+yy495:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'x') goto yy502;
+ goto yy195;
+yy496:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'v') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy501:
+#line 124 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+#line 4158 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy502:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 24;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy507:
+#line 122 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+#line 4182 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy508:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'y') goto yy195;
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy510:
+#line 121 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+#line 4197 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy511:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'y') goto yy195;
+ yyaccept = 26;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy517:
+#line 123 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+#line 4224 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy518:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy458;
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case '1': goto yy520;
+ case '3': goto yy521;
+ case '6': goto yy522;
+ case '8': goto yy523;
+ default: goto yy195;
+ }
+yy520:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '6') goto yy529;
+ goto yy195;
+yy521:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '2') goto yy527;
+ goto yy195;
+yy522:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '4') goto yy525;
+ goto yy195;
+yy523:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy524:
+#line 112 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
+#line 4265 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy525:
+ yyaccept = 28;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy526:
+#line 115 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+#line 4277 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy527:
+ yyaccept = 29;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy528:
+#line 114 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+#line 4289 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy529:
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy530:
+#line 113 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+#line 4301 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy531:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'h') goto yy537;
+ goto yy195;
+yy532:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 31;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy536:
+#line 110 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_WHILE); }
+#line 4327 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy537:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != '_') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 32;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy542:
+#line 109 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_WCHART); }
+#line 4351 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy543:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy555;
+ goto yy195;
+yy544:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy545;
+ if(yych == 'l') goto yy546;
+ goto yy195;
+yy545:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy553;
+ goto yy195;
+yy546:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 33;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy552:
+#line 108 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_VOLATILE); }
+#line 4394 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy553:
+ yyaccept = 34;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy554:
+#line 107 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_VOID); }
+#line 4406 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy555:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 35;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy560:
+#line 106 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_VIRTUAL); }
+#line 4430 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy561:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy567;
+ if(yych == 's') goto yy568;
+ goto yy195;
+yy562:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'g') goto yy195;
+ yyaccept = 36;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy566:
+#line 105 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_USING); }
+#line 4457 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy567:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy575;
+ goto yy195;
+yy568:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'g') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 37;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy574:
+#line 104 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_UNSIGNED); }
+#line 4489 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy575:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 38;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy577:
+#line 103 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_UNION); }
+#line 4504 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy578:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'm') goto yy608;
+ goto yy195;
+yy579:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy601;
+ if(yych == 'r') goto yy602;
+ goto yy195;
+yy580:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'u') goto yy596;
+ if(yych == 'y') goto yy597;
+ goto yy195;
+yy581:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'h') {
+ if(yych != 'd') goto yy195;
+ } else {
+ if(yych <= 'i') goto yy585;
+ if(yych == 'n') goto yy586;
+ goto yy195;
+ }
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy593;
+ goto yy195;
+yy585:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy591;
+ goto yy195;
+yy586:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 39;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy590:
+#line 102 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_TYPENAME); }
+#line 4567 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy591:
+ yyaccept = 40;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy592:
+#line 101 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_TYPEID); }
+#line 4579 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy593:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'f') goto yy195;
+ yyaccept = 41;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy595:
+#line 100 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_TYPEDEF); }
+#line 4594 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy596:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy599;
+ goto yy195;
+yy597:
+ yyaccept = 42;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy598:
+#line 99 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_TRY); }
+#line 4611 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy599:
+ yyaccept = 43;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy600:
+#line 98 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_TRUE); }
+#line 4623 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy601:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 's') goto yy606;
+ goto yy195;
+yy602:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'w') goto yy195;
+ yyaccept = 44;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy605:
+#line 97 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_THROW); }
+#line 4646 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy606:
+ yyaccept = 45;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy607:
+#line 96 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_THIS); }
+#line 4658 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy608:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 46;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy614:
+#line 95 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_TEMPLATE); }
+#line 4685 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy615:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy650;
+ goto yy195;
+yy616:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'g') goto yy640;
+ if(yych == 'z') goto yy641;
+ goto yy195;
+yy617:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy624;
+ if(yych == 'r') goto yy625;
+ goto yy195;
+yy618:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'h') goto yy195;
+ yyaccept = 47;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy623:
+#line 94 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SWITCH); }
+#line 4726 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy624:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 't') goto yy630;
+ goto yy195;
+yy625:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 48;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy629:
+#line 93 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_STRUCT); }
+#line 4752 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy630:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 49;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@') {
+ if(yych <= '/') {
+ if(yych == '$') goto yy194;
+ } else {
+ if(yych <= '9') goto yy194;
+ if(yych == '?') goto yy197;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych <= 'Z') goto yy194;
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy634;
+ if(yych <= '`') goto yy633;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy633:
+#line 91 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_STATIC); }
+#line 4782 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy634:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 50;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy639:
+#line 92 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_STATICCAST); }
+#line 4806 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy640:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy646;
+ goto yy195;
+yy641:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'f') goto yy195;
+ yyaccept = 51;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy645:
+#line 90 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SIZEOF); }
+#line 4832 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy646:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 52;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy649:
+#line 89 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SIGNED); }
+#line 4850 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy650:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 53;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy653:
+#line 88 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_SHORT); }
+#line 4868 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy654:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'h') {
+ if(yych != 'g') goto yy195;
+ } else {
+ if(yych <= 'i') goto yy656;
+ if(yych == 't') goto yy657;
+ goto yy195;
+ }
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy676;
+ goto yy195;
+yy656:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy662;
+ goto yy195;
+yy657:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 54;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy661:
+#line 87 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_RETURN); }
+#line 4908 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy662:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != '_') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 55;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy675:
+#line 86 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+#line 4956 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy676:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 56;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy681:
+#line 85 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_REGISTER); }
+#line 4980 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy682:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy689;
+ if(yych == 'o') goto yy690;
+ goto yy195;
+yy683:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'b') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 57;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy688:
+#line 84 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PUBLIC); }
+#line 5010 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy689:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'v') goto yy698;
+ goto yy195;
+yy690:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 58;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy697:
+#line 83 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PROTECTED); }
+#line 5045 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy698:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 59;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy702:
+#line 82 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PRIVATE); }
+#line 5066 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy703:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy710;
+ goto yy195;
+yy704:
+ yyaccept = 60;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@') {
+ if(yych <= '/') {
+ if(yych == '$') goto yy194;
+ } else {
+ if(yych <= '9') goto yy194;
+ if(yych == '?') goto yy197;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych <= 'Z') goto yy194;
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy706;
+ if(yych <= '`') goto yy705;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy705:
+#line 223 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+#line 5095 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy706:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 61;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy709:
+#line 207 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+#line 5113 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy710:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 62;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy716:
+#line 81 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_OPERATOR); }
+#line 5140 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy717:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'm') goto yy728;
+ goto yy195;
+yy718:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'w') goto yy726;
+ goto yy195;
+yy719:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 63;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@') {
+ if(yych <= '/') {
+ if(yych == '$') goto yy194;
+ } else {
+ if(yych <= '9') goto yy194;
+ if(yych == '?') goto yy197;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych <= 'Z') goto yy194;
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy722;
+ if(yych <= '`') goto yy721;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy721:
+#line 192 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+#line 5177 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy722:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 64;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy725:
+#line 215 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+#line 5195 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy726:
+ yyaccept = 65;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy727:
+#line 80 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_NEW); }
+#line 5207 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy728:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 66;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy735:
+#line 79 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_NAMESPACE); }
+#line 5237 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy736:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'b') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 67;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy742:
+#line 78 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_MUTABLE); }
+#line 5264 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy743:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'g') goto yy195;
+ yyaccept = 68;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy746:
+#line 77 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LONG); }
+#line 5282 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy747:
+ yyaccept = 69;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy748:
+#line 73 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_IF); }
+#line 5294 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy749:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'p') goto yy758;
+ goto yy195;
+yy750:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy751;
+ if(yych == 't') goto yy752;
+ goto yy195;
+yy751:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy754;
+ goto yy195;
+yy752:
+ yyaccept = 70;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy753:
+#line 76 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_INT); }
+#line 5322 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy754:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 71;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy757:
+#line 75 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_INLINE); }
+#line 5340 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy758:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 72;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy762:
+#line 74 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+#line 5361 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy763:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 73;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy766:
+#line 72 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_GOTO); }
+#line 5379 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy767:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy782;
+ goto yy195;
+yy768:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy778;
+ goto yy195;
+yy769:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy776;
+ goto yy195;
+yy770:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 74;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy775:
+#line 71 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_FRIEND); }
+#line 5418 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy776:
+ yyaccept = 75;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy777:
+#line 70 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_FOR); }
+#line 5430 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy778:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 76;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy781:
+#line 69 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_FLOAT); }
+#line 5448 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy782:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 77;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy785:
+#line 68 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_FALSE); }
+#line 5466 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy786:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 's') goto yy808;
+ goto yy195;
+yy787:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'u') goto yy805;
+ goto yy195;
+yy788:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'p') goto yy789;
+ if(yych == 't') goto yy790;
+ goto yy195;
+yy789:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy795;
+ if(yych == 'o') goto yy796;
+ goto yy195;
+yy790:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 78;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy794:
+#line 67 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_EXTERN); }
+#line 5509 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy795:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy800;
+ goto yy195;
+yy796:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 79;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy799:
+#line 66 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_EXPORT); }
+#line 5532 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy800:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 80;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy804:
+#line 65 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_EXPLICIT); }
+#line 5553 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy805:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 81;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy807:
+#line 64 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ENUM); }
+#line 5568 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy808:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 82;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy810:
+#line 63 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ELSE); }
+#line 5583 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy811:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'f') goto yy831;
+ if(yych == 'l') goto yy832;
+ goto yy195;
+yy812:
+ yyaccept = 83;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '9') {
+ if(yych == '$') goto yy194;
+ if(yych >= '0') goto yy194;
+ } else {
+ if(yych == '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '_') {
+ if(yych == '\\') goto yy196;
+ if(yych >= '_') goto yy194;
+ } else {
+ if(yych <= 't') {
+ if(yych >= 'a') goto yy194;
+ } else {
+ if(yych <= 'u') goto yy826;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+ }
+yy813:
+#line 60 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DO); }
+#line 5617 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy814:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != '_') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 84;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy825:
+#line 62 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DYNAMICCAST); }
+#line 5659 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy826:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'b') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 85;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy830:
+#line 61 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DOUBLE); }
+#line 5680 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy831:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy837;
+ goto yy195;
+yy832:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 86;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy836:
+#line 59 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DELETE); }
+#line 5706 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy837:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 87;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy841:
+#line 58 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DEFAULT); }
+#line 5727 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy842:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'r') goto yy195;
+ if(yych <= 's') goto yy873;
+ if(yych <= 't') goto yy874;
+ goto yy195;
+yy843:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy870;
+ goto yy195;
+yy844:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy866;
+ goto yy195;
+yy845:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'l') goto yy195;
+ if(yych <= 'm') goto yy847;
+ if(yych >= 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'r') goto yy195;
+ if(yych <= 's') goto yy851;
+ if(yych <= 't') goto yy852;
+ goto yy195;
+yy847:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 88;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy850:
+#line 190 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+#line 5774 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy851:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 't') goto yy858;
+ goto yy195;
+yy852:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 89;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy857:
+#line 57 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CONTINUE); }
+#line 5803 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy858:
+ yyaccept = 90;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@') {
+ if(yych <= '/') {
+ if(yych == '$') goto yy194;
+ } else {
+ if(yych <= '9') goto yy194;
+ if(yych == '?') goto yy197;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych <= 'Z') goto yy194;
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy860;
+ if(yych <= '`') goto yy859;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy859:
+#line 55 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CONST); }
+#line 5827 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy860:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 91;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy865:
+#line 56 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CONSTCAST); }
+#line 5851 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy866:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 92;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy869:
+#line 54 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CLASS); }
+#line 5869 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy870:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 93;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy872:
+#line 53 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CHAR); }
+#line 5884 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy873:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy878;
+ goto yy195;
+yy874:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'h') goto yy195;
+ yyaccept = 94;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy877:
+#line 52 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CATCH); }
+#line 5907 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy878:
+ yyaccept = 95;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy879:
+#line 51 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CASE); }
+#line 5919 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy880:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 't') goto yy890;
+ goto yy195;
+yy881:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy887;
+ goto yy195;
+yy882:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'k') goto yy195;
+ yyaccept = 96;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy886:
+#line 50 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_BREAK); }
+#line 5950 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy887:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 97;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy889:
+#line 49 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_BOOL); }
+#line 5965 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy890:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy891;
+ if(yych == 'o') goto yy892;
+ goto yy195;
+yy891:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy895;
+ goto yy195;
+yy892:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 98;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy894:
+#line 186 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+#line 5991 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy895:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 99;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy897:
+#line 184 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+#line 6006 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy898:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy906;
+ goto yy195;
+yy899:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'm') goto yy904;
+ goto yy195;
+yy900:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 100;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy903:
+#line 48 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_AUTO); }
+#line 6034 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy904:
+ yyaccept = 101;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy905:
+#line 47 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ASM); }
+#line 6046 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy906:
+ yyaccept = 102;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@') {
+ if(yych <= '/') {
+ if(yych == '$') goto yy194;
+ } else {
+ if(yych <= '9') goto yy194;
+ if(yych == '?') goto yy197;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych <= 'Z') goto yy194;
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy908;
+ if(yych <= '`') goto yy907;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy907:
+#line 219 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+#line 6070 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy908:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 103;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy911:
+#line 205 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+#line 6088 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy912:
+ ++YYCURSOR;
+#line 166 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_DOT);
+ }
+ else {
+ BOOST_WAVE_RET(T_DOTSTAR);
+ }
+ }
+#line 6101 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy914:
+ yych = *++YYCURSOR;
+ if(yych == '.') goto yy916;
+ goto yy98;
+yy915:
+ yych = *++YYCURSOR;
+ goto yy7;
+yy916:
+ ++YYCURSOR;
+#line 152 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_ELLIPSIS); }
+#line 6113 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy918:
+ ++YYCURSOR;
+#line 199 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+#line 6118 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy920:
+ ++YYCURSOR;
+#line 44 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { goto cppcomment; }
+#line 6123 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy922:
+ ++YYCURSOR;
+#line 43 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { goto ccomment; }
+#line 6128 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ }
+}
+#line 308 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+
+ccomment:
+{
+
+#line 6137 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 0x0C) {
+ if(yych <= 0x08) {
+ if(yych <= 0x00) goto yy933;
+ goto yy935;
+ } else {
+ if(yych == 0x0A) goto yy928;
+ goto yy931;
+ }
+ } else {
+ if(yych <= 0x1F) {
+ if(yych <= 0x0D) goto yy930;
+ goto yy935;
+ } else {
+ if(yych != '*') goto yy932;
+ }
+ }
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '/') goto yy938;
+yy927:
+#line 323 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { goto ccomment; }
+#line 6163 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy928:
+ ++YYCURSOR;
+yy929:
+#line 315 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+ /*s->tok = cursor; */
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto ccomment;
+ }
+#line 6175 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy930:
+ yych = *++YYCURSOR;
+ if(yych == 0x0A) goto yy937;
+ goto yy929;
+yy931:
+ yych = *++YYCURSOR;
+ goto yy927;
+yy932:
+ yych = *++YYCURSOR;
+ goto yy927;
+yy933:
+ ++YYCURSOR;
+#line 326 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ if(cursor == s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C' style comment");
+ }
+ else
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
+ }
+ }
+#line 6204 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy935:
+ ++YYCURSOR;
+#line 343 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 6214 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy937:
+ yych = *++YYCURSOR;
+ goto yy929;
+yy938:
+ ++YYCURSOR;
+#line 312 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_CCOMMENT); }
+#line 6222 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ }
+}
+#line 349 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+
+cppcomment:
+{
+
+#line 6231 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 0x0A) {
+ if(yych <= 0x00) goto yy948;
+ if(yych <= 0x08) goto yy950;
+ if(yych <= 0x09) goto yy945;
+ } else {
+ if(yych <= 0x0C) goto yy945;
+ if(yych <= 0x0D) goto yy944;
+ if(yych <= 0x1F) goto yy950;
+ goto yy947;
+ }
+ ++YYCURSOR;
+yy943:
+#line 354 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+ /*s->tok = cursor; */
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 6256 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy944:
+ yych = *++YYCURSOR;
+ if(yych == 0x0A) goto yy952;
+ goto yy943;
+yy945:
+ ++YYCURSOR;
+yy946:
+#line 362 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { goto cppcomment; }
+#line 6266 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy947:
+ yych = *++YYCURSOR;
+ goto yy946;
+yy948:
+ ++YYCURSOR;
+#line 365 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+
+ --YYCURSOR; // next call returns T_EOF
+ if (!s->single_line_only)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
+ }
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 6291 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy950:
+ ++YYCURSOR;
+#line 385 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 6301 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy952:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy943;
+ }
+}
+#line 391 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+
+/* this subscanner is called whenever a pp_number has been started */
+pp_number:
+{
+ cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
+ marker = uchar_wrapper(s->ptr);
+ limit = uchar_wrapper(s->lim);
+
+ if (s->detect_pp_numbers) {
+ {
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 64, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 64, 0,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 0, 0, 0, 0, 0, 0,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 64,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
+#line 6355 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych == '.') goto yy956;
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy957;
+yy955:
+ YYCURSOR = YYMARKER;
+ goto yy959;
+yy956:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+yy957:
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 64) {
+ goto yy957;
+ }
+ if(yych <= 'Z') {
+ if(yych == '?') goto yy963;
+ if(yych >= 'A') goto yy960;
+ } else {
+ if(yych <= '\\') {
+ if(yych >= '\\') goto yy962;
+ } else {
+ if(yych == 'e') goto yy960;
+ }
+ }
+yy959:
+#line 403 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+#line 6390 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy960:
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy960;
+ }
+ if(yych <= '>') {
+ if(yych <= '+') {
+ if(yych == '$') goto yy957;
+ if(yych <= '*') goto yy959;
+ goto yy957;
+ } else {
+ if(yych <= '.') {
+ if(yych <= ',') goto yy959;
+ goto yy957;
+ } else {
+ if(yych <= '/') goto yy959;
+ if(yych <= '9') goto yy957;
+ goto yy959;
+ }
+ }
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '@') {
+ if(yych <= '?') goto yy963;
+ goto yy959;
+ } else {
+ if(yych <= 'Z') goto yy957;
+ if(yych <= '[') goto yy959;
+ }
+ } else {
+ if(yych <= '_') {
+ if(yych <= '^') goto yy959;
+ goto yy957;
+ } else {
+ if(yych <= '`') goto yy959;
+ if(yych <= 'z') goto yy957;
+ goto yy959;
+ }
+ }
+ }
+yy962:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == 'U') goto yy966;
+ if(yych == 'u') goto yy965;
+ goto yy955;
+yy963:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych != '?') goto yy955;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '/') goto yy962;
+ goto yy955;
+yy965:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy974;
+ goto yy955;
+ } else {
+ if(yych <= 'F') goto yy974;
+ if(yych <= '`') goto yy955;
+ if(yych <= 'f') goto yy974;
+ goto yy955;
+ }
+yy966:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy967;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy967:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy968;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy968:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy969;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy969:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy970;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy970:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy971;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy971:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy972;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy972:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy973;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy973:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy957;
+ goto yy955;
+ } else {
+ if(yych <= 'F') goto yy957;
+ if(yych <= '`') goto yy955;
+ if(yych <= 'f') goto yy957;
+ goto yy955;
+ }
+yy974:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy975;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy975:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy976;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy976:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy957;
+ goto yy955;
+ } else {
+ if(yych <= 'F') goto yy957;
+ if(yych <= '`') goto yy955;
+ if(yych <= 'f') goto yy957;
+ goto yy955;
+ }
+ }
+}
+#line 404 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+ }
+ else {
+ {
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 160, 160, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
+#line 6642 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ if(yych <= '/') {
+ if(yych == '.') goto yy984;
+ } else {
+ if(yych <= '0') goto yy980;
+ if(yych <= '9') goto yy982;
+ }
+yy979:
+ YYCURSOR = YYMARKER;
+ if(yyaccept <= 0) {
+ goto yy981;
+ } else {
+ goto yy987;
+ }
+yy980:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 64) {
+ goto yy999;
+ }
+ if(yych <= 'E') {
+ if(yych <= '/') {
+ if(yych == '.') goto yy985;
+ } else {
+ if(yych <= '9') goto yy1002;
+ if(yych >= 'E') goto yy995;
+ }
+ } else {
+ if(yych <= 'd') {
+ if(yych == 'X') goto yy1001;
+ } else {
+ if(yych <= 'e') goto yy995;
+ if(yych == 'x') goto yy1001;
+ }
+ }
+yy981:
+#line 411 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { goto integer_suffix; }
+#line 6685 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy982:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy982;
+ }
+ if(yych <= 'D') {
+ if(yych == '.') goto yy985;
+ goto yy981;
+ } else {
+ if(yych <= 'E') goto yy995;
+ if(yych == 'e') goto yy995;
+ goto yy981;
+ }
+yy984:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy979;
+ if(yych >= ':') goto yy979;
+yy985:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yych <= 'K') {
+ if(yych <= 'D') {
+ if(yych <= '/') goto yy987;
+ if(yych <= '9') goto yy985;
+ } else {
+ if(yych <= 'E') goto yy988;
+ if(yych <= 'F') goto yy989;
+ }
+ } else {
+ if(yych <= 'e') {
+ if(yych <= 'L') goto yy990;
+ if(yych >= 'e') goto yy988;
+ } else {
+ if(yych <= 'f') goto yy989;
+ if(yych == 'l') goto yy990;
+ }
+ }
+yy987:
+#line 409 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_FLOATLIT); }
+#line 6731 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy988:
+ yych = *++YYCURSOR;
+ if(yych <= ',') {
+ if(yych == '+') goto yy992;
+ goto yy979;
+ } else {
+ if(yych <= '-') goto yy992;
+ if(yych <= '/') goto yy979;
+ if(yych <= '9') goto yy993;
+ goto yy979;
+ }
+yy989:
+ yych = *++YYCURSOR;
+ if(yych == 'L') goto yy991;
+ if(yych == 'l') goto yy991;
+ goto yy987;
+yy990:
+ yych = *++YYCURSOR;
+ if(yych == 'F') goto yy991;
+ if(yych != 'f') goto yy987;
+yy991:
+ yych = *++YYCURSOR;
+ goto yy987;
+yy992:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy979;
+ if(yych >= ':') goto yy979;
+yy993:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 'K') {
+ if(yych <= '9') {
+ if(yych <= '/') goto yy987;
+ goto yy993;
+ } else {
+ if(yych == 'F') goto yy989;
+ goto yy987;
+ }
+ } else {
+ if(yych <= 'f') {
+ if(yych <= 'L') goto yy990;
+ if(yych <= 'e') goto yy987;
+ goto yy989;
+ } else {
+ if(yych == 'l') goto yy990;
+ goto yy987;
+ }
+ }
+yy995:
+ yych = *++YYCURSOR;
+ if(yych <= ',') {
+ if(yych != '+') goto yy979;
+ } else {
+ if(yych <= '-') goto yy996;
+ if(yych <= '/') goto yy979;
+ if(yych <= '9') goto yy997;
+ goto yy979;
+ }
+yy996:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy979;
+ if(yych >= ':') goto yy979;
+yy997:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 'K') {
+ if(yych <= '9') {
+ if(yych <= '/') goto yy987;
+ goto yy997;
+ } else {
+ if(yych == 'F') goto yy989;
+ goto yy987;
+ }
+ } else {
+ if(yych <= 'f') {
+ if(yych <= 'L') goto yy990;
+ if(yych <= 'e') goto yy987;
+ goto yy989;
+ } else {
+ if(yych == 'l') goto yy990;
+ goto yy987;
+ }
+ }
+yy999:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 64) {
+ goto yy999;
+ }
+ if(yych <= '9') {
+ if(yych == '.') goto yy985;
+ if(yych <= '/') goto yy981;
+ goto yy1002;
+ } else {
+ if(yych <= 'E') {
+ if(yych <= 'D') goto yy981;
+ goto yy995;
+ } else {
+ if(yych == 'e') goto yy995;
+ goto yy981;
+ }
+ }
+yy1001:
+ yych = *++YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy1004;
+ }
+ goto yy979;
+yy1002:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych == '.') goto yy985;
+ if(yych <= '/') goto yy979;
+ goto yy1002;
+ } else {
+ if(yych <= 'E') {
+ if(yych <= 'D') goto yy979;
+ goto yy995;
+ } else {
+ if(yych == 'e') goto yy995;
+ goto yy979;
+ }
+ }
+yy1004:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy1004;
+ }
+ goto yy981;
+ }
+}
+#line 412 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+ }
+}
+
+/* this subscanner is called, whenever a Integer was recognized */
+integer_suffix:
+{
+ if (s->enable_ms_extensions) {
+ {
+
+#line 6882 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *(YYMARKER = YYCURSOR);
+ if(yych <= 'h') {
+ if(yych <= 'L') {
+ if(yych >= 'L') goto yy1010;
+ } else {
+ if(yych == 'U') goto yy1009;
+ }
+ } else {
+ if(yych <= 'l') {
+ if(yych <= 'i') goto yy1011;
+ if(yych >= 'l') goto yy1010;
+ } else {
+ if(yych == 'u') goto yy1009;
+ }
+ }
+yy1008:
+#line 425 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6904 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy1009:
+ yych = *++YYCURSOR;
+ if(yych == 'L') goto yy1018;
+ if(yych == 'l') goto yy1018;
+ goto yy1008;
+yy1010:
+ yych = *++YYCURSOR;
+ if(yych <= 'U') {
+ if(yych == 'L') goto yy1017;
+ if(yych <= 'T') goto yy1008;
+ goto yy1016;
+ } else {
+ if(yych <= 'l') {
+ if(yych <= 'k') goto yy1008;
+ goto yy1017;
+ } else {
+ if(yych == 'u') goto yy1016;
+ goto yy1008;
+ }
+ }
+yy1011:
+ yych = *++YYCURSOR;
+ if(yych == '6') goto yy1013;
+yy1012:
+ YYCURSOR = YYMARKER;
+ goto yy1008;
+yy1013:
+ yych = *++YYCURSOR;
+ if(yych != '4') goto yy1012;
+yy1014:
+ ++YYCURSOR;
+yy1015:
+#line 422 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6939 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy1016:
+ yych = *++YYCURSOR;
+ goto yy1008;
+yy1017:
+ yych = *++YYCURSOR;
+ if(yych == 'U') goto yy1014;
+ if(yych == 'u') goto yy1014;
+ goto yy1015;
+yy1018:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == 'L') goto yy1014;
+ if(yych == 'l') goto yy1014;
+ goto yy1008;
+ }
+}
+#line 426 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+ }
+ else {
+ {
+
+#line 6961 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yych <= 'U') {
+ if(yych == 'L') goto yy1023;
+ if(yych >= 'U') goto yy1022;
+ } else {
+ if(yych <= 'l') {
+ if(yych >= 'l') goto yy1023;
+ } else {
+ if(yych == 'u') goto yy1022;
+ }
+ }
+yy1021:
+#line 434 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6979 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy1022:
+ yych = *++YYCURSOR;
+ if(yych == 'L') goto yy1028;
+ if(yych == 'l') goto yy1028;
+ goto yy1021;
+yy1023:
+ yych = *++YYCURSOR;
+ if(yych <= 'U') {
+ if(yych == 'L') goto yy1025;
+ if(yych <= 'T') goto yy1021;
+ } else {
+ if(yych <= 'l') {
+ if(yych <= 'k') goto yy1021;
+ goto yy1025;
+ } else {
+ if(yych != 'u') goto yy1021;
+ }
+ }
+ yych = *++YYCURSOR;
+ goto yy1021;
+yy1025:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == 'U') goto yy1027;
+ if(yych == 'u') goto yy1027;
+yy1026:
+#line 431 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 7007 "..\\..\\src\\cpplexer\\re2clex\\cpp_re.inc"
+yy1027:
+ yych = *++YYCURSOR;
+ goto yy1026;
+yy1028:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == 'L') goto yy1027;
+ if(yych == 'l') goto yy1027;
+ goto yy1021;
+ }
+}
+#line 435 "..\\..\\src\\cpplexer\\re2clex\\cpp.re"
+
+ }
+}
==============================================================================
--- branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp.re (original)
+++ branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp.re 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -290,7 +290,8 @@
if (s->eof && cursor != s->eof)
{
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
}
BOOST_WAVE_RET(T_EOF);
}
@@ -301,8 +302,8 @@
{
// flag the error
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
}
*/
@@ -326,13 +327,15 @@
if(cursor == s->eof)
{
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "unterminated 'C' style comment");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "unterminated 'C' style comment");
}
else
{
--YYCURSOR; // next call returns T_EOF
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character: '\\000' in input stream");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
}
}
@@ -340,8 +343,8 @@
{
// flag the error
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
}
*/
@@ -364,14 +367,16 @@
{
--YYCURSOR; // next call returns T_EOF
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
}
--YYCURSOR; // next call returns T_EOF
if (!s->single_line_only)
{
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "Unterminated 'C++' style comment");
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
}
BOOST_WAVE_RET(T_CPPCOMMENT);
}
@@ -380,8 +385,8 @@
{
// flag the error
BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
}
*/
==============================================================================
--- branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc (original)
+++ branches/bcbboost/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,7003 +1,7008 @@
-/* Generated by re2c 0.12.1 on Thu Jul 05 09:25:53 2007 */
-#line 1 "strict_cpp.re"
-/*=============================================================================
- Boost.Wave: A Standard compliant C++ preprocessor library
-
- Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
- This is a strict lexer conforming to the Standard as close as possible.
- It does not allow the '$' to be part of identifiers. If you need the '$'
- character in identifiers please include the lexer definition provided
- in the cpp.re file.
-
- TODO:
- handle errors better.
-=============================================================================*/
-
-#line 40 "strict_cpp.re"
-
-
-{
- static const unsigned char yybm[] = {
- /* table 1 .. 8: 0 */
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 32, 58, 58, 64, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 58, 58, 50, 58, 58, 58, 58, 56,
- 58, 58, 154, 58, 58, 58, 58, 58,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 58, 58, 58, 58, 42, 56,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 57, 58, 58, 62,
- 58, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 58, 58, 58, 58, 58,
- /* table 9 .. 12: 256 */
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 48, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 48, 32, 0, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 32, 32, 32, 32, 32, 128,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 0, 32, 32, 32,
- 32, 96, 96, 96, 96, 96, 96, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- };
-
-#line 94 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
-
- if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
- yych = *YYCURSOR;
- switch(yych) {
- case 0x00: goto yy88;
- case 0x01:
- case 0x02:
- case 0x03:
- case 0x04:
- case 0x05:
- case 0x06:
- case 0x07:
- case 0x08:
- case 0x0E:
- case 0x0F:
- case 0x10:
- case 0x11:
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- case 0x18:
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- case 0x1F: goto yy91;
- case 0x09:
- case 0x0B:
- case 0x0C: goto yy82;
- case 0x0A: goto yy85;
- case 0x0D: goto yy87;
- case ' ': goto yy84;
- case '!': goto yy68;
- case '"': goto yy81;
- case '#': goto yy45;
- case '%': goto yy37;
- case '&': goto yy62;
- case '\'': goto yy80;
- case '(': goto yy47;
- case ')': goto yy49;
- case '*': goto yy57;
- case '+': goto yy53;
- case ',': goto yy74;
- case '-': goto yy55;
- case '.': goto yy4;
- case '/': goto yy2;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy6;
- case ':': goto yy43;
- case ';': goto yy51;
- case '<': goto yy33;
- case '=': goto yy70;
- case '>': goto yy72;
- case '?': goto yy31;
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case 'h':
- case 'j':
- case 'k':
- case 'q':
- case 'y':
- case 'z': goto yy76;
- case 'L': goto yy77;
- case '[': goto yy39;
- case '\\': goto yy78;
- case ']': goto yy41;
- case '^': goto yy59;
- case '_': goto yy28;
- case 'a': goto yy8;
- case 'b': goto yy10;
- case 'c': goto yy11;
- case 'd': goto yy12;
- case 'e': goto yy13;
- case 'f': goto yy14;
- case 'g': goto yy15;
- case 'i': goto yy16;
- case 'l': goto yy17;
- case 'm': goto yy18;
- case 'n': goto yy19;
- case 'o': goto yy20;
- case 'p': goto yy21;
- case 'r': goto yy22;
- case 's': goto yy23;
- case 't': goto yy24;
- case 'u': goto yy25;
- case 'v': goto yy26;
- case 'w': goto yy27;
- case 'x': goto yy61;
- case '{': goto yy29;
- case '|': goto yy64;
- case '}': goto yy35;
- case '~': goto yy66;
- default: goto yy90;
- }
-yy2:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '.') {
- if(yych == '*') goto yy922;
- } else {
- if(yych <= '/') goto yy920;
- if(yych == '=') goto yy918;
- }
-#line 178 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DIVIDE); }
-#line 238 "strict_cpp_re.inc"
-yy4:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-') {
- if(yych == '*') goto yy912;
- } else {
- if(yych <= '.') goto yy914;
- if(yych <= '/') goto yy5;
- if(yych <= '9') goto yy915;
- }
-yy5:
-#line 164 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DOT); }
-#line 252 "strict_cpp_re.inc"
-yy6:
- ++YYCURSOR;
-yy7:
-#line 45 "strict_cpp.re"
- { goto pp_number; }
-#line 258 "strict_cpp_re.inc"
-yy8:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'r') {
- if(yych == 'n') goto yy898;
- goto yy195;
- } else {
- if(yych <= 's') goto yy899;
- if(yych == 'u') goto yy900;
- goto yy195;
- }
-yy9:
-#line 243 "strict_cpp.re"
- { BOOST_WAVE_RET(T_IDENTIFIER); }
-#line 273 "strict_cpp_re.inc"
-yy10:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'n') {
- if(yych == 'i') goto yy880;
- goto yy195;
- } else {
- if(yych <= 'o') goto yy881;
- if(yych == 'r') goto yy882;
- goto yy195;
- }
-yy11:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case 'a': goto yy842;
- case 'h': goto yy843;
- case 'l': goto yy844;
- case 'o': goto yy845;
- default: goto yy195;
- }
-yy12:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'n') {
- if(yych == 'e') goto yy811;
- goto yy195;
- } else {
- if(yych <= 'o') goto yy812;
- if(yych == 'y') goto yy814;
- goto yy195;
- }
-yy13:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'm') {
- if(yych == 'l') goto yy786;
- goto yy195;
- } else {
- if(yych <= 'n') goto yy787;
- if(yych == 'x') goto yy788;
- goto yy195;
- }
-yy14:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case 'a': goto yy767;
- case 'l': goto yy768;
- case 'o': goto yy769;
- case 'r': goto yy770;
- default: goto yy195;
- }
-yy15:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy763;
- goto yy195;
-yy16:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'l') {
- if(yych == 'f') goto yy747;
- goto yy195;
- } else {
- if(yych <= 'm') goto yy749;
- if(yych <= 'n') goto yy750;
- goto yy195;
- }
-yy17:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy743;
- goto yy195;
-yy18:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'u') goto yy736;
- goto yy195;
-yy19:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'd') {
- if(yych == 'a') goto yy717;
- goto yy195;
- } else {
- if(yych <= 'e') goto yy718;
- if(yych == 'o') goto yy719;
- goto yy195;
- }
-yy20:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'p') goto yy703;
- if(yych == 'r') goto yy704;
- goto yy195;
-yy21:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy682;
- if(yych == 'u') goto yy683;
- goto yy195;
-yy22:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy654;
- goto yy195;
-yy23:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 's') {
- if(yych <= 'g') goto yy195;
- if(yych <= 'h') goto yy615;
- if(yych <= 'i') goto yy616;
- goto yy195;
- } else {
- if(yych <= 't') goto yy617;
- if(yych == 'w') goto yy618;
- goto yy195;
- }
-yy24:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'h') {
- if(yych == 'e') goto yy578;
- if(yych <= 'g') goto yy195;
- goto yy579;
- } else {
- if(yych <= 'r') {
- if(yych <= 'q') goto yy195;
- goto yy580;
- } else {
- if(yych == 'y') goto yy581;
- goto yy195;
- }
- }
-yy25:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy561;
- if(yych == 's') goto yy562;
- goto yy195;
-yy26:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy543;
- if(yych == 'o') goto yy544;
- goto yy195;
-yy27:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'c') goto yy531;
- if(yych == 'h') goto yy532;
- goto yy195;
-yy28:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case '_': goto yy442;
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'f': goto yy447;
- case 'i': goto yy448;
- case 's': goto yy449;
- default: goto yy195;
- }
-yy29:
- ++YYCURSOR;
-#line 128 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACE); }
-#line 446 "strict_cpp_re.inc"
-yy31:
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '?') goto yy407;
-yy32:
-#line 153 "strict_cpp.re"
- { BOOST_WAVE_RET(T_QUESTION_MARK); }
-#line 454 "strict_cpp_re.inc"
-yy33:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= ':') {
- if(yych == '%') goto yy403;
- if(yych >= ':') goto yy401;
- } else {
- if(yych <= ';') goto yy34;
- if(yych <= '<') goto yy399;
- if(yych <= '=') goto yy397;
- }
-yy34:
-#line 194 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LESS); }
-#line 468 "strict_cpp_re.inc"
-yy35:
- ++YYCURSOR;
-#line 131 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACE); }
-#line 473 "strict_cpp_re.inc"
-yy37:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '<') {
- if(yych == ':') goto yy388;
- } else {
- if(yych <= '=') goto yy390;
- if(yych <= '>') goto yy392;
- }
-#line 179 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PERCENT); }
-#line 484 "strict_cpp_re.inc"
-yy39:
- ++YYCURSOR;
-#line 134 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACKET); }
-#line 489 "strict_cpp_re.inc"
-yy41:
- ++YYCURSOR;
-#line 137 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACKET); }
-#line 494 "strict_cpp_re.inc"
-yy43:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == ':') goto yy384;
- if(yych == '>') goto yy386;
-#line 151 "strict_cpp.re"
- { BOOST_WAVE_RET(T_COLON); }
-#line 501 "strict_cpp_re.inc"
-yy45:
- yyaccept = 3;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'c') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy261;
- } else {
- if(yych <= 0x0C) goto yy261;
- if(yych >= ' ') goto yy261;
- }
- } else {
- if(yych <= '.') {
- if(yych == '#') goto yy272;
- } else {
- if(yych <= '/') goto yy261;
- if(yych == '?') goto yy271;
- }
- }
- } else {
- if(yych <= 'p') {
- if(yych <= 'i') {
- if(yych <= 'e') goto yy261;
- if(yych >= 'i') goto yy261;
- } else {
- if(yych == 'l') goto yy261;
- if(yych >= 'p') goto yy261;
- }
- } else {
- if(yych <= 't') {
- if(yych == 'r') goto yy261;
- } else {
- if(yych == 'v') goto yy46;
- if(yych <= 'w') goto yy261;
- }
- }
- }
-yy46:
-#line 140 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND); }
-#line 542 "strict_cpp_re.inc"
-yy47:
- ++YYCURSOR;
-#line 148 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTPAREN); }
-#line 547 "strict_cpp_re.inc"
-yy49:
- ++YYCURSOR;
-#line 149 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTPAREN); }
-#line 552 "strict_cpp_re.inc"
-yy51:
- ++YYCURSOR;
-#line 150 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SEMICOLON); }
-#line 557 "strict_cpp_re.inc"
-yy53:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '+') goto yy256;
- if(yych == '=') goto yy258;
-#line 175 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PLUS); }
-#line 564 "strict_cpp_re.inc"
-yy55:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '<') {
- if(yych == '-') goto yy250;
- } else {
- if(yych <= '=') goto yy252;
- if(yych <= '>') goto yy248;
- }
-#line 176 "strict_cpp.re"
- { BOOST_WAVE_RET(T_MINUS); }
-#line 575 "strict_cpp_re.inc"
-yy57:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy246;
-#line 177 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STAR); }
-#line 581 "strict_cpp_re.inc"
-yy59:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy244;
-#line 180 "strict_cpp.re"
- { BOOST_WAVE_RET(T_XOR); }
-#line 587 "strict_cpp_re.inc"
-yy61:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy237;
- goto yy195;
-yy62:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '&') goto yy233;
- if(yych == '=') goto yy235;
-#line 183 "strict_cpp.re"
- { BOOST_WAVE_RET(T_AND); }
-#line 599 "strict_cpp_re.inc"
-yy64:
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '>') {
- if(yych == '=') goto yy228;
- } else {
- if(yych <= '?') goto yy225;
- if(yych == '|') goto yy226;
- }
-yy65:
-#line 185 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OR); }
-#line 612 "strict_cpp_re.inc"
-yy66:
- ++YYCURSOR;
-#line 188 "strict_cpp.re"
- { BOOST_WAVE_RET(T_COMPL); }
-#line 617 "strict_cpp_re.inc"
-yy68:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy223;
-#line 191 "strict_cpp.re"
- { BOOST_WAVE_RET(T_NOT); }
-#line 623 "strict_cpp_re.inc"
-yy70:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy221;
-#line 193 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ASSIGN); }
-#line 629 "strict_cpp_re.inc"
-yy72:
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= '<') goto yy73;
- if(yych <= '=') goto yy215;
- if(yych <= '>') goto yy217;
-yy73:
-#line 195 "strict_cpp.re"
- { BOOST_WAVE_RET(T_GREATER); }
-#line 638 "strict_cpp_re.inc"
-yy74:
- ++YYCURSOR;
-#line 227 "strict_cpp.re"
- { BOOST_WAVE_RET(T_COMMA); }
-#line 643 "strict_cpp_re.inc"
-yy76:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy195;
-yy77:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych <= '\'') {
- if(yych == '"') goto yy96;
- if(yych <= '&') goto yy9;
- goto yy214;
- } else {
- if(yych <= '?') {
- if(yych <= '>') goto yy9;
- goto yy197;
- } else {
- if(yych == '\\') goto yy196;
- goto yy9;
- }
- }
-yy78:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy186;
- if(yych == 'u') goto yy185;
-yy79:
-#line 298 "strict_cpp.re"
- { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
-#line 675 "strict_cpp_re.inc"
-yy80:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy142;
- if(yych <= 0x0A) goto yy79;
- goto yy142;
- } else {
- if(yych <= 0x1F) goto yy79;
- if(yych == '\'') goto yy79;
- goto yy142;
- }
-yy81:
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy97;
- goto yy79;
- } else {
- if(yych <= 0x0C) goto yy97;
- if(yych <= 0x1F) goto yy79;
- goto yy97;
- }
-yy82:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy95;
-yy83:
-#line 279 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SPACE); }
-#line 706 "strict_cpp_re.inc"
-yy84:
- yych = *++YYCURSOR;
- goto yy95;
-yy85:
- ++YYCURSOR;
-yy86:
-#line 282 "strict_cpp.re"
- {
- s->line++;
- cursor.column = 1;
- BOOST_WAVE_RET(T_NEWLINE);
- }
-#line 719 "strict_cpp_re.inc"
-yy87:
- yych = *++YYCURSOR;
- if(yych == 0x0A) goto yy93;
- goto yy86;
-yy88:
- ++YYCURSOR;
-#line 289 "strict_cpp.re"
- {
- if (s->eof && cursor != s->eof)
- {
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
- }
- BOOST_WAVE_RET(T_EOF);
- }
-#line 735 "strict_cpp_re.inc"
-yy90:
- yych = *++YYCURSOR;
- goto yy79;
-yy91:
- ++YYCURSOR;
-#line 301 "strict_cpp.re"
- {
- // flag the error
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
- }
-#line 748 "strict_cpp_re.inc"
-yy93:
- yych = *++YYCURSOR;
- goto yy86;
-yy94:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy95:
- if(yybm[256+yych] & 16) {
- goto yy94;
- }
- goto yy83;
-yy96:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy97:
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy98:
- YYCURSOR = YYMARKER;
- if(yyaccept <= 51) {
- if(yyaccept <= 25) {
- if(yyaccept <= 12) {
- if(yyaccept <= 6) {
- if(yyaccept <= 3) {
- if(yyaccept <= 1) {
- if(yyaccept <= 0) {
- goto yy5;
- } else {
- goto yy9;
- }
- } else {
- if(yyaccept <= 2) {
- goto yy32;
- } else {
- goto yy46;
- }
- }
- } else {
- if(yyaccept <= 5) {
- if(yyaccept <= 4) {
- goto yy65;
- } else {
- goto yy79;
- }
- } else {
- goto yy102;
- }
- }
- } else {
- if(yyaccept <= 9) {
- if(yyaccept <= 8) {
- if(yyaccept <= 7) {
- goto yy152;
- } else {
- goto yy239;
- }
- } else {
- goto yy243;
- }
- } else {
- if(yyaccept <= 11) {
- if(yyaccept <= 10) {
- goto yy279;
- } else {
- goto yy294;
- }
- } else {
- goto yy389;
- }
- }
- }
- } else {
- if(yyaccept <= 19) {
- if(yyaccept <= 16) {
- if(yyaccept <= 14) {
- if(yyaccept <= 13) {
- goto yy417;
- } else {
- goto yy421;
- }
- } else {
- if(yyaccept <= 15) {
- goto yy425;
- } else {
- goto yy456;
- }
- }
- } else {
- if(yyaccept <= 18) {
- if(yyaccept <= 17) {
- goto yy462;
- } else {
- goto yy470;
- }
- } else {
- goto yy478;
- }
- }
- } else {
- if(yyaccept <= 22) {
- if(yyaccept <= 21) {
- if(yyaccept <= 20) {
- goto yy483;
- } else {
- goto yy488;
- }
- } else {
- goto yy491;
- }
- } else {
- if(yyaccept <= 24) {
- if(yyaccept <= 23) {
- goto yy501;
- } else {
- goto yy507;
- }
- } else {
- goto yy510;
- }
- }
- }
- }
- } else {
- if(yyaccept <= 38) {
- if(yyaccept <= 32) {
- if(yyaccept <= 29) {
- if(yyaccept <= 27) {
- if(yyaccept <= 26) {
- goto yy517;
- } else {
- goto yy524;
- }
- } else {
- if(yyaccept <= 28) {
- goto yy526;
- } else {
- goto yy528;
- }
- }
- } else {
- if(yyaccept <= 31) {
- if(yyaccept <= 30) {
- goto yy530;
- } else {
- goto yy536;
- }
- } else {
- goto yy542;
- }
- }
- } else {
- if(yyaccept <= 35) {
- if(yyaccept <= 34) {
- if(yyaccept <= 33) {
- goto yy552;
- } else {
- goto yy554;
- }
- } else {
- goto yy560;
- }
- } else {
- if(yyaccept <= 37) {
- if(yyaccept <= 36) {
- goto yy566;
- } else {
- goto yy574;
- }
- } else {
- goto yy577;
- }
- }
- }
- } else {
- if(yyaccept <= 45) {
- if(yyaccept <= 42) {
- if(yyaccept <= 40) {
- if(yyaccept <= 39) {
- goto yy590;
- } else {
- goto yy592;
- }
- } else {
- if(yyaccept <= 41) {
- goto yy595;
- } else {
- goto yy598;
- }
- }
- } else {
- if(yyaccept <= 44) {
- if(yyaccept <= 43) {
- goto yy600;
- } else {
- goto yy605;
- }
- } else {
- goto yy607;
- }
- }
- } else {
- if(yyaccept <= 48) {
- if(yyaccept <= 47) {
- if(yyaccept <= 46) {
- goto yy614;
- } else {
- goto yy623;
- }
- } else {
- goto yy629;
- }
- } else {
- if(yyaccept <= 50) {
- if(yyaccept <= 49) {
- goto yy633;
- } else {
- goto yy639;
- }
- } else {
- goto yy645;
- }
- }
- }
- }
- }
- } else {
- if(yyaccept <= 77) {
- if(yyaccept <= 64) {
- if(yyaccept <= 58) {
- if(yyaccept <= 55) {
- if(yyaccept <= 53) {
- if(yyaccept <= 52) {
- goto yy649;
- } else {
- goto yy653;
- }
- } else {
- if(yyaccept <= 54) {
- goto yy661;
- } else {
- goto yy675;
- }
- }
- } else {
- if(yyaccept <= 57) {
- if(yyaccept <= 56) {
- goto yy681;
- } else {
- goto yy688;
- }
- } else {
- goto yy697;
- }
- }
- } else {
- if(yyaccept <= 61) {
- if(yyaccept <= 60) {
- if(yyaccept <= 59) {
- goto yy702;
- } else {
- goto yy705;
- }
- } else {
- goto yy709;
- }
- } else {
- if(yyaccept <= 63) {
- if(yyaccept <= 62) {
- goto yy716;
- } else {
- goto yy721;
- }
- } else {
- goto yy725;
- }
- }
- }
- } else {
- if(yyaccept <= 71) {
- if(yyaccept <= 68) {
- if(yyaccept <= 66) {
- if(yyaccept <= 65) {
- goto yy727;
- } else {
- goto yy735;
- }
- } else {
- if(yyaccept <= 67) {
- goto yy742;
- } else {
- goto yy746;
- }
- }
- } else {
- if(yyaccept <= 70) {
- if(yyaccept <= 69) {
- goto yy748;
- } else {
- goto yy753;
- }
- } else {
- goto yy757;
- }
- }
- } else {
- if(yyaccept <= 74) {
- if(yyaccept <= 73) {
- if(yyaccept <= 72) {
- goto yy762;
- } else {
- goto yy766;
- }
- } else {
- goto yy775;
- }
- } else {
- if(yyaccept <= 76) {
- if(yyaccept <= 75) {
- goto yy777;
- } else {
- goto yy781;
- }
- } else {
- goto yy785;
- }
- }
- }
- }
- } else {
- if(yyaccept <= 90) {
- if(yyaccept <= 84) {
- if(yyaccept <= 81) {
- if(yyaccept <= 79) {
- if(yyaccept <= 78) {
- goto yy794;
- } else {
- goto yy799;
- }
- } else {
- if(yyaccept <= 80) {
- goto yy804;
- } else {
- goto yy807;
- }
- }
- } else {
- if(yyaccept <= 83) {
- if(yyaccept <= 82) {
- goto yy810;
- } else {
- goto yy813;
- }
- } else {
- goto yy825;
- }
- }
- } else {
- if(yyaccept <= 87) {
- if(yyaccept <= 86) {
- if(yyaccept <= 85) {
- goto yy830;
- } else {
- goto yy836;
- }
- } else {
- goto yy841;
- }
- } else {
- if(yyaccept <= 89) {
- if(yyaccept <= 88) {
- goto yy850;
- } else {
- goto yy857;
- }
- } else {
- goto yy859;
- }
- }
- }
- } else {
- if(yyaccept <= 97) {
- if(yyaccept <= 94) {
- if(yyaccept <= 92) {
- if(yyaccept <= 91) {
- goto yy865;
- } else {
- goto yy869;
- }
- } else {
- if(yyaccept <= 93) {
- goto yy872;
- } else {
- goto yy877;
- }
- }
- } else {
- if(yyaccept <= 96) {
- if(yyaccept <= 95) {
- goto yy879;
- } else {
- goto yy886;
- }
- } else {
- goto yy889;
- }
- }
- } else {
- if(yyaccept <= 100) {
- if(yyaccept <= 99) {
- if(yyaccept <= 98) {
- goto yy894;
- } else {
- goto yy897;
- }
- } else {
- goto yy903;
- }
- } else {
- if(yyaccept <= 102) {
- if(yyaccept <= 101) {
- goto yy905;
- } else {
- goto yy907;
- }
- } else {
- goto yy911;
- }
- }
- }
- }
- }
- }
-yy99:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy112;
-yy100:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '`') {
- if(yych <= '7') {
- if(yych <= '&') {
- if(yych == '"') goto yy96;
- goto yy98;
- } else {
- if(yych <= '\'') goto yy96;
- if(yych <= '/') goto yy98;
- goto yy107;
- }
- } else {
- if(yych <= 'T') {
- if(yych == '?') goto yy105;
- goto yy98;
- } else {
- if(yych <= 'U') goto yy104;
- if(yych == '\\') goto yy96;
- goto yy98;
- }
- }
- } else {
- if(yych <= 'r') {
- if(yych <= 'f') {
- if(yych <= 'b') goto yy96;
- if(yych <= 'e') goto yy98;
- goto yy96;
- } else {
- if(yych == 'n') goto yy96;
- if(yych <= 'q') goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 's') goto yy98;
- if(yych <= 't') goto yy96;
- goto yy103;
- } else {
- if(yych <= 'v') goto yy96;
- if(yych == 'x') goto yy106;
- goto yy98;
- }
- }
- }
-yy101:
- ++YYCURSOR;
-yy102:
-#line 249 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STRINGLIT); }
-#line 1250 "strict_cpp_re.inc"
-yy103:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy138;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy138;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy138;
- goto yy98;
- }
-yy104:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy131;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy131;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy131;
- goto yy98;
- }
-yy105:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy111;
- goto yy100;
-yy106:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 64) {
- goto yy109;
- }
- goto yy98;
-yy107:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '"') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '!') goto yy96;
- goto yy101;
- }
- } else {
- if(yych <= '>') {
- if(yych <= '/') goto yy96;
- if(yych >= '8') goto yy96;
- } else {
- if(yych <= '?') goto yy99;
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy109:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 64) {
- goto yy109;
- }
- if(yych <= '!') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= '?') {
- if(yych <= '"') goto yy101;
- if(yych <= '>') goto yy96;
- goto yy99;
- } else {
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
-yy111:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych >= '\\') goto yy100;
-yy112:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 128) {
- goto yy112;
- }
- if(yych <= '!') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= '/') {
- if(yych <= '"') goto yy101;
- if(yych <= '.') goto yy96;
- } else {
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
-yy114:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 1) {
- goto yy114;
- }
- if(yych <= '7') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy118;
- if(yych <= '/') goto yy96;
- goto yy107;
- }
- }
- } else {
- if(yych <= 'U') {
- if(yych == '?') goto yy119;
- if(yych <= 'T') goto yy96;
- goto yy117;
- } else {
- if(yych <= 'u') {
- if(yych <= 't') goto yy96;
- } else {
- if(yych == 'x') goto yy109;
- goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- goto yy128;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- goto yy128;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych <= 'f') goto yy128;
- goto yy96;
- }
- }
- }
-yy117:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- goto yy121;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- goto yy121;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych <= 'f') goto yy121;
- goto yy96;
- }
- }
- }
-yy118:
- yyaccept = 6;
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy102;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy119:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych >= '\\') goto yy100;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 128) {
- goto yy112;
- }
- if(yych <= '!') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy96;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy96;
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- }
- } else {
- if(yych <= '/') {
- if(yych <= '"') goto yy101;
- if(yych <= '.') goto yy96;
- goto yy114;
- } else {
- if(yych == '\\') goto yy100;
- goto yy96;
- }
- }
-yy121:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy128:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy96;
- if(yych <= 0x0A) goto yy98;
- goto yy96;
- } else {
- if(yych <= '!') {
- if(yych <= 0x1F) goto yy98;
- goto yy96;
- } else {
- if(yych <= '"') goto yy101;
- if(yych <= '/') goto yy96;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy99;
- if(yych <= '@') goto yy96;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy96;
- goto yy100;
- } else {
- if(yych <= '`') goto yy96;
- if(yych >= 'g') goto yy96;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[256+yych] & 32) {
- goto yy96;
- }
- if(yych <= '!') goto yy98;
- if(yych <= '"') goto yy101;
- if(yych <= '[') goto yy99;
- goto yy100;
-yy131:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy132;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy132:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy133;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy133:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy134;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy134:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy135;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy135:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy136;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy136:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy137;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy137:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy96;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy96;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy96;
- goto yy98;
- }
-yy138:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy139;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy139:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy140;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy140:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy96;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy96;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy96;
- goto yy98;
- }
-yy141:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy142:
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych >= '\\') goto yy144;
-yy143:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy156;
-yy144:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '`') {
- if(yych <= '7') {
- if(yych <= '&') {
- if(yych == '"') goto yy141;
- goto yy98;
- } else {
- if(yych <= '\'') goto yy141;
- if(yych <= '/') goto yy98;
- goto yy149;
- }
- } else {
- if(yych <= 'T') {
- if(yych == '?') goto yy147;
- goto yy98;
- } else {
- if(yych <= 'U') goto yy146;
- if(yych == '\\') goto yy141;
- goto yy98;
- }
- }
- } else {
- if(yych <= 'r') {
- if(yych <= 'f') {
- if(yych <= 'b') goto yy141;
- if(yych <= 'e') goto yy98;
- goto yy141;
- } else {
- if(yych == 'n') goto yy141;
- if(yych <= 'q') goto yy98;
- goto yy141;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 's') goto yy98;
- if(yych <= 't') goto yy141;
- } else {
- if(yych <= 'v') goto yy141;
- if(yych == 'x') goto yy148;
- goto yy98;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy182;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy182;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy182;
- goto yy98;
- }
-yy146:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy175;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy175;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy175;
- goto yy98;
- }
-yy147:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy155;
- goto yy144;
-yy148:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy153;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy153;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy153;
- goto yy98;
- }
-yy149:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '\'') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy141;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy141;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '&') goto yy141;
- goto yy151;
- }
- } else {
- if(yych <= '>') {
- if(yych <= '/') goto yy141;
- if(yych >= '8') goto yy141;
- } else {
- if(yych <= '?') goto yy143;
- if(yych == '\\') goto yy144;
- goto yy141;
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy151:
- ++YYCURSOR;
-yy152:
-#line 246 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CHARLIT); }
-#line 2097 "strict_cpp_re.inc"
-yy153:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- goto yy153;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- goto yy153;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych <= 'f') goto yy153;
- goto yy141;
- }
- }
- }
-yy155:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych >= '\\') goto yy144;
-yy156:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '\'') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy141;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy141;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '&') goto yy141;
- goto yy151;
- }
- } else {
- if(yych <= '>') {
- if(yych != '/') goto yy141;
- } else {
- if(yych <= '?') goto yy156;
- if(yych == '\\') goto yy144;
- goto yy141;
- }
- }
-yy158:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '>') {
- if(yych <= 0x1F) {
- if(yych <= 0x09) {
- if(yych <= 0x08) goto yy98;
- goto yy141;
- } else {
- if(yych <= 0x0A) goto yy98;
- if(yych <= 0x0C) goto yy141;
- goto yy98;
- }
- } else {
- if(yych <= '\'') {
- if(yych <= '&') goto yy141;
- goto yy162;
- } else {
- if(yych <= '/') goto yy141;
- if(yych <= '7') goto yy149;
- goto yy141;
- }
- }
- } else {
- if(yych <= '\\') {
- if(yych <= 'T') {
- if(yych <= '?') goto yy163;
- goto yy141;
- } else {
- if(yych <= 'U') goto yy161;
- if(yych <= '[') goto yy141;
- goto yy158;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 't') goto yy141;
- } else {
- if(yych == 'x') goto yy153;
- goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- goto yy172;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- goto yy172;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych <= 'f') goto yy172;
- goto yy141;
- }
- }
- }
-yy161:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- goto yy165;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- goto yy165;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych <= 'f') goto yy165;
- goto yy141;
- }
- }
- }
-yy162:
- yyaccept = 7;
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy152;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy163:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych >= '\\') goto yy144;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '\'') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy141;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy141;
- if(yych <= 0x1F) goto yy98;
- if(yych <= '&') goto yy141;
- goto yy151;
- }
- } else {
- if(yych <= '>') {
- if(yych == '/') goto yy158;
- goto yy141;
- } else {
- if(yych <= '?') goto yy156;
- if(yych == '\\') goto yy144;
- goto yy141;
- }
- }
-yy165:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy172:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych <= 0x0C) {
- if(yych == 0x09) goto yy141;
- if(yych <= 0x0A) goto yy98;
- goto yy141;
- } else {
- if(yych <= '&') {
- if(yych <= 0x1F) goto yy98;
- goto yy141;
- } else {
- if(yych <= '\'') goto yy151;
- if(yych <= '/') goto yy141;
- }
- }
- } else {
- if(yych <= 'F') {
- if(yych == '?') goto yy143;
- if(yych <= '@') goto yy141;
- } else {
- if(yych <= '\\') {
- if(yych <= '[') goto yy141;
- goto yy144;
- } else {
- if(yych <= '`') goto yy141;
- if(yych >= 'g') goto yy141;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 2) {
- goto yy141;
- }
- if(yych <= '&') goto yy98;
- if(yych <= '\'') goto yy151;
- if(yych <= '[') goto yy143;
- goto yy144;
-yy175:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy176;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy176:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy177;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy177:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy178;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy178:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy179;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy179:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy180;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy180:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy181;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy181:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy141;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy141;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy141;
- goto yy98;
- }
-yy182:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy183;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy183:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy184;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy184:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy141;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy141;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy141;
- goto yy98;
- }
-yy185:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy211;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy211;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy211;
- goto yy98;
- }
-yy186:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy187;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy187:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy188;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy188:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy189;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy189:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy190;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy190:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy191;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy191:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy192;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy192:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy193;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy193:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy194:
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy195:
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych != '\\') goto yy9;
-yy196:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == 'U') goto yy200;
- if(yych == 'u') goto yy199;
- goto yy98;
-yy197:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych != '?') goto yy98;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '/') goto yy196;
- goto yy98;
-yy199:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy208;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy208;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy208;
- goto yy98;
- }
-yy200:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy201;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy201:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy202;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy202:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy203;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy203:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy204;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy204:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy205;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy205:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy206;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy206:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy207;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy207:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy194;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy194;
- goto yy98;
- }
-yy208:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy209;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy209:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy210;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy210:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy194;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy194;
- goto yy98;
- }
-yy211:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy212;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy212:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych >= ':') goto yy98;
- } else {
- if(yych <= 'F') goto yy213;
- if(yych <= '`') goto yy98;
- if(yych >= 'g') goto yy98;
- }
-yy213:
- yych = *++YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy98;
- if(yych <= '9') goto yy194;
- goto yy98;
- } else {
- if(yych <= 'F') goto yy194;
- if(yych <= '`') goto yy98;
- if(yych <= 'f') goto yy194;
- goto yy98;
- }
-yy214:
- yych = *++YYCURSOR;
- if(yych == '\'') goto yy98;
- goto yy142;
-yy215:
- ++YYCURSOR;
-#line 217 "strict_cpp.re"
- { BOOST_WAVE_RET(T_GREATEREQUAL); }
-#line 3027 "strict_cpp_re.inc"
-yy217:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy219;
-#line 210 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SHIFTRIGHT); }
-#line 3033 "strict_cpp_re.inc"
-yy219:
- ++YYCURSOR;
-#line 211 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
-#line 3038 "strict_cpp_re.inc"
-yy221:
- ++YYCURSOR;
-#line 213 "strict_cpp.re"
- { BOOST_WAVE_RET(T_EQUAL); }
-#line 3043 "strict_cpp_re.inc"
-yy223:
- ++YYCURSOR;
-#line 214 "strict_cpp.re"
- { BOOST_WAVE_RET(T_NOTEQUAL); }
-#line 3048 "strict_cpp_re.inc"
-yy225:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy230;
- goto yy98;
-yy226:
- ++YYCURSOR;
-#line 220 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OROR); }
-#line 3057 "strict_cpp_re.inc"
-yy228:
- ++YYCURSOR;
-#line 206 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ORASSIGN); }
-#line 3062 "strict_cpp_re.inc"
-yy230:
- yych = *++YYCURSOR;
- if(yych != '!') goto yy98;
- ++YYCURSOR;
-#line 222 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3069 "strict_cpp_re.inc"
-yy233:
- ++YYCURSOR;
-#line 218 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ANDAND); }
-#line 3074 "strict_cpp_re.inc"
-yy235:
- ++YYCURSOR;
-#line 204 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ANDASSIGN); }
-#line 3079 "strict_cpp_re.inc"
-yy237:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 8;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '>') {
- if(yych <= '/') goto yy239;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '^') {
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy240;
- if(yych <= '`') goto yy239;
- if(yych <= 'z') goto yy194;
- }
- }
-yy239:
-#line 182 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
-#line 3106 "strict_cpp_re.inc"
-yy240:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 9;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy243:
-#line 202 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
-#line 3124 "strict_cpp_re.inc"
-yy244:
- ++YYCURSOR;
-#line 201 "strict_cpp.re"
- { BOOST_WAVE_RET(T_XORASSIGN); }
-#line 3129 "strict_cpp_re.inc"
-yy246:
- ++YYCURSOR;
-#line 198 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STARASSIGN); }
-#line 3134 "strict_cpp_re.inc"
-yy248:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '*') goto yy254;
-#line 238 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ARROW); }
-#line 3140 "strict_cpp_re.inc"
-yy250:
- ++YYCURSOR;
-#line 226 "strict_cpp.re"
- { BOOST_WAVE_RET(T_MINUSMINUS); }
-#line 3145 "strict_cpp_re.inc"
-yy252:
- ++YYCURSOR;
-#line 197 "strict_cpp.re"
- { BOOST_WAVE_RET(T_MINUSASSIGN); }
-#line 3150 "strict_cpp_re.inc"
-yy254:
- ++YYCURSOR;
-#line 229 "strict_cpp.re"
- {
- if (s->act_in_c99_mode) {
- --YYCURSOR;
- BOOST_WAVE_RET(T_ARROW);
- }
- else {
- BOOST_WAVE_RET(T_ARROWSTAR);
- }
- }
-#line 3163 "strict_cpp_re.inc"
-yy256:
- ++YYCURSOR;
-#line 225 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PLUSPLUS); }
-#line 3168 "strict_cpp_re.inc"
-yy258:
- ++YYCURSOR;
-#line 196 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PLUSASSIGN); }
-#line 3173 "strict_cpp_re.inc"
-yy260:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
- yych = *YYCURSOR;
-yy261:
- if(yych <= 'h') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy260;
- goto yy98;
- } else {
- if(yych <= 0x0C) goto yy260;
- if(yych <= 0x1F) goto yy98;
- goto yy260;
- }
- } else {
- if(yych <= 'c') {
- if(yych != '/') goto yy98;
- } else {
- if(yych <= 'd') goto yy269;
- if(yych <= 'e') goto yy263;
- goto yy98;
- }
- }
- } else {
- if(yych <= 'q') {
- if(yych <= 'l') {
- if(yych <= 'i') goto yy270;
- if(yych <= 'k') goto yy98;
- goto yy267;
- } else {
- if(yych == 'p') goto yy266;
- goto yy98;
- }
- } else {
- if(yych <= 'u') {
- if(yych <= 'r') goto yy264;
- if(yych <= 't') goto yy98;
- goto yy268;
- } else {
- if(yych == 'w') goto yy265;
- goto yy98;
- }
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '*') goto yy377;
- goto yy98;
-yy263:
- yych = *++YYCURSOR;
- if(yych <= 'm') {
- if(yych == 'l') goto yy353;
- goto yy98;
- } else {
- if(yych <= 'n') goto yy354;
- if(yych == 'r') goto yy355;
- goto yy98;
- }
-yy264:
- yych = *++YYCURSOR;
- if(yych == 'e') goto yy347;
- goto yy98;
-yy265:
- yych = *++YYCURSOR;
- if(yych == 'a') goto yy340;
- goto yy98;
-yy266:
- yych = *++YYCURSOR;
- if(yych == 'r') goto yy334;
- goto yy98;
-yy267:
- yych = *++YYCURSOR;
- if(yych == 'i') goto yy330;
- goto yy98;
-yy268:
- yych = *++YYCURSOR;
- if(yych == 'n') goto yy325;
- goto yy98;
-yy269:
- yych = *++YYCURSOR;
- if(yych == 'e') goto yy319;
- goto yy98;
-yy270:
- yych = *++YYCURSOR;
- if(yych == 'f') goto yy278;
- if(yych == 'n') goto yy277;
- goto yy98;
-yy271:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy274;
- goto yy98;
-yy272:
- ++YYCURSOR;
-#line 143 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND); }
-#line 3271 "strict_cpp_re.inc"
-yy274:
- yych = *++YYCURSOR;
- if(yych != '=') goto yy98;
- ++YYCURSOR;
-#line 144 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3278 "strict_cpp_re.inc"
-yy277:
- yych = *++YYCURSOR;
- if(yych == 'c') goto yy289;
- goto yy98;
-yy278:
- yyaccept = 10;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy281;
- if(yych == 'n') goto yy280;
-yy279:
-#line 261 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_IF); }
-#line 3291 "strict_cpp_re.inc"
-yy280:
- yych = *++YYCURSOR;
- if(yych == 'd') goto yy285;
- goto yy98;
-yy281:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- ++YYCURSOR;
-#line 262 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_IFDEF); }
-#line 3304 "strict_cpp_re.inc"
-yy285:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- ++YYCURSOR;
-#line 263 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_IFNDEF); }
-#line 3313 "strict_cpp_re.inc"
-yy289:
- yych = *++YYCURSOR;
- if(yych != 'l') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'u') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'd') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yyaccept = 11;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '_') goto yy295;
- goto yy297;
-yy294:
-#line 259 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_INCLUDE); }
-#line 3330 "strict_cpp_re.inc"
-yy295:
- yych = *++YYCURSOR;
- if(yych == 'n') goto yy316;
- goto yy98;
-yy296:
- yyaccept = 11;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
-yy297:
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy296;
- goto yy294;
- } else {
- if(yych <= 0x0C) goto yy296;
- if(yych <= 0x1F) goto yy294;
- goto yy296;
- }
- } else {
- if(yych <= '.') {
- if(yych == '"') goto yy300;
- goto yy294;
- } else {
- if(yych <= '/') goto yy298;
- if(yych == '<') goto yy299;
- goto yy294;
- }
- }
-yy298:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '*') goto yy309;
- goto yy98;
-yy299:
- yych = *++YYCURSOR;
- if(yych == '>') goto yy98;
- goto yy306;
-yy300:
- yych = *++YYCURSOR;
- if(yych == '"') goto yy98;
- goto yy302;
-yy301:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy302:
- if(yybm[0+yych] & 8) {
- goto yy301;
- }
- if(yych <= '!') goto yy98;
- ++YYCURSOR;
-#line 256 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_QHEADER); }
-#line 3386 "strict_cpp_re.inc"
-yy305:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy306:
- if(yybm[0+yych] & 16) {
- goto yy305;
- }
- if(yych <= '=') goto yy98;
- ++YYCURSOR;
-#line 253 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_HHEADER); }
-#line 3399 "strict_cpp_re.inc"
-yy309:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy309;
- }
- if(yych == 0x0D) goto yy311;
- if(yych <= ')') goto yy98;
- goto yy313;
-yy311:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy309;
- }
- if(yych == 0x0D) goto yy311;
- if(yych <= ')') goto yy98;
-yy313:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy313;
- }
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy309;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych == '/') goto yy296;
- goto yy309;
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy309;
- }
- if(yych == 0x0D) goto yy311;
- if(yych <= ')') goto yy98;
- goto yy313;
-yy316:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'x') goto yy98;
- yych = *++YYCURSOR;
- if(yych == 't') goto yy296;
- goto yy98;
-yy319:
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- ++YYCURSOR;
-#line 267 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_DEFINE); }
-#line 3463 "strict_cpp_re.inc"
-yy325:
- yych = *++YYCURSOR;
- if(yych != 'd') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'f') goto yy98;
- ++YYCURSOR;
-#line 268 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_UNDEF); }
-#line 3474 "strict_cpp_re.inc"
-yy330:
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- ++YYCURSOR;
-#line 269 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_LINE); }
-#line 3483 "strict_cpp_re.inc"
-yy334:
- yych = *++YYCURSOR;
- if(yych != 'a') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'm') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'a') goto yy98;
- ++YYCURSOR;
-#line 271 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_PRAGMA); }
-#line 3496 "strict_cpp_re.inc"
-yy340:
- yych = *++YYCURSOR;
- if(yych != 'r') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- ++YYCURSOR;
-#line 273 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_WARNING); }
-#line 3511 "strict_cpp_re.inc"
-yy347:
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'o') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- ++YYCURSOR;
-#line 275 "strict_cpp.re"
- { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
-#line 3524 "strict_cpp_re.inc"
-yy353:
- yych = *++YYCURSOR;
- if(yych == 'i') goto yy371;
- if(yych == 's') goto yy372;
- goto yy98;
-yy354:
- yych = *++YYCURSOR;
- if(yych == 'd') goto yy360;
- goto yy98;
-yy355:
- yych = *++YYCURSOR;
- if(yych != 'r') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'o') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'r') goto yy98;
- ++YYCURSOR;
-#line 270 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_ERROR); }
-#line 3544 "strict_cpp_re.inc"
-yy360:
- yych = *++YYCURSOR;
- if(yych == 'i') goto yy361;
- if(yych == 'r') goto yy362;
- goto yy98;
-yy361:
- yych = *++YYCURSOR;
- if(yych == 'f') goto yy369;
- goto yy98;
-yy362:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'g') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'i') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'o') goto yy98;
- yych = *++YYCURSOR;
- if(yych != 'n') goto yy98;
- ++YYCURSOR;
-#line 276 "strict_cpp.re"
- { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
-#line 3568 "strict_cpp_re.inc"
-yy369:
- ++YYCURSOR;
-#line 266 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_ENDIF); }
-#line 3573 "strict_cpp_re.inc"
-yy371:
- yych = *++YYCURSOR;
- if(yych == 'f') goto yy375;
- goto yy98;
-yy372:
- yych = *++YYCURSOR;
- if(yych != 'e') goto yy98;
- ++YYCURSOR;
-#line 264 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_ELSE); }
-#line 3584 "strict_cpp_re.inc"
-yy375:
- ++YYCURSOR;
-#line 265 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_ELIF); }
-#line 3589 "strict_cpp_re.inc"
-yy377:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych == '*') goto yy381;
- goto yy377;
- }
-yy379:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- goto yy379;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych != '*') goto yy377;
- }
-yy381:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x1F) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- if(yych >= 0x0E) goto yy98;
- } else {
- if(yych <= '*') {
- if(yych <= ')') goto yy377;
- goto yy381;
- } else {
- if(yych == '/') goto yy260;
- goto yy377;
- }
- }
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= 0x0D) {
- if(yych <= 0x08) goto yy98;
- if(yych <= 0x0C) goto yy377;
- goto yy379;
- } else {
- if(yych <= 0x1F) goto yy98;
- if(yych == '*') goto yy381;
- goto yy377;
- }
-yy384:
- ++YYCURSOR;
-#line 155 "strict_cpp.re"
- {
- if (s->act_in_c99_mode) {
- --YYCURSOR;
- BOOST_WAVE_RET(T_COLON);
- }
- else {
- BOOST_WAVE_RET(T_COLON_COLON);
- }
- }
-#line 3655 "strict_cpp_re.inc"
-yy386:
- ++YYCURSOR;
-#line 139 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
-#line 3660 "strict_cpp_re.inc"
-yy388:
- yyaccept = 12;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'e') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy261;
- } else {
- if(yych <= 0x0C) goto yy261;
- if(yych >= ' ') goto yy261;
- }
- } else {
- if(yych <= '.') {
- if(yych == '%') goto yy394;
- } else {
- if(yych <= '/') goto yy261;
- if(yych >= 'd') goto yy261;
- }
- }
- } else {
- if(yych <= 'p') {
- if(yych <= 'k') {
- if(yych == 'i') goto yy261;
- } else {
- if(yych <= 'l') goto yy261;
- if(yych >= 'p') goto yy261;
- }
- } else {
- if(yych <= 't') {
- if(yych == 'r') goto yy261;
- } else {
- if(yych == 'v') goto yy389;
- if(yych <= 'w') goto yy261;
- }
- }
- }
-yy389:
-#line 141 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_ALT); }
-#line 3700 "strict_cpp_re.inc"
-yy390:
- ++YYCURSOR;
-#line 200 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PERCENTASSIGN); }
-#line 3705 "strict_cpp_re.inc"
-yy392:
- ++YYCURSOR;
-#line 133 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
-#line 3710 "strict_cpp_re.inc"
-yy394:
- yych = *++YYCURSOR;
- if(yych != ':') goto yy98;
- ++YYCURSOR;
-#line 147 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
-#line 3717 "strict_cpp_re.inc"
-yy397:
- ++YYCURSOR;
-#line 216 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LESSEQUAL); }
-#line 3722 "strict_cpp_re.inc"
-yy399:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy405;
-#line 209 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SHIFTLEFT); }
-#line 3728 "strict_cpp_re.inc"
-yy401:
- ++YYCURSOR;
-#line 136 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
-#line 3733 "strict_cpp_re.inc"
-yy403:
- ++YYCURSOR;
-#line 130 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
-#line 3738 "strict_cpp_re.inc"
-yy405:
- ++YYCURSOR;
-#line 212 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
-#line 3743 "strict_cpp_re.inc"
-yy407:
- yych = *++YYCURSOR;
- switch(yych) {
- case '!': goto yy420;
- case '\'': goto yy418;
- case '(': goto yy412;
- case ')': goto yy414;
- case '-': goto yy422;
- case '/': goto yy424;
- case '<': goto yy408;
- case '=': goto yy416;
- case '>': goto yy410;
- default: goto yy98;
- }
-yy408:
- ++YYCURSOR;
-#line 129 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
-#line 3762 "strict_cpp_re.inc"
-yy410:
- ++YYCURSOR;
-#line 132 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
-#line 3767 "strict_cpp_re.inc"
-yy412:
- ++YYCURSOR;
-#line 135 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
-#line 3772 "strict_cpp_re.inc"
-yy414:
- ++YYCURSOR;
-#line 138 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
-#line 3777 "strict_cpp_re.inc"
-yy416:
- yyaccept = 13;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'c') {
- if(yych <= ' ') {
- if(yych <= 0x0A) {
- if(yych == 0x09) goto yy261;
- } else {
- if(yych <= 0x0C) goto yy261;
- if(yych >= ' ') goto yy261;
- }
- } else {
- if(yych <= '.') {
- if(yych == '#') goto yy437;
- } else {
- if(yych <= '/') goto yy261;
- if(yych == '?') goto yy436;
- }
- }
- } else {
- if(yych <= 'p') {
- if(yych <= 'i') {
- if(yych <= 'e') goto yy261;
- if(yych >= 'i') goto yy261;
- } else {
- if(yych == 'l') goto yy261;
- if(yych >= 'p') goto yy261;
- }
- } else {
- if(yych <= 't') {
- if(yych == 'r') goto yy261;
- } else {
- if(yych == 'v') goto yy417;
- if(yych <= 'w') goto yy261;
- }
- }
- }
-yy417:
-#line 142 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
-#line 3818 "strict_cpp_re.inc"
-yy418:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '=') goto yy434;
-#line 181 "strict_cpp.re"
- { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
-#line 3824 "strict_cpp_re.inc"
-yy420:
- yyaccept = 14;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '>') {
- if(yych == '=') goto yy429;
- } else {
- if(yych <= '?') goto yy426;
- if(yych == '|') goto yy427;
- }
-yy421:
-#line 187 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
-#line 3837 "strict_cpp_re.inc"
-yy422:
- ++YYCURSOR;
-#line 189 "strict_cpp.re"
- { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
-#line 3842 "strict_cpp_re.inc"
-yy424:
- yyaccept = 15;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy186;
- if(yych == 'u') goto yy185;
-yy425:
-#line 239 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
-#line 3851 "strict_cpp_re.inc"
-yy426:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy431;
- goto yy98;
-yy427:
- ++YYCURSOR;
-#line 221 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3860 "strict_cpp_re.inc"
-yy429:
- ++YYCURSOR;
-#line 208 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
-#line 3865 "strict_cpp_re.inc"
-yy431:
- yych = *++YYCURSOR;
- if(yych != '!') goto yy98;
- ++YYCURSOR;
-#line 224 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
-#line 3872 "strict_cpp_re.inc"
-yy434:
- ++YYCURSOR;
-#line 203 "strict_cpp.re"
- { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
-#line 3877 "strict_cpp_re.inc"
-yy436:
- yych = *++YYCURSOR;
- if(yych == '?') goto yy439;
- goto yy98;
-yy437:
- ++YYCURSOR;
-#line 145 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3886 "strict_cpp_re.inc"
-yy439:
- yych = *++YYCURSOR;
- if(yych != '=') goto yy98;
- ++YYCURSOR;
-#line 146 "strict_cpp.re"
- { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
-#line 3893 "strict_cpp_re.inc"
-yy442:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case 'a': goto yy443;
- case 'b': goto yy444;
- case 'c': goto yy445;
- case 'd': goto yy446;
- case 'e': goto yy495;
- case 'f': goto yy493;
- case 'i': goto yy492;
- case 'l': goto yy496;
- case 's': goto yy449;
- case 't': goto yy494;
- default: goto yy195;
- }
-yy443:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 's') goto yy489;
- goto yy195;
-yy444:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy484;
- goto yy195;
-yy445:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy479;
- goto yy195;
-yy446:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy471;
- goto yy195;
-yy447:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy463;
- goto yy195;
-yy448:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy457;
- goto yy195;
-yy449:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 16;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy456:
-#line 120 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
-#line 3969 "strict_cpp_re.inc"
-yy457:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
-yy458:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 17;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy462:
-#line 125 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
-#line 3994 "strict_cpp_re.inc"
-yy463:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 18;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy470:
-#line 119 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
-#line 4024 "strict_cpp_re.inc"
-yy471:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 19;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy478:
-#line 117 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
-#line 4054 "strict_cpp_re.inc"
-yy479:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 20;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy483:
-#line 118 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
-#line 4075 "strict_cpp_re.inc"
-yy484:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 21;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy488:
-#line 116 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
-#line 4096 "strict_cpp_re.inc"
-yy489:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 22;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy491:
-#line 126 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
-#line 4111 "strict_cpp_re.inc"
-yy492:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy518;
- goto yy195;
-yy493:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy463;
- if(yych == 'i') goto yy511;
- goto yy195;
-yy494:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy508;
- goto yy195;
-yy495:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'x') goto yy502;
- goto yy195;
-yy496:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'v') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 23;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy501:
-#line 124 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
-#line 4156 "strict_cpp_re.inc"
-yy502:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 24;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy507:
-#line 122 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
-#line 4180 "strict_cpp_re.inc"
-yy508:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'y') goto yy195;
- yyaccept = 25;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy510:
-#line 121 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
-#line 4195 "strict_cpp_re.inc"
-yy511:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'y') goto yy195;
- yyaccept = 26;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy517:
-#line 123 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
-#line 4222 "strict_cpp_re.inc"
-yy518:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy458;
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- switch(yych) {
- case '1': goto yy520;
- case '3': goto yy521;
- case '6': goto yy522;
- case '8': goto yy523;
- default: goto yy195;
- }
-yy520:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '6') goto yy529;
- goto yy195;
-yy521:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '2') goto yy527;
- goto yy195;
-yy522:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '4') goto yy525;
- goto yy195;
-yy523:
- yyaccept = 27;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy524:
-#line 112 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
-#line 4263 "strict_cpp_re.inc"
-yy525:
- yyaccept = 28;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy526:
-#line 115 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
-#line 4275 "strict_cpp_re.inc"
-yy527:
- yyaccept = 29;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy528:
-#line 114 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
-#line 4287 "strict_cpp_re.inc"
-yy529:
- yyaccept = 30;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy530:
-#line 113 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
-#line 4299 "strict_cpp_re.inc"
-yy531:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'h') goto yy537;
- goto yy195;
-yy532:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 31;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy536:
-#line 110 "strict_cpp.re"
- { BOOST_WAVE_RET(T_WHILE); }
-#line 4325 "strict_cpp_re.inc"
-yy537:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '_') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 32;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy542:
-#line 109 "strict_cpp.re"
- { BOOST_WAVE_RET(T_WCHART); }
-#line 4349 "strict_cpp_re.inc"
-yy543:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy555;
- goto yy195;
-yy544:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy545;
- if(yych == 'l') goto yy546;
- goto yy195;
-yy545:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy553;
- goto yy195;
-yy546:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 33;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy552:
-#line 108 "strict_cpp.re"
- { BOOST_WAVE_RET(T_VOLATILE); }
-#line 4392 "strict_cpp_re.inc"
-yy553:
- yyaccept = 34;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy554:
-#line 107 "strict_cpp.re"
- { BOOST_WAVE_RET(T_VOID); }
-#line 4404 "strict_cpp_re.inc"
-yy555:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 35;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy560:
-#line 106 "strict_cpp.re"
- { BOOST_WAVE_RET(T_VIRTUAL); }
-#line 4428 "strict_cpp_re.inc"
-yy561:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy567;
- if(yych == 's') goto yy568;
- goto yy195;
-yy562:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'g') goto yy195;
- yyaccept = 36;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy566:
-#line 105 "strict_cpp.re"
- { BOOST_WAVE_RET(T_USING); }
-#line 4455 "strict_cpp_re.inc"
-yy567:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy575;
- goto yy195;
-yy568:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'g') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 37;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy574:
-#line 104 "strict_cpp.re"
- { BOOST_WAVE_RET(T_UNSIGNED); }
-#line 4487 "strict_cpp_re.inc"
-yy575:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 38;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy577:
-#line 103 "strict_cpp.re"
- { BOOST_WAVE_RET(T_UNION); }
-#line 4502 "strict_cpp_re.inc"
-yy578:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'm') goto yy608;
- goto yy195;
-yy579:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy601;
- if(yych == 'r') goto yy602;
- goto yy195;
-yy580:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'u') goto yy596;
- if(yych == 'y') goto yy597;
- goto yy195;
-yy581:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'h') {
- if(yych != 'd') goto yy195;
- } else {
- if(yych <= 'i') goto yy585;
- if(yych == 'n') goto yy586;
- goto yy195;
- }
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy593;
- goto yy195;
-yy585:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy591;
- goto yy195;
-yy586:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 39;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy590:
-#line 102 "strict_cpp.re"
- { BOOST_WAVE_RET(T_TYPENAME); }
-#line 4565 "strict_cpp_re.inc"
-yy591:
- yyaccept = 40;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy592:
-#line 101 "strict_cpp.re"
- { BOOST_WAVE_RET(T_TYPEID); }
-#line 4577 "strict_cpp_re.inc"
-yy593:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'f') goto yy195;
- yyaccept = 41;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy595:
-#line 100 "strict_cpp.re"
- { BOOST_WAVE_RET(T_TYPEDEF); }
-#line 4592 "strict_cpp_re.inc"
-yy596:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy599;
- goto yy195;
-yy597:
- yyaccept = 42;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy598:
-#line 99 "strict_cpp.re"
- { BOOST_WAVE_RET(T_TRY); }
-#line 4609 "strict_cpp_re.inc"
-yy599:
- yyaccept = 43;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy600:
-#line 98 "strict_cpp.re"
- { BOOST_WAVE_RET(T_TRUE); }
-#line 4621 "strict_cpp_re.inc"
-yy601:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 's') goto yy606;
- goto yy195;
-yy602:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'w') goto yy195;
- yyaccept = 44;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy605:
-#line 97 "strict_cpp.re"
- { BOOST_WAVE_RET(T_THROW); }
-#line 4644 "strict_cpp_re.inc"
-yy606:
- yyaccept = 45;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy607:
-#line 96 "strict_cpp.re"
- { BOOST_WAVE_RET(T_THIS); }
-#line 4656 "strict_cpp_re.inc"
-yy608:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 46;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy614:
-#line 95 "strict_cpp.re"
- { BOOST_WAVE_RET(T_TEMPLATE); }
-#line 4683 "strict_cpp_re.inc"
-yy615:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy650;
- goto yy195;
-yy616:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'g') goto yy640;
- if(yych == 'z') goto yy641;
- goto yy195;
-yy617:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy624;
- if(yych == 'r') goto yy625;
- goto yy195;
-yy618:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'h') goto yy195;
- yyaccept = 47;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy623:
-#line 94 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SWITCH); }
-#line 4724 "strict_cpp_re.inc"
-yy624:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 't') goto yy630;
- goto yy195;
-yy625:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 48;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy629:
-#line 93 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STRUCT); }
-#line 4750 "strict_cpp_re.inc"
-yy630:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 49;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '>') {
- if(yych <= '/') goto yy633;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '^') {
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy634;
- if(yych <= '`') goto yy633;
- if(yych <= 'z') goto yy194;
- }
- }
-yy633:
-#line 91 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STATIC); }
-#line 4780 "strict_cpp_re.inc"
-yy634:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 50;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy639:
-#line 92 "strict_cpp.re"
- { BOOST_WAVE_RET(T_STATICCAST); }
-#line 4804 "strict_cpp_re.inc"
-yy640:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy646;
- goto yy195;
-yy641:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'f') goto yy195;
- yyaccept = 51;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy645:
-#line 90 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SIZEOF); }
-#line 4830 "strict_cpp_re.inc"
-yy646:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 52;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy649:
-#line 89 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SIGNED); }
-#line 4848 "strict_cpp_re.inc"
-yy650:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 53;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy653:
-#line 88 "strict_cpp.re"
- { BOOST_WAVE_RET(T_SHORT); }
-#line 4866 "strict_cpp_re.inc"
-yy654:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'h') {
- if(yych != 'g') goto yy195;
- } else {
- if(yych <= 'i') goto yy656;
- if(yych == 't') goto yy657;
- goto yy195;
- }
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy676;
- goto yy195;
-yy656:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy662;
- goto yy195;
-yy657:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 54;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy661:
-#line 87 "strict_cpp.re"
- { BOOST_WAVE_RET(T_RETURN); }
-#line 4906 "strict_cpp_re.inc"
-yy662:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '_') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 55;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy675:
-#line 86 "strict_cpp.re"
- { BOOST_WAVE_RET(T_REINTERPRETCAST); }
-#line 4954 "strict_cpp_re.inc"
-yy676:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 56;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy681:
-#line 85 "strict_cpp.re"
- { BOOST_WAVE_RET(T_REGISTER); }
-#line 4978 "strict_cpp_re.inc"
-yy682:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy689;
- if(yych == 'o') goto yy690;
- goto yy195;
-yy683:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'b') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 57;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy688:
-#line 84 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PUBLIC); }
-#line 5008 "strict_cpp_re.inc"
-yy689:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'v') goto yy698;
- goto yy195;
-yy690:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 58;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy697:
-#line 83 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PROTECTED); }
-#line 5043 "strict_cpp_re.inc"
-yy698:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 59;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy702:
-#line 82 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PRIVATE); }
-#line 5064 "strict_cpp_re.inc"
-yy703:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy710;
- goto yy195;
-yy704:
- yyaccept = 60;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '>') {
- if(yych <= '/') goto yy705;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '^') {
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy706;
- if(yych <= '`') goto yy705;
- if(yych <= 'z') goto yy194;
- }
- }
-yy705:
-#line 223 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
-#line 5093 "strict_cpp_re.inc"
-yy706:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 61;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy709:
-#line 207 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
-#line 5111 "strict_cpp_re.inc"
-yy710:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 62;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy716:
-#line 81 "strict_cpp.re"
- { BOOST_WAVE_RET(T_OPERATOR); }
-#line 5138 "strict_cpp_re.inc"
-yy717:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'm') goto yy728;
- goto yy195;
-yy718:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'w') goto yy726;
- goto yy195;
-yy719:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 63;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '>') {
- if(yych <= '/') goto yy721;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '^') {
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy722;
- if(yych <= '`') goto yy721;
- if(yych <= 'z') goto yy194;
- }
- }
-yy721:
-#line 192 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
-#line 5175 "strict_cpp_re.inc"
-yy722:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 64;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy725:
-#line 215 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
-#line 5193 "strict_cpp_re.inc"
-yy726:
- yyaccept = 65;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy727:
-#line 80 "strict_cpp.re"
- { BOOST_WAVE_RET(T_NEW); }
-#line 5205 "strict_cpp_re.inc"
-yy728:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 66;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy735:
-#line 79 "strict_cpp.re"
- { BOOST_WAVE_RET(T_NAMESPACE); }
-#line 5235 "strict_cpp_re.inc"
-yy736:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'b') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 67;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy742:
-#line 78 "strict_cpp.re"
- { BOOST_WAVE_RET(T_MUTABLE); }
-#line 5262 "strict_cpp_re.inc"
-yy743:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'g') goto yy195;
- yyaccept = 68;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy746:
-#line 77 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LONG); }
-#line 5280 "strict_cpp_re.inc"
-yy747:
- yyaccept = 69;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy748:
-#line 73 "strict_cpp.re"
- { BOOST_WAVE_RET(T_IF); }
-#line 5292 "strict_cpp_re.inc"
-yy749:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'p') goto yy758;
- goto yy195;
-yy750:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy751;
- if(yych == 't') goto yy752;
- goto yy195;
-yy751:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy754;
- goto yy195;
-yy752:
- yyaccept = 70;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy753:
-#line 76 "strict_cpp.re"
- { BOOST_WAVE_RET(T_INT); }
-#line 5320 "strict_cpp_re.inc"
-yy754:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 71;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy757:
-#line 75 "strict_cpp.re"
- { BOOST_WAVE_RET(T_INLINE); }
-#line 5338 "strict_cpp_re.inc"
-yy758:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 72;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy762:
-#line 74 "strict_cpp.re"
- { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
-#line 5359 "strict_cpp_re.inc"
-yy763:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 73;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy766:
-#line 72 "strict_cpp.re"
- { BOOST_WAVE_RET(T_GOTO); }
-#line 5377 "strict_cpp_re.inc"
-yy767:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy782;
- goto yy195;
-yy768:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy778;
- goto yy195;
-yy769:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy776;
- goto yy195;
-yy770:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 74;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy775:
-#line 71 "strict_cpp.re"
- { BOOST_WAVE_RET(T_FRIEND); }
-#line 5416 "strict_cpp_re.inc"
-yy776:
- yyaccept = 75;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy777:
-#line 70 "strict_cpp.re"
- { BOOST_WAVE_RET(T_FOR); }
-#line 5428 "strict_cpp_re.inc"
-yy778:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 76;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy781:
-#line 69 "strict_cpp.re"
- { BOOST_WAVE_RET(T_FLOAT); }
-#line 5446 "strict_cpp_re.inc"
-yy782:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 77;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy785:
-#line 68 "strict_cpp.re"
- { BOOST_WAVE_RET(T_FALSE); }
-#line 5464 "strict_cpp_re.inc"
-yy786:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 's') goto yy808;
- goto yy195;
-yy787:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'u') goto yy805;
- goto yy195;
-yy788:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'p') goto yy789;
- if(yych == 't') goto yy790;
- goto yy195;
-yy789:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'l') goto yy795;
- if(yych == 'o') goto yy796;
- goto yy195;
-yy790:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 78;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy794:
-#line 67 "strict_cpp.re"
- { BOOST_WAVE_RET(T_EXTERN); }
-#line 5507 "strict_cpp_re.inc"
-yy795:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'i') goto yy800;
- goto yy195;
-yy796:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 79;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy799:
-#line 66 "strict_cpp.re"
- { BOOST_WAVE_RET(T_EXPORT); }
-#line 5530 "strict_cpp_re.inc"
-yy800:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 80;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy804:
-#line 65 "strict_cpp.re"
- { BOOST_WAVE_RET(T_EXPLICIT); }
-#line 5551 "strict_cpp_re.inc"
-yy805:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 81;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy807:
-#line 64 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ENUM); }
-#line 5566 "strict_cpp_re.inc"
-yy808:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 82;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy810:
-#line 63 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ELSE); }
-#line 5581 "strict_cpp_re.inc"
-yy811:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'f') goto yy831;
- if(yych == 'l') goto yy832;
- goto yy195;
-yy812:
- yyaccept = 83;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '[') {
- if(yych <= '>') {
- if(yych <= '/') goto yy813;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych <= '@') goto yy813;
- if(yych <= 'Z') goto yy194;
- }
- } else {
- if(yych <= '`') {
- if(yych <= '\\') goto yy196;
- if(yych == '_') goto yy194;
- } else {
- if(yych == 'u') goto yy826;
- if(yych <= 'z') goto yy194;
- }
- }
-yy813:
-#line 60 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DO); }
-#line 5612 "strict_cpp_re.inc"
-yy814:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'm') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '_') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 84;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy825:
-#line 62 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DYNAMICCAST); }
-#line 5654 "strict_cpp_re.inc"
-yy826:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'b') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 85;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy830:
-#line 61 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DOUBLE); }
-#line 5675 "strict_cpp_re.inc"
-yy831:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy837;
- goto yy195;
-yy832:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 86;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy836:
-#line 59 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DELETE); }
-#line 5701 "strict_cpp_re.inc"
-yy837:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 87;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy841:
-#line 58 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DEFAULT); }
-#line 5722 "strict_cpp_re.inc"
-yy842:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'r') goto yy195;
- if(yych <= 's') goto yy873;
- if(yych <= 't') goto yy874;
- goto yy195;
-yy843:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy870;
- goto yy195;
-yy844:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy866;
- goto yy195;
-yy845:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'l') goto yy195;
- if(yych <= 'm') goto yy847;
- if(yych >= 'o') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'r') goto yy195;
- if(yych <= 's') goto yy851;
- if(yych <= 't') goto yy852;
- goto yy195;
-yy847:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'p') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 88;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy850:
-#line 190 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
-#line 5769 "strict_cpp_re.inc"
-yy851:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 't') goto yy858;
- goto yy195;
-yy852:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'i') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'n') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'u') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 89;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy857:
-#line 57 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CONTINUE); }
-#line 5798 "strict_cpp_re.inc"
-yy858:
- yyaccept = 90;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '>') {
- if(yych <= '/') goto yy859;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '^') {
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy860;
- if(yych <= '`') goto yy859;
- if(yych <= 'z') goto yy194;
- }
- }
-yy859:
-#line 55 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CONST); }
-#line 5822 "strict_cpp_re.inc"
-yy860:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 91;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy865:
-#line 56 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CONSTCAST); }
-#line 5846 "strict_cpp_re.inc"
-yy866:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 's') goto yy195;
- yyaccept = 92;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy869:
-#line 54 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CLASS); }
-#line 5864 "strict_cpp_re.inc"
-yy870:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 93;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy872:
-#line 53 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CHAR); }
-#line 5879 "strict_cpp_re.inc"
-yy873:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy878;
- goto yy195;
-yy874:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'c') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'h') goto yy195;
- yyaccept = 94;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy877:
-#line 52 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CATCH); }
-#line 5902 "strict_cpp_re.inc"
-yy878:
- yyaccept = 95;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy879:
-#line 51 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CASE); }
-#line 5914 "strict_cpp_re.inc"
-yy880:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 't') goto yy890;
- goto yy195;
-yy881:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy887;
- goto yy195;
-yy882:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'a') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'k') goto yy195;
- yyaccept = 96;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy886:
-#line 50 "strict_cpp.re"
- { BOOST_WAVE_RET(T_BREAK); }
-#line 5945 "strict_cpp_re.inc"
-yy887:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'l') goto yy195;
- yyaccept = 97;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy889:
-#line 49 "strict_cpp.re"
- { BOOST_WAVE_RET(T_BOOL); }
-#line 5960 "strict_cpp_re.inc"
-yy890:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy891;
- if(yych == 'o') goto yy892;
- goto yy195;
-yy891:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'n') goto yy895;
- goto yy195;
-yy892:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'r') goto yy195;
- yyaccept = 98;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy894:
-#line 186 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
-#line 5986 "strict_cpp_re.inc"
-yy895:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'd') goto yy195;
- yyaccept = 99;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy897:
-#line 184 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
-#line 6001 "strict_cpp_re.inc"
-yy898:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'd') goto yy906;
- goto yy195;
-yy899:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'm') goto yy904;
- goto yy195;
-yy900:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 't') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'o') goto yy195;
- yyaccept = 100;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy903:
-#line 48 "strict_cpp.re"
- { BOOST_WAVE_RET(T_AUTO); }
-#line 6029 "strict_cpp_re.inc"
-yy904:
- yyaccept = 101;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy905:
-#line 47 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ASM); }
-#line 6041 "strict_cpp_re.inc"
-yy906:
- yyaccept = 102;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Z') {
- if(yych <= '>') {
- if(yych <= '/') goto yy907;
- if(yych <= '9') goto yy194;
- } else {
- if(yych <= '?') goto yy197;
- if(yych >= 'A') goto yy194;
- }
- } else {
- if(yych <= '^') {
- if(yych == '\\') goto yy196;
- } else {
- if(yych <= '_') goto yy908;
- if(yych <= '`') goto yy907;
- if(yych <= 'z') goto yy194;
- }
- }
-yy907:
-#line 219 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
-#line 6065 "strict_cpp_re.inc"
-yy908:
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'e') goto yy195;
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 'q') goto yy195;
- yyaccept = 103;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 4) {
- goto yy194;
- }
- if(yych == '?') goto yy197;
- if(yych == '\\') goto yy196;
-yy911:
-#line 205 "strict_cpp.re"
- { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
-#line 6083 "strict_cpp_re.inc"
-yy912:
- ++YYCURSOR;
-#line 166 "strict_cpp.re"
- {
- if (s->act_in_c99_mode) {
- --YYCURSOR;
- BOOST_WAVE_RET(T_DOT);
- }
- else {
- BOOST_WAVE_RET(T_DOTSTAR);
- }
- }
-#line 6096 "strict_cpp_re.inc"
-yy914:
- yych = *++YYCURSOR;
- if(yych == '.') goto yy916;
- goto yy98;
-yy915:
- yych = *++YYCURSOR;
- goto yy7;
-yy916:
- ++YYCURSOR;
-#line 152 "strict_cpp.re"
- { BOOST_WAVE_RET(T_ELLIPSIS); }
-#line 6108 "strict_cpp_re.inc"
-yy918:
- ++YYCURSOR;
-#line 199 "strict_cpp.re"
- { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
-#line 6113 "strict_cpp_re.inc"
-yy920:
- ++YYCURSOR;
-#line 44 "strict_cpp.re"
- { goto cppcomment; }
-#line 6118 "strict_cpp_re.inc"
-yy922:
- ++YYCURSOR;
-#line 43 "strict_cpp.re"
- { goto ccomment; }
-#line 6123 "strict_cpp_re.inc"
- }
-}
-#line 307 "strict_cpp.re"
-
-
-ccomment:
-{
-
-#line 6132 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 0x0C) {
- if(yych <= 0x08) {
- if(yych <= 0x00) goto yy933;
- goto yy935;
- } else {
- if(yych == 0x0A) goto yy928;
- goto yy931;
- }
- } else {
- if(yych <= 0x1F) {
- if(yych <= 0x0D) goto yy930;
- goto yy935;
- } else {
- if(yych != '*') goto yy932;
- }
- }
- ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy938;
-yy927:
-#line 322 "strict_cpp.re"
- { goto ccomment; }
-#line 6158 "strict_cpp_re.inc"
-yy928:
- ++YYCURSOR;
-yy929:
-#line 314 "strict_cpp.re"
- {
- /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
- /*s->tok = cursor; */
- s->line += count_backslash_newlines(s, cursor) +1;
- cursor.column = 1;
- goto ccomment;
- }
-#line 6170 "strict_cpp_re.inc"
-yy930:
- yych = *++YYCURSOR;
- if(yych == 0x0A) goto yy937;
- goto yy929;
-yy931:
- yych = *++YYCURSOR;
- goto yy927;
-yy932:
- yych = *++YYCURSOR;
- goto yy927;
-yy933:
- ++YYCURSOR;
-#line 325 "strict_cpp.re"
- {
- if(cursor == s->eof)
- {
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "unterminated 'C' style comment");
- }
- else
- {
- --YYCURSOR; // next call returns T_EOF
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character: '\\000' in input stream");
- }
- }
-#line 6197 "strict_cpp_re.inc"
-yy935:
- ++YYCURSOR;
-#line 340 "strict_cpp.re"
- {
- // flag the error
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
- }
-#line 6207 "strict_cpp_re.inc"
-yy937:
- yych = *++YYCURSOR;
- goto yy929;
-yy938:
- ++YYCURSOR;
-#line 311 "strict_cpp.re"
- { BOOST_WAVE_RET(T_CCOMMENT); }
-#line 6215 "strict_cpp_re.inc"
- }
-}
-#line 346 "strict_cpp.re"
-
-
-cppcomment:
-{
-
-#line 6224 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 0x0A) {
- if(yych <= 0x00) goto yy948;
- if(yych <= 0x08) goto yy950;
- if(yych <= 0x09) goto yy945;
- } else {
- if(yych <= 0x0C) goto yy945;
- if(yych <= 0x0D) goto yy944;
- if(yych <= 0x1F) goto yy950;
- goto yy947;
- }
- ++YYCURSOR;
-yy943:
-#line 351 "strict_cpp.re"
- {
- /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
- /*s->tok = cursor; */
- s->line++;
- cursor.column = 1;
- BOOST_WAVE_RET(T_CPPCOMMENT);
- }
-#line 6249 "strict_cpp_re.inc"
-yy944:
- yych = *++YYCURSOR;
- if(yych == 0x0A) goto yy952;
- goto yy943;
-yy945:
- ++YYCURSOR;
-yy946:
-#line 359 "strict_cpp.re"
- { goto cppcomment; }
-#line 6259 "strict_cpp_re.inc"
-yy947:
- yych = *++YYCURSOR;
- goto yy946;
-yy948:
- ++YYCURSOR;
-#line 362 "strict_cpp.re"
- {
- if (s->eof && cursor != s->eof)
- {
- --YYCURSOR; // next call returns T_EOF
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\000' in input stream");
- }
-
- --YYCURSOR; // next call returns T_EOF
- if (!s->single_line_only)
- {
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "Unterminated 'C++' style comment");
- }
- BOOST_WAVE_RET(T_CPPCOMMENT);
- }
-#line 6282 "strict_cpp_re.inc"
-yy950:
- ++YYCURSOR;
-#line 380 "strict_cpp.re"
- {
- // flag the error
- BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
- (*s->error_proc)(s, "invalid character '\\%03o' in input stream",
- *--YYCURSOR);
- }
-#line 6292 "strict_cpp_re.inc"
-yy952:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy943;
- }
-}
-#line 386 "strict_cpp.re"
-
-
-/* this subscanner is called whenever a pp_number has been started */
-pp_number:
-{
- cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
- marker = uchar_wrapper(s->ptr);
- limit = uchar_wrapper(s->lim);
-
- if (s->detect_pp_numbers) {
- {
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 64, 0,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 0, 0, 0, 0, 0, 0,
- 0, 64, 64, 64, 64, 128, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 64,
- 0, 64, 64, 64, 64, 128, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 6346 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych == '.') goto yy956;
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy957;
-yy955:
- YYCURSOR = YYMARKER;
- goto yy959;
-yy956:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
-yy957:
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 64) {
- goto yy957;
- }
- if(yych <= 'Z') {
- if(yych == '?') goto yy963;
- if(yych >= 'A') goto yy960;
- } else {
- if(yych <= '\\') {
- if(yych >= '\\') goto yy962;
- } else {
- if(yych == 'e') goto yy960;
- }
- }
-yy959:
-#line 398 "strict_cpp.re"
- { BOOST_WAVE_RET(T_PP_NUMBER); }
-#line 6381 "strict_cpp_re.inc"
-yy960:
- YYMARKER = ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy960;
- }
- if(yych <= '?') {
- if(yych <= '.') {
- if(yych == '+') goto yy957;
- if(yych <= ',') goto yy959;
- goto yy957;
- } else {
- if(yych <= '/') goto yy959;
- if(yych <= '9') goto yy957;
- if(yych <= '>') goto yy959;
- goto yy963;
- }
- } else {
- if(yych <= '\\') {
- if(yych <= '@') goto yy959;
- if(yych <= 'Z') goto yy957;
- if(yych <= '[') goto yy959;
- } else {
- if(yych <= '_') {
- if(yych <= '^') goto yy959;
- goto yy957;
- } else {
- if(yych <= '`') goto yy959;
- if(yych <= 'z') goto yy957;
- goto yy959;
- }
- }
- }
-yy962:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == 'U') goto yy966;
- if(yych == 'u') goto yy965;
- goto yy955;
-yy963:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych != '?') goto yy955;
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych == '/') goto yy962;
- goto yy955;
-yy965:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy974;
- goto yy955;
- } else {
- if(yych <= 'F') goto yy974;
- if(yych <= '`') goto yy955;
- if(yych <= 'f') goto yy974;
- goto yy955;
- }
-yy966:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy967;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy967:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy968;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy968:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy969;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy969:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy970;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy970:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy971;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy971:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy972;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy972:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy973;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy973:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy957;
- goto yy955;
- } else {
- if(yych <= 'F') goto yy957;
- if(yych <= '`') goto yy955;
- if(yych <= 'f') goto yy957;
- goto yy955;
- }
-yy974:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy975;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy975:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych >= ':') goto yy955;
- } else {
- if(yych <= 'F') goto yy976;
- if(yych <= '`') goto yy955;
- if(yych >= 'g') goto yy955;
- }
-yy976:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yych <= '@') {
- if(yych <= '/') goto yy955;
- if(yych <= '9') goto yy957;
- goto yy955;
- } else {
- if(yych <= 'F') goto yy957;
- if(yych <= '`') goto yy955;
- if(yych <= 'f') goto yy957;
- goto yy955;
- }
- }
-}
-#line 399 "strict_cpp.re"
-
- }
- else {
- {
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 224, 224, 224, 224, 224, 224, 224, 224,
- 160, 160, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 6625 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- unsigned int yyaccept = 0;
- if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
- yych = *YYCURSOR;
- if(yych <= '/') {
- if(yych == '.') goto yy984;
- } else {
- if(yych <= '0') goto yy980;
- if(yych <= '9') goto yy982;
- }
-yy979:
- YYCURSOR = YYMARKER;
- if(yyaccept <= 0) {
- goto yy981;
- } else {
- goto yy987;
- }
-yy980:
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yybm[0+yych] & 64) {
- goto yy999;
- }
- if(yych <= 'E') {
- if(yych <= '/') {
- if(yych == '.') goto yy985;
- } else {
- if(yych <= '9') goto yy1002;
- if(yych >= 'E') goto yy995;
- }
- } else {
- if(yych <= 'd') {
- if(yych == 'X') goto yy1001;
- } else {
- if(yych <= 'e') goto yy995;
- if(yych == 'x') goto yy1001;
- }
- }
-yy981:
-#line 406 "strict_cpp.re"
- { goto integer_suffix; }
-#line 6668 "strict_cpp_re.inc"
-yy982:
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 32) {
- goto yy982;
- }
- if(yych <= 'D') {
- if(yych == '.') goto yy985;
- goto yy981;
- } else {
- if(yych <= 'E') goto yy995;
- if(yych == 'e') goto yy995;
- goto yy981;
- }
-yy984:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy979;
- if(yych >= ':') goto yy979;
-yy985:
- yyaccept = 1;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yych <= 'K') {
- if(yych <= 'D') {
- if(yych <= '/') goto yy987;
- if(yych <= '9') goto yy985;
- } else {
- if(yych <= 'E') goto yy988;
- if(yych <= 'F') goto yy989;
- }
- } else {
- if(yych <= 'e') {
- if(yych <= 'L') goto yy990;
- if(yych >= 'e') goto yy988;
- } else {
- if(yych <= 'f') goto yy989;
- if(yych == 'l') goto yy990;
- }
- }
-yy987:
-#line 404 "strict_cpp.re"
- { BOOST_WAVE_RET(T_FLOATLIT); }
-#line 6714 "strict_cpp_re.inc"
-yy988:
- yych = *++YYCURSOR;
- if(yych <= ',') {
- if(yych == '+') goto yy992;
- goto yy979;
- } else {
- if(yych <= '-') goto yy992;
- if(yych <= '/') goto yy979;
- if(yych <= '9') goto yy993;
- goto yy979;
- }
-yy989:
- yych = *++YYCURSOR;
- if(yych == 'L') goto yy991;
- if(yych == 'l') goto yy991;
- goto yy987;
-yy990:
- yych = *++YYCURSOR;
- if(yych == 'F') goto yy991;
- if(yych != 'f') goto yy987;
-yy991:
- yych = *++YYCURSOR;
- goto yy987;
-yy992:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy979;
- if(yych >= ':') goto yy979;
-yy993:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 'K') {
- if(yych <= '9') {
- if(yych <= '/') goto yy987;
- goto yy993;
- } else {
- if(yych == 'F') goto yy989;
- goto yy987;
- }
- } else {
- if(yych <= 'f') {
- if(yych <= 'L') goto yy990;
- if(yych <= 'e') goto yy987;
- goto yy989;
- } else {
- if(yych == 'l') goto yy990;
- goto yy987;
- }
- }
-yy995:
- yych = *++YYCURSOR;
- if(yych <= ',') {
- if(yych != '+') goto yy979;
- } else {
- if(yych <= '-') goto yy996;
- if(yych <= '/') goto yy979;
- if(yych <= '9') goto yy997;
- goto yy979;
- }
-yy996:
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy979;
- if(yych >= ':') goto yy979;
-yy997:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if(yych <= 'K') {
- if(yych <= '9') {
- if(yych <= '/') goto yy987;
- goto yy997;
- } else {
- if(yych == 'F') goto yy989;
- goto yy987;
- }
- } else {
- if(yych <= 'f') {
- if(yych <= 'L') goto yy990;
- if(yych <= 'e') goto yy987;
- goto yy989;
- } else {
- if(yych == 'l') goto yy990;
- goto yy987;
- }
- }
-yy999:
- yyaccept = 0;
- YYMARKER = ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 64) {
- goto yy999;
- }
- if(yych <= '9') {
- if(yych == '.') goto yy985;
- if(yych <= '/') goto yy981;
- goto yy1002;
- } else {
- if(yych <= 'E') {
- if(yych <= 'D') goto yy981;
- goto yy995;
- } else {
- if(yych == 'e') goto yy995;
- goto yy981;
- }
- }
-yy1001:
- yych = *++YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy1004;
- }
- goto yy979;
-yy1002:
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yych <= '9') {
- if(yych == '.') goto yy985;
- if(yych <= '/') goto yy979;
- goto yy1002;
- } else {
- if(yych <= 'E') {
- if(yych <= 'D') goto yy979;
- goto yy995;
- } else {
- if(yych == 'e') goto yy995;
- goto yy979;
- }
- }
-yy1004:
- ++YYCURSOR;
- if(YYLIMIT == YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy1004;
- }
- goto yy981;
- }
-}
-#line 407 "strict_cpp.re"
-
- }
-}
-
-/* this subscanner is called, whenever a Integer was recognized */
-integer_suffix:
-{
- if (s->enable_ms_extensions) {
- {
-
-#line 6865 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *(YYMARKER = YYCURSOR);
- if(yych <= 'h') {
- if(yych <= 'L') {
- if(yych >= 'L') goto yy1010;
- } else {
- if(yych == 'U') goto yy1009;
- }
- } else {
- if(yych <= 'l') {
- if(yych <= 'i') goto yy1011;
- if(yych >= 'l') goto yy1010;
- } else {
- if(yych == 'u') goto yy1009;
- }
- }
-yy1008:
-#line 420 "strict_cpp.re"
- { BOOST_WAVE_RET(T_INTLIT); }
-#line 6887 "strict_cpp_re.inc"
-yy1009:
- yych = *++YYCURSOR;
- if(yych == 'L') goto yy1018;
- if(yych == 'l') goto yy1018;
- goto yy1008;
-yy1010:
- yych = *++YYCURSOR;
- if(yych <= 'U') {
- if(yych == 'L') goto yy1017;
- if(yych <= 'T') goto yy1008;
- goto yy1016;
- } else {
- if(yych <= 'l') {
- if(yych <= 'k') goto yy1008;
- goto yy1017;
- } else {
- if(yych == 'u') goto yy1016;
- goto yy1008;
- }
- }
-yy1011:
- yych = *++YYCURSOR;
- if(yych == '6') goto yy1013;
-yy1012:
- YYCURSOR = YYMARKER;
- goto yy1008;
-yy1013:
- yych = *++YYCURSOR;
- if(yych != '4') goto yy1012;
-yy1014:
- ++YYCURSOR;
-yy1015:
-#line 417 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 6922 "strict_cpp_re.inc"
-yy1016:
- yych = *++YYCURSOR;
- goto yy1008;
-yy1017:
- yych = *++YYCURSOR;
- if(yych == 'U') goto yy1014;
- if(yych == 'u') goto yy1014;
- goto yy1015;
-yy1018:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == 'L') goto yy1014;
- if(yych == 'l') goto yy1014;
- goto yy1008;
- }
-}
-#line 421 "strict_cpp.re"
-
- }
- else {
- {
-
-#line 6944 "strict_cpp_re.inc"
- {
- YYCTYPE yych;
- if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
- yych = *YYCURSOR;
- if(yych <= 'U') {
- if(yych == 'L') goto yy1023;
- if(yych >= 'U') goto yy1022;
- } else {
- if(yych <= 'l') {
- if(yych >= 'l') goto yy1023;
- } else {
- if(yych == 'u') goto yy1022;
- }
- }
-yy1021:
-#line 429 "strict_cpp.re"
- { BOOST_WAVE_RET(T_INTLIT); }
-#line 6962 "strict_cpp_re.inc"
-yy1022:
- yych = *++YYCURSOR;
- if(yych == 'L') goto yy1028;
- if(yych == 'l') goto yy1028;
- goto yy1021;
-yy1023:
- yych = *++YYCURSOR;
- if(yych <= 'U') {
- if(yych == 'L') goto yy1025;
- if(yych <= 'T') goto yy1021;
- } else {
- if(yych <= 'l') {
- if(yych <= 'k') goto yy1021;
- goto yy1025;
- } else {
- if(yych != 'u') goto yy1021;
- }
- }
- yych = *++YYCURSOR;
- goto yy1021;
-yy1025:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == 'U') goto yy1027;
- if(yych == 'u') goto yy1027;
-yy1026:
-#line 426 "strict_cpp.re"
- { BOOST_WAVE_RET(T_LONGINTLIT); }
-#line 6990 "strict_cpp_re.inc"
-yy1027:
- yych = *++YYCURSOR;
- goto yy1026;
-yy1028:
- ++YYCURSOR;
- if((yych = *YYCURSOR) == 'L') goto yy1027;
- if(yych == 'l') goto yy1027;
- goto yy1021;
- }
-}
-#line 430 "strict_cpp.re"
-
- }
-}
+/* Generated by re2c 0.12.1 on Tue Oct 02 09:56:22 2007 */
+#line 1 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+/*=============================================================================
+ Boost.Wave: A Standard compliant C++ preprocessor library
+
+ Copyright (c) 2001 Daniel C. Nuffer
+ Copyright (c) 2001-2007 Hartmut Kaiser.
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is a strict lexer conforming to the Standard as close as possible.
+ It does not allow the '$' to be part of identifiers. If you need the '$'
+ character in identifiers please include the lexer definition provided
+ in the cpp.re file.
+
+ TODO:
+ handle errors better.
+=============================================================================*/
+
+#line 40 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+
+{
+ static const unsigned char yybm[] = {
+ /* table 1 .. 8: 0 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 58, 32, 58, 58, 64, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 58, 58, 50, 58, 58, 58, 58, 56,
+ 58, 58, 154, 58, 58, 58, 58, 58,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 58, 58, 58, 58, 42, 56,
+ 58, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 58, 57, 58, 58, 62,
+ 58, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ /* table 9 .. 12: 256 */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 0, 48, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 32, 0, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 96, 96, 96, 96, 96, 96, 96, 96,
+ 96, 96, 32, 32, 32, 32, 32, 128,
+ 32, 96, 96, 96, 96, 96, 96, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 0, 32, 32, 32,
+ 32, 96, 96, 96, 96, 96, 96, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ };
+
+#line 94 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+
+ if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
+ yych = *YYCURSOR;
+ switch(yych) {
+ case 0x00: goto yy88;
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ case 0x08:
+ case 0x0E:
+ case 0x0F:
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ case 0x14:
+ case 0x15:
+ case 0x16:
+ case 0x17:
+ case 0x18:
+ case 0x19:
+ case 0x1A:
+ case 0x1B:
+ case 0x1C:
+ case 0x1D:
+ case 0x1E:
+ case 0x1F: goto yy91;
+ case 0x09:
+ case 0x0B:
+ case 0x0C: goto yy82;
+ case 0x0A: goto yy85;
+ case 0x0D: goto yy87;
+ case ' ': goto yy84;
+ case '!': goto yy68;
+ case '"': goto yy81;
+ case '#': goto yy45;
+ case '%': goto yy37;
+ case '&': goto yy62;
+ case '\'': goto yy80;
+ case '(': goto yy47;
+ case ')': goto yy49;
+ case '*': goto yy57;
+ case '+': goto yy53;
+ case ',': goto yy74;
+ case '-': goto yy55;
+ case '.': goto yy4;
+ case '/': goto yy2;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy6;
+ case ':': goto yy43;
+ case ';': goto yy51;
+ case '<': goto yy33;
+ case '=': goto yy70;
+ case '>': goto yy72;
+ case '?': goto yy31;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case 'h':
+ case 'j':
+ case 'k':
+ case 'q':
+ case 'y':
+ case 'z': goto yy76;
+ case 'L': goto yy77;
+ case '[': goto yy39;
+ case '\\': goto yy78;
+ case ']': goto yy41;
+ case '^': goto yy59;
+ case '_': goto yy28;
+ case 'a': goto yy8;
+ case 'b': goto yy10;
+ case 'c': goto yy11;
+ case 'd': goto yy12;
+ case 'e': goto yy13;
+ case 'f': goto yy14;
+ case 'g': goto yy15;
+ case 'i': goto yy16;
+ case 'l': goto yy17;
+ case 'm': goto yy18;
+ case 'n': goto yy19;
+ case 'o': goto yy20;
+ case 'p': goto yy21;
+ case 'r': goto yy22;
+ case 's': goto yy23;
+ case 't': goto yy24;
+ case 'u': goto yy25;
+ case 'v': goto yy26;
+ case 'w': goto yy27;
+ case 'x': goto yy61;
+ case '{': goto yy29;
+ case '|': goto yy64;
+ case '}': goto yy35;
+ case '~': goto yy66;
+ default: goto yy90;
+ }
+yy2:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '.') {
+ if(yych == '*') goto yy922;
+ } else {
+ if(yych <= '/') goto yy920;
+ if(yych == '=') goto yy918;
+ }
+#line 178 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDE); }
+#line 238 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy4:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '-') {
+ if(yych == '*') goto yy912;
+ } else {
+ if(yych <= '.') goto yy914;
+ if(yych <= '/') goto yy5;
+ if(yych <= '9') goto yy915;
+ }
+yy5:
+#line 164 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DOT); }
+#line 252 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy6:
+ ++YYCURSOR;
+yy7:
+#line 45 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { goto pp_number; }
+#line 258 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy8:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'r') {
+ if(yych == 'n') goto yy898;
+ goto yy195;
+ } else {
+ if(yych <= 's') goto yy899;
+ if(yych == 'u') goto yy900;
+ goto yy195;
+ }
+yy9:
+#line 243 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_IDENTIFIER); }
+#line 273 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy10:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n') {
+ if(yych == 'i') goto yy880;
+ goto yy195;
+ } else {
+ if(yych <= 'o') goto yy881;
+ if(yych == 'r') goto yy882;
+ goto yy195;
+ }
+yy11:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case 'a': goto yy842;
+ case 'h': goto yy843;
+ case 'l': goto yy844;
+ case 'o': goto yy845;
+ default: goto yy195;
+ }
+yy12:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n') {
+ if(yych == 'e') goto yy811;
+ goto yy195;
+ } else {
+ if(yych <= 'o') goto yy812;
+ if(yych == 'y') goto yy814;
+ goto yy195;
+ }
+yy13:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'm') {
+ if(yych == 'l') goto yy786;
+ goto yy195;
+ } else {
+ if(yych <= 'n') goto yy787;
+ if(yych == 'x') goto yy788;
+ goto yy195;
+ }
+yy14:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case 'a': goto yy767;
+ case 'l': goto yy768;
+ case 'o': goto yy769;
+ case 'r': goto yy770;
+ default: goto yy195;
+ }
+yy15:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy763;
+ goto yy195;
+yy16:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'l') {
+ if(yych == 'f') goto yy747;
+ goto yy195;
+ } else {
+ if(yych <= 'm') goto yy749;
+ if(yych <= 'n') goto yy750;
+ goto yy195;
+ }
+yy17:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy743;
+ goto yy195;
+yy18:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'u') goto yy736;
+ goto yy195;
+yy19:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'd') {
+ if(yych == 'a') goto yy717;
+ goto yy195;
+ } else {
+ if(yych <= 'e') goto yy718;
+ if(yych == 'o') goto yy719;
+ goto yy195;
+ }
+yy20:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'p') goto yy703;
+ if(yych == 'r') goto yy704;
+ goto yy195;
+yy21:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy682;
+ if(yych == 'u') goto yy683;
+ goto yy195;
+yy22:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy654;
+ goto yy195;
+yy23:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 's') {
+ if(yych <= 'g') goto yy195;
+ if(yych <= 'h') goto yy615;
+ if(yych <= 'i') goto yy616;
+ goto yy195;
+ } else {
+ if(yych <= 't') goto yy617;
+ if(yych == 'w') goto yy618;
+ goto yy195;
+ }
+yy24:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'h') {
+ if(yych == 'e') goto yy578;
+ if(yych <= 'g') goto yy195;
+ goto yy579;
+ } else {
+ if(yych <= 'r') {
+ if(yych <= 'q') goto yy195;
+ goto yy580;
+ } else {
+ if(yych == 'y') goto yy581;
+ goto yy195;
+ }
+ }
+yy25:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy561;
+ if(yych == 's') goto yy562;
+ goto yy195;
+yy26:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy543;
+ if(yych == 'o') goto yy544;
+ goto yy195;
+yy27:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'c') goto yy531;
+ if(yych == 'h') goto yy532;
+ goto yy195;
+yy28:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case '_': goto yy442;
+ case 'a': goto yy443;
+ case 'b': goto yy444;
+ case 'c': goto yy445;
+ case 'd': goto yy446;
+ case 'f': goto yy447;
+ case 'i': goto yy448;
+ case 's': goto yy449;
+ default: goto yy195;
+ }
+yy29:
+ ++YYCURSOR;
+#line 128 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE); }
+#line 446 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy31:
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '?') goto yy407;
+yy32:
+#line 153 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_QUESTION_MARK); }
+#line 454 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy33:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= ':') {
+ if(yych == '%') goto yy403;
+ if(yych >= ':') goto yy401;
+ } else {
+ if(yych <= ';') goto yy34;
+ if(yych <= '<') goto yy399;
+ if(yych <= '=') goto yy397;
+ }
+yy34:
+#line 194 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LESS); }
+#line 468 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy35:
+ ++YYCURSOR;
+#line 131 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE); }
+#line 473 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy37:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '<') {
+ if(yych == ':') goto yy388;
+ } else {
+ if(yych <= '=') goto yy390;
+ if(yych <= '>') goto yy392;
+ }
+#line 179 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PERCENT); }
+#line 484 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy39:
+ ++YYCURSOR;
+#line 134 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET); }
+#line 489 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy41:
+ ++YYCURSOR;
+#line 137 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET); }
+#line 494 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy43:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == ':') goto yy384;
+ if(yych == '>') goto yy386;
+#line 151 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_COLON); }
+#line 501 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy45:
+ yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'c') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy261;
+ } else {
+ if(yych <= 0x0C) goto yy261;
+ if(yych >= ' ') goto yy261;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '#') goto yy272;
+ } else {
+ if(yych <= '/') goto yy261;
+ if(yych == '?') goto yy271;
+ }
+ }
+ } else {
+ if(yych <= 'p') {
+ if(yych <= 'i') {
+ if(yych <= 'e') goto yy261;
+ if(yych >= 'i') goto yy261;
+ } else {
+ if(yych == 'l') goto yy261;
+ if(yych >= 'p') goto yy261;
+ }
+ } else {
+ if(yych <= 't') {
+ if(yych == 'r') goto yy261;
+ } else {
+ if(yych == 'v') goto yy46;
+ if(yych <= 'w') goto yy261;
+ }
+ }
+ }
+yy46:
+#line 140 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND); }
+#line 542 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy47:
+ ++YYCURSOR;
+#line 148 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTPAREN); }
+#line 547 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy49:
+ ++YYCURSOR;
+#line 149 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTPAREN); }
+#line 552 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy51:
+ ++YYCURSOR;
+#line 150 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SEMICOLON); }
+#line 557 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy53:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '+') goto yy256;
+ if(yych == '=') goto yy258;
+#line 175 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PLUS); }
+#line 564 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy55:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '<') {
+ if(yych == '-') goto yy250;
+ } else {
+ if(yych <= '=') goto yy252;
+ if(yych <= '>') goto yy248;
+ }
+#line 176 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_MINUS); }
+#line 575 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy57:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy246;
+#line 177 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_STAR); }
+#line 581 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy59:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy244;
+#line 180 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_XOR); }
+#line 587 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy61:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy237;
+ goto yy195;
+yy62:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '&') goto yy233;
+ if(yych == '=') goto yy235;
+#line 183 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_AND); }
+#line 599 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy64:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '>') {
+ if(yych == '=') goto yy228;
+ } else {
+ if(yych <= '?') goto yy225;
+ if(yych == '|') goto yy226;
+ }
+yy65:
+#line 185 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OR); }
+#line 612 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy66:
+ ++YYCURSOR;
+#line 188 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_COMPL); }
+#line 617 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy68:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy223;
+#line 191 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_NOT); }
+#line 623 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy70:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy221;
+#line 193 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ASSIGN); }
+#line 629 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy72:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) <= '<') goto yy73;
+ if(yych <= '=') goto yy215;
+ if(yych <= '>') goto yy217;
+yy73:
+#line 195 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_GREATER); }
+#line 638 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy74:
+ ++YYCURSOR;
+#line 227 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_COMMA); }
+#line 643 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy76:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy195;
+yy77:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych <= '\'') {
+ if(yych == '"') goto yy96;
+ if(yych <= '&') goto yy9;
+ goto yy214;
+ } else {
+ if(yych <= '?') {
+ if(yych <= '>') goto yy9;
+ goto yy197;
+ } else {
+ if(yych == '\\') goto yy196;
+ goto yy9;
+ }
+ }
+yy78:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'U') goto yy186;
+ if(yych == 'u') goto yy185;
+yy79:
+#line 299 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); }
+#line 675 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy80:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy142;
+ if(yych <= 0x0A) goto yy79;
+ goto yy142;
+ } else {
+ if(yych <= 0x1F) goto yy79;
+ if(yych == '\'') goto yy79;
+ goto yy142;
+ }
+yy81:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy97;
+ goto yy79;
+ } else {
+ if(yych <= 0x0C) goto yy97;
+ if(yych <= 0x1F) goto yy79;
+ goto yy97;
+ }
+yy82:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy95;
+yy83:
+#line 279 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SPACE); }
+#line 706 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy84:
+ yych = *++YYCURSOR;
+ goto yy95;
+yy85:
+ ++YYCURSOR;
+yy86:
+#line 282 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_NEWLINE);
+ }
+#line 719 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy87:
+ yych = *++YYCURSOR;
+ if(yych == 0x0A) goto yy93;
+ goto yy86;
+yy88:
+ ++YYCURSOR;
+#line 289 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+ BOOST_WAVE_RET(T_EOF);
+ }
+#line 736 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy90:
+ yych = *++YYCURSOR;
+ goto yy79;
+yy91:
+ ++YYCURSOR;
+#line 302 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 749 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy93:
+ yych = *++YYCURSOR;
+ goto yy86;
+yy94:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy95:
+ if(yybm[256+yych] & 16) {
+ goto yy94;
+ }
+ goto yy83;
+yy96:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy97:
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy98:
+ YYCURSOR = YYMARKER;
+ if(yyaccept <= 51) {
+ if(yyaccept <= 25) {
+ if(yyaccept <= 12) {
+ if(yyaccept <= 6) {
+ if(yyaccept <= 3) {
+ if(yyaccept <= 1) {
+ if(yyaccept <= 0) {
+ goto yy5;
+ } else {
+ goto yy9;
+ }
+ } else {
+ if(yyaccept <= 2) {
+ goto yy32;
+ } else {
+ goto yy46;
+ }
+ }
+ } else {
+ if(yyaccept <= 5) {
+ if(yyaccept <= 4) {
+ goto yy65;
+ } else {
+ goto yy79;
+ }
+ } else {
+ goto yy102;
+ }
+ }
+ } else {
+ if(yyaccept <= 9) {
+ if(yyaccept <= 8) {
+ if(yyaccept <= 7) {
+ goto yy152;
+ } else {
+ goto yy239;
+ }
+ } else {
+ goto yy243;
+ }
+ } else {
+ if(yyaccept <= 11) {
+ if(yyaccept <= 10) {
+ goto yy279;
+ } else {
+ goto yy294;
+ }
+ } else {
+ goto yy389;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 19) {
+ if(yyaccept <= 16) {
+ if(yyaccept <= 14) {
+ if(yyaccept <= 13) {
+ goto yy417;
+ } else {
+ goto yy421;
+ }
+ } else {
+ if(yyaccept <= 15) {
+ goto yy425;
+ } else {
+ goto yy456;
+ }
+ }
+ } else {
+ if(yyaccept <= 18) {
+ if(yyaccept <= 17) {
+ goto yy462;
+ } else {
+ goto yy470;
+ }
+ } else {
+ goto yy478;
+ }
+ }
+ } else {
+ if(yyaccept <= 22) {
+ if(yyaccept <= 21) {
+ if(yyaccept <= 20) {
+ goto yy483;
+ } else {
+ goto yy488;
+ }
+ } else {
+ goto yy491;
+ }
+ } else {
+ if(yyaccept <= 24) {
+ if(yyaccept <= 23) {
+ goto yy501;
+ } else {
+ goto yy507;
+ }
+ } else {
+ goto yy510;
+ }
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 38) {
+ if(yyaccept <= 32) {
+ if(yyaccept <= 29) {
+ if(yyaccept <= 27) {
+ if(yyaccept <= 26) {
+ goto yy517;
+ } else {
+ goto yy524;
+ }
+ } else {
+ if(yyaccept <= 28) {
+ goto yy526;
+ } else {
+ goto yy528;
+ }
+ }
+ } else {
+ if(yyaccept <= 31) {
+ if(yyaccept <= 30) {
+ goto yy530;
+ } else {
+ goto yy536;
+ }
+ } else {
+ goto yy542;
+ }
+ }
+ } else {
+ if(yyaccept <= 35) {
+ if(yyaccept <= 34) {
+ if(yyaccept <= 33) {
+ goto yy552;
+ } else {
+ goto yy554;
+ }
+ } else {
+ goto yy560;
+ }
+ } else {
+ if(yyaccept <= 37) {
+ if(yyaccept <= 36) {
+ goto yy566;
+ } else {
+ goto yy574;
+ }
+ } else {
+ goto yy577;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 45) {
+ if(yyaccept <= 42) {
+ if(yyaccept <= 40) {
+ if(yyaccept <= 39) {
+ goto yy590;
+ } else {
+ goto yy592;
+ }
+ } else {
+ if(yyaccept <= 41) {
+ goto yy595;
+ } else {
+ goto yy598;
+ }
+ }
+ } else {
+ if(yyaccept <= 44) {
+ if(yyaccept <= 43) {
+ goto yy600;
+ } else {
+ goto yy605;
+ }
+ } else {
+ goto yy607;
+ }
+ }
+ } else {
+ if(yyaccept <= 48) {
+ if(yyaccept <= 47) {
+ if(yyaccept <= 46) {
+ goto yy614;
+ } else {
+ goto yy623;
+ }
+ } else {
+ goto yy629;
+ }
+ } else {
+ if(yyaccept <= 50) {
+ if(yyaccept <= 49) {
+ goto yy633;
+ } else {
+ goto yy639;
+ }
+ } else {
+ goto yy645;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 77) {
+ if(yyaccept <= 64) {
+ if(yyaccept <= 58) {
+ if(yyaccept <= 55) {
+ if(yyaccept <= 53) {
+ if(yyaccept <= 52) {
+ goto yy649;
+ } else {
+ goto yy653;
+ }
+ } else {
+ if(yyaccept <= 54) {
+ goto yy661;
+ } else {
+ goto yy675;
+ }
+ }
+ } else {
+ if(yyaccept <= 57) {
+ if(yyaccept <= 56) {
+ goto yy681;
+ } else {
+ goto yy688;
+ }
+ } else {
+ goto yy697;
+ }
+ }
+ } else {
+ if(yyaccept <= 61) {
+ if(yyaccept <= 60) {
+ if(yyaccept <= 59) {
+ goto yy702;
+ } else {
+ goto yy705;
+ }
+ } else {
+ goto yy709;
+ }
+ } else {
+ if(yyaccept <= 63) {
+ if(yyaccept <= 62) {
+ goto yy716;
+ } else {
+ goto yy721;
+ }
+ } else {
+ goto yy725;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 71) {
+ if(yyaccept <= 68) {
+ if(yyaccept <= 66) {
+ if(yyaccept <= 65) {
+ goto yy727;
+ } else {
+ goto yy735;
+ }
+ } else {
+ if(yyaccept <= 67) {
+ goto yy742;
+ } else {
+ goto yy746;
+ }
+ }
+ } else {
+ if(yyaccept <= 70) {
+ if(yyaccept <= 69) {
+ goto yy748;
+ } else {
+ goto yy753;
+ }
+ } else {
+ goto yy757;
+ }
+ }
+ } else {
+ if(yyaccept <= 74) {
+ if(yyaccept <= 73) {
+ if(yyaccept <= 72) {
+ goto yy762;
+ } else {
+ goto yy766;
+ }
+ } else {
+ goto yy775;
+ }
+ } else {
+ if(yyaccept <= 76) {
+ if(yyaccept <= 75) {
+ goto yy777;
+ } else {
+ goto yy781;
+ }
+ } else {
+ goto yy785;
+ }
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 90) {
+ if(yyaccept <= 84) {
+ if(yyaccept <= 81) {
+ if(yyaccept <= 79) {
+ if(yyaccept <= 78) {
+ goto yy794;
+ } else {
+ goto yy799;
+ }
+ } else {
+ if(yyaccept <= 80) {
+ goto yy804;
+ } else {
+ goto yy807;
+ }
+ }
+ } else {
+ if(yyaccept <= 83) {
+ if(yyaccept <= 82) {
+ goto yy810;
+ } else {
+ goto yy813;
+ }
+ } else {
+ goto yy825;
+ }
+ }
+ } else {
+ if(yyaccept <= 87) {
+ if(yyaccept <= 86) {
+ if(yyaccept <= 85) {
+ goto yy830;
+ } else {
+ goto yy836;
+ }
+ } else {
+ goto yy841;
+ }
+ } else {
+ if(yyaccept <= 89) {
+ if(yyaccept <= 88) {
+ goto yy850;
+ } else {
+ goto yy857;
+ }
+ } else {
+ goto yy859;
+ }
+ }
+ }
+ } else {
+ if(yyaccept <= 97) {
+ if(yyaccept <= 94) {
+ if(yyaccept <= 92) {
+ if(yyaccept <= 91) {
+ goto yy865;
+ } else {
+ goto yy869;
+ }
+ } else {
+ if(yyaccept <= 93) {
+ goto yy872;
+ } else {
+ goto yy877;
+ }
+ }
+ } else {
+ if(yyaccept <= 96) {
+ if(yyaccept <= 95) {
+ goto yy879;
+ } else {
+ goto yy886;
+ }
+ } else {
+ goto yy889;
+ }
+ }
+ } else {
+ if(yyaccept <= 100) {
+ if(yyaccept <= 99) {
+ if(yyaccept <= 98) {
+ goto yy894;
+ } else {
+ goto yy897;
+ }
+ } else {
+ goto yy903;
+ }
+ } else {
+ if(yyaccept <= 102) {
+ if(yyaccept <= 101) {
+ goto yy905;
+ } else {
+ goto yy907;
+ }
+ } else {
+ goto yy911;
+ }
+ }
+ }
+ }
+ }
+ }
+yy99:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy112;
+yy100:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '`') {
+ if(yych <= '7') {
+ if(yych <= '&') {
+ if(yych == '"') goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= '\'') goto yy96;
+ if(yych <= '/') goto yy98;
+ goto yy107;
+ }
+ } else {
+ if(yych <= 'T') {
+ if(yych == '?') goto yy105;
+ goto yy98;
+ } else {
+ if(yych <= 'U') goto yy104;
+ if(yych == '\\') goto yy96;
+ goto yy98;
+ }
+ }
+ } else {
+ if(yych <= 'r') {
+ if(yych <= 'f') {
+ if(yych <= 'b') goto yy96;
+ if(yych <= 'e') goto yy98;
+ goto yy96;
+ } else {
+ if(yych == 'n') goto yy96;
+ if(yych <= 'q') goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 's') goto yy98;
+ if(yych <= 't') goto yy96;
+ goto yy103;
+ } else {
+ if(yych <= 'v') goto yy96;
+ if(yych == 'x') goto yy106;
+ goto yy98;
+ }
+ }
+ }
+yy101:
+ ++YYCURSOR;
+yy102:
+#line 249 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_STRINGLIT); }
+#line 1251 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy103:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy138;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy138;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy138;
+ goto yy98;
+ }
+yy104:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy131;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy131;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy131;
+ goto yy98;
+ }
+yy105:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy111;
+ goto yy100;
+yy106:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 64) {
+ goto yy109;
+ }
+ goto yy98;
+yy107:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '"') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '!') goto yy96;
+ goto yy101;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy96;
+ if(yych >= '8') goto yy96;
+ } else {
+ if(yych <= '?') goto yy99;
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy109:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 64) {
+ goto yy109;
+ }
+ if(yych <= '!') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= '?') {
+ if(yych <= '"') goto yy101;
+ if(yych <= '>') goto yy96;
+ goto yy99;
+ } else {
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+yy111:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych >= '\\') goto yy100;
+yy112:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 128) {
+ goto yy112;
+ }
+ if(yych <= '!') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= '/') {
+ if(yych <= '"') goto yy101;
+ if(yych <= '.') goto yy96;
+ } else {
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+yy114:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 1) {
+ goto yy114;
+ }
+ if(yych <= '7') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy118;
+ if(yych <= '/') goto yy96;
+ goto yy107;
+ }
+ }
+ } else {
+ if(yych <= 'U') {
+ if(yych == '?') goto yy119;
+ if(yych <= 'T') goto yy96;
+ goto yy117;
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 't') goto yy96;
+ } else {
+ if(yych == 'x') goto yy109;
+ goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ goto yy128;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ goto yy128;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych <= 'f') goto yy128;
+ goto yy96;
+ }
+ }
+ }
+yy117:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ goto yy121;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ goto yy121;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych <= 'f') goto yy121;
+ goto yy96;
+ }
+ }
+ }
+yy118:
+ yyaccept = 6;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy102;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy119:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych >= '\\') goto yy100;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 128) {
+ goto yy112;
+ }
+ if(yych <= '!') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy96;
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ }
+ } else {
+ if(yych <= '/') {
+ if(yych <= '"') goto yy101;
+ if(yych <= '.') goto yy96;
+ goto yy114;
+ } else {
+ if(yych == '\\') goto yy100;
+ goto yy96;
+ }
+ }
+yy121:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy128:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy96;
+ if(yych <= 0x0A) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '!') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy96;
+ } else {
+ if(yych <= '"') goto yy101;
+ if(yych <= '/') goto yy96;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy99;
+ if(yych <= '@') goto yy96;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy96;
+ goto yy100;
+ } else {
+ if(yych <= '`') goto yy96;
+ if(yych >= 'g') goto yy96;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[256+yych] & 32) {
+ goto yy96;
+ }
+ if(yych <= '!') goto yy98;
+ if(yych <= '"') goto yy101;
+ if(yych <= '[') goto yy99;
+ goto yy100;
+yy131:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy132;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy132:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy133;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy133:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy134;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy134:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy135;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy135:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy136;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy136:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy137;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy137:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy96;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy96;
+ goto yy98;
+ }
+yy138:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy139;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy139:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy140;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy140:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy96;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy96;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy96;
+ goto yy98;
+ }
+yy141:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy142:
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych >= '\\') goto yy144;
+yy143:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy156;
+yy144:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '`') {
+ if(yych <= '7') {
+ if(yych <= '&') {
+ if(yych == '"') goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= '\'') goto yy141;
+ if(yych <= '/') goto yy98;
+ goto yy149;
+ }
+ } else {
+ if(yych <= 'T') {
+ if(yych == '?') goto yy147;
+ goto yy98;
+ } else {
+ if(yych <= 'U') goto yy146;
+ if(yych == '\\') goto yy141;
+ goto yy98;
+ }
+ }
+ } else {
+ if(yych <= 'r') {
+ if(yych <= 'f') {
+ if(yych <= 'b') goto yy141;
+ if(yych <= 'e') goto yy98;
+ goto yy141;
+ } else {
+ if(yych == 'n') goto yy141;
+ if(yych <= 'q') goto yy98;
+ goto yy141;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 's') goto yy98;
+ if(yych <= 't') goto yy141;
+ } else {
+ if(yych <= 'v') goto yy141;
+ if(yych == 'x') goto yy148;
+ goto yy98;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy182;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy182;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy182;
+ goto yy98;
+ }
+yy146:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy175;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy175;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy175;
+ goto yy98;
+ }
+yy147:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy155;
+ goto yy144;
+yy148:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy153;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy153;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy153;
+ goto yy98;
+ }
+yy149:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '\'') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy141;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '&') goto yy141;
+ goto yy151;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy141;
+ if(yych >= '8') goto yy141;
+ } else {
+ if(yych <= '?') goto yy143;
+ if(yych == '\\') goto yy144;
+ goto yy141;
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy151:
+ ++YYCURSOR;
+yy152:
+#line 246 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CHARLIT); }
+#line 2098 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy153:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ goto yy153;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ goto yy153;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych <= 'f') goto yy153;
+ goto yy141;
+ }
+ }
+ }
+yy155:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych >= '\\') goto yy144;
+yy156:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '\'') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy141;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '&') goto yy141;
+ goto yy151;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych != '/') goto yy141;
+ } else {
+ if(yych <= '?') goto yy156;
+ if(yych == '\\') goto yy144;
+ goto yy141;
+ }
+ }
+yy158:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '>') {
+ if(yych <= 0x1F) {
+ if(yych <= 0x09) {
+ if(yych <= 0x08) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= 0x0A) goto yy98;
+ if(yych <= 0x0C) goto yy141;
+ goto yy98;
+ }
+ } else {
+ if(yych <= '\'') {
+ if(yych <= '&') goto yy141;
+ goto yy162;
+ } else {
+ if(yych <= '/') goto yy141;
+ if(yych <= '7') goto yy149;
+ goto yy141;
+ }
+ }
+ } else {
+ if(yych <= '\\') {
+ if(yych <= 'T') {
+ if(yych <= '?') goto yy163;
+ goto yy141;
+ } else {
+ if(yych <= 'U') goto yy161;
+ if(yych <= '[') goto yy141;
+ goto yy158;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 't') goto yy141;
+ } else {
+ if(yych == 'x') goto yy153;
+ goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ goto yy172;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ goto yy172;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych <= 'f') goto yy172;
+ goto yy141;
+ }
+ }
+ }
+yy161:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ goto yy165;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ goto yy165;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych <= 'f') goto yy165;
+ goto yy141;
+ }
+ }
+ }
+yy162:
+ yyaccept = 7;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy152;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy163:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych >= '\\') goto yy144;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '\'') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy141;
+ if(yych <= 0x1F) goto yy98;
+ if(yych <= '&') goto yy141;
+ goto yy151;
+ }
+ } else {
+ if(yych <= '>') {
+ if(yych == '/') goto yy158;
+ goto yy141;
+ } else {
+ if(yych <= '?') goto yy156;
+ if(yych == '\\') goto yy144;
+ goto yy141;
+ }
+ }
+yy165:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy172:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych <= 0x0C) {
+ if(yych == 0x09) goto yy141;
+ if(yych <= 0x0A) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '&') {
+ if(yych <= 0x1F) goto yy98;
+ goto yy141;
+ } else {
+ if(yych <= '\'') goto yy151;
+ if(yych <= '/') goto yy141;
+ }
+ }
+ } else {
+ if(yych <= 'F') {
+ if(yych == '?') goto yy143;
+ if(yych <= '@') goto yy141;
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '[') goto yy141;
+ goto yy144;
+ } else {
+ if(yych <= '`') goto yy141;
+ if(yych >= 'g') goto yy141;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 2) {
+ goto yy141;
+ }
+ if(yych <= '&') goto yy98;
+ if(yych <= '\'') goto yy151;
+ if(yych <= '[') goto yy143;
+ goto yy144;
+yy175:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy176;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy176:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy177;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy177:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy178;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy178:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy179;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy179:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy180;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy180:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy181;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy181:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy141;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy141;
+ goto yy98;
+ }
+yy182:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy183;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy183:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy184;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy184:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy141;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy141;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy141;
+ goto yy98;
+ }
+yy185:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy211;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy211;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy211;
+ goto yy98;
+ }
+yy186:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy187;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy187:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy188;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy188:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy189;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy189:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy190;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy190:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy191;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy191:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy192;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy192:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy193;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy193:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy194:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy195:
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych != '\\') goto yy9;
+yy196:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == 'U') goto yy200;
+ if(yych == 'u') goto yy199;
+ goto yy98;
+yy197:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych != '?') goto yy98;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '/') goto yy196;
+ goto yy98;
+yy199:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy208;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy208;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy208;
+ goto yy98;
+ }
+yy200:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy201;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy201:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy202;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy202:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy203;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy203:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy204;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy204:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy205;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy205:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy206;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy206:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy207;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy207:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy194;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy194;
+ goto yy98;
+ }
+yy208:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy209;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy209:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy210;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy210:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy194;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy194;
+ goto yy98;
+ }
+yy211:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy212;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy212:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych >= ':') goto yy98;
+ } else {
+ if(yych <= 'F') goto yy213;
+ if(yych <= '`') goto yy98;
+ if(yych >= 'g') goto yy98;
+ }
+yy213:
+ yych = *++YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy98;
+ if(yych <= '9') goto yy194;
+ goto yy98;
+ } else {
+ if(yych <= 'F') goto yy194;
+ if(yych <= '`') goto yy98;
+ if(yych <= 'f') goto yy194;
+ goto yy98;
+ }
+yy214:
+ yych = *++YYCURSOR;
+ if(yych == '\'') goto yy98;
+ goto yy142;
+yy215:
+ ++YYCURSOR;
+#line 217 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_GREATEREQUAL); }
+#line 3028 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy217:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy219;
+#line 210 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHT); }
+#line 3034 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy219:
+ ++YYCURSOR;
+#line 211 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); }
+#line 3039 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy221:
+ ++YYCURSOR;
+#line 213 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_EQUAL); }
+#line 3044 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy223:
+ ++YYCURSOR;
+#line 214 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_NOTEQUAL); }
+#line 3049 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy225:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy230;
+ goto yy98;
+yy226:
+ ++YYCURSOR;
+#line 220 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR); }
+#line 3058 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy228:
+ ++YYCURSOR;
+#line 206 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN); }
+#line 3063 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy230:
+ yych = *++YYCURSOR;
+ if(yych != '!') goto yy98;
+ ++YYCURSOR;
+#line 222 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3070 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy233:
+ ++YYCURSOR;
+#line 218 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ANDAND); }
+#line 3075 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy235:
+ ++YYCURSOR;
+#line 204 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ANDASSIGN); }
+#line 3080 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy237:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 8;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy239;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy240;
+ if(yych <= '`') goto yy239;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy239:
+#line 182 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); }
+#line 3107 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy240:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 9;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy243:
+#line 202 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); }
+#line 3125 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy244:
+ ++YYCURSOR;
+#line 201 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN); }
+#line 3130 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy246:
+ ++YYCURSOR;
+#line 198 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_STARASSIGN); }
+#line 3135 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy248:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '*') goto yy254;
+#line 238 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ARROW); }
+#line 3141 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy250:
+ ++YYCURSOR;
+#line 226 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_MINUSMINUS); }
+#line 3146 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy252:
+ ++YYCURSOR;
+#line 197 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_MINUSASSIGN); }
+#line 3151 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy254:
+ ++YYCURSOR;
+#line 229 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_ARROW);
+ }
+ else {
+ BOOST_WAVE_RET(T_ARROWSTAR);
+ }
+ }
+#line 3164 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy256:
+ ++YYCURSOR;
+#line 225 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PLUSPLUS); }
+#line 3169 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy258:
+ ++YYCURSOR;
+#line 196 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PLUSASSIGN); }
+#line 3174 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy260:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+ yych = *YYCURSOR;
+yy261:
+ if(yych <= 'h') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy260;
+ goto yy98;
+ } else {
+ if(yych <= 0x0C) goto yy260;
+ if(yych <= 0x1F) goto yy98;
+ goto yy260;
+ }
+ } else {
+ if(yych <= 'c') {
+ if(yych != '/') goto yy98;
+ } else {
+ if(yych <= 'd') goto yy269;
+ if(yych <= 'e') goto yy263;
+ goto yy98;
+ }
+ }
+ } else {
+ if(yych <= 'q') {
+ if(yych <= 'l') {
+ if(yych <= 'i') goto yy270;
+ if(yych <= 'k') goto yy98;
+ goto yy267;
+ } else {
+ if(yych == 'p') goto yy266;
+ goto yy98;
+ }
+ } else {
+ if(yych <= 'u') {
+ if(yych <= 'r') goto yy264;
+ if(yych <= 't') goto yy98;
+ goto yy268;
+ } else {
+ if(yych == 'w') goto yy265;
+ goto yy98;
+ }
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '*') goto yy377;
+ goto yy98;
+yy263:
+ yych = *++YYCURSOR;
+ if(yych <= 'm') {
+ if(yych == 'l') goto yy353;
+ goto yy98;
+ } else {
+ if(yych <= 'n') goto yy354;
+ if(yych == 'r') goto yy355;
+ goto yy98;
+ }
+yy264:
+ yych = *++YYCURSOR;
+ if(yych == 'e') goto yy347;
+ goto yy98;
+yy265:
+ yych = *++YYCURSOR;
+ if(yych == 'a') goto yy340;
+ goto yy98;
+yy266:
+ yych = *++YYCURSOR;
+ if(yych == 'r') goto yy334;
+ goto yy98;
+yy267:
+ yych = *++YYCURSOR;
+ if(yych == 'i') goto yy330;
+ goto yy98;
+yy268:
+ yych = *++YYCURSOR;
+ if(yych == 'n') goto yy325;
+ goto yy98;
+yy269:
+ yych = *++YYCURSOR;
+ if(yych == 'e') goto yy319;
+ goto yy98;
+yy270:
+ yych = *++YYCURSOR;
+ if(yych == 'f') goto yy278;
+ if(yych == 'n') goto yy277;
+ goto yy98;
+yy271:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy274;
+ goto yy98;
+yy272:
+ ++YYCURSOR;
+#line 143 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND); }
+#line 3272 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy274:
+ yych = *++YYCURSOR;
+ if(yych != '=') goto yy98;
+ ++YYCURSOR;
+#line 144 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3279 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy277:
+ yych = *++YYCURSOR;
+ if(yych == 'c') goto yy289;
+ goto yy98;
+yy278:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy281;
+ if(yych == 'n') goto yy280;
+yy279:
+#line 261 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_IF); }
+#line 3292 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy280:
+ yych = *++YYCURSOR;
+ if(yych == 'd') goto yy285;
+ goto yy98;
+yy281:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ ++YYCURSOR;
+#line 262 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFDEF); }
+#line 3305 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy285:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ ++YYCURSOR;
+#line 263 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_IFNDEF); }
+#line 3314 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy289:
+ yych = *++YYCURSOR;
+ if(yych != 'l') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'u') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'd') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yyaccept = 11;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '_') goto yy295;
+ goto yy297;
+yy294:
+#line 259 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_INCLUDE); }
+#line 3331 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy295:
+ yych = *++YYCURSOR;
+ if(yych == 'n') goto yy316;
+ goto yy98;
+yy296:
+ yyaccept = 11;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+yy297:
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy296;
+ goto yy294;
+ } else {
+ if(yych <= 0x0C) goto yy296;
+ if(yych <= 0x1F) goto yy294;
+ goto yy296;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '"') goto yy300;
+ goto yy294;
+ } else {
+ if(yych <= '/') goto yy298;
+ if(yych == '<') goto yy299;
+ goto yy294;
+ }
+ }
+yy298:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '*') goto yy309;
+ goto yy98;
+yy299:
+ yych = *++YYCURSOR;
+ if(yych == '>') goto yy98;
+ goto yy306;
+yy300:
+ yych = *++YYCURSOR;
+ if(yych == '"') goto yy98;
+ goto yy302;
+yy301:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy302:
+ if(yybm[0+yych] & 8) {
+ goto yy301;
+ }
+ if(yych <= '!') goto yy98;
+ ++YYCURSOR;
+#line 256 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_QHEADER); }
+#line 3387 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy305:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+yy306:
+ if(yybm[0+yych] & 16) {
+ goto yy305;
+ }
+ if(yych <= '=') goto yy98;
+ ++YYCURSOR;
+#line 253 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_HHEADER); }
+#line 3400 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy309:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy309;
+ }
+ if(yych == 0x0D) goto yy311;
+ if(yych <= ')') goto yy98;
+ goto yy313;
+yy311:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy309;
+ }
+ if(yych == 0x0D) goto yy311;
+ if(yych <= ')') goto yy98;
+yy313:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy313;
+ }
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy309;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych == '/') goto yy296;
+ goto yy309;
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy309;
+ }
+ if(yych == 0x0D) goto yy311;
+ if(yych <= ')') goto yy98;
+ goto yy313;
+yy316:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'x') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych == 't') goto yy296;
+ goto yy98;
+yy319:
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ ++YYCURSOR;
+#line 267 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_DEFINE); }
+#line 3464 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy325:
+ yych = *++YYCURSOR;
+ if(yych != 'd') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'f') goto yy98;
+ ++YYCURSOR;
+#line 268 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_UNDEF); }
+#line 3475 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy330:
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ ++YYCURSOR;
+#line 269 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_LINE); }
+#line 3484 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy334:
+ yych = *++YYCURSOR;
+ if(yych != 'a') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'm') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'a') goto yy98;
+ ++YYCURSOR;
+#line 271 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_PRAGMA); }
+#line 3497 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy340:
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ ++YYCURSOR;
+#line 273 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_WARNING); }
+#line 3512 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy347:
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'o') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ ++YYCURSOR;
+#line 275 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_REGION); }
+#line 3525 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy353:
+ yych = *++YYCURSOR;
+ if(yych == 'i') goto yy371;
+ if(yych == 's') goto yy372;
+ goto yy98;
+yy354:
+ yych = *++YYCURSOR;
+ if(yych == 'd') goto yy360;
+ goto yy98;
+yy355:
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'o') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'r') goto yy98;
+ ++YYCURSOR;
+#line 270 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ERROR); }
+#line 3545 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy360:
+ yych = *++YYCURSOR;
+ if(yych == 'i') goto yy361;
+ if(yych == 'r') goto yy362;
+ goto yy98;
+yy361:
+ yych = *++YYCURSOR;
+ if(yych == 'f') goto yy369;
+ goto yy98;
+yy362:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'g') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'i') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'o') goto yy98;
+ yych = *++YYCURSOR;
+ if(yych != 'n') goto yy98;
+ ++YYCURSOR;
+#line 276 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); }
+#line 3569 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy369:
+ ++YYCURSOR;
+#line 266 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ENDIF); }
+#line 3574 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy371:
+ yych = *++YYCURSOR;
+ if(yych == 'f') goto yy375;
+ goto yy98;
+yy372:
+ yych = *++YYCURSOR;
+ if(yych != 'e') goto yy98;
+ ++YYCURSOR;
+#line 264 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELSE); }
+#line 3585 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy375:
+ ++YYCURSOR;
+#line 265 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_ELIF); }
+#line 3590 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy377:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych == '*') goto yy381;
+ goto yy377;
+ }
+yy379:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ goto yy379;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych != '*') goto yy377;
+ }
+yy381:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x1F) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ if(yych >= 0x0E) goto yy98;
+ } else {
+ if(yych <= '*') {
+ if(yych <= ')') goto yy377;
+ goto yy381;
+ } else {
+ if(yych == '/') goto yy260;
+ goto yy377;
+ }
+ }
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= 0x0D) {
+ if(yych <= 0x08) goto yy98;
+ if(yych <= 0x0C) goto yy377;
+ goto yy379;
+ } else {
+ if(yych <= 0x1F) goto yy98;
+ if(yych == '*') goto yy381;
+ goto yy377;
+ }
+yy384:
+ ++YYCURSOR;
+#line 155 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_COLON);
+ }
+ else {
+ BOOST_WAVE_RET(T_COLON_COLON);
+ }
+ }
+#line 3656 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy386:
+ ++YYCURSOR;
+#line 139 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); }
+#line 3661 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy388:
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'e') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy261;
+ } else {
+ if(yych <= 0x0C) goto yy261;
+ if(yych >= ' ') goto yy261;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '%') goto yy394;
+ } else {
+ if(yych <= '/') goto yy261;
+ if(yych >= 'd') goto yy261;
+ }
+ }
+ } else {
+ if(yych <= 'p') {
+ if(yych <= 'k') {
+ if(yych == 'i') goto yy261;
+ } else {
+ if(yych <= 'l') goto yy261;
+ if(yych >= 'p') goto yy261;
+ }
+ } else {
+ if(yych <= 't') {
+ if(yych == 'r') goto yy261;
+ } else {
+ if(yych == 'v') goto yy389;
+ if(yych <= 'w') goto yy261;
+ }
+ }
+ }
+yy389:
+#line 141 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_ALT); }
+#line 3701 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy390:
+ ++YYCURSOR;
+#line 200 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PERCENTASSIGN); }
+#line 3706 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy392:
+ ++YYCURSOR;
+#line 133 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); }
+#line 3711 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy394:
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy98;
+ ++YYCURSOR;
+#line 147 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_ALT); }
+#line 3718 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy397:
+ ++YYCURSOR;
+#line 216 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LESSEQUAL); }
+#line 3723 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy399:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy405;
+#line 209 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFT); }
+#line 3729 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy401:
+ ++YYCURSOR;
+#line 136 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); }
+#line 3734 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy403:
+ ++YYCURSOR;
+#line 130 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_ALT); }
+#line 3739 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy405:
+ ++YYCURSOR;
+#line 212 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); }
+#line 3744 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy407:
+ yych = *++YYCURSOR;
+ switch(yych) {
+ case '!': goto yy420;
+ case '\'': goto yy418;
+ case '(': goto yy412;
+ case ')': goto yy414;
+ case '-': goto yy422;
+ case '/': goto yy424;
+ case '<': goto yy408;
+ case '=': goto yy416;
+ case '>': goto yy410;
+ default: goto yy98;
+ }
+yy408:
+ ++YYCURSOR;
+#line 129 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); }
+#line 3763 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy410:
+ ++YYCURSOR;
+#line 132 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); }
+#line 3768 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy412:
+ ++YYCURSOR;
+#line 135 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); }
+#line 3773 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy414:
+ ++YYCURSOR;
+#line 138 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); }
+#line 3778 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy416:
+ yyaccept = 13;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'c') {
+ if(yych <= ' ') {
+ if(yych <= 0x0A) {
+ if(yych == 0x09) goto yy261;
+ } else {
+ if(yych <= 0x0C) goto yy261;
+ if(yych >= ' ') goto yy261;
+ }
+ } else {
+ if(yych <= '.') {
+ if(yych == '#') goto yy437;
+ } else {
+ if(yych <= '/') goto yy261;
+ if(yych == '?') goto yy436;
+ }
+ }
+ } else {
+ if(yych <= 'p') {
+ if(yych <= 'i') {
+ if(yych <= 'e') goto yy261;
+ if(yych >= 'i') goto yy261;
+ } else {
+ if(yych == 'l') goto yy261;
+ if(yych >= 'p') goto yy261;
+ }
+ } else {
+ if(yych <= 't') {
+ if(yych == 'r') goto yy261;
+ } else {
+ if(yych == 'v') goto yy417;
+ if(yych <= 'w') goto yy261;
+ }
+ }
+ }
+yy417:
+#line 142 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_TRIGRAPH); }
+#line 3819 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy418:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '=') goto yy434;
+#line 181 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_XOR_TRIGRAPH); }
+#line 3825 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy420:
+ yyaccept = 14;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '>') {
+ if(yych == '=') goto yy429;
+ } else {
+ if(yych <= '?') goto yy426;
+ if(yych == '|') goto yy427;
+ }
+yy421:
+#line 187 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OR_TRIGRAPH); }
+#line 3838 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy422:
+ ++YYCURSOR;
+#line 189 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); }
+#line 3843 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy424:
+ yyaccept = 15;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'U') goto yy186;
+ if(yych == 'u') goto yy185;
+yy425:
+#line 239 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ANY_TRIGRAPH); }
+#line 3852 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy426:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy431;
+ goto yy98;
+yy427:
+ ++YYCURSOR;
+#line 221 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3861 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy429:
+ ++YYCURSOR;
+#line 208 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); }
+#line 3866 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy431:
+ yych = *++YYCURSOR;
+ if(yych != '!') goto yy98;
+ ++YYCURSOR;
+#line 224 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OROR_TRIGRAPH); }
+#line 3873 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy434:
+ ++YYCURSOR;
+#line 203 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); }
+#line 3878 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy436:
+ yych = *++YYCURSOR;
+ if(yych == '?') goto yy439;
+ goto yy98;
+yy437:
+ ++YYCURSOR;
+#line 145 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3887 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy439:
+ yych = *++YYCURSOR;
+ if(yych != '=') goto yy98;
+ ++YYCURSOR;
+#line 146 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); }
+#line 3894 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy442:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case 'a': goto yy443;
+ case 'b': goto yy444;
+ case 'c': goto yy445;
+ case 'd': goto yy446;
+ case 'e': goto yy495;
+ case 'f': goto yy493;
+ case 'i': goto yy492;
+ case 'l': goto yy496;
+ case 's': goto yy449;
+ case 't': goto yy494;
+ default: goto yy195;
+ }
+yy443:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 's') goto yy489;
+ goto yy195;
+yy444:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy484;
+ goto yy195;
+yy445:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy479;
+ goto yy195;
+yy446:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy471;
+ goto yy195;
+yy447:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy463;
+ goto yy195;
+yy448:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy457;
+ goto yy195;
+yy449:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 16;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy456:
+#line 120 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); }
+#line 3970 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy457:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+yy458:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 17;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy462:
+#line 125 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); }
+#line 3995 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy463:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 18;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy470:
+#line 119 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); }
+#line 4025 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy471:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 19;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy478:
+#line 117 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); }
+#line 4055 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy479:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 20;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy483:
+#line 118 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); }
+#line 4076 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy484:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 21;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy488:
+#line 116 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); }
+#line 4097 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy489:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 22;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy491:
+#line 126 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); }
+#line 4112 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy492:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy518;
+ goto yy195;
+yy493:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy463;
+ if(yych == 'i') goto yy511;
+ goto yy195;
+yy494:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy508;
+ goto yy195;
+yy495:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'x') goto yy502;
+ goto yy195;
+yy496:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'v') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy501:
+#line 124 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); }
+#line 4157 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy502:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 24;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy507:
+#line 122 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); }
+#line 4181 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy508:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'y') goto yy195;
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy510:
+#line 121 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); }
+#line 4196 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy511:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'y') goto yy195;
+ yyaccept = 26;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy517:
+#line 123 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); }
+#line 4223 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy518:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy458;
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych) {
+ case '1': goto yy520;
+ case '3': goto yy521;
+ case '6': goto yy522;
+ case '8': goto yy523;
+ default: goto yy195;
+ }
+yy520:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '6') goto yy529;
+ goto yy195;
+yy521:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '2') goto yy527;
+ goto yy195;
+yy522:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == '4') goto yy525;
+ goto yy195;
+yy523:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy524:
+#line 112 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); }
+#line 4264 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy525:
+ yyaccept = 28;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy526:
+#line 115 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); }
+#line 4276 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy527:
+ yyaccept = 29;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy528:
+#line 114 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); }
+#line 4288 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy529:
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy530:
+#line 113 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); }
+#line 4300 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy531:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'h') goto yy537;
+ goto yy195;
+yy532:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 31;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy536:
+#line 110 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_WHILE); }
+#line 4326 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy537:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != '_') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 32;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy542:
+#line 109 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_WCHART); }
+#line 4350 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy543:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy555;
+ goto yy195;
+yy544:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy545;
+ if(yych == 'l') goto yy546;
+ goto yy195;
+yy545:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy553;
+ goto yy195;
+yy546:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 33;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy552:
+#line 108 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_VOLATILE); }
+#line 4393 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy553:
+ yyaccept = 34;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy554:
+#line 107 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_VOID); }
+#line 4405 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy555:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 35;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy560:
+#line 106 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_VIRTUAL); }
+#line 4429 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy561:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy567;
+ if(yych == 's') goto yy568;
+ goto yy195;
+yy562:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'g') goto yy195;
+ yyaccept = 36;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy566:
+#line 105 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_USING); }
+#line 4456 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy567:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy575;
+ goto yy195;
+yy568:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'g') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 37;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy574:
+#line 104 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_UNSIGNED); }
+#line 4488 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy575:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 38;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy577:
+#line 103 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_UNION); }
+#line 4503 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy578:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'm') goto yy608;
+ goto yy195;
+yy579:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy601;
+ if(yych == 'r') goto yy602;
+ goto yy195;
+yy580:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'u') goto yy596;
+ if(yych == 'y') goto yy597;
+ goto yy195;
+yy581:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'h') {
+ if(yych != 'd') goto yy195;
+ } else {
+ if(yych <= 'i') goto yy585;
+ if(yych == 'n') goto yy586;
+ goto yy195;
+ }
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy593;
+ goto yy195;
+yy585:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy591;
+ goto yy195;
+yy586:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 39;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy590:
+#line 102 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_TYPENAME); }
+#line 4566 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy591:
+ yyaccept = 40;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy592:
+#line 101 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_TYPEID); }
+#line 4578 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy593:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'f') goto yy195;
+ yyaccept = 41;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy595:
+#line 100 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_TYPEDEF); }
+#line 4593 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy596:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy599;
+ goto yy195;
+yy597:
+ yyaccept = 42;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy598:
+#line 99 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_TRY); }
+#line 4610 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy599:
+ yyaccept = 43;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy600:
+#line 98 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_TRUE); }
+#line 4622 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy601:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 's') goto yy606;
+ goto yy195;
+yy602:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'w') goto yy195;
+ yyaccept = 44;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy605:
+#line 97 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_THROW); }
+#line 4645 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy606:
+ yyaccept = 45;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy607:
+#line 96 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_THIS); }
+#line 4657 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy608:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 46;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy614:
+#line 95 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_TEMPLATE); }
+#line 4684 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy615:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy650;
+ goto yy195;
+yy616:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'g') goto yy640;
+ if(yych == 'z') goto yy641;
+ goto yy195;
+yy617:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy624;
+ if(yych == 'r') goto yy625;
+ goto yy195;
+yy618:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'h') goto yy195;
+ yyaccept = 47;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy623:
+#line 94 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SWITCH); }
+#line 4725 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy624:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 't') goto yy630;
+ goto yy195;
+yy625:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 48;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy629:
+#line 93 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_STRUCT); }
+#line 4751 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy630:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 49;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy633;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy634;
+ if(yych <= '`') goto yy633;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy633:
+#line 91 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_STATIC); }
+#line 4781 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy634:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 50;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy639:
+#line 92 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_STATICCAST); }
+#line 4805 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy640:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy646;
+ goto yy195;
+yy641:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'f') goto yy195;
+ yyaccept = 51;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy645:
+#line 90 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SIZEOF); }
+#line 4831 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy646:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 52;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy649:
+#line 89 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SIGNED); }
+#line 4849 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy650:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 53;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy653:
+#line 88 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_SHORT); }
+#line 4867 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy654:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'h') {
+ if(yych != 'g') goto yy195;
+ } else {
+ if(yych <= 'i') goto yy656;
+ if(yych == 't') goto yy657;
+ goto yy195;
+ }
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy676;
+ goto yy195;
+yy656:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy662;
+ goto yy195;
+yy657:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 54;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy661:
+#line 87 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_RETURN); }
+#line 4907 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy662:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != '_') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 55;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy675:
+#line 86 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_REINTERPRETCAST); }
+#line 4955 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy676:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 56;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy681:
+#line 85 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_REGISTER); }
+#line 4979 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy682:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy689;
+ if(yych == 'o') goto yy690;
+ goto yy195;
+yy683:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'b') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 57;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy688:
+#line 84 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PUBLIC); }
+#line 5009 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy689:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'v') goto yy698;
+ goto yy195;
+yy690:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 58;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy697:
+#line 83 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PROTECTED); }
+#line 5044 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy698:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 59;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy702:
+#line 82 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PRIVATE); }
+#line 5065 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy703:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy710;
+ goto yy195;
+yy704:
+ yyaccept = 60;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy705;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy706;
+ if(yych <= '`') goto yy705;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy705:
+#line 223 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); }
+#line 5094 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy706:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 61;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy709:
+#line 207 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); }
+#line 5112 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy710:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 62;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy716:
+#line 81 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_OPERATOR); }
+#line 5139 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy717:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'm') goto yy728;
+ goto yy195;
+yy718:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'w') goto yy726;
+ goto yy195;
+yy719:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 63;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy721;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy722;
+ if(yych <= '`') goto yy721;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy721:
+#line 192 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); }
+#line 5176 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy722:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 64;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy725:
+#line 215 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); }
+#line 5194 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy726:
+ yyaccept = 65;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy727:
+#line 80 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_NEW); }
+#line 5206 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy728:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 66;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy735:
+#line 79 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_NAMESPACE); }
+#line 5236 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy736:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'b') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 67;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy742:
+#line 78 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_MUTABLE); }
+#line 5263 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy743:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'g') goto yy195;
+ yyaccept = 68;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy746:
+#line 77 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LONG); }
+#line 5281 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy747:
+ yyaccept = 69;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy748:
+#line 73 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_IF); }
+#line 5293 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy749:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'p') goto yy758;
+ goto yy195;
+yy750:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy751;
+ if(yych == 't') goto yy752;
+ goto yy195;
+yy751:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy754;
+ goto yy195;
+yy752:
+ yyaccept = 70;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy753:
+#line 76 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_INT); }
+#line 5321 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy754:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 71;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy757:
+#line 75 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_INLINE); }
+#line 5339 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy758:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 72;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy762:
+#line 74 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); }
+#line 5360 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy763:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 73;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy766:
+#line 72 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_GOTO); }
+#line 5378 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy767:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy782;
+ goto yy195;
+yy768:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy778;
+ goto yy195;
+yy769:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'r') goto yy776;
+ goto yy195;
+yy770:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 74;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy775:
+#line 71 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_FRIEND); }
+#line 5417 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy776:
+ yyaccept = 75;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy777:
+#line 70 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_FOR); }
+#line 5429 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy778:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 76;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy781:
+#line 69 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_FLOAT); }
+#line 5447 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy782:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 77;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy785:
+#line 68 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_FALSE); }
+#line 5465 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy786:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 's') goto yy808;
+ goto yy195;
+yy787:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'u') goto yy805;
+ goto yy195;
+yy788:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'p') goto yy789;
+ if(yych == 't') goto yy790;
+ goto yy195;
+yy789:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'l') goto yy795;
+ if(yych == 'o') goto yy796;
+ goto yy195;
+yy790:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 78;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy794:
+#line 67 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_EXTERN); }
+#line 5508 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy795:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'i') goto yy800;
+ goto yy195;
+yy796:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 79;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy799:
+#line 66 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_EXPORT); }
+#line 5531 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy800:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 80;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy804:
+#line 65 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_EXPLICIT); }
+#line 5552 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy805:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 81;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy807:
+#line 64 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ENUM); }
+#line 5567 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy808:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 82;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy810:
+#line 63 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ELSE); }
+#line 5582 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy811:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'f') goto yy831;
+ if(yych == 'l') goto yy832;
+ goto yy195;
+yy812:
+ yyaccept = 83;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '[') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy813;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych <= '@') goto yy813;
+ if(yych <= 'Z') goto yy194;
+ }
+ } else {
+ if(yych <= '`') {
+ if(yych <= '\\') goto yy196;
+ if(yych == '_') goto yy194;
+ } else {
+ if(yych == 'u') goto yy826;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy813:
+#line 60 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DO); }
+#line 5613 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy814:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'm') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != '_') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 84;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy825:
+#line 62 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DYNAMICCAST); }
+#line 5655 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy826:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'b') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 85;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy830:
+#line 61 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DOUBLE); }
+#line 5676 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy831:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy837;
+ goto yy195;
+yy832:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 86;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy836:
+#line 59 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DELETE); }
+#line 5702 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy837:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 87;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy841:
+#line 58 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DEFAULT); }
+#line 5723 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy842:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'r') goto yy195;
+ if(yych <= 's') goto yy873;
+ if(yych <= 't') goto yy874;
+ goto yy195;
+yy843:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy870;
+ goto yy195;
+yy844:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy866;
+ goto yy195;
+yy845:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'l') goto yy195;
+ if(yych <= 'm') goto yy847;
+ if(yych >= 'o') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'r') goto yy195;
+ if(yych <= 's') goto yy851;
+ if(yych <= 't') goto yy852;
+ goto yy195;
+yy847:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'p') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 88;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy850:
+#line 190 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); }
+#line 5770 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy851:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 't') goto yy858;
+ goto yy195;
+yy852:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'i') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'n') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'u') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 89;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy857:
+#line 57 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CONTINUE); }
+#line 5799 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy858:
+ yyaccept = 90;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy859;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy860;
+ if(yych <= '`') goto yy859;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy859:
+#line 55 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CONST); }
+#line 5823 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy860:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 91;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy865:
+#line 56 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CONSTCAST); }
+#line 5847 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy866:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 's') goto yy195;
+ yyaccept = 92;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy869:
+#line 54 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CLASS); }
+#line 5865 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy870:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 93;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy872:
+#line 53 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CHAR); }
+#line 5880 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy873:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'e') goto yy878;
+ goto yy195;
+yy874:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'c') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'h') goto yy195;
+ yyaccept = 94;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy877:
+#line 52 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CATCH); }
+#line 5903 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy878:
+ yyaccept = 95;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy879:
+#line 51 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CASE); }
+#line 5915 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy880:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 't') goto yy890;
+ goto yy195;
+yy881:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'o') goto yy887;
+ goto yy195;
+yy882:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'a') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'k') goto yy195;
+ yyaccept = 96;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy886:
+#line 50 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_BREAK); }
+#line 5946 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy887:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'l') goto yy195;
+ yyaccept = 97;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy889:
+#line 49 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_BOOL); }
+#line 5961 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy890:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'a') goto yy891;
+ if(yych == 'o') goto yy892;
+ goto yy195;
+yy891:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'n') goto yy895;
+ goto yy195;
+yy892:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'r') goto yy195;
+ yyaccept = 98;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy894:
+#line 186 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); }
+#line 5987 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy895:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'd') goto yy195;
+ yyaccept = 99;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy897:
+#line 184 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); }
+#line 6002 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy898:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'd') goto yy906;
+ goto yy195;
+yy899:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'm') goto yy904;
+ goto yy195;
+yy900:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 't') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'o') goto yy195;
+ yyaccept = 100;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy903:
+#line 48 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_AUTO); }
+#line 6030 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy904:
+ yyaccept = 101;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy905:
+#line 47 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ASM); }
+#line 6042 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy906:
+ yyaccept = 102;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Z') {
+ if(yych <= '>') {
+ if(yych <= '/') goto yy907;
+ if(yych <= '9') goto yy194;
+ } else {
+ if(yych <= '?') goto yy197;
+ if(yych >= 'A') goto yy194;
+ }
+ } else {
+ if(yych <= '^') {
+ if(yych == '\\') goto yy196;
+ } else {
+ if(yych <= '_') goto yy908;
+ if(yych <= '`') goto yy907;
+ if(yych <= 'z') goto yy194;
+ }
+ }
+yy907:
+#line 219 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); }
+#line 6066 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy908:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'e') goto yy195;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych != 'q') goto yy195;
+ yyaccept = 103;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 4) {
+ goto yy194;
+ }
+ if(yych == '?') goto yy197;
+ if(yych == '\\') goto yy196;
+yy911:
+#line 205 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); }
+#line 6084 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy912:
+ ++YYCURSOR;
+#line 166 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ if (s->act_in_c99_mode) {
+ --YYCURSOR;
+ BOOST_WAVE_RET(T_DOT);
+ }
+ else {
+ BOOST_WAVE_RET(T_DOTSTAR);
+ }
+ }
+#line 6097 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy914:
+ yych = *++YYCURSOR;
+ if(yych == '.') goto yy916;
+ goto yy98;
+yy915:
+ yych = *++YYCURSOR;
+ goto yy7;
+yy916:
+ ++YYCURSOR;
+#line 152 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_ELLIPSIS); }
+#line 6109 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy918:
+ ++YYCURSOR;
+#line 199 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_DIVIDEASSIGN); }
+#line 6114 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy920:
+ ++YYCURSOR;
+#line 44 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { goto cppcomment; }
+#line 6119 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy922:
+ ++YYCURSOR;
+#line 43 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { goto ccomment; }
+#line 6124 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ }
+}
+#line 308 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+
+ccomment:
+{
+
+#line 6133 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 0x0C) {
+ if(yych <= 0x08) {
+ if(yych <= 0x00) goto yy933;
+ goto yy935;
+ } else {
+ if(yych == 0x0A) goto yy928;
+ goto yy931;
+ }
+ } else {
+ if(yych <= 0x1F) {
+ if(yych <= 0x0D) goto yy930;
+ goto yy935;
+ } else {
+ if(yych != '*') goto yy932;
+ }
+ }
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == '/') goto yy938;
+yy927:
+#line 323 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { goto ccomment; }
+#line 6159 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy928:
+ ++YYCURSOR;
+yy929:
+#line 315 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/
+ /*s->tok = cursor; */
+ s->line += count_backslash_newlines(s, cursor) +1;
+ cursor.column = 1;
+ goto ccomment;
+ }
+#line 6171 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy930:
+ yych = *++YYCURSOR;
+ if(yych == 0x0A) goto yy937;
+ goto yy929;
+yy931:
+ yych = *++YYCURSOR;
+ goto yy927;
+yy932:
+ yych = *++YYCURSOR;
+ goto yy927;
+yy933:
+ ++YYCURSOR;
+#line 326 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ if(cursor == s->eof)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "unterminated 'C' style comment");
+ }
+ else
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character: '\\000' in input stream");
+ }
+ }
+#line 6200 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy935:
+ ++YYCURSOR;
+#line 343 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 6210 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy937:
+ yych = *++YYCURSOR;
+ goto yy929;
+yy938:
+ ++YYCURSOR;
+#line 312 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_CCOMMENT); }
+#line 6218 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ }
+}
+#line 349 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+
+cppcomment:
+{
+
+#line 6227 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 0x0A) {
+ if(yych <= 0x00) goto yy948;
+ if(yych <= 0x08) goto yy950;
+ if(yych <= 0x09) goto yy945;
+ } else {
+ if(yych <= 0x0C) goto yy945;
+ if(yych <= 0x0D) goto yy944;
+ if(yych <= 0x1F) goto yy950;
+ goto yy947;
+ }
+ ++YYCURSOR;
+yy943:
+#line 354 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */
+ /*s->tok = cursor; */
+ s->line++;
+ cursor.column = 1;
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 6252 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy944:
+ yych = *++YYCURSOR;
+ if(yych == 0x0A) goto yy952;
+ goto yy943;
+yy945:
+ ++YYCURSOR;
+yy946:
+#line 362 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { goto cppcomment; }
+#line 6262 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy947:
+ yych = *++YYCURSOR;
+ goto yy946;
+yy948:
+ ++YYCURSOR;
+#line 365 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ if (s->eof && cursor != s->eof)
+ {
+ --YYCURSOR; // next call returns T_EOF
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\000' in input stream");
+ }
+
+ --YYCURSOR; // next call returns T_EOF
+ if (!s->single_line_only)
+ {
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_warning,
+ "Unterminated 'C++' style comment");
+ }
+ BOOST_WAVE_RET(T_CPPCOMMENT);
+ }
+#line 6287 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy950:
+ ++YYCURSOR;
+#line 385 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ {
+ // flag the error
+ BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor
+ (*s->error_proc)(s, lexing_exception::generic_lexing_error,
+ "invalid character '\\%03o' in input stream", *--YYCURSOR);
+ }
+#line 6297 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy952:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy943;
+ }
+}
+#line 391 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+
+/* this subscanner is called whenever a pp_number has been started */
+pp_number:
+{
+ cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column);
+ marker = uchar_wrapper(s->ptr);
+ limit = uchar_wrapper(s->lim);
+
+ if (s->detect_pp_numbers) {
+ {
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 64, 0,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 0, 0, 0, 0, 0, 0,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 64,
+ 0, 64, 64, 64, 64, 128, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
+#line 6351 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych == '.') goto yy956;
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy957;
+yy955:
+ YYCURSOR = YYMARKER;
+ goto yy959;
+yy956:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+yy957:
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 64) {
+ goto yy957;
+ }
+ if(yych <= 'Z') {
+ if(yych == '?') goto yy963;
+ if(yych >= 'A') goto yy960;
+ } else {
+ if(yych <= '\\') {
+ if(yych >= '\\') goto yy962;
+ } else {
+ if(yych == 'e') goto yy960;
+ }
+ }
+yy959:
+#line 403 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_PP_NUMBER); }
+#line 6386 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy960:
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy960;
+ }
+ if(yych <= '?') {
+ if(yych <= '.') {
+ if(yych == '+') goto yy957;
+ if(yych <= ',') goto yy959;
+ goto yy957;
+ } else {
+ if(yych <= '/') goto yy959;
+ if(yych <= '9') goto yy957;
+ if(yych <= '>') goto yy959;
+ goto yy963;
+ }
+ } else {
+ if(yych <= '\\') {
+ if(yych <= '@') goto yy959;
+ if(yych <= 'Z') goto yy957;
+ if(yych <= '[') goto yy959;
+ } else {
+ if(yych <= '_') {
+ if(yych <= '^') goto yy959;
+ goto yy957;
+ } else {
+ if(yych <= '`') goto yy959;
+ if(yych <= 'z') goto yy957;
+ goto yy959;
+ }
+ }
+ }
+yy962:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == 'U') goto yy966;
+ if(yych == 'u') goto yy965;
+ goto yy955;
+yy963:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych != '?') goto yy955;
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych == '/') goto yy962;
+ goto yy955;
+yy965:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy974;
+ goto yy955;
+ } else {
+ if(yych <= 'F') goto yy974;
+ if(yych <= '`') goto yy955;
+ if(yych <= 'f') goto yy974;
+ goto yy955;
+ }
+yy966:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy967;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy967:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy968;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy968:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy969;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy969:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy970;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy970:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy971;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy971:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy972;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy972:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy973;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy973:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy957;
+ goto yy955;
+ } else {
+ if(yych <= 'F') goto yy957;
+ if(yych <= '`') goto yy955;
+ if(yych <= 'f') goto yy957;
+ goto yy955;
+ }
+yy974:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy975;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy975:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych >= ':') goto yy955;
+ } else {
+ if(yych <= 'F') goto yy976;
+ if(yych <= '`') goto yy955;
+ if(yych >= 'g') goto yy955;
+ }
+yy976:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yych <= '@') {
+ if(yych <= '/') goto yy955;
+ if(yych <= '9') goto yy957;
+ goto yy955;
+ } else {
+ if(yych <= 'F') goto yy957;
+ if(yych <= '`') goto yy955;
+ if(yych <= 'f') goto yy957;
+ goto yy955;
+ }
+ }
+}
+#line 404 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+ }
+ else {
+ {
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 160, 160, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
+#line 6630 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ if(yych <= '/') {
+ if(yych == '.') goto yy984;
+ } else {
+ if(yych <= '0') goto yy980;
+ if(yych <= '9') goto yy982;
+ }
+yy979:
+ YYCURSOR = YYMARKER;
+ if(yyaccept <= 0) {
+ goto yy981;
+ } else {
+ goto yy987;
+ }
+yy980:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yybm[0+yych] & 64) {
+ goto yy999;
+ }
+ if(yych <= 'E') {
+ if(yych <= '/') {
+ if(yych == '.') goto yy985;
+ } else {
+ if(yych <= '9') goto yy1002;
+ if(yych >= 'E') goto yy995;
+ }
+ } else {
+ if(yych <= 'd') {
+ if(yych == 'X') goto yy1001;
+ } else {
+ if(yych <= 'e') goto yy995;
+ if(yych == 'x') goto yy1001;
+ }
+ }
+yy981:
+#line 411 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { goto integer_suffix; }
+#line 6673 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy982:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 32) {
+ goto yy982;
+ }
+ if(yych <= 'D') {
+ if(yych == '.') goto yy985;
+ goto yy981;
+ } else {
+ if(yych <= 'E') goto yy995;
+ if(yych == 'e') goto yy995;
+ goto yy981;
+ }
+yy984:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy979;
+ if(yych >= ':') goto yy979;
+yy985:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yych <= 'K') {
+ if(yych <= 'D') {
+ if(yych <= '/') goto yy987;
+ if(yych <= '9') goto yy985;
+ } else {
+ if(yych <= 'E') goto yy988;
+ if(yych <= 'F') goto yy989;
+ }
+ } else {
+ if(yych <= 'e') {
+ if(yych <= 'L') goto yy990;
+ if(yych >= 'e') goto yy988;
+ } else {
+ if(yych <= 'f') goto yy989;
+ if(yych == 'l') goto yy990;
+ }
+ }
+yy987:
+#line 409 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_FLOATLIT); }
+#line 6719 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy988:
+ yych = *++YYCURSOR;
+ if(yych <= ',') {
+ if(yych == '+') goto yy992;
+ goto yy979;
+ } else {
+ if(yych <= '-') goto yy992;
+ if(yych <= '/') goto yy979;
+ if(yych <= '9') goto yy993;
+ goto yy979;
+ }
+yy989:
+ yych = *++YYCURSOR;
+ if(yych == 'L') goto yy991;
+ if(yych == 'l') goto yy991;
+ goto yy987;
+yy990:
+ yych = *++YYCURSOR;
+ if(yych == 'F') goto yy991;
+ if(yych != 'f') goto yy987;
+yy991:
+ yych = *++YYCURSOR;
+ goto yy987;
+yy992:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy979;
+ if(yych >= ':') goto yy979;
+yy993:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 'K') {
+ if(yych <= '9') {
+ if(yych <= '/') goto yy987;
+ goto yy993;
+ } else {
+ if(yych == 'F') goto yy989;
+ goto yy987;
+ }
+ } else {
+ if(yych <= 'f') {
+ if(yych <= 'L') goto yy990;
+ if(yych <= 'e') goto yy987;
+ goto yy989;
+ } else {
+ if(yych == 'l') goto yy990;
+ goto yy987;
+ }
+ }
+yy995:
+ yych = *++YYCURSOR;
+ if(yych <= ',') {
+ if(yych != '+') goto yy979;
+ } else {
+ if(yych <= '-') goto yy996;
+ if(yych <= '/') goto yy979;
+ if(yych <= '9') goto yy997;
+ goto yy979;
+ }
+yy996:
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy979;
+ if(yych >= ':') goto yy979;
+yy997:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ if(yych <= 'K') {
+ if(yych <= '9') {
+ if(yych <= '/') goto yy987;
+ goto yy997;
+ } else {
+ if(yych == 'F') goto yy989;
+ goto yy987;
+ }
+ } else {
+ if(yych <= 'f') {
+ if(yych <= 'L') goto yy990;
+ if(yych <= 'e') goto yy987;
+ goto yy989;
+ } else {
+ if(yych == 'l') goto yy990;
+ goto yy987;
+ }
+ }
+yy999:
+ yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 64) {
+ goto yy999;
+ }
+ if(yych <= '9') {
+ if(yych == '.') goto yy985;
+ if(yych <= '/') goto yy981;
+ goto yy1002;
+ } else {
+ if(yych <= 'E') {
+ if(yych <= 'D') goto yy981;
+ goto yy995;
+ } else {
+ if(yych == 'e') goto yy995;
+ goto yy981;
+ }
+ }
+yy1001:
+ yych = *++YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy1004;
+ }
+ goto yy979;
+yy1002:
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yych <= '9') {
+ if(yych == '.') goto yy985;
+ if(yych <= '/') goto yy979;
+ goto yy1002;
+ } else {
+ if(yych <= 'E') {
+ if(yych <= 'D') goto yy979;
+ goto yy995;
+ } else {
+ if(yych == 'e') goto yy995;
+ goto yy979;
+ }
+ }
+yy1004:
+ ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ if(yybm[0+yych] & 128) {
+ goto yy1004;
+ }
+ goto yy981;
+ }
+}
+#line 412 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+ }
+}
+
+/* this subscanner is called, whenever a Integer was recognized */
+integer_suffix:
+{
+ if (s->enable_ms_extensions) {
+ {
+
+#line 6870 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *(YYMARKER = YYCURSOR);
+ if(yych <= 'h') {
+ if(yych <= 'L') {
+ if(yych >= 'L') goto yy1010;
+ } else {
+ if(yych == 'U') goto yy1009;
+ }
+ } else {
+ if(yych <= 'l') {
+ if(yych <= 'i') goto yy1011;
+ if(yych >= 'l') goto yy1010;
+ } else {
+ if(yych == 'u') goto yy1009;
+ }
+ }
+yy1008:
+#line 425 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6892 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy1009:
+ yych = *++YYCURSOR;
+ if(yych == 'L') goto yy1018;
+ if(yych == 'l') goto yy1018;
+ goto yy1008;
+yy1010:
+ yych = *++YYCURSOR;
+ if(yych <= 'U') {
+ if(yych == 'L') goto yy1017;
+ if(yych <= 'T') goto yy1008;
+ goto yy1016;
+ } else {
+ if(yych <= 'l') {
+ if(yych <= 'k') goto yy1008;
+ goto yy1017;
+ } else {
+ if(yych == 'u') goto yy1016;
+ goto yy1008;
+ }
+ }
+yy1011:
+ yych = *++YYCURSOR;
+ if(yych == '6') goto yy1013;
+yy1012:
+ YYCURSOR = YYMARKER;
+ goto yy1008;
+yy1013:
+ yych = *++YYCURSOR;
+ if(yych != '4') goto yy1012;
+yy1014:
+ ++YYCURSOR;
+yy1015:
+#line 422 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6927 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy1016:
+ yych = *++YYCURSOR;
+ goto yy1008;
+yy1017:
+ yych = *++YYCURSOR;
+ if(yych == 'U') goto yy1014;
+ if(yych == 'u') goto yy1014;
+ goto yy1015;
+yy1018:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == 'L') goto yy1014;
+ if(yych == 'l') goto yy1014;
+ goto yy1008;
+ }
+}
+#line 426 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+ }
+ else {
+ {
+
+#line 6949 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+ {
+ YYCTYPE yych;
+ if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = *YYCURSOR;
+ if(yych <= 'U') {
+ if(yych == 'L') goto yy1023;
+ if(yych >= 'U') goto yy1022;
+ } else {
+ if(yych <= 'l') {
+ if(yych >= 'l') goto yy1023;
+ } else {
+ if(yych == 'u') goto yy1022;
+ }
+ }
+yy1021:
+#line 434 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_INTLIT); }
+#line 6967 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy1022:
+ yych = *++YYCURSOR;
+ if(yych == 'L') goto yy1028;
+ if(yych == 'l') goto yy1028;
+ goto yy1021;
+yy1023:
+ yych = *++YYCURSOR;
+ if(yych <= 'U') {
+ if(yych == 'L') goto yy1025;
+ if(yych <= 'T') goto yy1021;
+ } else {
+ if(yych <= 'l') {
+ if(yych <= 'k') goto yy1021;
+ goto yy1025;
+ } else {
+ if(yych != 'u') goto yy1021;
+ }
+ }
+ yych = *++YYCURSOR;
+ goto yy1021;
+yy1025:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == 'U') goto yy1027;
+ if(yych == 'u') goto yy1027;
+yy1026:
+#line 431 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+ { BOOST_WAVE_RET(T_LONGINTLIT); }
+#line 6995 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp_re.inc"
+yy1027:
+ yych = *++YYCURSOR;
+ goto yy1026;
+yy1028:
+ ++YYCURSOR;
+ if((yych = *YYCURSOR) == 'L') goto yy1027;
+ if(yych == 'l') goto yy1027;
+ goto yy1021;
+ }
+}
+#line 435 "..\\..\\src\\cpplexer\\re2clex\\strict_cpp.re"
+
+ }
+}
==============================================================================
--- branches/bcbboost/libs/wave/test/build/Jamfile.v2 (original)
+++ branches/bcbboost/libs/wave/test/build/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -12,10 +12,17 @@
#
# These are the sources to compile for the testwave application
#
-SOURCES = testwave testwave_app
+SOURCES_STATIC = testwave testwave_app
;
-path-constant TESTWAVE_DIR : ../testwave/testfiles ;
+SOURCES_DYNAMIC = testwave_dll testwave_app_dll
+ ;
+
+SOURCES = $(SOURCE_STATIC) $(SOURCES_DYNAMIC)
+ ;
+
+path-constant TESTWAVE_DIR : ../testwave/testfiles
+ ;
#
# This are the arguments for the testwave executable
@@ -33,12 +40,6 @@
;
project wave/test
- : requirements
- <threading>single
- <variant>debug
- <define>BOOST_LIB_DIAGNOSTIC=1
- <define>BOOST_ALL_NO_LIB=1
- <link>shared:<define>BOOST_ALL_DYN_LINK=1
;
for local source in $(SOURCES)
@@ -57,7 +58,7 @@
[
run
# sources
- ../testwave/$(SOURCES).cpp
+ ../testwave/$(SOURCES_DYNAMIC).cpp
/boost/wave//boost_wave
/boost/program_options//boost_program_options
/boost/filesystem//boost_filesystem
@@ -71,7 +72,11 @@
# input files
:
# requirements
- :
+ <threading>multi
+ <variant>debug
+ <link>shared:<define>BOOST_ALL_DYN_LINK=1
+# <define>BOOST_LIB_DIAGNOSTIC=1
+ :
# name
testwave_dll
]
@@ -79,7 +84,7 @@
[
run
# sources
- ../testwave/$(SOURCES).cpp
+ ../testwave/$(SOURCES_STATIC).cpp
/boost/wave//boost_wave/<link>static
/boost/program_options//boost_program_options/<link>static
/boost/filesystem//boost_filesystem/<link>static
@@ -93,7 +98,10 @@
# input files
:
# requirements
- <link>static # Linking to DLL tested by testwave_dll
+ <threading>multi
+ <variant>debug
+ <link>static # Linking to DLL tested by testwave_dll
+# <define>BOOST_LIB_DIAGNOSTIC=1
:
# name
testwave
@@ -107,14 +115,16 @@
/boost/wave//boost_wave
/boost/program_options//boost_program_options
/boost/filesystem//boost_filesystem
- /boost/system//boost_system
/boost/thread//boost_thread
+ /boost/system//boost_system
:
# arguments
:
# input files
:
# requirements
+ <threading>multi
+ <variant>debug
:
# name
test_slex_lexer
@@ -127,14 +137,16 @@
/boost/wave//boost_wave
/boost/program_options//boost_program_options
/boost/filesystem//boost_filesystem
- /boost/system//boost_system
/boost/thread//boost_thread
+ /boost/system//boost_system
:
# arguments
:
# input files
:
# requirements
+ <threading>multi
+ <variant>debug
:
# name
test_re2c_lexer
==============================================================================
--- branches/bcbboost/libs/wave/test/testwave/testfiles/t_6_067.cpp (original)
+++ branches/bcbboost/libs/wave/test/testwave/testfiles/t_6_067.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -16,7 +16,7 @@
// Tests error reporting: undefined behavior: End of a source file with an
// unterminated comment.
-//E t_6_067.hpp(48): error: generic lexing error: Unterminated 'C' style comment
+//E t_6_067.hpp(48): warning: generic lexer warning: Unterminated 'C' style comment
#include "t_6_067.hpp"
//R #line 19 "t_6_067.hpp"
==============================================================================
--- branches/bcbboost/libs/xpressive/test/regress.ipp (original)
+++ branches/bcbboost/libs/xpressive/test/regress.ipp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -13,6 +13,7 @@
#include <locale>
#include <vector>
+#include <string>
#include <fstream>
#include <iostream>
#include <boost/lexical_cast.hpp>
@@ -24,8 +25,20 @@
# include <crtdbg.h>
#endif
+#ifndef BOOST_XPRESSIVE_NO_WREGEX
+namespace std
+{
+ inline std::ostream &operator <<(std::ostream &sout, std::wstring const &wstr)
+ {
+ for(std::size_t n = 0; n < wstr.size(); ++n)
+ sout.put(sout.narrow(wstr[n], '?'));
+ return sout;
+ }
+}
+#endif
+
#define BOOST_XPR_CHECK(pred) \
- if(pred) {} else { BOOST_ERROR(format_msg(#pred).c_str()); }
+ if(pred) {} else { BOOST_ERROR(case_ << #pred); }
using namespace boost::unit_test;
using namespace boost::xpressive;
@@ -79,19 +92,23 @@
sregex const rx_res = "res=" >> (s1= *_);
sregex const rx_br = "br" >> (s1= +digit) >> '=' >> (s2= *_);
-///////////////////////////////////////////////////////////////////////////////
-// format_msg
-std::string format_msg(char const *msg)
+struct test_case_formatter
{
- return test.section + " /" + test.pat + "/ : " + msg;
-}
+ friend std::ostream &operator <<(std::ostream &sout, test_case_formatter)
+ {
+ sout << test.section << " /" << test.pat << "/ : ";
+ return sout;
+ }
+};
+
+test_case_formatter const case_ = {};
#ifndef BOOST_XPRESSIVE_NO_WREGEX
///////////////////////////////////////////////////////////////////////////////
// widen
// make a std::wstring from a std::string by widening according to the
// current ctype<char> facet
-std::wstring widen(std::string const &str)
+inline std::wstring widen(std::string const &str)
{
std::ctype<char> const &ct = BOOST_USE_FACET(std::ctype<char>, std::locale());
std::wstring res;
@@ -259,7 +276,7 @@
{
// test regex_replace
std::basic_string<Char> res = regex_replace(test.str, rx, test.sub, test.match_flags);
- BOOST_XPR_CHECK(res == test.res);
+ BOOST_CHECK_MESSAGE(res == test.res, case_ << res << " != " << test.res );
}
if(0 == (test.match_flags & regex_constants::format_first_only))
@@ -330,7 +347,7 @@
}
catch(regex_error const &e)
{
- BOOST_ERROR(format_msg(e.what()).c_str());
+ BOOST_ERROR(case_ << e.what());
}
}
==============================================================================
--- branches/bcbboost/libs/xpressive/test/test.hpp (original)
+++ branches/bcbboost/libs/xpressive/test/test.hpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -28,7 +28,7 @@
#define L(x) BOOST_XPR_CSTR_(char_type, x)
#define BOOST_XPR_CHECK(pred) \
- if( pred ) {} else { BOOST_ERROR( this->format_msg(#pred).c_str() ); }
+ if( pred ) {} else { BOOST_ERROR( this->section_ << " : " << #pred ); }
using namespace boost::xpressive;
@@ -60,12 +60,6 @@
struct no_match_t {};
no_match_t const no_match = {};
-template<typename BidiIter>
-struct xpr_test_case;
-
-template<typename BidiIter>
-std::string format_msg(xpr_test_case<BidiIter> const &test, char const *msg);
-
///////////////////////////////////////////////////////////////////////////////
// xpr_test_case
//
@@ -117,11 +111,6 @@
private:
- std::string format_msg(char const *msg) const
- {
- return this->section_ + " : " + msg;
- }
-
std::string section_;
string_type str_;
regex_type rex_;
==============================================================================
--- branches/bcbboost/more/formal_review_schedule.html (original)
+++ branches/bcbboost/more/formal_review_schedule.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -51,7 +51,7 @@
<td><a href="http://tinyurl.com/yjozfn">
Boost Sandbox Vault</a></td>
<td>Martin Vuille</td>
- <td>-</td>
+ <td>October 21, 2007 - October 30, 2007</td>
</tr>
<tr>
==============================================================================
--- branches/bcbboost/status/Jamfile.v2 (original)
+++ branches/bcbboost/status/Jamfile.v2 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -108,7 +108,7 @@
<threading>multi #!!!<no-warn>config_test.cpp
]
[ run libs/config/test/config_info.cpp : : : <test-info>always_show_run_output ]
- [ run libs/config/test/math_info.cpp : : : <test-info>always_show_run_output ]
+ [ run libs/config/test/math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
[ run libs/config/test/abi/abi_test.cpp libs/config/test/abi/main.cpp ]
[ run libs/config/test/limits_test.cpp test_exec_monitor ]
[ run libs/config/test/link/main.cpp ../libs/config/test/link//link_test
@@ -182,3 +182,5 @@
+
+
==============================================================================
--- branches/bcbboost/status/explicit-failures-markup.xml (original)
+++ branches/bcbboost/status/explicit-failures-markup.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -326,7 +326,7 @@
<mark-expected-failures>
<test name="bind_dm2_test"/>
<test name="mem_fn_dm_test"/>
- <toolset name="msvc-6.5*"/>
+ <toolset name="msvc-6.*"/>
<toolset name="msvc-7.0"/>
<toolset name="cw-8.3"/>
<note refid="31" author="Peter Dimov"/>
@@ -362,7 +362,7 @@
<mark-expected-failures>
<test name="bind_dm3_test"/>
<toolset name="borland-5*"/>
- <toolset name="msvc-6.5*"/>
+ <toolset name="msvc-6.*"/>
<toolset name="msvc-7.0"/>
<note refid="31" author="Peter Dimov"/>
</mark-expected-failures>
@@ -373,6 +373,13 @@
This failure is only present in release mode and is caused by /OPT:ICF.
</note>
</mark-expected-failures>
+ <mark-expected-failures>
+ <test name="bind_placeholder_test"/>
+ <toolset name="borland-*"/>
+ <toolset name="msvc-6.*"/>
+ <toolset name="msvc-7.0"/>
+ <note refid="31" author="Peter Dimov"/>
+ </mark-expected-failures>
</library>
@@ -1605,6 +1612,8 @@
<toolset name="gcc-3.2*"/>
<toolset name="gcc-3.3*"/>
<toolset name="mipspro"/>
+ <toolset name="acc"/>
+ <toolset name="hp_cxx*"/>
<note author="Ion Gaztañaga">
The compiler does not support features that are essential for the library.
</note>
@@ -1625,10 +1634,18 @@
<toolset name="gcc-3.2*"/>
<toolset name="gcc-3.3*"/>
<toolset name="mipspro"/>
+ <toolset name="hp_cxx*"/>
<note author="Ion Gaztañaga">
The compiler does not support features that are essential for the library.
</note>
</mark-unusable>
+ <mark-expected-failures>
+ <test name="doc_offset_ptr" />
+ <toolset name="acc"/>
+ <note author="Ion Gaztañaga">
+ The compiler is not supported by Interprocess.
+ </note>
+ </mark-expected-failures>
</library>
<!-- io-->
@@ -1818,6 +1835,11 @@
<toolset name="gcc-2.95.3-*"/>
<note author="Doug Gregor" refid="3"/>
</mark-expected-failures>
+ <mark-expected-failures>
+ <test name="control_structures"/>
+ <toolset name="gcc-4.2.1*"/>
+ <note author="Boris Gubenko" refid="42"/>
+ </mark-expected-failures>
</library>
<!-- logic -->
@@ -2598,6 +2620,7 @@
<mark-unusable>
<toolset name="gcc-2.95.*"/>
<toolset name="sunpro*"/>
+ <toolset name="borland-5.6.*"/>
<note author="Arkadiy Vertleyb">
This compiler is not supported.
</note>
@@ -2894,6 +2917,19 @@
</note>
</mark-expected-failures>
<mark-expected-failures>
+ <test name="common_factor_test"/>
+ <test name="hypot_test"/>
+ <toolset name="borland-5.8*"/>
+ <note author="J.Maddock">
+ This appears to be caused by bad-code generation:
+ as the following trivial code in
+ common_factor.hpp goes into an infinite loop:
+
+ while ( !(r[ which ] & 1u) ){ r[ which ] >>= 1; }
+
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
<test name="log1p_expm1_test"/>
<toolset name="borland-5.8*"/>
<toolset name="borland-5.9*"/>
@@ -4215,6 +4251,8 @@
<test name="tricky_add_pointer_test"/>
<test name="tricky_function_type_test"/>
<test name="tricky_incomplete_type_test"/>
+ <test name="make_signed_test"/>
+ <test name="make_unsigned_test"/>
<toolset name="borland-5.6*"/>
<toolset name="borland-5.8*"/>
<toolset name="borland-5.9*"/>
@@ -4547,6 +4585,8 @@
<test name="std_test_type_traits"/>
<test name="run_complex_overloads"/>
<test name="std_run_complex_overloads"/>
+ <test name="test_shared_ptr"/>
+ <test name="std_test_shared_ptr"/>
<test name="run_random"/>
<test name="std_run_random"/>
<test name="test_tuple_tricky"/>
@@ -5124,7 +5164,9 @@
</mark-unusable>
<mark-unusable>
<toolset name="sunpro-5_3-sunos"/>
+ <toolset name="sun-5.7"/>
<toolset name="sun-5.8"/>
+ <toolset name="sun-5.9"/>
<note refid="17"/>
</mark-unusable>
</library>
@@ -5335,4 +5377,9 @@
operators which only random access iterator is required to provide.
</note>
+ <note id="42">
+ Internal compiler error: GCC Bugzilla Bug 33580.
+ This is a regression in the gcc 4.2 series.
+ </note>
+
</explicit-failures-markup>
==============================================================================
--- branches/bcbboost/tools/boostbook/xsl/type.xsl (original)
+++ branches/bcbboost/tools/boostbook/xsl/type.xsl 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -901,6 +901,8 @@
</xsl:if>
<xsl:apply-templates select="description"/>
+ <xsl:apply-templates select="typedef" mode="reference"/>
+
<xsl:call-template name="construct-copy-destruct-reference"/>
<xsl:apply-templates
==============================================================================
--- branches/bcbboost/tools/build/v2/build/targets.jam (original)
+++ branches/bcbboost/tools/build/v2/build/targets.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1278,6 +1278,21 @@
}
else
{
+ if $(rproperties[1]) = "@error"
+ {
+ ECHO [ targets.indent ]
+ "Skipping build: cannot compute common properties" ;
+ }
+ else if [ $(rproperties).get <build> ] = no
+ {
+ ECHO [ targets.indent ]
+ "Skipping build: <build>no in common properties" ;
+ }
+ else
+ {
+ ECHO [ targets.indent ] "Skipping build: unknown reason" ;
+ }
+
# We're here either because there's error computing
# properties, or there's <build>no in properties.
# In the latter case we don't want any diagnostic.
==============================================================================
--- branches/bcbboost/tools/build/v2/build/version.jam (original)
+++ branches/bcbboost/tools/build/v2/build/version.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -4,7 +4,7 @@
rule boost-build ( )
{
- return "V2 (Milestone 11)" ;
+ return "V2 (Milestone 12)" ;
}
rule jam ( )
{
==============================================================================
--- branches/bcbboost/tools/build/v2/changes.txt (original)
+++ branches/bcbboost/tools/build/v2/changes.txt 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,14 +1,15 @@
-Copyright 2004, 2006 Vladimir Prus
+Copyright 2004-2007 Vladimir Prus
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-Milestone 12 (in development)
+Milestone 12 (Oct 1, 2007)
Changes in this release:
+ - The Pathscale, PGI and mipspro compilers are now supported.
- Support for autoconfiguration of toolset based on command-line
- toolset=xxxx or --toolset=xxxx options, and for default toolset
+ toolset=xxxx request, and for default toolset
configuration as a fallback.
- Support for precompiled headers for gcc toolset,
and improvements for msvc.
@@ -23,21 +24,37 @@
- Toolsets can now implicitly add requirements to
all targets.
- New 'generate' rule.
+ - The executables produced by the 'run' rule are automatically
+ removed after run.
+ - The gcc toolset uses the version obtained by running
+ the compiler, if no explicit one is provided.
+ - The sun toolset now supports the 'address-model' feature,
+ and uses -KPIC for shared libraries.
+ - Free features on command line affect all targets, not
+ just 'directly requested' ones.
+
Documentation changes:
- Installation instructions for Linux distributors.
+ - Configuration options for all supported C++ compilers
+ are now documented.
The following bugs were fixed:
- - The 'cflags' and 'linkflags' features not working for Darwin.
- - The intel toolset not working on Windows.
+ - The 'cflags' and 'linkflags' now work on Darwin.o
+ - The intel toolset now works on Windows.
- Fix library search options for CodeWarriour toolset.
- The <install-source-root> could cause duplicate
mkdir commands.
- Numerious fixes in Boost autolink support
- Numerious fixes in Boost.Python support.
- - Indirect properties not evaluates in usage requirements.
+ - Indirect properties not evaluated in usage requirements.
+ - Generator that returns a property set but not target is
+ considered successful.
+ - On Darwin, when several compiler versions
+ are configured, -fcoalesce-templates is applied only to
+ versions that need it.
Milestone 11 (Jule 20, 2006)
==============================================================================
--- branches/bcbboost/tools/build/v2/index.html (original)
+++ branches/bcbboost/tools/build/v2/index.html 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -28,7 +28,7 @@
font-size: medium }
</style>
- <title>Boost Build System V2</title>
+ <title>Boost.Build V2</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
@@ -41,9 +41,9 @@
<b>Quick access</b>
<ul>
<li>Download: <a href=
- "http://prdownloads.sourceforge.net/boost/boost-build-2.0-m11.zip">[zip]
+ "http://prdownloads.sourceforge.net/boost/boost-build-2.0-m12.zip">[zip]
</a>, <a href=
- "http://prdownloads.sourceforge.net/boost/boost-build-2.0-m11.tar.bz2">[tar.bz2]
+ "http://prdownloads.sourceforge.net/boost/boost-build-2.0-m12.tar.bz2">[tar.bz2]
</a>
<li>Nightly build: [zip],
<a href="http://boost.org/boost-build2/boost-build.tar.bz2">[tar.bz2]</a>
@@ -72,90 +72,81 @@
</div>
- <h1>Boost Build System V2</h1>
+ <h1>Boost.Build V2</h1>
- <h2><a name="synopsis">Synopsis</a></h2>
+ <h2>Overview</h2>
- <p>Boost.Build is a system for large project software construction, which
- is simple to use and powerfull. Boost.Build V2 is an onging project to
- rewrite Boost.Build, improving design and making it more extensible. The
- distinguishing features are:</p>
+ <p>Boost.Build is an easy way to build C++ projects, everywhere. You
+ name you executables and libraries and list their sources. Boost.Build
+ takes care about compiling your sources with right options, creating
+ static and shared libraries, making executables, and other chores --
+ whether you're using gcc, msvc, or a dozen more supported C++
+ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
+ <p>Some of the most important features:
<ul>
- <li><b>Simple and high level target description language</b>. In most
- cases name of target and list of sources is enough.</li>
+ <li><b>Simple and high level build description</b>. In most
+ cases a name of target and list of sources is all you need.</li>
- <li><b>Variant builds</b>. You can build with your choice of basic
- variants (e.g. debug, release, profile...), toolsets (e.g. gcc and
- msvc) and specific properties (e.g. inlining off) from a single command
- invocation.</li>
-
- <li><b>Portability</b>. ``Feature Normalization'' allows to fine-tune
- targets independently from the toolset used, and modular toolset
- descriptions are employed to generate actual build instructions.</li>
-
- <li><b>Multi-project builds</b>. Several projects can be combined and
- built together, with dependencies correctly tracked. Typically, the
- setting (like include paths and defines) needed to use other project
- will be handled automatically.</li>
-
- <li><b>Extensibility</b>. New file types and tools can be easily
- added</li>
+ <li><b>Portability</b>. Most important build properties have symbolic
+ names that work everywhere. Why memorize compiler flags necessary
+ for multi-threaded 64-bit shared library, if Boost.Build can do it for you?
+
+ <li><b>Variant builds</b>. When you build the same project
+ twice with different properties, all produced files are placed
+ in different directories, so you can build with 2 versions of
+ gcc, or both debug and release variants in one invocation.</li>
+
+ <li><b>Global dependencies</b>. No matter what directory you build
+ in, Boost.Build will always check all dependencies in your entire
+ project, preventing inconsistent binaries. And it's easy to
+ use one Boost.Build project in other, again with full dependency
+ tracking.
+
+ <li><b>Usage requirements</b>. A target can specify properties,
+ like include paths and preprocessor defines, that are necessary to use
+ it. Those properties will be automatically applied whenever the target
+ is used.</li>
+
+ <li><b>Standalone</b>. Boost.Build's only dependency is a C compiler,
+ so it's easy to setup. You can even include all of Boost.Build in your
+ project. Boost.Build does not use depend on C++ Boost in any way.</li>
</ul>
- <h2>Documentation</h2>
+ <h2>Status and future</h2>
- <p>The user manual, which includes installation instructions, tutorial
- and initial reference is available <a href=
- "../../../doc/html/bbv2.html">here</a>.</p>
-
- <h2><a name="status">Status</a></h2>
-
-<!--
- <p><font size=4 color=blue>Boost.Build V2 is project in development, and for building
- C++ Boost you should use V1, see the
- instructions.
- </font></p>
--->
-
- <p>Enough of the core functionality is implemented to allow practical use
- on medium-size projects. Several compilers and tools are supported, the
- full list is available here.
- The list of features
- still to be implemented is outlined in the <a href=
- "doc/development_plan.html">development plan</a>.</p>
-
- <h2 id="download">Downloading</h2>
-
- <p>The most up-to-date sources are available in <tt>tools/build</tt>
- directory of Boost CVS. Please see the
- <a href="http://www.boost.org/more/getting_started.html#CVS">Boost CVS Repository
- </a> section of the Boost getting started docs.</p>
-
- <p>Boost.Build releases are also available. There's <a href=
- "http://prdownloads.sourceforge.net/boost/boost-build-2.0-m11.zip">zip
- archive</a>, and <a href=
- "http://prdownloads.sourceforge.net/boost/boost-build-2.0-m11.tar.bz2">tar.bz2
- archive</a> of the current release. Older releases are available from the
- <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=7586">SourceForce
- download page</a>.</p>
-
- <p>The installation is described in the
- <a href="../../../doc/html/bbv2/installation.html">user
- manual</a>.</p>
+ <p>Boost.Build is ready to use today, and new features are being actively
+ developed.
- <h2>Feedback</h2>
+ <p>The current version of 2.0 Milestone 12, which added support for
+ precompiled headers on gcc, and added 3 new C++ compilers
+ (full changelog).
+
+ <p>Milestone 13 is planned as bugfix release. Milestone 14 will
+ focus on improving user documentation. Milestone 15 will see most
+ of Boost.Build reimplemented in Python, to make extending
+ Boost.Build even easier for end users. The specific issues planned for
+ each release can be found on the
+ roadmap.
+
+
+
+ <h2>Feedback and contributing</h2>
<p>Should you have any questions or comments, we'd be glad to hear them.
Post everything to the mailing list.</p>
- <p>If you'd like to help with development, there's a separate <a href=
- "hacking.txt">guidelines document</a>.</p>
+ <p>Bugs and feature requests can be entered at our
+ bug tracker.
+
+ <p>If you'd like to help with development, just pick a bug
+ in the tracker that you'd like to fix, or feel free to implement
+ any feature you like. There's a separate
+ guidelines document for working on code.</p>
<hr>
- <p>© Copyright David Abrahams and Vladimir Prus 2002-2006.
+ <p>© Copyright David Abrahams and Vladimir Prus 2002-2007.
Permission to copy, use, modify, sell and distribute this document is
granted provided this copyright notice appears in all copies. This
document is provided "as is" without express or implied warranty, and
@@ -163,7 +154,7 @@
<p>Revised
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan
- -->Jul 20, 2006
+ -->Oct 4, 2007
<!--webbot bot="Timestamp" endspan i-checksum="13972"
-->
</p>
==============================================================================
--- branches/bcbboost/tools/build/v2/release_procedure.txt (original)
+++ branches/bcbboost/tools/build/v2/release_procedure.txt 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -14,18 +14,22 @@
Make sure that "bjam --version" output is correct. Update version string if
needed. Update bjam version and the version check is necessary.
Check the download locations in "index.html". Check that "last modified"
- strings in docs are correct.
+ string in index.html is correct.
-1. Make sure you don't have any local modification, and tag the CVS tree with
- Milestone_X tag. Be sure to tag both Boost.Build and Boost.Jam sources.
+1. Make sure you don't have any local modification, and create SVN directory
+
+ https://svn.boost.org/svn/boost/branches/build/Milestone_X
+
+ Then, copy:
+
+ https://svn.boost.org/svn/boost/trunk/tools/build
+ https://svn.boost.org/svn/boost/trunk/tools/jam
+
+ to that directory.
2. Run
- cvs -d :ext:<your_user_name>@boost.cvs.sourceforge.net:/cvsroot/boost co -r
- Milestone_X -P -d boost-build boost/tools
-
- Note: it turns out that anonymous CVS access uses some backup server, which
- is not up-to-date.
+ svn co https://svn.boost.org/svn/boost/branches/build/Milestone_X boost-build
3. Go to "boost-build/build/v2" directory.
==============================================================================
--- branches/bcbboost/tools/build/v2/roll.sh (original)
+++ branches/bcbboost/tools/build/v2/roll.sh 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -30,10 +30,10 @@
# Build the documentation
touch doc/project-root.jam
-export BOOST_BUILD_PATH=/home/ghost/Work/boost-rc/tools/build/v2
+export BOOST_BUILD_PATH=`pwd`
cd doc
-/home/ghost/Work/boost-rc/tools/jam/src/bin.linuxx86/bjam --v2
-/home/ghost/Work/boost-rc/tools/jam/src/bin.linuxx86/bjam --v2 pdf
+/home/ghost/Work/Boost/boost-svn/tools/jam/src/bin.linuxx86/bjam --v2
+/home/ghost/Work/Boost/boost-svn/tools/jam/src/bin.linuxx86/bjam --v2 pdf
cp `find bin -name "*.pdf"` ../..
mv ../../standalone.pdf ../../userman.pdf
rm -rf bin
==============================================================================
--- branches/bcbboost/tools/build/v2/test/boostbook.py (original)
+++ branches/bcbboost/tools/build/v2/test/boostbook.py 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -5,17 +5,19 @@
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
from BoostBuild import Tester, List
+import string
# Create a temporary working directory
t = Tester()
t.set_tree("boostbook")
# For some reason, the messages are sent to stderr.
-t.run_build_system(stderr="""Writing boost/A.html for refentry(boost.A)
+t.run_build_system()
+t.fail_test(string.find(t.stdout(), """Writing boost/A.html for refentry(boost.A)
Writing library/reference.html for section(library.reference)
Writing index.html for chapter(library)
-Writing HTML.manifest
-""")
+Writing docs_HTML.manifest
+""") == -1)
t.expect_addition(["html/boost/A.html", "html/index.html"])
t.cleanup()
==============================================================================
--- branches/bcbboost/tools/build/v2/test/boostbook/Jamroot (original)
+++ branches/bcbboost/tools/build/v2/test/boostbook/Jamroot 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,3 +1,3 @@
-boostbook docs : docs.xml ;
+boostbook docs : docs.xml autodoc ;
doxygen autodoc : [ glob *.hpp ] ;
==============================================================================
--- branches/bcbboost/tools/build/v2/test/boostbook/docs.xml (original)
+++ branches/bcbboost/tools/build/v2/test/boostbook/docs.xml 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -32,5 +32,5 @@
</section>
- <xi:include href="autodoc.boostbook"/>
+ <xi:include href="autodoc.xml"/>
</library>
==============================================================================
--- branches/bcbboost/tools/build/v2/test/example_qt4.py (original)
+++ branches/bcbboost/tools/build/v2/test/example_qt4.py 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -13,14 +13,14 @@
t.set_tree("../example/qt/qt4/hello")
t.run_build_system()
-t.expect_addition(["bin/$toolset/debug/arrow"])
+t.expect_addition(["bin/$toolset/debug/threading-multi/user-interface-gui/arrow"])
t.set_tree("../example/qt/qt4/moccable-cpp")
t.run_build_system()
-t.expect_addition(["bin/$toolset/debug/main"])
+t.expect_addition(["bin/$toolset/debug/threading-multi/user-interface-gui/main"])
t.set_tree("../example/qt/qt4/uic")
t.run_build_system()
-t.expect_addition(["bin/$toolset/debug/hello"])
+t.expect_addition(["bin/$toolset/debug/threading-multi/user-interface-gui/hello"])
t.cleanup()
==============================================================================
--- branches/bcbboost/tools/build/v2/test/test-config-example.jam (original)
+++ branches/bcbboost/tools/build/v2/test/test-config-example.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -9,11 +9,11 @@
# while site-config.jam and user-config.jam will be ignored.
using gcc ;
-using borland ;
using boostbook
: /home/ghost/Store/docbook/xsl
: /home/ghost/Store/docbook/dtd
- : /home/ghost/Work/boost-rc/tools/boostbook
+ : /home/ghost/Work/Boost/boost-svn/tools/boostbook
;
using doxygen ;
+using qt4 : /usr/share/qt4 ;
==============================================================================
--- branches/bcbboost/tools/build/v2/tools/builtin.jam (original)
+++ branches/bcbboost/tools/build/v2/tools/builtin.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -570,6 +570,7 @@
a = [ new null-action $(property-set) ] ;
local lib-name = [ feature.get-values <name> : $(properties) ] ;
+ lib-name ?= $(name) ;
local t = [ new searched-lib-target $(lib-name) : $(project) : $(shared)
: $(search)
: $(a)
==============================================================================
--- branches/bcbboost/tools/build/v2/tools/gcc.jam (original)
+++ branches/bcbboost/tools/build/v2/tools/gcc.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -4,6 +4,7 @@
# Copyright (c) 2005 Reece H. Dunn.
# Copyright 2006 Ilya Sokolov.
# Copyright 2007 Roland Schwarz
+# Copyright 2007 Boris Gubenko.
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
@@ -137,6 +138,10 @@
{
linker = osf ;
}
+ else if [ os.name ] = HPUX
+ {
+ linker = hpux ;
+ }
else
{
linker = gnu ;
@@ -332,7 +337,7 @@
# to implement and will increase target path length even more.
flags gcc.compile OPTIONS <link>shared : -fPIC ;
}
-if [ os.name ] != NT && [ os.name ] != OSF
+if [ os.name ] != NT && [ os.name ] != OSF && [ os.name ] != HPUX
{
# OSF does have an option called -soname but it doesn't seem to work as
# expected, therefore it has been disabled.
@@ -500,9 +505,16 @@
flags gcc.link FINDLIBS-SA <find-shared-library> ;
flags gcc.link LIBRARIES <library-file> ;
-# For <runtime-link>static we made sure there are no dynamic libraries
-# in the link
-flags gcc.link OPTIONS <runtime-link>static : -static ;
+# For <runtime-link>static we made sure there are no dynamic libraries
+# in the link.
+# On HP-UX not all system libraries exist as archived libraries (for example,
+# there is no libunwind.a), so, on this platform, the -static option cannot
+# be specified.
+
+if [ os.name ] != HPUX
+{
+ flags gcc.link OPTIONS <runtime-link>static : -static ;
+}
# Now, the vendor specific flags
# The parameter linker can be either gnu or sun
@@ -608,6 +620,15 @@
flags $(toolset).link OPTIONS $(condition)/<link>shared : -mimpure-text
: unchecked ;
}
+
+ case hpux :
+ {
+ flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,-s
+ : unchecked ;
+ flags $(toolset).link OPTIONS $(condition)/<link>shared : -fPIC
+ : unchecked ;
+ }
+
case * :
{
errors.user-error
@@ -734,10 +755,6 @@
{
# gcc on IRIX does not support multi-threading, don't set anything here.
}
- case HP_UX :
- {
- # gcc on HP-UX does not support multi-threading, don't set anything here
- }
case Darwin :
{
# Darwin has no threading options, don't set anything here.
==============================================================================
--- branches/bcbboost/tools/build/v2/tools/msvc.jam (original)
+++ branches/bcbboost/tools/build/v2/tools/msvc.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -838,7 +838,7 @@
actions archive
{
if exist "$(<[1])" DEL "$(<[1])"
- $(.LD) $(AROPTIONS) /out:"$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) $(AROPTIONS) /out:"$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
}
}
else
@@ -846,7 +846,7 @@
actions archive
{
$(RM) "$(<[1])"
- $(.LD) $(AROPTIONS) /out:"$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) $(AROPTIONS) /out:"$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
}
}
@@ -866,7 +866,7 @@
{
actions link bind DEF_FILE
{
- $(.LD) $(LINKFLAGS) /out:"$(<[1]:W)" /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) $(LINKFLAGS) /out:"$(<[1]:W)" /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
if exist "$(<[1]).manifest" (
$(.MT) -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);1"
@@ -875,7 +875,7 @@
actions link.dll bind DEF_FILE
{
- $(.LD) /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:"$(DEF_FILE)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:"$(DEF_FILE)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
if exist "$(<[1]).manifest" (
$(.MT) -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);2"
@@ -886,7 +886,7 @@
{
actions link bind DEF_FILE
{
- $(.LD) $(LINKFLAGS) /out:"$(<[1]:W)" /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) $(LINKFLAGS) /out:"$(<[1]:W)" /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
if test -e "$(<[1]).manifest"; then
$(.MT) -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);1"
fi
@@ -894,7 +894,7 @@
actions link.dll bind DEF_FILE
{
- $(.LD) /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:"$(DEF_FILE)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:"$(DEF_FILE)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
if test -e "$(<[1]).manifest"; then
$(.MT) -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);2"
fi
==============================================================================
--- branches/bcbboost/tools/build/v2/tools/pathscale.jam (original)
+++ branches/bcbboost/tools/build/v2/tools/pathscale.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -128,7 +128,7 @@
actions link bind LIBRARIES
{
- "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -Wl,-rpath"$(RPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST)
+ "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -Wl,-rpath,"$(RPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST)
}
# Slight mods for dlls
@@ -139,7 +139,7 @@
actions link.dll bind LIBRARIES
{
- "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -Wl,-rpath"$(RPATH)" -o "$(<)" -Wl,-soname$(SPACE)-Wl,$(<[1]:D=) -shared "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST)
+ "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -Wl,-rpath,"$(RPATH)" -o "$(<)" -Wl,-soname$(SPACE)-Wl,$(<[1]:D=) -shared "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST)
}
# Declare action for creating static libraries
==============================================================================
--- branches/bcbboost/tools/build/v2/tools/stlport.jam (original)
+++ branches/bcbboost/tools/build/v2/tools/stlport.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -10,7 +10,7 @@
# The subfeature value 'hostios' means to use host compiler's iostreams.
#
# The specific version of stlport is selected by features:
-# The <link> feature selects between static and shared library
+# The <runtime-link> feature selects between static and shared library
# The <runtime-debugging>on selects STLPort with debug symbols
# and stl debugging.
# There's no way to use STLPort with debug symbols but without
@@ -124,7 +124,7 @@
# STLport host IO streams no longer supported. So we always
# need libraries.
- # name: stlport(stl)?[dg]?.M.R
+ # name: stlport(stl)?[dg]?(_static)?.M.R
local name = stlport ;
if [ feature.get-values <runtime-debugging> : $(raw) ] = "on"
{
@@ -136,6 +136,12 @@
case * : name += d ;
}
}
+
+ if [ feature.get-values <runtime-link> : $(raw) ] = "static"
+ {
+ name += _static ;
+ }
+
name += .$(self.version.5) ;
name = $(name:J=) ;
@@ -217,7 +223,7 @@
<define>_STLP_DEBUG=1
<define>_STLP_DEBUG_UNINITIALIZED=1 ;
}
- if [ $(rproperties).get <runtime-debugging> ] = "on"
+ if [ $(rproperties).get <runtime-link> ] = "shared"
{
usage-requirements +=
<define>_STLP_USE_DYNAMIC_LIB=1 ;
@@ -247,21 +253,6 @@
}
}
- #~ Allow setting up to use STLport by only using the library target
- #~ /stlport//stlport.
- #~ TODO: Make it possible to use /stlport//stlport/<version>5.0 to select
- #~ a specific configured version.
- if $(self.version)
- {
- usage-requirements +=
- <stdlib>stlport-$(self.version) ;
- }
- else
- {
- usage-requirements +=
- <stdlib>stlport ;
- }
-
return [ property-set.create $(usage-requirements) ] ;
}
}
==============================================================================
--- branches/bcbboost/tools/jam/build_dist.bat (original)
+++ branches/bcbboost/tools/jam/build_dist.bat 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,15 +1,36 @@
@ECHO OFF
-REM ~ Copyright 2006 Rene Rivera.
+REM ~ Copyright 2006-2007 Rene Rivera.
REM ~ Distributed under the Boost Software License, Version 1.0.
REM ~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-setlocal
+REM ~ Make stage for building.
+rd /S /Q stage
+md stage
+cd stage
-cd doc
-del /F /S /Q html
-bjam --v2
-del /F /S /Q ..\src\images ..\src\jam ..\src\*.html ..\src\*.png ..\src\*.css ..\src\LICENSE*.txt
-xcopy /S /I /Y html ..\src
+REM ~ Copy sources to stage.
cd ..\src
+xcopy *.bat ..\stage\
+xcopy *.jam ..\stage\
+xcopy *.sh ..\stage\
+xcopy *.com ..\stage\
+xcopy *.c ..\stage\
+xcopy *.h ..\stage\
+xcopy *.y ..\stage\
+xcopy *.yy ..\stage\
+xcopy Jambase ..\stage\
+xcopy /S /I /Y modules ..\stage\modules
+xcopy /S /I /Y boehm_gc ..\stage\boehm_gc
+cd ..\stage
+call .\build.bat
+
+REM ~ Build docs, and copy result to stage.
+cd ..\doc
+rd /S /Q html
+..\stage\bin.ntx86\bjam --v2
+xcopy /S /I /Y html ..\stage
+cd ..\stage
+
+REM ~ Build distribution archives.
call .\build.bat --- dist
==============================================================================
--- branches/bcbboost/tools/jam/build_dist.sh (original)
+++ branches/bcbboost/tools/jam/build_dist.sh 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,13 +1,27 @@
#!/bin/sh
-#~ Copyright 2002-2005 Rene Rivera.
+#~ Copyright 2006-2007 Rene Rivera.
#~ Distributed under the Boost Software License, Version 1.0.
#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-cd doc
-rm -Rf html
-bjam --v2
-rm -Rf ../src/images ../src/jam ../src/*.html ../src/*.png ../src/*.css ../src/LICENSE*.txt
-cp -R html/* ../src
+#~ Make stage for building.
+rm -rf stage
+mkdir stage
+cd stage
+
+#~ Copy sources to stage.
cd ../src
-. ./build.sh --- dist
+cp -R *.bat *.jam *.sh *.com *.c *.h *.y *.yy Jambase modules boehm_gc ../stage
+find ../stage -name '.svn' -type d -exec rm -rf '{}' ';'
+cd ../stage
+./build.sh
+
+#~ Build docs, and copy result to stage.
+cd ../doc
+rm -Rf html
+../stage/bin.*/bjam --v2
+cp -R html/* ../stage
+cd ../stage
+
+#~ Build distribution archives.
+sh ./build.sh --- dist
==============================================================================
--- branches/bcbboost/tools/jam/doc/bjam.qbk (original)
+++ branches/bcbboost/tools/jam/doc/bjam.qbk 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,6 +1,6 @@
[article Boost.Jam
[quickbook 1.3]
- [version: 3.1.15]
+ [version: 3.1.16]
[authors [Rivera, Rene], [Abrahams, David], [Prus, Vladimir]]
[copyright 2003 2004 2005 2006 2007 Rene Rivera, David Abrahams, Vladimir Prus]
[category tool-build]
@@ -21,7 +21,7 @@
[/ Shortcuts ]
-[def :version: 3.1.15]
+[def :version: 3.1.16]
[/ Images ]
@@ -1738,3 +1738,8 @@
[endsect]
[endsect]
+
+
+[section History]
+[include history.qbk]
+[endsect]
\ No newline at end of file
==============================================================================
--- branches/bcbboost/tools/jam/src/boost-jam.spec (original)
+++ branches/bcbboost/tools/jam/src/boost-jam.spec 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1,64 +1,64 @@
-Name: boost-jam
-Version: 3.1.15
-Summary: Build tool
-Release: 1
-Source: %{name}-%{version}.tgz
-
-License: Boost Software License, Version 1.0
-Group: Development/Tools
-URL: http://www.boost.org
-Packager: Rene Rivera <grafik_at_[hidden]>
-BuildRoot: /var/tmp/%{name}-%{version}.root
-
-%description
-Boost Jam is a build tool based on FTJam, which in turn is based on
-Perforce Jam. It contains significant improvements made to facilitate
-its use in the Boost Build System, but should be backward compatible
-with Perforce Jam.
-
-Authors:
- Perforce Jam : Cristopher Seiwald
- FT Jam : David Turner
- Boost Jam : David Abrahams
-
-Copyright:
- /+\
- +\ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
- \+/
- License is hereby granted to use this software and distribute it
- freely, as long as this copyright notice is retained and modifications
- are clearly marked.
- ALL WARRANTIES ARE HEREBY DISCLAIMED.
-
-Also:
- Copyright 2001-2006 David Abrahams.
- Copyright 2002-2006 Rene Rivera.
- Copyright 2003-2006 Vladimir Prus.
-
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-%prep
-%setup -n %{name}-%{version}
-
-%build
-LOCATE_TARGET=bin ./build.sh $BOOST_JAM_TOOLSET
-
-%install
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT%{_bindir}
-mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-install -m 755 bin/bjam $RPM_BUILD_ROOT%{_bindir}/bjam-%{version}
-ln -sf bjam-%{version} $RPM_BUILD_ROOT%{_bindir}/bjam
-cp -R *.html *.png *.css LICENSE*.txt images jam $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-
-find $RPM_BUILD_ROOT -name CVS -type d -exec rm -r {} \;
-
-%files
-%defattr(-,root,root)
-%attr(755,root,root) /usr/bin/*
-%doc %{_docdir}/%{name}-%{version}
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+Name: boost-jam
+Version: 3.1.16
+Summary: Build tool
+Release: 1
+Source: %{name}-%{version}.tgz
+
+License: Boost Software License, Version 1.0
+Group: Development/Tools
+URL: http://www.boost.org
+Packager: Rene Rivera <grafik_at_[hidden]>
+BuildRoot: /var/tmp/%{name}-%{version}.root
+
+%description
+Boost Jam is a build tool based on FTJam, which in turn is based on
+Perforce Jam. It contains significant improvements made to facilitate
+its use in the Boost Build System, but should be backward compatible
+with Perforce Jam.
+
+Authors:
+ Perforce Jam : Cristopher Seiwald
+ FT Jam : David Turner
+ Boost Jam : David Abrahams
+
+Copyright:
+ /+\
+ +\ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
+ \+/
+ License is hereby granted to use this software and distribute it
+ freely, as long as this copyright notice is retained and modifications
+ are clearly marked.
+ ALL WARRANTIES ARE HEREBY DISCLAIMED.
+
+Also:
+ Copyright 2001-2006 David Abrahams.
+ Copyright 2002-2006 Rene Rivera.
+ Copyright 2003-2006 Vladimir Prus.
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+%prep
+%setup -n %{name}-%{version}
+
+%build
+LOCATE_TARGET=bin ./build.sh $BOOST_JAM_TOOLSET
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+install -m 755 bin/bjam $RPM_BUILD_ROOT%{_bindir}/bjam-%{version}
+ln -sf bjam-%{version} $RPM_BUILD_ROOT%{_bindir}/bjam
+cp -R *.html *.png *.css LICENSE*.txt images jam $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+
+find $RPM_BUILD_ROOT -name CVS -type d -exec rm -r {} \;
+
+%files
+%defattr(-,root,root)
+%attr(755,root,root) /usr/bin/*
+%doc %{_docdir}/%{name}-%{version}
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
==============================================================================
--- branches/bcbboost/tools/jam/src/build.jam (original)
+++ branches/bcbboost/tools/jam/src/build.jam 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -13,7 +13,7 @@
./ ?= "" ;
# Info about what we are building.
-_VERSION_ = 3 1 15 ;
+_VERSION_ = 3 1 16 ;
NAME = boost-jam ;
VERSION = $(_VERSION_:J=$(.)) ;
RELEASE = 1 ;
@@ -818,18 +818,19 @@
build.jam build.bat build.sh build_vms.com
Jambase
jamgram.y jamgram.yy
- [ .path debian changelog ]
- [ .path debian control ]
- [ .path debian copyright ]
- [ .path debian jam.man.sgml ]
- [ .path debian rules ]
[ .path modules set.c ]
[ .path modules path.c ]
[ .path modules regex.c ]
[ .path modules property-set.c ]
[ .path modules sequence.c ]
[ .path modules order.c ]
- boost-jam.spec
+ [ GLOB [ .path boehm_gc ] : * ]
+ [ GLOB [ .path boehm_gc include ] : * ]
+ [ GLOB [ .path boehm_gc include private ] : * ]
+ [ GLOB [ .path boehm_gc cord ] : * ]
+ [ GLOB [ .path boehm_gc Mac_files ] : * ]
+ [ GLOB [ .path boehm_gc tests ] : * ]
+ [ GLOB [ .path boehm_gc doc ] : * ]
;
dist.bin =
bjam
@@ -863,9 +864,19 @@
}
if $(UNIX)
{
+ tar ?= [ GLOB $(PATH) : star bsdtar tar ] ;
+ tar = $(tar[1]) ;
+ switch $(tar:D=:S=)
+ {
+ case star : tar += -c artype=pax -D -d -to-stdout ;
+ case * : tar += -c -f - ;
+ }
actions [PACK] {
- tar zcf "$(<)" "$(>)"
+ "$(tar)" "$(>)" | gzip -c9 > "$(<)"
}
+ #~ actions [PACK] {
+ #~ tar cf "$(<:S=.tar)" "$(>)"
+ #~ }
actions [ZIP] {
gzip -c9 "$(>)" > "$(<)"
}
@@ -893,16 +904,21 @@
rule .package ( dst-dir : src-files + )
{
local dst-files ;
+ local src-files-actual ;
for local src-path in $(src-files)
{
- local src-subdir = $(src-path:D) ;
- local src-file = $(src-path) ;
- while $(src-subdir:D) { src-subdir = $(src-subdir:D) ; }
- if $(src-subdir) = ".."
+ if ! [ GLOB $(src-path:P) : $(src-path:B) ] || [ CHECK_IF_FILE $(src-path) ]
{
- src-file = $(src-file:D=) ;
+ local src-subdir = $(src-path:D) ;
+ local src-file = $(src-path) ;
+ while $(src-subdir:D) { src-subdir = $(src-subdir:D) ; }
+ if $(src-subdir) = ".."
+ {
+ src-file = $(src-file:D=) ;
+ }
+ dst-files += $(src-file:R=$(dst-dir)) ;
+ src-files-actual += $(src-path) ;
}
- dst-files += $(src-file:R=$(dst-dir)) ;
}
local pack = ;
@@ -913,7 +929,7 @@
DEPENDS $(pack) : $(dst-files) ;
local dst-files-queue = $(dst-files) ;
- for local src-path in $(src-files)
+ for local src-path in $(src-files-actual)
{
local dst-file = $(dst-files-queue[1]) ;
dst-files-queue = $(dst-files-queue[2-]) ;
@@ -976,6 +992,6 @@
.package $(NAME)-$(VERSION)-$(RELEASE)-$(platform) : $(dist.bin) ;
if $(rpm-tool)
{
- .rpm $(NAME)-$(VERSION)-$(RELEASE) : $(NAME)-$(VERSION).tgz ;
+ #~ .rpm $(NAME)-$(VERSION)-$(RELEASE) : $(NAME)-$(VERSION).tgz ;
}
}
==============================================================================
--- branches/bcbboost/tools/jam/src/builtins.c (original)
+++ branches/bcbboost/tools/jam/src/builtins.c 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1696,22 +1696,43 @@
}
-/* Accepts two arguments -- an action name and an action body.
+/* Accepts four arguments:
+ - an action name
+ - an action body
+ - a list of variable that will be bound inside the action
+ - integer flags.
Defines an action on bjam side.
-
- This interface does not (yet) support the list of bound
- variables of the action flags (together/piecemeal/etc). */
+*/
PyObject*
bjam_define_action(PyObject* self, PyObject *args)
{
char* name;
char* body;
module_t* m;
+ PyObject *bindlist_python;
+ int flags;
+ LIST *bindlist = L0;
+ int n;
+ int i;
- if (!PyArg_ParseTuple(args, "ss:define_action", &name, &body))
+ if (!PyArg_ParseTuple(args, "ssO!i:define_action", &name, &body,
+ &PyList_Type, &bindlist_python, &flags))
return NULL;
+
+ n = PyList_Size (bindlist_python);
+ for (i = 0; i < n; ++i)
+ {
+ PyObject *next = PyList_GetItem(bindlist_python, i);
+ if (!PyString_Check(next))
+ {
+ PyErr_SetString(PyExc_RuntimeError,
+ "bind list has non-string type");
+ return NULL;
+ }
+ bindlist = list_new(bindlist, PyString_AsString(next));
+ }
- new_rule_actions(root_module(), name, newstr(body), L0, 0);
+ new_rule_actions(root_module(), name, newstr(body), bindlist, flags);
return Py_None;
}
==============================================================================
--- branches/bcbboost/tools/jam/src/compile.c (original)
+++ branches/bcbboost/tools/jam/src/compile.c 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -1016,6 +1016,7 @@
/* Make targets[1,N-1] depend on targets[0], to describe the multply
generated targets for the rule. Do it with includes, to reflect
non-build dependency. */
+ if ( action->targets )
{
TARGET * t0 = action->targets->target;
for ( t = action->targets->next; t; t = t->next )
==============================================================================
--- branches/bcbboost/tools/jam/src/execunix.c (original)
+++ branches/bcbboost/tools/jam/src/execunix.c 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -62,7 +62,7 @@
static clock_t tps = 0;
static struct timeval tv;
-static int timeout = 0;
+static int select_timeout = 0;
static int intr = 0;
static int cmdsrunning = 0;
@@ -221,6 +221,13 @@
* we use killpg(pid, SIGKILL) to kill the
* process group leader and all its children.
*/
+ if (0 < globs.timeout)
+ {
+ struct rlimit r_limit;
+ r_limit.rlim_cur = globs.timeout;
+ r_limit.rlim_max = globs.timeout;
+ setrlimit(RLIMIT_CPU, &r_limit);
+ }
setpgid(cmdtab[slot].pid, cmdtab[slot].pid);
execvp( argv[0], argv );
@@ -358,7 +365,7 @@
int i, fd_max = 0;
struct tms buf;
clock_t current = times(&buf);
- timeout = globs.timeout;
+ select_timeout = globs.timeout;
/* compute max read file descriptor for use in select */
FD_ZERO(fds);
@@ -380,7 +387,10 @@
if (globs.timeout && cmdtab[i].pid) {
clock_t consumed = (current - cmdtab[i].start_time) / tps;
- timeout = (globs.timeout - consumed) < timeout ? (globs.timeout - consumed) : timeout;
+ clock_t process_timesout = globs.timeout - consumed;
+ if (0 < process_timesout && process_timesout < select_timeout) {
+ select_timeout = process_timesout;
+ }
if (globs.timeout <= consumed) {
killpg(cmdtab[i].pid, SIGKILL);
cmdtab[i].exit_reason = EXIT_TIMEOUT;
@@ -418,7 +428,7 @@
if (0 < globs.timeout) {
/* force select to timeout so we can terminate expired processes */
- tv.tv_sec = timeout;
+ tv.tv_sec = select_timeout;
tv.tv_usec = 0;
/* select will wait until: io on a descriptor, a signal, or we time out */
==============================================================================
--- branches/bcbboost/tools/jam/src/patchlevel.h (original)
+++ branches/bcbboost/tools/jam/src/patchlevel.h 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -9,9 +9,9 @@
#define VERSION_MAJOR 3
#define VERSION_MINOR 1
-#define VERSION_PATCH 15
+#define VERSION_PATCH 16
#define VERSION_MAJOR_SYM "03"
#define VERSION_MINOR_SYM "1"
-#define VERSION_PATCH_SYM "15"
-#define VERSION "3.1.15"
+#define VERSION_PATCH_SYM "16"
+#define VERSION "3.1.16"
#define JAMVERSYM "JAMVERSION=3.1"
==============================================================================
--- branches/bcbboost/tools/regression/boost_svn_export_archive.sh (original)
+++ branches/bcbboost/tools/regression/boost_svn_export_archive.sh 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -34,7 +34,7 @@
{
svn_export \
| cut --bytes=6- \
- | star -c -D -to-stdout -d artype=tar list=- 2>/dev/null \
+ | star -c -D -to-stdout -d artype=pax list=- 2>/dev/null \
| bzip2 -6 -c \
| tee $1 \
| tar -jtf - \
==============================================================================
--- branches/bcbboost/tools/regression/compiler_status.cpp (original)
+++ branches/bcbboost/tools/regression/compiler_status.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -19,6 +19,7 @@
*******************************************************************************/
+#include "boost/config.hpp"
#include "boost/filesystem/operations.hpp"
#include "boost/filesystem/fstream.hpp"
#include "detail/tiny_xml.hpp"
@@ -26,6 +27,7 @@
namespace xml = boost::tiny_xml;
#include <cstdlib> // for abort, exit
+#include <cctype> // for toupper
#include <string>
#include <vector>
#include <set>
@@ -52,10 +54,12 @@
fs::path boost_root; // boost-root complete path
fs::path locate_root; // locate-root (AKA ALL_LOCATE_TARGET) complete path
+ bool compile_time;
+ bool run_time;
bool ignore_pass;
bool no_warn;
bool no_links;
- bool boost_build_v2;
+ bool boost_build_v2 = true;
fs::path jamfile_path;
@@ -89,6 +93,24 @@
string url_prefix_checkout_view( cvs_root + "*checkout*/boost/boost" );
string url_suffix_text_view( "?view=markup&rev=HEAD" );
+// get revision number (as a string) if boost_root is svn working copy -----//
+
+ string revision( const fs::path & boost_root )
+ {
+ string rev;
+ fs::path entries( boost_root / ".svn" / "entries" );
+ fs::ifstream entries_file( entries );
+ if ( entries_file )
+ {
+ std::getline( entries_file, rev );
+ std::getline( entries_file, rev );
+ std::getline( entries_file, rev );
+ std::getline( entries_file, rev ); // revision number as a string
+ }
+ return rev;
+ }
+
+
// build notes_bookmarks from notes HTML -----------------------------------//
void build_notes_bookmarks()
@@ -180,38 +202,11 @@
}
// platform_desc -----------------------------------------------------------//
-// from locate_root/status/bin/config_info.test/xxx/.../config_info.output
string platform_desc()
{
- string result;
- fs::path dot_output_path;
-
- // the gcc config_info "Detected Platform" sometimes reports "cygwin", so
- // prefer any of the other compilers.
- if ( find_file( locate_root / "bin/boost/status/config_info.test",
- "config_info.output", dot_output_path, "gcc" )
- || find_file( locate_root / "bin/boost/status/config_info.test",
- "config_info.output", dot_output_path )
- || find_file( locate_root / "status/bin/config_info.test",
- "config_info.output", dot_output_path, "gcc" )
- || find_file( locate_root / "status/bin/config_info.test",
- "config_info.output", dot_output_path ) )
- {
- fs::ifstream file( dot_output_path );
- if ( file )
- {
- while( std::getline( file, result ) )
- {
- if ( result.find( "Detected Platform: " ) == 0 )
- {
- result.erase( 0, 19 );
- return result;
- }
- }
- result.clear();
- }
- }
+ string result = BOOST_PLATFORM;
+ result[0] = std::toupper( result[0] );
return result;
}
@@ -538,7 +533,7 @@
const string & toolset,
string & target,
bool always_show_run_output )
- // return true if any results except pass_msg
+ // return true if any results except simple pass_msg
{
fs::path target_dir( target_directory( test_dir / toolset ) );
bool pass = false;
@@ -568,7 +563,8 @@
const xml::element & db( *dbp );
std::string test_type_base( test_type );
- if ( test_type_base.size() > 5 )
+ if ( test_type_base == "run_pyd" ) test_type_base = "run";
+ else if ( test_type_base.size() > 5 )
{
const string::size_type trailer = test_type_base.size() - 5;
if ( test_type_base.substr( trailer ) == "_fail" )
@@ -591,8 +587,9 @@
always_show_run_output || note );
}
- // generate the status table cell pass/warn/fail HTML
target += "<td>";
+
+ // generate the status table cell pass/warn/fail HTML
if ( anything_generated != 0 )
{
target += "<a href=\"";
@@ -616,6 +613,38 @@
if ( !notes.empty() )
target += get_notes( toolset, lib_name, test_name, !pass );
+ // generate compile-time if requested
+ if ( compile_time )
+ {
+ const xml::element & compile_element( find_element( db, "compile" ) );
+
+ if ( !compile_element.name.empty() )
+ {
+ string times = attribute_value( compile_element, "timings" );
+ if ( !times.empty() )
+ {
+ target += "<br>";
+ target += times.substr( 0, times.find( " " ) );
+ }
+ }
+ }
+
+ // generate run-time if requested
+ if ( run_time )
+ {
+ const xml::element & run_element( find_element( db, "run" ) );
+
+ if ( !run_element.name.empty() )
+ {
+ string times = attribute_value( run_element, "timings" );
+ if ( !times.empty() )
+ {
+ target += "<br>";
+ target += times.substr( 0, times.find( " " ) );
+ }
+ }
+ }
+
target += "</td>";
return (anything_generated != 0) || !pass;
}
@@ -653,7 +682,12 @@
target += "<tr><td><a href=\"" + url_prefix_dir_view + "/libs/" + lib_name
+ "\">" + lib_name + "</a></td>";
target += "<td><a href=\"" + url_prefix_checkout_view + "/" + test_path
- + url_suffix_text_view + "\">" + test_name + "</a></td>";
+ + url_suffix_text_view + "\">" + test_name + "</a>";
+
+ if ( compile_time ) target += "<br> Compile time:";
+ if ( run_time ) target += "<br> Run time:";
+
+ target += "</td>";
target += "<td>" + test_type + "</td>";
bool no_warn_save = no_warn;
@@ -819,9 +853,12 @@
{ notes_map_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
else if ( std::strcmp( argv[1], "--ignore-pass" ) == 0 ) ignore_pass = true;
else if ( std::strcmp( argv[1], "--no-warn" ) == 0 ) no_warn = true;
+ else if ( std::strcmp( argv[1], "--v1" ) == 0 ) boost_build_v2 = false;
else if ( std::strcmp( argv[1], "--v2" ) == 0 ) boost_build_v2 = true;
else if ( argc > 2 && std::strcmp( argv[1], "--jamfile" ) == 0)
{ jamfile_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ else if ( std::strcmp( argv[1], "--compile-time" ) == 0 ) compile_time = true;
+ else if ( std::strcmp( argv[1], "--run-time" ) == 0 ) run_time = true;
else { std::cerr << "Unknown option: " << argv[1] << "\n"; argc = 1; }
--argc;
++argv;
@@ -846,9 +883,12 @@
" --notes-map path Path to file of toolset/test,n lines, where\n"
" n is number of note bookmark in --notes file.\n"
" --jamfile path Path to Jamfile. By default \"Jamfile\".\n"
- " --v2 Assume Boost.Build version 2.\n"
+ " --v1 Assume Boost.Build version 1.\n"
+ " --v2 Assume Boost.Build version 2. (default)\n"
" --ignore-pass Ignore passing tests.\n"
" --no-warn Do not report warnings.\n"
+ " --compile-time Show compile time.\n"
+ " --run-time Show run time.\n"
"Example: compiler_status --compiler gcc /boost-root cs.html cs-links.html\n"
"Note: Only the leaf of the links-file path and --notes file string are\n"
"used in status-file HTML links. Thus for browsing, status-file,\n"
@@ -901,9 +941,11 @@
std::strftime( run_date, sizeof(run_date),
"%X UTC, %A %d %B %Y", std::gmtime( &tod ) );
+ std::string rev = revision( boost_root );
+
report << "<html>\n"
"<head>\n"
- "<title>Boost Compiler Status Automatic Test</title>\n"
+ "<title>Boost Test Results</title>\n"
"</head>\n"
"<body bgcolor=\"#ffffff\" text=\"#000000\">\n"
"<table border=\"0\">\n"
@@ -911,11 +953,16 @@
"<td><img border=\"0\" src=\"http://www.boost.org/boost.png\" width=\"277\" "
"height=\"86\"></td>\n"
"<td>\n"
- "<h1>Compiler Status: " + platform_desc() + "</h1>\n"
- "<b>Run Date:</b> "
- << run_date
- << "\n"
- ;
+ "<h1>Boost Test Results - " + platform_desc() + "</h1>\n"
+ "<b>Run</b> "
+ << run_date;
+ if ( !rev.empty() ) report << ", <b>Revision</b> " << rev;
+ report << "\n";
+
+
+ if ( compile_time )
+ report << "<p>Times reported are elapsed wall clock time in seconds.</p>\n";
+
if ( !comment_path.empty() )
{
@@ -936,19 +983,19 @@
links_file
<< "<html>\n"
"<head>\n"
- "<title>Boost Compiler Status Error Log</title>\n"
+ "<title>Boost Test Details</title>\n"
"</head>\n"
"<body bgcolor=\"#ffffff\" text=\"#000000\">\n"
"<table border=\"0\">\n"
"<tr>\n"
- "<td><img border=\"0\" src=\"../boost.png\" width=\"277\" "
+ "<td><img border=\"0\" src=\"http://www.boost.org/boost.png\" width=\"277\" "
"height=\"86\"></td>\n"
"<td>\n"
- "<h1>Compiler Status: " + platform_desc() + "</h1>\n"
+ "<h1>Boost Test Details - " + platform_desc() + "</h1>\n"
"<b>Run Date:</b> "
- << run_date
- << "\n</td>\n</table>\n<br>\n"
- ;
+ << run_date;
+ if ( !rev.empty() ) links_file << ", <b>Revision</b> " << rev;
+ links_file << "\n</td>\n</table>\n<br>\n";
}
do_table();
==============================================================================
--- branches/bcbboost/tools/regression/process_jam_log.cpp (original)
+++ branches/bcbboost/tools/regression/process_jam_log.cpp 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -681,6 +681,14 @@
line_start.find( ".linkonce" ) == string::npos )
)
{
+ if ( !test2info.size() )
+ {
+ std::cout << "*****Error - No \"boost-test\" lines encountered.\n"
+ " (Usually occurs when bjam was envoked without the --dump-tests option\n"
+ " or bjam was envoked in the wrong directory)\n";
+ return 1;
+ }
+
string action( ( line_start.find( "Link-action" ) != string::npos
|| line_start.find( "vc-Link" ) != string::npos
|| line_start.find( "Archive-action" ) != string::npos
==============================================================================
--- branches/bcbboost/tools/regression/xsl_reports/runner/regression.py (original)
+++ branches/bcbboost/tools/regression/xsl_reports/runner/regression.py 2007-10-07 16:10:53 EDT (Sun, 07 Oct 2007)
@@ -628,7 +628,7 @@
, comment
, incremental
, dart_server
- , http_proxy
+ , ftp_proxy
, args
, **unused
):
@@ -680,7 +680,7 @@
, source
, run_type
, dart_server
- , http_proxy
+ , ftp_proxy
, revision
)