clang  13.0.0git
Classes | Functions
ParentMapContext.cpp File Reference
#include "clang/AST/ParentMapContext.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/Decl.h"
#include "clang/AST/Expr.h"
#include "clang/AST/TemplateBase.h"
Include dependency graph for ParentMapContext.cpp:

Go to the source code of this file.

Classes

struct  MatchParents< T, U >
 
class  clang::ParentMapContext::ParentMap
 
struct  MatchParents< T, U >
 
struct  MatchParents< T >
 
class  clang::ParentMapContext::ParentMap::ASTVisitor
 A RecursiveASTVisitor that builds a map from nodes to their parents as defined by the RecursiveASTVisitor. More...
 

Functions

template<typename T , typename... U>
std::tuple< bool, DynTypedNodeList, const T *, const U *... > matchParents (const DynTypedNodeList &NodeList, ParentMapContext::ParentMap *ParentMap)
 
template<typename Tuple , std::size_t... Is>
auto tuple_pop_front_impl (const Tuple &tuple, std::index_sequence< Is... >)
 
template<typename Tuple >
auto tuple_pop_front (const Tuple &tuple)
 
template<typename T >
static DynTypedNode createDynTypedNode (const T &Node)
 Template specializations to abstract away from pointers and TypeLocs. More...
 
template<>
DynTypedNode createDynTypedNode (const TypeLoc &Node)
 
template<>
DynTypedNode createDynTypedNode (const NestedNameSpecifierLoc &Node)
 

Function Documentation

◆ createDynTypedNode() [1/3]

template<>
DynTypedNode createDynTypedNode ( const NestedNameSpecifierLoc Node)

Definition at line 330 of file ParentMapContext.cpp.

References clang::DynTypedNode::create(), and Node.

◆ createDynTypedNode() [2/3]

template<typename T >
static DynTypedNode createDynTypedNode ( const T &  Node)
static

Template specializations to abstract away from pointers and TypeLocs.

Definition at line 323 of file ParentMapContext.cpp.

References clang::DynTypedNode::create(), and Node.

◆ createDynTypedNode() [3/3]

template<>
DynTypedNode createDynTypedNode ( const TypeLoc Node)

Definition at line 326 of file ParentMapContext.cpp.

References clang::DynTypedNode::create(), and Node.

◆ matchParents()

template<typename T , typename... U>
std::tuple< bool, DynTypedNodeList, const T *, const U *... > matchParents ( const DynTypedNodeList NodeList,
ParentMapContext::ParentMap ParentMap 
)

Definition at line 316 of file ParentMapContext.cpp.

References MatchParents< T, U >::match().

◆ tuple_pop_front()

template<typename Tuple >
auto tuple_pop_front ( const Tuple &  tuple)

Definition at line 273 of file ParentMapContext.cpp.

References tuple_pop_front_impl().

Referenced by MatchParents< T, U >::match().

◆ tuple_pop_front_impl()

template<typename Tuple , std::size_t... Is>
auto tuple_pop_front_impl ( const Tuple &  tuple,
std::index_sequence< Is... >   
)

Definition at line 269 of file ParentMapContext.cpp.

Referenced by tuple_pop_front().