clang 20.0.0git
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::extractapi::impl::ExtractAPIVisitorBase< Derived > Class Template Reference

#include "clang/ExtractAPI/ExtractAPIVisitor.h"

Inheritance diagram for clang::extractapi::impl::ExtractAPIVisitorBase< Derived >:
Inheritance graph
[legend]

Public Member Functions

const APISetgetAPI () const
 
bool VisitVarDecl (const VarDecl *Decl)
 
bool VisitFunctionDecl (const FunctionDecl *Decl)
 
bool VisitEnumDecl (const EnumDecl *Decl)
 
bool WalkUpFromFunctionDecl (const FunctionDecl *Decl)
 
bool WalkUpFromRecordDecl (const RecordDecl *Decl)
 
bool WalkUpFromCXXRecordDecl (const CXXRecordDecl *Decl)
 
bool WalkUpFromCXXMethodDecl (const CXXMethodDecl *Decl)
 
bool WalkUpFromClassTemplateSpecializationDecl (const ClassTemplateSpecializationDecl *Decl)
 
bool WalkUpFromClassTemplatePartialSpecializationDecl (const ClassTemplatePartialSpecializationDecl *Decl)
 
bool WalkUpFromVarTemplateDecl (const VarTemplateDecl *Decl)
 
bool WalkUpFromVarTemplateSpecializationDecl (const VarTemplateSpecializationDecl *Decl)
 
bool WalkUpFromVarTemplatePartialSpecializationDecl (const VarTemplatePartialSpecializationDecl *Decl)
 
bool WalkUpFromFunctionTemplateDecl (const FunctionTemplateDecl *Decl)
 
bool WalkUpFromNamespaceDecl (const NamespaceDecl *Decl)
 
bool VisitNamespaceDecl (const NamespaceDecl *Decl)
 
bool TraverseRecordDecl (RecordDecl *Decl)
 
bool VisitRecordDecl (const RecordDecl *Decl)
 
bool TraverseCXXRecordDecl (CXXRecordDecl *Decl)
 
bool VisitCXXRecordDecl (const CXXRecordDecl *Decl)
 
bool VisitCXXMethodDecl (const CXXMethodDecl *Decl)
 
bool VisitFieldDecl (const FieldDecl *Decl)
 
bool VisitCXXConversionDecl (const CXXConversionDecl *Decl)
 
bool VisitCXXConstructorDecl (const CXXConstructorDecl *Decl)
 
bool VisitCXXDestructorDecl (const CXXDestructorDecl *Decl)
 
bool VisitConceptDecl (const ConceptDecl *Decl)
 
bool VisitClassTemplateSpecializationDecl (const ClassTemplateSpecializationDecl *Decl)
 
bool VisitClassTemplatePartialSpecializationDecl (const ClassTemplatePartialSpecializationDecl *Decl)
 
bool VisitVarTemplateDecl (const VarTemplateDecl *Decl)
 
bool VisitVarTemplateSpecializationDecl (const VarTemplateSpecializationDecl *Decl)
 
bool VisitVarTemplatePartialSpecializationDecl (const VarTemplatePartialSpecializationDecl *Decl)
 
bool VisitFunctionTemplateDecl (const FunctionTemplateDecl *Decl)
 
bool VisitObjCInterfaceDecl (const ObjCInterfaceDecl *Decl)
 
bool VisitObjCProtocolDecl (const ObjCProtocolDecl *Decl)
 
bool VisitTypedefNameDecl (const TypedefNameDecl *Decl)
 
bool VisitObjCCategoryDecl (const ObjCCategoryDecl *Decl)
 
bool shouldDeclBeIncluded (const Decl *Decl) const
 
const RawCommentfetchRawCommentForDecl (const Decl *Decl) const
 
- Public Member Functions inherited from clang::RecursiveASTVisitor< Derived >
Derived & getDerived ()
 Return a reference to the derived class.
 
bool shouldVisitTemplateInstantiations () const
 Return whether this visitor should recurse into template instantiations.
 
bool shouldWalkTypesOfTypeLocs () const
 Return whether this visitor should recurse into the types of TypeLocs.
 
bool shouldVisitImplicitCode () const
 Return whether this visitor should recurse into implicit code, e.g., implicit constructors and destructors.
 
bool shouldVisitLambdaBody () const
 Return whether this visitor should recurse into lambda body.
 
bool shouldTraversePostOrder () const
 Return whether this visitor should traverse post-order.
 
bool TraverseAST (ASTContext &AST)
 Recursively visits an entire AST, starting from the TranslationUnitDecl.
 
bool TraverseStmt (Stmt *S, DataRecursionQueue *Queue=nullptr)
 Recursively visit a statement or expression, by dispatching to Traverse*() based on the argument's dynamic type.
 
