![]() |
Home | Libraries | People | FAQ | More |
boost::parser::stream_error_handler
// In header: <boost/parser/error_handling_fwd.hpp> struct stream_error_handler { // public member functions stream_error_handler(); stream_error_handler(std::string_view); stream_error_handler(std::string_view, std::ostream &); stream_error_handler(std::string_view, std::ostream &, std::ostream &); stream_error_handler(std::wstring_view); stream_error_handler(std::wstring_view, std::ostream &); stream_error_handler(std::wstring_view, std::ostream &, std::ostream &); template<typename Iter, typename Sentinel> error_handler_result operator()(Iter, Sentinel, parse_error< Iter > const &) const; template<typename Context, typename Iter> void diagnose(diagnostic_kind, std::string_view, Context const &, Iter) const; template<typename Context> void diagnose(diagnostic_kind, std::string_view, Context const &) const; };
Prints warnings and errors to the std::ostream
s provided by the user, or std::cerr
if neither stream is specified. If a filename is provided, that is used to print all diagnostics.
stream_error_handler
public member functionsstream_error_handler();
stream_error_handler(std::string_view filename);
stream_error_handler(std::string_view filename, std::ostream & errors);
stream_error_handler(std::string_view filename, std::ostream & errors, std::ostream & warnings);
stream_error_handler(std::wstring_view filename);
This overload is Windows-only.
stream_error_handler(std::wstring_view filename, std::ostream & errors);
This overload is Windows-only.
stream_error_handler(std::wstring_view filename, std::ostream & errors, std::ostream & warnings);
This overload is Windows-only.
template<typename Iter, typename Sentinel> error_handler_result operator()(Iter first, Sentinel last, parse_error< Iter > const & e) const;
Handles a parse_error
exception thrown during parsing. A formatted parse-expectation failure is printed to *err_os_
when err_os_
is non-null, or std::cerr
otherwise. Always returns error_handler_result::fail
.
template<typename Context, typename Iter> void diagnose(diagnostic_kind kind, std::string_view message, Context const & context, Iter it) const;
Let std::ostream * s = kind == diagnostic_kind::error : err_os_ : warn_os_
; prints message
to *s
when s
is non-null, or std::cerr
otherwise. The diagnostic is printed with the given kind
, indicating the location as being at it
. This must be called within a parser semantic action, providing the parse context.
template<typename Context> void diagnose(diagnostic_kind kind, std::string_view message, Context const & context) const;
Let std::ostream * s = kind == diagnostic_kind::error : err_os_ : warn_os_
; prints message
to *s
when s
is non-null, or std::cerr
otherwise. The diagnostic is printed with the given kind
, at no particular location. This must be called within a parser semantic action, providing the parse context.