clang  3.9.0
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)
One of these records is kept for each identifier that is lexed.
class LLVM_ALIGNAS(8) DependentTemplateSpecializationType const IdentifierInfo * Name
Represents a template specialization type whose template cannot be resolved, e.g. ...
Definition: Type.h:4549
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition: ASTContext.h:92
uint32_t Offset
Definition: CacheTokens.cpp:44
friend class ASTContext
Definition: Type.h:4178
Expr - This represents one expression.
Definition: Expr.h:105
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:3728
An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...
Definition: DeclBase.h:1135
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)