1 #ifndef CATA_TOOLS_CLANG_TIDY_PLUGIN_TRANSLATORCOMMENTSCHECK_H 2 #define CATA_TOOLS_CLANG_TIDY_PLUGIN_TRANSLATORCOMMENTSCHECK_H 3 4 #include <ClangTidy.h> 5 #include <clang/ASTMatchers/ASTMatchFinder.h> 6 #include <clang/Basic/SourceLocation.h> 7 #include <llvm/ADT/StringRef.h> 8 #include <memory> 9 #include <set> 10 11 namespace clang 12 { 13 class CompilerInstance; 14 15 namespace tidy 16 { 17 class ClangTidyContext; 18 19 namespace cata 20 { 21 22 class TranslatorCommentsCheck : public ClangTidyCheck 23 { 24 public: 25 TranslatorCommentsCheck( StringRef Name, ClangTidyContext *Context ); 26 27 void registerPPCallbacks( CompilerInstance &Compiler ) override; 28 void registerMatchers( ast_matchers::MatchFinder *Finder ) override; 29 void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; 30 void onEndOfTranslationUnit() override; 31 32 std::set<SourceLocation> MarkedStrings; 33 bool MatchingStarted; 34 private: 35 class TranslatorCommentsHandler; 36 37 std::unique_ptr<TranslatorCommentsHandler> Handler; 38 class TranslationMacroCallback; 39 }; 40 41 } // namespace cata 42 } // namespace tidy 43 } // namespace clang 44 45 #endif // CATA_TOOLS_CLANG_TIDY_PLUGIN_TRANSLATORCOMMENTSCHECK_H 46