From 043a96a6b7cf55f7ef58fb5ebf8ad87b7d50b571 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 18 Oct 2021 12:31:20 +0200 Subject: Add header files for all modules --- src/bootstrap/objects.c | 66 ++----------------------------------------------- 1 file changed, 2 insertions(+), 64 deletions(-) (limited to 'src/bootstrap/objects.c') diff --git a/src/bootstrap/objects.c b/src/bootstrap/objects.c index 09076db..359329b 100644 --- a/src/bootstrap/objects.c +++ b/src/bootstrap/objects.c @@ -1,70 +1,10 @@ -typedef enum ObjectType { - OBJ_TYPE_FIXNUM, - OBJ_TYPE_BOOL, - OBJ_TYPE_NIL, - OBJ_TYPE_SYMBOL, - OBJ_TYPE_STRING, - OBJ_TYPE_PAIR, - OBJ_TYPE_PROCEDURE, - OBJ_TYPE_LAMBDA, - OBJ_TYPE_ERR, -} ObjectType; - -struct Environment; - -typedef struct Object { - ObjectType type; - bool marked; - union { - // OBJ_TYPE_FIXNUM - ssize_t fixnum; - - // OBJ_TYPE_STRING - struct { - char *string; - size_t string_n; - }; - - // OBJ_TYPE_PAIR - struct { - struct Object *car; - struct Object *cdr; - }; - - // OBJ_TYPE_SYMBOL - struct { - char *symbol; - size_t symbol_n; - }; - - // OBJ_TYPE_PROCEDURE - struct Object *(*proc)(struct Environment *env, struct Object *args); - - // OBJ_TYPE_LAMBDA - struct { - struct Object *params; - struct Object *body; - struct Environment *env; - }; - }; -} Object; - -// -// Singletons. -// - -static Object *obj_nil; -static Object *obj_true; -static Object *obj_false; -static Object *obj_err; -static Object *obj_quote; +#include "gc.h" +#include "objects.h" // // Constructors. // -Object * alloc_object(ObjectType); - Object * make_fixnum(ssize_t num) { Object *obj = alloc_object(OBJ_TYPE_FIXNUM); @@ -116,8 +56,6 @@ append_string(Object *obj, const StringView sv) { obj->string_n += sv.n; } -void display(Object *root); - void display_pair(Object *root) { display(root->car); -- cgit v1.2.1