Sexpr* load_env(Sexpr* env) {
- append_to_dict(env, from_sym("nil"), from_nil());
- append_to_dict(env, from_sym("t"), from_t());
- Sexpr* newenv = load_core_env(env);
+ Sexpr* nilk = from_sym("nil");
+ Sexpr* nilv = from_nil();
+ append_to_dict(env, nilk, nilv);
+ sexpr_free(nilk);
+ sexpr_free(nilv);
+
+ Sexpr* tk = from_sym("t");
+ Sexpr* tv = from_t();
+ append_to_dict(env, tk, tv);
+ sexpr_free(tk);
+ sexpr_free(tv);
+
+ Sexpr* newenv = env;
+ newenv = load_core_env(env);
newenv = load_arith_env(newenv);
- append_to_dict(env, from_sym("asdf"), from_uint(5455));
+ //append_to_dict(env, from_sym("asdf"), from_uint(5455));
return newenv;
}
Sexpr* load_core_env(Sexpr* env) {
+ Sexpr* k = from_sym("quote");
Sexpr* c_quote = from_opcode(CORE_QUOTE);
- append_to_dict(env, from_sym("quote"), c_quote);
+ append_to_dict(env, k, c_quote);
+ sexpr_free(c_quote);
+ sexpr_free(k);
+
+ k = from_sym("cons");
Sexpr* c_cons = from_opcode(CORE_CONS);
- append_to_dict(env, from_sym("cons"), c_cons);
+ append_to_dict(env, k, c_cons);
+ sexpr_free(c_cons);
+ sexpr_free(k);
+
+ k = from_sym("car");
Sexpr* c_car = from_opcode(CORE_CAR);
- append_to_dict(env, from_sym("car"), c_car);
+ append_to_dict(env, k, c_car);
+ sexpr_free(c_car);
+ sexpr_free(k);
+
+ k = from_sym("cdr");
Sexpr* c_cdr = from_opcode(CORE_CDR);
- append_to_dict(env, from_sym("cdr"), c_cdr);
+ append_to_dict(env, k, c_cdr);
+ sexpr_free(c_cdr);
+ sexpr_free(k);
+
+ k = from_sym("if");
Sexpr* c_if = from_opcode(CORE_IF);
- append_to_dict(env, from_sym("if"), c_if);
+ append_to_dict(env, k, c_if);
+ sexpr_free(c_if);
+ sexpr_free(k);
+
+ k = from_sym("eq");
Sexpr* c_eq = from_opcode(CORE_EQ);
- append_to_dict(env, from_sym("eq"), c_eq);
+ append_to_dict(env, k, c_eq);
+ sexpr_free(c_eq);
+ sexpr_free(k);
+
+ k = from_sym("not");
Sexpr* c_not = from_opcode(CORE_NOT);
- append_to_dict(env, from_sym("not"), c_not);
+ append_to_dict(env, k, c_not);
+ sexpr_free(c_not);
+ sexpr_free(k);
+
+ k = from_sym("atom");
Sexpr* c_atom = from_opcode(CORE_ATOM);
- append_to_dict(env, from_sym("atom"), c_atom);
+ append_to_dict(env, k, c_atom);
+ sexpr_free(c_atom);
+ sexpr_free(k);
+
+ k = from_sym("def");
Sexpr* c_def = from_opcode(CORE_DEF);
- append_to_dict(env, from_sym("def"), c_def);
+ append_to_dict(env, k, c_def);
+ sexpr_free(c_def);
+ sexpr_free(k);
+
+ k = from_sym("exit");
Sexpr* c_exit = from_opcode(CORE_EXIT);
- append_to_dict(env, from_sym("exit"), c_exit);
+ append_to_dict(env, k, c_exit);
+ sexpr_free(c_exit);
+ sexpr_free(k);
+
return env;
}