sencha-lang/Sencha-lang/AST/Assignment.cpp

45 lines
847 B
C++

/*
* Assignment.cpp
*
* Created on: Dec 7, 2012
* Author: attero
*/
#include "Assignment.h"
SenchaObject Assignment::evaluate()
{
auto right_value = static_cast<ASTExpression *>(children[1])->evaluate();
auto context = context_manager->get_top();
context->add(name, right_value);
return children[0]->execute();
}
SenchaObject Assignment::execute()
{
return evaluate();
}
Assignment::Assignment(ContextManager * context_manager, std::string name, ASTExpression * left, ASTExpression * right)
{
this->context_manager = context_manager;
this->name_of_context = "global";
this->type = "Assignment";
this->children.push_back(left);
this->children.push_back(right);
this->name = name;
}
Assignment::~Assignment() {
for(auto it = children.begin(); it != children.end(); )
{
delete *it;
it = children.erase(it);
}
}