clang  6.0.0svn
IndexDataConsumer.h
Go to the documentation of this file.
1 //===--- IndexDataConsumer.h - Abstract index data consumer ---------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_CLANG_INDEX_INDEXDATACONSUMER_H
11 #define LLVM_CLANG_INDEX_INDEXDATACONSUMER_H
12 
14 
15 namespace clang {
16  class ASTContext;
17  class DeclContext;
18  class Expr;
19  class FileID;
20  class IdentifierInfo;
21  class ImportDecl;
22  class MacroInfo;
23 
24 namespace index {
25 
27 public:
28  struct ASTNodeInfo {
29  const Expr *OrigE;
30  const Decl *OrigD;
31  const Decl *Parent;
33  };
34 
35  virtual ~IndexDataConsumer() {}
36 
37  virtual void initialize(ASTContext &Ctx) {}
38 
39  /// \returns true to continue indexing, or false to abort.
40  virtual bool handleDeclOccurence(const Decl *D, SymbolRoleSet Roles,
41  ArrayRef<SymbolRelation> Relations,
42  FileID FID, unsigned Offset,
43  ASTNodeInfo ASTNode);
44 
45  /// \returns true to continue indexing, or false to abort.
46  virtual bool handleMacroOccurence(const IdentifierInfo *Name,
47  const MacroInfo *MI, SymbolRoleSet Roles,
48  FileID FID, unsigned Offset);
49 
50  /// \returns true to continue indexing, or false to abort.
51  virtual bool handleModuleOccurence(const ImportDecl *ImportD,
52  SymbolRoleSet Roles,
53  FileID FID, unsigned Offset);
54 
55  virtual void finish() {}
56 
57 private:
58  virtual void _anchor();
59 };
60 
61 } // namespace index
62 } // namespace clang
63 
64 #endif
virtual bool handleDeclOccurence(const Decl *D, SymbolRoleSet Roles, ArrayRef< SymbolRelation > Relations, FileID FID, unsigned Offset, ASTNodeInfo ASTNode)
Decl - This represents one declaration (or definition), e.g.
Definition: DeclBase.h:81
One of these records is kept for each identifier that is lexed.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition: ASTContext.h:128
uint32_t Offset
Definition: CacheTokens.cpp:43
unsigned SymbolRoleSet
Definition: IndexSymbol.h:116
Expr - This represents one expression.
Definition: Expr.h:106
virtual bool handleModuleOccurence(const ImportDecl *ImportD, SymbolRoleSet Roles, FileID FID, unsigned Offset)
virtual void initialize(ASTContext &Ctx)
Describes a module import declaration, which makes the contents of the named module visible in the cu...
Definition: Decl.h:3859
An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...
Dataflow Directional Tag Classes.
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...
Definition: DeclBase.h:1224
Encapsulates the data about a macro definition (e.g.
Definition: MacroInfo.h:34
virtual bool handleMacroOccurence(const IdentifierInfo *Name, const MacroInfo *MI, SymbolRoleSet Roles, FileID FID, unsigned Offset)