static void structure_print (repv stream, repv arg) { if (rep_STRUCTURE (arg)->name == Qnil) rep_stream_puts (stream, "#<structure>", -1, rep_FALSE); else { rep_stream_puts (stream, "#<structure ", -1, rep_FALSE); rep_princ_val (stream, rep_STRUCTURE(arg)->name); rep_stream_putc (stream, '>'); } }
static void table_print (repv stream, repv arg) { rep_stream_puts (stream, "#<table ", -1, rep_FALSE); rep_princ_val (stream, TABLE(arg)->hash_fun); rep_stream_putc (stream, ' '); rep_princ_val (stream, TABLE(arg)->compare_fun); rep_stream_putc (stream, '>'); }
static void datum_print (repv stream, repv arg) { if (arg == Qnil) { DEFSTRING (eol, "()"); rep_stream_puts (stream, rep_PTR (rep_VAL (&eol)), 2, rep_TRUE); } else { repv printer = Fassq (DATUM_ID (arg), printer_alist); if (printer && rep_CONSP (printer) && rep_CDR (printer) != Qnil) rep_call_lisp2 (rep_CDR (printer), arg, stream); else if (rep_SYMBOLP (DATUM_ID (arg))) { rep_stream_puts (stream, "#<datum ", -1, rep_FALSE); rep_stream_puts (stream, rep_PTR (rep_SYM (DATUM_ID (arg))->name), -1, rep_TRUE); rep_stream_putc (stream, '>'); } else rep_stream_puts (stream, "#<datum>", -1, rep_FALSE); } }