Select Git revision
VTKWriter.cpp
ASTExecutionInfo.hpp 916 B
#ifndef AST_EXECUTION_INFO_HPP
#define AST_EXECUTION_INFO_HPP
#include <string>
class ModuleRepository;
class ASTNode;
class ASTExecutionInfo
{
private:
static const ASTExecutionInfo* m_current_execution_info;
const ASTNode& m_root_node;
const ModuleRepository& m_module_repository;
// The only place where the ASTExecutionInfo can be built
friend void parser(const std::string& filename);
// also allowed for testing
friend void test_ASTExecutionInfo(const ASTNode&, const ModuleRepository&);
ASTExecutionInfo(const ASTNode& root_node, const ModuleRepository& module_repository);
public:
const ASTNode&
rootNode() const
{
return m_root_node;
}
const ModuleRepository&
moduleRepository() const
{
return m_module_repository;
}
static const ASTExecutionInfo& current();
ASTExecutionInfo() = delete;
~ASTExecutionInfo();
};
#endif // AST_EXECUTION_INFO_HPP