clang  3.7.0
Classes | Namespaces | Macros | Functions
DataRecursiveASTVisitor.h File Reference
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "clang/AST/StmtOpenMP.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/AST/AttrVisitor.inc"
#include "clang/AST/StmtNodes.inc"
#include "clang/AST/TypeNodes.def"
#include "clang/AST/TypeLocNodes.def"
#include "clang/AST/DeclNodes.inc"
#include "clang/Basic/OpenMPKinds.def"
Include dependency graph for DataRecursiveASTVisitor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  clang::RecursiveASTVisitor< Derived >
 A class that does preorder depth-first traversal on the entire Clang AST and visits each node. More...
 
class  clang::RecursiveASTVisitor< Derived >::StmtQueueAction
 

Namespaces

 clang
 

Macros

#define UNARYOP_LIST()
 
#define BINOP_LIST()
 
#define CAO_LIST()
 
#define RecursiveASTVisitor   DataRecursiveASTVisitor
 
#define TRY_TO(CALL_EXPR)
 
#define ATTR_VISITOR_DECLS_ONLY
 
#define ABSTRACT_STMT(STMT)
 
#define STMT(CLASS, PARENT)   bool Traverse##CLASS(CLASS *S);
 
#define STMT(CLASS, PARENT)
 
#define OPERATOR(NAME)
 
#define GENERAL_BINOP_FALLBACK(NAME, BINOP_TYPE)
 
#define OPERATOR(NAME)   GENERAL_BINOP_FALLBACK(NAME, BinaryOperator)
 
#define OPERATOR(NAME)   GENERAL_BINOP_FALLBACK(NAME##Assign, CompoundAssignOperator)
 
#define ABSTRACT_TYPE(CLASS, BASE)
 
#define TYPE(CLASS, BASE)   bool Traverse##CLASS##Type(CLASS##Type *T);
 
#define TYPE(CLASS, BASE)
 
#define ABSTRACT_TYPELOC(CLASS, BASE)
 
#define TYPELOC(CLASS, BASE)   bool Traverse##CLASS##TypeLoc(CLASS##TypeLoc TL);
 
#define TYPE(CLASS, BASE)
 
#define ABSTRACT_DECL(DECL)
 
#define DECL(CLASS, BASE)   bool Traverse##CLASS##Decl(CLASS##Decl *D);
 
#define DECL(CLASS, BASE)
 
#define OPENMP_CLAUSE(Name, Class)   bool Visit##Class(Class *C);
 
#define DISPATCH(NAME, CLASS, VAR)   return getDerived().Traverse##NAME(static_cast<CLASS *>(VAR))
 
#define DISPATCH_STMT(NAME, CLASS, VAR)
 
#define OPERATOR(NAME)
 
#define OPERATOR(NAME)
 
#define OPERATOR(NAME)
 
#define ABSTRACT_STMT(STMT)
 
#define STMT(CLASS, PARENT)
 
#define ABSTRACT_TYPE(CLASS, BASE)
 
#define TYPE(CLASS, BASE)
 
#define ABSTRACT_TYPELOC(CLASS, BASE)
 
#define TYPELOC(CLASS, BASE)
 
#define VISITORCLASS   RecursiveASTVisitor
 
#define ABSTRACT_DECL(DECL)
 
#define DECL(CLASS, BASE)
 
#define DEF_TRAVERSE_TYPE(TYPE, CODE)
 
#define DEF_TRAVERSE_TYPELOC(TYPE, CODE)
 
#define DEF_TRAVERSE_DECL(DECL, CODE)
 
#define DEF_TRAVERSE_STMT(STMT, CODE)
 
#define OPENMP_CLAUSE(Name, Class)
 

