mimic++ v10.0.1
Loading...
Searching...
No Matches
Parser.hpp File Reference
#include "mimic++/config/Config.hpp"
#include "mimic++/printing/type/Lexer.hpp"
#include "mimic++/printing/type/ParserState.hpp"
#include "mimic++/utilities/Algorithm.hpp"
#include "mimic++/utilities/C++23Backports.hpp"
#include "mimic++/utilities/PassKey.hpp"
#include <algorithm>
#include <optional>
#include <span>
#include <utility>
#include <variant>
Include dependency graph for Parser.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mimicpp::printing::type::parsing::TokenStream
class  mimicpp::printing::type::parsing::Transaction
class  mimicpp::printing::type::parsing::StateGuard< State >

Namespaces

namespace  mimicpp
namespace  mimicpp::printing
namespace  mimicpp::printing::type
namespace  mimicpp::printing::type::parsing

Functions

template<std::equality_comparable Key, typename Value, std::size_t length>
constexpr auto mimicpp::printing::type::parsing::make_map (std::pair< Key, Value > const (&mappings)[length])
template<typename LexerTokenClass>
constexpr LexerTokenClass const * mimicpp::printing::type::parsing::peek_if (TokenStream const &stream) noexcept
template<std::equality_comparable LexerTokenClass>
constexpr std::optional< LexerTokenClass > mimicpp::printing::type::parsing::expect (TokenStream &stream, LexerTokenClass const &expected)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::FunctionDeclarator > mimicpp::printing::type::parsing::parse_parameters_and_qualifiers (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::TypeId > mimicpp::printing::type::parsing::parse_type_specifier_seq (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::PtrOperator > mimicpp::printing::type::parsing::parse_ptr_operator (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::TypeId > mimicpp::printing::type::parsing::parse_type_id (TokenStream &stream)
constexpr std::optional< state::ClassKey > mimicpp::printing::type::parsing::parse_class_key (TokenStream &stream)
constexpr std::optional< state::EnumKey > mimicpp::printing::type::parsing::parse_enum_key (TokenStream &stream)
constexpr std::optional< state::TypeKey > mimicpp::printing::type::parsing::parse_type_key (TokenStream &stream)
constexpr std::optional< state::RefQualifier > mimicpp::printing::type::parsing::parse_ref_qualifier (TokenStream &stream)
constexpr std::optional< state::ConstantExpression > mimicpp::printing::type::parsing::parse_constant_expression (TokenStream &stream)
constexpr std::optional< state::Identifier > mimicpp::printing::type::parsing::parse_synthetic_id (TokenStream &stream)
constexpr std::optional< state::Identifier > mimicpp::printing::type::parsing::parse_identifier (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::TemplateArgument > mimicpp::printing::type::parsing::parse_template_argument (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::TemplateArgumentList > mimicpp::printing::type::parsing::parse_template_argument_list (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::TemplateArgumentList > mimicpp::printing::type::parsing::parse_template_clause (TokenStream &stream)
constexpr std::optional< state::CVQualifier > mimicpp::printing::type::parsing::parse_cv_qualifier (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::CVQualifierSeq > mimicpp::printing::type::parsing::parse_cv_qualifier_seq (TokenStream &stream)
template<bool requireOperatorKeyword = true>
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::OperatorFunctionId > mimicpp::printing::type::parsing::parse_operator_function_id (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::ConversionFunctionId > mimicpp::printing::type::parsing::parse_conversion_function_id (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::LambdaFunctionId > mimicpp::printing::type::parsing::parse_lambda_function_id (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::DestructorFunctionId > mimicpp::printing::type::parsing::parse_destructor_function_id (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::UnqualifiedId > mimicpp::printing::type::parsing::parse_unqualified_id (TokenStream &stream)
template<bool isFirst>
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::UnqualifiedId > mimicpp::printing::type::parsing::parse_nested_id (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::ScopeSequence > mimicpp::printing::type::parsing::parse_nested_name_specifier (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::QualifiedId > mimicpp::printing::type::parsing::parse_qualified_id (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::CallConvention > mimicpp::printing::type::parsing::parse_call_convention (TokenStream &stream)
constexpr std::optional< state::ArrayDeclarator > mimicpp::printing::type::parsing::parse_array_declarator (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::TypeId > mimicpp::printing::type::parsing::parse_parameter_declaration (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< std::vector< state::TypeId > > mimicpp::printing::type::parsing::parse_parameter_declaration_clause (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES void mimicpp::printing::type::parsing::ignore_function_attribute (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::AbstractDeclarator > mimicpp::printing::type::parsing::parse_abstract_declarator (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< state::FunctionId > mimicpp::printing::type::parsing::parse_function (TokenStream &stream)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< parsing::state::TypeId > mimicpp::printing::type::parse_type (std::string_view const text)
MIMICPP_DETAIL_CONSTEXPR_PRETTY_TYPES std::optional< parsing::state::FunctionId > mimicpp::printing::type::parse_function (std::string_view const text)