From 5d1b5e2ebb24877c7be29dcbed00dcec657dcf3f Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 15 Nov 2025 14:01:26 -0500 Subject: [PATCH] scaffold .hpp files --- .../interpreter/VirtualSchematikaMachine.hpp | 19 +++++++++++++ include/xo/interpreter/VmInstr.hpp | 28 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 include/xo/interpreter/VirtualSchematikaMachine.hpp create mode 100644 include/xo/interpreter/VmInstr.hpp diff --git a/include/xo/interpreter/VirtualSchematikaMachine.hpp b/include/xo/interpreter/VirtualSchematikaMachine.hpp new file mode 100644 index 00000000..eca9368c --- /dev/null +++ b/include/xo/interpreter/VirtualSchematikaMachine.hpp @@ -0,0 +1,19 @@ +/** @file VirtualSchematikaMachine.hpp **/ + +#pragma once + +#include "VmInstr.hpp" + +namespace xo { + namespace scm { + /** @class VirtualSchematikaMachine + * @brief Virtual machine implementing a Schematika interpreter + **/ + class VirtualSchematikaMachine { + public: + private: + }; + } /*namespace scm*/ +} /*namespace xo*/ + +/* end VirtualSchematikaMachine.hpp */ diff --git a/include/xo/interpreter/VmInstr.hpp b/include/xo/interpreter/VmInstr.hpp new file mode 100644 index 00000000..7502a3ac --- /dev/null +++ b/include/xo/interpreter/VmInstr.hpp @@ -0,0 +1,28 @@ +/** @file VmInstr.hpp **/ + +#pragma once + +#include + +namespace xo { + namespace scm { + class VirtualSchematikaMachine; // see VirtualSchematikaMachine.hpp + + /** @class VmInstr + * @brief Represent a particular vritual schematika machine instruction + * + * A vsm instruction acts on a virtual schematika machine instance. + **/ + class VmInstr + { + public: + using ActionFn = void (*)(VirtualSchematikaMachine * vm); + + private: + std::string name_; + ActionFn action_; + }; + } +} + +/* end VmInstr.hpp */