diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/xpressive/detail/detail_fwd.hpp --- /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 // for INT_MAX +#include +#include +#include + +namespace boost { namespace xpressive { namespace detail +{ + typedef unsigned int uint_t; + + template + struct generic_quant_tag; + + struct modifier_tag; + + typedef mpl::size_t unknown_width; + + /////////////////////////////////////////////////////////////////////////////// + // placeholders + // + template + struct literal_placeholder; + + template + struct string_placeholder; + + struct mark_placeholder; + + template + struct regex_placeholder; + + struct posix_charset_placeholder; + + template + struct assert_word_placeholder; + + template + 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 + struct assert_bol_matcher; + + template + struct assert_eol_matcher; + + template + struct assert_word_matcher; + + struct true_matcher; + + template + struct alternate_matcher; + + struct alternate_end_matcher; + + template + struct posix_charset_matcher; + + template + struct alternates_factory; + + template + struct sequence; + + template + struct mark_matcher; + + struct mark_begin_matcher; + + struct mark_end_matcher; + + template + struct regex_matcher; + + template + struct regex_byref_matcher; + + template + struct compound_charset; + + template > + struct charset_matcher; + + template + struct range_matcher; + + template + struct set_matcher; + + template + struct simple_repeat_matcher; + + struct repeat_begin_matcher; + + template + struct repeat_end_matcher; + + template + struct literal_matcher; + + template + struct string_matcher; + + template + struct action_matcher; + + template + struct is_modifiable; + + template + struct alternates_list; + + template + struct modifier_op; + + template + struct modifier_sequencer; + + struct icase_modifier; + + template + struct xpression_visitor; + + template + struct regex_impl; + + template + struct regex_matcher; + + struct epsilon_matcher; + + struct epsilon_mark_matcher; + + template + struct nested_results; + + template + struct regex_id_filter_predicate; + + template + struct keeper_matcher; + + template + struct lookahead_matcher; + + template + struct lookbehind_matcher; + + template + struct assert_word_placeholder; + + template + struct word_boundary; + + template + sequence make_dynamic_xpression(Matcher const &matcher); + + template + struct xpression_linker; + + template + struct xpression_peeker; + + typedef proto::unary_op mark_tag; + + struct any_matcher; + + template + struct logical_newline_matcher; + + typedef proto::unary_op logical_newline_xpression; + + struct set_initializer; + + typedef proto::unary_op set_initializer_type; + + struct seq_tag; + + template + struct lookahead_tag; + + template + struct lookbehind_tag; + + struct keeper_tag; + + template + struct locale_modifier; + + template + struct matcher_wrapper; + + template + struct regex_traits_type; + + /////////////////////////////////////////////////////////////////////////////// + // Misc. + struct no_next; + + template + struct core_access; + + template + struct state_type; + + template + struct matchable; + + template + struct dynamic_xpression; + + template + struct static_xpression; + + typedef static_xpression end_xpression; + + typedef static_xpression alternate_end_xpression; + + typedef static_xpression true_xpression; + + template + struct static_xpression; + + template + struct stacked_xpression; + + template + struct is_static_xpression; + + template + struct sub_match_impl; + + template + struct results_cache; + + template + struct sequence_stack; + + template + struct results_extras; + + template + struct match_context; + + template + struct sub_match_vector; + + struct action_state; + + template::value> + struct as_xpr_type; + + template + Traits const &traits_cast(state_type const &state); + + template + struct basic_chset; + + template + struct memento; + + template + void set_char(compound_charset &chset, Char ch, Traits const &traits, bool icase); + + template + void set_range(compound_charset &chset, Char from, Char to, Traits const &traits, bool icase); + + template + void set_class(compound_charset &chset, typename Traits::char_class_type char_class, bool no, Traits const &traits); + + template + void set_char(basic_chset &chset, Char ch, Traits const &traits, bool icase); + + template + void set_range(basic_chset &chset, Char from, Char to, Traits const &traits, bool icase); + + template + void set_class(basic_chset &chset, typename Traits::char_class_type char_class, bool no, Traits const &traits); + + template + static_xpression const + make_static_xpression(Matcher const &matcher); + + template + static_xpression const + make_static_xpression(Matcher const &matcher, Next const &next); + + int get_mark_number(mark_tag const &); + + template + void static_compile(Xpr const &xpr, regex_impl &impl); + +}}} // namespace boost::xpressive::detail + +/// INTERNAL ONLY +namespace boost { namespace xpressive +{ + + /// INTERNAL ONLY + template + typename Traits::char_class_type + lookup_classname(Traits const &traits, char const (&cname)[N], bool icase = false); + +}} // namespace boost::xpressive + +#endif