7 #if !defined(ERROR_HANDLER_HPP)
8 #define ERROR_HANDLER_HPP
19 template <
typename Iterator>
22 #if BOOST_VERSION >= 106200
25 template <
typename,
typename,
typename>
30 : first(first), last(last) {}
32 template <
typename Message,
typename What>
36 Iterator err_pos)
const
39 Iterator line_start =
get_pos(err_pos, line);
42 std::cout << message << what <<
" line " << line <<
':' <<
std::endl;
44 for (; line_start != err_pos; ++line_start)
50 std::cout <<
"Unexpected end of file. ";
51 std::cout << message << what <<
" line " << line <<
std::endl;
55 Iterator
get_pos(Iterator err_pos,
int& line)
const
59 Iterator line_start =
first;
63 if (i != err_pos && *i ==
'\r')
68 if (i != err_pos && *i ==
'\n')
85 while (i !=
last && (*i !=
'\r' && *i !=
'\n'))
87 return std::string(err_pos, i);
void operator()(Message const &message, What const &what, Iterator err_pos) const
Iterator get_pos(Iterator err_pos, int &line) const
std::string get_line(Iterator err_pos) const
error_handler(Iterator first, Iterator last)
std::vector< Iterator > iters
Inform & endl(Inform &inf)