#define _ao_lisp_atom_save _atom("save")
#define _ao_lisp_atom_restore _atom("restore")
#define _ao_lisp_atom_call2fcc _atom("call/cc")
+#define _ao_lisp_atom_collect _atom("collect")
#else
#include "ao_lisp_const.h"
#ifndef AO_LISP_POOL
builtin_save,
builtin_restore,
builtin_call_cc,
+ builtin_collect,
_builtin_last
};
/* frame */
extern const struct ao_lisp_type ao_lisp_frame_type;
-#define AO_LISP_FRAME_FREE 4
+#define AO_LISP_FRAME_FREE 6
extern struct ao_lisp_frame *ao_lisp_frame_free_list[AO_LISP_FRAME_FREE];
void
ao_lisp_frame_free(struct ao_lisp_frame *frame);
+void
+ao_lisp_frame_bind(struct ao_lisp_frame *frame, int num, ao_poly atom, ao_poly val);
+
int
ao_lisp_frame_add(struct ao_lisp_frame **frame, ao_poly atom, ao_poly val);