Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/boost/spirit/home/qi/detail/fail_function.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 =============================================================================*/
0007 #ifndef BOOST_SPIRIT_QI_DETAIL_FAIL_FUNCTION_HPP
0008 #define BOOST_SPIRIT_QI_DETAIL_FAIL_FUNCTION_HPP
0009 
0010 #if defined(_MSC_VER)
0011 #pragma once
0012 #endif
0013 
0014 #include <boost/spirit/home/support/unused.hpp>
0015 
0016 namespace boost { namespace spirit { namespace qi { namespace detail
0017 {
0018 #ifdef _MSC_VER
0019 #  pragma warning(push)
0020 #  pragma warning(disable: 4512) // assignment operator could not be generated.
0021 #endif
0022     template <typename Iterator, typename Context, typename Skipper>
0023     struct fail_function
0024     {
0025         typedef Iterator iterator_type;
0026         typedef Context context_type;
0027 
0028         fail_function(
0029             Iterator& first_, Iterator const& last_
0030           , Context& context_, Skipper const& skipper_)
0031           : first(first_)
0032           , last(last_)
0033           , context(context_)
0034           , skipper(skipper_)
0035         {
0036         }
0037 
0038         template <typename Component, typename Attribute>
0039         bool operator()(Component const& component, Attribute& attr) const
0040         {
0041             // return true if the parser fails
0042             return !component.parse(first, last, context, skipper, attr);
0043         }
0044 
0045         template <typename Component>
0046         bool operator()(Component const& component) const
0047         {
0048             // return true if the parser fails
0049             return !component.parse(first, last, context, skipper, unused);
0050         }
0051 
0052         Iterator& first;
0053         Iterator const& last;
0054         Context& context;
0055         Skipper const& skipper;
0056     };
0057 #ifdef _MSC_VER
0058 #  pragma warning(pop)
0059 #endif
0060 }}}}
0061 
0062 #endif