32 lines
509 B
C
32 lines
509 B
C
#ifndef MIE_DATA_H_
|
|
#define MIE_DATA_H_
|
|
|
|
#include <mie/value.h>
|
|
|
|
#define MIE_DATA(p) ((struct mie_data *)(p))
|
|
|
|
enum mie_data_type {
|
|
MIE_DATA_NONE = 0,
|
|
MIE_DATA_EXTERN_GLOBAL,
|
|
MIE_DATA_CONST,
|
|
};
|
|
|
|
struct mie_data {
|
|
struct mie_value d_base;
|
|
enum mie_data_type d_type;
|
|
union {
|
|
struct {
|
|
struct mie_value *c_value;
|
|
} d_const;
|
|
|
|
struct {
|
|
struct mie_type *g_type;
|
|
} d_extern_global;
|
|
};
|
|
};
|
|
|
|
extern struct mie_data *mie_data_create_extern_global(
|
|
struct mie_type *type, const char *ident);
|
|
|
|
#endif
|