struct AbstractManglingParser
Declaration
template <typename Derived, typename Alloc>
struct AbstractManglingParser { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2368
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
- public static const llvm::itanium_demangle:: AbstractManglingParser::OperatorInfo[] Ops
- public static const size_t NumOps
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) const
- 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, Node::Prec Prec)
- 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 bool parseModuleNameOpt(llvm::itanium_demangle::ModuleName *& Module)
- 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::StringView parseNumber(bool AllowNegative = false)
- public const llvm::itanium_demangle::AbstractManglingParser::OperatorInfo * parseOperatorEncoding()
- public llvm::itanium_demangle::Node * parseOperatorName(llvm::itanium_demangle::AbstractManglingParser::NameState * State)
- public llvm::itanium_demangle::Node * parsePointerToMemberConversionExpr(Node::Prec Prec)
- public llvm::itanium_demangle::Node * parsePointerToMemberType()
- public bool parsePositiveInteger(size_t * Out)
- public llvm::itanium_demangle::Node * parsePrefixExpr(llvm::itanium_demangle::StringView Kind, Node::Prec Prec)
- 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 * parseSubobjectExpr()
- 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, llvm::itanium_demangle::Node * Scope, llvm::itanium_demangle::ModuleName * Module)
- public llvm::itanium_demangle::Node * parseUnresolvedName(bool Global)
- public llvm::itanium_demangle::Node * parseUnresolvedType()
- public llvm::itanium_demangle::Node * parseUnscopedName(llvm::itanium_demangle::AbstractManglingParser::NameState * State, bool * isSubstName)
- 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:2425
Parameters
- const char* First_
- const char* Last_
¶char consume()
char consume()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2480
¶bool consumeIf(
llvm::itanium_demangle::StringView S)
bool consumeIf(
llvm::itanium_demangle::StringView S)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2464
Parameters
¶bool consumeIf(char C)
bool consumeIf(char C)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2472
Parameters
- char C
¶Derived& getDerived()
Derived& getDerived()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2428
¶char look(unsigned int Lookahead = 0) const
char look(unsigned int Lookahead = 0) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2482
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:2444
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:2448
Templates
- It
Parameters
- It begin
- It end
¶size_t numLeft() const
size_t numLeft() const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2488
¶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:2641
¶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:2569
Parameters
¶llvm::itanium_demangle::Node* parseArrayType()
llvm::itanium_demangle::Node* parseArrayType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2521
¶llvm::itanium_demangle::StringView
parseBareSourceName()
llvm::itanium_demangle::StringView
parseBareSourceName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2493
¶llvm::itanium_demangle::Node*
parseBaseUnresolvedName()
llvm::itanium_demangle::Node*
parseBaseUnresolvedName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2636
¶llvm::itanium_demangle::Node* parseBinaryExpr(
llvm::itanium_demangle::StringView Kind,
Node::Prec Prec)
llvm::itanium_demangle::Node* parseBinaryExpr(
llvm::itanium_demangle::StringView Kind,
Node::Prec Prec)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2505
Parameters
- llvm::itanium_demangle::StringView Kind
- Node::Prec Prec
¶llvm::itanium_demangle::Node* parseBracedExpr()
llvm::itanium_demangle::Node* parseBracedExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2511
¶llvm::itanium_demangle::Qualifiers
parseCVQualifiers()
llvm::itanium_demangle::Qualifiers
parseCVQualifiers()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2491
¶bool parseCallOffset()
bool parseCallOffset()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2527
¶llvm::itanium_demangle::Node* parseClassEnumType()
llvm::itanium_demangle::Node* parseClassEnumType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2523
¶llvm::itanium_demangle::Node*
parseConversionExpr()
llvm::itanium_demangle::Node*
parseConversionExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2510
¶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:2567
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:2520
¶llvm::itanium_demangle::Node*
parseDestructorName()
llvm::itanium_demangle::Node*
parseDestructorName()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2638
¶llvm::itanium_demangle::Node* parseEncoding()
llvm::itanium_demangle::Node* parseEncoding()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2526
¶llvm::itanium_demangle::Node* parseExpr()
llvm::itanium_demangle::Node* parseExpr()
Description
Parse the <expr > production.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2503
¶llvm::itanium_demangle::Node* parseExprPrimary()
llvm::itanium_demangle::Node* parseExprPrimary()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2507
¶template <class Float>
llvm::itanium_demangle::Node*
parseFloatingLiteral()
template <class Float>
llvm::itanium_demangle::Node*
parseFloatingLiteral()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2508
Templates
- Float
¶llvm::itanium_demangle::Node* parseFoldExpr()
llvm::itanium_demangle::Node* parseFoldExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2512
¶llvm::itanium_demangle::Node* parseFunctionParam()
llvm::itanium_demangle::Node* parseFunctionParam()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2509
¶llvm::itanium_demangle::Node* parseFunctionType()
llvm::itanium_demangle::Node* parseFunctionType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2518
¶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:2506
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:2559
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶bool parseModuleNameOpt(
llvm::itanium_demangle::ModuleName*& Module)
bool parseModuleNameOpt(
llvm::itanium_demangle::ModuleName*& Module)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2561
Parameters
- llvm::itanium_demangle::ModuleName*& Module
¶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:2558
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:2566
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::StringView parseNumber(
bool AllowNegative = false)
llvm::itanium_demangle::StringView parseNumber(
bool AllowNegative = false)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2490
Parameters
- bool AllowNegative = false
¶const llvm::itanium_demangle::
AbstractManglingParser::OperatorInfo*
parseOperatorEncoding()
const llvm::itanium_demangle::
AbstractManglingParser::OperatorInfo*
parseOperatorEncoding()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2631
¶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:2560
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node*
parsePointerToMemberConversionExpr(
Node::Prec Prec)
llvm::itanium_demangle::Node*
parsePointerToMemberConversionExpr(
Node::Prec Prec)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2513
Parameters
- Node::Prec Prec
¶llvm::itanium_demangle::Node*
parsePointerToMemberType()
llvm::itanium_demangle::Node*
parsePointerToMemberType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2522
¶bool parsePositiveInteger(size_t* Out)
bool parsePositiveInteger(size_t* Out)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2492
Parameters
- size_t* Out
¶llvm::itanium_demangle::Node* parsePrefixExpr(
llvm::itanium_demangle::StringView Kind,
Node::Prec Prec)
llvm::itanium_demangle::Node* parsePrefixExpr(
llvm::itanium_demangle::StringView Kind,
Node::Prec Prec)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2504
Parameters
- llvm::itanium_demangle::StringView Kind
- Node::Prec Prec
¶llvm::itanium_demangle::Node* parseQualifiedType()
llvm::itanium_demangle::Node* parseQualifiedType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2524
¶bool parseSeqId(size_t* Out)
bool parseSeqId(size_t* Out)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2495
Parameters
- size_t* Out
¶llvm::itanium_demangle::Node* parseSimpleId()
llvm::itanium_demangle::Node* parseSimpleId()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2635
¶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:2564
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:2528
¶llvm::itanium_demangle::Node* parseSubobjectExpr()
llvm::itanium_demangle::Node* parseSubobjectExpr()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2514
¶llvm::itanium_demangle::Node* parseSubstitution()
llvm::itanium_demangle::Node* parseSubstitution()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2496
¶llvm::itanium_demangle::Node* parseTemplateArg()
llvm::itanium_demangle::Node* parseTemplateArg()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2500
¶llvm::itanium_demangle::Node* parseTemplateArgs(
bool TagTemplates = false)
llvm::itanium_demangle::Node* parseTemplateArgs(
bool TagTemplates = false)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2499
Parameters
- bool TagTemplates = false
¶llvm::itanium_demangle::Node* parseTemplateParam()
llvm::itanium_demangle::Node* parseTemplateParam()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2497
¶llvm::itanium_demangle::Node*
parseTemplateParamDecl()
llvm::itanium_demangle::Node*
parseTemplateParamDecl()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2498
¶llvm::itanium_demangle::Node* parseType()
llvm::itanium_demangle::Node* parseType()
Description
Parse the <type > production.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2517
¶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:2563
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
¶llvm::itanium_demangle::Node*
parseUnqualifiedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State,
llvm::itanium_demangle::Node* Scope,
llvm::itanium_demangle::ModuleName* Module)
llvm::itanium_demangle::Node*
parseUnqualifiedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State,
llvm::itanium_demangle::Node* Scope,
llvm::itanium_demangle::ModuleName* Module)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2562
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
- llvm::itanium_demangle::Node* Scope
- llvm::itanium_demangle::ModuleName* Module
¶llvm::itanium_demangle::Node* parseUnresolvedName(
bool Global)
llvm::itanium_demangle::Node* parseUnresolvedName(
bool Global)
Description
Parse the <unresolved -name> production.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2634
Parameters
- bool Global
¶llvm::itanium_demangle::Node*
parseUnresolvedType()
llvm::itanium_demangle::Node*
parseUnresolvedType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2637
¶llvm::itanium_demangle::Node* parseUnscopedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State,
bool* isSubstName)
llvm::itanium_demangle::Node* parseUnscopedName(
llvm::itanium_demangle::
AbstractManglingParser::NameState* State,
bool* isSubstName)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2565
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState* State
- bool* isSubstName
¶llvm::itanium_demangle::Node* parseVectorType()
llvm::itanium_demangle::Node* parseVectorType()
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2519
¶llvm::itanium_demangle::NodeArray
popTrailingNodeArray(size_t FromPosition)
llvm::itanium_demangle::NodeArray
popTrailingNodeArray(size_t FromPosition)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2456
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:2430
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:2543
Parameters
- llvm::itanium_demangle::AbstractManglingParser:: NameState& State