extern int printk(const char *fmt,...){ va_list args; int i; va_start(args,fmt); i=vsprintf(buf,fmt,args); cons_print(0,buf,i); return i; }
void cons_print(Cons *cons, FILE *fp) { bool b = false; for(; cons != NULL; cons = cons->cdr) { if(b) printf(" "); b = true; switch(cons->type) { case CONS_INT: printf("%d", cons->i); break; case CONS_STR: printf("%s", cons->str); break; case CONS_FLOAT: printf("%lf", cons->f); break; case CONS_CAR: fprintf(fp, "("); cons_print(cons->car, fp); fprintf(fp, ")"); break; } } }
void cons_println(Cons *cons, FILE *fp) { cons_print(cons, fp); fprintf(fp, "\n"); }