11template<fixed_
string_view s>
14template<fixed_
string_view s>
17template<fixed_
string_view s>
25template<auto parser_, std::
size_t pos_ = 0,
typename Output = types<>>
29 static constexpr auto parser = parser_;
30 static constexpr auto pos = pos_;
34template<auto parser, std::
size_t pos,
typename Output>
38 static constexpr auto push(
void)
40 static constexpr auto next(
void) {
43 constexpr auto name = i.name(input);
46 static_cast<std::size_t
>(std::distance(begin(input), begin(name))),
47 static_cast<std::size_t
>(std::distance(begin(input), end(name)))>{};
48 if constexpr(i.n == node::identifier)
50 else if constexpr(i.n == node::number)
52 else if constexpr(i.n == node::string)
54 else if constexpr(i.n == node::table_begin)
55 return decltype(generator::push<table_begin>()){};
56 else if constexpr(i.n == node::table_key)
57 return decltype(generator::push<table_key>()){};
58 else if constexpr(i.n == node::table_value)
59 return decltype(generator::push<table_value>()){};
60 else if constexpr(i.n == node::table_end)
61 return decltype(generator::push<table_end>()){};
65 using type =
decltype(generator::next())::type;
static constexpr auto pos
Definition gen.hpp:30
Output output
Definition gen.hpp:28
static constexpr auto next(void)
Definition gen.hpp:40
decltype(generator::next())::type type
Definition gen.hpp:65
static constexpr auto push(void) -> generator< parser, pos+1, typename Output::push_back< T > >
std::array< state::item, MAX > v
Definition parser.hpp:144
Definition parser.hpp:140
struct parser::output output
static constexpr auto input
Definition parser.hpp:141
#define MAX(x, y)
Definition table.c:8
std::integral_constant< decltype(x), x > constant
Definition utils.hpp:72