LLVM 17.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 | 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 |
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 2384 of file ItaniumDemangle.h.
using AbstractManglingParser< Derived, Alloc >::TemplateParamList = PODSmallVector<Node *, 8> |
Definition at line 2398 of file ItaniumDemangle.h.
|
inline |
Definition at line 2441 of file ItaniumDemangle.h.
|
inline |
Definition at line 2496 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2488 of file ItaniumDemangle.h.
References C, AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2480 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, AbstractManglingParser< Derived, Alloc >::Last, and StringView::size().
|
inline |
Definition at line 2444 of file ItaniumDemangle.h.
|
inline |
Definition at line 2498 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
|
inline |
Definition at line 2460 of file ItaniumDemangle.h.
References args, and AbstractManglingParser< Derived, Alloc >::ASTAllocator.
|
inline |
Definition at line 2464 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::ASTAllocator.
Referenced by AbstractManglingParser< Derived, Alloc >::popTrailingNodeArray().
|
inline |
Definition at line 2504 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::First, and AbstractManglingParser< Derived, Alloc >::Last.
Node * AbstractManglingParser< Derived, Alloc >::parse |
Top-level entry point into the parser.
Definition at line 5461 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseAbiTags | ( | Node * | N | ) |
Definition at line 3451 of file ItaniumDemangle.h.
References StringView::empty(), and N.
Node * AbstractManglingParser< Derived, Alloc >::parseArrayType |
Definition at line 3632 of file ItaniumDemangle.h.
StringView AbstractManglingParser< Alloc, Derived >::parseBareSourceName |
Definition at line 3491 of file ItaniumDemangle.h.
References Int.
Node * AbstractManglingParser< Derived, Alloc >::parseBaseUnresolvedName |
Definition at line 3329 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseBinaryExpr | ( | StringView | Kind, |
Node::Prec | Prec | ||
) |
Definition at line 4138 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseBracedExpr |
Definition at line 4362 of file ItaniumDemangle.h.
References Index.
bool AbstractManglingParser< Alloc, Derived >::parseCallOffset |
Definition at line 4843 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseClassEnumType |
Definition at line 3678 of file ItaniumDemangle.h.
References StringView::empty(), and Name.
Node * AbstractManglingParser< Derived, Alloc >::parseConversionExpr |
Definition at line 4204 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseCtorDtorName | ( | Node *& | SoFar, |
NameState * | State | ||
) |
Definition at line 3123 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion, and Node::getKind().
Qualifiers AbstractManglingParser< Alloc, Derived >::parseCVQualifiers |
Definition at line 4160 of file ItaniumDemangle.h.
References QualConst, QualNone, QualRestrict, and QualVolatile.
Node * AbstractManglingParser< Derived, Alloc >::parseDecltype |
Definition at line 3616 of file ItaniumDemangle.h.
References E.
Node * AbstractManglingParser< Derived, Alloc >::parseDestructorName |
Definition at line 3288 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseEncoding |
Definition at line 5020 of file ItaniumDemangle.h.
References Arg, PODSmallVector< T, N >::clear(), AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion, AbstractManglingParser< Derived, Alloc >::NameState::CVQualifiers, AbstractManglingParser< Derived, Alloc >::NameState::EndsWithTemplateArgs, Name, Names, AbstractManglingParser< Derived, Alloc >::OuterTemplateParams, AbstractManglingParser< Derived, Alloc >::NameState::ReferenceQualifier, and AbstractManglingParser< Derived, Alloc >::TemplateParams.
Node * AbstractManglingParser< Derived, Alloc >::parseExpr |
Parse the <expr> production.
Definition at line 4548 of file ItaniumDemangle.h.
References Arg, Callee, Cond, DEMANGLE_UNREACHABLE, E, FP, Index, LHS, Name, Names, Node::Postfix, RHS, NodeArray::size(), and Node::Unary.
Node * AbstractManglingParser< Derived, Alloc >::parseExprPrimary |
Definition at line 4242 of file ItaniumDemangle.h.
References N.
Node * AbstractManglingParser< Alloc, Derived >::parseFloatingLiteral |
Definition at line 5143 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseFoldExpr |
Definition at line 4409 of file ItaniumDemangle.h.
References std::swap().
Node * AbstractManglingParser< Derived, Alloc >::parseFunctionParam |
Definition at line 4177 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseFunctionType |
Definition at line 3509 of file ItaniumDemangle.h.
References E, FrefQualLValue, FrefQualNone, FrefQualRValue, and Names.
Node * AbstractManglingParser< Derived, Alloc >::parseIntegerLiteral | ( | StringView | Lit | ) |
Definition at line 4151 of file ItaniumDemangle.h.
References StringView::empty().
Node * AbstractManglingParser< Derived, Alloc >::parseLocalName | ( | NameState * | State | ) |
Definition at line 2706 of file ItaniumDemangle.h.
References N, and parse_discriminator().
bool AbstractManglingParser< Derived, Alloc >::parseModuleNameOpt | ( | ModuleName *& | Module | ) |
Definition at line 2830 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 2670 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 3180 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CVQualifiers, PODSmallVector< T, N >::empty(), AbstractManglingParser< Derived, Alloc >::NameState::EndsWithTemplateArgs, FrefQualLValue, FrefQualNone, FrefQualRValue, Node::getKind(), Module, PODSmallVector< T, N >::pop_back(), PODSmallVector< T, N >::push_back(), and AbstractManglingParser< Derived, Alloc >::NameState::ReferenceQualifier.
StringView AbstractManglingParser< Alloc, Derived >::parseNumber | ( | bool | AllowNegative = false | ) |
Definition at line 3466 of file ItaniumDemangle.h.
const AbstractManglingParser< Derived, Alloc >::OperatorInfo * AbstractManglingParser< Derived, Alloc >::parseOperatorEncoding |
Definition at line 3034 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseOperatorName | ( | NameState * | State | ) |
Definition at line 3060 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion.
Node * AbstractManglingParser< Derived, Alloc >::parsePointerToMemberConversionExpr | ( | Node::Prec | Prec | ) |
Definition at line 4462 of file ItaniumDemangle.h.
References Offset.
Node * AbstractManglingParser< Derived, Alloc >::parsePointerToMemberType |
Definition at line 3661 of file ItaniumDemangle.h.
bool AbstractManglingParser< Alloc, Derived >::parsePositiveInteger | ( | size_t * | Out | ) |
Definition at line 3479 of file ItaniumDemangle.h.
References consume().
Node * AbstractManglingParser< Derived, Alloc >::parsePrefixExpr | ( | StringView | Kind, |
Node::Prec | Prec | ||
) |
Definition at line 4129 of file ItaniumDemangle.h.
References E.
Node * AbstractManglingParser< Derived, Alloc >::parseQualifiedType |
Definition at line 3701 of file ItaniumDemangle.h.
References StringView::begin(), StringView::dropFront(), StringView::empty(), StringView::end(), QualNone, and StringView::startsWith().
bool AbstractManglingParser< Alloc, Derived >::parseSeqId | ( | size_t * | Out | ) |
Definition at line 5159 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSimpleId |
Definition at line 3272 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSourceName | ( | NameState * | State | ) |
Definition at line 2931 of file ItaniumDemangle.h.
References Name.
Node * AbstractManglingParser< Derived, Alloc >::parseSpecialName |
Definition at line 4876 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSubobjectExpr |
Definition at line 4481 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseSubstitution |
Definition at line 5192 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 5374 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateArgs | ( | bool | TagTemplates = false | ) |
Definition at line 5416 of file ItaniumDemangle.h.
References Arg, PODSmallVector< T, N >::back(), PODSmallVector< T, N >::clear(), Names, and PODSmallVector< T, N >::push_back().
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateParam |
Definition at line 5258 of file ItaniumDemangle.h.
References assert(), Node::getKind(), Index, PODSmallVector< T, N >::push_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseTemplateParamDecl |
Node * AbstractManglingParser< Derived, Alloc >::parseType |
Parse the <type> production.
Definition at line 3767 of file ItaniumDemangle.h.
References DEMANGLE_FALLTHROUGH, StringView::empty(), LValue, P, Ptr, PODSmallVector< T, N >::push_back(), RValue, Signed, and Size.
Node * AbstractManglingParser< Derived, Alloc >::parseUnnamedTypeName | ( | NameState * | State | ) |
Definition at line 2853 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::clear(), NodeArray::empty(), Names, StringView::npos, P, PODSmallVector< T, N >::pop_back(), and PODSmallVector< T, N >::size().
Node * AbstractManglingParser< Derived, Alloc >::parseUnqualifiedName | ( | NameState * | State, |
Node * | Scope, | ||
ModuleName * | Module | ||
) |
Definition at line 2783 of file ItaniumDemangle.h.
Node * AbstractManglingParser< Derived, Alloc >::parseUnresolvedName | ( | bool | Global | ) |
Parse the <unresolved-name> production.
Definition at line 3363 of file ItaniumDemangle.h.
References assert().
Node * AbstractManglingParser< Derived, Alloc >::parseUnresolvedType |
Definition at line 3303 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::push_back().
Node * AbstractManglingParser< Derived, Alloc >::parseUnscopedName | ( | NameState * | State, |
bool * | isSubstName | ||
) |
Definition at line 2743 of file ItaniumDemangle.h.
References Node::getKind(), and Module.
Node * AbstractManglingParser< Derived, Alloc >::parseVectorType |
Definition at line 3579 of file ItaniumDemangle.h.
|
inline |
Definition at line 2472 of file ItaniumDemangle.h.
References assert(), PODSmallVector< T, N >::begin(), PODSmallVector< T, N >::dropBack(), PODSmallVector< T, N >::end(), AbstractManglingParser< Derived, Alloc >::makeNodeArray(), AbstractManglingParser< Derived, Alloc >::Names, and PODSmallVector< T, N >::size().
|
inline |
Definition at line 2446 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 2559 of file ItaniumDemangle.h.
References PODSmallVector< T, N >::dropBack(), E, AbstractManglingParser< Derived, Alloc >::ForwardTemplateRefs, AbstractManglingParser< Derived, Alloc >::NameState::ForwardTemplateRefsBegin, I, Idx, PODSmallVector< T, N >::size(), and AbstractManglingParser< Derived, Alloc >::TemplateParams.
Alloc AbstractManglingParser< Derived, Alloc >::ASTAllocator |
Definition at line 2439 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 2385 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 2431 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::resolveForwardTemplateRefs().
const char* AbstractManglingParser< Derived, Alloc >::Last |
Definition at line 2386 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 2391 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::popTrailingNodeArray(), and AbstractManglingParser< Derived, Alloc >::reset().
|
static |
Definition at line 2646 of file ItaniumDemangle.h.
unsigned AbstractManglingParser< Derived, Alloc >::NumSyntheticTemplateParameters[3] = {} |
Definition at line 2437 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
|
static |
Definition at line 2645 of file ItaniumDemangle.h.
TemplateParamList AbstractManglingParser< Derived, Alloc >::OuterTemplateParams |
Definition at line 2420 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::parseEncoding().
size_t AbstractManglingParser< Derived, Alloc >::ParsingLambdaParamsAtLevel = (size_t)-1 |
Definition at line 2435 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
bool AbstractManglingParser< Derived, Alloc >::PermitForwardTemplateReferences = false |
Definition at line 2434 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<Node *, 32> AbstractManglingParser< Derived, Alloc >::Subs |
Definition at line 2396 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().
PODSmallVector<TemplateParamList *, 4> AbstractManglingParser< Derived, Alloc >::TemplateParams |
Definition at line 2427 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::parseEncoding(), AbstractManglingParser< Derived, Alloc >::reset(), AbstractManglingParser< Derived, Alloc >::resolveForwardTemplateRefs(), AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::ScopedTemplateParamList(), and AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::~ScopedTemplateParamList().
bool AbstractManglingParser< Derived, Alloc >::TryToParseTemplateArgs = true |
Definition at line 2433 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser< Derived, Alloc >::reset().