#include <cstdint>#include <lexy/_detail/config.hpp>#include <lexy/_detail/detect.hpp>#include <lexy/_detail/type_name.hpp>#include <lexy/callback/base.hpp>

Go to the source code of this file.
Classes | |
| struct | lexyd::_char_class_base |
| struct | lexyd::_lit_base |
| struct | lexyd::_lset_base |
| struct | lexyd::_operation_base |
| struct | lexyd::_sep_base |
| struct | lexy::_sfinae_sink< Production, Sink > |
| struct | lexyd::_token_base |
| struct | lexyd::branch_base |
| struct | lexy::production_info |
| class | lexy::production_value_callback< Production, ParseState > |
| struct | lexyd::rule_base |
| struct | lexy::token_production |
| struct | lexy::transparent_production |
| struct | lexyd::unconditional_branch_base |
Namespaces | |
| lexy | |
| lexyd | |
Macros | |
| #define | LEXY_REQUIRE_BRANCH_RULE(Rule, Name) |
Typedefs | |
| template<typename Production > | |
| using | lexy::_detect_max_recursion_depth = decltype(Production::max_recursion_depth) |
| template<typename Production > | |
| using | lexy::_detect_value = decltype(Production::value) |
| template<typename ParseState , typename Production > | |
| using | lexy::_detect_value_of = typename decltype(LEXY_DECLVAL(ParseState &).value_of(Production{}))::return_type |
| template<typename Production > | |
| using | lexy::_detect_whitespace = decltype(Production::whitespace) |
| template<typename T > | |
| using | lexy::_enable_production_or_operation = std::enable_if_t< is_production< T >||is_operation< T > > |
| template<typename Production > | |
| using | lexy::production_rule = LEXY_DECAY_DECLTYPE(Production::rule) |
| template<typename Production , typename WhitespaceProduction > | |
| using | lexy::production_whitespace = decltype(_production_whitespace< Production, WhitespaceProduction >()) |
Enumerations | |
| enum | lexy::predefined_token_kind : std::uint_least16_t { lexy::unknown_token_kind = UINT_LEAST16_MAX, lexy::error_token_kind = UINT_LEAST16_MAX - 1, lexy::whitespace_token_kind = UINT_LEAST16_MAX - 2, lexy::any_token_kind = UINT_LEAST16_MAX - 3, lexy::literal_token_kind = UINT_LEAST16_MAX - 4, lexy::position_token_kind = UINT_LEAST16_MAX - 5, lexy::eof_token_kind = UINT_LEAST16_MAX - 6, lexy::identifier_token_kind = UINT_LEAST16_MAX - 7, lexy::digits_token_kind = UINT_LEAST16_MAX - 8, lexy::_smallest_predefined_token_kind = digits_token_kind } |
Functions | |
| template<typename Production , typename WhitespaceProduction > | |
| auto | lexy::_production_whitespace () |
| template<typename EntryProduction > | |
| LEXY_CONSTEVAL std::size_t | lexy::max_recursion_depth () |
| template<typename Production > | |
| const LEXY_CONSTEVAL char * | lexy::production_name () |
| template<typename T > | |
| constexpr const char * | lexy::token_kind_name (const T &) noexcept |
| constexpr const char * | lexy::token_kind_name (predefined_token_kind kind) noexcept |
Variables | |
| template<typename To , typename... Args> | |
| constexpr auto | lexy::_is_convertible = false |
| template<typename To , typename Arg > | |
| constexpr auto | lexy::_is_convertible< To, Arg > = std::is_convertible_v<Arg, To> |
| template<> | |
| constexpr auto | lexy::_is_convertible< void > = true |
| template<typename Production > | |
| constexpr auto | lexy::_production_defines_whitespace = lexy::_detail::is_detected<_detect_whitespace, Production> |
| template<typename... T> | |
| constexpr bool | lexy::_require_branch_rule = (is_branch_rule<T> && ...) |
| template<typename T > | |
| constexpr bool | lexy::is_branch_rule = std::is_base_of_v<dsl::branch_base, T> |
| template<typename T > | |
| constexpr bool | lexy::is_char_class_rule = std::is_base_of_v<dsl::_char_class_base, T> |
| template<typename T > | |
| constexpr bool | lexy::is_literal_rule = std::is_base_of_v<dsl::_lit_base, T> |
| template<typename T > | |
| constexpr bool | lexy::is_literal_set_rule = std::is_base_of_v<dsl::_lset_base, T> |
| template<typename T > | |
| constexpr auto | lexy::is_operation = std::is_base_of_v<lexy::dsl::_operation_base, T> |
| template<typename Production > | |
| constexpr bool | lexy::is_production = _detail::is_detected<production_rule, Production> |
| template<typename T > | |
| constexpr bool | lexy::is_rule = std::is_base_of_v<dsl::rule_base, T> |
| template<typename T > | |
| constexpr auto | lexy::is_separator = std::is_base_of_v<lexy::dsl::_sep_base, T> |
| template<typename Production > | |
| constexpr bool | lexy::is_token_production = std::is_base_of_v<token_production, Production> |
| template<typename T > | |
| constexpr bool | lexy::is_token_rule = std::is_base_of_v<dsl::_token_base, T> |
| template<typename Production > | |
| constexpr bool | lexy::is_transparent_production = std::is_base_of_v<transparent_production, Production> |
| template<typename T > | |
| constexpr bool | lexy::is_unconditional_branch_rule = std::is_base_of_v<dsl::unconditional_branch_base, T> |
| template<typename Production , typename ParseState = void> | |
| constexpr bool | lexy::production_has_value_callback |
| template<typename TokenRule > | |
| constexpr auto | lexy::token_kind_of = lexy::unknown_token_kind |
| Specialize to define the token kind of a rule. More... | |
| template<typename TokenRule > | |
| constexpr auto | lexy::token_kind_of< const TokenRule > = token_kind_of<TokenRule> |
| #define LEXY_REQUIRE_BRANCH_RULE | ( | Rule, | |
| Name | |||
| ) |
Definition at line 73 of file grammar.hpp.