129
case VALUE_MOD_OPERATOR:
130
ret = new CFloatValue(fmod(((CIntValue *) val)->GetInt(), m_float));
132
case VALUE_ADD_OPERATOR:
133
ret = new CFloatValue(((CIntValue *) val)->GetInt() + m_float);
135
case VALUE_SUB_OPERATOR:
136
ret = new CFloatValue(((CIntValue *) val)->GetInt() - m_float);
138
case VALUE_MUL_OPERATOR:
139
ret = new CFloatValue(((CIntValue *) val)->GetInt() * m_float);
141
case VALUE_DIV_OPERATOR:
143
ret = new CErrorValue("Division by zero");
145
ret = new CFloatValue (((CIntValue *) val)->GetInt() / m_float);
147
case VALUE_EQL_OPERATOR:
148
ret = new CBoolValue(((CIntValue *) val)->GetInt() == m_float);
150
case VALUE_NEQ_OPERATOR:
151
ret = new CBoolValue(((CIntValue *) val)->GetInt() != m_float);
153
case VALUE_GRE_OPERATOR:
154
ret = new CBoolValue(((CIntValue *) val)->GetInt() > m_float);
156
case VALUE_LES_OPERATOR:
157
ret = new CBoolValue(((CIntValue *) val)->GetInt() < m_float);
159
case VALUE_GEQ_OPERATOR:
160
ret = new CBoolValue(((CIntValue *) val)->GetInt() >= m_float);
162
case VALUE_LEQ_OPERATOR:
163
ret = new CBoolValue(((CIntValue *) val)->GetInt() <= m_float);
166
ret = new CErrorValue("illegal operator. please send a bug report.");
171
case VALUE_EMPTY_TYPE:
172
case VALUE_FLOAT_TYPE:
176
case VALUE_MOD_OPERATOR:
177
ret = new CFloatValue(fmod(((CFloatValue *) val)->GetFloat(), m_float));
179
case VALUE_ADD_OPERATOR:
180
ret = new CFloatValue(((CFloatValue *) val)->GetFloat() + m_float);
182
case VALUE_SUB_OPERATOR:
183
ret = new CFloatValue(((CFloatValue *) val)->GetFloat() - m_float);
185
case VALUE_MUL_OPERATOR:
186
ret = new CFloatValue(((CFloatValue *) val)->GetFloat() * m_float);
188
case VALUE_DIV_OPERATOR:
190
ret = new CErrorValue("Division by zero");
192
ret = new CFloatValue (((CFloatValue *) val)->GetFloat() / m_float);
194
case VALUE_EQL_OPERATOR:
195
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() == m_float);
197
case VALUE_NEQ_OPERATOR:
198
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() != m_float);
200
case VALUE_GRE_OPERATOR:
201
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() > m_float);
203
case VALUE_LES_OPERATOR:
204
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() < m_float);
206
case VALUE_GEQ_OPERATOR:
207
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() >= m_float);
209
case VALUE_LEQ_OPERATOR:
210
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() <= m_float);
212
case VALUE_NEG_OPERATOR:
213
ret = new CFloatValue (-m_float);
215
case VALUE_POS_OPERATOR:
216
ret = new CFloatValue (m_float);
220
ret = new CErrorValue("illegal operator. please send a bug report.");
225
case VALUE_STRING_TYPE:
229
case VALUE_ADD_OPERATOR:
230
ret = new CStringValue(val->GetText() + GetText(),"");
232
case VALUE_EQL_OPERATOR:
233
case VALUE_NEQ_OPERATOR:
234
case VALUE_GRE_OPERATOR:
235
case VALUE_LES_OPERATOR:
236
case VALUE_GEQ_OPERATOR:
237
case VALUE_LEQ_OPERATOR:
238
ret = new CErrorValue("[Cannot compare string with float]" + op2str(op) + GetText());
241
ret = new CErrorValue("[operator not allowed on strings]" + op2str(op) + GetText());
246
case VALUE_BOOL_TYPE:
247
ret = new CErrorValue("[operator not valid on boolean and float]" + op2str(op) + GetText());
249
case VALUE_ERROR_TYPE:
250
ret = new CErrorValue(val->GetText() + op2str(op) + GetText());
253
ret = new CErrorValue("illegal type. contact your dealer (if any)");
127
case VALUE_MOD_OPERATOR:
128
ret = new CFloatValue(fmod(((CIntValue *) val)->GetInt(), m_float));
130
case VALUE_ADD_OPERATOR:
131
ret = new CFloatValue(((CIntValue *) val)->GetInt() + m_float);
133
case VALUE_SUB_OPERATOR:
134
ret = new CFloatValue(((CIntValue *) val)->GetInt() - m_float);
136
case VALUE_MUL_OPERATOR:
137
ret = new CFloatValue(((CIntValue *) val)->GetInt() * m_float);
139
case VALUE_DIV_OPERATOR:
141
ret = new CErrorValue("Division by zero");
143
ret = new CFloatValue (((CIntValue *) val)->GetInt() / m_float);
145
case VALUE_EQL_OPERATOR:
146
ret = new CBoolValue(((CIntValue *) val)->GetInt() == m_float);
148
case VALUE_NEQ_OPERATOR:
149
ret = new CBoolValue(((CIntValue *) val)->GetInt() != m_float);
151
case VALUE_GRE_OPERATOR:
152
ret = new CBoolValue(((CIntValue *) val)->GetInt() > m_float);
154
case VALUE_LES_OPERATOR:
155
ret = new CBoolValue(((CIntValue *) val)->GetInt() < m_float);
157
case VALUE_GEQ_OPERATOR:
158
ret = new CBoolValue(((CIntValue *) val)->GetInt() >= m_float);
160
case VALUE_LEQ_OPERATOR:
161
ret = new CBoolValue(((CIntValue *) val)->GetInt() <= m_float);
164
ret = new CErrorValue("illegal operator. please send a bug report.");
169
case VALUE_EMPTY_TYPE:
170
case VALUE_FLOAT_TYPE:
173
case VALUE_MOD_OPERATOR:
174
ret = new CFloatValue(fmod(((CFloatValue *) val)->GetFloat(), m_float));
176
case VALUE_ADD_OPERATOR:
177
ret = new CFloatValue(((CFloatValue *) val)->GetFloat() + m_float);
179
case VALUE_SUB_OPERATOR:
180
ret = new CFloatValue(((CFloatValue *) val)->GetFloat() - m_float);
182
case VALUE_MUL_OPERATOR:
183
ret = new CFloatValue(((CFloatValue *) val)->GetFloat() * m_float);
185
case VALUE_DIV_OPERATOR:
187
ret = new CErrorValue("Division by zero");
189
ret = new CFloatValue (((CFloatValue *) val)->GetFloat() / m_float);
191
case VALUE_EQL_OPERATOR:
192
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() == m_float);
194
case VALUE_NEQ_OPERATOR:
195
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() != m_float);
197
case VALUE_GRE_OPERATOR:
198
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() > m_float);
200
case VALUE_LES_OPERATOR:
201
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() < m_float);
203
case VALUE_GEQ_OPERATOR:
204
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() >= m_float);
206
case VALUE_LEQ_OPERATOR:
207
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() <= m_float);
209
case VALUE_NEG_OPERATOR:
210
ret = new CFloatValue (-m_float);
212
case VALUE_POS_OPERATOR:
213
ret = new CFloatValue (m_float);
217
ret = new CErrorValue("illegal operator. please send a bug report.");
222
case VALUE_STRING_TYPE:
225
case VALUE_ADD_OPERATOR:
226
ret = new CStringValue(val->GetText() + GetText(),"");
228
case VALUE_EQL_OPERATOR:
229
case VALUE_NEQ_OPERATOR:
230
case VALUE_GRE_OPERATOR:
231
case VALUE_LES_OPERATOR:
232
case VALUE_GEQ_OPERATOR:
233
case VALUE_LEQ_OPERATOR:
234
ret = new CErrorValue("[Cannot compare string with float]" + op2str(op) + GetText());
237
ret = new CErrorValue("[operator not allowed on strings]" + op2str(op) + GetText());
242
case VALUE_BOOL_TYPE:
243
ret = new CErrorValue("[operator not valid on boolean and float]" + op2str(op) + GetText());
245
case VALUE_ERROR_TYPE:
246
ret = new CErrorValue(val->GetText() + op2str(op) + GetText());
249
ret = new CErrorValue("illegal type. contact your dealer (if any)");