From c83618999227adb5e745f92205bd48e076e2d124 Mon Sep 17 00:00:00 2001 From: ubq323 Date: Sat, 29 Jul 2023 22:22:23 +0100 Subject: th --- val.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 val.h (limited to 'val.h') diff --git a/val.h b/val.h new file mode 100644 index 0000000..4560a1c --- /dev/null +++ b/val.h @@ -0,0 +1,39 @@ +#ifndef _val_h +#define _val_h + +#include + +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 -- cgit v1.2.3