Iros
Loading...
Searching...
No Matches
run_parser.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/function/curry.h
"
4
#include "
di/parser/basic/eof_parser.h
"
5
#include "
di/parser/combinator/sequence.h
"
6
#include "
di/parser/concepts/parser.h
"
7
#include "
di/parser/into_parser_context.h
"
8
9
namespace
di::parser
{
10
namespace
detail
{
11
struct
RunParserFunction
{
12
template
<concepts::IntoParserContext U,
typename
Context = meta::AsParserContext<U>,
13
concepts::Parser<Context> Parser>
14
constexpr
auto
operator()
(Parser
parser
, U&& input)
const
{
15
auto
context =
into_parser_context
(util::forward<U>(input));
16
auto
with_eof_parser =
parser::sequence
(util::move(
parser
),
parser::eof
());
17
return
with_eof_parser.parse(context);
18
}
19
};
20
}
21
22
constexpr
inline
auto
run_parser
=
detail::RunParserFunction
{};
23
}
24
25
namespace
di
{
26
using
parser::run_parser
;
27
}
curry.h
eof_parser.h
into_parser_context.h
di::parser::detail
Definition
zstring_parser.h:10
di::parser
Definition
zstring_parser.h:9
di::parser::run_parser
constexpr auto run_parser
Definition
run_parser.h:22
di::parser::into_parser_context
constexpr auto into_parser_context
Definition
into_parser_context.h:21
di::parser::eof
constexpr auto eof
Definition
eof_parser.h:27
di::parser::sequence
constexpr auto sequence
Definition
sequence.h:71
di
Definition
zstring_parser.h:9
sequence.h
parser.h
di::parser::detail::RunParserFunction
Definition
run_parser.h:11
di::parser::detail::RunParserFunction::operator()
constexpr auto operator()(Parser parser, U &&input) const
Definition
run_parser.h:14
libs
di
include
di
parser
run_parser.h
Generated by
1.13.0