//===--- 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 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) { 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 "@"; default: break; } return 0; }