/** ** \file callgraph/parent-graph-visitor.hh ** \brief Definition of callgraph::ParentGraphVisitor. **/ #pragma once #include #include #include #include namespace callgraph { /// Compute the ParentGraph. class ParentGraphVisitor : public ast::DefaultVisitor , public ast::NonObjectVisitor , public ast::NonAssertVisitor { using super_type = ast::DefaultVisitor; using super_type::operator(); public: ParentGraph* create(ast::Ast& tree); void operator()(ast::FunctionChunk& e) override; void operator()(ast::FunctionDec& e) override; protected: /// Current function. ast::FunctionDec* parent = nullptr; /// Parent graph. ParentGraph* parentgraph = nullptr; }; } // namespace callgraph