#include "Compiler.hpp" #include "src/Node.hpp" #include "src/Program.hpp" namespace zn { /*explicit*/ Compiler::Compiler(Logger& logger) : m_logger { logger } { } /*virtual*/ Compiler::~Compiler() { } void Compiler::compile(Node const& node, Program& program) { switch (node.type()) { case NODE_MODULE: { for (size_t i=0; i (TYPE_INT, std::stoi(node.repr()))); program.append(OPCODE_LOAD_CONST, addr); } break; default: { std::cerr << "cannot compile node '" << node.string() << "'" << std::endl; abort(); } break; } } }