155682Smarkm//===--- TokenKinds.cpp - Token Kinds Support -----------------------------===// 2233294Sstas// 3233294Sstas// The LLVM Compiler Infrastructure 4233294Sstas// 555682Smarkm// This file is distributed under the University of Illinois Open Source 6233294Sstas// License. See LICENSE.TXT for details. 7233294Sstas// 8233294Sstas//===----------------------------------------------------------------------===// 955682Smarkm// 10233294Sstas// This file implements the TokenKind enum and support functions. 11233294Sstas// 1255682Smarkm//===----------------------------------------------------------------------===// 13233294Sstas 14233294Sstas#include "clang/Basic/TokenKinds.h" 15233294Sstas#include <cassert> 1655682Smarkmusing namespace clang; 17233294Sstas 18233294Sstasstatic const char * const TokNames[] = { 19233294Sstas#define TOK(X) #X, 2055682Smarkm#define KEYWORD(X,Y) #X, 21233294Sstas#include "clang/Basic/TokenKinds.def" 22233294Sstas 0 23233294Sstas}; 24233294Sstas 25233294Sstasconst char *tok::getTokenName(enum TokenKind Kind) { 26233294Sstas assert(Kind < tok::NUM_TOKENS); 27233294Sstas return TokNames[Kind]; 28233294Sstas} 29233294Sstas 30233294Sstasconst char *tok::getTokenSimpleSpelling(enum TokenKind Kind) { 31233294Sstas switch (Kind) { 3255682Smarkm#define PUNCTUATOR(X,Y) case X: return Y; 3355682Smarkm#include "clang/Basic/TokenKinds.def" 3455682Smarkm default: break; 3555682Smarkm } 36233294Sstas 3755682Smarkm return 0; 3855682Smarkm} 39233294Sstas