home *** CD-ROM | disk | FTP | other *** search
- #ifndef __TYPES_H
- #define __TYPES_H
-
- enum datatype{EMPTY,
- INT,LONG,FLOAT,DOUBLE,LDOUBLE,
- STRING,
- DERIVED};
- class value{
- public:
- char* namptr;
- value(); value(char* namestr); //constructor
- virtual ~value(); //destructor
- //return characteristics
- virtual const char* name(){return namptr;}
- virtual int valid();
- virtual datatype type(); virtual const char* typename();
- //return value in different forms
- virtual int asint();
- virtual long aslong();
- virtual float asfloat();
- virtual double asdouble();
- virtual long double asldouble();
- virtual const char* asstring();};
-
- class ival:public value{
- protected:
- int data;
- public:
- ival(char* namestr, int val);
- datatype type(); const char* typename();
- int asint();
- long aslong();
- float asfloat();
- double asdouble();
- long double asldouble();
- const char* asstring();};
-
- class lval:public value{
- protected:
- long data;
- public:
- lval(char* namestr, long val);
- datatype type(); const char* typename();
- int asint();
- long aslong();
- float asfloat();
- double asdouble();
- long double asldouble();
- const char* asstring();};
-
- class fval:public value{
- protected:
- float data;
- public:
- fval(char* namestr, float val);
- datatype type(); const char* typename();
- int asint();
- long aslong();
- float asfloat();
- double asdouble();
- long double asldouble();
- const char* asstring();};
-
- class dval:public value{
- protected:
- double data;
- public:
- dval(char* namestr, double val);
- datatype type(); const char* typename();
- int asint();
- long aslong();
- float asfloat();
- double asdouble();
- long double asldouble();
- const char* asstring();};
-
- class ldval:public value{
- protected:
- long double data;
- public:
- ldval(char* namestr, long double val);
- datatype type(); const char* typename();
- int asint();
- long aslong();
- float asfloat();
- double asdouble();
- long double asldouble();
- const char* asstring();};
-
- class sval:public value{
- protected:
- char* data;
- public:
- sval(char* namestr, char* val);
- ~sval(); //supplemental destructor
- datatype type(); const char* typename();
- int asint();
- long aslong();
- float asfloat();
- double asdouble();
- long double asldouble();
- const char* asstring();};
-
- #endif
-