{
switch(token->kind) {
case T_IDENTIFIER:
- fprintf(f, "identifier '%s'", token->identifier.symbol->string);
+ fprintf(f, "identifier '%s'", token->base.symbol->string);
break;
case T_INTEGER:
case T_FLOATINGPOINT:
- case T_FLOATINGPOINT_HEXADECIMAL:
print_token_kind(f, (token_kind_t)token->kind);
fputs(" '", f);
print_stringrep(&token->number.number, f);
print_stringrep(&token->string.string, f);
fputs("'", f);
break;
+
default:
- fputc('\'', f);
- print_token_kind(f, (token_kind_t)token->kind);
- fputc('\'', f);
+ if (token->base.symbol) {
+ fprintf(f, "'%s'", token->base.symbol->string);
+ } else {
+ fputc('\'', f);
+ print_token_kind(f, (token_kind_t)token->kind);
+ fputc('\'', f);
+ }
break;
}
}
{
switch((preprocessor_token_kind_t) token->kind) {
case TP_IDENTIFIER:
- fprintf(f, "identifier '%s'", token->identifier.symbol->string);
+ fprintf(f, "identifier '%s'", token->base.symbol->string);
break;
case TP_NUMBER:
fprintf(f, "number '%s'", token->number.number.begin);