From fb710f7f4f24f74ac3d45fcc423803384d986bb2 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 10 Nov 2016 23:24:11 -0800 Subject: [PATCH] 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 --- src/lisp/Makefile | 1 + 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(); -- 2.30.2