#include #include #include "picrin.h" #include "picrin/proc.h" void pic_debug(pic_state *pic, pic_value obj) { switch (pic_type(obj)) { case PIC_TT_NIL: printf("()"); break; case PIC_TT_PAIR: printf("("); pic_debug(pic, pic_car(pic, obj)); printf(" . "); pic_debug(pic, pic_cdr(pic, obj)); printf(")"); break; case PIC_TT_SYMBOL: printf("%s", pic_symbol_ptr(obj)->name); break; case PIC_TT_FLOAT: printf("%f", pic_float(obj)); break; case PIC_TT_UNDEF: printf("#"); break; case PIC_TT_PROC: printf("#", pic_proc_ptr(obj)); break; default: printf("#"); break; } }