26 lines
708 B
C++
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
|