bool dataTraverseStmtPre (Stmt *S)
 Invoked before visiting a statement or expression via data recursion.
 
bool dataTraverseStmtPost (Stmt *S)
 Invoked after visiting a statement or expression via data recursion.
 
bool TraverseType (QualType T)
 Recursively visit a type, by dispatching to Traverse*Type() based on the argument's getTypeClass() property.
 
bool TraverseTypeLoc (TypeLoc TL)
 Recursively visit a type with location, by dispatching to Traverse*TypeLoc() based on the argument type's getTypeClass() property.
 
bool TraverseAttr (Attr *At)
 Recursively visit an attribute, by dispatching to Traverse*Attr() based on the argument's dynamic type.
 
bool TraverseDecl (Decl *D)
 Recursively visit a declaration, by dispatching to Traverse*Decl() based on the argument's dynamic type.
 
bool TraverseNestedNameSpecifier (NestedNameSpecifier *NNS)
 Recursively visit a C++ nested-name-specifier.
 
bool TraverseNestedNameSpecifierLoc (NestedNameSpecifierLoc NNS)
 Recursively visit a C++ nested-name-specifier with location information.
 
bool TraverseDeclarationNameInfo (DeclarationNameInfo NameInfo)
 Recursively visit a name with its location information.
 
bool TraverseTemplateName (TemplateName Template)
 Recursively visit a template name and dispatch to the appropriate method.
 
bool TraverseTemplateArgument (const TemplateArgument &Arg)
 Recursively visit a template argument and dispatch to the appropriate method for the argument type.
 
bool TraverseTemplateArgumentLoc (const TemplateArgumentLoc &ArgLoc)
 Recursively visit a template argument location and dispatch to the appropriate method for the argument type.
 
bool TraverseTemplateArguments (ArrayRef< TemplateArgument > Args)
 Recursively visit a set of template arguments.
 
bool TraverseCXXBaseSpecifier (const CXXBaseSpecifier &Base)
 Recursively visit a base specifier.
 
bool TraverseConstructorInitializer (CXXCtorInitializer *Init)
 Recursively visit a constructor initializer.
 
bool TraverseLambdaCapture (LambdaExpr *LE, const LambdaCapture *C, Expr *Init)
 Recursively visit a lambda capture.
 
bool TraverseSynOrSemInitListExpr (InitListExpr *S, DataRecursionQueue *Queue=nullptr)
 Recursively visit the syntactic or semantic form of an initialization list.
 
bool TraverseObjCProtocolLoc (ObjCProtocolLoc ProtocolLoc)
 Recursively visit an Objective-C protocol reference with location information.
 
bool TraverseConceptReference (ConceptReference *CR)
 Recursively visit concept reference with location information.
 
bool VisitConceptReference (ConceptReference *CR)
 
bool VisitAttr (Attr *A)
 
Stmt::child_range getStmtChildren (Stmt *S)
 
bool WalkUpFromStmt (Stmt *S)
 
bool VisitStmt (Stmt *S)
 
bool WalkUpFromType (Type *T)
 
bool VisitType (Type *T)
 
bool WalkUpFromTypeLoc (TypeLoc TL)
 
bool VisitTypeLoc (TypeLoc TL)
 
bool WalkUpFromQualifiedTypeLoc (QualifiedTypeLoc TL)
 
bool VisitQualifiedTypeLoc (QualifiedTypeLoc TL)
 
bool WalkUpFromUnqualTypeLoc (UnqualTypeLoc TL)
 
bool VisitUnqualTypeLoc (UnqualTypeLoc TL)
 
bool WalkUpFromDecl (Decl *D)
 
bool VisitDecl (Decl *D)
 
bool canIgnoreChildDeclWhileTraversingDeclContext (const Decl *Child)
 
bool TraverseTypeConstraint (const TypeConstraint *C)
 
bool TraverseConceptRequirement (concepts::Requirement *R)
 
bool TraverseConceptTypeRequirement (concepts::TypeRequirement *R)
 
bool TraverseConceptExprRequirement (concepts::ExprRequirement *R)
 
bool TraverseConceptNestedRequirement (concepts::NestedRequirement *R)
 
bool dataTraverseNode (Stmt *S, DataRecursionQueue *Queue)
 

Protected Member Functions

 ExtractAPIVisitorBase (ASTContext &Context, APISet &API)
 
void recordEnumConstants (SymbolReference Container, const EnumDecl::enumerator_range Constants)
 Collect API information for the enum constants and associate with the parent enum.
 
void recordObjCMethods (ObjCContainerRecord *Container, const ObjCContainerDecl::method_range Methods)
 Collect API information for the Objective-C methods and associate with the parent container.
 
void recordObjCProperties (ObjCContainerRecord *Container, const ObjCContainerDecl::prop_range Properties)
 
