66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
/*
|
|
* ConstantExpression.cpp
|
|
*
|
|
* Created on: Dec 5, 2012
|
|
* Author: attero
|
|
*/
|
|
|
|
#include "ConstantExpression.h"
|
|
|
|
ConstantExpression::ConstantExpression(ASTNode * parent) //Constructor which sets value to null SenchaObject.
|
|
{
|
|
this->parent = parent;
|
|
value = SenchaObject();
|
|
this->type = "ConstantExpression";
|
|
}
|
|
|
|
ConstantExpression::~ConstantExpression() {
|
|
|
|
}
|
|
|
|
ConstantExpression::ConstantExpression(ASTNode * parent, SenchaObject value) : value(value)
|
|
{
|
|
this->parent = parent;
|
|
this->type = "ConstantExpression";
|
|
}
|
|
|
|
SenchaObject ConstantExpression::evaluate()
|
|
{
|
|
return value;
|
|
}
|
|
|
|
void ConstantExpression::execute()
|
|
{
|
|
std::cout << evaluate().repr() << std::endl;
|
|
}
|
|
|
|
void ConstantExpression::execute_quietly()
|
|
{
|
|
evaluate();
|
|
}
|
|
|
|
void ConstantExpression::accept(Visitor * visitor)
|
|
{
|
|
visitor->visit(this);
|
|
}
|
|
|
|
ConstantExpression::ConstantExpression(ASTNode * parent, int number)
|
|
{
|
|
this->parent = parent; value = SenchaObject(number);
|
|
this->type = "ConstantExpression";
|
|
}
|
|
|
|
ConstantExpression::ConstantExpression(ASTNode * parent, double number)
|
|
{
|
|
this->parent = parent;
|
|
this->type = "ConstantExpression";
|
|
value = SenchaObject(number);
|
|
}
|
|
|
|
ConstantExpression::ConstantExpression(ASTNode * parent, std::string text)
|
|
{
|
|
this->type = "ConstantExpression";
|
|
this->parent = parent; value = SenchaObject(text);
|
|
}
|
|
|
|
std::string ConstantExpression::debug() { return "Constant expression:\n" + value.repr() + "\n"; }
|