Implements assignment binding

This commit is contained in:
2019-05-28 17:49:03 +02:00
parent dbd7dfdd73
commit 5d1c3ac9ba
20 changed files with 443 additions and 152 deletions

View File

@@ -5,13 +5,14 @@
#define PORYGONLANG_SCRIPT_HPP
#include <string>
#include <boost/any.hpp>
#include <unordered_map>
#include "Diagnostics/Diagnostics.hpp"
#include "Binder/BoundStatements/BoundStatement.hpp"
class Script;
class Evaluator;
#include "Evaluator/Evaluator.hpp"
#include "Evaluator/EvalValues/EvalValue.hpp"
#include "Utilities/HashedString.hpp"
using namespace std;
@@ -19,15 +20,15 @@ class Script {
friend class Evaluator;
EvalValue* _lastValue;
Evaluator* _evaluator;
unordered_map<int, EvalValue*> _scopeVariables;
explicit Script();
void Parse(string script);
BoundScriptStatement* BoundScript;
public:
static Script Create(string script);
static Script* Create(string script);
Diagnostics* Diagnostics;
~Script();
@@ -37,6 +38,10 @@ public:
EvalValue* GetLastValue(){
return _lastValue;
};
EvalValue* GetVariable(const string& key){
return _scopeVariables.at(HashedString(key).GetHash());
}
};