2012-12-17 09:41:48 +00:00
|
|
|
/*
|
|
|
|
* VariableExpression.cpp
|
|
|
|
*
|
|
|
|
* Created on: Dec 17, 2012
|
|
|
|
* Author: att
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "VariableExpression.h"
|
|
|
|
|
2012-12-31 16:10:37 +00:00
|
|
|
VariableExpression::VariableExpression(std::string name, ContextManager * context_manager) {
|
2012-12-17 09:41:48 +00:00
|
|
|
this->name = name;
|
2012-12-31 16:10:37 +00:00
|
|
|
this->name_of_context = "global";
|
|
|
|
this->context_manager = context_manager;
|
2012-12-22 10:06:55 +00:00
|
|
|
this->type = "VariableExpression";
|
2012-12-17 09:41:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
VariableExpression::~VariableExpression() {
|
|
|
|
// Do nothing
|
|
|
|
}
|
|
|
|
|
|
|
|
SenchaObject VariableExpression::evaluate()
|
|
|
|
{
|
2013-01-01 22:38:10 +00:00
|
|
|
|
2012-12-31 16:10:37 +00:00
|
|
|
auto context = context_manager->get_top();
|
2013-01-01 22:38:10 +00:00
|
|
|
//std::cout << "I'm retrieving variable " + name + " from " + context->name << std::endl;
|
2012-12-17 09:41:48 +00:00
|
|
|
SenchaObject result = context->get(name);
|
2013-01-10 15:15:43 +00:00
|
|
|
if(result.type == SenchaObject::string_literal)
|
|
|
|
{
|
|
|
|
result = context->get_updated_string(name);
|
|
|
|
}
|
2013-01-01 22:38:10 +00:00
|
|
|
//std::cout << "And it's: " + result.repr() << std::endl;
|
2012-12-17 09:41:48 +00:00
|
|
|
result.name = name;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2012-12-31 16:10:37 +00:00
|
|
|
SenchaObject VariableExpression::execute()
|
2012-12-17 09:41:48 +00:00
|
|
|
{
|
2013-01-01 22:38:10 +00:00
|
|
|
return evaluate();
|
2012-12-17 09:41:48 +00:00
|
|
|
}
|
|
|
|
|