aboutsummaryrefslogtreecommitdiff
path: root/lisp.h
diff options
context:
space:
mode:
Diffstat (limited to 'lisp.h')
-rw-r--r--lisp.h59
1 files changed, 0 insertions, 59 deletions
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 <https://www.gnu.org/licenses/>.
-
- * 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