summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-10-31 18:53:09 -0700
committerKeith Packard <keithp@keithp.com>2017-02-20 11:16:49 -0800
commite2f4d25cd6f6f3787d4ee99264732d5b2ce23d4c (patch)
tree02247d4ef556ca80f07c839364b81a20c2a733c4 /src/test
parent56d46ceaa1413415f25e47e81036426132f99924 (diff)
altos: Add lisp reader
Diffstat (limited to 'src/test')
-rw-r--r--src/test/Makefile2
-rw-r--r--src/test/ao_lisp_test.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/test/Makefile b/src/test/Makefile
index a409ae13..e841bfde 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -89,7 +89,7 @@ ao_quaternion_test: ao_quaternion_test.c ao_quaternion.h
cc $(CFLAGS) -o $@ ao_quaternion_test.c -lm
-AO_LISP_OBJS = ao_lisp_test.o ao_lisp_mem.o ao_lisp_lex.o ao_lisp_cons.o ao_lisp_string.o ao_lisp_atom.o ao_lisp_int.o ao_lisp_prim.o ao_lisp_eval.o ao_lisp_poly.o ao_lisp_builtin.o
+AO_LISP_OBJS = ao_lisp_test.o ao_lisp_mem.o ao_lisp_lex.o ao_lisp_cons.o ao_lisp_string.o ao_lisp_atom.o ao_lisp_int.o ao_lisp_prim.o ao_lisp_eval.o ao_lisp_poly.o ao_lisp_builtin.o ao_lisp_read.o
ao_lisp_test: $(AO_LISP_OBJS)
cc $(CFLAGS) -o $@ $(AO_LISP_OBJS)
diff --git a/src/test/ao_lisp_test.c b/src/test/ao_lisp_test.c
index bbadfa75..96f1fd72 100644
--- a/src/test/ao_lisp_test.c
+++ b/src/test/ao_lisp_test.c
@@ -23,6 +23,7 @@ main (int argc, char **argv)
{
int i, j;
struct ao_lisp_atom *atom;
+ ao_lisp_poly poly;
ao_lisp_root_add(&ao_lisp_cons_type, (void **) &list);
ao_lisp_root_add(&ao_lisp_string_type, (void **) &string);
@@ -55,4 +56,12 @@ main (int argc, char **argv)
printf ("\n");
ao_lisp_poly_print(ao_lisp_eval(ao_lisp_cons_poly(list)));
printf ("\n");
+
+ while ((poly = ao_lisp_read())) {
+ poly = ao_lisp_eval(poly);
+ ao_lisp_poly_print(poly);
+ putchar ('\n');
+ fflush(stdout);
+ }
+
}