Files
PorygonLang/src/Evaluator/EvaluationScope/EvaluationScope.hpp

26 lines
708 B
C++

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