Home | History | Annotate | Download | only in libclang

Lines Matching refs:CXCursor

1 //===- CXCursor.cpp - Routines for manipulating CXCursors -----------------===//
12 // CXCursor.
17 #include "CXCursor.h"
33 using namespace cxcursor;
35 CXCursor cxcursor::MakeCXCursorInvalid(CXCursorKind K, CXTranslationUnit TU) {
37 CXCursor C = { K, 0, { nullptr, nullptr, TU } };
66 CXCursor cxcursor::MakeCXCursor(const Attr *A, const Decl *Parent,
69 CXCursor C = { GetCursorKind(A), 0, { Parent, A, TU } };
73 CXCursor cxcursor::MakeCXCursor(const Decl *D, CXTranslationUnit TU,
93 CXCursor C = { K, SelectorIdIndex,
98 CXCursor C = { K, 0, { D, (void*)(intptr_t) (FirstInDeclGroup ? 1 : 0), TU }};
102 CXCursor cxcursor::MakeCXCursor(const Stmt *S, const Decl *Parent,
516 CXCursor C = { K, 0, { Parent, S, TU } };
588 CXCursor C = { K, 0, { Parent, S, TU } };
592 CXCursor cxcursor::MakeCursorObjCSuperClassRef(ObjCInterfaceDecl *Super,
597 CXCursor C = { CXCursor_ObjCSuperClassRef, 0, { Super, RawLoc, TU } };
602 cxcursor::getCursorObjCSuperClassRef(CXCursor C) {
608 CXCursor cxcursor::MakeCursorObjCProtocolRef(const ObjCProtocolDecl *Proto,
613 CXCursor C = { CXCursor_ObjCProtocolRef, 0, { Proto, RawLoc, TU } };
618 cxcursor::getCursorObjCProtocolRef(CXCursor C) {
624 CXCursor cxcursor::MakeCursorObjCClassRef(const ObjCInterfaceDecl *Class,
632 CXCursor C = { CXCursor_ObjCClassRef, 0, { Class, RawLoc, TU } };
637 cxcursor::getCursorObjCClassRef(CXCursor C) {
643 CXCursor cxcursor::MakeCursorTypeRef(const TypeDecl *Type, SourceLocation Loc,
647 CXCursor C = { CXCursor_TypeRef, 0, { Type, RawLoc, TU } };
652 cxcursor::getCursorTypeRef(CXCursor C) {
658 CXCursor cxcursor::MakeCursorTemplateRef(const TemplateDecl *Template,
663 CXCursor C = { CXCursor_TemplateRef, 0, { Template, RawLoc, TU } };
668 cxcursor::getCursorTemplateRef(CXCursor C) {
674 CXCursor cxcursor::MakeCursorNamespaceRef(const NamedDecl *NS,
681 CXCursor C = { CXCursor_NamespaceRef, 0, { NS, RawLoc, TU } };
686 cxcursor::getCursorNamespaceRef(CXCursor C) {
692 CXCursor cxcursor::MakeCursorVariableRef(const VarDecl *Var, SourceLocation Loc,
697 CXCursor C = { CXCursor_VariableRef, 0, { Var, RawLoc, TU } };
702 cxcursor::getCursorVariableRef(CXCursor C) {
708 CXCursor cxcursor::MakeCursorMemberRef(const FieldDecl *Field, SourceLocation Loc,
713 CXCursor C = { CXCursor_MemberRef, 0, { Field, RawLoc, TU } };
718 cxcursor::getCursorMemberRef(CXCursor C) {
724 CXCursor cxcursor::MakeCursorCXXBaseSpecifier(const CXXBaseSpecifier *B,
726 CXCursor C = { CXCursor_CXXBaseSpecifier, 0, { B, nullptr, TU } };
730 const CXXBaseSpecifier *cxcursor::getCursorCXXBaseSpecifier(CXCursor C) {
735 CXCursor cxcursor::MakePreprocessingDirectiveCursor(SourceRange Range,
737 CXCursor C = { CXCursor_PreprocessingDirective, 0,
745 SourceRange cxcursor::getCursorPreprocessingDirective(CXCursor C) {
753 CXCursor cxcursor::MakeMacroDefinitionCursor(const MacroDefinition *MI,
755 CXCursor C = { CXCursor_MacroDefinition, 0, { MI, nullptr, TU } };
759 const MacroDefinition *cxcursor::getCursorMacroDefinition(CXCursor C) {
764 CXCursor cxcursor::MakeMacroExpansionCursor(MacroExpansion *MI,
766 CXCursor C = { CXCursor_MacroExpansion, 0, { MI, nullptr, TU } };
770 CXCursor cxcursor::MakeMacroExpansionCursor(MacroDefinition *MI,
774 CXCursor C = { CXCursor_MacroExpansion, 0, { MI, Loc.getPtrEncoding(), TU } };
778 const IdentifierInfo *cxcursor::MacroExpansionCursor::getName() const {
783 const MacroDefinition *cxcursor::MacroExpansionCursor::getDefinition() const {
788 SourceRange cxcursor::MacroExpansionCursor::getSourceRange() const {
794 CXCursor cxcursor::MakeInclusionDirectiveCursor(InclusionDirective *ID,
796 CXCursor C = { CXCursor_InclusionDirective, 0, { ID, nullptr, TU } };
800 const InclusionDirective *cxcursor::getCursorInclusionDirective(CXCursor C) {
805 CXCursor cxcursor::MakeCursorLabelRef(LabelStmt *Label, SourceLocation Loc,
810 CXCursor C = { CXCursor_LabelRef, 0, { Label, RawLoc, TU } };
815 cxcursor::getCursorLabelRef(CXCursor C) {
821 CXCursor cxcursor::MakeCursorOverloadedDeclRef(const OverloadExpr *E,
826 CXCursor C = {
833 CXCursor cxcursor::MakeCursorOverloadedDeclRef(const Decl *D,
839 CXCursor C = {
846 CXCursor cxcursor::MakeCursorOverloadedDeclRef(TemplateName Name,
852 CXCursor C = {
859 std::pair<cxcursor::OverloadedDeclRefStorage, SourceLocation>
860 cxcursor::getCursorOverloadedDeclRef(CXCursor C) {
867 const Decl *cxcursor::getCursorDecl(CXCursor Cursor) {
871 const Expr *cxcursor::getCursorExpr(CXCursor Cursor) {
875 const Stmt *cxcursor::getCursorStmt(CXCursor Cursor) {
884 const Attr *cxcursor::getCursorAttr(CXCursor Cursor) {
888 const Decl *cxcursor::getCursorParentDecl(CXCursor Cursor) {
892 ASTContext &cxcursor::getCursorContext(CXCursor Cursor) {
896 ASTUnit *cxcursor::getCursorASTUnit(CXCursor Cursor) {
903 CXTranslationUnit cxcursor::getCursorTU(CXCursor Cursor) {
907 void cxcursor::getOverriddenCursors(CXCursor cursor,
908 SmallVectorImpl<CXCursor> &overridden) {
925 cxcursor::getSelectorIdentifierIndexAndLoc(CXCursor cursor) {
942 CXCursor cxcursor::getSelectorIdentifierCursor(int SelIdx, CXCursor cursor) {
943 CXCursor newCursor = cursor;
965 CXCursor cxcursor::getTypeRefCursor(CXCursor cursor) {
1006 bool cxcursor::operator==(CXCursor X, CXCursor Y) {
1013 bool cxcursor::isFirstInDeclGroup(CXCursor C) {
1019 // libclang CXCursor APIs
1024 int clang_Cursor_isNull(CXCursor cursor) {
1028 CXTranslationUnit clang_Cursor_getTranslationUnit(CXCursor cursor) {
1032 int clang_Cursor_getNumArguments(CXCursor C) {
1034 const Decl *D = cxcursor::getCursorDecl(C);
1042 const Expr *E = cxcursor::getCursorExpr(C);
1051 CXCursor clang_Cursor_getArgument(CXCursor C, unsigned i) {
1053 const Decl *D = cxcursor::getCursorDecl(C);
1056 return cxcursor::MakeCXCursor(MD->parameters()[i],
1057 cxcursor
1060 return cxcursor::MakeCXCursor(FD->parameters()[i],
1061 cxcursor::getCursorTU(C));
1066 const Expr *E = cxcursor::getCursorExpr(C);
1069 return cxcursor::MakeCXCursor(CE->getArg(i),
1071 cxcursor::getCursorTU(C));
1079 int clang_Cursor_getNumTemplateArguments(CXCursor C) {
1117 CXCursor C, unsigned I, TemplateArgument *TA) {
1142 enum CXTemplateArgumentKind clang_Cursor_getTemplateArgumentKind(CXCursor C,
1166 CXType clang_Cursor_getTemplateArgumentType(CXCursor C, unsigned I) {
1180 long long clang_Cursor_getTemplateArgumentValue(CXCursor C, unsigned I) {
1196 unsigned long long clang_Cursor_getTemplateArgumentUnsignedValue(CXCursor C,
1219 typedef llvm::DenseMap<CXCursor, unsigned> CXCursorSet_Impl;
1228 template<> struct DenseMapInfo<CXCursor> {
1230 static inline CXCursor getEmptyKey() {
1233 static inline CXCursor getTombstoneKey() {
1236 static inline unsigned getHashValue(const CXCursor &cursor) {
1240 static inline bool isEqual(const CXCursor &x, const CXCursor &y) {
1257 unsigned clang_CXCursorSet_contains(CXCursorSet set, CXCursor cursor) {
1264 unsigned clang_CXCursorSet_insert(CXCursorSet set, CXCursor cursor) {
1279 CXCompletionString clang_getCursorCompletionString(CXCursor cursor) {
1314 typedef SmallVector<CXCursor, 2> CursorVec;
1327 void *cxcursor::createOverridenCXCursorsPool() {
1331 void cxcursor::disposeOverridenCXCursorsPool(void *pool) {
1336 void clang_getOverriddenCursors(CXCursor cursor,
1337 CXCursor **overridden,
1344 CXTranslationUnit TU = cxcursor::getCursorTU(cursor);
1372 CXCursor backRefCursor = MakeCXCursorInvalid(CXCursor_InvalidFile, TU);
1374 assert(cxcursor::getCursorTU(backRefCursor) == TU);
1378 cxcursor::getOverriddenCursors(cursor, *Vec);
1393 void clang_disposeOverriddenCursors(CXCursor *overridden) {
1413 int clang_Cursor_isDynamicCall(CXCursor C) {
1446 CXType clang_Cursor_getReceiverType(CXCursor C) {
1447 CXTranslationUnit TU = cxcursor::getCursorTU(C);