summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/Makefile8
-rw-r--r--src/test/ao_lisp_test.c40
2 files changed, 24 insertions, 24 deletions
diff --git a/src/test/Makefile b/src/test/Makefile
index e841bfde..6c51c421 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -10,7 +10,7 @@ INCS=ao_kalman.h ao_ms5607.h ao_log.h ao_data.h altitude-pa.h altitude.h ao_quat
KALMAN=make-kalman
-CFLAGS=-I.. -I. -I../kernel -I../drivers -I../micropeak -I../product -I../lisp -O0 -g -Wall
+CFLAGS=-I.. -I. -I../kernel -I../drivers -I../micropeak -I../product -I../lisp -O0 -g -Wall -DAO_LISP_TEST
all: $(PROGS) ao_aprs_data.wav
@@ -89,9 +89,11 @@ 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_read.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_OBJS = ao_lisp_test.o ao_lisp_mem.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_rep.o
ao_lisp_test: $(AO_LISP_OBJS)
cc $(CFLAGS) -o $@ $(AO_LISP_OBJS)
-$(AO_LISP_OBJS): ao_lisp.h
+$(AO_LISP_OBJS): ao_lisp.h ao_lisp_const.h
diff --git a/src/test/ao_lisp_test.c b/src/test/ao_lisp_test.c
index 96f1fd72..810a1528 100644
--- a/src/test/ao_lisp_test.c
+++ b/src/test/ao_lisp_test.c
@@ -21,9 +21,9 @@ static char *string;
int
main (int argc, char **argv)
{
- int i, j;
+ 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);
@@ -31,37 +31,35 @@ main (int argc, char **argv)
for (j = 0; j < 10; j++) {
list = 0;
string = ao_lisp_string_new(0);
- for (i = 0; i < 7; i++) {
+ for (i = 0; i < 2; i++) {
string = ao_lisp_string_cat(string, "a");
- list = ao_lisp_cons(ao_lisp_string_poly(string), list);
- list = ao_lisp_cons(ao_lisp_int_poly(i), list);
+ list = ao_lisp_cons_cons(ao_lisp_string_poly(string), list);
+ list = ao_lisp_cons_cons(ao_lisp_int_poly(i), list);
atom = ao_lisp_atom_intern("ant");
atom->val = ao_lisp_cons_poly(list);
- list = ao_lisp_cons(ao_lisp_atom_poly(atom), list);
+ list = ao_lisp_cons_cons(ao_lisp_atom_poly(atom), list);
}
ao_lisp_poly_print(ao_lisp_cons_poly(list));
printf("\n");
}
- atom = ao_lisp_atom_intern("ant");
- atom->val = ao_lisp_string_poly(ao_lisp_string_cat("hello world", ""));
-
- list = ao_lisp_cons(ao_lisp_atom_poly(ao_lisp_atom_intern("plus")),
- ao_lisp_cons(ao_lisp_cons_poly(ao_lisp_cons(ao_lisp_atom_poly(ao_lisp_atom_intern("plus")),
- ao_lisp_cons(ao_lisp_int_poly(3),
- ao_lisp_cons(ao_lisp_int_poly(4), NULL)))),
- ao_lisp_cons(ao_lisp_int_poly(2), NULL)));
+ for (atom = ao_lisp_poly_atom(ao_builtin_atoms); atom; atom = ao_lisp_poly_atom(atom->next)) {
+ printf("%s = ", atom->name);
+ ao_lisp_poly_print(atom->val);
+ printf("\n");
+ }
+#if 1
+ list = ao_lisp_cons_cons(ao_lisp_atom_poly(ao_lisp_atom_intern("+")),
+ ao_lisp_cons_cons(ao_lisp_cons_poly(ao_lisp_cons_cons(ao_lisp_atom_poly(ao_lisp_atom_intern("+")),
+ ao_lisp_cons_cons(ao_lisp_int_poly(3),
+ ao_lisp_cons_cons(ao_lisp_int_poly(4), NULL)))),
+ ao_lisp_cons_cons(ao_lisp_int_poly(2), NULL)));
printf("list: ");
ao_lisp_poly_print(ao_lisp_cons_poly(list));
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);
- }
-
+ ao_lisp_read_eval_print();
+#endif
}