Reworked evaluation to use internal type instead of boost::any
This commit is contained in:
@@ -6,11 +6,14 @@
|
||||
#include <boost/any.hpp>
|
||||
#include "../Binder/BoundStatements/BoundStatement.hpp"
|
||||
#include "../Script.hpp"
|
||||
#include "EvalValues/EvalValue.hpp"
|
||||
#include "EvalValues/NumericEvalValue.hpp"
|
||||
|
||||
|
||||
using namespace boost;
|
||||
|
||||
class Evaluator {
|
||||
any* _result;
|
||||
EvalValue* _result;
|
||||
|
||||
Script* _scriptData;
|
||||
|
||||
@@ -18,14 +21,12 @@ class Evaluator {
|
||||
void EvaluateBlockStatement(BoundBlockStatement* statement);
|
||||
void EvaluateExpressionStatement(BoundExpressionStatement* statement);
|
||||
|
||||
any* EvaluateExpression(BoundExpression* expression);
|
||||
long EvaluateIntegerExpression(BoundExpression* expression);
|
||||
double EvaluateFloatExpression(BoundExpression* expression);
|
||||
bool EvaluateBoolExpression(BoundExpression* expression);
|
||||
std::string EvaluateStringExpression(BoundExpression* expression);
|
||||
EvalValue* EvaluateExpression(BoundExpression* expression);
|
||||
NumericEvalValue* EvaluateIntegerExpression(BoundExpression* expression);
|
||||
EvalValue* EvaluateBoolExpression(BoundExpression* expression);
|
||||
EvalValue* EvaluateStringExpression(BoundExpression* expression);
|
||||
|
||||
long EvaluateIntegerBinary(BoundBinaryExpression* expression);
|
||||
double EvaluateFloatBinary(BoundBinaryExpression *expression);
|
||||
NumericEvalValue* EvaluateIntegerBinary(BoundBinaryExpression* expression);
|
||||
public:
|
||||
Evaluator(Script* script){
|
||||
_scriptData = script;
|
||||
|
||||
Reference in New Issue
Block a user