/* * Assignment.cpp * * Created on: Dec 7, 2012 * Author: attero */ #include "Assignment.h" SenchaObject Assignment::evaluate() { return static_cast(children[1])->evaluate(); } void Assignment::execute() { auto left_value = static_cast(children[0])->evaluate(); auto right_value = static_cast(children[1])->evaluate(); static_cast(children[1])->execute_quietly(); if(name != "") { context->set(name, right_value); } } void Assignment::execute_quietly() { auto left_value = static_cast(children[0])->evaluate(); auto right_value = static_cast(children[1])->evaluate(); static_cast(children[1])->execute_quietly(); if(left_value.name != "") { context->set(left_value.name, right_value); } } Assignment::Assignment(ContextManager * context, std::string name, ASTExpression * left, ASTExpression * right) { this->context = context; 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); } }