Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 1 | //===--- tools/extra/clang-rename/USRFindingAction.h - Clang rename tool --===// |
| 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 | /// \file |
Kirill Bobyrev | 32db769 | 2016-07-15 11:29:16 +0000 | [diff] [blame] | 11 | /// \brief Provides an action to find all relevant USRs at a point. |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 12 | /// |
| 13 | //===----------------------------------------------------------------------===// |
| 14 | |
Kirill Bobyrev | 405699e | 2016-08-19 09:36:14 +0000 | [diff] [blame] | 15 | #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_RENAME_USR_FINDING_ACTION_H |
| 16 | #define LLVM_CLANG_TOOLS_EXTRA_CLANG_RENAME_USR_FINDING_ACTION_H |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 17 | |
Kirill Bobyrev | e5e7e15 | 2016-09-16 08:45:19 +0000 | [diff] [blame] | 18 | #include "clang/Basic/LLVM.h" |
| 19 | #include "llvm/ADT/ArrayRef.h" |
| 20 | |
| 21 | #include <string> |
| 22 | #include <vector> |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 23 | |
| 24 | namespace clang { |
| 25 | class ASTConsumer; |
| 26 | class CompilerInstance; |
| 27 | class NamedDecl; |
| 28 | |
| 29 | namespace rename { |
| 30 | |
| 31 | struct USRFindingAction { |
Kirill Bobyrev | e5e7e15 | 2016-09-16 08:45:19 +0000 | [diff] [blame] | 32 | USRFindingAction(ArrayRef<unsigned> SymbolOffsets, |
| 33 | ArrayRef<std::string> QualifiedNames) |
| 34 | : SymbolOffsets(SymbolOffsets), QualifiedNames(QualifiedNames), |
| 35 | ErrorOccurred(false) {} |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 36 | std::unique_ptr<ASTConsumer> newASTConsumer(); |
| 37 | |
Kirill Bobyrev | e5e7e15 | 2016-09-16 08:45:19 +0000 | [diff] [blame] | 38 | ArrayRef<std::string> getUSRSpellings() { return SpellingNames; } |
| 39 | ArrayRef<std::vector<std::string>> getUSRList() { return USRList; } |
| 40 | bool errorOccurred() { return ErrorOccurred; } |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 41 | |
| 42 | private: |
Kirill Bobyrev | e5e7e15 | 2016-09-16 08:45:19 +0000 | [diff] [blame] | 43 | std::vector<unsigned> SymbolOffsets; |
| 44 | std::vector<std::string> QualifiedNames; |
| 45 | std::vector<std::string> SpellingNames; |
| 46 | std::vector<std::vector<std::string>> USRList; |
| 47 | bool ErrorOccurred; |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 48 | }; |
| 49 | |
Kirill Bobyrev | 32db769 | 2016-07-15 11:29:16 +0000 | [diff] [blame] | 50 | } // namespace rename |
| 51 | } // namespace clang |
Manuel Klimek | de23726 | 2014-08-20 01:39:05 +0000 | [diff] [blame] | 52 | |
Kirill Bobyrev | 405699e | 2016-08-19 09:36:14 +0000 | [diff] [blame] | 53 | #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_RENAME_USR_FINDING_ACTION_H |