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

Method call

include/boost/parser/parser.hpp:4299–4351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4297 typename Context,
4298 typename SkipParser>
4299 auto call(
4300 Iter & first_,
4301 Sentinel last,
4302 Context const & context,
4303 SkipParser const & skip,
4304 detail::flags flags,
4305 bool & success) const
4306 {
4307 Iter first = first_;
4308
4309 using temp_result_t =
4310 decltype(make_temp_result(first, last, context, skip, flags, success));
4311
4312 std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<0>{}))>
4313 retval{};
4314
4315#if BOOST_PARSER_DO_TRACE
4316 [[maybe_unused]] auto _ = detail::scoped_trace(
4317 *this,
4318 first_,
4319 last,
4320 context,
4321 detail::in_apply_parser(flags) ? detail::disable_trace(flags)
4322 : flags,
4323 retval);
4324#endif
4325
4326 std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<1>{}))>
4327 indices;
4328 std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<2>{}))>
4329 merged;
4330 call_impl(
4331 first,
4332 last,
4333 context,
4334 skip,
4335 flags,
4336 success,
4337 retval,
4338 indices,
4339 merged);
4340
4341 if (success)
4342 first_ = first;
4343
4344 // A 1-tuple is converted to a scalar.
4345 if constexpr (detail::hl::size(retval) == llong<1>{}) {
4346 using namespace literals;
4347 return parser::get(std::move(retval), 0_c);
4348 } else {
4349 return retval;
4350 }
4351 }
4352
4353 template<
4354 typename Iter,

Callers

nothing calls this directly

Calls 7

scoped_traceFunction · 0.85
fold_leftFunction · 0.85
callFunction · 0.85
assignFunction · 0.85
frontFunction · 0.85
getFunction · 0.70
sizeFunction · 0.50

Tested by

no test coverage detected