struct AbstractManglingParser
Declaration
template <typename Derived, typename Alloc>
struct AbstractManglingParser { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2290
Templates
- Derived
- Alloc
Member Variables
- public const char* First
- public const char* Last
- public PODSmallVector<llvm::itanium_demangle::Node*, 32> Names
- public PODSmallVector<llvm::itanium_demangle::Node*, 32> Subs
- public llvm::itanium_demangle::AbstractManglingParser:: TemplateParamList OuterTemplateParams
- public PODSmallVector<llvm::itanium_demangle:: AbstractManglingParser:: TemplateParamList*, 4> TemplateParams
- public PODSmallVector<llvm::itanium_demangle:: ForwardTemplateReference*, 4> ForwardTemplateRefs
- public bool TryToParseTemplateArgs = true
- public bool PermitForwardTemplateReferences = false
- public size_t ParsingLambdaParamsAtLevel = (unsigned long)-1
- public unsigned int[3] NumSyntheticTemplateParameters = {}
- public Alloc ASTAllocator
Method Overview
- public AbstractManglingParser<Derived, Alloc>(const char * First_, const char * Last_)
- public char consume()
- public bool consumeIf(llvm::itanium_demangle::StringView S)
- public bool consumeIf(char C)
- public Derived & getDerived()
- public char look(unsigned int Lookahead = 0)
- public template <class T, class... Args>llvm::itanium_demangle::Node * make(Args &&... args)
- public template <class It>llvm::itanium_demangle::NodeArray makeNodeArray(It begin, It end)
- public size_t numLeft() const
- public llvm::itanium_demangle::Node * parse()
- public llvm::itanium_demangle::Node * parseAbiTags(llvm::itanium_demangle::Node * N)
- public llvm::itanium_demangle::Node * parseArrayType()
- public llvm::itanium_demangle::StringView parseBareSourceName()
- public llvm::itanium_demangle::Node * parseBaseUnresolvedName()
- public llvm::itanium_demangle::Node * parseBinaryExpr(llvm::itanium_demangle::StringView Kind)
- public llvm::itanium_demangle::Node * parseBracedExpr()
- public llvm::itanium_demangle::Qualifiers parseCVQualifiers()
- public bool parseCallOffset()
- public llvm::itanium_demangle::Node * parseClassEnumType()
- public llvm::itanium_demangle::Node * parseConversionExpr()
- public llvm::itanium_demangle::Node * parseCtorDtorName(llvm::itanium_demangle::Node *& SoFar, llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseDecltype()
- public llvm::itanium_demangle::Node * parseDestructorName()
- public llvm::itanium_demangle::Node * parseEncoding()
- public llvm::itanium_demangle::Node * parseExpr()
- public llvm::itanium_demangle::Node * parseExprPrimary()
- public template <class Float>llvm::itanium_demangle::Node * parseFloatingLiteral()
- public llvm::itanium_demangle::Node * parseFoldExpr()
- public llvm::itanium_demangle::Node * parseFunctionParam()
- public llvm::itanium_demangle::Node * parseFunctionType()
- public llvm::itanium_demangle::Node * parseIntegerLiteral(llvm::itanium_demangle::StringView Lit)
- public llvm::itanium_demangle::Node * parseLocalName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseName(llvm::itanium_demangle::AbstractManglingParser::NameState * State = nullptr)
- public llvm::itanium_demangle::Node * parseNestedName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseNewExpr()
- public llvm::itanium_demangle::StringView parseNumber(bool AllowNegative = false)
- public llvm::itanium_demangle::Node * parseOperatorName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parsePointerToMemberType()
- public bool parsePositiveInteger(size_t * Out)
- public llvm::itanium_demangle::Node * parsePrefixExpr(llvm::itanium_demangle::StringView Kind)
- public llvm::itanium_demangle::Node * parseQualifiedType()
- public bool parseSeqId(size_t * Out)
- public llvm::itanium_demangle::Node * parseSimpleId()
- public llvm::itanium_demangle::Node * parseSourceName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseSpecialName()
- public llvm::itanium_demangle::Node * parseSubstitution()
- public llvm::itanium_demangle::Node * parseTemplateArg()
- public llvm::itanium_demangle::Node * parseTemplateArgs(bool TagTemplates = false)
- public llvm::itanium_demangle::Node * parseTemplateParam()
- public llvm::itanium_demangle::Node * parseTemplateParamDecl()
- public llvm::itanium_demangle::Node * parseType()
- public llvm::itanium_demangle::Node * parseUnnamedTypeName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseUnqualifiedName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseUnresolvedName()
- public llvm::itanium_demangle::Node * parseUnresolvedType()
- public llvm::itanium_demangle::Node * parseUnscopedName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parseVectorType()
- public llvm::itanium_demangle::NodeArray popTrailingNodeArray(size_t FromPosition)
- public void reset(const char * First_, const char * Last_)
- public bool resolveForwardTemplateRefs(llvm::itanium_demangle::AbstractManglingParser::NameState & State)
Methods
¶AbstractManglingParser<Derived, Alloc>(
const char* First_,
const char* Last_)
AbstractManglingParser<Derived, Alloc>(
const char* First_,
const char* Last_)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2347
Parameters
- const char* First_
- const char* Last_
¶char consume()
char consume()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2402
¶bool consumeIf(
llvm::itanium_demangle::StringView S)
bool consumeIf(
llvm::itanium_demangle::StringView S)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2386
Parameters
¶bool consumeIf(char C)
bool consumeIf(char C)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2394
Parameters
- char C
¶Derived& getDerived()
Derived& getDerived()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2350
¶char look(unsigned int Lookahead = 0)
char look(unsigned int Lookahead = 0)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2404
Parameters
- unsigned int Lookahead = 0
¶template <class T, class... Args>
llvm::itanium_demangle::Node* make(Args&&... args)
template <class T, class... Args>
llvm::itanium_demangle::Node* make(Args&&... args)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2366
Templates
- T
- Args
Parameters
- Args&&... args
¶template <class It>
llvm::itanium_demangle::NodeArray makeNodeArray(
It begin,
It end)
template <class It>
llvm::itanium_demangle::NodeArray makeNodeArray(
It begin,
It end)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2370
Templates
- It
Parameters
- It begin
- It end
¶size_t numLeft() const
size_t numLeft() const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2410
¶llvm::itanium_demangle::Node* parse()
llvm::itanium_demangle::Node* parse()
Description
Top-level entry point into the parser.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2499
¶llvm::itanium_demangle::Node* parseAbiTags(
llvm::itanium_demangle::Node* N)
llvm::itanium_demangle::Node* parseAbiTags(
llvm::itanium_demangle::Node* N)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2489
Parameters
¶llvm::itanium_demangle::Node* parseArrayType()
llvm::itanium_demangle::Node* parseArrayType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2442
¶llvm::itanium_demangle::StringView
parseBareSourceName()
llvm::itanium_demangle::StringView
parseBareSourceName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2415
¶llvm::itanium_demangle::Node*
parseBaseUnresolvedName()
llvm::itanium_demangle::Node*
parseBaseUnresolvedName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2494
¶llvm::itanium_demangle::Node* parseBinaryExpr(
llvm::itanium_demangle::StringView Kind)
llvm::itanium_demangle::Node* parseBinaryExpr(
llvm::itanium_demangle::StringView Kind)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2427
Parameters
¶llvm::itanium_demangle::Node* parseBracedExpr()
llvm::itanium_demangle::Node* parseBracedExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2434
¶llvm::itanium_demangle::Qualifiers
parseCVQualifiers()
llvm::itanium_demangle::Qualifiers
parseCVQualifiers()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2413
¶bool parseCallOffset()
bool parseCallOffset()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2448
¶llvm::itanium_demangle::Node* parseClassEnumType()
llvm::itanium_demangle::Node* parseClassEnumType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2444
¶llvm::itanium_demangle::Node*
parseConversionExpr()
llvm::itanium_demangle::Node*
parseConversionExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2433
¶llvm::itanium_demangle::Node* parseCtorDtorName(
llvm::itanium_demangle::Node*& SoFar,
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node* parseCtorDtorName(
llvm::itanium_demangle::Node*& SoFar,
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2487
Parameters
- llvm::itanium_demangle::Node*& SoFar
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node* parseDecltype()
llvm::itanium_demangle::Node* parseDecltype()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2441
¶llvm::itanium_demangle::Node*
parseDestructorName()
llvm::itanium_demangle::Node*
parseDestructorName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2496
¶llvm::itanium_demangle::Node* parseEncoding()
llvm::itanium_demangle::Node* parseEncoding()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2447
¶llvm::itanium_demangle::Node* parseExpr()
llvm::itanium_demangle::Node* parseExpr()
Description
Parse the <expr > production.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2425
¶llvm::itanium_demangle::Node* parseExprPrimary()
llvm::itanium_demangle::Node* parseExprPrimary()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2429
¶template <class Float>
llvm::itanium_demangle::Node*
parseFloatingLiteral()
template <class Float>
llvm::itanium_demangle::Node*
parseFloatingLiteral()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2430
Templates
- Float
¶llvm::itanium_demangle::Node* parseFoldExpr()
llvm::itanium_demangle::Node* parseFoldExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2435
¶llvm::itanium_demangle::Node* parseFunctionParam()
llvm::itanium_demangle::Node* parseFunctionParam()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2431
¶llvm::itanium_demangle::Node* parseFunctionType()
llvm::itanium_demangle::Node* parseFunctionType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2439
¶llvm::itanium_demangle::Node* parseIntegerLiteral(
llvm::itanium_demangle::StringView Lit)
llvm::itanium_demangle::Node* parseIntegerLiteral(
llvm::itanium_demangle::StringView Lit)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2428
Parameters
¶llvm::itanium_demangle::Node* parseLocalName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node* parseLocalName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2480
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node* parseName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State =
nullptr)
llvm::itanium_demangle::Node* parseName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State =
nullptr)
Description
Parse the <name > production>
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2479
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State = nullptr
¶llvm::itanium_demangle::Node* parseNestedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node* parseNestedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2486
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node* parseNewExpr()
llvm::itanium_demangle::Node* parseNewExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2432
¶llvm::itanium_demangle::StringView parseNumber(
bool AllowNegative = false)
llvm::itanium_demangle::StringView parseNumber(
bool AllowNegative = false)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2412
Parameters
- bool AllowNegative = false
¶llvm::itanium_demangle::Node* parseOperatorName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node* parseOperatorName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2481
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node*
parsePointerToMemberType()
llvm::itanium_demangle::Node*
parsePointerToMemberType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2443
¶bool parsePositiveInteger(size_t* Out)
bool parsePositiveInteger(size_t* Out)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2414
Parameters
- size_t* Out
¶llvm::itanium_demangle::Node* parsePrefixExpr(
llvm::itanium_demangle::StringView Kind)
llvm::itanium_demangle::Node* parsePrefixExpr(
llvm::itanium_demangle::StringView Kind)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2426
Parameters
¶llvm::itanium_demangle::Node* parseQualifiedType()
llvm::itanium_demangle::Node* parseQualifiedType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2445
¶bool parseSeqId(size_t* Out)
bool parseSeqId(size_t* Out)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2417
Parameters
- size_t* Out
¶llvm::itanium_demangle::Node* parseSimpleId()
llvm::itanium_demangle::Node* parseSimpleId()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2493
¶llvm::itanium_demangle::Node* parseSourceName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node* parseSourceName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2484
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node* parseSpecialName()
llvm::itanium_demangle::Node* parseSpecialName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2449
¶llvm::itanium_demangle::Node* parseSubstitution()
llvm::itanium_demangle::Node* parseSubstitution()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2418
¶llvm::itanium_demangle::Node* parseTemplateArg()
llvm::itanium_demangle::Node* parseTemplateArg()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2422
¶llvm::itanium_demangle::Node* parseTemplateArgs(
bool TagTemplates = false)
llvm::itanium_demangle::Node* parseTemplateArgs(
bool TagTemplates = false)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2421
Parameters
- bool TagTemplates = false
¶llvm::itanium_demangle::Node* parseTemplateParam()
llvm::itanium_demangle::Node* parseTemplateParam()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2419
¶llvm::itanium_demangle::Node*
parseTemplateParamDecl()
llvm::itanium_demangle::Node*
parseTemplateParamDecl()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2420
¶llvm::itanium_demangle::Node* parseType()
llvm::itanium_demangle::Node* parseType()
Description
Parse the <type > production.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2438
¶llvm::itanium_demangle::Node*
parseUnnamedTypeName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node*
parseUnnamedTypeName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2483
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node*
parseUnqualifiedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node*
parseUnqualifiedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2482
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node*
parseUnresolvedName()
llvm::itanium_demangle::Node*
parseUnresolvedName()
Description
Parse the <unresolved -name> production.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2492
¶llvm::itanium_demangle::Node*
parseUnresolvedType()
llvm::itanium_demangle::Node*
parseUnresolvedType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2495
¶llvm::itanium_demangle::Node* parseUnscopedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
llvm::itanium_demangle::Node* parseUnscopedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2485
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node* parseVectorType()
llvm::itanium_demangle::Node* parseVectorType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2440
¶llvm::itanium_demangle::NodeArray
popTrailingNodeArray(size_t FromPosition)
llvm::itanium_demangle::NodeArray
popTrailingNodeArray(size_t FromPosition)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2378
Parameters
- size_t FromPosition
¶void reset(const char* First_, const char* Last_)
void reset(const char* First_, const char* Last_)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2352
Parameters
- const char* First_
- const char* Last_
¶bool resolveForwardTemplateRefs(
llvm::itanium_demangle::
AbstractManglingParser::NameState& State)
bool resolveForwardTemplateRefs(
llvm::itanium_demangle::
AbstractManglingParser::NameState& State)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2464
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState& State