#ifndef PORYGONLANG_EVALUATIONSCOPE_HPP #define PORYGONLANG_EVALUATIONSCOPE_HPP #include #include #include "../EvalValues/EvalValue.hpp" class EvaluationScope { unordered_map>* _scriptScope; vector>> _localScope; int _currentScope; public: explicit EvaluationScope(unordered_map>* scriptVariables, int deepestScope); ~EvaluationScope() = default; void CreateVariable(int scope, int id, shared_ptr value); void SetVariable(int scope, int id, shared_ptr value); void OuterScope(); void InnerScope(); shared_ptr GetVariable(int scope, int id); }; #endif //PORYGONLANG_EVALUATIONSCOPE_HPP