#include "clang/AST/ASTConsumer.h" #include "clang/AST/RecursiveASTVisitor.h" #include "clang/Frontend/ASTConsumers.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendActions.h" using namespace clang; namespace { class ExtractAPIVisitor : public RecursiveASTVisitor { public: bool VisitNamedDecl(NamedDecl *Decl) { llvm::outs() << Decl->getName() << "\n"; return true; } }; class ExtractAPIConsumer : public ASTConsumer { public: void HandleTranslationUnit(ASTContext &Context) override { Visitor.TraverseDecl(Context.getTranslationUnitDecl()); } private: ExtractAPIVisitor Visitor; }; } // namespace std::unique_ptr ExtractAPIAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { return std::make_unique(); }