4 #ifndef LEXY_DSL_FOLLOW_HPP_INCLUDED
5 #define LEXY_DSL_FOLLOW_HPP_INCLUDED
17 return "follow restriction";
24 template <
typename Literal,
typename CharClass>
33 template <
typename Encoding>
36 return Literal::template lit_first_char<Encoding>();
39 template <
typename Trie>
41 std::size_t char_class)
43 auto end = Literal::lit_insert(trie, pos, char_class);
44 trie.node_char_class[
end] = char_class;
48 template <
typename Reader>
52 typename Reader::marker
end;
55 constexpr
explicit tp(
const Reader& reader)
64 if (!
impl.try_parse(reader))
71 if constexpr (std::is_void_v<lit_case_folding>)
77 typename lit_case_folding::template reader<Reader> case_folded{reader};
82 template <
typename Context>
87 impl.report_error(context, reader);
100 template <
typename Literal,
typename CharClass>
103 static_assert(lexy::is_literal_rule<Literal> && Literal::lit_char_classes.
size == 0);
108 template <
typename Literal,
typename CharClass>
117 template <
typename Literal,
typename CharClass>
121 #endif // LEXY_DSL_FOLLOW_HPP_INCLUDED