Kill clang_loadDeclaration() and clang_loadTranslationUnit().
llvm-svn: 94034
This commit is contained in:
parent
32fb9564bc
commit
990b576ec8
|
@ -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.
|
||||
|
|
|
@ -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"
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
|
@ -42,7 +42,5 @@ _clang_isInvalid
|
|||
_clang_isReference
|
||||
_clang_isStatement
|
||||
_clang_isTranslationUnit
|
||||
_clang_loadDeclaration
|
||||
_clang_loadTranslationUnit
|
||||
_clang_setUseExternalASTGeneration
|
||||
_clang_visitChildren
|
||||
|
|
Loading…
Reference in New Issue