Skip to content

Commit

Permalink
print (pretty-print) builtin
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Frame committed Jan 9, 2012
1 parent ba8593c commit 2b67137
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/env.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ int env_init(env_t *env) {
intern_table_put(&env->intern, "define"); // 4
intern_table_put(&env->intern, "lambda"); // 5
intern_table_put(&env->intern, "begin"); // 6
intern_table_put(&env->intern, "pprint"); // 7

env->gc.root = NULL;
env->gc.head = NULL;
Expand Down
7 changes: 7 additions & 0 deletions src/eval.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "lispy/binding.h"
#include "lispy/gc.h"
#include "lispy/intern.h"
#include "lispy/io.h"

#include <stdio.h>

Expand Down Expand Up @@ -120,6 +121,11 @@ BUILTIN(eval_begin) {
return out;
}

BUILTIN(eval_pprint) {
pretty_print(env, EVAL(list_get(list, 1)), 0);
return kNil;
}

VALUE eval_list(env_t *env, binding_t *binding, list_t *list) {

if (list_len(list) == 0) {
Expand All @@ -137,6 +143,7 @@ VALUE eval_list(env_t *env, binding_t *binding, list_t *list) {
case 4: return eval_define(env, binding, list);
case 5: return eval_lambda(env, binding, list);
case 6: return eval_begin(env, binding, list);
case 7: return eval_pprint(env, binding, list);
}
}

Expand Down
2 changes: 0 additions & 2 deletions src/lispy.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@ int main(int argc, char *argv[]) {
}
}

pretty_print(&env, out, 0);

}

} else {
Expand Down

0 comments on commit 2b67137

Please sign in to comment.