| //===--- USRFinder.h - Clang refactoring library --------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| /// |
| /// \file |
| /// Methods for determining the USR of a symbol at a location in source |
| /// code. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_CLANG_TOOLING_REFACTORING_RENAME_USRFINDER_H |
| #define LLVM_CLANG_TOOLING_REFACTORING_RENAME_USRFINDER_H |
| |
| #include "clang/AST/AST.h" |
| #include "clang/AST/ASTContext.h" |
| #include <string> |
| #include <vector> |
| |
| namespace clang { |
| |
| class ASTContext; |
| class Decl; |
| class SourceLocation; |
| class NamedDecl; |
| |
| namespace tooling { |
| |
| // Given an AST context and a point, returns a NamedDecl identifying the symbol |
| // at the point. Returns null if nothing is found at the point. |
| const NamedDecl *getNamedDeclAt(const ASTContext &Context, |
| const SourceLocation Point); |
| |
| // Given an AST context and a fully qualified name, returns a NamedDecl |
| // identifying the symbol with a matching name. Returns null if nothing is |
| // found for the name. |
| const NamedDecl *getNamedDeclFor(const ASTContext &Context, |
| const std::string &Name); |
| |
| // Converts a Decl into a USR. |
| std::string getUSRForDecl(const Decl *Decl); |
| |
| } // end namespace tooling |
| } // end namespace clang |
| |
| #endif // LLVM_CLANG_TOOLING_REFACTORING_RENAME_USRFINDER_H |