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

Function callback_skip_parse_impl

include/boost/parser/parser.hpp:2695–2737  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2693 typename ErrorHandler,
2694 typename Callbacks>
2695 bool callback_skip_parse_impl(
2696 Iter & first,
2697 Sentinel last,
2698 Parser const & parser,
2699 SkipParser const & skip,
2700 ErrorHandler const & error_handler,
2701 Callbacks const & callbacks)
2702 {
2703 auto const initial_first = first;
2704 bool success = true;
2705 int trace_indent = 0;
2706 detail::symbol_table_tries_t symbol_table_tries;
2707 pending_symbol_table_operations_t pending_symbol_table_operations;
2708 scoped_apply_pending_symbol_table_operations apply_pending(
2709 pending_symbol_table_operations);
2710 auto context = detail::make_context<Debug, true>(
2711 first,
2712 last,
2713 success,
2714 trace_indent,
2715 error_handler,
2716 callbacks,
2717 parser.globals_,
2718 symbol_table_tries,
2719 pending_symbol_table_operations);
2720 auto const flags =
2721 Debug ? detail::enable_trace(detail::default_flags())
2722 : detail::default_flags();
2723 detail::skip(first, last, skip, flags);
2724 try {
2725 parser(first, last, context, skip, flags, success);
2726 detail::skip(first, last, skip, flags);
2727 if (Debug)
2728 detail::final_trace(context, flags, nope{});
2729 return success;
2730 } catch (parse_error<Iter> const & e) {
2731 if (error_handler(initial_first, last, e) ==
2732 error_handler_result::rethrow) {
2733 throw;
2734 }
2735 return false;
2736 }
2737 }
2738
2739 template<typename R>
2740 constexpr auto make_input_subrange(R && r) noexcept

Callers

nothing calls this directly

Calls 1

final_traceFunction · 0.85

Tested by

no test coverage detected