71 lines
1.2 KiB
C++
71 lines
1.2 KiB
C++
/*
|
|
* SenchaObject.h
|
|
*
|
|
* Created on: Dec 5, 2012
|
|
* Author: attero
|
|
*/
|
|
|
|
#ifndef SENCHAOBJECT_H_
|
|
#define SENCHAOBJECT_H_
|
|
#include <string>
|
|
#include "to_string.h"
|
|
class SenchaObject {
|
|
|
|
public:
|
|
typedef enum {
|
|
string_literal,
|
|
integer_number,
|
|
float_number,
|
|
null,
|
|
invalid
|
|
} Type;
|
|
|
|
Type type;
|
|
|
|
virtual std::string repr();
|
|
|
|
std::string text;
|
|
int integer;
|
|
double number;
|
|
|
|
void set_value(std::string text)
|
|
{
|
|
this->text = text;
|
|
type = string_literal;
|
|
}
|
|
|
|
void set_null_value()
|
|
{
|
|
this->type = null;
|
|
this->integer = 0;
|
|
this->number = 0;
|
|
this->text = "";
|
|
}
|
|
|
|
void set_value(int integer)
|
|
{
|
|
this->integer = integer;
|
|
type = integer_number;
|
|
}
|
|
|
|
void set_value(double number)
|
|
{
|
|
this->number = number;
|
|
type = float_number;
|
|
}
|
|
|
|
SenchaObject();
|
|
SenchaObject(int integer) { set_value(integer); }
|
|
SenchaObject(double number) { set_value(number); }
|
|
SenchaObject(std::string text) { set_value(text); }
|
|
|
|
//TODO overload operators as it should be done
|
|
|
|
virtual SenchaObject operator+(const SenchaObject& right)const;
|
|
|
|
virtual SenchaObject operator-(const SenchaObject& right)const { return SenchaObject(); };
|
|
virtual ~SenchaObject();
|
|
};
|
|
|
|
#endif /* SENCHAOBJECT_H_ */
|