diff options
| -rw-r--r-- | clang/include/clang-c/Index.h | 57 | ||||
| -rw-r--r-- | clang/tools/CIndex/CIndex.cpp | 61 | ||||
| -rw-r--r-- | clang/tools/CIndex/CIndex.exports | 2 |
3 files changed, 4 insertions, 116 deletions
diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index ae994226ab9..9e1a02ec241 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -269,14 +269,16 @@ CINDEX_LINKAGE void clang_disposeString(CXString string); * TU = clang_createTranslationUnit(Idx, "IndexTest.pch"); * * // This will load all the symbols from 'IndexTest.pch' - * clang_loadTranslationUnit(TU, TranslationUnitVisitor, 0); + * clang_visitChildren(TU, clang_getTranslationUnitCursor(TU), + * TranslationUnitVisitor, 0); * clang_disposeTranslationUnit(TU); * * // This will load all the symbols from 'IndexTest.c', excluding symbols * // from 'IndexTest.pch'. * char *args[] = { "-Xclang", "-include-pch=IndexTest.pch", 0 }; * TU = clang_createTranslationUnitFromSourceFile(Idx, "IndexTest.c", 2, args); - * clang_loadTranslationUnit(TU, TranslationUnitVisitor, 0); + * clang_loadTranslationUnit(TU, clang_getTranslationUnitCursor(TU), + * TranslationUnitVisitor, 0); * clang_disposeTranslationUnit(TU); * * This process of creating the 'pch', loading it separately, and using it (via @@ -341,58 +343,7 @@ CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnitFromSourceFile( const char **clang_command_line_args ); -/* - Usage: clang_loadTranslationUnit(). Will load the toplevel declarations - within a translation unit, issuing a 'callback' for each one. - - void printObjCInterfaceNames(CXTranslationUnit X, CXCursor C) { - if (clang_getCursorKind(C) == Cursor_Declaration) { - CXDecl D = clang_getCursorDecl(C); - if (clang_getDeclKind(D) == CXDecl_ObjC_interface) - printf("@interface %s in file %s on line %d column %d\n", - clang_getDeclSpelling(D), clang_getCursorSource(C), - clang_getCursorLine(C), clang_getCursorColumn(C)); - } - } - static void usage { - clang_loadTranslationUnit(CXTranslationUnit, printObjCInterfaceNames); - } -*/ typedef void *CXClientData; -typedef void (*CXTranslationUnitIterator)(CXTranslationUnit, CXCursor, - CXClientData); -CINDEX_LINKAGE void clang_loadTranslationUnit(CXTranslationUnit, - CXTranslationUnitIterator, - CXClientData); - -/* - Usage: clang_loadDeclaration(). Will load the declaration, issuing a - 'callback' for each declaration/reference within the respective declaration. - - For interface declarations, this will index the super class, protocols, - ivars, methods, etc. For structure declarations, this will index the fields. - For functions, this will index the parameters (and body, for function - definitions), local declarations/references. - - void getInterfaceDetails(CXDecl X, CXCursor C) { - switch (clang_getCursorKind(C)) { - case Cursor_ObjC_ClassRef: - CXDecl SuperClass = clang_getCursorDecl(C); - case Cursor_ObjC_ProtocolRef: - CXDecl AdoptsProtocol = clang_getCursorDecl(C); - case Cursor_Declaration: - CXDecl AnIvarOrMethod = clang_getCursorDecl(C); - } - } - static void usage() { - if (clang_getDeclKind(D) == CXDecl_ObjC_interface) { - clang_loadDeclaration(D, getInterfaceDetails); - } - } -*/ -typedef void (*CXDeclIterator)(CXDecl, CXCursor, CXClientData); - -CINDEX_LINKAGE void clang_loadDeclaration(CXDecl, CXDeclIterator, CXClientData); /** * \brief Retrieve the cursor that represents the given translation unit. diff --git a/clang/tools/CIndex/CIndex.cpp b/clang/tools/CIndex/CIndex.cpp index d5e3b35d026..485e6c9980f 100644 --- a/clang/tools/CIndex/CIndex.cpp +++ b/clang/tools/CIndex/CIndex.cpp @@ -517,67 +517,6 @@ CXCursor clang_getTranslationUnitCursor(CXTranslationUnit TU) { return Result; } -struct LoadTranslationUnitData { - CXTranslationUnit TU; - CXTranslationUnitIterator Callback; - CXClientData ClientData; -}; - -enum CXChildVisitResult LoadTranslationUnitVisitor(CXCursor cursor, - CXCursor parent, - CXClientData client_data) { - LoadTranslationUnitData *Data - = static_cast<LoadTranslationUnitData *>(client_data); - Data->Callback(Data->TU, cursor, Data->ClientData); - return CXChildVisit_Continue; -} - -void clang_loadTranslationUnit(CXTranslationUnit CTUnit, - CXTranslationUnitIterator callback, - CXClientData CData) { - assert(CTUnit && "Passed null CXTranslationUnit"); - ASTUnit *CXXUnit = static_cast<ASTUnit *>(CTUnit); - - unsigned PCHLevel = Decl::MaxPCHLevel; - - // Set the PCHLevel to filter out unwanted decls if requested. - if (CXXUnit->getOnlyLocalDecls()) { - PCHLevel = 0; - - // If the main input was an AST, bump the level. - if (CXXUnit->isMainFileAST()) - ++PCHLevel; - } - - LoadTranslationUnitData Data = { CTUnit, callback, CData }; - - CursorVisitor CurVisitor(&LoadTranslationUnitVisitor, &Data, PCHLevel); - CurVisitor.VisitChildren(clang_getTranslationUnitCursor(CTUnit)); -} - -struct LoadDeclarationData { - CXDeclIterator Callback; - CXClientData ClientData; -}; - -CXChildVisitResult LoadDeclarationVisitor(CXCursor cursor, - CXCursor parent, - CXClientData client_data) { - LoadDeclarationData *Data = static_cast<LoadDeclarationData *>(client_data); - Data->Callback(clang_getCursorDecl(cursor), cursor, Data->ClientData); - return CXChildVisit_Recurse; -} - -void clang_loadDeclaration(CXDecl Dcl, - CXDeclIterator callback, - CXClientData CData) { - assert(Dcl && "Passed null CXDecl"); - - LoadDeclarationData Data = { callback, CData }; - CursorVisitor CurVisit(&LoadDeclarationVisitor, &Data, - static_cast<Decl *>(Dcl)->getPCHLevel()); - CurVisit.VisitChildren(clang_getCursorFromDecl(Dcl)); -} } // end: extern "C" //===----------------------------------------------------------------------===// diff --git a/clang/tools/CIndex/CIndex.exports b/clang/tools/CIndex/CIndex.exports index 7bed7898691..27315499368 100644 --- a/clang/tools/CIndex/CIndex.exports +++ b/clang/tools/CIndex/CIndex.exports @@ -42,7 +42,5 @@ _clang_isInvalid _clang_isReference _clang_isStatement _clang_isTranslationUnit -_clang_loadDeclaration -_clang_loadTranslationUnit _clang_setUseExternalASTGeneration _clang_visitChildren |

