aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorbugaevskiy <bugaevskiy@yandex-team.com>2022-08-20 15:54:37 +0300
committerbugaevskiy <bugaevskiy@yandex-team.com>2022-08-20 15:54:37 +0300
commit65827f08ae1b27337d63bd10f56a660b25b28991 (patch)
treef8512d48403de5e7277994a65f04c72744703b31 /contrib
parent7f1570b2b038ea0855a293ba9313b668f3e6d557 (diff)
downloadydb-65827f08ae1b27337d63bd10f56a660b25b28991.tar.gz
Reimport boost/xpressive as a separate project
Diffstat (limited to 'contrib')
-rw-r--r--contrib/restricted/boost/CMakeLists.txt1
-rw-r--r--contrib/restricted/boost/boost/xpressive/detail/core/matcher/action_matcher.hpp501
-rw-r--r--contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp50
-rw-r--r--contrib/restricted/boost/boost/xpressive/detail/core/matcher/predicate_matcher.hpp174
-rw-r--r--contrib/restricted/boost/boost/xpressive/regex_actions.hpp1574
-rw-r--r--contrib/restricted/boost/boost/xpressive/traits/null_regex_traits.hpp231
-rw-r--r--contrib/restricted/boost/boost/xpressive/xpressive.hpp21
-rw-r--r--contrib/restricted/boost/boost/xpressive/xpressive_typeof.hpp150
-rw-r--r--contrib/restricted/boost/xpressive/CMakeLists.txt38
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/basic_regex.hpp (renamed from contrib/restricted/boost/boost/xpressive/basic_regex.hpp)4
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/access.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/access.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/action.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/action.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/adaptor.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/adaptor.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/finder.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/finder.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/flow_control.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/flow_control.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/icase.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/icase.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/linker.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/linker.hpp)2
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/list.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/list.hpp)2
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/alternate_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/alternate_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/any_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/any_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_line_base.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_line_base.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/attr_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/charset_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/charset_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/end_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/end_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/keeper_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/keeper_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/literal_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/literal_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/optional_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/optional_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/range_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/range_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/regex_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/regex_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/set_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/set_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/string_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/string_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/true_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matcher/true_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matchers.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/matchers.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/optimize.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/optimize.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/peeker.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/peeker.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/quant_style.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/quant_style.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/regex_domain.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/regex_domain.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/regex_impl.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/regex_impl.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/results_cache.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/results_cache.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/state.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/state.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/sub_match_impl.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/sub_match_impl.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/sub_match_vector.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/core/sub_match_vector.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/detail_fwd.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/detail_fwd.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/dynamic.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/dynamic.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/matchable.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/matchable.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parse_charset.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/parse_charset.hpp)2
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/parser.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser_enum.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/parser_enum.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser_traits.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/parser_traits.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/sequence.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/dynamic/sequence.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/compile.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/compile.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/grammar.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/grammar.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/is_pure.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/is_pure.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/modifier.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/modifier.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/placeholders.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/placeholders.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/static.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/static.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_action.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_action.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_alternate.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_alternate.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_independent.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_independent.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_inverse.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_inverse.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_marker.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_marker.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_matcher.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_matcher.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_modifier.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_modifier.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_quantifier.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_quantifier.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_sequence.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_sequence.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_set.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_set.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transmogrify.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/transmogrify.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/type_traits.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/type_traits.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/visitor.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/visitor.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/width_of.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/static/width_of.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/algorithm.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/algorithm.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/any.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/any.hpp)16
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/boyer_moore.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/boyer_moore.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/basic_chset.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/chset/basic_chset.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/basic_chset.ipp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/chset/basic_chset.ipp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/chset.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/chset/chset.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/range_run.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/chset/range_run.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/range_run.ipp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/chset/range_run.ipp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/cons.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/cons.hpp)36
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/counted_base.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/counted_base.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/dont_care.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/dont_care.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/hash_peek_bitset.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/hash_peek_bitset.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/ignore_unused.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/ignore_unused.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/literals.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/literals.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/never_true.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/never_true.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/save_restore.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/save_restore.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/sequence_stack.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/sequence_stack.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/symbols.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/symbols.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/tracking_ptr.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/tracking_ptr.hpp)2
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/traits_utils.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/traits_utils.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/width.hpp (renamed from contrib/restricted/boost/boost/xpressive/detail/utility/width.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/match_results.hpp (renamed from contrib/restricted/boost/boost/xpressive/match_results.hpp)4
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_algorithms.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_algorithms.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_compiler.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_compiler.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_constants.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_constants.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_error.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_error.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_iterator.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_primitives.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_primitives.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_token_iterator.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_token_iterator.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/regex_traits.hpp (renamed from contrib/restricted/boost/boost/xpressive/regex_traits.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/sub_match.hpp (renamed from contrib/restricted/boost/boost/xpressive/sub_match.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/traits/c_regex_traits.hpp (renamed from contrib/restricted/boost/boost/xpressive/traits/c_regex_traits.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/traits/cpp_regex_traits.hpp (renamed from contrib/restricted/boost/boost/xpressive/traits/cpp_regex_traits.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/traits/detail/c_ctype.hpp (renamed from contrib/restricted/boost/boost/xpressive/traits/detail/c_ctype.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_dynamic.hpp (renamed from contrib/restricted/boost/boost/xpressive/xpressive_dynamic.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_fwd.hpp (renamed from contrib/restricted/boost/boost/xpressive/xpressive_fwd.hpp)0
-rw-r--r--contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_static.hpp (renamed from contrib/restricted/boost/boost/xpressive/xpressive_static.hpp)0
126 files changed, 73 insertions, 2735 deletions
diff --git a/contrib/restricted/boost/CMakeLists.txt b/contrib/restricted/boost/CMakeLists.txt
index fe28017d43..448a9e53f3 100644
--- a/contrib/restricted/boost/CMakeLists.txt
+++ b/contrib/restricted/boost/CMakeLists.txt
@@ -72,4 +72,5 @@ target_link_libraries(contrib-restricted-boost INTERFACE
restricted-boost-variant
restricted-boost-vmd
restricted-boost-winapi
+ restricted-boost-xpressive
)
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/action_matcher.hpp b/contrib/restricted/boost/boost/xpressive/detail/core/matcher/action_matcher.hpp
deleted file mode 100644
index af960f1217..0000000000
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/action_matcher.hpp
+++ /dev/null
@@ -1,501 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// action_matcher.hpp
-//
-// Copyright 2008 Eric Niebler.
-// Copyright 2008 David Jenkins.
-//
-// 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_XPRESSIVE_DETAIL_CORE_MATCHER_ACTION_MATCHER_HPP_EAN_10_04_2005
-#define BOOST_XPRESSIVE_DETAIL_CORE_MATCHER_ACTION_MATCHER_HPP_EAN_10_04_2005
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/version.hpp>
-#include <boost/ref.hpp>
-#include <boost/assert.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/utility/result_of.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/xpressive/detail/detail_fwd.hpp>
-#include <boost/xpressive/detail/core/quant_style.hpp>
-#include <boost/xpressive/detail/core/action.hpp>
-#include <boost/xpressive/detail/core/state.hpp>
-#include <boost/proto/core.hpp>
-#include <boost/proto/context.hpp>
-#include <boost/xpressive/match_results.hpp> // for type_info_less
-#include <boost/xpressive/detail/static/transforms/as_action.hpp> // for 'read_attr'
-#if BOOST_VERSION >= 103500
-# include <boost/proto/fusion.hpp>
-# include <boost/fusion/include/transform_view.hpp>
-# include <boost/fusion/include/invoke.hpp>
-# include <boost/fusion/include/push_front.hpp>
-# include <boost/fusion/include/pop_front.hpp>
-#endif
-
-#if BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable : 4510) // default constructor could not be generated
-#pragma warning(disable : 4512) // assignment operator could not be generated
-#pragma warning(disable : 4610) // can never be instantiated - user defined constructor required
-#endif
-
-namespace boost { namespace xpressive { namespace detail
-{
-
- #if BOOST_VERSION >= 103500
- struct DataMember
- : proto::mem_ptr<proto::_, proto::terminal<proto::_> >
- {};
-
- template<typename Expr, long N>
- struct child_
- : remove_reference<
- typename proto::result_of::child_c<Expr &, N>::type
- >
- {};
-
- ///////////////////////////////////////////////////////////////////////////////
- // mem_ptr_eval
- // Rewrites expressions of the form x->*foo(a) into foo(x, a) and then
- // evaluates them.
- template<typename Expr, typename Context, bool IsDataMember = proto::matches<Expr, DataMember>::value>
- struct mem_ptr_eval
- {
- typedef typename child_<Expr, 0>::type left_type;
- typedef typename child_<Expr, 1>::type right_type;
-
- typedef
- typename proto::result_of::value<
- typename proto::result_of::child_c<right_type, 0>::type
- >::type
- function_type;
-
- typedef
- fusion::transform_view<
- typename fusion::result_of::push_front<
- typename fusion::result_of::pop_front<right_type>::type const
- , reference_wrapper<left_type>
- >::type const
- , proto::eval_fun<Context>
- >
- evaluated_args;
-
- typedef
- typename fusion::result_of::invoke<function_type, evaluated_args>::type
- result_type;
-
- result_type operator()(Expr &expr, Context &ctx) const
- {
- return fusion::invoke<function_type>(
- proto::value(proto::child_c<0>(proto::right(expr)))
- , evaluated_args(
- fusion::push_front(fusion::pop_front(proto::right(expr)), boost::ref(proto::left(expr)))
- , proto::eval_fun<Context>(ctx)
- )
- );
- }
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // mem_ptr_eval
- // Rewrites expressions of the form x->*foo into foo(x) and then
- // evaluates them.
- template<typename Expr, typename Context>
- struct mem_ptr_eval<Expr, Context, true>
- {
- typedef typename child_<Expr, 0>::type left_type;
- typedef typename child_<Expr, 1>::type right_type;
-
- typedef
- typename proto::result_of::value<right_type>::type
- function_type;
-
- typedef typename boost::result_of<
- function_type(typename proto::result_of::eval<left_type, Context>::type)
- >::type result_type;
-
- result_type operator()(Expr &expr, Context &ctx) const
- {
- return proto::value(proto::right(expr))(
- proto::eval(proto::left(expr), ctx)
- );
- }
- };
- #endif
-
- struct attr_with_default_tag
- {};
-
- template<typename T>
- struct opt;
-
- ///////////////////////////////////////////////////////////////////////////////
- // action_context
- //
- struct action_context
- {
- explicit action_context(action_args_type *action_args)
- : action_args_(action_args)
- {}
-
- action_args_type const &args() const
- {
- return *this->action_args_;
- }
-
- // eval_terminal
- template<typename Expr, typename Arg>
- struct eval_terminal
- : proto::default_eval<Expr, action_context const>
- {};
-
- template<typename Expr, typename Arg>
- struct eval_terminal<Expr, reference_wrapper<Arg> >
- {
- typedef Arg &result_type;
- result_type operator()(Expr &expr, action_context const &) const
- {
- return proto::value(expr).get();
- }
- };
-
- template<typename Expr, typename Arg>
- struct eval_terminal<Expr, opt<Arg> >
- {
- typedef Arg const &result_type;
- result_type operator()(Expr &expr, action_context const &) const
- {
- return proto::value(expr);
- }
- };
-
- template<typename Expr, typename Type, typename Int>
- struct eval_terminal<Expr, action_arg<Type, Int> >
- {
- typedef typename action_arg<Type, Int>::reference result_type;
- result_type operator()(Expr &expr, action_context const &ctx) const
- {
- action_args_type::const_iterator where_ = ctx.args().find(&typeid(proto::value(expr)));
- if(where_ == ctx.args().end())
- {
- BOOST_THROW_EXCEPTION(
- regex_error(
- regex_constants::error_badarg
- , "An argument to an action was unspecified"
- )
- );
- }
- return proto::value(expr).cast(where_->second);
- }
- };
-
- // eval
- template<typename Expr, typename Tag = typename Expr::proto_tag>
- struct eval
- : proto::default_eval<Expr, action_context const>
- {};
-
- template<typename Expr>
- struct eval<Expr, proto::tag::terminal>
- : eval_terminal<Expr, typename proto::result_of::value<Expr>::type>
- {};
-
- // Evaluate attributes like a1|42
- template<typename Expr>
- struct eval<Expr, attr_with_default_tag>
- {
- typedef
- typename proto::result_of::value<
- typename proto::result_of::left<
- typename proto::result_of::child<
- Expr
- >::type
- >::type
- >::type
- temp_type;
-
- typedef typename temp_type::type result_type;
-
- result_type operator ()(Expr const &expr, action_context const &ctx) const
- {
- return proto::value(proto::left(proto::child(expr))).t_
- ? *proto::value(proto::left(proto::child(expr))).t_
- : proto::eval(proto::right(proto::child(expr)), ctx);
- }
- };
-
- #if BOOST_VERSION >= 103500
- template<typename Expr>
- struct eval<Expr, proto::tag::mem_ptr>
- : mem_ptr_eval<Expr, action_context const>
- {};
- #endif
-
- private:
- action_args_type *action_args_;
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // action
- //
- template<typename Actor>
- struct action
- : actionable
- {
- action(Actor const &actor)
- : actionable()
- , actor_(actor)
- {
- }
-
- virtual void execute(action_args_type *action_args) const
- {
- action_context const ctx(action_args);
- proto::eval(this->actor_, ctx);
- }
-
- private:
- Actor actor_;
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // subreg_transform
- //
- struct subreg_transform : proto::transform<subreg_transform>
- {
- template<typename Expr, typename State, typename Data>
- struct impl : proto::transform_impl<Expr, State, Data>
- {
- typedef typename impl::state state_type;
-
- typedef
- typename proto::terminal<sub_match<typename state_type::iterator> >::type
- result_type;
-
- result_type operator ()(
- typename impl::expr_param
- , typename impl::state_param state
- , typename impl::data_param data
- ) const
- {
- return result_type::make(state.sub_matches_[ data ]);
- }
- };
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // mark_transform
- //
- struct mark_transform : proto::transform<mark_transform>
- {
- template<typename Expr, typename State, typename Data>
- struct impl : proto::transform_impl<Expr, State, Data>
- {
- typedef typename impl::state state_type;
- typedef
- typename proto::terminal<sub_match<typename state_type::iterator> >::type
- result_type;
-
- result_type operator ()(
- typename impl::expr_param expr
- , typename impl::state_param state
- , typename impl::data_param
- ) const
- {
- return result_type::make(state.sub_matches_[ proto::value(expr).mark_number_ ]);
- }
- };
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // opt
- //
- template<typename T>
- struct opt
- {
- typedef T type;
- typedef T const &reference;
-
- opt(T const *t)
- : t_(t)
- {}
-
- operator reference() const
- {
- BOOST_XPR_ENSURE_(0 != this->t_, regex_constants::error_badattr, "Use of uninitialized regex attribute");
- return *this->t_;
- }
-
- T const *t_;
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // attr_transform
- //
- struct attr_transform : proto::transform<attr_transform>
- {
- template<typename Expr, typename State, typename Data>
- struct impl : proto::transform_impl<Expr, State, Data>
- {
- typedef typename impl::expr expr_type;
-
- typedef
- typename expr_type::proto_child0::matcher_type::value_type::second_type
- attr_type;
-
- typedef
- typename proto::terminal<opt<attr_type> >::type
- result_type;
-
- result_type operator ()(
- typename impl::expr_param
- , typename impl::state_param state
- , typename impl::data_param
- ) const
- {
- int slot = typename expr_type::proto_child0::nbr_type();
- attr_type const *attr = static_cast<attr_type const *>(state.attr_context_.attr_slots_[slot-1]);
- return result_type::make(opt<attr_type>(attr));
- }
- };
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // attr_with_default_transform
- //
- template<typename Grammar, typename Callable = proto::callable>
- struct attr_with_default_transform : proto::transform<attr_with_default_transform<Grammar, Callable> >
- {
- template<typename Expr, typename State, typename Data>
- struct impl : proto::transform_impl<Expr, State, Data>
- {
- typedef
- typename proto::unary_expr<
- attr_with_default_tag
- , typename Grammar::template impl<Expr, State, Data>::result_type
- >::type
- result_type;
-
- result_type operator ()(
- typename impl::expr_param expr
- , typename impl::state_param state
- , typename impl::data_param data
- ) const
- {
- result_type that = {
- typename Grammar::template impl<Expr, State, Data>()(expr, state, data)
- };
- return that;
- }
- };
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // by_ref_transform
- //
- struct by_ref_transform : proto::transform<by_ref_transform>
- {
- template<typename Expr, typename State, typename Data>
- struct impl : proto::transform_impl<Expr, State, Data>
- {
- typedef
- typename proto::result_of::value<typename impl::expr_param>::type
- reference;
-
- typedef
- typename proto::terminal<reference>::type
- result_type;
-
- result_type operator ()(
- typename impl::expr_param expr
- , typename impl::state_param
- , typename impl::data_param
- ) const
- {
- return result_type::make(proto::value(expr));
- }
- };
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // BindActionArgs
- //
- struct BindActionArgs
- : proto::or_<
- proto::when<proto::terminal<any_matcher>, subreg_transform>
- , proto::when<proto::terminal<mark_placeholder>, mark_transform>
- , proto::when<proto::terminal<read_attr<proto::_, proto::_> >, attr_transform>
- , proto::when<proto::terminal<proto::_>, by_ref_transform>
- , proto::when<
- proto::bitwise_or<proto::terminal<read_attr<proto::_, proto::_> >, BindActionArgs>
- , attr_with_default_transform<proto::bitwise_or<attr_transform, BindActionArgs> >
- >
- , proto::otherwise<proto::nary_expr<proto::_, proto::vararg<BindActionArgs> > >
- >
- {};
-
- ///////////////////////////////////////////////////////////////////////////////
- // action_matcher
- //
- template<typename Actor>
- struct action_matcher
- : quant_style<quant_none, 0, false>
- {
- int sub_;
- Actor actor_;
-
- action_matcher(Actor const &actor, int sub)
- : sub_(sub)
- , actor_(actor)
- {
- }
-
- template<typename BidiIter, typename Next>
- bool match(match_state<BidiIter> &state, Next const &next) const
- {
- // Bind the arguments
- typedef
- typename boost::result_of<BindActionArgs(
- Actor const &
- , match_state<BidiIter> &
- , int const &
- )>::type
- action_type;
-
- action<action_type> actor(BindActionArgs()(this->actor_, state, this->sub_));
-
- // Put the action in the action list
- actionable const **action_list_tail = state.action_list_tail_;
- *state.action_list_tail_ = &actor;
- state.action_list_tail_ = &actor.next;
-
- // Match the rest of the pattern
- if(next.match(state))
- {
- return true;
- }
-
- BOOST_ASSERT(0 == actor.next);
- // remove action from list
- *action_list_tail = 0;
- state.action_list_tail_ = action_list_tail;
- return false;
- }
- };
-
-}}}
-
-#if BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp b/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp
deleted file mode 100644
index c4c4a3dcc7..0000000000
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// attr_begin_matcher.hpp
-//
-// Copyright 2008 Eric Niebler. 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_XPRESSIVE_DETAIL_CORE_MATCHER_ATTR_BEGIN_MATCHER_HPP_EAN_06_09_2007
-#define BOOST_XPRESSIVE_DETAIL_CORE_MATCHER_ATTR_BEGIN_MATCHER_HPP_EAN_06_09_2007
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <boost/xpressive/detail/detail_fwd.hpp>
-#include <boost/xpressive/detail/core/quant_style.hpp>
-#include <boost/xpressive/detail/core/state.hpp>
-
-namespace boost { namespace xpressive { namespace detail
-{
-
- ///////////////////////////////////////////////////////////////////////////////
- // attr_begin_matcher
- //
- template<typename Nbr>
- struct attr_begin_matcher
- : quant_style<quant_none, 0, false>
- {
- template<typename BidiIter, typename Next>
- static bool match(match_state<BidiIter> &state, Next const &next)
- {
- void const *attr_slots[Nbr::value] = {};
- attr_context old_attr_context = state.attr_context_;
- state.attr_context_.attr_slots_ = attr_slots;
- state.attr_context_.prev_attr_context_ = &old_attr_context;
-
- if(next.match(state))
- {
- return true;
- }
-
- state.attr_context_ = old_attr_context;
- return false;
- }
- };
-
-}}}
-
-#endif
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/predicate_matcher.hpp b/contrib/restricted/boost/boost/xpressive/detail/core/matcher/predicate_matcher.hpp
deleted file mode 100644
index ad5e0c898b..0000000000
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/predicate_matcher.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// predicate_matcher.hpp
-//
-// Copyright 2008 Eric Niebler. 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_XPRESSIVE_DETAIL_CORE_MATCHER_PREDICATE_MATCHER_HPP_EAN_03_22_2007
-#define BOOST_XPRESSIVE_DETAIL_CORE_MATCHER_PREDICATE_MATCHER_HPP_EAN_03_22_2007
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/xpressive/detail/detail_fwd.hpp>
-#include <boost/xpressive/detail/core/quant_style.hpp>
-#include <boost/xpressive/detail/core/matcher/action_matcher.hpp>
-#include <boost/xpressive/detail/core/state.hpp>
-#include <boost/proto/core.hpp>
-
-namespace boost { namespace xpressive { namespace detail
-{
- ///////////////////////////////////////////////////////////////////////////////
- // predicate_context
- //
- template<typename BidiIter>
- struct predicate_context
- {
- explicit predicate_context(int sub, sub_match_impl<BidiIter> const *sub_matches, action_args_type *action_args)
- : sub_(sub)
- , sub_matches_(sub_matches)
- , action_args_(action_args)
- {}
-
- action_args_type const &args() const
- {
- return *this->action_args_;
- }
-
- // eval_terminal
- template<typename Expr, typename Arg>
- struct eval_terminal
- : proto::default_eval<Expr, predicate_context const>
- {};
-
- template<typename Expr, typename Arg>
- struct eval_terminal<Expr, reference_wrapper<Arg> >
- {
- typedef Arg &result_type;
- result_type operator()(Expr &expr, predicate_context const &) const
- {
- return proto::value(expr).get();
- }
- };
-
- template<typename Expr>
- struct eval_terminal<Expr, any_matcher>
- {
- typedef sub_match<BidiIter> const &result_type;
- result_type operator()(Expr &, predicate_context const &ctx) const
- {
- return ctx.sub_matches_[ctx.sub_];
- }
- };
-
- template<typename Expr>
- struct eval_terminal<Expr, mark_placeholder>
- {
- typedef sub_match<BidiIter> const &result_type;
- result_type operator()(Expr &expr, predicate_context const &ctx) const
- {
- return ctx.sub_matches_[proto::value(expr).mark_number_];
- }
- };
-
- template<typename Expr, typename Type, typename Int>
- struct eval_terminal<Expr, action_arg<Type, Int> >
- {
- typedef typename action_arg<Type, Int>::reference result_type;
- result_type operator()(Expr &expr, predicate_context const &ctx) const
- {
- action_args_type::const_iterator where_ = ctx.args().find(&typeid(proto::value(expr)));
- if(where_ == ctx.args().end())
- {
- BOOST_THROW_EXCEPTION(
- regex_error(
- regex_constants::error_badarg
- , "An argument to an action was unspecified"
- )
- );
- }
- return proto::value(expr).cast(where_->second);
- }
- };
-
- // eval
- template<typename Expr, typename Tag = typename Expr::proto_tag>
- struct eval
- : proto::default_eval<Expr, predicate_context const>
- {};
-
- template<typename Expr>
- struct eval<Expr, proto::tag::terminal>
- : eval_terminal<Expr, typename proto::result_of::value<Expr>::type>
- {};
-
- #if BOOST_VERSION >= 103500
- template<typename Expr>
- struct eval<Expr, proto::tag::mem_ptr>
- : mem_ptr_eval<Expr, predicate_context const>
- {};
- #endif
-
- int sub_;
- sub_match_impl<BidiIter> const *sub_matches_;
- action_args_type *action_args_;
- };
-
- ///////////////////////////////////////////////////////////////////////////////
- // AssertionFunctor
- //
- struct AssertionFunctor
- : proto::function<
- proto::terminal<check_tag>
- , proto::terminal<proto::_>
- >
- {};
-
- ///////////////////////////////////////////////////////////////////////////////
- // predicate_matcher
- //
- template<typename Predicate>
- struct predicate_matcher
- : quant_style_assertion
- {
- int sub_;
- Predicate predicate_;
-
- predicate_matcher(Predicate const &pred, int sub)
- : sub_(sub)
- , predicate_(pred)
- {
- }
-
- template<typename BidiIter, typename Next>
- bool match(match_state<BidiIter> &state, Next const &next) const
- {
- // Predicate is check(assertion), where assertion can be
- // a lambda or a function object.
- return this->match_(state, next, proto::matches<Predicate, AssertionFunctor>());
- }
-
- private:
- template<typename BidiIter, typename Next>
- bool match_(match_state<BidiIter> &state, Next const &next, mpl::true_) const
- {
- sub_match<BidiIter> const &sub = state.sub_match(this->sub_);
- return proto::value(proto::child_c<1>(this->predicate_))(sub) && next.match(state);
- }
-
- template<typename BidiIter, typename Next>
- bool match_(match_state<BidiIter> &state, Next const &next, mpl::false_) const
- {
- predicate_context<BidiIter> ctx(this->sub_, state.sub_matches_, state.action_args_);
- return proto::eval(proto::child_c<1>(this->predicate_), ctx) && next.match(state);
- }
- };
-
-}}}
-
-#endif // BOOST_XPRESSIVE_DETAIL_CORE_MATCHER_PREDICATE_MATCHER_HPP_EAN_03_22_2007
diff --git a/contrib/restricted/boost/boost/xpressive/regex_actions.hpp b/contrib/restricted/boost/boost/xpressive/regex_actions.hpp
deleted file mode 100644
index 5226e74bc4..0000000000
--- a/contrib/restricted/boost/boost/xpressive/regex_actions.hpp
+++ /dev/null
@@ -1,1574 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-/// \file regex_actions.hpp
-/// Defines the syntax elements of xpressive's action expressions.
-//
-// Copyright 2008 Eric Niebler. 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_XPRESSIVE_ACTIONS_HPP_EAN_03_22_2007
-#define BOOST_XPRESSIVE_ACTIONS_HPP_EAN_03_22_2007
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/punctuation/comma_if.hpp>
-#include <boost/ref.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/lexical_cast.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/decay.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/xpressive/detail/detail_fwd.hpp>
-#include <boost/xpressive/detail/core/state.hpp>
-#include <boost/xpressive/detail/core/matcher/attr_matcher.hpp>
-#include <boost/xpressive/detail/core/matcher/attr_end_matcher.hpp>
-#include <boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp>
-#include <boost/xpressive/detail/core/matcher/predicate_matcher.hpp>
-#include <boost/xpressive/detail/utility/ignore_unused.hpp>
-#include <boost/xpressive/detail/static/type_traits.hpp>
-
-// These are very often needed by client code.
-#include <boost/typeof/std/map.hpp>
-#include <boost/typeof/std/string.hpp>
-
-// Doxygen can't handle proto :-(
-#ifndef BOOST_XPRESSIVE_DOXYGEN_INVOKED
-# include <boost/proto/core.hpp>
-# include <boost/proto/transform.hpp>
-# include <boost/xpressive/detail/core/matcher/action_matcher.hpp>
-#endif
-
-#if BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable : 4510) // default constructor could not be generated
-#pragma warning(disable : 4512) // assignment operator could not be generated
-#pragma warning(disable : 4610) // can never be instantiated - user defined constructor required
-#endif
-
-namespace boost { namespace xpressive
-{
-
- namespace detail
- {
- template<typename T, typename U>
- struct action_arg
- {
- typedef T type;
- typedef typename add_reference<T>::type reference;
-
- reference cast(void *pv) const
- {
- return *static_cast<typename remove_reference<T>::type *>(pv);
- }
- };
-
- template<typename T>
- struct value_wrapper
- : private noncopyable
- {
- value_wrapper()
- : value()
- {}
-
- value_wrapper(T const &t)
- : value(t)
- {}
-
- T value;
- };
-
- struct check_tag
- {};
-
- struct BindArg
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename MatchResults, typename Expr>
- struct result<This(MatchResults, Expr)>
- {
- typedef Expr type;
- };
-
- template<typename MatchResults, typename Expr>
- Expr const & operator ()(MatchResults &what, Expr const &expr) const
- {
- what.let(expr);
- return expr;
- }
- };
-
- struct let_tag
- {};
-
- // let(_a = b, _c = d)
- struct BindArgs
- : proto::function<
- proto::terminal<let_tag>
- , proto::vararg<
- proto::when<
- proto::assign<proto::_, proto::_>
- , proto::call<BindArg(proto::_data, proto::_)>
- >
- >
- >
- {};
-
- struct let_domain
- : boost::proto::domain<boost::proto::pod_generator<let_> >
- {};
-
- template<typename Expr>
- struct let_
- {
- BOOST_PROTO_BASIC_EXTENDS(Expr, let_<Expr>, let_domain)
- BOOST_PROTO_EXTENDS_FUNCTION()
- };
-
- template<typename Args, typename BidiIter>
- void bind_args(let_<Args> const &args, match_results<BidiIter> &what)
- {
- BindArgs()(args, 0, what);
- }
-
- typedef boost::proto::functional::make_expr<proto::tag::function, proto::default_domain> make_function;
- }
-
- namespace op
- {
- /// \brief \c at is a PolymorphicFunctionObject for indexing into a sequence
- struct at
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Cont, typename Idx>
- struct result<This(Cont &, Idx)>
- {
- typedef typename Cont::reference type;
- };
-
- template<typename This, typename Cont, typename Idx>
- struct result<This(Cont const &, Idx)>
- {
- typedef typename Cont::const_reference type;
- };
-
- template<typename This, typename Cont, typename Idx>
- struct result<This(Cont, Idx)>
- {
- typedef typename Cont::const_reference type;
- };
-
- /// \pre \c Cont is a model of RandomAccessSequence
- /// \param c The RandomAccessSequence to index into
- /// \param idx The index
- /// \return <tt>c[idx]</tt>
- template<typename Cont, typename Idx>
- typename Cont::reference operator()(Cont &c, Idx idx BOOST_PROTO_DISABLE_IF_IS_CONST(Cont)) const
- {
- return c[idx];
- }
-
- /// \overload
- ///
- template<typename Cont, typename Idx>
- typename Cont::const_reference operator()(Cont const &c, Idx idx) const
- {
- return c[idx];
- }
- };
-
- /// \brief \c push is a PolymorphicFunctionObject for pushing an element into a container.
- struct push
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \param seq The sequence into which the value should be pushed.
- /// \param val The value to push into the sequence.
- /// \brief Equivalent to <tt>seq.push(val)</tt>.
- /// \return \c void
- template<typename Sequence, typename Value>
- void operator()(Sequence &seq, Value const &val) const
- {
- seq.push(val);
- }
- };
-
- /// \brief \c push_back is a PolymorphicFunctionObject for pushing an element into the back of a container.
- struct push_back
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \param seq The sequence into which the value should be pushed.
- /// \param val The value to push into the sequence.
- /// \brief Equivalent to <tt>seq.push_back(val)</tt>.
- /// \return \c void
- template<typename Sequence, typename Value>
- void operator()(Sequence &seq, Value const &val) const
- {
- seq.push_back(val);
- }
- };
-
- /// \brief \c push_front is a PolymorphicFunctionObject for pushing an element into the front of a container.
- struct push_front
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \param seq The sequence into which the value should be pushed.
- /// \param val The value to push into the sequence.
- /// \brief Equivalent to <tt>seq.push_front(val)</tt>.
- /// \return \c void
- template<typename Sequence, typename Value>
- void operator()(Sequence &seq, Value const &val) const
- {
- seq.push_front(val);
- }
- };
-
- /// \brief \c pop is a PolymorphicFunctionObject for popping an element from a container.
- struct pop
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \param seq The sequence from which to pop.
- /// \brief Equivalent to <tt>seq.pop()</tt>.
- /// \return \c void
- template<typename Sequence>
- void operator()(Sequence &seq) const
- {
- seq.pop();
- }
- };
-
- /// \brief \c pop_back is a PolymorphicFunctionObject for popping an element from the back of a container.
- struct pop_back
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \param seq The sequence from which to pop.
- /// \brief Equivalent to <tt>seq.pop_back()</tt>.
- /// \return \c void
- template<typename Sequence>
- void operator()(Sequence &seq) const
- {
- seq.pop_back();
- }
- };
-
- /// \brief \c pop_front is a PolymorphicFunctionObject for popping an element from the front of a container.
- struct pop_front
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \param seq The sequence from which to pop.
- /// \brief Equivalent to <tt>seq.pop_front()</tt>.
- /// \return \c void
- template<typename Sequence>
- void operator()(Sequence &seq) const
- {
- seq.pop_front();
- }
- };
-
- /// \brief \c front is a PolymorphicFunctionObject for fetching the front element of a container.
- struct front
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Sequence>
- struct result<This(Sequence)>
- {
- typedef typename remove_reference<Sequence>::type sequence_type;
- typedef
- typename mpl::if_c<
- is_const<sequence_type>::value
- , typename sequence_type::const_reference
- , typename sequence_type::reference
- >::type
- type;
- };
-
- /// \param seq The sequence from which to fetch the front.
- /// \return <tt>seq.front()</tt>
- template<typename Sequence>
- typename result<front(Sequence &)>::type operator()(Sequence &seq) const
- {
- return seq.front();
- }
- };
-
- /// \brief \c back is a PolymorphicFunctionObject for fetching the back element of a container.
- struct back
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Sequence>
- struct result<This(Sequence)>
- {
- typedef typename remove_reference<Sequence>::type sequence_type;
- typedef
- typename mpl::if_c<
- is_const<sequence_type>::value
- , typename sequence_type::const_reference
- , typename sequence_type::reference
- >::type
- type;
- };
-
- /// \param seq The sequence from which to fetch the back.
- /// \return <tt>seq.back()</tt>
- template<typename Sequence>
- typename result<back(Sequence &)>::type operator()(Sequence &seq) const
- {
- return seq.back();
- }
- };
-
- /// \brief \c top is a PolymorphicFunctionObject for fetching the top element of a stack.
- struct top
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Sequence>
- struct result<This(Sequence)>
- {
- typedef typename remove_reference<Sequence>::type sequence_type;
- typedef
- typename mpl::if_c<
- is_const<sequence_type>::value
- , typename sequence_type::value_type const &
- , typename sequence_type::value_type &
- >::type
- type;
- };
-
- /// \param seq The sequence from which to fetch the top.
- /// \return <tt>seq.top()</tt>
- template<typename Sequence>
- typename result<top(Sequence &)>::type operator()(Sequence &seq) const
- {
- return seq.top();
- }
- };
-
- /// \brief \c first is a PolymorphicFunctionObject for fetching the first element of a pair.
- struct first
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Pair>
- struct result<This(Pair)>
- {
- typedef typename remove_reference<Pair>::type::first_type type;
- };
-
- /// \param p The pair from which to fetch the first element.
- /// \return <tt>p.first</tt>
- template<typename Pair>
- typename Pair::first_type operator()(Pair const &p) const
- {
- return p.first;
- }
- };
-
- /// \brief \c second is a PolymorphicFunctionObject for fetching the second element of a pair.
- struct second
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Pair>
- struct result<This(Pair)>
- {
- typedef typename remove_reference<Pair>::type::second_type type;
- };
-
- /// \param p The pair from which to fetch the second element.
- /// \return <tt>p.second</tt>
- template<typename Pair>
- typename Pair::second_type operator()(Pair const &p) const
- {
- return p.second;
- }
- };
-
- /// \brief \c matched is a PolymorphicFunctionObject for assessing whether a \c sub_match object
- /// matched or not.
- struct matched
- {
- BOOST_PROTO_CALLABLE()
- typedef bool result_type;
-
- /// \param sub The \c sub_match object.
- /// \return <tt>sub.matched</tt>
- template<typename Sub>
- bool operator()(Sub const &sub) const
- {
- return sub.matched;
- }
- };
-
- /// \brief \c length is a PolymorphicFunctionObject for fetching the length of \c sub_match.
- struct length
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Sub>
- struct result<This(Sub)>
- {
- typedef typename remove_reference<Sub>::type::difference_type type;
- };
-
- /// \param sub The \c sub_match object.
- /// \return <tt>sub.length()</tt>
- template<typename Sub>
- typename Sub::difference_type operator()(Sub const &sub) const
- {
- return sub.length();
- }
- };
-
- /// \brief \c str is a PolymorphicFunctionObject for turning a \c sub_match into an
- /// equivalent \c std::string.
- struct str
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Sub>
- struct result<This(Sub)>
- {
- typedef typename remove_reference<Sub>::type::string_type type;
- };
-
- /// \param sub The \c sub_match object.
- /// \return <tt>sub.str()</tt>
- template<typename Sub>
- typename Sub::string_type operator()(Sub const &sub) const
- {
- return sub.str();
- }
- };
-
- // This codifies the return types of the various insert member
- // functions found in sequence containers, the 2 flavors of
- // associative containers, and strings.
- //
- /// \brief \c insert is a PolymorphicFunctionObject for inserting a value or a
- /// sequence of values into a sequence container, an associative
- /// container, or a string.
- struct insert
- {
- BOOST_PROTO_CALLABLE()
-
- /// INTERNAL ONLY
- ///
- struct detail
- {
- template<typename Sig, typename EnableIf = void>
- struct result_detail
- {};
-
- // assoc containers
- template<typename This, typename Cont, typename Value>
- struct result_detail<This(Cont, Value), void>
- {
- typedef typename remove_reference<Cont>::type cont_type;
- typedef typename remove_reference<Value>::type value_type;
- static cont_type &scont_;
- static value_type &svalue_;
- typedef char yes_type;
- typedef char (&no_type)[2];
- static yes_type check_insert_return(typename cont_type::iterator);
- static no_type check_insert_return(std::pair<typename cont_type::iterator, bool>);
- BOOST_STATIC_CONSTANT(bool, is_iterator = (sizeof(yes_type) == sizeof(check_insert_return(scont_.insert(svalue_)))));
- typedef
- typename mpl::if_c<
- is_iterator
- , typename cont_type::iterator
- , std::pair<typename cont_type::iterator, bool>
- >::type
- type;
- };
-
- // sequence containers, assoc containers, strings
- template<typename This, typename Cont, typename It, typename Value>
- struct result_detail<This(Cont, It, Value),
- typename disable_if<
- mpl::or_<
- is_integral<typename remove_cv<typename remove_reference<It>::type>::type>
- , is_same<
- typename remove_cv<typename remove_reference<It>::type>::type
- , typename remove_cv<typename remove_reference<Value>::type>::type
- >
- >
- >::type
- >
- {
- typedef typename remove_reference<Cont>::type::iterator type;
- };
-
- // strings
- template<typename This, typename Cont, typename Size, typename T>
- struct result_detail<This(Cont, Size, T),
- typename enable_if<
- is_integral<typename remove_cv<typename remove_reference<Size>::type>::type>
- >::type
- >
- {
- typedef typename remove_reference<Cont>::type &type;
- };
-
- // assoc containers
- template<typename This, typename Cont, typename It>
- struct result_detail<This(Cont, It, It), void>
- {
- typedef void type;
- };
-
- // sequence containers, strings
- template<typename This, typename Cont, typename It, typename Size, typename Value>
- struct result_detail<This(Cont, It, Size, Value),
- typename disable_if<
- is_integral<typename remove_cv<typename remove_reference<It>::type>::type>
- >::type
- >
- {
- typedef void type;
- };
-
- // strings
- template<typename This, typename Cont, typename Size, typename A0, typename A1>
- struct result_detail<This(Cont, Size, A0, A1),
- typename enable_if<
- is_integral<typename remove_cv<typename remove_reference<Size>::type>::type>
- >::type
- >
- {
- typedef typename remove_reference<Cont>::type &type;
- };
-
- // strings
- template<typename This, typename Cont, typename Pos0, typename String, typename Pos1, typename Length>
- struct result_detail<This(Cont, Pos0, String, Pos1, Length)>
- {
- typedef typename remove_reference<Cont>::type &type;
- };
- };
-
- template<typename Sig>
- struct result
- {
- typedef typename detail::result_detail<Sig>::type type;
- };
-
- /// \overload
- ///
- template<typename Cont, typename A0>
- typename result<insert(Cont &, A0 const &)>::type
- operator()(Cont &cont, A0 const &a0) const
- {
- return cont.insert(a0);
- }
-
- /// \overload
- ///
- template<typename Cont, typename A0, typename A1>
- typename result<insert(Cont &, A0 const &, A1 const &)>::type
- operator()(Cont &cont, A0 const &a0, A1 const &a1) const
- {
- return cont.insert(a0, a1);
- }
-
- /// \overload
- ///
- template<typename Cont, typename A0, typename A1, typename A2>
- typename result<insert(Cont &, A0 const &, A1 const &, A2 const &)>::type
- operator()(Cont &cont, A0 const &a0, A1 const &a1, A2 const &a2) const
- {
- return cont.insert(a0, a1, a2);
- }
-
- /// \param cont The container into which to insert the element(s)
- /// \param a0 A value, iterator, or count
- /// \param a1 A value, iterator, string, count, or character
- /// \param a2 A value, iterator, or count
- /// \param a3 A count
- /// \return \li For the form <tt>insert()(cont, a0)</tt>, return <tt>cont.insert(a0)</tt>.
- /// \li For the form <tt>insert()(cont, a0, a1)</tt>, return <tt>cont.insert(a0, a1)</tt>.
- /// \li For the form <tt>insert()(cont, a0, a1, a2)</tt>, return <tt>cont.insert(a0, a1, a2)</tt>.
- /// \li For the form <tt>insert()(cont, a0, a1, a2, a3)</tt>, return <tt>cont.insert(a0, a1, a2, a3)</tt>.
- template<typename Cont, typename A0, typename A1, typename A2, typename A3>
- typename result<insert(Cont &, A0 const &, A1 const &, A2 const &, A3 const &)>::type
- operator()(Cont &cont, A0 const &a0, A1 const &a1, A2 const &a2, A3 const &a3) const
- {
- return cont.insert(a0, a1, a2, a3);
- }
- };
-
- /// \brief \c make_pair is a PolymorphicFunctionObject for building a \c std::pair out of two parameters
- struct make_pair
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename First, typename Second>
- struct result<This(First, Second)>
- {
- /// \brief For exposition only
- typedef typename decay<First>::type first_type;
- /// \brief For exposition only
- typedef typename decay<Second>::type second_type;
- typedef std::pair<first_type, second_type> type;
- };
-
- /// \param first The first element of the pair
- /// \param second The second element of the pair
- /// \return <tt>std::make_pair(first, second)</tt>
- template<typename First, typename Second>
- std::pair<First, Second> operator()(First const &first, Second const &second) const
- {
- return std::make_pair(first, second);
- }
- };
-
- /// \brief \c as\<\> is a PolymorphicFunctionObject for lexically casting a parameter to a different type.
- /// \tparam T The type to which to lexically cast the parameter.
- template<typename T>
- struct as
- {
- BOOST_PROTO_CALLABLE()
- typedef T result_type;
-
- /// \param val The value to lexically cast.
- /// \return <tt>boost::lexical_cast\<T\>(val)</tt>
- template<typename Value>
- T operator()(Value const &val) const
- {
- return boost::lexical_cast<T>(val);
- }
-
- // Hack around some limitations in boost::lexical_cast
- /// INTERNAL ONLY
- T operator()(csub_match const &val) const
- {
- return val.matched
- ? boost::lexical_cast<T>(boost::make_iterator_range(val.first, val.second))
- : boost::lexical_cast<T>("");
- }
-
- #ifndef BOOST_XPRESSIVE_NO_WREGEX
- /// INTERNAL ONLY
- T operator()(wcsub_match const &val) const
- {
- return val.matched
- ? boost::lexical_cast<T>(boost::make_iterator_range(val.first, val.second))
- : boost::lexical_cast<T>("");
- }
- #endif
-
- /// INTERNAL ONLY
- template<typename BidiIter>
- T operator()(sub_match<BidiIter> const &val) const
- {
- // If this assert fires, you're trying to coerce a sequences of non-characters
- // to some other type. Xpressive doesn't know how to do that.
- typedef typename iterator_value<BidiIter>::type char_type;
- BOOST_MPL_ASSERT_MSG(
- (xpressive::detail::is_char<char_type>::value)
- , CAN_ONLY_CONVERT_FROM_CHARACTER_SEQUENCES
- , (char_type)
- );
- return this->impl(val, xpressive::detail::is_string_iterator<BidiIter>());
- }
-
- private:
- /// INTERNAL ONLY
- template<typename RandIter>
- T impl(sub_match<RandIter> const &val, mpl::true_) const
- {
- return val.matched
- ? boost::lexical_cast<T>(boost::make_iterator_range(&*val.first, &*val.first + (val.second - val.first)))
- : boost::lexical_cast<T>("");
- }
-
- /// INTERNAL ONLY
- template<typename BidiIter>
- T impl(sub_match<BidiIter> const &val, mpl::false_) const
- {
- return boost::lexical_cast<T>(val.str());
- }
- };
-
- /// \brief \c static_cast_\<\> is a PolymorphicFunctionObject for statically casting a parameter to a different type.
- /// \tparam T The type to which to statically cast the parameter.
- template<typename T>
- struct static_cast_
- {
- BOOST_PROTO_CALLABLE()
- typedef T result_type;
-
- /// \param val The value to statically cast.
- /// \return <tt>static_cast\<T\>(val)</tt>
- template<typename Value>
- T operator()(Value const &val) const
- {
- return static_cast<T>(val);
- }
- };
-
- /// \brief \c dynamic_cast_\<\> is a PolymorphicFunctionObject for dynamically casting a parameter to a different type.
- /// \tparam T The type to which to dynamically cast the parameter.
- template<typename T>
- struct dynamic_cast_
- {
- BOOST_PROTO_CALLABLE()
- typedef T result_type;
-
- /// \param val The value to dynamically cast.
- /// \return <tt>dynamic_cast\<T\>(val)</tt>
- template<typename Value>
- T operator()(Value const &val) const
- {
- return dynamic_cast<T>(val);
- }
- };
-
- /// \brief \c const_cast_\<\> is a PolymorphicFunctionObject for const-casting a parameter to a cv qualification.
- /// \tparam T The type to which to const-cast the parameter.
- template<typename T>
- struct const_cast_
- {
- BOOST_PROTO_CALLABLE()
- typedef T result_type;
-
- /// \param val The value to const-cast.
- /// \pre Types \c T and \c Value differ only in cv-qualification.
- /// \return <tt>const_cast\<T\>(val)</tt>
- template<typename Value>
- T operator()(Value const &val) const
- {
- return const_cast<T>(val);
- }
- };
-
- /// \brief \c construct\<\> is a PolymorphicFunctionObject for constructing a new object.
- /// \tparam T The type of the object to construct.
- template<typename T>
- struct construct
- {
- BOOST_PROTO_CALLABLE()
- typedef T result_type;
-
- /// \overload
- T operator()() const
- {
- return T();
- }
-
- /// \overload
- template<typename A0>
- T operator()(A0 const &a0) const
- {
- return T(a0);
- }
-
- /// \overload
- template<typename A0, typename A1>
- T operator()(A0 const &a0, A1 const &a1) const
- {
- return T(a0, a1);
- }
-
- /// \param a0 The first argument to the constructor
- /// \param a1 The second argument to the constructor
- /// \param a2 The third argument to the constructor
- /// \return <tt>T(a0,a1,...)</tt>
- template<typename A0, typename A1, typename A2>
- T operator()(A0 const &a0, A1 const &a1, A2 const &a2) const
- {
- return T(a0, a1, a2);
- }
- };
-
- /// \brief \c throw_\<\> is a PolymorphicFunctionObject for throwing an exception.
- /// \tparam Except The type of the object to throw.
- template<typename Except>
- struct throw_
- {
- BOOST_PROTO_CALLABLE()
- typedef void result_type;
-
- /// \overload
- void operator()() const
- {
- BOOST_THROW_EXCEPTION(Except());
- }
-
- /// \overload
- template<typename A0>
- void operator()(A0 const &a0) const
- {
- BOOST_THROW_EXCEPTION(Except(a0));
- }
-
- /// \overload
- template<typename A0, typename A1>
- void operator()(A0 const &a0, A1 const &a1) const
- {
- BOOST_THROW_EXCEPTION(Except(a0, a1));
- }
-
- /// \param a0 The first argument to the constructor
- /// \param a1 The second argument to the constructor
- /// \param a2 The third argument to the constructor
- /// \throw <tt>Except(a0,a1,...)</tt>
- /// \note This function makes use of the \c BOOST_THROW_EXCEPTION macro
- /// to actually throw the exception. See the documentation for the
- /// Boost.Exception library.
- template<typename A0, typename A1, typename A2>
- void operator()(A0 const &a0, A1 const &a1, A2 const &a2) const
- {
- BOOST_THROW_EXCEPTION(Except(a0, a1, a2));
- }
- };
-
- /// \brief \c unwrap_reference is a PolymorphicFunctionObject for unwrapping a <tt>boost::reference_wrapper\<\></tt>.
- struct unwrap_reference
- {
- BOOST_PROTO_CALLABLE()
- template<typename Sig>
- struct result {};
-
- template<typename This, typename Ref>
- struct result<This(Ref)>
- {
- typedef typename boost::unwrap_reference<Ref>::type &type;
- };
-
- template<typename This, typename Ref>
- struct result<This(Ref &)>
- {
- typedef typename boost::unwrap_reference<Ref>::type &type;
- };
-
- /// \param r The <tt>boost::reference_wrapper\<T\></tt> to unwrap.
- /// \return <tt>static_cast\<T &\>(r)</tt>
- template<typename T>
- T &operator()(boost::reference_wrapper<T> r) const
- {
- return static_cast<T &>(r);
- }
- };
- }
-
- /// \brief A unary metafunction that turns an ordinary function object type into the type of
- /// a deferred function object for use in xpressive semantic actions.
- ///
- /// Use \c xpressive::function\<\> to turn an ordinary polymorphic function object type
- /// into a type that can be used to declare an object for use in xpressive semantic actions.
- ///
- /// For example, the global object \c xpressive::push_back can be used to create deferred actions
- /// that have the effect of pushing a value into a container. It is defined with
- /// \c xpressive::function\<\> as follows:
- ///
- /** \code
- xpressive::function<xpressive::op::push_back>::type const push_back = {};
- \endcode
- */
- ///
- /// where \c op::push_back is an ordinary function object that pushes its second argument into
- /// its first. Thus defined, \c xpressive::push_back can be used in semantic actions as follows:
- ///
- /** \code
- namespace xp = boost::xpressive;
- using xp::_;
- std::list<int> result;
- std::string str("1 23 456 7890");
- xp::sregex rx = (+_d)[ xp::push_back(xp::ref(result), xp::as<int>(_) ]
- >> *(' ' >> (+_d)[ xp::push_back(xp::ref(result), xp::as<int>(_) ) ]);
- \endcode
- */
- template<typename PolymorphicFunctionObject>
- struct function
- {
- typedef typename proto::terminal<PolymorphicFunctionObject>::type type;
- };
-
- /// \brief \c at is a lazy PolymorphicFunctionObject for indexing into a sequence in an
- /// xpressive semantic action.
- function<op::at>::type const at = {{}};
-
- /// \brief \c push is a lazy PolymorphicFunctionObject for pushing a value into a container in an
- /// xpressive semantic action.
- function<op::push>::type const push = {{}};
-
- /// \brief \c push_back is a lazy PolymorphicFunctionObject for pushing a value into a container in an
- /// xpressive semantic action.
- function<op::push_back>::type const push_back = {{}};
-
- /// \brief \c push_front is a lazy PolymorphicFunctionObject for pushing a value into a container in an
- /// xpressive semantic action.
- function<op::push_front>::type const push_front = {{}};
-
- /// \brief \c pop is a lazy PolymorphicFunctionObject for popping the top element from a sequence in an
- /// xpressive semantic action.
- function<op::pop>::type const pop = {{}};
-
- /// \brief \c pop_back is a lazy PolymorphicFunctionObject for popping the back element from a sequence in an
- /// xpressive semantic action.
- function<op::pop_back>::type const pop_back = {{}};
-
- /// \brief \c pop_front is a lazy PolymorphicFunctionObject for popping the front element from a sequence in an
- /// xpressive semantic action.
- function<op::pop_front>::type const pop_front = {{}};
-
- /// \brief \c top is a lazy PolymorphicFunctionObject for accessing the top element from a stack in an
- /// xpressive semantic action.
- function<op::top>::type const top = {{}};
-
- /// \brief \c back is a lazy PolymorphicFunctionObject for fetching the back element of a sequence in an
- /// xpressive semantic action.
- function<op::back>::type const back = {{}};
-
- /// \brief \c front is a lazy PolymorphicFunctionObject for fetching the front element of a sequence in an
- /// xpressive semantic action.
- function<op::front>::type const front = {{}};
-
- /// \brief \c first is a lazy PolymorphicFunctionObject for accessing the first element of a \c std::pair\<\> in an
- /// xpressive semantic action.
- function<op::first>::type const first = {{}};
-
- /// \brief \c second is a lazy PolymorphicFunctionObject for accessing the second element of a \c std::pair\<\> in an
- /// xpressive semantic action.
- function<op::second>::type const second = {{}};
-
- /// \brief \c matched is a lazy PolymorphicFunctionObject for accessing the \c matched member of a \c xpressive::sub_match\<\> in an
- /// xpressive semantic action.
- function<op::matched>::type const matched = {{}};
-
- /// \brief \c length is a lazy PolymorphicFunctionObject for computing the length of a \c xpressive::sub_match\<\> in an
- /// xpressive semantic action.
- function<op::length>::type const length = {{}};
-
- /// \brief \c str is a lazy PolymorphicFunctionObject for converting a \c xpressive::sub_match\<\> to a \c std::basic_string\<\> in an
- /// xpressive semantic action.
- function<op::str>::type const str = {{}};
-
- /// \brief \c insert is a lazy PolymorphicFunctionObject for inserting a value or a range of values into a sequence in an
- /// xpressive semantic action.
- function<op::insert>::type const insert = {{}};
-
- /// \brief \c make_pair is a lazy PolymorphicFunctionObject for making a \c std::pair\<\> in an
- /// xpressive semantic action.
- function<op::make_pair>::type const make_pair = {{}};
-
- /// \brief \c unwrap_reference is a lazy PolymorphicFunctionObject for unwrapping a \c boost::reference_wrapper\<\> in an
- /// xpressive semantic action.
- function<op::unwrap_reference>::type const unwrap_reference = {{}};
-
- /// \brief \c value\<\> is a lazy wrapper for a value that can be used in xpressive semantic actions.
- /// \tparam T The type of the value to store.
- ///
- /// Below is an example that shows where \c <tt>value\<\></tt> is useful.
- ///
- /** \code
- sregex good_voodoo(boost::shared_ptr<int> pi)
- {
- using namespace boost::xpressive;
- // Use val() to hold the shared_ptr by value:
- sregex rex = +( _d [ ++*val(pi) ] >> '!' );
- // OK, rex holds a reference count to the integer.
- return rex;
- }
- \endcode
- */
- ///
- /// In the above code, \c xpressive::val() is a function that returns a \c value\<\> object. Had
- /// \c val() not been used here, the operation <tt>++*pi</tt> would have been evaluated eagerly
- /// once, instead of lazily when the regex match happens.
- template<typename T>
- struct value
- : proto::extends<typename proto::terminal<T>::type, value<T> >
- {
- /// INTERNAL ONLY
- typedef proto::extends<typename proto::terminal<T>::type, value<T> > base_type;
-
- /// \brief Store a default-constructed \c T
- value()
- : base_type()
- {}
-
- /// \param t The initial value.
- /// \brief Store a copy of \c t.
- explicit value(T const &t)
- : base_type(base_type::proto_base_expr::make(t))
- {}
-
- using base_type::operator=;
-
- /// \overload
- T &get()
- {
- return proto::value(*this);
- }
-
- /// \brief Fetch the stored value
- T const &get() const
- {
- return proto::value(*this);
- }
- };
-
- /// \brief \c reference\<\> is a lazy wrapper for a reference that can be used in
- /// xpressive semantic actions.
- ///
- /// \tparam T The type of the referent.
- ///
- /// Here is an example of how to use \c reference\<\> to create a lazy reference to
- /// an existing object so it can be read and written in an xpressive semantic action.
- ///
- /** \code
- using namespace boost::xpressive;
- std::map<std::string, int> result;
- reference<std::map<std::string, int> > result_ref(result);
-
- // Match a word and an integer, separated by =>,
- // and then stuff the result into a std::map<>
- sregex pair = ( (s1= +_w) >> "=>" >> (s2= +_d) )
- [ result_ref[s1] = as<int>(s2) ];
- \endcode
- */
- template<typename T>
- struct reference
- : proto::extends<typename proto::terminal<reference_wrapper<T> >::type, reference<T> >
- {
- /// INTERNAL ONLY
- typedef proto::extends<typename proto::terminal<reference_wrapper<T> >::type, reference<T> > base_type;
-
- /// \param t Reference to object
- /// \brief Store a reference to \c t
- explicit reference(T &t)
- : base_type(base_type::proto_base_expr::make(boost::ref(t)))
- {}
-
- using base_type::operator=;
-
- /// \brief Fetch the stored value
- T &get() const
- {
- return proto::value(*this).get();
- }
- };
-
- /// \brief \c local\<\> is a lazy wrapper for a reference to a value that is stored within the local itself.
- /// It is for use within xpressive semantic actions.
- ///
- /// \tparam T The type of the local variable.
- ///
- /// Below is an example of how to use \c local\<\> in semantic actions.
- ///
- /** \code
- using namespace boost::xpressive;
- local<int> i(0);
- std::string str("1!2!3?");
- // count the exciting digits, but not the
- // questionable ones.
- sregex rex = +( _d [ ++i ] >> '!' );
- regex_search(str, rex);
- assert( i.get() == 2 );
- \endcode
- */
- ///
- /// \note As the name "local" suggests, \c local\<\> objects and the regexes
- /// that refer to them should never leave the local scope. The value stored
- /// within the local object will be destroyed at the end of the \c local\<\>'s
- /// lifetime, and any regex objects still holding the \c local\<\> will be
- /// left with a dangling reference.
- template<typename T>
- struct local
- : detail::value_wrapper<T>
- , proto::terminal<reference_wrapper<T> >::type
- {
- /// INTERNAL ONLY
- typedef typename proto::terminal<reference_wrapper<T> >::type base_type;
-
- /// \brief Store a default-constructed value of type \c T
- local()
- : detail::value_wrapper<T>()
- , base_type(base_type::make(boost::ref(detail::value_wrapper<T>::value)))
- {}
-
- /// \param t The initial value.
- /// \brief Store a default-constructed value of type \c T
- explicit local(T const &t)
- : detail::value_wrapper<T>(t)
- , base_type(base_type::make(boost::ref(detail::value_wrapper<T>::value)))
- {}
-
- using base_type::operator=;
-
- /// Fetch the wrapped value.
- T &get()
- {
- return proto::value(*this);
- }
-
- /// \overload
- T const &get() const
- {
- return proto::value(*this);
- }
- };
-
- /// \brief \c as() is a lazy funtion for lexically casting a parameter to a different type.
- /// \tparam T The type to which to lexically cast the parameter.
- /// \param a The lazy value to lexically cast.
- /// \return A lazy object that, when evaluated, lexically casts its argument to the desired type.
- template<typename T, typename A>
- typename detail::make_function::impl<op::as<T> const, A const &>::result_type const
- as(A const &a)
- {
- return detail::make_function::impl<op::as<T> const, A const &>()((op::as<T>()), a);
- }
-
- /// \brief \c static_cast_ is a lazy funtion for statically casting a parameter to a different type.
- /// \tparam T The type to which to statically cast the parameter.
- /// \param a The lazy value to statically cast.
- /// \return A lazy object that, when evaluated, statically casts its argument to the desired type.
- template<typename T, typename A>
- typename detail::make_function::impl<op::static_cast_<T> const, A const &>::result_type const
- static_cast_(A const &a)
- {
- return detail::make_function::impl<op::static_cast_<T> const, A const &>()((op::static_cast_<T>()), a);
- }
-
- /// \brief \c dynamic_cast_ is a lazy funtion for dynamically casting a parameter to a different type.
- /// \tparam T The type to which to dynamically cast the parameter.
- /// \param a The lazy value to dynamically cast.
- /// \return A lazy object that, when evaluated, dynamically casts its argument to the desired type.
- template<typename T, typename A>
- typename detail::make_function::impl<op::dynamic_cast_<T> const, A const &>::result_type const
- dynamic_cast_(A const &a)
- {
- return detail::make_function::impl<op::dynamic_cast_<T> const, A const &>()((op::dynamic_cast_<T>()), a);
- }
-
- /// \brief \c dynamic_cast_ is a lazy funtion for const-casting a parameter to a different type.
- /// \tparam T The type to which to const-cast the parameter.
- /// \param a The lazy value to const-cast.
- /// \return A lazy object that, when evaluated, const-casts its argument to the desired type.
- template<typename T, typename A>
- typename detail::make_function::impl<op::const_cast_<T> const, A const &>::result_type const
- const_cast_(A const &a)
- {
- return detail::make_function::impl<op::const_cast_<T> const, A const &>()((op::const_cast_<T>()), a);
- }
-
- /// \brief Helper for constructing \c value\<\> objects.
- /// \return <tt>value\<T\>(t)</tt>
- template<typename T>
- value<T> const val(T const &t)
- {
- return value<T>(t);
- }
-
- /// \brief Helper for constructing \c reference\<\> objects.
- /// \return <tt>reference\<T\>(t)</tt>
- template<typename T>
- reference<T> const ref(T &t)
- {
- return reference<T>(t);
- }
-
- /// \brief Helper for constructing \c reference\<\> objects that
- /// store a reference to const.
- /// \return <tt>reference\<T const\>(t)</tt>
- template<typename T>
- reference<T const> const cref(T const &t)
- {
- return reference<T const>(t);
- }
-
- /// \brief For adding user-defined assertions to your regular expressions.
- ///
- /// \param t The UnaryPredicate object or Boolean semantic action.
- ///
- /// A \RefSect{user_s_guide.semantic_actions_and_user_defined_assertions.user_defined_assertions,user-defined assertion}
- /// is a kind of semantic action that evaluates
- /// a Boolean lambda and, if it evaluates to false, causes the match to
- /// fail at that location in the string. This will cause backtracking,
- /// so the match may ultimately succeed.
- ///
- /// To use \c check() to specify a user-defined assertion in a regex, use the
- /// following syntax:
- ///
- /** \code
- sregex s = (_d >> _d)[check( XXX )]; // XXX is a custom assertion
- \endcode
- */
- ///
- /// The assertion is evaluated with a \c sub_match\<\> object that delineates
- /// what part of the string matched the sub-expression to which the assertion
- /// was attached.
- ///
- /// \c check() can be used with an ordinary predicate that takes a
- /// \c sub_match\<\> object as follows:
- ///
- /** \code
- // A predicate that is true IFF a sub-match is
- // either 3 or 6 characters long.
- struct three_or_six
- {
- bool operator()(ssub_match const &sub) const
- {
- return sub.length() == 3 || sub.length() == 6;
- }
- };
-
- // match words of 3 characters or 6 characters.
- sregex rx = (bow >> +_w >> eow)[ check(three_or_six()) ] ;
- \endcode
- */
- ///
- /// Alternately, \c check() can be used to define inline custom
- /// assertions with the same syntax as is used to define semantic
- /// actions. The following code is equivalent to above:
- ///
- /** \code
- // match words of 3 characters or 6 characters.
- sregex rx = (bow >> +_w >> eow)[ check(length(_)==3 || length(_)==6) ] ;
- \endcode
- */
- ///
- /// Within a custom assertion, \c _ is a placeholder for the \c sub_match\<\>
- /// That delineates the part of the string matched by the sub-expression to
- /// which the custom assertion was attached.
-#ifdef BOOST_XPRESSIVE_DOXYGEN_INVOKED // A hack so Doxygen emits something more meaningful.
- template<typename T>
- detail::unspecified check(T const &t);
-#else
- proto::terminal<detail::check_tag>::type const check = {{}};
-#endif
-
- /// \brief For binding local variables to placeholders in semantic actions when
- /// constructing a \c regex_iterator or a \c regex_token_iterator.
- ///
- /// \param args A set of argument bindings, where each argument binding is an assignment
- /// expression, the left hand side of which must be an instance of \c placeholder\<X\>
- /// for some \c X, and the right hand side is an lvalue of type \c X.
- ///
- /// \c xpressive::let() serves the same purpose as <tt>match_results::let()</tt>;
- /// that is, it binds a placeholder to a local value. The purpose is to allow a
- /// regex with semantic actions to be defined that refers to objects that do not yet exist.
- /// Rather than referring directly to an object, a semantic action can refer to a placeholder,
- /// and the value of the placeholder can be specified later with a <em>let expression</em>.
- /// The <em>let expression</em> created with \c let() is passed to the constructor of either
- /// \c regex_iterator or \c regex_token_iterator.
- ///
- /// See the section \RefSect{user_s_guide.semantic_actions_and_user_defined_assertions.referring_to_non_local_variables, "Referring to Non-Local Variables"}
- /// in the Users' Guide for more discussion.
- ///
- /// \em Example:
- ///
- /**
- \code
- // Define a placeholder for a map object:
- placeholder<std::map<std::string, int> > _map;
-
- // Match a word and an integer, separated by =>,
- // and then stuff the result into a std::map<>
- sregex pair = ( (s1= +_w) >> "=>" >> (s2= +_d) )
- [ _map[s1] = as<int>(s2) ];
-
- // The string to parse
- std::string str("aaa=>1 bbb=>23 ccc=>456");
-
- // Here is the actual map to fill in:
- std::map<std::string, int> result;
-
- // Create a regex_iterator to find all the matches
- sregex_iterator it(str.begin(), str.end(), pair, let(_map=result));
- sregex_iterator end;
-
- // step through all the matches, and fill in
- // the result map
- while(it != end)
- ++it;
-
- std::cout << result["aaa"] << '\n';
- std::cout << result["bbb"] << '\n';
- std::cout << result["ccc"] << '\n';
- \endcode
- */
- ///
- /// The above code displays:
- ///
- /** \code{.txt}
- 1
- 23
- 456
- \endcode
- */
-#ifdef BOOST_XPRESSIVE_DOXYGEN_INVOKED // A hack so Doxygen emits something more meaningful.
- template<typename...ArgBindings>
- detail::unspecified let(ArgBindings const &...args);
-#else
- detail::let_<proto::terminal<detail::let_tag>::type> const let = {{{}}};
-#endif
-
- /// \brief For defining a placeholder to stand in for a variable a semantic action.
- ///
- /// Use \c placeholder\<\> to define a placeholder for use in semantic actions to stand
- /// in for real objects. The use of placeholders allows regular expressions with actions
- /// to be defined once and reused in many contexts to read and write from objects which
- /// were not available when the regex was defined.
- ///
- /// \tparam T The type of the object for which this placeholder stands in.
- /// \tparam I An optional identifier that can be used to distinguish this placeholder
- /// from others that may be used in the same semantic action that happen
- /// to have the same type.
- ///
- /// You can use \c placeholder\<\> by creating an object of type \c placeholder\<T\>
- /// and using that object in a semantic action exactly as you intend an object of
- /// type \c T to be used.
- ///
- /**
- \code
- placeholder<int> _i;
- placeholder<double> _d;
-
- sregex rex = ( some >> regex >> here )
- [ ++_i, _d *= _d ];
- \endcode
- */
- ///
- /// Then, when doing a pattern match with either \c regex_search(),
- /// \c regex_match() or \c regex_replace(), pass a \c match_results\<\> object that
- /// contains bindings for the placeholders used in the regex object's semantic actions.
- /// You can create the bindings by calling \c match_results::let as follows:
- ///
- /**
- \code
- int i = 0;
- double d = 3.14;
-
- smatch what;
- what.let(_i = i)
- .let(_d = d);
-
- if(regex_match("some string", rex, what))
- // i and d mutated here
- \endcode
- */
- ///
- /// If a semantic action executes that contains an unbound placeholder, a exception of
- /// type \c regex_error is thrown.
- ///
- /// See the discussion for \c xpressive::let() and the
- /// \RefSect{user_s_guide.semantic_actions_and_user_defined_assertions.referring_to_non_local_variables, "Referring to Non-Local Variables"}
- /// section in the Users' Guide for more information.
- ///
- /// <em>Example:</em>
- ///
- /**
- \code
- // Define a placeholder for a map object:
- placeholder<std::map<std::string, int> > _map;
-
- // Match a word and an integer, separated by =>,
- // and then stuff the result into a std::map<>
- sregex pair = ( (s1= +_w) >> "=>" >> (s2= +_d) )
- [ _map[s1] = as<int>(s2) ];
-
- // Match one or more word/integer pairs, separated
- // by whitespace.
- sregex rx = pair >> *(+_s >> pair);
-
- // The string to parse
- std::string str("aaa=>1 bbb=>23 ccc=>456");
-
- // Here is the actual map to fill in:
- std::map<std::string, int> result;
-
- // Bind the _map placeholder to the actual map
- smatch what;
- what.let( _map = result );
-
- // Execute the match and fill in result map
- if(regex_match(str, what, rx))
- {
- std::cout << result["aaa"] << '\n';
- std::cout << result["bbb"] << '\n';
- std::cout << result["ccc"] << '\n';
- }
- \endcode
- */
-#ifdef BOOST_XPRESSIVE_DOXYGEN_INVOKED // A hack so Doxygen emits something more meaningful.
- template<typename T, int I = 0>
- struct placeholder
- {
- /// \param t The object to associate with this placeholder
- /// \return An object of unspecified type that records the association of \c t
- /// with \c *this.
- detail::unspecified operator=(T &t) const;
- /// \overload
- detail::unspecified operator=(T const &t) const;
- };
-#else
- template<typename T, int I, typename Dummy>
- struct placeholder
- {
- typedef placeholder<T, I, Dummy> this_type;
- typedef
- typename proto::terminal<detail::action_arg<T, mpl::int_<I> > >::type
- action_arg_type;
-
- BOOST_PROTO_EXTENDS(action_arg_type, this_type, proto::default_domain)
- };
-#endif
-
- /// \brief A lazy funtion for constructing objects objects of the specified type.
- /// \tparam T The type of object to construct.
- /// \param args The arguments to the constructor.
- /// \return A lazy object that, when evaluated, returns <tt>T(xs...)</tt>, where
- /// <tt>xs...</tt> is the result of evaluating the lazy arguments
- /// <tt>args...</tt>.
-#ifdef BOOST_XPRESSIVE_DOXYGEN_INVOKED // A hack so Doxygen emits something more meaningful.
- template<typename T, typename ...Args>
- detail::unspecified construct(Args const &...args);
-#else
-/// INTERNAL ONLY
-#define BOOST_PROTO_LOCAL_MACRO(N, typename_A, A_const_ref, A_const_ref_a, a) \
- template<typename X2_0 BOOST_PP_COMMA_IF(N) typename_A(N)> \
- typename detail::make_function::impl< \
- op::construct<X2_0> const \
- BOOST_PP_COMMA_IF(N) A_const_ref(N) \
- >::result_type const \
- construct(A_const_ref_a(N)) \
- { \
- return detail::make_function::impl< \
- op::construct<X2_0> const \
- BOOST_PP_COMMA_IF(N) A_const_ref(N) \
- >()((op::construct<X2_0>()) BOOST_PP_COMMA_IF(N) a(N)); \
- } \
- \
- template<typename X2_0 BOOST_PP_COMMA_IF(N) typename_A(N)> \
- typename detail::make_function::impl< \
- op::throw_<X2_0> const \
- BOOST_PP_COMMA_IF(N) A_const_ref(N) \
- >::result_type const \
- throw_(A_const_ref_a(N)) \
- { \
- return detail::make_function::impl< \
- op::throw_<X2_0> const \
- BOOST_PP_COMMA_IF(N) A_const_ref(N) \
- >()((op::throw_<X2_0>()) BOOST_PP_COMMA_IF(N) a(N)); \
- } \
- /**/
-
- #define BOOST_PROTO_LOCAL_a BOOST_PROTO_a ///< INTERNAL ONLY
- #define BOOST_PROTO_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY)) ///< INTERNAL ONLY
- #include BOOST_PROTO_LOCAL_ITERATE()
-#endif
-
- namespace detail
- {
- inline void ignore_unused_regex_actions()
- {
- detail::ignore_unused(xpressive::at);
- detail::ignore_unused(xpressive::push);
- detail::ignore_unused(xpressive::push_back);
- detail::ignore_unused(xpressive::push_front);
- detail::ignore_unused(xpressive::pop);
- detail::ignore_unused(xpressive::pop_back);
- detail::ignore_unused(xpressive::pop_front);
- detail::ignore_unused(xpressive::top);
- detail::ignore_unused(xpressive::back);
- detail::ignore_unused(xpressive::front);
- detail::ignore_unused(xpressive::first);
- detail::ignore_unused(xpressive::second);
- detail::ignore_unused(xpressive::matched);
- detail::ignore_unused(xpressive::length);
- detail::ignore_unused(xpressive::str);
- detail::ignore_unused(xpressive::insert);
- detail::ignore_unused(xpressive::make_pair);
- detail::ignore_unused(xpressive::unwrap_reference);
- detail::ignore_unused(xpressive::check);
- detail::ignore_unused(xpressive::let);
- }
-
- struct mark_nbr
- {
- BOOST_PROTO_CALLABLE()
- typedef int result_type;
-
- int operator()(mark_placeholder m) const
- {
- return m.mark_number_;
- }
- };
-
- struct ReplaceAlgo
- : proto::or_<
- proto::when<
- proto::terminal<mark_placeholder>
- , op::at(proto::_data, proto::call<mark_nbr(proto::_value)>)
- >
- , proto::when<
- proto::terminal<any_matcher>
- , op::at(proto::_data, proto::size_t<0>)
- >
- , proto::when<
- proto::terminal<reference_wrapper<proto::_> >
- , op::unwrap_reference(proto::_value)
- >
- , proto::_default<ReplaceAlgo>
- >
- {};
- }
-}}
-
-#if BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif // BOOST_XPRESSIVE_ACTIONS_HPP_EAN_03_22_2007
diff --git a/contrib/restricted/boost/boost/xpressive/traits/null_regex_traits.hpp b/contrib/restricted/boost/boost/xpressive/traits/null_regex_traits.hpp
deleted file mode 100644
index bb64c5f67e..0000000000
--- a/contrib/restricted/boost/boost/xpressive/traits/null_regex_traits.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-/// \file null_regex_traits.hpp
-/// Contains the definition of the null_regex_traits\<\> template, which is a
-/// stub regex traits implementation that can be used by static and dynamic
-/// regexes for searching non-character data.
-//
-// Copyright 2008 Eric Niebler. 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_XPRESSIVE_TRAITS_NULL_REGEX_TRAITS_HPP_EAN_10_04_2005
-#define BOOST_XPRESSIVE_TRAITS_NULL_REGEX_TRAITS_HPP_EAN_10_04_2005
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <vector>
-#include <boost/assert.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/xpressive/detail/detail_fwd.hpp>
-#include <boost/xpressive/detail/utility/never_true.hpp>
-#include <boost/xpressive/detail/utility/ignore_unused.hpp>
-
-namespace boost { namespace xpressive
-{
-
-namespace detail
-{
- struct not_a_locale {};
-}
-
-struct regex_traits_version_1_tag;
-
-///////////////////////////////////////////////////////////////////////////////
-// null_regex_traits
-//
-/// \brief stub regex_traits for non-char data
-///
-template<typename Elem>
-struct null_regex_traits
-{
- typedef Elem char_type;
- typedef std::vector<char_type> string_type;
- typedef detail::not_a_locale locale_type;
- typedef int char_class_type;
- typedef regex_traits_version_1_tag version_tag;
-
- /// Initialize a null_regex_traits object.
- ///
- null_regex_traits(locale_type = locale_type())
- {
- }
-
- /// Checks two null_regex_traits objects for equality
- ///
- /// \return true.
- bool operator ==(null_regex_traits<char_type> const &that) const
- {
- detail::ignore_unused(that);
- return true;
- }
-
- /// Checks two null_regex_traits objects for inequality
- ///
- /// \return false.
- bool operator !=(null_regex_traits<char_type> const &that) const
- {
- detail::ignore_unused(that);
- return false;
- }
-
- /// Convert a char to a Elem
- ///
- /// \param ch The source character.
- /// \return Elem(ch).
- char_type widen(char ch) const
- {
- return char_type(ch);
- }
-
- /// Returns a hash value for a Elem in the range [0, UCHAR_MAX]
- ///
- /// \param ch The source character.
- /// \return a value between 0 and UCHAR_MAX, inclusive.
- static unsigned char hash(char_type ch)
- {
- return static_cast<unsigned char>(ch);
- }
-
- /// No-op
- ///
- /// \param ch The source character.
- /// \return ch
- static char_type translate(char_type ch)
- {
- return ch;
- }
-
- /// No-op
- ///
- /// \param ch The source character.
- /// \return ch
- static char_type translate_nocase(char_type ch)
- {
- return ch;
- }
-
- /// Checks to see if a character is within a character range.
- ///
- /// \param first The bottom of the range, inclusive.
- /// \param last The top of the range, inclusive.
- /// \param ch The source character.
- /// \return first <= ch && ch <= last.
- static bool in_range(char_type first, char_type last, char_type ch)
- {
- return first <= ch && ch <= last;
- }
-
- /// Checks to see if a character is within a character range.
- ///
- /// \param first The bottom of the range, inclusive.
- /// \param last The top of the range, inclusive.
- /// \param ch The source character.
- /// \return first <= ch && ch <= last.
- /// \attention Since the null_regex_traits does not do case-folding,
- /// this function is equivalent to in_range().
- static bool in_range_nocase(char_type first, char_type last, char_type ch)
- {
- return first <= ch && ch <= last;
- }
-
- /// Returns a sort key for the character sequence designated by the iterator range [F1, F2)
- /// such that if the character sequence [G1, G2) sorts before the character sequence [H1, H2)
- /// then v.transform(G1, G2) < v.transform(H1, H2).
- ///
- /// \attention Not currently used
- template<typename FwdIter>
- static string_type transform(FwdIter begin, FwdIter end)
- {
- return string_type(begin, end);
- }
-
- /// Returns a sort key for the character sequence designated by the iterator range [F1, F2)
- /// such that if the character sequence [G1, G2) sorts before the character sequence [H1, H2)
- /// when character case is not considered then
- /// v.transform_primary(G1, G2) < v.transform_primary(H1, H2).
- ///
- /// \attention Not currently used
- template<typename FwdIter>
- static string_type transform_primary(FwdIter begin, FwdIter end)
- {
- return string_type(begin, end);
- }
-
- /// Returns a sequence of characters that represents the collating element
- /// consisting of the character sequence designated by the iterator range [F1, F2).
- /// Returns an empty string if the character sequence is not a valid collating element.
- ///
- /// \attention Not currently used
- template<typename FwdIter>
- static string_type lookup_collatename(FwdIter begin, FwdIter end)
- {
- detail::ignore_unused(begin);
- detail::ignore_unused(end);
- return string_type();
- }
-
- /// The null_regex_traits does not have character classifications, so lookup_classname()
- /// is unused.
- ///
- /// \param begin not used
- /// \param end not used
- /// \param icase not used
- /// \return static_cast\<char_class_type\>(0)
- template<typename FwdIter>
- static char_class_type lookup_classname(FwdIter begin, FwdIter end, bool icase)
- {
- detail::ignore_unused(begin);
- detail::ignore_unused(end);
- detail::ignore_unused(icase);
- return 0;
- }
-
- /// The null_regex_traits does not have character classifications, so isctype()
- /// is unused.
- ///
- /// \param ch not used
- /// \param mask not used
- /// \return false
- static bool isctype(char_type ch, char_class_type mask)
- {
- detail::ignore_unused(ch);
- detail::ignore_unused(mask);
- return false;
- }
-
- /// The null_regex_traits recognizes no elements as digits, so value() is unused.
- ///
- /// \param ch not used
- /// \param radix not used
- /// \return -1
- static int value(char_type ch, int radix)
- {
- detail::ignore_unused(ch);
- detail::ignore_unused(radix);
- return -1;
- }
-
- /// Not used
- ///
- /// \param loc not used
- /// \return loc
- static locale_type imbue(locale_type loc)
- {
- return loc;
- }
-
- /// Returns locale_type().
- ///
- /// \return locale_type()
- static locale_type getloc()
- {
- return locale_type();
- }
-};
-
-}}
-
-#endif
diff --git a/contrib/restricted/boost/boost/xpressive/xpressive.hpp b/contrib/restricted/boost/boost/xpressive/xpressive.hpp
deleted file mode 100644
index 3a7bbfe479..0000000000
--- a/contrib/restricted/boost/boost/xpressive/xpressive.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-/// \file xpressive.hpp
-/// Includes all of xpressive including support for both static and
-/// dynamic regular expressions.
-//
-// Copyright 2008 Eric Niebler. 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_XPRESSIVE_HPP_EAN_10_04_2005
-#define BOOST_XPRESSIVE_HPP_EAN_10_04_2005
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <boost/xpressive/xpressive_static.hpp>
-#include <boost/xpressive/xpressive_dynamic.hpp>
-
-#endif
diff --git a/contrib/restricted/boost/boost/xpressive/xpressive_typeof.hpp b/contrib/restricted/boost/boost/xpressive/xpressive_typeof.hpp
deleted file mode 100644
index 2af87af26c..0000000000
--- a/contrib/restricted/boost/boost/xpressive/xpressive_typeof.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-/// \file xpressive_typeof.hpp
-/// Type registrations so that xpressive can be used with the Boost.Typeof library.
-//
-// Copyright 2008 Eric Niebler. 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_XPRESSIVE_XPRESSIVE_TYPEOF_H
-#define BOOST_XPRESSIVE_XPRESSIVE_TYPEOF_H
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/typeof/typeof.hpp>
-#ifndef BOOST_NO_STD_LOCALE
-# include <boost/typeof/std/locale.hpp>
-#endif
-#include <boost/proto/proto_typeof.hpp>
-#include <boost/xpressive/detail/detail_fwd.hpp>
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::bool_, (bool))
-
-///////////////////////////////////////////////////////////////////////////////
-// Misc.
-//
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::set_initializer)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::keeper_tag)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::modifier_tag)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::lookahead_tag)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::lookbehind_tag)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::check_tag)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::mark_tag)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::word_begin)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::word_end)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::generic_quant_tag, (unsigned int)(unsigned int))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::basic_regex, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::word_boundary, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::value, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::reference, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::local, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::placeholder, (typename)(int)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::tracking_ptr, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::regex_impl, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::let_, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::action_arg, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::named_mark, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::sub_match, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::nested_results, (typename))
-
-///////////////////////////////////////////////////////////////////////////////
-// Placeholders
-//
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::mark_placeholder)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::posix_charset_placeholder)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::assert_bol_placeholder)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::assert_eol_placeholder)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::logical_newline_placeholder)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::self_placeholder)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::assert_word_placeholder, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::range_placeholder, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::attribute_placeholder, (typename))
-
-///////////////////////////////////////////////////////////////////////////////
-// Matchers
-//
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::epsilon_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::true_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::end_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::independent_end_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::any_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::assert_bos_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::assert_eos_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::mark_begin_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::mark_end_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::repeat_begin_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::alternate_end_matcher)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::attr_end_matcher)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::assert_bol_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::assert_eol_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::literal_matcher, (typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::string_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::charset_matcher, (typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::logical_newline_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::mark_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::repeat_end_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::alternate_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::optional_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::optional_mark_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::simple_repeat_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::regex_byref_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::regex_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::posix_charset_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::assert_word_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::range_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::keeper_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::lookahead_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::lookbehind_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::set_matcher, (typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::predicate_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::action_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::attr_matcher, (typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::attr_begin_matcher, (typename))
-
-///////////////////////////////////////////////////////////////////////////////
-// Ops
-//
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::push)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::push_back)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::pop)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::push_front)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::pop_back)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::pop_front)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::back)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::front)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::top)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::first)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::second)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::matched)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::length)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::str)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::insert)
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::op::make_pair)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::op::as, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::op::static_cast_, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::op::dynamic_cast_, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::op::const_cast_, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::op::construct, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::op::throw_, (typename))
-
-///////////////////////////////////////////////////////////////////////////////
-// Modifiers
-//
-BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::icase_modifier)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::locale_modifier, (typename))
-
-///////////////////////////////////////////////////////////////////////////////
-// Traits
-//
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::null_regex_traits, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::cpp_regex_traits, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::c_regex_traits, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::regex_traits, (typename)(typename))
-
-#endif
diff --git a/contrib/restricted/boost/xpressive/CMakeLists.txt b/contrib/restricted/boost/xpressive/CMakeLists.txt
new file mode 100644
index 0000000000..4419004e2f
--- /dev/null
+++ b/contrib/restricted/boost/xpressive/CMakeLists.txt
@@ -0,0 +1,38 @@
+
+# This file was gererated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-xpressive INTERFACE)
+target_include_directories(restricted-boost-xpressive INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/xpressive/include
+)
+target_link_libraries(restricted-boost-xpressive INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-conversion
+ restricted-boost-core
+ restricted-boost-exception
+ restricted-boost-fusion
+ restricted-boost-integer
+ restricted-boost-iterator
+ restricted-boost-lexical_cast
+ restricted-boost-mpl
+ restricted-boost-numeric_conversion
+ restricted-boost-optional
+ restricted-boost-preprocessor
+ restricted-boost-proto
+ restricted-boost-range
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-type_traits
+ restricted-boost-typeof
+ restricted-boost-utility
+)
diff --git a/contrib/restricted/boost/boost/xpressive/basic_regex.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/basic_regex.hpp
index 50a436c8bf..2679d8e850 100644
--- a/contrib/restricted/boost/boost/xpressive/basic_regex.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/basic_regex.hpp
@@ -158,7 +158,7 @@ public:
/// enclosing regular expression. It is done this way to ensure
/// that swap() cannot throw.
/// \throw nothrow
- void swap(basic_regex<BidiIter> &that) // noexcept
+ void swap(basic_regex<BidiIter> &that) // throw()
{
proto::value(*this).swap(proto::value(that));
}
@@ -285,7 +285,7 @@ template<typename BidiIter> regex_constants::syntax_option_type const basic_rege
/// that swap() cannot throw.
/// \throw nothrow
template<typename BidiIter>
-inline void swap(basic_regex<BidiIter> &left, basic_regex<BidiIter> &right) // noexcept
+inline void swap(basic_regex<BidiIter> &left, basic_regex<BidiIter> &right) // throw()
{
left.swap(right);
}
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/access.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/access.hpp
index d903039663..d903039663 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/access.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/access.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/action.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/action.hpp
index 780fa165f9..780fa165f9 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/action.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/action.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/adaptor.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/adaptor.hpp
index 2ba0786b22..2ba0786b22 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/adaptor.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/adaptor.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/finder.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/finder.hpp
index de50bda5f5..de50bda5f5 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/finder.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/finder.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/flow_control.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/flow_control.hpp
index e6d8fdb3d2..e6d8fdb3d2 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/flow_control.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/flow_control.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/icase.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/icase.hpp
index 2b2bdc8541..2b2bdc8541 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/icase.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/icase.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/linker.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/linker.hpp
index ac8b7afcc6..f5e1fc248b 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/linker.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/linker.hpp
@@ -27,7 +27,7 @@
#if BOOST_VERSION >= 103500
# include <boost/fusion/include/for_each.hpp>
#else
-#error # include <boost/spirit/fusion/algorithm/for_each.hpp>
+# error #include <boost/spirit/fusion/algorithm/for_each.hpp>
#endif
#include <boost/xpressive/detail/detail_fwd.hpp>
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/list.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/list.hpp
index 6c23a3655f..65928cc79b 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/list.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/list.hpp
@@ -104,7 +104,7 @@ namespace boost { namespace xpressive { namespace detail
pop_front();
}
- void swap(list &that) // noexcept
+ void swap(list &that) // throw()
{
list temp;
temp.splice(temp.begin(), that); // move that to temp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp
index 33446396a2..33446396a2 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/alternate_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/alternate_matcher.hpp
index 748caaa838..748caaa838 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/alternate_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/alternate_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/any_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/any_matcher.hpp
index f5a37ca57b..f5a37ca57b 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/any_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/any_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp
index 1ea6e722e8..1ea6e722e8 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp
index 7a8f52f5cd..7a8f52f5cd 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp
index f643ff8744..f643ff8744 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp
index 76f69badeb..76f69badeb 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_line_base.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_line_base.hpp
index 2b6126a619..2b6126a619 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_line_base.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_line_base.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp
index 138e07801e..138e07801e 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp
index aac98da458..aac98da458 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/attr_matcher.hpp
index 06cfdeab62..06cfdeab62 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/attr_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/attr_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/charset_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/charset_matcher.hpp
index 7e0ac2dd16..7e0ac2dd16 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/charset_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/charset_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/end_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/end_matcher.hpp
index c612980039..c612980039 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/end_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/end_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp
index 5d1e129512..5d1e129512 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/keeper_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/keeper_matcher.hpp
index 172f01ece8..172f01ece8 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/keeper_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/keeper_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/literal_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/literal_matcher.hpp
index 1558457ef3..1558457ef3 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/literal_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/literal_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp
index a502f0f8a2..a502f0f8a2 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp
index e1af38a381..e1af38a381 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp
index 5642fe6eb1..5642fe6eb1 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp
index f42072e8b0..f42072e8b0 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp
index 7729997400..7729997400 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_matcher.hpp
index e4c33ca81e..e4c33ca81e 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/mark_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/mark_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/optional_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/optional_matcher.hpp
index 84723d1ce0..84723d1ce0 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/optional_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/optional_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp
index aaef366bf0..aaef366bf0 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/range_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/range_matcher.hpp
index 1ebd5fca14..1ebd5fca14 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/range_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/range_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp
index 6a7d8c3059..6a7d8c3059 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/regex_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/regex_matcher.hpp
index f7fa0c2352..f7fa0c2352 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/regex_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/regex_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp
index b962c4c261..b962c4c261 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp
index 17c0ec2e55..17c0ec2e55 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/set_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/set_matcher.hpp
index d300232e3d..d300232e3d 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/set_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/set_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp
index 97e93bddaf..97e93bddaf 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/string_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/string_matcher.hpp
index c49e7ac924..c49e7ac924 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/string_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/string_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/true_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/true_matcher.hpp
index 77c53a489e..77c53a489e 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matcher/true_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matcher/true_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/matchers.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matchers.hpp
index 2004cfb245..2004cfb245 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/matchers.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/matchers.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/optimize.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/optimize.hpp
index f9d9ebebdc..f9d9ebebdc 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/optimize.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/optimize.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/peeker.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/peeker.hpp
index d7239cc202..d7239cc202 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/peeker.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/peeker.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/quant_style.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/quant_style.hpp
index 1e67aec846..1e67aec846 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/quant_style.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/quant_style.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/regex_domain.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/regex_domain.hpp
index 18f34809be..18f34809be 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/regex_domain.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/regex_domain.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/regex_impl.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/regex_impl.hpp
index ba9a96af66..ba9a96af66 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/regex_impl.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/regex_impl.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/results_cache.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/results_cache.hpp
index 7abfdc83b7..7abfdc83b7 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/results_cache.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/results_cache.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/state.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/state.hpp
index 81d641d0af..81d641d0af 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/state.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/state.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/sub_match_impl.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/sub_match_impl.hpp
index 898a4947ef..898a4947ef 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/sub_match_impl.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/sub_match_impl.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/core/sub_match_vector.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/sub_match_vector.hpp
index 704938cbac..704938cbac 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/core/sub_match_vector.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/core/sub_match_vector.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/detail_fwd.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/detail_fwd.hpp
index 22bd5a02a2..22bd5a02a2 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/detail_fwd.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/detail_fwd.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/dynamic.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/dynamic.hpp
index 62e418ada4..62e418ada4 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/dynamic.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/dynamic.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/matchable.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/matchable.hpp
index 785bb8afa6..785bb8afa6 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/matchable.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/matchable.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parse_charset.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parse_charset.hpp
index bf959b794e..972c09be71 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parse_charset.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parse_charset.hpp
@@ -51,7 +51,7 @@ struct escape_value
//
struct char_overflow_handler
{
- void operator ()(numeric::range_check_result result) const //
+ void operator ()(numeric::range_check_result result) const // throw(regex_error)
{
if(numeric::cInRange != result)
{
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parser.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser.hpp
index 00d4bbf375..00d4bbf375 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parser.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parser_enum.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser_enum.hpp
index 3c738cc925..3c738cc925 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parser_enum.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser_enum.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parser_traits.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser_traits.hpp
index ab2544c4af..ab2544c4af 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/parser_traits.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/parser_traits.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/dynamic/sequence.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/sequence.hpp
index 902f288e69..902f288e69 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/dynamic/sequence.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/dynamic/sequence.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/compile.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/compile.hpp
index 0ce5a5adf3..0ce5a5adf3 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/compile.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/compile.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/grammar.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/grammar.hpp
index 6ffccdd7d4..6ffccdd7d4 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/grammar.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/grammar.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/is_pure.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/is_pure.hpp
index 61737fcba0..61737fcba0 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/is_pure.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/is_pure.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/modifier.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/modifier.hpp
index fc8ad94866..fc8ad94866 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/modifier.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/modifier.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/placeholders.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/placeholders.hpp
index 6523fe7ae5..6523fe7ae5 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/placeholders.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/placeholders.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/static.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/static.hpp
index 292d3ea200..292d3ea200 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/static.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/static.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_action.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_action.hpp
index daaf685820..daaf685820 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_action.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_action.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_alternate.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_alternate.hpp
index 21014c5174..21014c5174 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_alternate.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_alternate.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_independent.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_independent.hpp
index 4740b54f2c..4740b54f2c 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_independent.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_independent.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_inverse.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_inverse.hpp
index b9c212fe03..b9c212fe03 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_inverse.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_inverse.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_marker.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_marker.hpp
index 7e7078192d..7e7078192d 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_marker.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_marker.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_matcher.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_matcher.hpp
index e49b4eb063..e49b4eb063 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_matcher.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_matcher.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_modifier.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_modifier.hpp
index 8f81391091..8f81391091 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_modifier.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_modifier.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_quantifier.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_quantifier.hpp
index fd7773f3c0..fd7773f3c0 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_quantifier.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_quantifier.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_sequence.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_sequence.hpp
index 1f4528dea9..1f4528dea9 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_sequence.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_sequence.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_set.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_set.hpp
index ddc2bc232c..ddc2bc232c 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transforms/as_set.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transforms/as_set.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/transmogrify.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transmogrify.hpp
index 5016416c73..5016416c73 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/transmogrify.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/transmogrify.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/type_traits.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/type_traits.hpp
index ebb723727f..ebb723727f 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/type_traits.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/type_traits.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/visitor.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/visitor.hpp
index 46fd6c1641..46fd6c1641 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/visitor.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/visitor.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/static/width_of.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/width_of.hpp
index 819e2f9ddc..819e2f9ddc 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/static/width_of.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/static/width_of.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/algorithm.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/algorithm.hpp
index b72bb2a35b..b72bb2a35b 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/algorithm.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/algorithm.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/any.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/any.hpp
index edd077dd91..47630264f5 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/any.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/any.hpp
@@ -17,18 +17,18 @@
# if BOOST_VERSION >= 103500
# include <boost/fusion/include/any.hpp> // Boost 1.35+ has Fusion2
# else
-#error # include <boost/spirit/fusion/algorithm/any.hpp> // Fusion1
+# error #include <boost/spirit/fusion/algorithm/any.hpp> // Fusion1
# endif
#else
-#error # include <boost/spirit/fusion/sequence/begin.hpp>
-#error # include <boost/spirit/fusion/sequence/end.hpp>
-#error # include <boost/spirit/fusion/iterator/equal_to.hpp>
-#error # include <boost/mpl/bool.hpp>
-#error # include <boost/spirit/fusion/iterator/equal_to.hpp>
-#error # include <boost/spirit/fusion/iterator/next.hpp>
-#error # include <boost/spirit/fusion/iterator/deref.hpp>
+# error #include <boost/spirit/fusion/sequence/begin.hpp>
+# error #include <boost/spirit/fusion/sequence/end.hpp>
+# error #include <boost/spirit/fusion/iterator/equal_to.hpp>
+# include <boost/mpl/bool.hpp>
+# error #include <boost/spirit/fusion/iterator/equal_to.hpp>
+# error #include <boost/spirit/fusion/iterator/next.hpp>
+# error #include <boost/spirit/fusion/iterator/deref.hpp>
namespace boost { namespace fusion
{
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/boyer_moore.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/boyer_moore.hpp
index d05e38752c..d05e38752c 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/boyer_moore.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/boyer_moore.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/basic_chset.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/basic_chset.hpp
index 23316ce417..23316ce417 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/basic_chset.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/basic_chset.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/basic_chset.ipp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/basic_chset.ipp
index 71b99133ee..71b99133ee 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/basic_chset.ipp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/basic_chset.ipp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/chset.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/chset.hpp
index 139eb6b571..139eb6b571 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/chset.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/chset.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/range_run.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/range_run.hpp
index f7d6adde15..f7d6adde15 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/range_run.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/range_run.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/range_run.ipp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/range_run.ipp
index dfd321f786..dfd321f786 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/chset/range_run.ipp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/chset/range_run.ipp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/cons.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/cons.hpp
index a224a8208c..1cf89c12cd 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/cons.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/cons.hpp
@@ -17,29 +17,29 @@
# if BOOST_VERSION >= 103500
# include <boost/fusion/include/cons.hpp> // Boost 1.35+ has Fusion2
# else
-#error # include <boost/spirit/fusion/sequence/cons.hpp> // Fusion1
+# error #include <boost/spirit/fusion/sequence/cons.hpp> // Fusion1
# endif
#else
// For earlier versions of Boost, put the definition of cons here
-#error # include <boost/call_traits.hpp>
-#error # include <boost/mpl/if.hpp>
-#error # include <boost/mpl/eval_if.hpp>
-#error # include <boost/mpl/identity.hpp>
-#error # include <boost/type_traits/is_const.hpp>
-#error # include <boost/type_traits/add_const.hpp>
-#error # include <boost/type_traits/add_reference.hpp>
-#error # include <boost/spirit/fusion/detail/config.hpp>
-#error # include <boost/spirit/fusion/detail/access.hpp>
-#error # include <boost/spirit/fusion/iterator/next.hpp>
-#error # include <boost/spirit/fusion/iterator/equal_to.hpp>
-#error # include <boost/spirit/fusion/iterator/as_fusion_iterator.hpp>
-#error # include <boost/spirit/fusion/iterator/detail/iterator_base.hpp>
-#error # include <boost/spirit/fusion/sequence/begin.hpp>
-#error # include <boost/spirit/fusion/sequence/end.hpp>
-#error # include <boost/spirit/fusion/sequence/as_fusion_sequence.hpp>
-#error # include <boost/spirit/fusion/sequence/detail/sequence_base.hpp>
+# include <boost/call_traits.hpp>
+# include <boost/mpl/if.hpp>
+# include <boost/mpl/eval_if.hpp>
+# include <boost/mpl/identity.hpp>
+# include <boost/type_traits/is_const.hpp>
+# include <boost/type_traits/add_const.hpp>
+# include <boost/type_traits/add_reference.hpp>
+# error #include <boost/spirit/fusion/detail/config.hpp>
+# error #include <boost/spirit/fusion/detail/access.hpp>
+# error #include <boost/spirit/fusion/iterator/next.hpp>
+# error #include <boost/spirit/fusion/iterator/equal_to.hpp>
+# error #include <boost/spirit/fusion/iterator/as_fusion_iterator.hpp>
+# error #include <boost/spirit/fusion/iterator/detail/iterator_base.hpp>
+# error #include <boost/spirit/fusion/sequence/begin.hpp>
+# error #include <boost/spirit/fusion/sequence/end.hpp>
+# error #include <boost/spirit/fusion/sequence/as_fusion_sequence.hpp>
+# error #include <boost/spirit/fusion/sequence/detail/sequence_base.hpp>
namespace boost { namespace fusion
{
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/counted_base.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/counted_base.hpp
index 406c69db17..406c69db17 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/counted_base.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/counted_base.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/dont_care.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/dont_care.hpp
index 3e7a7a5f91..3e7a7a5f91 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/dont_care.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/dont_care.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/hash_peek_bitset.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/hash_peek_bitset.hpp
index af671310d4..af671310d4 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/hash_peek_bitset.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/hash_peek_bitset.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/ignore_unused.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/ignore_unused.hpp
index e0b413d310..e0b413d310 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/ignore_unused.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/ignore_unused.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/literals.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/literals.hpp
index 52a52b3941..52a52b3941 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/literals.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/literals.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/never_true.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/never_true.hpp
index 8c15ee4ff0..8c15ee4ff0 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/never_true.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/never_true.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/save_restore.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/save_restore.hpp
index ac5039663d..ac5039663d 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/save_restore.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/save_restore.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/sequence_stack.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/sequence_stack.hpp
index baef2f209a..baef2f209a 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/sequence_stack.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/sequence_stack.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/symbols.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/symbols.hpp
index 4b9e92bf12..4b9e92bf12 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/symbols.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/symbols.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/tracking_ptr.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/tracking_ptr.hpp
index 398a5e1729..4cb32a047a 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/tracking_ptr.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/tracking_ptr.hpp
@@ -421,7 +421,7 @@ struct tracking_ptr
}
// NOTE: this does *not* do tracking. Can't provide a non-throwing swap that tracks references
- void swap(tracking_ptr<element_type> &that) // noexcept
+ void swap(tracking_ptr<element_type> &that) // throw()
{
this->impl_.swap(that.impl_);
}
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/traits_utils.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/traits_utils.hpp
index 6ede107e47..6ede107e47 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/traits_utils.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/traits_utils.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/detail/utility/width.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/width.hpp
index f00063bc03..f00063bc03 100644
--- a/contrib/restricted/boost/boost/xpressive/detail/utility/width.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/detail/utility/width.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/match_results.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/match_results.hpp
index c51dc2369b..2eb5c4b232 100644
--- a/contrib/restricted/boost/boost/xpressive/match_results.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/match_results.hpp
@@ -102,7 +102,7 @@ struct results_extras
//
struct char_overflow_handler_
{
- void operator ()(numeric::range_check_result result) const //
+ void operator ()(numeric::range_check_result result) const // throw(regex_error)
{
if(numeric::cInRange != result)
{
@@ -654,7 +654,7 @@ public:
/// \post *this contains the sequence of matched sub-expressions that were in that,
/// that contains the sequence of matched sub-expressions that were in *this.
/// \throw nothrow
- void swap(match_results<BidiIter> &that) // noexcept
+ void swap(match_results<BidiIter> &that) // throw()
{
using std::swap;
swap(this->regex_id_, that.regex_id_);
diff --git a/contrib/restricted/boost/boost/xpressive/regex_algorithms.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_algorithms.hpp
index f2bd1810a6..f2bd1810a6 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_algorithms.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_algorithms.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_compiler.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_compiler.hpp
index 59d24cef06..59d24cef06 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_compiler.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_compiler.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_constants.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_constants.hpp
index df82138d2d..df82138d2d 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_constants.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_constants.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_error.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_error.hpp
index 727950bee7..727950bee7 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_error.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_error.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_iterator.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_iterator.hpp
index 06675a14b6..06675a14b6 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_iterator.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_iterator.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_primitives.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_primitives.hpp
index dcce60b491..dcce60b491 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_primitives.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_primitives.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_token_iterator.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_token_iterator.hpp
index 7b09d0f6b6..7b09d0f6b6 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_token_iterator.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_token_iterator.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/regex_traits.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_traits.hpp
index 8760fdfb41..8760fdfb41 100644
--- a/contrib/restricted/boost/boost/xpressive/regex_traits.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/regex_traits.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/sub_match.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/sub_match.hpp
index ae3212fcc6..ae3212fcc6 100644
--- a/contrib/restricted/boost/boost/xpressive/sub_match.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/sub_match.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/traits/c_regex_traits.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/traits/c_regex_traits.hpp
index 595ee921a3..595ee921a3 100644
--- a/contrib/restricted/boost/boost/xpressive/traits/c_regex_traits.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/traits/c_regex_traits.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/traits/cpp_regex_traits.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/traits/cpp_regex_traits.hpp
index 977dc58a89..977dc58a89 100644
--- a/contrib/restricted/boost/boost/xpressive/traits/cpp_regex_traits.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/traits/cpp_regex_traits.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/traits/detail/c_ctype.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/traits/detail/c_ctype.hpp
index e56a506c2c..e56a506c2c 100644
--- a/contrib/restricted/boost/boost/xpressive/traits/detail/c_ctype.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/traits/detail/c_ctype.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/xpressive_dynamic.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_dynamic.hpp
index 18c7ff97e3..18c7ff97e3 100644
--- a/contrib/restricted/boost/boost/xpressive/xpressive_dynamic.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_dynamic.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/xpressive_fwd.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_fwd.hpp
index 5babacfe49..5babacfe49 100644
--- a/contrib/restricted/boost/boost/xpressive/xpressive_fwd.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_fwd.hpp
diff --git a/contrib/restricted/boost/boost/xpressive/xpressive_static.hpp b/contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_static.hpp
index eef6b04940..eef6b04940 100644
--- a/contrib/restricted/boost/boost/xpressive/xpressive_static.hpp
+++ b/contrib/restricted/boost/xpressive/include/boost/xpressive/xpressive_static.hpp