diff --git a/lib/Basic/TokenKinds.cpp b/lib/Basic/TokenKinds.cpp
index 4afeaf0..8cdc1e3 100644
--- a/lib/Basic/TokenKinds.cpp
+++ b/lib/Basic/TokenKinds.cpp
@@ -30,59 +30,8 @@
 
 const char *tok::getTokenSimpleSpelling(enum TokenKind Kind) {
   switch (Kind) {
-  case tok::l_square:            return "[";
-  case tok::r_square:            return "]";
-  case tok::l_paren:             return "(";
-  case tok::r_paren:             return ")";
-  case tok::l_brace:             return "{";
-  case tok::r_brace:             return "}";
-  case tok::period:              return ".";
-  case tok::ellipsis:            return "...";
-  case tok::amp:                 return "&";
-  case tok::ampamp:              return "&&";
-  case tok::ampequal:            return "&=";
-  case tok::star:                return "*";
-  case tok::starequal:           return "*=";
-  case tok::plus:                return "+";
-  case tok::plusplus:            return "++";
-  case tok::plusequal:           return "+=";
-  case tok::minus:               return "-";
-  case tok::arrow:               return "->";
-  case tok::minusminus:          return "--";
-  case tok::minusequal:          return "-=";
-  case tok::tilde:               return "~";
-  case tok::exclaim:             return "!";
-  case tok::exclaimequal:        return "!=";
-  case tok::slash:               return "/";
-  case tok::slashequal:          return "/=";
-  case tok::percent:             return "%";
-  case tok::percentequal:        return "%=";
-  case tok::less:                return "<";
-  case tok::lessless:            return "<<";
-  case tok::lessequal:           return "<=";
-  case tok::lesslessequal:       return "<<=";
-  case tok::greater:             return ">";
-  case tok::greatergreater:      return ">>";
-  case tok::greaterequal:        return ">=";
-  case tok::greatergreaterequal: return ">>=";
-  case tok::caret:               return "^";
-  case tok::caretequal:          return "^=";
-  case tok::pipe:                return "|";
-  case tok::pipepipe:            return "||";
-  case tok::pipeequal:           return "|=";
-  case tok::question:            return "?";
-  case tok::colon:               return ":";
-  case tok::semi:                return ";";
-  case tok::equal:               return "=";
-  case tok::equalequal:          return "==";
-  case tok::comma:               return ",";
-  case tok::hash:                return "#";
-  case tok::hashhash:            return "##";
-  case tok::hashat:              return "#@";
-  case tok::periodstar:          return ".*";
-  case tok::arrowstar:           return "->*";
-  case tok::coloncolon:          return "::";
-  case tok::at:                  return "@";
+#define PUNCTUATOR(X,Y) case X: return Y;
+#include "clang/Basic/TokenKinds.def"
   default: break;
   }
 
