2012-12-05 19:32:43 +00:00
|
|
|
/*
|
|
|
|
* BasicExpression.cpp
|
|
|
|
*
|
|
|
|
* Created on: Dec 5, 2012
|
|
|
|
* Author: attero
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "BasicExpression.h"
|
|
|
|
|
|
|
|
void BasicExpression::set_operator(std::string op)
|
|
|
|
{
|
|
|
|
this->oper = op;
|
|
|
|
}
|
|
|
|
|
|
|
|
void BasicExpression::set_left_operand(ASTNode * left)
|
|
|
|
{
|
|
|
|
this->children[0] = left;
|
|
|
|
this->left = static_cast<ASTExpression *>(children[0]);
|
|
|
|
}
|
|
|
|
|
|
|
|
void BasicExpression::set_right_operand(ASTNode * right)
|
|
|
|
{
|
|
|
|
this->children[1] = right;
|
|
|
|
this->right = static_cast<ASTExpression *>(children[1]);
|
|
|
|
}
|
|
|
|
|
2012-12-05 20:31:06 +00:00
|
|
|
virtual SenchaObject BasicExpression::evaluate()
|
2012-12-05 19:32:43 +00:00
|
|
|
{
|
|
|
|
if(oper == "+")
|
|
|
|
{
|
|
|
|
return left->evaluate() + right->evaluate();
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2012-12-05 20:31:06 +00:00
|
|
|
BasicExpression::BasicExpression(ASTNode * parent) {
|
|
|
|
this->parent = parent;
|
2012-12-05 19:32:43 +00:00
|
|
|
// initialize pointers
|
|
|
|
this->add_children(0);
|
|
|
|
this->add_children(0);
|
|
|
|
left = static_cast<ASTExpression *>(children[0]);
|
|
|
|
right = static_cast<ASTExpression *>(children[1]);
|
|
|
|
}
|
|
|
|
|
|
|
|
BasicExpression::~BasicExpression() {
|
|
|
|
// TODO Auto-generated destructor stub
|
|
|
|
// TODO free children memory
|
|
|
|
}
|
|
|
|
|