- dprintf(fd, "TOKEN %p (%d) \"", t, t->type);
- for (i = 0; i < MIN(t->size, 16); ++i) {
- switch (t->text[i]) {
- case '\0':
- dprintf(fd, "\\0");
- break;
- case '\a':
- dprintf(fd, "\\a");
- break;
- case '\b':
- dprintf(fd, "\\b");
- break;
- case '\f':
- dprintf(fd, "\\f");
- break;
- case '\n':
- dprintf(fd, "\\n");
- break;
- case '\r':
- dprintf(fd, "\\r");
- break;
- case '\t':
- dprintf(fd, "\\t");
- break;
- case '\v':
- dprintf(fd, "\\v");
- break;
- case '"':
- dprintf(fd, "\\\"");
- break;
- default:
- if (isprint(t->text[i])) {
- dprintf(fd, "%c", t->text[i]);
- } else {
- dprintf(fd, "\\%03hho", t->text[i]);
+ dprintf(fd, "TOKEN %p (%u) ", t, t->type);
+ if (t->type == PSI_T_EOF) {
+ dprintf(fd, "EOF");
+ } else {
+ dprintf(fd, "\"");
+ for (i = 0; i < t->size; ++i) {
+ switch (t->text[i]) {
+ case '\0':
+ dprintf(fd, "\\0");
+ break;
+ case '\a':
+ dprintf(fd, "\\a");
+ break;
+ case '\b':
+ dprintf(fd, "\\b");
+ break;
+ case '\f':
+ dprintf(fd, "\\f");
+ break;
+ case '\n':
+ dprintf(fd, "\\n");
+ break;
+ case '\r':
+ dprintf(fd, "\\r");
+ break;
+ case '\t':
+ dprintf(fd, "\\t");
+ break;
+ case '\v':
+ dprintf(fd, "\\v");
+ break;
+ case '"':
+ dprintf(fd, "\\\"");
+ break;
+ default:
+ if (isprint(t->text[i])) {
+ dprintf(fd, "%c", t->text[i]);
+ } else {
+ dprintf(fd, "\\x%02hhX", t->text[i]);
+ }
+ break;