--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ossrv_pub/boost_apis/boost/xpressive/detail/detail_fwd.hpp Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,337 @@
+///////////////////////////////////////////////////////////////////////////////
+// detail_fwd.hpp
+//
+// Copyright 2004 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_DETAIL_FWD_HPP_EAN_10_04_2005
+#define BOOST_XPRESSIVE_DETAIL_DETAIL_FWD_HPP_EAN_10_04_2005
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <climits> // for INT_MAX
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/size_t.hpp>
+#include <boost/xpressive/xpressive_fwd.hpp>
+
+namespace boost { namespace xpressive { namespace detail
+{
+ typedef unsigned int uint_t;
+
+ template<uint_t Min, uint_t Max>
+ struct generic_quant_tag;
+
+ struct modifier_tag;
+
+ typedef mpl::size_t<INT_MAX / 2 - 1> unknown_width;
+
+ ///////////////////////////////////////////////////////////////////////////////
+ // placeholders
+ //
+ template<typename Char, bool Not = false>
+ struct literal_placeholder;
+
+ template<typename Char>
+ struct string_placeholder;
+
+ struct mark_placeholder;
+
+ template<typename BidiIter, bool ByRef>
+ struct regex_placeholder;
+
+ struct posix_charset_placeholder;
+
+ template<typename Cond>
+ struct assert_word_placeholder;
+
+ template<typename Char>
+ struct range_placeholder;
+
+ struct assert_bol_placeholder;
+
+ struct assert_eol_placeholder;
+
+ struct logical_newline_placeholder;
+
+ struct self_placeholder;
+
+ ///////////////////////////////////////////////////////////////////////////////
+ // matchers
+ //
+ struct end_matcher;
+
+ struct assert_bos_matcher;
+
+ struct assert_eos_matcher;
+
+ template<typename Traits>
+ struct assert_bol_matcher;
+
+ template<typename Traits>
+ struct assert_eol_matcher;
+
+ template<typename Cond, typename Traits>
+ struct assert_word_matcher;
+
+ struct true_matcher;
+
+ template<typename Alternates, typename Traits>
+ struct alternate_matcher;
+
+ struct alternate_end_matcher;
+
+ template<typename Traits>
+ struct posix_charset_matcher;
+
+ template<typename BidiIter>
+ struct alternates_factory;
+
+ template<typename BidiIter>
+ struct sequence;
+
+ template<typename Traits, bool ICase>
+ struct mark_matcher;
+
+ struct mark_begin_matcher;
+
+ struct mark_end_matcher;
+
+ template<typename BidiIter>
+ struct regex_matcher;
+
+ template<typename BidiIter>
+ struct regex_byref_matcher;
+
+ template<typename Traits>
+ struct compound_charset;
+
+ template<typename Traits, bool ICase, typename CharSet = compound_charset<Traits> >
+ struct charset_matcher;
+
+ template<typename Traits, bool ICase>
+ struct range_matcher;
+
+ template<typename Traits, int Size>
+ struct set_matcher;
+
+ template<typename Xpr, bool Greedy>
+ struct simple_repeat_matcher;
+
+ struct repeat_begin_matcher;
+
+ template<bool Greedy>
+ struct repeat_end_matcher;
+
+ template<typename Traits, bool ICase, bool Not>
+ struct literal_matcher;
+
+ template<typename Traits, bool ICase>
+ struct string_matcher;
+
+ template<typename Action>
+ struct action_matcher;
+
+ template<typename Xpr>
+ struct is_modifiable;
+
+ template<typename Alternates>
+ struct alternates_list;
+
+ template<typename Modifier>
+ struct modifier_op;
+
+ template<typename Left, typename Right>
+ struct modifier_sequencer;
+
+ struct icase_modifier;
+
+ template<typename BidiIter, typename ICase, typename Traits>
+ struct xpression_visitor;
+
+ template<typename BidiIter>
+ struct regex_impl;
+
+ template<typename BidiIter>
+ struct regex_matcher;
+
+ struct epsilon_matcher;
+
+ struct epsilon_mark_matcher;
+
+ template<typename BidiIter>
+ struct nested_results;
+
+ template<typename BidiIter>
+ struct regex_id_filter_predicate;
+
+ template<typename Xpr>
+ struct keeper_matcher;
+
+ template<typename Xpr>
+ struct lookahead_matcher;
+
+ template<typename Xpr>
+ struct lookbehind_matcher;
+
+ template<typename Cond>
+ struct assert_word_placeholder;
+
+ template<bool IsBoundary>
+ struct word_boundary;
+
+ template<typename BidiIter, typename Matcher>
+ sequence<BidiIter> make_dynamic_xpression(Matcher const &matcher);
+
+ template<typename Char>
+ struct xpression_linker;
+
+ template<typename Char>
+ struct xpression_peeker;
+
+ typedef proto::unary_op<mark_placeholder, proto::noop_tag> mark_tag;
+
+ struct any_matcher;
+
+ template<typename Traits>
+ struct logical_newline_matcher;
+
+ typedef proto::unary_op<logical_newline_placeholder, proto::noop_tag> logical_newline_xpression;
+
+ struct set_initializer;
+
+ typedef proto::unary_op<set_initializer, proto::noop_tag> set_initializer_type;
+
+ struct seq_tag;
+
+ template<bool Positive>
+ struct lookahead_tag;
+
+ template<bool Positive>
+ struct lookbehind_tag;
+
+ struct keeper_tag;
+
+ template<typename Locale>
+ struct locale_modifier;
+
+ template<typename Matcher>
+ struct matcher_wrapper;
+
+ template<typename Locale, typename BidiIter>
+ struct regex_traits_type;
+
+ ///////////////////////////////////////////////////////////////////////////////
+ // Misc.
+ struct no_next;
+
+ template<typename BidiIter>
+ struct core_access;
+
+ template<typename BidiIter>
+ struct state_type;
+
+ template<typename BidiIter>
+ struct matchable;
+
+ template<typename Matcher, typename BidiIter>
+ struct dynamic_xpression;
+
+ template<typename Matcher, typename Next>
+ struct static_xpression;
+
+ typedef static_xpression<end_matcher, no_next> end_xpression;
+
+ typedef static_xpression<alternate_end_matcher, no_next> alternate_end_xpression;
+
+ typedef static_xpression<true_matcher, no_next> true_xpression;
+
+ template<typename Matcher, typename Next = end_xpression>
+ struct static_xpression;
+
+ template<typename Top, typename Next>
+ struct stacked_xpression;
+
+ template<typename Xpr>
+ struct is_static_xpression;
+
+ template<typename BidiIter>
+ struct sub_match_impl;
+
+ template<typename BidiIter>
+ struct results_cache;
+
+ template<typename T>
+ struct sequence_stack;
+
+ template<typename BidiIter>
+ struct results_extras;
+
+ template<typename BidiIter>
+ struct match_context;
+
+ template<typename BidiIter>
+ struct sub_match_vector;
+
+ struct action_state;
+
+ template<typename Xpr, bool IsOp = proto::is_op<Xpr>::value>
+ struct as_xpr_type;
+
+ template<typename Traits, typename BidiIter>
+ Traits const &traits_cast(state_type<BidiIter> const &state);
+
+ template<typename Char>
+ struct basic_chset;
+
+ template<typename BidiIter>
+ struct memento;
+
+ template<typename Char, typename Traits>
+ void set_char(compound_charset<Traits> &chset, Char ch, Traits const &traits, bool icase);
+
+ template<typename Char, typename Traits>
+ void set_range(compound_charset<Traits> &chset, Char from, Char to, Traits const &traits, bool icase);
+
+ template<typename Traits>
+ void set_class(compound_charset<Traits> &chset, typename Traits::char_class_type char_class, bool no, Traits const &traits);
+
+ template<typename Char, typename Traits>
+ void set_char(basic_chset<Char> &chset, Char ch, Traits const &traits, bool icase);
+
+ template<typename Char, typename Traits>
+ void set_range(basic_chset<Char> &chset, Char from, Char to, Traits const &traits, bool icase);
+
+ template<typename Char, typename Traits>
+ void set_class(basic_chset<Char> &chset, typename Traits::char_class_type char_class, bool no, Traits const &traits);
+
+ template<typename Matcher>
+ static_xpression<Matcher> const
+ make_static_xpression(Matcher const &matcher);
+
+ template<typename Matcher, typename Next>
+ static_xpression<Matcher, Next> const
+ make_static_xpression(Matcher const &matcher, Next const &next);
+
+ int get_mark_number(mark_tag const &);
+
+ template<typename Xpr, typename BidiIter>
+ void static_compile(Xpr const &xpr, regex_impl<BidiIter> &impl);
+
+}}} // namespace boost::xpressive::detail
+
+/// INTERNAL ONLY
+namespace boost { namespace xpressive
+{
+
+ /// INTERNAL ONLY
+ template<typename Traits, std::size_t N>
+ typename Traits::char_class_type
+ lookup_classname(Traits const &traits, char const (&cname)[N], bool icase = false);
+
+}} // namespace boost::xpressive
+
+#endif