• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2014 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_X3_CALC7_ERROR_HANDLER_HPP)
8 #define BOOST_SPIRIT_X3_CALC7_ERROR_HANDLER_HPP
9 
10 #include <boost/spirit/home/x3.hpp>
11 #include <iostream>
12 
13 namespace client { namespace calculator_grammar
14 {
15     ////////////////////////////////////////////////////////////////////////////
16     //  Our error handler
17     ////////////////////////////////////////////////////////////////////////////
18     namespace x3 = boost::spirit::x3;
19 
20     struct error_handler
21     {
22         //  Our error handler
23         template <typename Iterator, typename Exception, typename Context>
24         x3::error_handler_result
on_errorclient::calculator_grammar::error_handler25         on_error(Iterator&, Iterator const& last, Exception const& x, Context const& context)
26         {
27             std::cout
28                 << "Error! Expecting: "
29                 << x.which()
30                 << " here: \""
31                 << std::string(x.where(), last)
32                 << "\""
33                 << std::endl
34                 ;
35             return x3::error_handler_result::fail;
36         }
37     };
38 }}
39 
40 #endif
41