[cfe-commits] r142233 - in /cfe/trunk: include/clang-c/Index.h tools/c-index-test/c-index-test.c tools/libclang/CIndex.cpp tools/libclang/CIndexUSRs.cpp tools/libclang/CMakeLists.txt tools/libclang/CXCursor.cpp tools/libclang/CXCursor.h tools/libclang/CXTranslationUnit.h tools/libclang/IndexBody.cpp tools/libclang/IndexDecl.cpp tools/libclang/IndexTypeSourceInfo.cpp tools/libclang/Indexing.cpp tools/libclang/IndexingContext.cpp tools/libclang/IndexingContext.h tools/libclang/libclang.exports
Douglas Gregor
dgregor at apple.com
Tue Oct 18 22:27:20 PDT 2011
On Oct 17, 2011, at 12:48 PM, Argyrios Kyrtzidis wrote:
> Author: akirtzidis
> Date: Mon Oct 17 14:48:19 2011
> New Revision: 142233
>
> URL: http://llvm.org/viewvc/llvm-project?rev=142233&view=rev
> Log:
> [libclang] Introduce a new high level API for indexing clients that assumes
> more of the work involved in indexing a translation unit and simplifies client
> implementations.
>
> Only C/ObjC for now, C++ (and comments) to come.
>
> Added:
> cfe/trunk/tools/libclang/IndexBody.cpp
> cfe/trunk/tools/libclang/IndexDecl.cpp
> cfe/trunk/tools/libclang/IndexTypeSourceInfo.cpp
> cfe/trunk/tools/libclang/Indexing.cpp
> cfe/trunk/tools/libclang/IndexingContext.cpp
> cfe/trunk/tools/libclang/IndexingContext.h
> Modified:
> cfe/trunk/include/clang-c/Index.h
> cfe/trunk/tools/c-index-test/c-index-test.c
> cfe/trunk/tools/libclang/CIndex.cpp
> cfe/trunk/tools/libclang/CIndexUSRs.cpp
> cfe/trunk/tools/libclang/CMakeLists.txt
> cfe/trunk/tools/libclang/CXCursor.cpp
> cfe/trunk/tools/libclang/CXCursor.h
> cfe/trunk/tools/libclang/CXTranslationUnit.h
> cfe/trunk/tools/libclang/libclang.exports
>
> Modified: cfe/trunk/include/clang-c/Index.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=142233&r1=142232&r2=142233&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang-c/Index.h (original)
> +++ cfe/trunk/include/clang-c/Index.h Mon Oct 17 14:48:19 2011
> @@ -3855,6 +3855,329 @@
> # endif
> #endif
>
> +typedef void *CXIdxFile;
> +typedef void *CXIdxEntity;
> +typedef void *CXIdxContainer;
> +typedef void *CXIdxMacro;
> +typedef void *CXIdxASTFile;
> +
> +typedef struct {
> + void *ptr_data[2];
> + unsigned int_data;
> +} CXIdxLoc;
> +
> +typedef struct {
> + CXIdxLoc hashLoc;
> + const char *filename;
> + CXIdxFile file;
> + int isImport;
> + int isAngled;
> +} CXIdxIncludedFileInfo;
> +
> +typedef struct {
> + CXFile file;
> + CXIdxLoc loc;
> + int isModule;
> +} CXIdxImportedASTFileInfo;
> +
> +typedef struct {
> + CXIdxLoc loc;
> + const char *name;
> +} CXIdxMacroInfo;
> +
> +typedef struct {
> + CXIdxMacroInfo *macroInfo;
> + CXIdxLoc defBegin;
> + unsigned defLength;
> +} CXIdxMacroDefinedInfo;
> +
> +typedef struct {
> + CXIdxLoc loc;
> + const char *name;
> + CXIdxMacro macro;
> +} CXIdxMacroUndefinedInfo;
> +
> +typedef struct {
> + CXIdxLoc loc;
> + const char *name;
> + CXIdxMacro macro;
> +} CXIdxMacroExpandedInfo;
> +
> +typedef struct {
> + const char *name;
> + const char *USR;
> +} CXIdxEntityInfo;
> +
> +typedef struct {
> + CXCursor cursor;
> + CXIdxLoc loc;
> + CXIdxContainer container;
> +} CXIdxIndexedDeclInfo;
> +
> +typedef struct {
> + CXIdxEntityInfo *entityInfo;
> + CXCursor cursor;
> + CXIdxLoc loc;
> + CXIdxASTFile ASTFile;
> +} CXIdxImportedEntityInfo;
> +
> +typedef struct {
> + CXIdxMacroInfo *macroInfo;
> + CXIdxASTFile ASTFile;
> +} CXIdxImportedMacroInfo;
> +
> +typedef struct {
> + CXIdxEntityInfo *entityInfo;
> + CXIdxIndexedDeclInfo *declInfo;
> +} CXIdxIndexedEntityInfo;
> +
> +typedef struct {
> + CXIdxIndexedDeclInfo *declInfo;
> + CXIdxEntity entity;
> +} CXIdxIndexedRedeclInfo;
> +
> +typedef struct {
> + CXCursor cursor;
> + CXIdxLoc loc;
> + CXIdxEntity entity;
> +} CXIdxContainerInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> +} CXIdxTypedefInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + int isDefinition;
> +} CXIdxFunctionInfo;
> +
> +typedef struct {
> + CXIdxIndexedRedeclInfo *indexedRedeclInfo;
> + int isDefinition;
> +} CXIdxFunctionRedeclInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + int isDefinition;
> +} CXIdxVariableInfo;
> +
> +typedef struct {
> + CXIdxIndexedRedeclInfo *indexedRedeclInfo;
> + int isDefinition;
> +} CXIdxVariableRedeclInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + int isDefinition;
> + int isAnonymous;
> +} CXIdxTagTypeInfo;
> +
> +typedef struct {
> + CXIdxIndexedRedeclInfo *indexedRedeclInfo;
> + int isDefinition;
> +} CXIdxTagTypeRedeclInfo;
> +
> +typedef struct {
> + CXIdxContainerInfo *containerInfo;
> +} CXIdxTagTypeDefinitionInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> +} CXIdxFieldInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> +} CXIdxEnumeratorInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + int isForwardRef;
> +} CXIdxObjCClassInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + int isForwardRef;
> +} CXIdxObjCProtocolInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + CXIdxEntity objcClass;
> +} CXIdxObjCCategoryInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> + int isDefinition;
> +} CXIdxObjCMethodInfo;
> +
> +typedef struct {
> + CXIdxIndexedEntityInfo *indexedEntityInfo;
> +} CXIdxObjCPropertyInfo;
> +
> +typedef struct {
> + CXIdxIndexedRedeclInfo *indexedRedeclInfo;
> + int isDefinition;
> +} CXIdxObjCMethodRedeclInfo;
> +
> +typedef struct {
> + CXIdxContainerInfo *containerInfo;
> + CXIdxLoc bodyBegin;
> +} CXIdxStmtBodyInfo;
> +
> +typedef struct {
> + CXIdxContainerInfo *containerInfo;
> +} CXIdxObjCContainerInfo;
> +
> +typedef struct {
> + CXIdxEntity objcClass;
> + CXIdxLoc loc;
> +} CXIdxObjCBaseClassInfo;
> +
> +typedef struct {
> + CXIdxEntity protocol;
> + CXIdxLoc loc;
> +} CXIdxObjCProtocolRefInfo;
> +
> +typedef struct {
> + CXCursor cursor;
> + CXIdxEntity objcClass;
> + CXIdxContainer container;
> + CXIdxObjCBaseClassInfo *baseInfo;
> + CXIdxObjCProtocolRefInfo **protocols;
> + unsigned numProtocols;
> +} CXIdxObjCClassDefineInfo;
> +
> +typedef struct {
> + CXIdxContainer container;
> + CXIdxLoc endLoc;
> +} CXIdxEndContainerInfo;
> +
> +typedef struct {
> + CXCursor cursor;
> + CXIdxLoc loc;
> + CXIdxEntity referencedEntity;
> + CXIdxEntity parentEntity;
> + CXIdxContainer container;
> +} CXIdxEntityRefInfo;
> +
> +typedef struct {
> + void (*diagnostic)(CXClientData client_data,
> + CXDiagnostic, void *reserved);
> +
> + CXIdxFile (*recordFile)(CXClientData client_data,
> + CXFile file, void *reserved);
> +
> + void (*ppIncludedFile)(CXClientData client_data,
> + CXIdxIncludedFileInfo *);
Should you pass the "included from" file here?
- Doug
More information about the cfe-commits
mailing list