void recordObjCInstanceVariables (ObjCContainerRecord *Container, const llvm::iterator_range< DeclContext::specific_decl_iterator< ObjCIvarDecl > > Ivars)
 
void recordObjCProtocols (ObjCContainerRecord *Container, ObjCInterfaceDecl::protocol_range Protocols)
 
StringRef getTypedefName (const TagDecl *Decl)
 
bool isInSystemHeader (const Decl *D)
 
SmallVector< SymbolReferencegetBases (const CXXRecordDecl *Decl)
 
APIRecord::RecordKind getKindForDisplay (const CXXRecordDecl *Decl)
 
StringRef getOwningModuleName (const Decl &D)
 
SymbolReference createHierarchyInformationForDecl (const Decl &D)
 
SymbolReference createSymbolReferenceForDecl (const Decl &D)
 
bool isEmbeddedInVarDeclarator (const TagDecl &D)
 
void maybeMergeWithAnonymousTag (const DeclaratorDecl &D, RecordContext *NewRecordContext)
 

Protected Attributes

ASTContextContext
 
APISetAPI
 

Additional Inherited Members

- Public Types inherited from clang::RecursiveASTVisitor< Derived >
typedef SmallVectorImpl< llvm::PointerIntPair< Stmt *, 1, bool > > DataRecursionQueue
 A queue used for performing data recursion over statements.
 

Detailed Description

template<typename Derived>
class clang::extractapi::impl::ExtractAPIVisitorBase< Derived >

Definition at line 42 of file ExtractAPIVisitor.h.

Constructor & Destructor Documentation

◆ ExtractAPIVisitorBase()

template<typename Derived >
clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::ExtractAPIVisitorBase ( ASTContext Context,
APISet API 
)
inlineprotected

Definition at line 46 of file ExtractAPIVisitor.h.

Member Function Documentation

◆ createHierarchyInformationForDecl()

template<typename Derived >
SymbolReference clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::createHierarchyInformationForDecl ( const Decl D)
inlineprotected

◆ createSymbolReferenceForDecl()

template<typename Derived >
SymbolReference clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::createSymbolReferenceForDecl ( const Decl D)
inlineprotected

◆ fetchRawCommentForDecl()

template<typename Derived >
const RawComment * clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::fetchRawCommentForDecl ( const Decl Decl) const

◆ getAPI()

template<typename Derived >
const APISet & clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::getAPI ( ) const
inline

◆ getBases()

template<typename Derived >
SmallVector< SymbolReference > clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::getBases ( const CXXRecordDecl Decl)
inlineprotected

◆ getKindForDisplay()

template<typename Derived >
APIRecord::RecordKind clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::getKindForDisplay ( const CXXRecordDecl Decl)
inlineprotected

◆ getOwningModuleName()

template<typename Derived >
StringRef clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::getOwningModuleName ( const Decl D)
inlineprotected

◆ getTypedefName()

template<typename Derived >
StringRef clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::getTypedefName ( const TagDecl Decl)
inlineprotected

◆ isEmbeddedInVarDeclarator()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::isEmbeddedInVarDeclarator ( const TagDecl D)
inlineprotected

◆ isInSystemHeader()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::isInSystemHeader ( const Decl D)
inlineprotected

◆ maybeMergeWithAnonymousTag()

template<typename Derived >
void clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::maybeMergeWithAnonymousTag ( const DeclaratorDecl D,
RecordContext NewRecordContext 
)
inlineprotected

◆ recordEnumConstants()

template<typename Derived >
void clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::recordEnumConstants ( SymbolReference  Container,
const EnumDecl::enumerator_range  Constants 
)
protected

◆ recordObjCInstanceVariables()

template<typename Derived >
void clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::recordObjCInstanceVariables ( ObjCContainerRecord Container,
const llvm::iterator_range< DeclContext::specific_decl_iterator< ObjCIvarDecl > >  Ivars 
)
protected

◆ recordObjCMethods()

template<typename Derived >
void clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::recordObjCMethods ( ObjCContainerRecord Container,
const ObjCContainerDecl::method_range  Methods 
)
protected

◆ recordObjCProperties()

template<typename Derived >
void clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::recordObjCProperties ( ObjCContainerRecord Container,
const ObjCContainerDecl::prop_range  Properties 
)
protected

◆ recordObjCProtocols()

template<typename Derived >
void clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::recordObjCProtocols ( ObjCContainerRecord Container,
ObjCInterfaceDecl::protocol_range  Protocols 
)
protected

Definition at line 1486 of file ExtractAPIVisitor.h.

◆ shouldDeclBeIncluded()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::shouldDeclBeIncluded ( const Decl Decl) const

◆ TraverseCXXRecordDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::TraverseCXXRecordDecl ( CXXRecordDecl Decl)

Definition at line 611 of file ExtractAPIVisitor.h.

