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: