00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "ErrorValue.h"
00021
00022
00024
00026
00027 CErrorValue::CErrorValue()
00028
00029
00030
00031
00032 {
00033 m_strErrorText = "Error";
00034 SetError(true);
00035 }
00036
00037 CErrorValue::CErrorValue(CCString errmsg)
00038
00039
00040
00041
00042 {
00043 m_strErrorText = "[" + errmsg + "]";
00044 SetError(true);
00045 }
00046
00047 CErrorValue::~CErrorValue()
00048
00049
00050
00051
00052 {
00053
00054 }
00055
00056 CValue* CErrorValue::Calc(VALUE_OPERATOR op, CValue *val)
00057
00058
00059
00060
00061
00062 {
00063 CValue* errorval;
00064
00065 switch (op) {
00066 case (VALUE_NEG_OPERATOR):
00067 case (VALUE_NOT_OPERATOR):
00068 errorval = new CErrorValue (op2str(op) + GetText());
00069 break;
00070 default:
00071 errorval = val->CalcFinal(VALUE_ERROR_TYPE, op, this);
00072 }
00073
00074 return errorval;
00075 }
00076
00077 CValue* CErrorValue::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val)
00078
00079
00080
00081
00082
00083 {
00084 return new CErrorValue (val->GetText() + op2str(op) + GetText());
00085 }
00086
00087
00088 float CErrorValue::GetNumber()
00089 {
00090 return -1;
00091 }
00092
00093
00094 const CCString & CErrorValue::GetText()
00095 {
00096 return m_strErrorText;
00097 }
00098