summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-10 23:24:11 -0800
committerKeith Packard <keithp@keithp.com>2016-11-17 22:18:39 -0800
commitdd2382eb2185735822a0036ba0ef436869a71922 (patch)
tree439721412d633324695ee42a281e97034595e095
parentfd7df330470c7c2f12ca3ce28d920c3b278108d5 (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/Makefile1
-rw-r--r--src/lisp/ao_lisp_make_const.c20
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();