40 lines
1020 B
C++
40 lines
1020 B
C++
|
//===--- TokenKinds.cpp - Token Kinds Support -----------------------------===//
|
||
|
//
|
||
|
// The LLVM Compiler Infrastructure
|
||
|
//
|
||
|
// This file is distributed under the University of Illinois Open Source
|
||
|
// License. See LICENSE.TXT for details.
|
||
|
//
|
||
|
//===----------------------------------------------------------------------===//
|
||
|
//
|
||
|
// This file implements the TokenKind enum and support functions.
|
||
|
//
|
||
|
//===----------------------------------------------------------------------===//
|
||
|
|
||
|
#include "clang/Basic/TokenKinds.h"
|
||
|
|
||
|
#include <cassert>
|
||
|
using namespace clang;
|
||
|
|
||
|
static const char * const TokNames[] = {
|
||
|
#define TOK(X) #X,
|
||
|
#define KEYWORD(X,Y) #X,
|
||
|
#include "clang/Basic/TokenKinds.def"
|
||
|
0
|
||
|
};
|
||
|
|
||
|
const char *tok::getTokenName(enum TokenKind Kind) {
|
||
|
assert(Kind < tok::NUM_TOKENS);
|
||
|
return TokNames[Kind];
|
||
|
}
|
||
|
|
||
|
const char *tok::getTokenSimpleSpelling(enum TokenKind Kind) {
|
||
|
switch (Kind) {
|
||
|
#define PUNCTUATOR(X,Y) case X: return Y;
|
||
|
#include "clang/Basic/TokenKinds.def"
|
||
|
default: break;
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
}
|