LLVM: AbstractManglingParser< Derived, Alloc > Struct Template Reference (original) (raw)
#include "[llvm/Demangle/ItaniumDemangle.h](ItaniumDemangle%5F8h%5Fsource.html)"
| Classes | |
|---|---|
| struct | NameState |
| Holds some extra information about a that is being parsed. More... | |
| struct | OperatorInfo |
| class | SaveTemplateParams |
| class | ScopedTemplateParamList |
| 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 |
template<typename Derived, typename Alloc>
struct AbstractManglingParser< Derived, Alloc >
Definition at line 2746 of file ItaniumDemangle.h.
◆ TemplateParamList
template<typename Derived, typename Alloc>
template<typename Derived, typename Alloc>
◆ consume()
template<typename Derived, typename Alloc>
◆ consumeIf() [1/2]
template<typename Derived, typename Alloc>
◆ consumeIf() [2/2]
template<typename Derived, typename Alloc>
Definition at line 2865 of file ItaniumDemangle.h.
References First, Last, and starts_with().
Referenced by parse(), parseAbiTags(), parseArrayType(), parseBaseUnresolvedName(), parseCallOffset(), parseClassEnumType(), parseConversionExpr(), parseCtorDtorName(), parseCVQualifiers(), parseDecltype(), parseEncoding(), parseExpr(), parseExprPrimary(), parseFloatingLiteral(), parseFoldExpr(), parseFunctionParam(), parseFunctionType(), parseIntegerLiteral(), parseLocalName(), parseModuleNameOpt(), parseNestedName(), parseNumber(), parseOperatorName(), parsePointerToMemberConversionExpr(), parsePointerToMemberType(), parseQualifiedType(), parseRequiresExpr(), parseSpecialName(), parseSubobjectExpr(), parseSubstitution(), parseTemplateArg(), parseTemplateArgs(), parseTemplateParam(), parseTemplateParamDecl(), parseType(), parseUnnamedTypeName(), parseUnqualifiedName(), parseUnresolvedName(), parseUnscopedName(), and parseVectorType().
◆ getDerived()
template<typename Derived, typename Alloc>
Definition at line 2829 of file ItaniumDemangle.h.
Referenced by parse(), parseArrayType(), parseBaseUnresolvedName(), parseBinaryExpr(), parseBracedExpr(), parseClassEnumType(), parseConstraintExpr(), parseConversionExpr(), parseCtorDtorName(), parseDecltype(), parseDestructorName(), parseEncoding(), parseExpr(), parseExprPrimary(), parseFoldExpr(), parseFunctionType(), parseLocalName(), parseModuleNameOpt(), parseName(), parseNestedName(), parseOperatorName(), parsePointerToMemberConversionExpr(), parsePointerToMemberType(), parsePrefixExpr(), parseQualifiedType(), parseRequiresExpr(), parseSimpleId(), parseSpecialName(), parseSubobjectExpr(), parseSubstitution(), parseTemplateArg(), parseTemplateArgs(), parseTemplateParamDecl(), parseType(), parseUnnamedTypeName(), parseUnqualifiedName(), parseUnresolvedName(), parseUnresolvedType(), parseUnscopedName(), and parseVectorType().
◆ isTemplateParamDecl()
template<typename Derived, typename Alloc>
◆ look()
template<typename Derived, typename Alloc>
Definition at line 2883 of file ItaniumDemangle.h.
Referenced by isTemplateParamDecl(), parse(), parseArrayType(), parseBaseUnresolvedName(), parseBracedExpr(), parseCtorDtorName(), parseDestructorName(), parseEncoding(), parseExpr(), parseExprPrimary(), parseFoldExpr(), parseName(), parseNestedName(), parseOperatorName(), parsePositiveInteger(), parseQualifiedType(), parseSeqId(), parseSimpleId(), parseSpecialName(), parseSubstitution(), parseTemplateArg(), parseType(), parseUnnamedTypeName(), parseUnqualifiedName(), parseUnresolvedName(), parseUnresolvedType(), parseUnscopedName(), and parseVectorType().
◆ make()
template<typename Derived, typename Alloc>
template<class T, class... Args>
Definition at line 2845 of file ItaniumDemangle.h.
References args, ASTAllocator, and T.
Referenced by parse(), parseAbiTags(), parseArrayType(), parseBaseUnresolvedName(), parseBinaryExpr(), parseBracedExpr(), parseClassEnumType(), parseConversionExpr(), parseCtorDtorName(), parseDecltype(), parseDestructorName(), parseEncoding(), parseExpr(), parseExprPrimary(), parseFloatingLiteral(), parseFoldExpr(), parseFunctionParam(), parseFunctionType(), parseIntegerLiteral(), parseLocalName(), parseModuleNameOpt(), parseName(), parseNestedName(), parseOperatorName(), parsePointerToMemberConversionExpr(), parsePointerToMemberType(), parsePrefixExpr(), parseQualifiedType(), parseRequiresExpr(), parseSimpleId(), parseSourceName(), parseSpecialName(), parseSubobjectExpr(), parseSubstitution(), parseTemplateArg(), parseTemplateArgs(), parseTemplateParam(), parseTemplateParamDecl(), parseType(), parseUnnamedTypeName(), parseUnqualifiedName(), parseUnresolvedName(), parseUnscopedName(), and parseVectorType().
◆ makeNodeArray()
template<typename Derived, typename Alloc>
template
◆ numLeft()
template<typename Derived, typename Alloc>
◆ parse()
◆ parseAbiTags()
◆ parseArrayType()
◆ parseBareSourceName()
◆ parseBaseUnresolvedName()
◆ parseBinaryExpr()
template<typename Derived, typename Alloc>
◆ parseBracedExpr()
◆ parseCallOffset()
◆ parseClassEnumType()
◆ parseConstraintExpr()
◆ parseConversionExpr()
◆ parseCtorDtorName()
template<typename Derived, typename Alloc>
◆ parseCVQualifiers()
◆ parseDecltype()
◆ parseDestructorName()
◆ parseEncoding()
Definition at line 5652 of file ItaniumDemangle.h.
References consume(), consumeIf(), AbstractManglingParser< Derived, Alloc >::NameState::CtorDtorConversion, AbstractManglingParser< Derived, Alloc >::NameState::CVQualifiers, AbstractManglingParser< Derived, Alloc >::NameState::EndsWithTemplateArgs, getDerived(), AbstractManglingParser< Derived, Alloc >::NameState::HasExplicitObjectParameter, look(), make(), Names, numLeft(), popTrailingNodeArray(), AbstractManglingParser< Derived, Alloc >::NameState::ReferenceQualifier, and resolveForwardTemplateRefs().
◆ parseExpr()
Parse the production.
Definition at line 5177 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::OperatorInfo::Array, AbstractManglingParser< Derived, Alloc >::OperatorInfo::Binary, AbstractManglingParser< Derived, Alloc >::OperatorInfo::Call, AbstractManglingParser< Derived, Alloc >::OperatorInfo::CCast, Cond, AbstractManglingParser< Derived, Alloc >::OperatorInfo::Conditional, consumeIf(), AbstractManglingParser< Derived, Alloc >::OperatorInfo::Del, DEMANGLE_UNREACHABLE, E(), FP, getDerived(), LHS, look(), make(), AbstractManglingParser< Derived, Alloc >::OperatorInfo::Member, AbstractManglingParser< Derived, Alloc >::OperatorInfo::NamedCast, AbstractManglingParser< Derived, Alloc >::OperatorInfo::NameOnly, Names, AbstractManglingParser< Derived, Alloc >::OperatorInfo::New, numLeft(), AbstractManglingParser< Derived, Alloc >::OperatorInfo::OfIdOp, parseOperatorEncoding(), parsePointerToMemberConversionExpr(), parseRequiresExpr(), parseSubobjectExpr(), popTrailingNodeArray(), AbstractManglingParser< Derived, Alloc >::OperatorInfo::Postfix, Node::Postfix, AbstractManglingParser< Derived, Alloc >::OperatorInfo::Prefix, RHS, NodeArray::size(), TryToParseTemplateArgs, and Node::Unary.
◆ parseExprPrimary()
◆ parseFloatingLiteral()
◆ parseFoldExpr()
Definition at line 4967 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::OperatorInfo::Binary, consumeIf(), First, getDerived(), look(), make(), AbstractManglingParser< Derived, Alloc >::OperatorInfo::Member, parseOperatorEncoding(), and std::swap().
◆ parseFunctionParam()
◆ parseFunctionType()
Definition at line 3944 of file ItaniumDemangle.h.
References consumeIf(), E(), FrefQualLValue, FrefQualNone, FrefQualRValue, getDerived(), make(), Names, parseCVQualifiers(), popTrailingNodeArray(), and T.
◆ parseIntegerLiteral()
◆ parseLocalName()
◆ parseModuleNameOpt()
◆ parseName()
◆ parseNestedName()
Definition at line 3605 of file ItaniumDemangle.h.
References consumeIf(), First, FrefQualLValue, FrefQualNone, FrefQualRValue, getDerived(), Node::getKind(), look(), make(), Module, parseCVQualifiers(), and Subs.
◆ parseNumber()
Definition at line 3901 of file ItaniumDemangle.h.
References consumeIf(), First, and numLeft().
Referenced by parse(), parseArrayType(), parseCallOffset(), parseExprPrimary(), parseFunctionParam(), parseIntegerLiteral(), parseLocalName(), parseSpecialName(), parseSubobjectExpr(), parseType(), parseUnnamedTypeName(), and parseVectorType().
◆ parseOperatorEncoding()
◆ parseOperatorName()
Definition at line 3485 of file ItaniumDemangle.h.
References AbstractManglingParser< Derived, Alloc >::OperatorInfo::CCast, consumeIf(), First, getDerived(), look(), make(), AbstractManglingParser< Derived, Alloc >::OperatorInfo::Member, parseOperatorEncoding(), PermitForwardTemplateReferences, TryToParseTemplateArgs, and AbstractManglingParser< Derived, Alloc >::OperatorInfo::Unnameable.
◆ parsePointerToMemberConversionExpr()
◆ parsePointerToMemberType()
◆ parsePositiveInteger()
◆ parsePrefixExpr()
template<typename Derived, typename Alloc>
◆ parseQualifiedType()
◆ parseRequiresExpr()
◆ parseSeqId()
◆ parseSimpleId()
◆ parseSourceName()
◆ parseSpecialName()
◆ parseSubobjectExpr()
◆ parseSubstitution()
Definition at line 5834 of file ItaniumDemangle.h.
References allocator, basic_string, consumeIf(), First, getDerived(), iostream, istream, look(), make(), ostream, parseSeqId(), string, and Subs.
◆ parseTemplateArg()
◆ parseTemplateArgs()
◆ parseTemplateParam()
Definition at line 5900 of file ItaniumDemangle.h.
References consumeIf(), DEMANGLE_ASSERT, First, ForwardTemplateRefs, Node::getKind(), HasIncompleteTemplateParameterTracking, make(), parsePositiveInteger(), ParsingLambdaParamsAtLevel, PermitForwardTemplateReferences, and TemplateParams.
◆ parseTemplateParamDecl()
Definition at line 5970 of file ItaniumDemangle.h.
References consumeIf(), getDerived(), HasIncompleteTemplateParameterTracking, make(), N, Names, NonType, NumSyntheticTemplateParameters, P, AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::params(), parseTemplateParamDecl(), parseType(), popTrailingNodeArray(), PODSmallVector< T, N >::push_back(), Template, and Type.
Referenced by parseTemplateParamDecl().
◆ parseType()
Parse the production.
Definition at line 4203 of file ItaniumDemangle.h.
References consumeIf(), DEMANGLE_FALLTHROUGH, First, getDerived(), look(), LValue, make(), P, parseBareSourceName(), parseNumber(), parseType(), RValue, Signed, Size, Subs, and TryToParseTemplateArgs.
Referenced by parseTemplateParamDecl(), and parseType().
◆ parseUnnamedTypeName()
Definition at line 3257 of file ItaniumDemangle.h.
References consumeIf(), NodeArray::empty(), getDerived(), isTemplateParamDecl(), look(), make(), Names, P, AbstractManglingParser< Derived, Alloc >::ScopedTemplateParamList::params(), parseNumber(), ParsingLambdaParamsAtLevel, popTrailingNodeArray(), T, and TemplateParams.
Referenced by parseExprPrimary().
◆ parseUnqualifiedName()
◆ parseUnresolvedName()
◆ parseUnresolvedType()
◆ parseUnscopedName()
template<typename Derived, typename Alloc>
◆ parseVectorType()
◆ popTrailingNodeArray()
template<typename Derived, typename Alloc>
Definition at line 2857 of file ItaniumDemangle.h.
References DEMANGLE_ASSERT, makeNodeArray(), and Names.
Referenced by parseConversionExpr(), parseEncoding(), parseExpr(), parseFunctionType(), parseRequiresExpr(), parseSubobjectExpr(), parseTemplateArg(), parseTemplateArgs(), parseTemplateParamDecl(), parseUnnamedTypeName(), and parseUnqualifiedName().
◆ reset()
template<typename Derived, typename Alloc>
Definition at line 2831 of file ItaniumDemangle.h.
References ASTAllocator, First, I, Last, Names, NumSyntheticTemplateParameters, ParsingLambdaParamsAtLevel, PermitForwardTemplateReferences, Subs, TemplateParams, and TryToParseTemplateArgs.
◆ resolveForwardTemplateRefs()
template<typename Derived, typename Alloc>
◆ ASTAllocator
template<typename Derived, typename Alloc>
◆ First
template<typename Derived, typename Alloc>
Definition at line 2747 of file ItaniumDemangle.h.
Referenced by AbstractManglingParser(), consume(), consumeIf(), consumeIf(), look(), numLeft(), parse(), parseBareSourceName(), parseBracedExpr(), parseCtorDtorName(), parseExprPrimary(), parseFloatingLiteral(), parseFoldExpr(), parseLocalName(), parseNestedName(), parseNumber(), parseOperatorEncoding(), parseOperatorName(), parseQualifiedType(), parseSeqId(), parseSourceName(), parseSpecialName(), parseSubstitution(), parseTemplateArg(), parseTemplateParam(), parseType(), and reset().
◆ ForwardTemplateRefs
template<typename Derived, typename Alloc>
◆ HasIncompleteTemplateParameterTracking
template<typename Derived, typename Alloc>
◆ Last
template<typename Derived, typename Alloc>
◆ Names
template<typename Derived, typename Alloc>
Definition at line 2753 of file ItaniumDemangle.h.
Referenced by parseConversionExpr(), parseEncoding(), parseExpr(), parseFunctionType(), parseRequiresExpr(), parseSubobjectExpr(), parseTemplateArg(), parseTemplateArgs(), parseTemplateParamDecl(), parseUnnamedTypeName(), parseUnqualifiedName(), popTrailingNodeArray(), and reset().
◆ NumOps
template<typename Derived, typename Alloc>
◆ NumSyntheticTemplateParameters
template<typename Derived, typename Alloc>
◆ Ops
template<typename Derived, typename Alloc>
◆ OuterTemplateParams
template<typename Derived, typename Alloc>
◆ ParsingLambdaParamsAtLevel
template<typename Derived, typename Alloc>
◆ PermitForwardTemplateReferences
template<typename Derived, typename Alloc>
◆ Subs
template<typename Derived, typename Alloc>
◆ TemplateParams
template<typename Derived, typename Alloc>
◆ TryToParseTemplateArgs
template<typename Derived, typename Alloc>
The documentation for this struct was generated from the following file:
- include/llvm/Demangle/ItaniumDemangle.h