#ifndef roza_VM_HPP #define roza_VM_HPP #include "commons.hpp" #include "Program.hpp" #include "StatusLog.hpp" namespace roza { class VM { public: explicit VM(StatusLog& log); virtual ~VM(); void exec(std::shared_ptr program); private: StatusLog& m_log; std::vector m_stack; size_t m_pc = 0; void push(param_t param); param_t pop(); }; } #endif