MCPcopy Create free account
hub / github.com/boostorg/parser / callback_parse_impl

Function callback_parse_impl

include/boost/parser/parser.hpp:2535–2580  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2533 typename ErrorHandler,
2534 typename Callbacks>
2535 bool callback_parse_impl(
2536 Iter & first,
2537 Sentinel last,
2538 Parser const & parser,
2539 ErrorHandler const & error_handler,
2540 Callbacks const & callbacks)
2541 {
2542 auto const initial_first = first;
2543 bool success = true;
2544 int trace_indent = 0;
2545 detail::symbol_table_tries_t symbol_table_tries;
2546 pending_symbol_table_operations_t pending_symbol_table_operations;
2547 scoped_apply_pending_symbol_table_operations apply_pending(
2548 pending_symbol_table_operations);
2549 auto context = detail::make_context<Debug, true>(
2550 first,
2551 last,
2552 success,
2553 trace_indent,
2554 error_handler,
2555 callbacks,
2556 parser.globals_,
2557 symbol_table_tries,
2558 pending_symbol_table_operations);
2559 auto const flags =
2560 Debug ? detail::enable_trace(detail::flags::gen_attrs)
2561 : detail::flags::gen_attrs;
2562 try {
2563 parser(
2564 first,
2565 last,
2566 context,
2567 detail::null_parser{},
2568 flags,
2569 success);
2570 if (Debug)
2571 detail::final_trace(context, flags, nope{});
2572 return success;
2573 } catch (parse_error<Iter> const & e) {
2574 if (error_handler(initial_first, last, e) ==
2575 error_handler_result::rethrow) {
2576 throw;
2577 }
2578 return false;
2579 }
2580 }
2581
2582 template<
2583 bool Debug,

Callers

nothing calls this directly

Calls 1

final_traceFunction · 0.85

Tested by

no test coverage detected