//===--- DeclReferenceMap.h - Map Decls to their references -----*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // DeclReferenceMap creates a mapping from Decls to the ASTLocations that // reference them. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_INDEX_DECLREFERENCEMAP_H #define LLVM_CLANG_INDEX_DECLREFERENCEMAP_H #include "clang/Index/ASTLocation.h" #include "clang/Index/STLExtras.h" #include namespace clang { class ASTContext; class NamedDecl; namespace idx { /// \brief Maps NamedDecls with the ASTLocations that reference them. /// /// References are mapped and retrieved using the canonical decls. class DeclReferenceMap { public: explicit DeclReferenceMap(ASTContext &Ctx); typedef std::multimap MapTy; typedef pair_value_iterator astlocation_iterator; astlocation_iterator refs_begin(NamedDecl *D) const; astlocation_iterator refs_end(NamedDecl *D) const; bool refs_empty(NamedDecl *D) const; private: mutable MapTy Map; }; } // end idx namespace } // end clang namespace #endif