aboutsummaryrefslogtreecommitdiffstats
path: root/src/bootstrap/main.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-10-17 16:08:58 +0200
committerBad Diode <bd@badd10de.dev>2021-10-17 16:08:58 +0200
commit6fcdb655a6581963a873224ad01f92b4e88f0de3 (patch)
tree88a12f6f5f2424e97a0afb6a8dcf4d43a75260c1 /src/bootstrap/main.c
parent953a44b3fd61302e6b86d549109a718a001c9b3c (diff)
downloadbdl-6fcdb655a6581963a873224ad01f92b4e88f0de3.tar.gz
bdl-6fcdb655a6581963a873224ad01f92b4e88f0de3.zip
Cleanup if call in eval function
Diffstat (limited to 'src/bootstrap/main.c')
-rwxr-xr-xsrc/bootstrap/main.c4
1 files changed, 3 insertions, 1 deletions
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) {
37 obj_false = alloc_object(OBJ_TYPE_BOOL); 37 obj_false = alloc_object(OBJ_TYPE_BOOL);
38 obj_err = alloc_object(OBJ_TYPE_ERR); 38 obj_err = alloc_object(OBJ_TYPE_ERR);
39 obj_quote = make_symbol((StringView){"quote", 5}); 39 obj_quote = make_symbol((StringView){"quote", 5});
40 proc_if = alloc_object(OBJ_TYPE_ERR);
40 push_root(obj_nil); 41 push_root(obj_nil);
41 push_root(obj_true); 42 push_root(obj_true);
42 push_root(obj_false); 43 push_root(obj_false);
43 push_root(obj_err); 44 push_root(obj_err);
44 push_root(obj_quote); 45 push_root(obj_quote);
46 push_root(proc_if);
45 47
46 // Global environment. 48 // Global environment.
47 global_env = env_create(NULL); 49 global_env = env_create(NULL);
@@ -52,6 +54,7 @@ init(void) {
52 // Primitive symbols. 54 // Primitive symbols.
53 MAKE_ENV_VAR(global_env, "else", obj_true); 55 MAKE_ENV_VAR(global_env, "else", obj_true);
54 MAKE_ENV_VAR(global_env, "nil", obj_nil); 56 MAKE_ENV_VAR(global_env, "nil", obj_nil);
57 MAKE_ENV_VAR(global_env, "if", proc_if);
55 58
56 // Primitive procedures. 59 // Primitive procedures.
57 MAKE_ENV_PROC(global_env, "eval", proc_eval); 60 MAKE_ENV_PROC(global_env, "eval", proc_eval);
@@ -79,7 +82,6 @@ init(void) {
79 MAKE_ENV_PROC(global_env, "not", proc_not); 82 MAKE_ENV_PROC(global_env, "not", proc_not);
80 MAKE_ENV_PROC(global_env, "and", proc_and); 83 MAKE_ENV_PROC(global_env, "and", proc_and);
81 MAKE_ENV_PROC(global_env, "or", proc_or); 84 MAKE_ENV_PROC(global_env, "or", proc_or);
82 MAKE_ENV_PROC(global_env, "if", proc_if);
83 MAKE_ENV_PROC(global_env, "cond", proc_cond); 85 MAKE_ENV_PROC(global_env, "cond", proc_cond);
84 MAKE_ENV_PROC(global_env, "<", proc_num_less_than); 86 MAKE_ENV_PROC(global_env, "<", proc_num_less_than);
85 MAKE_ENV_PROC(global_env, "<=", proc_num_lesseq_than); 87 MAKE_ENV_PROC(global_env, "<=", proc_num_lesseq_than);