...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::parser::callback_parse
// In header: <boost/parser/parser.hpp> template<parsable_range R, typename Parser, typename GlobalState, typename ErrorHandler, typename Callbacks> bool callback_parse(R const & r, parser_interface< Parser, GlobalState, ErrorHandler > const & parser, Callbacks const & callbacks, trace trace_mode = trace::off);
Parses r
using parser
, and returns whether the parse was successful. The entire input range r
must be consumed for the parse to be considered successful. When a callback rule r
is successful during the parse, one of two things happens: 1) if r
has an attribute, callbacks(tag, x)
will be called (where tag
is decltype(r)::tag_type{}
, and x
is the attribute produced by r
); or 2) if r
has no attribute, callbacks(tag)
will be called. Callbacks
is expected to be an invocable with the correct overloads required to support all successful rule parses that might occur. If trace_mode == trace::on
, a verbose trace of the parse will be streamed to std::cout
.
Template Parameters: |
|