#ifndef PORYGONLANG_EVALVALUE_HPP #define PORYGONLANG_EVALVALUE_HPP #include "../../ScriptType.hpp" #include "../EvaluationException.hpp" #include class EvalValue{ public: virtual ~EvalValue() = default; virtual ScriptType* GetType() = 0; virtual long EvaluateInteger(){ throw EvaluationException("Can't evaluate this EvalValue as integer."); } virtual double EvaluateFloat(){ throw EvaluationException("Can't evaluate this EvalValue as float."); } virtual bool EvaluateBool(){ throw EvaluationException("Can't evaluate this EvalValue as bool."); } virtual std::string EvaluateString(){ throw EvaluationException("Can't evaluate this EvalValue as string."); } }; #endif //PORYGONLANG_EVALVALUE_HPP