#include "TypeResolver.hpp" namespace roza { /*explicit*/ TypeResolver::TypeResolver(StatusLog& log) : m_log { log } { } /*virtual*/ TypeResolver::~TypeResolver() { } std::shared_ptr TypeResolver::find(std::shared_ptr root) { switch (root->type()) { case NODE_PROG: case NODE_INSTR: { return find(root->child(root->size() - 1)); } break; case NODE_INT: { return std::make_shared(BaseType::TY_INT); } break; default: m_log.fatal(root->loc(), "cannot find type of node '" + root->string() + "'"); } return nullptr; } }