clang 8.0.0

Public Member Functions | Friends | List of all members
clang::ASTContext::ParentMap::ASTVisitor Class Reference

A `RecursiveASTVisitor` that builds a map from nodes to their parents as defined by the `RecursiveASTVisitor`. More...

Inheritance diagram for clang::ASTContext::ParentMap::ASTVisitor:
[legend]
Collaboration diagram for clang::ASTContext::ParentMap::ASTVisitor:
[legend]

## Public Member Functions
| ASTVisitor (ParentMap &Map)
Public Member Functions inherited from clang::RecursiveASTVisitor< ASTVisitor >
ASTVisitor & | getDerived ()
| Return a reference to the derived class. More...
bool | shouldVisitTemplateInstantiations () const
| Return whether this visitor should recurse into template instantiations. More...
bool | shouldWalkTypesOfTypeLocs () const
| Return whether this visitor should recurse into the types of TypeLocs. More...
bool | shouldVisitImplicitCode () const
| Return whether this visitor should recurse into implicit code, e.g., implicit constructors and destructors. More...
bool | shouldTraversePostOrder () const
| Return whether this visitor should traverse post-order. More...
bool | TraverseAST (ASTContext &AST)
| Recursively visits an entire AST, starting from the top-level Decls in the AST traversal scope (by default, the TranslationUnitDecl). More...
bool | TraverseStmt (Stmt *S, DataRecursionQueue *Queue=nullptr)
| Recursively visit a statement or expression, by dispatching to Traverse*() based on the argument's dynamic type. More...
bool | dataTraverseStmtPre (Stmt *S)
| Invoked before visiting a statement or expression via data recursion. More...
bool | dataTraverseStmtPost (Stmt *S)
| Invoked after visiting a statement or expression via data recursion. More...
bool | TraverseType (QualType T)
| Recursively visit a type, by dispatching to Traverse*Type() based on the argument's getTypeClass() property. More...
bool | TraverseTypeLoc (TypeLoc TL)
| Recursively visit a type with location, by dispatching to Traverse*TypeLoc() based on the argument type's getTypeClass() property. More...
bool | TraverseAttr (Attr *At)
| Recursively visit an attribute, by dispatching to Traverse*Attr() based on the argument's dynamic type. More...
bool | TraverseDecl (Decl *D)
| Recursively visit a declaration, by dispatching to Traverse*Decl() based on the argument's dynamic type. More...
bool | TraverseNestedNameSpecifier (NestedNameSpecifier *NNS)
| Recursively visit a C++ nested-name-specifier. More...
bool | TraverseNestedNameSpecifierLoc (NestedNameSpecifierLoc NNS)
| Recursively visit a C++ nested-name-specifier with location information. More...
bool | TraverseDeclarationNameInfo (DeclarationNameInfo NameInfo)
| Recursively visit a name with its location information. More...
bool | TraverseTemplateName (TemplateName Template)
| Recursively visit a template name and dispatch to the appropriate method. More...
bool | TraverseTemplateArgument (const TemplateArgument &Arg)
| Recursively visit a template argument and dispatch to the appropriate method for the argument type. More...
bool | TraverseTemplateArgumentLoc (const TemplateArgumentLoc &ArgLoc)
| Recursively visit a template argument location and dispatch to the appropriate method for the argument type. More...
bool | TraverseTemplateArguments (const TemplateArgument *Args, unsigned NumArgs)
| Recursively visit a set of template arguments. More...
bool | TraverseCXXBaseSpecifier (const CXXBaseSpecifier &Base)
| Recursively visit a base specifier. More...
bool | TraverseConstructorInitializer (CXXCtorInitializer *Init)
| Recursively visit a constructor initializer. More...
bool | TraverseLambdaCapture (LambdaExpr *LE, const LambdaCapture *C, Expr *Init)
| Recursively visit a lambda capture. More...
bool | TraverseSynOrSemInitListExpr (InitListExpr *S, DataRecursionQueue *Queue=nullptr)
| Recursively visit the syntactic or semantic form of an initialization list. More...
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)

## Friends
class | RecursiveASTVisitor< ASTVisitor >

## Additional Inherited Members
Public Types inherited from clang::RecursiveASTVisitor< ASTVisitor >
typedef SmallVectorImpl< llvm::PointerIntPair< Stmt *, 1, bool > > | DataRecursionQueue
| A queue used for performing data recursion over statements. More...

## Detailed Description

A `RecursiveASTVisitor` that builds a map from nodes to their parents as defined by the `RecursiveASTVisitor`.

Note that the relationship described here is purely in terms of AST traversal - there are other relationships (for example declaration context) in the AST that are better modeled by special matchers.

FIXME: Currently only builds up the map using `Stmt` and `Decl` nodes.

Definition at line 10186 of file ASTContext.cpp.

## Constructor & Destructor Documentation

## ◆ ASTVisitor()

clang::ASTContext::ParentMap::ASTVisitor::ASTVisitor | ( | ParentMap & | Map | ) |
| inline

Definition at line 10189 of file ASTContext.cpp.

## Friends And Related Function Documentation

## ◆ RecursiveASTVisitor< ASTVisitor >

friend class RecursiveASTVisitor< ASTVisitor >
| friend

Definition at line 10192 of file ASTContext.cpp.

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

- lib/AST/ASTContext.cpp