#include "machine.h" #include Machine::Machine(shared_ptr program) { this->program = program; memory = make_shared(Memory()); reg_man = make_shared(RegisterManager()); opcode_handler_dir = make_shared(OpcodeHandlerDirectory(program, reg_man)); instruction_executor = make_unique(InstructionExecutor(program, reg_man, opcode_handler_dir)); } shared_ptr Machine::get_memory() { return memory; } shared_ptr Machine::get_reg_man() { return reg_man; } void Machine::execute() { instruction_executor->execute(); }