Functions

 clang::DEF_TRAVERSE_TYPE (ComplexType,{TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(PointerType
 
 clang::DEF_TRAVERSE_TYPE (BlockPointerType,{TRY_TO(TraverseType(T->getPointeeType()));}) DEF_TRAVERSE_TYPE(LValueReferenceType { TRY_TO(TraverseType(T->getPointeeType()))
 
 clang::DEF_TRAVERSE_TYPE (RValueReferenceType,{TRY_TO(TraverseType(T->getPointeeType()));}) DEF_TRAVERSE_TYPE(MemberPointerType { TRY_TO(TraverseType(T->getPointeeType()))
 
 clang::TRY_TO (TraverseType(T->getPointeeType()))
 
 clang::DEF_TRAVERSE_TYPE (AdjustedType,{TRY_TO(TraverseType(T->getOriginalType()));}) DEF_TRAVERSE_TYPE(DecayedType
 
 clang::DEF_TRAVERSE_TYPE (ConstantArrayType,{TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(IncompleteArrayType { TRY_TO(TraverseType(T->getOriginalType()))
 
 clang::DEF_TRAVERSE_TYPE (VariableArrayType,{TRY_TO(TraverseType(T->getElementType()));TRY_TO(TraverseStmt(T->getSizeExpr()));}) DEF_TRAVERSE_TYPE(DependentSizedArrayType { TRY_TO(TraverseType(T->getElementType()))
 
 clang::if (T->getSizeExpr()) TRY_TO(TraverseStmt(T-> getSizeExpr()))
 
 clang::DEF_TRAVERSE_TYPE (DependentSizedExtVectorType,{if(T->getSizeExpr()) TRY_TO(TraverseStmt(T->getSizeExpr()));TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(VectorType
 
 clang::DEF_TRAVERSE_TYPE (ExtVectorType,{TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(FunctionNoProtoType { TRY_TO(TraverseType(T->getElementType()))
 
 clang::DEF_TRAVERSE_TYPE (FunctionProtoType,{TRY_TO(TraverseType(T->getReturnType()));for(const auto &A:T->param_types()){TRY_TO(TraverseType(A));}for(const auto &E:T->exceptions()){TRY_TO(TraverseType(E));}if(Expr *NE=T->getNoexceptExpr()) TRY_TO(TraverseStmt(NE));}) DEF_TRAVERSE_TYPE(TypeOfExprType { TRY_TO(TraverseType(T->getReturnType()))
 
 clang::DEF_TRAVERSE_TYPE (TypeOfType,{TRY_TO(TraverseType(T->getUnderlyingType()));}) DEF_TRAVERSE_TYPE(DecltypeType { TRY_TO(TraverseStmt(T->getUnderlyingExpr()))
 
 clang::DEF_TRAVERSE_TYPE (UnaryTransformType,{TRY_TO(TraverseType(T->getBaseType()));TRY_TO(TraverseType(T->getUnderlyingType()));}) DEF_TRAVERSE_TYPE(AutoType { TRY_TO(TraverseStmt(T->getUnderlyingExpr()))
 
 clang::DEF_TRAVERSE_TYPE (TemplateSpecializationType,{TRY_TO(TraverseTemplateName(T->getTemplateName()));TRY_TO(TraverseTemplateArguments(T->getArgs(), T->getNumArgs()));}) DEF_TRAVERSE_TYPE(AttributedType { TRY_TO(TraverseType(T->getDeducedType()))
 
 clang::DEF_TRAVERSE_TYPE (ParenType,{TRY_TO(TraverseType(T->getInnerType()));}) DEF_TRAVERSE_TYPE(ElaboratedType { TRY_TO(TraverseType(T->getModifiedType()))
 
 clang::DEF_TRAVERSE_TYPE (DependentNameType,{TRY_TO(TraverseNestedNameSpecifier(T->getQualifier()));}) DEF_TRAVERSE_TYPE(DependentTemplateSpecializationType
 
 clang::TRY_TO (TraverseTemplateArguments(T->getArgs(), T->getNumArgs()))
 
 clang::DEF_TRAVERSE_TYPE (PackExpansionType,{TRY_TO(TraverseType(T->getPattern()));}) DEF_TRAVERSE_TYPE(ObjCObjectType
 
 clang::for (auto typeArg:T->getTypeArgsAsWritten())
 
 clang::DEF_TRAVERSE_TYPE (ObjCObjectPointerType,{TRY_TO(TraverseType(T->getPointeeType()));}) DEF_TRAVERSE_TYPE(AtomicType
 
 clang::DEF_TRAVERSE_TYPELOC (ComplexType,{TRY_TO(TraverseType(TL.getTypePtr() ->getElementType()));}) DEF_TRAVERSE_TYPELOC(PointerType
 
 clang::DEF_TRAVERSE_TYPELOC (BlockPointerType,{TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()));}) DEF_TRAVERSE_TYPELOC(LValueReferenceType { TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()))
 
 clang::DEF_TRAVERSE_TYPELOC (RValueReferenceType,{TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()));}) DEF_TRAVERSE_TYPELOC(MemberPointerType { TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()))
 
 clang::TRY_TO (TraverseTypeLoc(TL.getPointeeLoc()))
 
 clang::DEF_TRAVERSE_TYPELOC (AdjustedType,{TRY_TO(TraverseTypeLoc(TL.getOriginalLoc()));}) DEF_TRAVERSE_TYPELOC(DecayedType
 
 clang::DEF_TRAVERSE_TYPELOC (ConstantArrayType,{TRY_TO(TraverseTypeLoc(TL.getElementLoc()));return TraverseArrayTypeLocHelper(TL);}) DEF_TRAVERSE_TYPELOC(IncompleteArrayType
 
return clang::TraverseArrayTypeLocHelper (TL)
 
 clang::DEF_TRAVERSE_TYPELOC (VariableArrayType,{TRY_TO(TraverseTypeLoc(TL.getElementLoc()));return TraverseArrayTypeLocHelper(TL);}) DEF_TRAVERSE_TYPELOC(DependentSizedArrayType
 
 clang::DEF_TRAVERSE_TYPELOC (DependentSizedExtVectorType,{if(TL.getTypePtr() ->getSizeExpr()) TRY_TO(TraverseStmt(TL.getTypePtr() ->getSizeExpr()));TRY_TO(TraverseType(TL.getTypePtr() ->getElementType()));}) DEF_TRAVERSE_TYPELOC(VectorType
 
 clang::DEF_TRAVERSE_TYPELOC (ExtVectorType,{TRY_TO(TraverseType(TL.getTypePtr() ->getElementType()));}) DEF_TRAVERSE_TYPELOC(FunctionNoProtoType
 
 clang::DEF_TRAVERSE_TYPELOC (FunctionProtoType,{TRY_TO(TraverseTypeLoc(TL.getReturnLoc()));const FunctionProtoType *T=TL.getTypePtr();for(unsigned I=0, E=TL.getNumParams();I!=E;++I){if(TL.getParam(I)){TRY_TO(TraverseDecl(TL.getParam(I)));}else if(I< T->getNumParams()){TRY_TO(TraverseType(T->getParamType(I)));}}for(const auto &E:T->exceptions()){TRY_TO(TraverseType(E));}if(Expr *NE=T->getNoexceptExpr()) TRY_TO(TraverseStmt(NE));}) DEF_TRAVERSE_TYPELOC(TypeOfExprType { TRY_TO(TraverseTypeLoc(TL.getReturnLoc()))
 
 clang::DEF_TRAVERSE_TYPELOC (TypeOfType,{TRY_TO(TraverseTypeLoc(TL.getUnderlyingTInfo() ->getTypeLoc()));}) DEF_TRAVERSE_TYPELOC(DecltypeType { TRY_TO(TraverseStmt(TL.getUnderlyingExpr()))
 
 clang::DEF_TRAVERSE_TYPELOC (UnaryTransformType,{TRY_TO(TraverseTypeLoc(TL.getUnderlyingTInfo() ->getTypeLoc()));}) DEF_TRAVERSE_TYPELOC(AutoType
 
 clang::DEF_TRAVERSE_TYPELOC (TemplateSpecializationType,{TRY_TO(TraverseTemplateName(TL.getTypePtr() ->getTemplateName()));for(unsigned I=0, E=TL.getNumArgs();I!=E;++I){TRY_TO(TraverseTemplateArgumentLoc(TL.getArgLoc(I)));}}) DEF_TRAVERSE_TYPELOC(ParenType
 
 clang::DEF_TRAVERSE_TYPELOC (AttributedType,{TRY_TO(TraverseTypeLoc(TL.getModifiedLoc()));}) DEF_TRAVERSE_TYPELOC(ElaboratedType { TRY_TO(TraverseTypeLoc(TL.getInnerLoc()))
 
 clang::DEF_TRAVERSE_TYPELOC (DependentNameType,{TRY_TO(TraverseNestedNameSpecifierLoc(TL.getQualifierLoc()));}) DEF_TRAVERSE_TYPELOC(DependentTemplateSpecializationType
 

Macro Definition Documentation

#define ABSTRACT_DECL (   DECL)

Definition at line 394 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_DECL (   DECL)

Definition at line 394 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_STMT (   STMT)

Definition at line 266 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_STMT (   STMT)

Definition at line 266 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_TYPE (   CLASS,
  BASE 
)

Definition at line 340 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_TYPE (   CLASS,
  BASE 
)

Definition at line 340 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_TYPELOC (   CLASS,
  BASE 
)

Definition at line 361 of file DataRecursiveASTVisitor.h.

#define ABSTRACT_TYPELOC (   CLASS,
  BASE 
)

Definition at line 361 of file DataRecursiveASTVisitor.h.

#define ATTR_VISITOR_DECLS_ONLY

Definition at line 259 of file DataRecursiveASTVisitor.h.

#define BINOP_LIST ( )
#define CAO_LIST ( )
#define DECL (   CLASS,
  BASE 
)    bool Traverse##CLASS##Decl(CLASS##Decl *D);

Definition at line 402 of file DataRecursiveASTVisitor.h.

#define DECL (   CLASS,
  BASE 
)
Value:
bool WalkUpFrom##CLASS##Decl(CLASS##Decl *D) { \
TRY_TO(WalkUpFrom##BASE(D)); \
TRY_TO(Visit##CLASS##Decl(D)); \
return true; \
} \
bool Visit##CLASS##Decl(CLASS##Decl *D) { return true; }
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 402 of file DataRecursiveASTVisitor.h.

#define DECL (   CLASS,
  BASE 
)
Value:
case Decl::CLASS: \
if (!getDerived().Traverse##CLASS##Decl(static_cast<CLASS##Decl *>(D))) \
return false; \
break;
if(T->getSizeExpr()) TRY_TO(TraverseStmt(T-> getSizeExpr()))
return(x >> y)|(x<< (32-y))

Definition at line 402 of file DataRecursiveASTVisitor.h.

#define DEF_TRAVERSE_DECL (   DECL,
  CODE 
)
Value:
template <typename Derived> \
bool RecursiveASTVisitor<Derived>::Traverse##DECL(DECL *D) { \
TRY_TO(WalkUpFrom##DECL(D)); \
{ CODE; } \
TRY_TO(TraverseDeclContextHelper(dyn_cast<DeclContext>(D))); \
return true; \
}
#define bool
Definition: stdbool.h:31
#define DECL(CLASS, BASE)
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)
#define DEF_TRAVERSE_STMT (   STMT,
  CODE 
)
Value:
template <typename Derived> \
bool RecursiveASTVisitor<Derived>::Traverse##STMT(STMT *S) { \
TRY_TO(WalkUpFrom##STMT(S)); \
StmtQueueAction StmtQueue(*this); \
{ CODE; } \
for (Stmt *SubStmt : S->children()) { \
StmtQueue.queue(SubStmt); \
} \
return true; \
}
#define STMT(CLASS, PARENT)
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
for(auto typeArg:T->getTypeArgsAsWritten())
#define TRY_TO(CALL_EXPR)
#define DEF_TRAVERSE_TYPE (   TYPE,
  CODE 
)
Value:
template <typename Derived> \
bool RecursiveASTVisitor<Derived>::Traverse##TYPE(TYPE *T) { \
TRY_TO(WalkUpFrom##TYPE(T)); \
{ CODE; } \
return true; \
}
#define bool
Definition: stdbool.h:31
#define TYPE(CLASS, BASE)
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 806 of file DataRecursiveASTVisitor.h.

#define DEF_TRAVERSE_TYPELOC (   TYPE,
  CODE 
)
Value:
template <typename Derived> \
bool RecursiveASTVisitor<Derived>::Traverse##TYPE##Loc(TYPE##Loc TL) { \
if (getDerived().shouldWalkTypesOfTypeLocs()) \
TRY_TO(WalkUpFrom##TYPE(const_cast<TYPE *>(TL.getTypePtr()))); \
TRY_TO(WalkUpFrom##TYPE##Loc(TL)); \
{ CODE; } \
return true; \
}
#define bool
Definition: stdbool.h:31
#define TYPE(CLASS, BASE)
if(T->getSizeExpr()) TRY_TO(TraverseStmt(T-> getSizeExpr()))
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 962 of file DataRecursiveASTVisitor.h.

#define DISPATCH (   NAME,
  CLASS,
  VAR 
)    return getDerived().Traverse##NAME(static_cast<CLASS *>(VAR))

Definition at line 466 of file DataRecursiveASTVisitor.h.

#define DISPATCH_STMT (   NAME,
  CLASS,
  VAR 
)
Value:
TRY_TO(Traverse##NAME(static_cast<CLASS *>(VAR))); \
break
#define TRY_TO(CALL_EXPR)
#define GENERAL_BINOP_FALLBACK (   NAME,
  BINOP_TYPE 
)
Value:
bool TraverseBin##NAME(BINOP_TYPE *S) { \
TRY_TO(WalkUpFromBin##NAME(S)); \
StmtQueueAction StmtQueue(*this); \
StmtQueue.queue(S->getLHS()); \
StmtQueue.queue(S->getRHS()); \
return true; \
} \
bool WalkUpFromBin##NAME(BINOP_TYPE *S) { \
TRY_TO(WalkUpFrom##BINOP_TYPE(S)); \
TRY_TO(VisitBin##NAME(S)); \
return true; \
} \
bool VisitBin##NAME(BINOP_TYPE *S) { return true; }
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 306 of file DataRecursiveASTVisitor.h.

#define OPENMP_CLAUSE (   Name,
  Class 
)    bool Visit##Class(Class *C);

Definition at line 429 of file DataRecursiveASTVisitor.h.

#define OPENMP_CLAUSE (   Name,
  Class 
)
Value:
case OMPC_##Name: \
TRY_TO(Visit##Class(static_cast<Class *>(C))); \
break;
#define TRY_TO(CALL_EXPR)

Definition at line 429 of file DataRecursiveASTVisitor.h.

#define OPERATOR (   NAME)
Value:
bool TraverseUnary##NAME(UnaryOperator *S) { \
TRY_TO(WalkUpFromUnary##NAME(S)); \
StmtQueueAction StmtQueue(*this); \
StmtQueue.queue(S->getSubExpr()); \
return true; \
} \
bool WalkUpFromUnary##NAME(UnaryOperator *S) { \
TRY_TO(WalkUpFromUnaryOperator(S)); \
TRY_TO(VisitUnary##NAME(S)); \
return true; \
} \
bool VisitUnary##NAME(UnaryOperator *S) { return true; }
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 329 of file DataRecursiveASTVisitor.h.

#define OPERATOR (   NAME)    GENERAL_BINOP_FALLBACK(NAME, BinaryOperator)

Definition at line 329 of file DataRecursiveASTVisitor.h.

#define OPERATOR (   NAME)    GENERAL_BINOP_FALLBACK(NAME##Assign, CompoundAssignOperator)

Definition at line 329 of file DataRecursiveASTVisitor.h.

#define OPERATOR (   NAME)
Value:
case BO_##NAME: \
DISPATCH_STMT(Bin##NAME, BinaryOperator, S);
#define DISPATCH_STMT(NAME, CLASS, VAR)

Definition at line 329 of file DataRecursiveASTVisitor.h.

#define OPERATOR (   NAME)
Value:
case BO_##NAME##Assign: \
DISPATCH_STMT(Bin##NAME##Assign, CompoundAssignOperator, S);
#define DISPATCH_STMT(NAME, CLASS, VAR)

Definition at line 329 of file DataRecursiveASTVisitor.h.

#define OPERATOR (   NAME)
Value:
case UO_##NAME: \
DISPATCH_STMT(Unary##NAME, UnaryOperator, S);
#define DISPATCH_STMT(NAME, CLASS, VAR)

Definition at line 329 of file DataRecursiveASTVisitor.h.

#define RecursiveASTVisitor   DataRecursiveASTVisitor

Definition at line 64 of file DataRecursiveASTVisitor.h.

#define STMT (   CLASS,
  PARENT 
)    bool Traverse##CLASS(CLASS *S);

Definition at line 274 of file DataRecursiveASTVisitor.h.

#define STMT (   CLASS,
  PARENT 
)
Value:
bool WalkUpFrom##CLASS(CLASS *S) { \
TRY_TO(WalkUpFrom##PARENT(S)); \
TRY_TO(Visit##CLASS(S)); \
return true; \
} \
bool Visit##CLASS(CLASS *S) { return true; }
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 274 of file DataRecursiveASTVisitor.h.

#define STMT (   CLASS,
  PARENT 
)
Value:
case Stmt::CLASS##Class: \
DISPATCH_STMT(CLASS, CLASS, S);
#define DISPATCH_STMT(NAME, CLASS, VAR)

Definition at line 274 of file DataRecursiveASTVisitor.h.

#define TRY_TO (   CALL_EXPR)
Value:
do { \
if (!getDerived().CALL_EXPR) \
return false; \
} while (0)
if(T->getSizeExpr()) TRY_TO(TraverseStmt(T-> getSizeExpr()))
return(x >> y)|(x<< (32-y))

Definition at line 70 of file DataRecursiveASTVisitor.h.

#define TYPE (   CLASS,
  BASE 
)    bool Traverse##CLASS##Type(CLASS##Type *T);

Definition at line 382 of file DataRecursiveASTVisitor.h.

#define TYPE (   CLASS,
  BASE 
)
Value:
bool WalkUpFrom##CLASS##Type(CLASS##Type *T) { \
TRY_TO(WalkUpFrom##BASE(T)); \
TRY_TO(Visit##CLASS##Type(T)); \
return true; \
} \
bool Visit##CLASS##Type(CLASS##Type *T) { return true; }
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 382 of file DataRecursiveASTVisitor.h.

#define TYPE (   CLASS,
  BASE 
)
Value:
bool WalkUpFrom##CLASS##TypeLoc(CLASS##TypeLoc TL) { \
TRY_TO(WalkUpFrom##BASE##Loc(TL)); \
TRY_TO(Visit##CLASS##TypeLoc(TL)); \
return true; \
} \
bool Visit##CLASS##TypeLoc(CLASS##TypeLoc TL) { return true; }
#define bool
Definition: stdbool.h:31
return(x >> y)|(x<< (32-y))
#define TRY_TO(CALL_EXPR)

Definition at line 382 of file DataRecursiveASTVisitor.h.

#define TYPE (   CLASS,
  BASE 
)
Value:
case Type::CLASS: \
DISPATCH(CLASS##Type, CLASS##Type, const_cast<Type *>(T.getTypePtr()));
#define DISPATCH(NAME, CLASS, VAR)

Definition at line 382 of file DataRecursiveASTVisitor.h.

#define TYPELOC (   CLASS,
  BASE 
)    bool Traverse##CLASS##TypeLoc(CLASS##TypeLoc TL);

Definition at line 362 of file DataRecursiveASTVisitor.h.

#define TYPELOC (   CLASS,
  BASE 
)
Value:
case TypeLoc::CLASS: \
return getDerived().Traverse##CLASS##TypeLoc(TL.castAs<CLASS##TypeLoc>());
return(x >> y)|(x<< (32-y))

Definition at line 362 of file DataRecursiveASTVisitor.h.

#define UNARYOP_LIST ( )
Value:
OPERATOR(PostInc) OPERATOR(PostDec) OPERATOR(PreInc) OPERATOR(PreDec) \
OPERATOR(AddrOf) OPERATOR(Deref) OPERATOR(Plus) OPERATOR(Minus) \
OPERATOR(Not) OPERATOR(LNot) OPERATOR(Real) OPERATOR(Imag) \
OPERATOR(Extension)
#define OPERATOR(NAME)

Definition at line 41 of file DataRecursiveASTVisitor.h.

Referenced by clang::RecursiveASTVisitor< Derived >::TraverseStmt().

#define VISITORCLASS   RecursiveASTVisitor

Definition at line 575 of file DataRecursiveASTVisitor.h.