Annotation of parser3/src/include/pa_vdouble.h, revision 1.9
1.1 paf 1: /*
1.9 ! paf 2: $Id: pa_vdouble.h,v 1.8 2001/03/08 17:08:13 paf Exp $
1.1 paf 3: */
4:
5: #ifndef PA_VDOUBLE_H
6: #define PA_VDOUBLE_H
7:
8: #include "pa_value.h"
1.2 paf 9: #include "pa_common.h"
10:
1.3 paf 11: #define MAX_DOUBLE_AS_STRING 20
1.1 paf 12:
13: class VDouble : public Value {
14: public: // Value
15:
16: // all: for error reporting after fail(), etc
1.4 paf 17: const char *type() const { return "double"; }
1.7 paf 18:
19: // double: fdouble
1.2 paf 20: String *get_string() {
1.3 paf 21: char *buf=static_cast<char *>(pool().malloc(MAX_DOUBLE_AS_STRING));
1.9 ! paf 22: snprintf(buf, MAX_DOUBLE_AS_STRING, "%g", fdouble);
1.2 paf 23: String *result=NEW String(pool());
24: result->APPEND_CONST(buf);
25: return result;
1.7 paf 26: }
27: // double: fdouble
1.9 ! paf 28: double get_double() { return fdouble; }
1.5 paf 29: // double: 0 or !0
1.9 ! paf 30: bool get_bool() { return fdouble!=0; }
1.1 paf 31:
32: public: // usage
33:
1.9 ! paf 34: VDouble(Pool& apool, double adouble) : Value(apool),
1.7 paf 35: fdouble(adouble) {
1.1 paf 36: }
37:
38: private:
1.2 paf 39:
1.9 ! paf 40: double fdouble;
1.1 paf 41:
42: };
43:
44: #endif
E-mail: