#ifndef SAINTERPRETER_CONTEXT_H_INCLUDED #define SAINTERPRETER_CONTEXT_H_INCLUDED #include <string> #include <vector> #include <components/interpreter/context.hpp> #include <components/interpreter/types.hpp> namespace SAInterpreter { class Context : public Interpreter::Context { std::vector<Interpreter::Type_Short> mShorts; std::vector<Interpreter::Type_Integer> mLongs; std::vector<Interpreter::Type_Float> mFloats; std::vector<std::string> mNames; public: Context (const std::string& filename); ///< Create context from file /// \note A context for an integreted interpreter will typically not /// configure at construction, but will offer a separate function. virtual int getLocalShort (int index) const; virtual int getLocalLong (int index) const; virtual float getLocalFloat (int index) const; virtual void setLocalShort (int index, int value); virtual void setLocalLong (int index, int value); virtual void setLocalFloat (int index, float value); virtual void messageBox (const std::string& message, const std::vector<std::string>& buttons); void report(); ///< Write state to std::cout }; } #endif