34 std::unique_ptr<clang::ASTConsumer>
CreateASTConsumer(clang::CompilerInstance&, llvm::StringRef)
override;
47 clang::Sema* m_Sema =
nullptr;
66 using Level = clang::DiagnosticsEngine::Level;
69 clang::DiagnosticsEngine& m_Diag;
73 frxml::dom* GetNamespaceDOM(clang::NamedDecl* decl)
const;
75 bool IsDuplicated(clang::NamedDecl* decl,
const std::string& tag);
96 std::function<void(clang::EnumConstantDecl*)> m_Delegate;
99 EnumVisitor(std::function<
void(clang::EnumConstantDecl* constant)>);
112 std::function<void(clang::CXXMethodDecl*)> m_Delegate;
An ASTConsumer that creates lilac::cxx::LilacASTVisitor to traverse AST.
void InitializeSema(clang::Sema &sema) override
LilacASTConsumer(frxml::dom &dom)
void HandleTranslationUnit(clang::ASTContext &context) override
A recursive AST visitor that traverses AST of an enumeration.
bool TraverseCXXMethodDecl(clang::CXXMethodDecl *decl)
CXXRecordVisitor(std::function< void(clang::CXXMethodDecl *)> delegate)
A recursive AST visitor that traverses AST of an enumeration.
EnumVisitor(std::function< void(clang::EnumConstantDecl *constant)>)
bool TraverseEnumConstantDecl(clang::EnumConstantDecl *decl)
A recursive AST visitor that serializes C/C++ interface data into DOM object.
bool TraverseCXXRecordDecl(clang::CXXRecordDecl *decl)
bool TraverseEnumDecl(clang::EnumDecl *decl)
LilacASTVisitor(clang::Sema &sema, frxml::dom &dom)
bool TraverseFunctionDecl(clang::FunctionDecl *decl)
A frontend action that creates lilac::cxx::LilacASTConsumer to traverse AST.
std::unique_ptr< clang::ASTConsumer > CreateASTConsumer(clang::CompilerInstance &, llvm::StringRef) override
frxml::dom & GetDOMRoot()