--- parser3/src/include/Attic/pa_vdouble.h 2001/03/06 14:09:35 1.2 +++ parser3/src/include/Attic/pa_vdouble.h 2001/03/08 12:19:19 1.6 @@ -1,5 +1,5 @@ /* - $Id: pa_vdouble.h,v 1.2 2001/03/06 14:09:35 paf Exp $ + $Id: pa_vdouble.h,v 1.6 2001/03/08 12:19:19 paf Exp $ */ #ifndef PA_VDOUBLE_H @@ -8,33 +8,35 @@ #include "pa_value.h" #include "pa_common.h" -#define MAX_DOUBLE_STRING 20 +#define MAX_DOUBLE_AS_STRING 20 class VDouble : public Value { public: // Value // all: for error reporting after fail(), etc - const char *type() const { return "Double"; } - // double: value + const char *type() const { return "double"; } + // double: fvalue String *get_string() { - char *buf=static_cast(pool().malloc(MAX_DOUBLE_STRING)); - snprintf(buf, MAX_DOUBLE_STRING, "%f", value); + char *buf=static_cast(pool().malloc(MAX_DOUBLE_AS_STRING)); + snprintf(buf, MAX_DOUBLE_AS_STRING, "%g", fvalue); String *result=NEW String(pool()); result->APPEND_CONST(buf); return result; }; - // double: value - double get_double() { return value; }; + // double: fvalue + double get_double() { return fvalue; }; + // double: 0 or !0 + bool get_bool() { return fvalue!=0; }; public: // usage VDouble(Pool& apool, double avalue=0) : Value(apool), - value(avalue) { + fvalue(avalue) { } private: - double value; + double fvalue; };