diff options
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/range/adaptor/tokenized.hpp')
-rw-r--r-- | src/third_party/boost-1.69.0/boost/range/adaptor/tokenized.hpp | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/src/third_party/boost-1.69.0/boost/range/adaptor/tokenized.hpp b/src/third_party/boost-1.69.0/boost/range/adaptor/tokenized.hpp deleted file mode 100644 index f0aa12eea5d..00000000000 --- a/src/third_party/boost-1.69.0/boost/range/adaptor/tokenized.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_TOKENIZED_HPP -#define BOOST_RANGE_ADAPTOR_TOKENIZED_HPP - -#include <boost/regex.hpp> -#include <boost/range/iterator_range.hpp> - -namespace boost -{ - namespace range_detail - { - - template< class R > - struct tokenized_range : - public boost::iterator_range< - boost::regex_token_iterator< - BOOST_DEDUCED_TYPENAME range_iterator<R>::type - > - > - { - private: - typedef - boost::regex_token_iterator< - BOOST_DEDUCED_TYPENAME range_iterator<R>::type - > - regex_iter; - - typedef BOOST_DEDUCED_TYPENAME regex_iter::regex_type - regex_type; - - typedef boost::iterator_range<regex_iter> - base; - - public: - template< class Regex, class Submatch, class Flag > - tokenized_range( R& r, const Regex& re, const Submatch& sub, Flag f ) - : base( regex_iter( boost::begin(r), boost::end(r), - regex_type(re), sub, f ), - regex_iter() ) - { } - }; - - template< class T, class U, class V > - struct regex_holder - { - T re; - U sub; - V f; - - regex_holder( const T& rex, const U& subm, V flag ) : - re(rex), sub(subm), f(flag) - { } - private: - // Not assignable - void operator=(const regex_holder&); - }; - - struct regex_forwarder - { - template< class Regex > - regex_holder<Regex,int,regex_constants::match_flag_type> - operator()( const Regex& re, - int submatch = 0, - regex_constants::match_flag_type f = - regex_constants::match_default ) const - { - return regex_holder<Regex,int, - regex_constants::match_flag_type>( re, submatch, f ); - } - - template< class Regex, class Submatch > - regex_holder<Regex,Submatch,regex_constants::match_flag_type> - operator()( const Regex& re, - const Submatch& sub, - regex_constants::match_flag_type f = - regex_constants::match_default ) const - { - return regex_holder<Regex,Submatch, - regex_constants::match_flag_type>( re, sub, f ); - } - }; - - template< class BidirectionalRng, class R, class S, class F > - inline tokenized_range<BidirectionalRng> - operator|( BidirectionalRng& r, - const regex_holder<R,S,F>& f ) - { - return tokenized_range<BidirectionalRng>( r, f.re, f.sub, f.f ); - } - - template< class BidirectionalRng, class R, class S, class F > - inline tokenized_range<const BidirectionalRng> - operator|( const BidirectionalRng& r, - const regex_holder<R,S,F>& f ) - { - return tokenized_range<const BidirectionalRng>( r, f.re, f.sub, f.f ); - } - - } // 'range_detail' - - using range_detail::tokenized_range; - - namespace adaptors - { - namespace - { - const range_detail::regex_forwarder tokenized = - range_detail::regex_forwarder(); - } - - template<class BidirectionalRange, class Regex, class Submatch, class Flag> - inline tokenized_range<BidirectionalRange> - tokenize(BidirectionalRange& rng, const Regex& reg, const Submatch& sub, Flag f) - { - return tokenized_range<BidirectionalRange>(rng, reg, sub, f); - } - - template<class BidirectionalRange, class Regex, class Submatch, class Flag> - inline tokenized_range<const BidirectionalRange> - tokenize(const BidirectionalRange& rng, const Regex& reg, const Submatch& sub, Flag f) - { - return tokenized_range<const BidirectionalRange>(rng, reg, sub, f); - } - } // 'adaptors' - -} - -#endif |