From eec22486f3680d43d5e58d2c75428ee418c6ae98 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Wed, 25 Sep 2024 15:28:04 +0900 Subject: Use C++ namespace --- goatc.hh | 53 +++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 24 deletions(-) (limited to 'goatc.hh') diff --git a/goatc.hh b/goatc.hh index 76e1525..5eed297 100644 --- a/goatc.hh +++ b/goatc.hh @@ -19,37 +19,42 @@ #include #include -class GoatCVisitor : public clang::RecursiveASTVisitor { - clang::ASTContext* ctx; +namespace goatc +{ + class Visitor : public clang::RecursiveASTVisitor { + clang::ASTContext* ctx; -public: - GoatCVisitor(clang::ASTContext* ctx) : ctx {ctx} - { } -}; + public: + Visitor(clang::ASTContext* ctx) : ctx {ctx} + { } -class GoatCConsumer : public clang::ASTConsumer { - clang::CompilerInstance& ci; - /// Consuming source file that is not patched - bool noop; + bool VisitDecl (clang::Decl*); + }; - bool HandleTopLevelDecl (clang::DeclGroupRef) override; + class Consumer : public clang::ASTConsumer { + Visitor visitor; + /// Consuming source file that is not patched + bool noop; -public: - GoatCConsumer (clang::CompilerInstance& ci, bool noop) : ci {ci}, noop {noop} - { } -}; + void HandleTranslationUnit (clang::ASTContext&) override; -class GoatCAction : public clang::PluginASTAction { - std::string source_file; + public: + Consumer (clang::ASTContext* ctx, bool noop) : visitor {ctx}, noop {noop} + { } + }; - std::unique_ptr CreateASTConsumer - (clang::CompilerInstance&, llvm::StringRef) override; + class Action : public clang::PluginASTAction { + std::string source_file; - bool ParseArgs (const clang::CompilerInstance&, - const std::vector &) override; + std::unique_ptr CreateASTConsumer + (clang::CompilerInstance&, llvm::StringRef) override; - clang::PluginASTAction::ActionType getActionType () override; -}; + bool ParseArgs (const clang::CompilerInstance&, + const std::vector &) override; -static clang::FrontendPluginRegistry::Add + clang::PluginASTAction::ActionType getActionType () override; + }; +} // namespace goatc + +static clang::FrontendPluginRegistry::Add X {"goatc", "chimera breeder"}; -- cgit 1.4.1