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

67 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"; }