typedef struct {
  enum {
    TYPE_DOUBLE,
    TYPE_INT,
    TYPE_STRING,
    TYPE_OBJECT,
    TYPE_BOOLEAN,
    TYPE_NULL
  } type;
 
  union {
    double double_num;
    int32_t int_num;
    char* string_ptr;
    void* object_ptr;
    char boolean; //There is no bool type in old C
  } as;
  
} value;