From 12de1e8db90bccd5a0eefd21075f07c7b7e3dfaa Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Wed, 14 May 2025 21:12:58 +0100 Subject: Refactor for cleanliness Move files into separate folders for ease of reading, include source directory so we can use angle bracket includes, adjust build system to make directories for objects --- lisp.h | 59 ----------------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 lisp.h (limited to 'lisp.h') diff --git a/lisp.h b/lisp.h deleted file mode 100644 index b714e7d..0000000 --- a/lisp.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (C) 2025 Aryadev Chavali - - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for - * details. - - * You may distribute and modify this code under the terms of the GNU General - * Public License Version 2, which you should have received a copy of along with - * this program. If not, please go to . - - * Created: 2025-04-06 - * Description: Object model where we deal with contexts - */ - -#ifndef LISP_H -#define LISP_H - -#include "./base.h" -#include "./memory.h" -#include "./sv.h" -#include "./tag.h" -#include "./vec.h" - -typedef struct Cons -{ - lisp_t *car, *cdr; -} cons_t; - -typedef struct Cell -{ - u64 size; - u8 data[]; -} cell_t; - -#define NIL 0 -lisp_t *make_int(i64 integer); -lisp_t *make_sym(context_t *ctx, char *data, u64 size); -lisp_t *make_cons(context_t *ctx, lisp_t *car, lisp_t *cdr); -lisp_t *make_list(context_t *ctx, lisp_t **lisps, u64 size); -lisp_t *make_vec(context_t *ctx, u32 size); -lisp_t *make_str(context_t *ctx, char *data, u64 size); - -i64 as_int(lisp_t *obj); -u32 as_char(lisp_t *obj); -cell_t *as_sym(lisp_t *obj); -void as_ssym(lisp_t *obj, sv_t *sv); -bool as_bool(lisp_t *obj); -f64 as_float(lisp_t *obj); -cons_t *as_cons(lisp_t *obj); -vec_t *as_vec(lisp_t *obj); -vec_t *as_str(lisp_t *obj); - -sv_t serialise(context_t *ctx, lisp_t *lisp); - -#define CAR(PTR) (as_cons(PTR)->car) -#define CDR(PTR) (as_cons(PTR)->cdr) - -#endif -- cgit v1.2.3-13-gbd6f