55 lines
1004 B
C
55 lines
1004 B
C
#ifndef MIE_CONST_H_
|
|
#define MIE_CONST_H_
|
|
|
|
#include <mie/ir/value.h>
|
|
|
|
#define MIE_CONST(p) ((struct mie_const *)(p))
|
|
|
|
#define MIE_INT(p) ((struct mie_int *)(p))
|
|
#define MIE_DOUBLE(p) ((struct mie_double *)(p))
|
|
#define MIE_STRING(p) ((struct mie_string *)(p))
|
|
#define MIE_ATOM(p) ((struct mie_atom *)(p))
|
|
#define MIE_SELECTOR(p) ((struct mie_selector *)(p))
|
|
#define MIE_ARRAY(p) ((struct mie_array *)(p))
|
|
|
|
struct b_list;
|
|
|
|
struct mie_const {
|
|
struct mie_value c_base;
|
|
struct mie_type *c_type;
|
|
};
|
|
|
|
struct mie_int {
|
|
struct mie_const i_base;
|
|
int64_t i_value;
|
|
};
|
|
|
|
struct mie_double {
|
|
struct mie_const d_base;
|
|
double d_value;
|
|
};
|
|
|
|
struct mie_string {
|
|
struct mie_const s_base;
|
|
char *s_value;
|
|
};
|
|
|
|
struct mie_atom {
|
|
struct mie_const a_base;
|
|
char *a_value;
|
|
};
|
|
|
|
struct mie_selector {
|
|
struct mie_const sel_base;
|
|
char *sel_value;
|
|
};
|
|
|
|
struct mie_array {
|
|
struct mie_const a_base;
|
|
struct b_list *a_values;
|
|
};
|
|
|
|
extern void mie_const_init(struct mie_const *c, struct mie_type *type);
|
|
|
|
#endif
|