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 | HasIncompleteTemplateParameterTracking = 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 2728 of file ItaniumDemangle.h.
using AbstractManglingParser< Derived, Alloc >::TemplateParamList = PODSmallVector<Node *, 8> |
Definition at line 2744 of file ItaniumDemangle.h.
|
inline |
Definition at line 2808 of file ItaniumDemangle.h.
|
inline |
Definition at line 2863 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2855 of file ItaniumDemangle.h.
References C, AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2847 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, AbstractManglingParser< Derived, Alloc >::Last, and starts_with().
|
inline |
Definition at line 2811 of file ItaniumDemangle.h.
|
inline |
Definition at line 2885 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::look().
|
inline |
Definition at line 2865 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
Referenced by AbstractManglingParser< Derived, Alloc >::isTemplateParamDecl().
|
inline |
Definition at line 2827 of file ItaniumDemangle.h.
References args, and AbstractManglingParser< Derived, Alloc >::ASTAllocator.
|
inline |
Definition at line 2831 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::ASTAllocator.
Referenced by AbstractManglingParser< Derived, Alloc >::popTrailingNodeArray().
|
inline |
Definition at line 2871 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 6135 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseAbiTags | ( | Node * | N | ) |
Definition at line 3867 of file ItaniumDemangle.h.
References N.
Node * AbstractManglingParser< Derived, Alloc >::parseArrayType |
Definition at line 4048 of file ItaniumDemangle.h.
std::string_view AbstractManglingParser< Alloc, Derived >::parseBareSourceName |
Definition at line 3907 of file ItaniumDemangle.h.
References Int.
Node * AbstractManglingParser< Derived, Alloc >::parseBaseUnresolvedName |
Definition at line 3745 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseBinaryExpr | ( | std::string_view | Kind, |
Node::Prec | Prec | ||
) |
Definition at line 4672 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseBracedExpr |
Definition at line 4896 of file ItaniumDemangle.h.
References Index.
bool AbstractManglingParser< Alloc, Derived >::parseCallOffset |
Definition at line 5450 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseClassEnumType |
Definition at line 4094 of file ItaniumDemangle.h.
References Name.
Node * AbstractManglingParser< Derived, Alloc >::parseConstraintExpr |
Definition at line 5038 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseConversionExpr |
Definition at line 4738 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 3529 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion, and Node::getKind().
Qualifiers AbstractManglingParser< Alloc, Derived >::parseCVQualifiers |
Definition at line 4694 of file ItaniumDemangle.h.
References QualConst, QualNone, QualRestrict, and QualVolatile.
Node * AbstractManglingParser< Derived, Alloc >::parseDecltype |
Definition at line 4032 of file ItaniumDemangle.h.
References E.
Node * AbstractManglingParser< Derived, Alloc >::parseDestructorName |
Definition at line 3704 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseEncoding | ( | bool | ParseParams = true | ) |
Definition at line 5628 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 5153 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 4776 of file ItaniumDemangle.h.
References N.
Node * AbstractManglingParser< Alloc, Derived >::parseFloatingLiteral |
Definition at line 5759 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseFoldExpr |
Definition at line 4943 of file ItaniumDemangle.h.
References std::swap().
Node * AbstractManglingParser< Derived, Alloc >::parseFunctionParam |
Definition at line 4711 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseFunctionType |
Definition at line 3925 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 4684 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseLocalName | ( | NameState * | State | ) |
Definition at line 3082 of file ItaniumDemangle.h.
References N, and parse_discriminator().
bool AbstractManglingParser< Derived, Alloc >::parseModuleNameOpt | ( | ModuleName *& | Module | ) |
Definition at line 3214 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 3046 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 3586 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 3882 of file ItaniumDemangle.h.
const AbstractManglingParser< Derived, Alloc >::OperatorInfo * AbstractManglingParser< Derived, Alloc >::parseOperatorEncoding |
Definition at line 3440 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseOperatorName | ( | NameState * | State | ) |
Definition at line 3466 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion.
Node * AbstractManglingParser< Derived, Alloc >::parsePointerToMemberConversionExpr | ( | Node::Prec | Prec | ) |
Definition at line 4996 of file ItaniumDemangle.h.
References Offset.
Node * AbstractManglingParser< Derived, Alloc >::parsePointerToMemberType |
Definition at line 4077 of file ItaniumDemangle.h.
bool AbstractManglingParser< Alloc, Derived >::parsePositiveInteger | ( | size_t * | Out | ) |
Definition at line 3895 of file ItaniumDemangle.h.
References consume().
Node * AbstractManglingParser< Derived, Alloc >::parsePrefixExpr | ( | std::string_view | Kind, |
Node::Prec | Prec | ||
) |
Definition at line 4662 of file ItaniumDemangle.h.
References E.
Node * AbstractManglingParser< Derived, Alloc >::parseQualifiedType |
Definition at line 4117 of file ItaniumDemangle.h.
References QualNone, and starts_with().
Node * AbstractManglingParser< Derived, Alloc >::parseRequiresExpr |
Definition at line 5047 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 5775 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSimpleId |
Definition at line 3688 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSourceName | ( | NameState * | State | ) |
Definition at line 3334 of file ItaniumDemangle.h.
References Name, and starts_with().
Node * AbstractManglingParser< Derived, Alloc >::parseSpecialName |
Definition at line 5483 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSubobjectExpr |
Definition at line 5015 of file ItaniumDemangle.h.
References Offset, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseSubstitution |
Definition at line 5808 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 6027 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 6081 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 5874 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 5944 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 4184 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 3238 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 3163 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 3779 of file ItaniumDemangle.h.
References DEMANGLE_ASSERT.
Node * AbstractManglingParser< Derived, Alloc >::parseUnresolvedType |
Definition at line 3719 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::push_back().
Node * AbstractManglingParser< Derived, Alloc >::parseUnscopedName | ( | NameState * | State, |
bool * | isSubstName | ||
) |
Definition at line 3123 of file ItaniumDemangle.h.
References Node::getKind(), and Module.
Node * AbstractManglingParser< Derived, Alloc >::parseVectorType |
Definition at line 3995 of file ItaniumDemangle.h.
|
inline |
Definition at line 2839 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 2813 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 2934 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 2806 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 2729 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 2797 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::resolveForwardTemplateRefs().
bool AbstractManglingParser< Derived, Alloc >::HasIncompleteTemplateParameterTracking = false |
Definition at line 2801 of file ItaniumDemangle.h.
const char* AbstractManglingParser< Derived, Alloc >::Last |
Definition at line 2730 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 2735 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::popTrailingNodeArray(), and AbstractManglingParser< Derived, Alloc >::reset().
|
static |
Definition at line 3022 of file ItaniumDemangle.h.
unsigned AbstractManglingParser< Derived, Alloc >::NumSyntheticTemplateParameters[3] = {} |
Definition at line 2804 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
|
static |
Definition at line 3021 of file ItaniumDemangle.h.
TemplateParamList AbstractManglingParser< Derived, Alloc >::OuterTemplateParams |
Definition at line 2768 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 2802 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
bool AbstractManglingParser< Derived, Alloc >::PermitForwardTemplateReferences = false |
Definition at line 2800 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<Node *, 32> AbstractManglingParser< Derived, Alloc >::Subs |
Definition at line 2740 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<TemplateParamList *, 4> AbstractManglingParser< Derived, Alloc >::TemplateParams |
Definition at line 2775 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 2799 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().