#pragma once #include namespace Execute { class RuntimeError { protected: std::string message; public: std::string const & GetMessage() const; RuntimeError(); RuntimeError(std::string const & what); }; class StackUnderflow : public RuntimeError { public: StackUnderflow(); }; class StackOverflow : public RuntimeError { public: StackOverflow(); }; class MissingLabel : public RuntimeError { public: MissingLabel(std::string const & label); }; namespace Internal { class BadValueType : public RuntimeError { public: BadValueType(); }; } }