dyntype.h 741 Bytes
#ifndef __DYNTYPE_H__
#define __DYNTYPE_H__

#include <sys/types.h>

#include "token/cclass.h"

struct DYNTYPE;

#include "token/dyntype/hash.h"


enum DYNTYPE_TYPES {
    DYNTYPE_TYPE_NULL = 0,
    DYNTYPE_TYPE_BOOLEAN,
    DYNTYPE_TYPE_INT,
    DYNTYPE_TYPE_FLOAT,
    DYNTYPE_TYPE_STRING,
    DYNTYPE_TYPE_ARRAY,
    DYNTYPE_TYPE_HASH
};


struct DYNTYPE {
    const struct CCLASS * const class;
    enum DYNTYPE_TYPES type;
    size_t size;
    union _data {
        unsigned char _boolean;
        int _int;
        double _float;
        char * _string;
        struct DYNTYPE ** _array;
        struct DYNTYPE_HASH * _hash;
    } data;
};

extern const struct CCLASS * const DYNTYPE;

#endif//__DYNTYPE_H__

// vim: set et ts=4 sw=4: