/* * ConstantExpression.h * * Created on: Dec 5, 2012 * Author: attero */ #ifndef CONSTANTEXPRESSION_H_ #define CONSTANTEXPRESSION_H_ #include "ASTExpression.h" #include #include "../Elements/SenchaFunction.h" /** * ConstantExpression class is used to store complex expression, which are actually * SenchaObjects. Constant Expressions are made in parser when it encounter some of primitives * like string literal or numbers, they also can be made on already made SenchaObject. * ConstantExpression is a part of AST, so it must have parent. It's a node in which it is build. * It implements four virtual functions: debug, evaluate. * It stores the value of expression. */ class ConstantExpression : public ASTExpression { public: /** * Constructor which sets value to null SenchaObject.o it * @param number value will be set to SenchaObject representing this number */ ConstantExpression(); /** *Constructor which creates SenchaObject(number) and sets value to it * @param number value will be set to SenchaObject representing this number */ ConstantExpression( int number) ; /** * Constructor which creates SenchaObject(number) and sets value to it * @param number value will be set to SenchaObject representing this number */ ConstantExpression( double number) ; /** * Constructor which creates SenchaObject(text) and sets value to it * @param text value will be set to SenchaObject representing this text */ ConstantExpression( std::string text); /** * Constructor which sets value to given value * @param value this->value will be set to value */ ConstantExpression(SenchaObject value); /** Here's value of constant expression */ SenchaObject value; /** Implements visitor pattern */ virtual void accept(Visitor * visitor); virtual ~ConstantExpression(); /**Returns value set in one of constructors */ virtual SenchaObject evaluate(); /**Prints representation of value */ virtual SenchaObject execute() ; }; #endif /* CONSTANTEXPRESSION_H_ */