1 //  Boost string_algo library regex_find_format.hpp header file  ---------------------------//
2 
3 //  Copyright Pavol Droba 2002-2003.
4 //
5 // Distributed under the Boost Software License, Version 1.0.
6 //    (See accompanying file LICENSE_1_0.txt or copy at
7 //          http://www.boost.org/LICENSE_1_0.txt)
8 
9 //  See http://www.boost.org/ for updates, documentation, and revision history.
10 
11 #ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP
12 #define BOOST_STRING_REGEX_FIND_FORMAT_HPP
13 
14 #include <boost/algorithm/string/config.hpp>
15 #include <boost/regex.hpp>
16 #include <boost/algorithm/string/detail/finder_regex.hpp>
17 #include <boost/algorithm/string/detail/formatter_regex.hpp>
18 
19 /*! \file
20     Defines the \c regex_finder and \c regex_formatter generators. These two functors
21     are designed to work together. \c regex_formatter uses additional information
22     about a match contained in the regex_finder search result.
23 */
24 
25 namespace boost {
26     namespace algorithm {
27 
28 //  regex_finder  -----------------------------------------------//
29 
30         //! "Regex" finder
31         /*!
32             Construct the \c regex_finder. Finder uses the regex engine to search
33             for a match.
34             Result is given in \c regex_search_result. This is an extension
35             of the iterator_range. In addition it contains match results
36             from the \c regex_search algorithm.
37 
38             \param Rx A regular expression
39             \param MatchFlags Regex search options
40             \return An instance of the \c regex_finder object
41         */
42         template<
43             typename CharT,
44             typename RegexTraitsT>
45         inline detail::find_regexF< basic_regex<CharT, RegexTraitsT> >
regex_finder(const basic_regex<CharT,RegexTraitsT> & Rx,match_flag_type MatchFlags=match_default)46         regex_finder(
47             const basic_regex<CharT, RegexTraitsT>& Rx,
48             match_flag_type MatchFlags=match_default )
49         {
50             return detail::
51                 find_regexF<
52                     basic_regex<CharT, RegexTraitsT> >( Rx, MatchFlags );
53         }
54 
55 //  regex_formater  ---------------------------------------------//
56 
57         //! Regex formatter
58         /*!
59             Construct the \c regex_formatter. Regex formatter uses the regex engine to
60             format a match found by the \c regex_finder.
61             This formatted it designed to closely cooperate with \c regex_finder.
62 
63             \param Format Regex format definition
64             \param Flags Format flags
65             \return An instance of the \c regex_formatter functor
66         */
67        template<
68             typename CharT,
69             typename TraitsT, typename AllocT >
70         inline detail::regex_formatF< std::basic_string< CharT, TraitsT, AllocT > >
regex_formatter(const std::basic_string<CharT,TraitsT,AllocT> & Format,match_flag_type Flags=format_default)71         regex_formatter(
72             const std::basic_string<CharT, TraitsT, AllocT>& Format,
73             match_flag_type Flags=format_default )
74         {
75             return
76                 detail::regex_formatF< std::basic_string<CharT, TraitsT, AllocT> >(
77                     Format,
78                     Flags );
79         }
80 
81     } // namespace algorithm
82 
83     // pull the names to the boost namespace
84     using algorithm::regex_finder;
85     using algorithm::regex_formatter;
86 
87 } // namespace boost
88 
89 
90 #endif  // BOOST_STRING_REGEX_FIND_FORMAT_HPP
91