diff options
Diffstat (limited to 'val.h')
-rw-r--r-- | val.h | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -0,0 +1,39 @@ +#ifndef _val_h +#define _val_h + +#include <stdbool.h> + +struct _val; +typedef struct _val Val; +struct _obj; +typedef struct _obj Obj; + + +typedef enum { + TY_NUM, + TY_BOOL, + TY_NIL, +} ValTy; + +struct _val { + ValTy ty; + union { + double d; + bool b; + Obj *o; + } as; +}; + +struct _obj { + // some gc shit + int foo; +}; + + +#define IS_NUM(x) (x.ty == TY_NUM) +#define IS_BOOL(x) (x.ty == TY_BOOL) +#define IS_NIL(x) (x.ty == NIL) + + + +#endif |