1 /*============================================================================= 2 Copyright (c) 2001-2014 Joel de Guzman 3 Copyright (c) 2001-2011 Hartmut Kaiser 4 5 Distributed under the Boost Software License, Version 1.0. (See accompanying 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 ==============================================================================*/ 8 #if !defined(BOOST_SPIRIT_X3_EOI_MARCH_23_2007_0454PM) 9 #define BOOST_SPIRIT_X3_EOI_MARCH_23_2007_0454PM 10 11 #include <boost/spirit/home/x3/core/skip_over.hpp> 12 #include <boost/spirit/home/x3/core/parser.hpp> 13 #include <boost/spirit/home/x3/support/unused.hpp> 14 15 namespace boost { namespace spirit { namespace x3 16 { 17 struct eoi_parser : parser<eoi_parser> 18 { 19 typedef unused_type attribute_type; 20 static bool const has_attribute = false; 21 22 template <typename Iterator, typename Context, typename Attribute> parseboost::spirit::x3::eoi_parser23 bool parse(Iterator& first, Iterator const& last 24 , Context const& context, unused_type, Attribute&) const 25 { 26 x3::skip_over(first, last, context); 27 return first == last; 28 } 29 }; 30 31 template<> 32 struct get_info<eoi_parser> 33 { 34 typedef std::string result_type; operator ()boost::spirit::x3::get_info35 result_type operator()(eoi_parser const &) const { return "eoi"; } 36 }; 37 38 constexpr auto eoi = eoi_parser{}; 39 }}} 40 41 #endif 42