blob: c4ac443f4878d62367cf7fdd9072b7f5f7b559f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
//===--- 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 "flang/Basic/TokenKinds.h"
#include <cassert>
namespace flang {
static char const * const TokNames[] = {
#define TOK(X) #X,
#define KEYWORD(X,Y) #X,
#define FORMAT_SPEC(X,Y) #X,
#include "flang/Basic/TokenKinds.def"
0
};
const char *tok::getTokenName(enum TokenKind Kind) {
assert(Kind < tok::NUM_TOKENS && "Invalid token kind!");
return TokNames[Kind];
}
const char *tok::getTokenSimpleSpelling(enum TokenKind Kind) {
switch (Kind) {
case tok::equal: return "=";
case tok::equalequal: return "==";
case tok::plus: return "+";
case tok::minus: return "-";
case tok::star: return "*";
case tok::starstar: return "**";
case tok::slash: return "/";
case tok::slashequal: return "/=";
case tok::backslash: return "\\";
case tok::l_paren: return "(";
case tok::r_paren: return ")";
case tok::l_square: return "[";
case tok::r_square: return "]";
case tok::l_brace: return "{";
case tok::r_brace: return "}";
case tok::comma: return ",";
case tok::period: return ".";
case tok::colon: return ":";
case tok::coloncolon: return "::";
case tok::semicolon: return ";";
case tok::exclaim: return "!";
case tok::percent: return "%";
case tok::ampersand: return "&";
case tok::tilde: return "~";
case tok::less: return "<";
case tok::lessequal: return "<=";
case tok::greater: return ">";
case tok::greaterequal: return ">=";
case tok::question: return "?";
case tok::backtick: return "`";
case tok::caret: return "^";
case tok::pipe: return "|";
case tok::dollar: return "$";
case tok::hash: return "#";
case tok::at: return "@";
default: break;
}
return 0;
}
} //namespace flang
|