00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _MPCL_TEXT_CODEGEN_VARIABLE_STRING__
00027 #define _MPCL_TEXT_CODEGEN_VARIABLE_STRING__
00028
00029 #include "../string.hh"
00030
00031
00033 namespace mpcl
00034 {
00035
00037 namespace text
00038 {
00039
00041 namespace codegen
00042 {
00043
00048 class TVariableString : public TString
00049 {
00050
00051 public:
00052
00054 enum EType
00055 {
00056 eNormal ,
00057 eOptional ,
00058 eFile
00059 };
00060
00061
00062 protected:
00063
00065 EType eType;
00066
00067
00068 public:
00069
00070
00071
00072
00073
00075 TVariableString (void) :
00076 TString () ,
00077 eType (eNormal) {}
00078
00083 TVariableString (const char* pkcTEXT) :
00084 TString (pkcTEXT) ,
00085 eType (eNormal) {}
00086
00093 TVariableString (const char* pkcTEXT, size_t zMAX_LENGTH) :
00094 TString (pkcTEXT, zMAX_LENGTH) ,
00095 eType (eNormal) {}
00096
00102 TVariableString (const TString& rkySOURCE, EType eSOURCE_TYPE = eNormal) :
00103 TString (rkySOURCE) ,
00104 eType (eSOURCE_TYPE) {}
00105
00110 TVariableString (const TVariableString& rkySOURCE_VARIABLE) :
00111 TString (rkySOURCE_VARIABLE) ,
00112 eType (rkySOURCE_VARIABLE.eType) {}
00113
00118 void setType (EType eSOURCE_TYPE);
00119
00125 TVariableString& operator = (const TVariableString& rkySOURCE_VARIABLE);
00126
00132 TVariableString& operator = (const TString& rkySOURCE);
00133
00134
00135 public:
00136
00137
00138
00139
00140
00145 EType type (void) const;
00146
00147 };
00148
00149 }
00150
00151 }
00152
00153 }
00154
00155
00156 #endif // not _MPCL_TEXT_CODEGEN_VARIABLE_STRING__