diff options
author | Keith Packard <keithp@keithp.com> | 2016-11-10 23:24:11 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2016-11-17 22:18:39 -0800 |
commit | dd2382eb2185735822a0036ba0ef436869a71922 (patch) | |
tree | 439721412d633324695ee42a281e97034595e095 | |
parent | fd7df330470c7c2f12ca3ce28d920c3b278108d5 (diff) |
altos/lisp: use regular read-eval-print loop for make const
No need to open code this sequence of operations.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | src/lisp/Makefile | 1 | ||||
-rw-r--r-- | src/lisp/ao_lisp_make_const.c | 20 |
2 files changed, 7 insertions, 14 deletions
diff --git a/src/lisp/Makefile b/src/lisp/Makefile index 9c99f05c..aa542021 100644 --- a/src/lisp/Makefile +++ b/src/lisp/Makefile @@ -19,6 +19,7 @@ SRCS=\ ao_lisp_frame.c \ ao_lisp_lambda.c \ ao_lisp_eval.c \ + ao_lisp_rep.c \ ao_lisp_error.c OBJS=$(SRCS:.c=.o) diff --git a/src/lisp/ao_lisp_make_const.c b/src/lisp/ao_lisp_make_const.c index bb4afbfb..4fc43e58 100644 --- a/src/lisp/ao_lisp_make_const.c +++ b/src/lisp/ao_lisp_make_const.c @@ -105,20 +105,12 @@ main(int argc, char **argv) ao_lisp_atom_set(ao_lisp_atom_poly(a), ao_lisp_atom_poly(a)); - for (;;) { - sexpr = ao_lisp_read(); - if (!sexpr) - break; - printf ("sexpr: "); - ao_lisp_poly_print(sexpr); - printf("\n"); - val = ao_lisp_eval(sexpr); - if (ao_lisp_exception) - exit(1); - printf("\t"); - ao_lisp_poly_print(val); - printf("\n"); - } + /* end of file value */ + a = ao_lisp_atom_intern("eof"); + ao_lisp_atom_set(ao_lisp_atom_poly(a), + ao_lisp_atom_poly(a)); + + ao_lisp_read_eval_print(); /* Reduce to referenced values */ ao_lisp_collect(); |