LLVM 20.0.0git
|
#include "llvm/Demangle/ItaniumDemangle.h"
Classes | |
struct | NameState |
Holds some extra information about a <name> that is being parsed. More... | |
struct | OperatorInfo |
class | SaveTemplateParams |
class | ScopedTemplateParamList |
Public Types | |
using | TemplateParamList = PODSmallVector< Node *, 8 > |
Public Attributes | |
const char * | First |
const char * | Last |
PODSmallVector< Node *, 32 > | Names |
PODSmallVector< Node *, 32 > | Subs |
TemplateParamList | OuterTemplateParams |
PODSmallVector< TemplateParamList *, 4 > | TemplateParams |
PODSmallVector< ForwardTemplateReference *, 4 > | ForwardTemplateRefs |
bool | TryToParseTemplateArgs = true |
bool | PermitForwardTemplateReferences = false |
bool | InConstraintExpr = false |
size_t | ParsingLambdaParamsAtLevel = (size_t)-1 |
unsigned | NumSyntheticTemplateParameters [3] = {} |
Alloc | ASTAllocator |
Static Public Attributes | |
static const OperatorInfo | Ops [] |
static const size_t | NumOps |
Definition at line 2607 of file ItaniumDemangle.h.
using AbstractManglingParser< Derived, Alloc >::TemplateParamList = PODSmallVector<Node *, 8> |
Definition at line 2623 of file ItaniumDemangle.h.
|
inline |
Definition at line 2687 of file ItaniumDemangle.h.
|
inline |
Definition at line 2742 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2734 of file ItaniumDemangle.h.
References C, AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2726 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, AbstractManglingParser< Derived, Alloc >::Last, and starts_with().
|
inline |
Definition at line 2690 of file ItaniumDemangle.h.
|
inline |
Definition at line 2764 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::look().
|
inline |
Definition at line 2744 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
Referenced by AbstractManglingParser< Derived, Alloc >::isTemplateParamDecl().
|
inline |
Definition at line 2706 of file ItaniumDemangle.h.
References args, and AbstractManglingParser< Derived, Alloc >::ASTAllocator.
|
inline |
Definition at line 2710 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::ASTAllocator.
Referenced by AbstractManglingParser< Derived, Alloc >::popTrailingNodeArray().
|
inline |
Definition at line 2750 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
Node * AbstractManglingParser< Derived, Alloc >::parse | ( | bool | ParseParams = true | ) |
Top-level entry point into the parser.
Definition at line 5907 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseAbiTags | ( | Node * | N | ) |
Definition at line 3743 of file ItaniumDemangle.h.
References N.
Node * AbstractManglingParser< Derived, Alloc >::parseArrayType |
Definition at line 3924 of file ItaniumDemangle.h.
std::string_view AbstractManglingParser< Alloc, Derived >::parseBareSourceName |
Definition at line 3783 of file ItaniumDemangle.h.
References Int.
Node * AbstractManglingParser< Derived, Alloc >::parseBaseUnresolvedName |
Definition at line 3621 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseBinaryExpr | ( | std::string_view | Kind, |
Node::Prec | Prec | ||
) |
Definition at line 4452 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseBracedExpr |
Definition at line 4676 of file ItaniumDemangle.h.
References Index.
bool AbstractManglingParser< Alloc, Derived >::parseCallOffset |
Definition at line 5228 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseClassEnumType |
Definition at line 3970 of file ItaniumDemangle.h.
References Name.
Node * AbstractManglingParser< Derived, Alloc >::parseConstraintExpr |
Definition at line 4818 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseConversionExpr |
Definition at line 4518 of file ItaniumDemangle.h.
References E, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseCtorDtorName | ( | Node *& | SoFar, |
NameState * | State | ||
) |
Definition at line 3405 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion, and Node::getKind().
Qualifiers AbstractManglingParser< Alloc, Derived >::parseCVQualifiers |
Definition at line 4474 of file ItaniumDemangle.h.
References QualConst, QualNone, QualRestrict, and QualVolatile.
Node * AbstractManglingParser< Derived, Alloc >::parseDecltype |
Definition at line 3908 of file ItaniumDemangle.h.
References E.
Node * AbstractManglingParser< Derived, Alloc >::parseDestructorName |
Definition at line 3580 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseEncoding | ( | bool | ParseParams = true | ) |
Definition at line 5406 of file ItaniumDemangle.h.
References consume(), AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion, AbstractManglingParser< Derived, Alloc >::NameState::CVQualifiers, AbstractManglingParser< Derived, Alloc >::NameState::EndsWithTemplateArgs, AbstractManglingParser< Derived, Alloc >::NameState::HasExplicitObjectParameter, Name, PODSmallVector< T, N >::push_back(), AbstractManglingParser< Derived, Alloc >::NameState::ReferenceQualifier, and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseExpr |
Parse the <expression> production.
Definition at line 4931 of file ItaniumDemangle.h.
References Cond, DEMANGLE_UNREACHABLE, E, FP, Index, LHS, Name, Node::Postfix, PODSmallVector< T, N >::push_back(), RHS, PODSmallVector< T, N >::size(), NodeArray::size(), Sym, and Node::Unary.
Node * AbstractManglingParser< Derived, Alloc >::parseExprPrimary |
Definition at line 4556 of file ItaniumDemangle.h.
References N.
Node * AbstractManglingParser< Alloc, Derived >::parseFloatingLiteral |
Definition at line 5537 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseFoldExpr |
Definition at line 4723 of file ItaniumDemangle.h.
References std::swap().
Node * AbstractManglingParser< Derived, Alloc >::parseFunctionParam |
Definition at line 4491 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseFunctionType |
Definition at line 3801 of file ItaniumDemangle.h.
References E, FrefQualLValue, FrefQualNone, FrefQualRValue, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseIntegerLiteral | ( | std::string_view | Lit | ) |
Definition at line 4464 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseLocalName | ( | NameState * | State | ) |
Definition at line 2961 of file ItaniumDemangle.h.
References N, and parse_discriminator().
bool AbstractManglingParser< Derived, Alloc >::parseModuleNameOpt | ( | ModuleName *& | Module | ) |
Definition at line 3093 of file ItaniumDemangle.h.
References Module, and PODSmallVector< T, N >::push_back().
Node * AbstractManglingParser< Derived, Alloc >::parseName | ( | NameState * | State = nullptr | ) |
Parse the <name> production>
Definition at line 2925 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::EndsWithTemplateArgs, and PODSmallVector< T, N >::push_back().
Node * AbstractManglingParser< Derived, Alloc >::parseNestedName | ( | NameState * | State | ) |
Definition at line 3462 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CVQualifiers, PODSmallVector< T, N >::empty(), AbstractManglingParser< Derived, Alloc >::NameState::EndsWithTemplateArgs, FrefQualLValue, FrefQualNone, FrefQualRValue, Node::getKind(), AbstractManglingParser< Derived, Alloc >::NameState::HasExplicitObjectParameter, Module, PODSmallVector< T, N >::pop_back(), PODSmallVector< T, N >::push_back(), and AbstractManglingParser< Derived, Alloc >::NameState::ReferenceQualifier.
std::string_view AbstractManglingParser< Alloc, Derived >::parseNumber | ( | bool | AllowNegative = false | ) |
Definition at line 3758 of file ItaniumDemangle.h.
const AbstractManglingParser< Derived, Alloc >::OperatorInfo * AbstractManglingParser< Derived, Alloc >::parseOperatorEncoding |
Definition at line 3316 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseOperatorName | ( | NameState * | State | ) |
Definition at line 3342 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion.
Node * AbstractManglingParser< Derived, Alloc >::parsePointerToMemberConversionExpr | ( | Node::Prec | Prec | ) |
Definition at line 4776 of file ItaniumDemangle.h.
References Offset.
Node * AbstractManglingParser< Derived, Alloc >::parsePointerToMemberType |
Definition at line 3953 of file ItaniumDemangle.h.
bool AbstractManglingParser< Alloc, Derived >::parsePositiveInteger | ( | size_t * | Out | ) |
Definition at line 3771 of file ItaniumDemangle.h.
References consume().
Node * AbstractManglingParser< Derived, Alloc >::parsePrefixExpr | ( | std::string_view | Kind, |
Node::Prec | Prec | ||
) |
Definition at line 4442 of file ItaniumDemangle.h.
References E.
Node * AbstractManglingParser< Derived, Alloc >::parseQualifiedType |
Definition at line 3993 of file ItaniumDemangle.h.
References QualNone, and starts_with().
Node * AbstractManglingParser< Derived, Alloc >::parseRequiresExpr |
Definition at line 4826 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::push_back(), PODSmallVector< T, N >::size(), and Type.
bool AbstractManglingParser< Alloc, Derived >::parseSeqId | ( | size_t * | Out | ) |
Definition at line 5553 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSimpleId |
Definition at line 3564 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSourceName | ( | NameState * | State | ) |
Definition at line 3213 of file ItaniumDemangle.h.
References Name, and starts_with().
Node * AbstractManglingParser< Derived, Alloc >::parseSpecialName |
Definition at line 5261 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSubobjectExpr |
Definition at line 4795 of file ItaniumDemangle.h.
References Offset, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseSubstitution |
Definition at line 5586 of file ItaniumDemangle.h.
References allocator, basic_string, PODSmallVector< T, N >::empty(), Index, iostream, istream, ostream, PODSmallVector< T, N >::push_back(), PODSmallVector< T, N >::size(), and string.
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateArg |
Definition at line 5799 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateArgs | ( | bool | TagTemplates = false | ) |
Definition at line 5853 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::clear(), Node::getKind(), PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateParam |
Definition at line 5652 of file ItaniumDemangle.h.
References DEMANGLE_ASSERT, Node::getKind(), Index, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateParamDecl | ( | TemplateParamList * | Params | ) |
Definition at line 5722 of file ItaniumDemangle.h.
References Index, N, Name, NonType, P, AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::params(), PODSmallVector< T, N >::push_back(), PODSmallVector< T, N >::size(), Template, and Type.
Node * AbstractManglingParser< Derived, Alloc >::parseType |
Parse the <type> production.
Definition at line 4060 of file ItaniumDemangle.h.
References DEMANGLE_FALLTHROUGH, LValue, P, Ptr, PODSmallVector< T, N >::push_back(), RValue, Signed, and Size.
Node * AbstractManglingParser< Derived, Alloc >::parseUnnamedTypeName | ( | NameState * | State | ) |
Definition at line 3117 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::clear(), NodeArray::empty(), P, AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::params(), PODSmallVector< T, N >::pop_back(), PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseUnqualifiedName | ( | NameState * | State, |
Node * | Scope, | ||
ModuleName * | Module | ||
) |
Definition at line 3042 of file ItaniumDemangle.h.
References Module, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseUnresolvedName | ( | bool | Global | ) |
Parse the <unresolved-name> production.
Definition at line 3655 of file ItaniumDemangle.h.
References DEMANGLE_ASSERT.
Node * AbstractManglingParser< Derived, Alloc >::parseUnresolvedType |
Definition at line 3595 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::push_back().
Node * AbstractManglingParser< Derived, Alloc >::parseUnscopedName | ( | NameState * | State, |
bool * | isSubstName | ||
) |
Definition at line 3002 of file ItaniumDemangle.h.
References Node::getKind(), and Module.
Node * AbstractManglingParser< Derived, Alloc >::parseVectorType |
Definition at line 3871 of file ItaniumDemangle.h.
|
inline |
Definition at line 2718 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::begin(), DEMANGLE_ASSERT, PODSmallVector< T, N >::end(), AbstractManglingParser< Derived, Alloc >::makeNodeArray(), AbstractManglingParser< Derived, Alloc >::Names, PODSmallVector< T, N >::shrinkToSize(), and PODSmallVector< T, N >::size().
|
inline |
Definition at line 2692 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::ASTAllocator, PODSmallVector< T, N >::clear(), AbstractManglingParser< Derived, Alloc >::First, I, AbstractManglingParser< Derived, Alloc >::Last, AbstractManglingParser< Derived, Alloc >::Names, AbstractManglingParser< Derived, Alloc >::NumSyntheticTemplateParameters, AbstractManglingParser< Derived, Alloc >::ParsingLambdaParamsAtLevel, AbstractManglingParser< Derived, Alloc >::PermitForwardTemplateReferences, AbstractManglingParser< Derived, Alloc >::Subs, AbstractManglingParser< Derived, Alloc >::TemplateParams, and AbstractManglingParser< Derived, Alloc >::TryToParseTemplateArgs.
|
inline |
Definition at line 2813 of file ItaniumDemangle.h.
References E, AbstractManglingParser< Derived, Alloc >::ForwardTemplateRefs, AbstractManglingParser< Derived, Alloc >::NameState::ForwardTemplateRefsBegin, I, Idx, PODSmallVector< T, N >::shrinkToSize(), PODSmallVector< T, N >::size(), and AbstractManglingParser< Derived, Alloc >::TemplateParams.
Alloc AbstractManglingParser< Derived, Alloc >::ASTAllocator |
Definition at line 2685 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::make(), AbstractManglingParser< Derived, Alloc >::makeNodeArray(), and AbstractManglingParser< Derived, Alloc >::reset().
const char* AbstractManglingParser< Derived, Alloc >::First |
Definition at line 2608 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::consume(), AbstractManglingParser< Derived, Alloc >::consumeIf(), AbstractManglingParser< Derived, Alloc >::look(), AbstractManglingParser< Derived, Alloc >::numLeft(), and AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<ForwardTemplateReference *, 4> AbstractManglingParser< Derived, Alloc >::ForwardTemplateRefs |
Definition at line 2676 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::resolveForwardTemplateRefs().
bool AbstractManglingParser< Derived, Alloc >::InConstraintExpr = false |
Definition at line 2680 of file ItaniumDemangle.h.
const char* AbstractManglingParser< Derived, Alloc >::Last |
Definition at line 2609 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::consume(), AbstractManglingParser< Derived, Alloc >::consumeIf(), AbstractManglingParser< Derived, Alloc >::look(), AbstractManglingParser< Derived, Alloc >::numLeft(), and AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<Node *, 32> AbstractManglingParser< Derived, Alloc >::Names |
Definition at line 2614 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::popTrailingNodeArray(), and AbstractManglingParser< Derived, Alloc >::reset().
|
static |
Definition at line 2901 of file ItaniumDemangle.h.
unsigned AbstractManglingParser< Derived, Alloc >::NumSyntheticTemplateParameters[3] = {} |
Definition at line 2683 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
|
static |
Definition at line 2900 of file ItaniumDemangle.h.
TemplateParamList AbstractManglingParser< Derived, Alloc >::OuterTemplateParams |
Definition at line 2647 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::SaveTemplateParams::SaveTemplateParams(), and AbstractManglingParser< Derived, Alloc >::SaveTemplateParams::~SaveTemplateParams().
size_t AbstractManglingParser< Derived, Alloc >::ParsingLambdaParamsAtLevel = (size_t)-1 |
Definition at line 2681 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
bool AbstractManglingParser< Derived, Alloc >::PermitForwardTemplateReferences = false |
Definition at line 2679 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<Node *, 32> AbstractManglingParser< Derived, Alloc >::Subs |
Definition at line 2619 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<TemplateParamList *, 4> AbstractManglingParser< Derived, Alloc >::TemplateParams |
Definition at line 2654 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset(), AbstractManglingParser< Derived, Alloc >::resolveForwardTemplateRefs(), AbstractManglingParser< Derived, Alloc >::SaveTemplateParams::SaveTemplateParams(), AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::ScopedTemplateParamList(), AbstractManglingParser< Derived, Alloc >::SaveTemplateParams::~SaveTemplateParams(), and AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::~ScopedTemplateParamList().
bool AbstractManglingParser< Derived, Alloc >::TryToParseTemplateArgs = true |
Definition at line 2678 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().