#include #include #include #include #include #include #include #include #include #include #include #include #include "scheme.h" void accum_elt(struct accum *accum, value_t elt) { value_t newtail; newtail = fl_cons(elt, FL_NIL); if (accum->tail != FL_NIL) { cdr_(accum->tail) = newtail; } else { accum->list = newtail; } accum->tail = newtail; } void accum_pair(struct accum *accum, value_t a, value_t d) { accum_elt(accum, fl_cons(a, d)); } void accum_name_value(struct accum *accum, const char *name, value_t value) { accum_pair(accum, string_from_cstr(name), value); }