Showing content from https://clang.llvm.org/doxygen/RecursiveASTVisitor_8h.html below:
clang: include/clang/AST/RecursiveASTVisitor.h File Reference
#define TRY_TO(CALL_EXPR) #define ATTR_VISITOR_DECLS_ONLY #define TRAVERSE_STMT_BASE(NAME, CLASS, VAR, QUEUE) #define TRY_TO_TRAVERSE_OR_ENQUEUE_STMT(S) #define ABSTRACT_STMT(STMT) #define STMT(CLASS, PARENT) bool Traverse##CLASS(CLASS *S, DataRecursionQueue *Queue = nullptr); #define STMT(CLASS, PARENT) #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 DEF_TRAVERSE_TMPL_INST(TMPLDECLKIND) bool TraverseTemplateInstantiations(TMPLDECLKIND##TemplateDecl *D); #define GEN_CLANG_CLAUSE_CLASS #define CLAUSE_CLASS(Enum, Str, Class) bool Visit##Class(Class *C); #define ABSTRACT_STMT(STMT) #define STMT(CLASS, PARENT) #define ABSTRACT_STMT(STMT) #define STMT(CLASS, PARENT) #define INITLISTEXPR(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_TMPL_DECL(TMPLDECLKIND) #define DEF_TRAVERSE_TMPL_SPEC_DECL(TMPLDECLKIND, DECLKIND) #define DEF_TRAVERSE_TMPL_PART_SPEC_DECL(TMPLDECLKIND, DECLKIND) #define DEF_TRAVERSE_STMT(STMT, CODE) #define GEN_CLANG_CLAUSE_CLASS #define CLAUSE_CLASS(Enum, Str, Class) #define CLAUSE_NO_CLASS(Enum, Str) template<typename FirstMethodPtrTy , typename SecondMethodPtrTy > LLVM_ATTRIBUTE_ALWAYS_INLINE LLVM_ATTRIBUTE_NODEBUG auto clang::detail::isSameMethod (FirstMethodPtrTy FirstMethodPtr, SecondMethodPtrTy SecondMethodPtr) -> bool Returns true if and only if FirstMethodPtr
and SecondMethodPtr
are pointers to the same non-static member function.
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 clang::DEF_TRAVERSE_TYPE (RValueReferenceType, { TRY_TO(TraverseType(T->getPointeeType()));}) DEF_TRAVERSE_TYPE(MemberPointerType 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()));if(T->getSizeExpr()) TRY_TO(TraverseStmt(const_cast< Expr * >(T->getSizeExpr())));}) DEF_TRAVERSE_TYPE(ArrayParameterType clang::if (T->getSizeExpr()) TRY_TO(TraverseStmt(const_cast< Expr * >(T -> getSizeExpr()))) clang::DEF_TRAVERSE_TYPE (IncompleteArrayType, { TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(VariableArrayType clang::TRY_TO (TraverseStmt(T->getSizeExpr())) clang::DEF_TRAVERSE_TYPE (DependentSizedArrayType, { TRY_TO(TraverseType(T->getElementType()));if(T->getSizeExpr()) TRY_TO(TraverseStmt(T->getSizeExpr()));}) DEF_TRAVERSE_TYPE(DependentAddressSpaceType clang::DEF_TRAVERSE_TYPE (DependentVectorType, { if(T->getSizeExpr()) TRY_TO(TraverseStmt(T->getSizeExpr()));TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(DependentSizedExtVectorType clang::TRY_TO (TraverseType(T->getElementType())) clang::DEF_TRAVERSE_TYPE (VectorType, { TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(ExtVectorType clang::DEF_TRAVERSE_TYPE (ConstantMatrixType, { TRY_TO(TraverseType(T->getElementType()));}) DEF_TRAVERSE_TYPE(DependentSizedMatrixType clang::DEF_TRAVERSE_TYPE (FunctionNoProtoType, { TRY_TO(TraverseType(T->getReturnType()));}) DEF_TRAVERSE_TYPE(FunctionProtoType clang::for (const auto &A :T->param_types()) clang::for (const auto &E :T->exceptions()) clang::if (Expr *NE=T->getNoexceptExpr()) TRY_TO(TraverseStmt(NE)) clang::DEF_TRAVERSE_TYPE (TypeOfExprType, { TRY_TO(TraverseStmt(T->getUnderlyingExpr()));}) DEF_TRAVERSE_TYPE(TypeOfType clang::DEF_TRAVERSE_TYPE (DecltypeType, { TRY_TO(TraverseStmt(T->getUnderlyingExpr()));}) DEF_TRAVERSE_TYPE(PackIndexingType clang::TRY_TO (TraverseStmt(T->getIndexExpr())) clang::DEF_TRAVERSE_TYPE (UnaryTransformType, { TRY_TO(TraverseType(T->getBaseType()));TRY_TO(TraverseType(T->getUnderlyingType()));}) DEF_TRAVERSE_TYPE(AutoType clang::DEF_TRAVERSE_TYPE (DeducedTemplateSpecializationType, { TRY_TO(TraverseTemplateName(T->getTemplateName()));TRY_TO(TraverseType(T->getDeducedType()));}) DEF_TRAVERSE_TYPE(SubstTemplateTypeParmType clang::DEF_TRAVERSE_TYPE (SubstTemplateTypeParmPackType, { TRY_TO(TraverseTemplateArgument(T->getArgumentPack()));}) DEF_TRAVERSE_TYPE(TemplateSpecializationType clang::TRY_TO (TraverseTemplateArguments(T->template_arguments())) clang::DEF_TRAVERSE_TYPE (AttributedType, { TRY_TO(TraverseType(T->getModifiedType()));}) DEF_TRAVERSE_TYPE(CountAttributedType clang::TRY_TO (TraverseType(T->desugar())) clang::DEF_TRAVERSE_TYPE (BTFTagAttributedType, { TRY_TO(TraverseType(T->getWrappedType()));}) DEF_TRAVERSE_TYPE(HLSLAttributedResourceType clang::DEF_TRAVERSE_TYPE (ParenType, { TRY_TO(TraverseType(T->getInnerType()));}) DEF_TRAVERSE_TYPE(MacroQualifiedType clang::DEF_TRAVERSE_TYPE (ElaboratedType, { if(T->getQualifier()) { TRY_TO(TraverseNestedNameSpecifier(T->getQualifier()));} TRY_TO(TraverseType(T->getNamedType()));}) DEF_TRAVERSE_TYPE(DependentNameType clang::DEF_TRAVERSE_TYPE (DependentTemplateSpecializationType, { TRY_TO(TraverseNestedNameSpecifier(T->getQualifier()));TRY_TO(TraverseTemplateArguments(T->template_arguments()));}) DEF_TRAVERSE_TYPE(PackExpansionType clang::DEF_TRAVERSE_TYPE (ObjCObjectType, { if(T->getBaseType().getTypePtr() !=T) TRY_TO(TraverseType(T->getBaseType()));for(auto typeArg :T->getTypeArgsAsWritten()) { TRY_TO(TraverseType(typeArg));} }) DEF_TRAVERSE_TYPE(ObjCObjectPointerType clang::DEF_TRAVERSE_TYPE (AtomicType, { TRY_TO(TraverseType(T->getValueType()));}) DEF_TRAVERSE_TYPE(PipeType clang::DEF_TRAVERSE_TYPE (DependentBitIntType, { TRY_TO(TraverseStmt(T->getNumBitsExpr()));}) template< typename Derived > bool RecursiveASTVisitor< Derived > 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 clang::DEF_TRAVERSE_TYPELOC (RValueReferenceType, { TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()));}) DEF_TRAVERSE_TYPELOC(MemberPointerType else clang::TRY_TO (TraverseType(QualType(TL.getTypePtr() ->getClass(), 0))) 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()));TRY_TO(TraverseArrayTypeLocHelper(TL));}) DEF_TRAVERSE_TYPELOC(ArrayParameterType clang::TRY_TO (TraverseArrayTypeLocHelper(TL)) clang::DEF_TRAVERSE_TYPELOC (IncompleteArrayType, { TRY_TO(TraverseTypeLoc(TL.getElementLoc()));TRY_TO(TraverseArrayTypeLocHelper(TL));}) DEF_TRAVERSE_TYPELOC(VariableArrayType clang::DEF_TRAVERSE_TYPELOC (DependentSizedArrayType, { TRY_TO(TraverseTypeLoc(TL.getElementLoc()));TRY_TO(TraverseArrayTypeLocHelper(TL));}) DEF_TRAVERSE_TYPELOC(DependentAddressSpaceType clang::TRY_TO (TraverseType(TL.getTypePtr() ->getPointeeType())) 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 (DependentVectorType, { if(TL.getTypePtr() ->getSizeExpr()) TRY_TO(TraverseStmt(TL.getTypePtr() ->getSizeExpr()));TRY_TO(TraverseType(TL.getTypePtr() ->getElementType()));}) DEF_TRAVERSE_TYPELOC(ExtVectorType clang::DEF_TRAVERSE_TYPELOC (ConstantMatrixType, { TRY_TO(TraverseStmt(TL.getAttrRowOperand()));TRY_TO(TraverseStmt(TL.getAttrColumnOperand()));TRY_TO(TraverseType(TL.getTypePtr() ->getElementType()));}) DEF_TRAVERSE_TYPELOC(DependentSizedMatrixType clang::TRY_TO (TraverseStmt(TL.getAttrColumnOperand())) clang::TRY_TO (TraverseType(TL.getTypePtr() ->getElementType())) clang::DEF_TRAVERSE_TYPELOC (FunctionNoProtoType, { TRY_TO(TraverseTypeLoc(TL.getReturnLoc()));}) DEF_TRAVERSE_TYPELOC(FunctionProtoType clang::for (unsigned I=0, E=TL.getNumParams();I !=E;++I) clang::DEF_TRAVERSE_TYPELOC (TypeOfExprType, { TRY_TO(TraverseStmt(TL.getUnderlyingExpr()));}) DEF_TRAVERSE_TYPELOC(TypeOfType clang::DEF_TRAVERSE_TYPELOC (DecltypeType, { TRY_TO(TraverseStmt(TL.getTypePtr() ->getUnderlyingExpr()));}) DEF_TRAVERSE_TYPELOC(PackIndexingType clang::TRY_TO (TraverseStmt(TL.getTypePtr() ->getIndexExpr())) clang::DEF_TRAVERSE_TYPELOC (UnaryTransformType, { TRY_TO(TraverseTypeLoc(TL.getUnderlyingTInfo() ->getTypeLoc()));}) DEF_TRAVERSE_TYPELOC(AutoType clang::if (TL.isConstrained()) clang::DEF_TRAVERSE_TYPELOC (DeducedTemplateSpecializationType, { TRY_TO(TraverseTemplateName(TL.getTypePtr() ->getTemplateName()));TRY_TO(TraverseType(TL.getTypePtr() ->getDeducedType()));}) DEF_TRAVERSE_TYPELOC(SubstTemplateTypeParmType clang::DEF_TRAVERSE_TYPELOC (SubstTemplateTypeParmPackType, { TRY_TO(TraverseTemplateArgument(TL.getTypePtr() ->getArgumentPack()));}) DEF_TRAVERSE_TYPELOC(TemplateSpecializationType clang::DEF_TRAVERSE_TYPELOC (ParenType, { TRY_TO(TraverseTypeLoc(TL.getInnerLoc()));}) DEF_TRAVERSE_TYPELOC(MacroQualifiedType clang::DEF_TRAVERSE_TYPELOC (AttributedType, { TRY_TO(TraverseTypeLoc(TL.getModifiedLoc()));}) DEF_TRAVERSE_TYPELOC(CountAttributedType clang::DEF_TRAVERSE_TYPELOC (BTFTagAttributedType, { TRY_TO(TraverseTypeLoc(TL.getWrappedLoc()));}) DEF_TRAVERSE_TYPELOC(HLSLAttributedResourceType clang::DEF_TRAVERSE_TYPELOC (ElaboratedType, { if(TL.getQualifierLoc()) { TRY_TO(TraverseNestedNameSpecifierLoc(TL.getQualifierLoc()));} TRY_TO(TraverseTypeLoc(TL.getNamedTypeLoc()));}) DEF_TRAVERSE_TYPELOC(DependentNameType clang::DEF_TRAVERSE_TYPELOC (DependentTemplateSpecializationType, { if(TL.getQualifierLoc()) { TRY_TO(TraverseNestedNameSpecifierLoc(TL.getQualifierLoc()));} for(unsigned I=0, E=TL.getNumArgs();I !=E;++I) { TRY_TO(TraverseTemplateArgumentLoc(TL.getArgLoc(I)));} }) DEF_TRAVERSE_TYPELOC(PackExpansionType clang::DEF_TRAVERSE_TYPELOC (ObjCTypeParamType, { for(unsigned I=0, N=TL.getNumProtocols();I !=N;++I) { ObjCProtocolLoc ProtocolLoc(TL.getProtocol(I), TL.getProtocolLoc(I));TRY_TO(TraverseObjCProtocolLoc(ProtocolLoc));} }) DEF_TRAVERSE_TYPELOC(ObjCObjectType clang::for (unsigned i=0, n=TL.getNumTypeArgs();i !=n;++i) TRY_TO(TraverseTypeLoc(TL.getTypeArgTInfo(i) -> getTypeLoc())) clang::for (unsigned I=0, N=TL.getNumProtocols();I !=N;++I) clang::DEF_TRAVERSE_TYPELOC (ObjCObjectPointerType, { TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()));}) DEF_TRAVERSE_TYPELOC(AtomicType clang::DEF_TRAVERSE_TYPELOC (PipeType, { TRY_TO(TraverseTypeLoc(TL.getValueLoc()));}) DEF_TRAVERSE_TYPELOC(DependentBitIntType clang::DEF_TRAVERSE_DECL (BlockDecl, { if(TypeSourceInfo *TInfo=D->getSignatureAsWritten()) TRY_TO(TraverseTypeLoc(TInfo->getTypeLoc()));TRY_TO(TraverseStmt(D->getBody()));for(const auto &I :D->captures()) { if(I.hasCopyExpr()) { TRY_TO(TraverseStmt(I.getCopyExpr()));} } ShouldVisitChildren=false;}) DEF_TRAVERSE_DECL(OutlinedFunctionDecl clang::DEF_TRAVERSE_DECL (CapturedDecl, { TRY_TO(TraverseStmt(D->getBody()));ShouldVisitChildren=false;}) DEF_TRAVERSE_DECL(LifetimeExtendedTemporaryDecl clang::DEF_TRAVERSE_DECL (FileScopeAsmDecl, { TRY_TO(TraverseStmt(D->getAsmString()));}) DEF_TRAVERSE_DECL(TopLevelStmtDecl clang::DEF_TRAVERSE_DECL (FriendDecl, { if(D->getFriendType()) { TRY_TO(TraverseTypeLoc(D->getFriendType() ->getTypeLoc()));if(auto *ET=D->getFriendType() ->getType() ->getAs< ElaboratedType >()) TRY_TO(TraverseDecl(ET->getOwnedTagDecl()));} else { TRY_TO(TraverseDecl(D->getFriendDecl()));} }) DEF_TRAVERSE_DECL(FriendTemplateDecl else clang::TRY_TO (TraverseDecl(D->getFriendDecl())) clang::for (unsigned I=0, E=D->getNumTemplateParameters();I< E;++I) clang::DEF_TRAVERSE_DECL (ObjCPropertyImplDecl, { }) DEF_TRAVERSE_DECL(StaticAssertDecl clang::TRY_TO (TraverseStmt(D->getMessage())) clang::DEF_TRAVERSE_DECL (TranslationUnitDecl, { auto Scope=D->getASTContext().getTraversalScope();bool HasLimitedScope=Scope.size() !=1||!isa< TranslationUnitDecl >(Scope.front());if(HasLimitedScope) { ShouldVisitChildren=false;for(auto *Child :Scope) { if(!canIgnoreChildDeclWhileTraversingDeclContext(Child)) TRY_TO(TraverseDecl(Child));} } }) DEF_TRAVERSE_DECL(NamespaceAliasDecl clang::DEF_TRAVERSE_DECL (LabelDecl, { }) DEF_TRAVERSE_DECL(NamespaceDecl
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4