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

Methods

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()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2480

bool consumeIf(
    llvm::itanium_demangle::StringView S)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2464

Parameters

llvm::itanium_demangle::StringView S

bool consumeIf(char C)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2472

Parameters

char C

Derived& getDerived()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2428

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)

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2448

Templates

It

Parameters

It begin
It end

size_t numLeft() const

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2488

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2569

Parameters

llvm::itanium_demangle::Node* N

llvm::itanium_demangle::Node* parseArrayType()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2521

llvm::itanium_demangle::StringView
parseBareSourceName()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2493

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2505

Parameters

llvm::itanium_demangle::StringView Kind
Node::Prec Prec

llvm::itanium_demangle::Node* parseBracedExpr()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2511

llvm::itanium_demangle::Qualifiers
parseCVQualifiers()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2491

bool parseCallOffset()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2527

llvm::itanium_demangle::Node* parseClassEnumType()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2523

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)

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()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2520

llvm::itanium_demangle::Node*
parseDestructorName()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2638

llvm::itanium_demangle::Node* parseEncoding()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2526

llvm::itanium_demangle::Node* parseExpr()

Description

Parse the <expr > production.

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2503

llvm::itanium_demangle::Node* parseExprPrimary()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2507

template <class Float>
llvm::itanium_demangle::Node*
parseFloatingLiteral()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2508

Templates

Float

llvm::itanium_demangle::Node* parseFoldExpr()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2512

llvm::itanium_demangle::Node* parseFunctionParam()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2509

llvm::itanium_demangle::Node* parseFunctionType()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2518

llvm::itanium_demangle::Node* parseIntegerLiteral(
    llvm::itanium_demangle::StringView Lit)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2506

Parameters

llvm::itanium_demangle::StringView Lit

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)

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)

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2566

Parameters

llvm::itanium_demangle::AbstractManglingParser:: NameState* State

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()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2631

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2513

Parameters

Node::Prec Prec

llvm::itanium_demangle::Node*
parsePointerToMemberType()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2522

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2504

Parameters

llvm::itanium_demangle::StringView Kind
Node::Prec Prec

llvm::itanium_demangle::Node* parseQualifiedType()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2524

bool parseSeqId(size_t* Out)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2495

Parameters

size_t* Out

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2564

Parameters

llvm::itanium_demangle::AbstractManglingParser:: NameState* State

llvm::itanium_demangle::Node* parseSpecialName()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2528

llvm::itanium_demangle::Node* parseSubobjectExpr()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2514

llvm::itanium_demangle::Node* parseSubstitution()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2496

llvm::itanium_demangle::Node* parseTemplateArg()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2500

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()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2497

llvm::itanium_demangle::Node*
parseTemplateParamDecl()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2498

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)

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)

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)

Description

Parse the <unresolved -name> production.

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2634

Parameters

bool Global

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)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2565

Parameters

llvm::itanium_demangle::AbstractManglingParser:: NameState* State
bool* isSubstName

llvm::itanium_demangle::Node* parseVectorType()

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2519

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_)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2430

Parameters

const char* First_
const char* Last_

bool resolveForwardTemplateRefs(
    llvm::itanium_demangle::
        AbstractManglingParser::NameState& State)

Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:2543

Parameters

llvm::itanium_demangle::AbstractManglingParser:: NameState& State