1//===--- TokenKinds.cpp - Token Kinds Support -----------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file implements the TokenKind enum and support functions. 11// 12//===----------------------------------------------------------------------===// 13 14#include "clang/Basic/TokenKinds.h" 15#include <cassert> 16using namespace clang; 17 18static const char * const TokNames[] = { 19#define TOK(X) #X, 20#define KEYWORD(X,Y) #X, 21#include "clang/Basic/TokenKinds.def" 22 0 23}; 24 25const char *tok::getTokenName(enum TokenKind Kind) { 26 assert(Kind < tok::NUM_TOKENS); 27 return TokNames[Kind]; 28} 29 30const char *tok::getTokenSimpleSpelling(enum TokenKind Kind) { 31 switch (Kind) { 32#define PUNCTUATOR(X,Y) case X: return Y; 33#include "clang/Basic/TokenKinds.def" 34 default: break; 35 } 36 37 return 0; 38} 39