| 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 |
nothing calls this directly
no test coverage detected