72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
/*
|
|
* SenchaObject.h
|
|
*
|
|
* Created on: Dec 5, 2012
|
|
* Author: attero
|
|
*/
|
|
|
|
#ifndef SENCHAOBJECT_H_
|
|
#define SENCHAOBJECT_H_
|
|
#include <string>
|
|
#include <iostream>
|
|
#include "../Utils/to_string.h"
|
|
#include "Element.h"
|
|
|
|
class SenchaObject : public Element {
|
|
|
|
public:
|
|
typedef enum {
|
|
string_literal,
|
|
integer_number,
|
|
float_number,
|
|
null,
|
|
symbol,
|
|
boolean,
|
|
invalid
|
|
} Type;
|
|
|
|
Type type;
|
|
|
|
virtual std::string repr();
|
|
virtual std::string str();
|
|
virtual bool is_true();
|
|
|
|
std::string text;
|
|
std::string name;
|
|
bool truthy;
|
|
int integer;
|
|
double number;
|
|
|
|
void set_value(std::string text);
|
|
void set_new_string(std::string text);
|
|
void set_null_value();
|
|
void set_value(int integer);
|
|
void set_value(double number);
|
|
void set_value(bool logic);
|
|
|
|
SenchaObject();
|
|
SenchaObject(int integer) { set_value(integer); }
|
|
SenchaObject(bool truthy) {set_value(truthy); }
|
|
SenchaObject(double number) { set_value(number); }
|
|
SenchaObject(std::string text) { set_value(text); }
|
|
|
|
|
|
virtual SenchaObject operator< (const SenchaObject& right)const;
|
|
virtual SenchaObject operator> (const SenchaObject& right)const;
|
|
virtual SenchaObject operator<= (const SenchaObject& right)const;
|
|
virtual SenchaObject operator>= (const SenchaObject& right)const;
|
|
virtual SenchaObject operator+(const SenchaObject& right)const;
|
|
virtual SenchaObject operator-(const SenchaObject& right)const;
|
|
virtual SenchaObject operator*(const SenchaObject& right)const;
|
|
virtual SenchaObject operator/(const SenchaObject& right)const;
|
|
virtual SenchaObject operator==(const SenchaObject& right)const;
|
|
virtual SenchaObject operator!=(const SenchaObject& right)const;
|
|
virtual SenchaObject operator-() const;
|
|
virtual SenchaObject operator!() const;
|
|
|
|
|
|
virtual ~SenchaObject();
|
|
};
|
|
|
|
#endif /* SENCHAOBJECT_H_ */
|