// Tipos de datos.
enum value_type {
VTINVALID = 0,
VTUNDEFINED,
VTNULL,
VTTRUE,
VTFALSE,
VTINT,
VTFLOAT,
VTSTRING,
VTARRAY,
VTOBJECT
};
struct array_value; // Predeclaración.
struct object_value; // Predeclaración.
typedef struct {
size_t *malloc_size;
char *value;
size_t length;
} string_reference;
typedef struct {
size_t *malloc_size;
array_value *value;
// ... Otros datos ...
} array_reference;
typedef struct {
size_t *malloc_size;
object_value *value;
// ... Otros datos ...
} object_reference;