1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3 
4     Distributed under the Boost Software License, Version 1.0. (See accompanying
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #if !defined(BOOST_SPIRIT_SKIP_APRIL_16_2006_0625PM)
8 #define BOOST_SPIRIT_SKIP_APRIL_16_2006_0625PM
9 
10 #if defined(_MSC_VER)
11 #pragma once
12 #endif
13 
14 #include <boost/spirit/home/support/unused.hpp>
15 #include <boost/spirit/home/qi/detail/unused_skipper.hpp>
16 
17 namespace boost { namespace spirit { namespace qi
18 {
19     ///////////////////////////////////////////////////////////////////////////
20     // Move the /first/ iterator to the first non-matching position
21     // given a skip-parser. The function is a no-op if unused_type is
22     // passed as the skip-parser.
23     ///////////////////////////////////////////////////////////////////////////
24     template <typename Iterator, typename T>
skip_over(Iterator & first,Iterator const & last,T const & skipper)25     inline void skip_over(Iterator& first, Iterator const& last, T const& skipper)
26     {
27         while (skipper.parse(first, last, unused, unused, unused))
28             /***/;
29     }
30 
31     template <typename Iterator>
skip_over(Iterator &,Iterator const &,unused_type)32     inline void skip_over(Iterator&, Iterator const&, unused_type)
33     {
34     }
35 
36     template <typename Iterator, typename Skipper>
skip_over(Iterator &,Iterator const &,detail::unused_skipper<Skipper> const &)37     inline void skip_over(Iterator&, Iterator const&
38       , detail::unused_skipper<Skipper> const&)
39     {
40     }
41 
42 }}}
43 
44 #endif
45