roza/lib/StaticPass.cpp

34 lines
597 B
C++
Raw Normal View History

2023-08-30 18:06:26 +00:00
#include "StaticPass.hpp"
#include "lib/Node.hpp"
namespace roza
{
/*explicit*/ StaticPass::StaticPass(StatusLog& log)
: m_log { log }
{
}
/*virtual*/ StaticPass::~StaticPass()
{
}
void StaticPass::check(std::shared_ptr<Node> root)
{
switch (root->type())
{
case NODE_INT: break;
case NODE_PROG:
case NODE_INSTR: {
for (size_t i=0; i<root->size(); i++)
{
check(root->child(i));
}
} break;
default:
m_log.fatal(root->loc(), "cannot check node '" + root->string() + "'");
}
}
}