Namespaces | |
| _detail | |
Classes | |
| class | _filtered_node_range |
| struct | _report_error |
| struct | default_prompt |
| Prompt using stdin and stdout. More... | |
| class | diagnostic_writer |
| Formats and writes diagnostic messages. More... | |
| class | parse_tree_desc |
| class | shell |
| Reads input from an interactive shell. More... | |
Typedefs | |
| template<typename Tag > | |
| using | compiler_explorer_error = lexy::buffer_error< Tag, lexy::utf8_encoding > |
| template<typename Production > | |
| using | compiler_explorer_error_context = lexy::buffer_error_context< Production, lexy::utf8_encoding > |
| using | compiler_explorer_lexeme = lexy::buffer_lexeme< lexy::utf8_encoding > |
| template<typename Tag , typename Prompt = default_prompt<>> | |
| using | shell_error = lexy::error_for< shell< Prompt >, Tag > |
| template<typename Prompt = default_prompt<>> | |
| using | shell_error_context = lexy::error_context< shell< Prompt > > |
| template<typename Prompt = default_prompt<>> | |
| using | shell_lexeme = lexy::lexeme_for< shell< Prompt > > |
Enumerations | |
| enum | annotation_kind { annotation_kind::primary, annotation_kind::secondary } |
| Classifies a source code annotation. More... | |
| enum | diagnostic_kind { diagnostic_kind::error, diagnostic_kind::warning, diagnostic_kind::note, diagnostic_kind::info, diagnostic_kind::debug, diagnostic_kind::fixit, diagnostic_kind::help } |
| The kind of diagnostic message. More... | |
Functions | |
| template<typename Predicate , typename Iterator , typename Sentinel > | |
| _filtered_node_range (Predicate &&pred, Iterator begin, Sentinel end) noexcept -> _filtered_node_range< std::decay_t< Predicate >, Iterator, Sentinel > | |
| template<typename Reader , typename TokenKind , typename MemoryResource , typename Predicate > | |
| auto | child (const lexy::parse_tree< Reader, TokenKind, MemoryResource > &tree, typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node node, Predicate predicate) -> std::optional< typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node > |
| Returns the first child that matches predicate, if there is any. More... | |
| template<typename Reader , typename TokenKind , typename MemoryResource , typename Predicate > | |
| auto | children (const lexy::parse_tree< Reader, TokenKind, MemoryResource > &, typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node node, Predicate predicate) |
| lexy::buffer< lexy::utf8_encoding > | compiler_explorer_input () |
| template<typename Reader , typename TokenKind , typename MemoryResource > | |
| auto | find_covering_node (const lexy::parse_tree< Reader, TokenKind, MemoryResource > &tree, typename Reader::iterator position) -> typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node |
| template<typename Reader , typename TokenKind , typename MemoryResource > | |
| auto | node_position (const lexy::parse_tree< Reader, TokenKind, MemoryResource > &tree, typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node node) -> typename Reader::iterator |
| template<typename Reader , typename TokenKind , typename MemoryResource > | |
| auto | tokens (const lexy::parse_tree< Reader, TokenKind, MemoryResource > &tree) |
| template<typename Reader , typename TokenKind , typename MemoryResource > | |
| auto | tokens (const lexy::parse_tree< Reader, TokenKind, MemoryResource > &tree, typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node node) |
Variables | |
| constexpr auto | report_error = _report_error<lexy::stderr_output_iterator>{} |
| An error callback that uses diagnostic_writer to print to stderr (by default). More... | |
| using lexy_ext::compiler_explorer_error = typedef lexy::buffer_error<Tag, lexy::utf8_encoding> |
Definition at line 53 of file compiler_explorer.hpp.
| using lexy_ext::compiler_explorer_error_context = typedef lexy::buffer_error_context<Production, lexy::utf8_encoding> |
Definition at line 56 of file compiler_explorer.hpp.
| using lexy_ext::compiler_explorer_lexeme = typedef lexy::buffer_lexeme<lexy::utf8_encoding> |
Definition at line 50 of file compiler_explorer.hpp.
| using lexy_ext::shell_error = typedef lexy::error_for<shell<Prompt>, Tag> |
| using lexy_ext::shell_error_context = typedef lexy::error_context<shell<Prompt> > |
| using lexy_ext::shell_lexeme = typedef lexy::lexeme_for<shell<Prompt> > |
|
strong |
Classifies a source code annotation.
| Enumerator | |
|---|---|
| primary | |
| secondary | |
Definition at line 28 of file report_error.hpp.
|
strong |
The kind of diagnostic message.
| Enumerator | |
|---|---|
| error | |
| warning | |
| note | |
| info | |
| debug | |
| fixit | |
| help | |
Definition at line 16 of file report_error.hpp.
|
noexcept |
| auto lexy_ext::child | ( | const lexy::parse_tree< Reader, TokenKind, MemoryResource > & | tree, |
| typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node | node, | ||
| Predicate | predicate | ||
| ) | -> std::optional<typename lexy::parse_tree<Reader, TokenKind, MemoryResource>::node> |
Returns the first child that matches predicate, if there is any.
Definition at line 244 of file parse_tree_algorithm.hpp.
| auto lexy_ext::children | ( | const lexy::parse_tree< Reader, TokenKind, MemoryResource > & | , |
| typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node | node, | ||
| Predicate | predicate | ||
| ) |
Returns the children that of node that match the predicate.
If predicate is a token kind, keeps only children of the same token kind. If predicate is a production, keeps only children of that production. Otherwise, predicate is a function object that is invoked with the node.
Definition at line 227 of file parse_tree_algorithm.hpp.
| lexy::buffer<lexy::utf8_encoding> lexy_ext::compiler_explorer_input | ( | ) |
Input that uses Compiler Explorer's stdin. It consumes the entire stdin, which is then at EOF.
Definition at line 16 of file compiler_explorer.hpp.
| auto lexy_ext::find_covering_node | ( | const lexy::parse_tree< Reader, TokenKind, MemoryResource > & | tree, |
| typename Reader::iterator | position | ||
| ) | -> typename lexy::parse_tree<Reader, TokenKind, MemoryResource>::node |
Returns the node of the tree that covers the position. It is always a token.
Definition at line 114 of file parse_tree_algorithm.hpp.
| auto lexy_ext::node_position | ( | const lexy::parse_tree< Reader, TokenKind, MemoryResource > & | tree, |
| typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node | node | ||
| ) | -> typename Reader::iterator |
Returns the position of a node.
For a token node, this is the beginning of its lexeme. For a production node, this is the position designated by a dsl::position rule, or otherwise the position of its first non-empty child. If a production node is empty, it returns a default constructed iterator.
Definition at line 266 of file parse_tree_algorithm.hpp.
| auto lexy_ext::tokens | ( | const lexy::parse_tree< Reader, TokenKind, MemoryResource > & | tree | ) |
Definition at line 102 of file parse_tree_algorithm.hpp.
| auto lexy_ext::tokens | ( | const lexy::parse_tree< Reader, TokenKind, MemoryResource > & | tree, |
| typename lexy::parse_tree< Reader, TokenKind, MemoryResource >::node | node | ||
| ) |
Returns a range that contains only the token nodes that are descendants of the node. If the node is itself a token, returns a range that contains only the node itself.
Definition at line 15 of file parse_tree_algorithm.hpp.
|
constexpr |
An error callback that uses diagnostic_writer to print to stderr (by default).
Definition at line 377 of file report_error.hpp.