summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp/ao_lisp_frame.c')
-rw-r--r--src/lisp/ao_lisp_frame.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lisp/ao_lisp_frame.c b/src/lisp/ao_lisp_frame.c
index 8791c4de..7978f20a 100644
--- a/src/lisp/ao_lisp_frame.c
+++ b/src/lisp/ao_lisp_frame.c
@@ -100,6 +100,27 @@ const struct ao_lisp_type ao_lisp_frame_type = {
.move = frame_move
};
+void
+ao_lisp_frame_print(ao_poly p)
+{
+ struct ao_lisp_frame *frame = ao_lisp_poly_frame(p);
+ int f;
+
+ printf ("{");
+ if (frame) {
+ for (f = 0; f < frame->num; f++) {
+ if (f != 0)
+ printf(", ");
+ ao_lisp_poly_print(frame->vals[f].atom);
+ printf(" = ");
+ ao_lisp_poly_print(frame->vals[f].val);
+ }
+ if (frame->next)
+ ao_lisp_poly_print(frame->next);
+ }
+ printf("}");
+}
+
ao_poly *
ao_lisp_frame_ref(struct ao_lisp_frame *frame, ao_poly atom)
{