From 7fe8576c059a500e2673921c8fc78761b7326413 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Wed, 4 Feb 2026 19:38:09 +0000 Subject: [PATCH] Move sys.c into lisp.c --- src/constructor.c | 70 ------------------------------------------- src/{sys.c => lisp.c} | 50 +++++++++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 72 deletions(-) delete mode 100644 src/constructor.c rename src/{sys.c => lisp.c} (68%) diff --git a/src/constructor.c b/src/constructor.c deleted file mode 100644 index 1e7b140..0000000 --- a/src/constructor.c +++ /dev/null @@ -1,70 +0,0 @@ -/* constructor.c: Lisp constructors/destructors - * Created: 2025-08-20 - * Author: Aryadev Chavali - * License: See end of file - * Commentary: - */ - -#include - -#include -#include - -lisp_t *make_int(i64 i) -{ - return tag_int(i); -} - -lisp_t *cons(sys_t *sys, lisp_t *car, lisp_t *cdr) -{ - cons_t *cons = calloc(1, sizeof(*cons)); - cons->car = car; - cons->cdr = cdr; - - lisp_t *lcons = tag_cons(cons); - sys_register(sys, lcons); - return lcons; -} - -lisp_t *make_vec(sys_t *sys, u64 capacity) -{ - vec_t *vec = calloc(1, sizeof(*vec)); - vec_init(vec, capacity); - lisp_t *ptr = tag_vec(vec); - sys_register(sys, ptr); - return ptr; -} - -lisp_t *intern(sys_t *sys, sv_t sv) -{ - char *str = sym_table_find(&sys->symtable, sv); - return tag_sym(str); -} - -lisp_t *car(lisp_t *lsp) -{ - if (!IS_TAG(lsp, CONS)) - return NIL; - else - return CAR(lsp); -} - -lisp_t *cdr(lisp_t *lsp) -{ - if (!IS_TAG(lsp, CONS)) - return NIL; - else - return CDR(lsp); -} - -/* Copyright (C) 2025, 2026 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 Unlicense for details. - - * You may distribute and modify this code under the terms of the Unlicense, - * which you should have received a copy of along with this program. If not, - * please go to . - - */ diff --git a/src/sys.c b/src/lisp.c similarity index 68% rename from src/sys.c rename to src/lisp.c index 0dd4077..926bfe0 100644 --- a/src/sys.c +++ b/src/lisp.c @@ -1,11 +1,10 @@ -/* sys.c: System management +/* lisp.c: Lisp constructors/destructors * Created: 2025-08-20 * Author: Aryadev Chavali * License: See end of file * Commentary: */ -#include #include #include @@ -64,6 +63,53 @@ void sys_cleanup(sys_t *sys) memset(sys, 0, sizeof(*sys)); } +lisp_t *make_int(i64 i) +{ + return tag_int(i); +} + +lisp_t *cons(sys_t *sys, lisp_t *car, lisp_t *cdr) +{ + cons_t *cons = calloc(1, sizeof(*cons)); + cons->car = car; + cons->cdr = cdr; + + lisp_t *lcons = tag_cons(cons); + sys_register(sys, lcons); + return lcons; +} + +lisp_t *make_vec(sys_t *sys, u64 capacity) +{ + vec_t *vec = calloc(1, sizeof(*vec)); + vec_init(vec, capacity); + lisp_t *ptr = tag_vec(vec); + sys_register(sys, ptr); + return ptr; +} + +lisp_t *intern(sys_t *sys, sv_t sv) +{ + char *str = sym_table_find(&sys->symtable, sv); + return tag_sym(str); +} + +lisp_t *car(lisp_t *lsp) +{ + if (!IS_TAG(lsp, CONS)) + return NIL; + else + return CAR(lsp); +} + +lisp_t *cdr(lisp_t *lsp) +{ + if (!IS_TAG(lsp, CONS)) + return NIL; + else + return CDR(lsp); +} + /* Copyright (C) 2025, 2026 Aryadev Chavali * This program is distributed in the hope that it will be useful, but WITHOUT