From 6fcdb655a6581963a873224ad01f92b4e88f0de3 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sun, 17 Oct 2021 16:08:58 +0200 Subject: Cleanup if call in eval function --- src/bootstrap/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/bootstrap/main.c') diff --git a/src/bootstrap/main.c b/src/bootstrap/main.c index bf2354b..2d24f92 100755 --- a/src/bootstrap/main.c +++ b/src/bootstrap/main.c @@ -37,11 +37,13 @@ init(void) { obj_false = alloc_object(OBJ_TYPE_BOOL); obj_err = alloc_object(OBJ_TYPE_ERR); obj_quote = make_symbol((StringView){"quote", 5}); + proc_if = alloc_object(OBJ_TYPE_ERR); push_root(obj_nil); push_root(obj_true); push_root(obj_false); push_root(obj_err); push_root(obj_quote); + push_root(proc_if); // Global environment. global_env = env_create(NULL); @@ -52,6 +54,7 @@ init(void) { // Primitive symbols. MAKE_ENV_VAR(global_env, "else", obj_true); MAKE_ENV_VAR(global_env, "nil", obj_nil); + MAKE_ENV_VAR(global_env, "if", proc_if); // Primitive procedures. MAKE_ENV_PROC(global_env, "eval", proc_eval); @@ -79,7 +82,6 @@ init(void) { MAKE_ENV_PROC(global_env, "not", proc_not); MAKE_ENV_PROC(global_env, "and", proc_and); MAKE_ENV_PROC(global_env, "or", proc_or); - MAKE_ENV_PROC(global_env, "if", proc_if); MAKE_ENV_PROC(global_env, "cond", proc_cond); MAKE_ENV_PROC(global_env, "<", proc_num_less_than); MAKE_ENV_PROC(global_env, "<=", proc_num_lesseq_than); -- cgit v1.2.1