Annotation of parser3/src/include/pa_vint.h, revision 1.2

1.1       paf         1: /*
1.2     ! paf         2:   $Id: pa_vint.h,v 1.1 2001/03/09 08:19:47 paf Exp $
1.1       paf         3: */
                      4: 
                      5: #ifndef PA_VINT_H
                      6: #define PA_VINT_H
                      7: 
                      8: #include "pa_value.h"
                      9: #include "pa_common.h"
                     10: #include "classes/_int.h"
                     11: 
                     12: #define MAX_INT_AS_STRING 20
                     13: 
                     14: class VInt : public VObject {
                     15: public: // Value
                     16: 
                     17:        // all: for error reporting after fail(), etc
                     18:        const char *type() const { return "integer"; }
                     19:        // int: this
                     20:        Value *get_expr_result() { return this; }
                     21: 
                     22:        // integer: finteger
1.2     ! paf        23:        const String *get_string() {
1.1       paf        24:                char *buf=static_cast<char *>(pool().malloc(MAX_INT_AS_STRING));
                     25:                snprintf(buf, MAX_INT_AS_STRING, "%d", finteger);
                     26:                String *result=NEW String(pool());
                     27:                result->APPEND_CONST(buf);
                     28:                return result;
                     29:        }
                     30:        // integer: finteger
                     31:        double get_double() { return finteger; }
                     32:        // integer: 0 or !0
                     33:        bool get_bool() { return finteger!=0; }
                     34: 
                     35: public: // usage
                     36: 
                     37:        VInt(Pool& apool, int ainteger) : VObject(apool, *int_class), 
                     38:                finteger(ainteger) {
                     39:        }
                     40: 
                     41:        int get_int() { return finteger; }
                     42: 
                     43:        void inc(int increment) { finteger+=increment; }
                     44: 
                     45: private:
                     46: 
                     47:        int finteger;
                     48: 
                     49: };
                     50: 
                     51: #endif

E-mail: