summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_error.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-09 11:13:58 -0800
committerKeith Packard <keithp@keithp.com>2017-02-20 11:16:50 -0800
commit0ee44c8e4bf5dabe6a97bf76b366c8b767c387f8 (patch)
tree4121a5660af419a59d5dd18717e97da5d35543d6 /src/lisp/ao_lisp_error.c
parent794718abc62f4610495fe2bd535a2b67bc46573c (diff)
altos/lisp: macros appear to work now
Needed an extra stack frame to stash the pre-macro state. This simplified macro processing quite a bit; a macro now just evaluates the function and then sends that result to be evaluated again. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_error.c')
-rw-r--r--src/lisp/ao_lisp_error.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lisp/ao_lisp_error.c b/src/lisp/ao_lisp_error.c
index cedc107c..8b9fe2d5 100644
--- a/src/lisp/ao_lisp_error.c
+++ b/src/lisp/ao_lisp_error.c
@@ -80,17 +80,16 @@ ao_lisp_stack_print(void)
{
struct ao_lisp_stack *s;
printf("Value: "); ao_lisp_poly_print(ao_lisp_v); printf("\n");
- ao_lisp_error_frame(0, "Frame: ", ao_lisp_frame_current);
printf("Stack:\n");
for (s = ao_lisp_stack; s; s = ao_lisp_poly_stack(s->prev)) {
printf("\t[\n");
printf("\t\texpr: "); ao_lisp_poly_print(s->list); printf("\n");
printf("\t\tstate: %s\n", state_names[s->state]);
- printf("\t\tmacro: %s\n", s->macro ? "true" : "false");
+// printf("\t\tmacro: %s\n", s->macro ? "true" : "false");
ao_lisp_error_cons ("sexprs: ", ao_lisp_poly_cons(s->sexprs));
ao_lisp_error_cons ("values: ", ao_lisp_poly_cons(s->values));
ao_lisp_error_frame(2, "frame: ", ao_lisp_poly_frame(s->frame));
- ao_lisp_error_frame(2, "mframe: ", ao_lisp_poly_frame(s->macro_frame));
+// ao_lisp_error_frame(2, "mframe: ", ao_lisp_poly_frame(s->macro_frame));
printf("\t]\n");
}
}