Go to the documentation of this file.
4 #ifndef LEXY_INPUT_PARSE_TREE_INPUT_HPP_INCLUDED
5 #define LEXY_INPUT_PARSE_TREE_INPUT_HPP_INCLUDED
12 #if !LEXY_EXPERIMENTAL
13 # error "lexy::parse_tree_input is experimental"
18 template <
typename Node>
23 template <
typename Node>
28 template <
typename Node>
34 template <
typename Node>
39 template <
typename Node>
46 template <
typename Node>
61 template <
typename NodeKind>
62 static bool match(
const Node& node,
const NodeKind& node_kind)
64 return _traits::has_kind(node, node_kind);
67 template <
typename Node>
68 constexpr
auto is_node_encoding<parse_tree_encoding<Node>> =
true;
70 template <
typename Node>
82 Node
_cur = _traits::null();
87 : _traits::position_begin(
_cur);
91 constexpr
explicit _ptr(
const Node& root) noexcept
105 constexpr
const Node&
peek() const noexcept
135 template <
typename Node>
153 constexpr
const Node&
root() const noexcept
168 template <
typename ParseTree>
173 template <
typename Node>
176 template <
typename Tag,
typename Node>
179 template <
typename Node>
183 #endif // LEXY_INPUT_PARSE_TREE_INPUT_HPP_INCLUDED
constexpr _ptr child_reader() const &noexcept
constexpr friend bool operator!=(_parse_tree_eof, const Node &node) noexcept
static LEXY_CONSTEVAL auto eof()
string_view::value_type char_type
constexpr const Node & peek() const noexcept
constexpr iterator position() const noexcept
constexpr iterator begin() const noexcept
Contains information about the context of an error, production is type-erased.
#define LEXY_PRECONDITION(Expr)
constexpr marker current() const noexcept
parse_tree_input(const ParseTree &) -> parse_tree_input< LEXY_DECAY_DECLTYPE(LEXY_DECLVAL(ParseTree).root())>
constexpr void bump() noexcept
constexpr friend bool operator==(const Node &node, _parse_tree_eof) noexcept
constexpr void reset(marker m) noexcept
#define LEXY_DECAY_DECLTYPE(...)
constexpr friend bool operator==(_parse_tree_eof, const Node &node) noexcept
constexpr iterator end() const noexcept
constexpr iterator position() const noexcept
typename char_encoding::char_type char_type
typename _traits::iterator iterator
static bool match(const Node &node, const NodeKind &node_kind)
lexeme(const Reader &, typename Reader::iterator) -> lexeme< typename Reader::canonical_reader >
typename _traits::char_encoding char_encoding
constexpr auto lexeme_reader() const &noexcept
constexpr _ptr(const Node &root) noexcept
constexpr friend bool operator!=(const Node &node, _parse_tree_eof) noexcept
#define LEXY_DECLVAL(...)
typename std::enable_if< B, T >::type enable_if_t