forked from omiddavoodi/MEIL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
internalvariable.h
94 lines (82 loc) · 2.5 KB
/
internalvariable.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#ifndef _STRING_H_
#include <string>
#endif
#ifndef _INTERNALVARIABLE_H
#define _INTERNALVARIABLE_H 0
enum VariableType
{
Boolean,
Integer,
Float,
String
};
class InternalVariable {
private :
bool bool_value;
long long int_value;
long double float_value;
std::string string_value;
VariableType value_type;
public :
//constructors
InternalVariable(){}
InternalVariable(bool);
InternalVariable(long long);
InternalVariable(long double);
InternalVariable(std::string);
InternalVariable(char*);
//get methods
bool get_bool_value();
long long get_int_value();
long double get_float_value();
std::string get_string_value();
VariableType get_type();
//set methods
void set_bool_value(bool);
void set_int_value(long long);
void set_float_value(long double);
void set_string_value(std::string);
void set_string_value(char*);
void set_type(VariableType);
//others
void deep_copy(InternalVariable);
bool positive();
InternalVariable nots();
bool condition();
InternalVariable& operator=(long long);
InternalVariable& operator=(long double);
InternalVariable& operator=(bool);
InternalVariable& operator=(std::string);
InternalVariable& operator=(char*);
InternalVariable& operator=(InternalVariable);
InternalVariable operator+(bool);
InternalVariable operator+(long long);
InternalVariable operator+(long double);
InternalVariable operator+(std::string);
InternalVariable operator+(char*);
InternalVariable operator+(InternalVariable);
InternalVariable operator-(bool);
InternalVariable operator-(long long);
InternalVariable operator-(long double);
InternalVariable operator-(InternalVariable);
InternalVariable operator*(bool);
InternalVariable operator*(long long);
InternalVariable operator*(long double);
InternalVariable operator*(InternalVariable);
InternalVariable operator/(bool);
InternalVariable operator/(long long);
InternalVariable operator/(long double);
InternalVariable operator/(InternalVariable);
InternalVariable operator%(long long);
InternalVariable operator%(InternalVariable);
InternalVariable operator>(InternalVariable);
InternalVariable operator<(InternalVariable);
InternalVariable operator==(InternalVariable);
InternalVariable operator<=(InternalVariable);
InternalVariable operator>=(InternalVariable);
InternalVariable operator&&(InternalVariable);
InternalVariable operator||(InternalVariable);
};
InternalVariable str_to_var(std::string);
std::string var_to_str(InternalVariable);
#endif