#include #include #include #include #include #include namespace Execute { class VirtualMachine { private: Flags flags; Registers registers; State state; std::unique_ptr codePtr; void Step(); public: void Run(); void SingleStep(); void LoadConfiguration(Configuration const & c); void LoadCode(std::unique_ptr code); Flags const & GetFlags() const; Registers const & GetRegisters() const; State const & GetState() const; Interpret::Statement const * const GetCurrentStatement() const; bool IsTerminated() const; VirtualMachine(); }; }