References clang::index::generateUSRForDecl().

◆ TraverseRecordDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::TraverseRecordDecl ( RecordDecl Decl)

Definition at line 558 of file ExtractAPIVisitor.h.

References clang::index::generateUSRForDecl().

◆ VisitClassTemplatePartialSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitClassTemplatePartialSpecializationDecl ( const ClassTemplatePartialSpecializationDecl Decl)

◆ VisitClassTemplateSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitClassTemplateSpecializationDecl ( const ClassTemplateSpecializationDecl Decl)

◆ VisitConceptDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitConceptDecl ( const ConceptDecl Decl)

◆ VisitCXXConstructorDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXConstructorDecl ( const CXXConstructorDecl Decl)

◆ VisitCXXConversionDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXConversionDecl ( const CXXConversionDecl Decl)

◆ VisitCXXDestructorDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXDestructorDecl ( const CXXDestructorDecl Decl)

◆ VisitCXXMethodDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXMethodDecl ( const CXXMethodDecl Decl)

◆ VisitCXXRecordDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXRecordDecl ( const CXXRecordDecl Decl)

◆ VisitEnumDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitEnumDecl ( const EnumDecl Decl)

◆ VisitFieldDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFieldDecl ( const FieldDecl Decl)

◆ VisitFunctionDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFunctionDecl ( const FunctionDecl Decl)

◆ VisitFunctionTemplateDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFunctionTemplateDecl ( const FunctionTemplateDecl Decl)

◆ VisitNamespaceDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitNamespaceDecl ( const NamespaceDecl Decl)

◆ VisitObjCCategoryDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitObjCCategoryDecl ( const ObjCCategoryDecl Decl)

◆ VisitObjCInterfaceDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitObjCInterfaceDecl ( const ObjCInterfaceDecl Decl)

◆ VisitObjCProtocolDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitObjCProtocolDecl ( const ObjCProtocolDecl Decl)

◆ VisitRecordDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitRecordDecl ( const RecordDecl Decl)

◆ VisitTypedefNameDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitTypedefNameDecl ( const TypedefNameDecl Decl)

◆ VisitVarDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarDecl ( const VarDecl Decl)

◆ VisitVarTemplateDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplateDecl ( const VarTemplateDecl Decl)

◆ VisitVarTemplatePartialSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplatePartialSpecializationDecl ( const VarTemplatePartialSpecializationDecl Decl)

◆ VisitVarTemplateSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplateSpecializationDecl ( const VarTemplateSpecializationDecl Decl)

◆ WalkUpFromClassTemplatePartialSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromClassTemplatePartialSpecializationDecl ( const ClassTemplatePartialSpecializationDecl Decl)

Definition at line 481 of file ExtractAPIVisitor.h.

◆ WalkUpFromClassTemplateSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromClassTemplateSpecializationDecl ( const ClassTemplateSpecializationDecl Decl)

Definition at line 474 of file ExtractAPIVisitor.h.

◆ WalkUpFromCXXMethodDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromCXXMethodDecl ( const CXXMethodDecl Decl)

Definition at line 467 of file ExtractAPIVisitor.h.

◆ WalkUpFromCXXRecordDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromCXXRecordDecl ( const CXXRecordDecl Decl)

Definition at line 460 of file ExtractAPIVisitor.h.

◆ WalkUpFromFunctionDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromFunctionDecl ( const FunctionDecl Decl)

Definition at line 446 of file ExtractAPIVisitor.h.

◆ WalkUpFromFunctionTemplateDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromFunctionTemplateDecl ( const FunctionTemplateDecl Decl)

Definition at line 512 of file ExtractAPIVisitor.h.

◆ WalkUpFromNamespaceDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromNamespaceDecl ( const NamespaceDecl Decl)

Definition at line 519 of file ExtractAPIVisitor.h.

◆ WalkUpFromRecordDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromRecordDecl ( const RecordDecl Decl)

Definition at line 453 of file ExtractAPIVisitor.h.

◆ WalkUpFromVarTemplateDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromVarTemplateDecl ( const VarTemplateDecl Decl)

Definition at line 490 of file ExtractAPIVisitor.h.

◆ WalkUpFromVarTemplatePartialSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromVarTemplatePartialSpecializationDecl ( const VarTemplatePartialSpecializationDecl Decl)

Definition at line 504 of file ExtractAPIVisitor.h.

◆ WalkUpFromVarTemplateSpecializationDecl()

template<typename Derived >
bool clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::WalkUpFromVarTemplateSpecializationDecl ( const VarTemplateSpecializationDecl Decl)

Definition at line 497 of file ExtractAPIVisitor.h.

Member Data Documentation

◆ API

template<typename Derived >
APISet& clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::API
protected

◆ Context

template<typename Derived >
ASTContext& clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::Context
protected

The documentation for this class was generated from the following file: