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