const char * strTokenKind(enum TokenKind tokenKind) { switch (tokenKind) { case EOI: return "EOI"; case BAD_TOKEN: return "BAD_TOKEN"; case DEC_LITERAL: return "DEC_LITERAL"; case HEX_LITERAL: return "HEX_LITERAL"; case OCT_LITERAL: return "OCT_LITERAL"; case IDENTIFIER: return "IDENTIFIER"; case AMPERSAND: return "AMPERSAND"; case AMPERSAND2: return "AMPERSAND2"; case ASTERISK: return "ASTERISK"; case CARET: return "CARET"; case DOLLAR: return "DOLLAR"; case EQUAL: return "EQUAL"; case EQUAL2: return "EQUAL2"; case NOT: return "NOT"; case NOT_EQUAL: return "NOT_EQUAL"; case GREATER: return "GREATER"; case GREATER_EQUAL: return "GREATER_EQUAL"; case LBRACE: return "LBRACE"; case LESS: return "LESS"; case LESS_EQUAL: return "LESS_EQUAL"; case LPAREN: return "LPAREN"; case MINUS: return "MINUS"; case PERCENT: return "PERCENT"; case PLUS: return "PLUS"; case RBRACE: return "RBRACE"; case RPAREN: return "RPAREN"; case SEMICOLON: return "SEMICOLON"; case SLASH: return "SLASH"; case TILDE: return "TILDE"; case VBAR: return "VBAR"; case VBAR2: return "VBAR2"; case FOR: return "FOR"; case WHILE: return "WHILE"; case DO: return "DO"; case IF: return "IF"; case ELSE: return "ELSE"; default: fprintf(stderr, "internal error in strTokenKind: tokenKind = %d", tokenKind); finalizeExit(1); return ""; } }