Skip to content

Commit 91c262b

Browse files
committed
Move TokenKinds.def.gyb to AST
1 parent 530d937 commit 91c262b

19 files changed

+46
-64
lines changed

include/swift/AST/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ else()
55
endif()
66

77
set(generated_include_sources
8-
Attr.def.gyb)
8+
Attr.def.gyb
9+
TokenKinds.def.gyb)
910

1011
add_gyb_target(swift-ast-generated-headers
1112
"${generated_include_sources}")

include/swift/AST/Expr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1108,7 +1108,7 @@ class ObjectLiteralExpr final : public LiteralExpr {
11081108
/// The kind of object literal.
11091109
enum LiteralKind : unsigned {
11101110
#define POUND_OBJECT_LITERAL(Name, Desc, Proto) Name,
1111-
#include "swift/Syntax/TokenKinds.def"
1111+
#include "swift/AST/TokenKinds.def"
11121112
};
11131113

11141114
private:

include/swift/Frontend/ModuleInterfaceLoader.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@
112112
#include "swift/Frontend/ModuleInterfaceSupport.h"
113113
#include "swift/Serialization/SerializedModuleLoader.h"
114114
#include "llvm/Support/StringSaver.h"
115+
#include "llvm/Support/YAMLTraits.h"
115116

116117
namespace clang {
117118
class CompilerInstance;

include/swift/IDE/CodeCompletionResult.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ enum class CodeCompletionKeywordKind : uint8_t {
184184
None,
185185
#define KEYWORD(X) kw_##X,
186186
#define POUND_KEYWORD(X) pound_##X,
187-
#include "swift/Syntax/TokenKinds.def"
187+
#include "swift/AST/TokenKinds.def"
188188
};
189189

190190
enum class CompletionKind : uint8_t {

include/swift/IDE/CompletionOverrideLookup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include "swift/AST/NameLookup.h"
1717
#include "swift/IDE/CodeCompletionResultSink.h"
1818
#include "swift/Sema/IDETypeChecking.h"
19-
#include "swift/Syntax/TokenKinds.h"
19+
#include "swift/Parse/Token.h"
2020

2121
namespace swift {
2222
namespace ide {

include/swift/Parse/Token.h

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,23 @@
1919

2020
#include "swift/Basic/SourceLoc.h"
2121
#include "swift/Basic/LLVM.h"
22-
#include "swift/Syntax/TokenKinds.h"
22+
#include "swift/Parse/Token.h"
2323
#include "swift/Config.h"
2424
#include "llvm/ADT/StringRef.h"
2525
#include "llvm/ADT/StringSwitch.h"
2626

2727
namespace swift {
2828

29+
enum class tok : uint8_t {
30+
#define TOKEN(X) X,
31+
#include "swift/AST/TokenKinds.def"
32+
33+
NUM_TOKENS
34+
};
35+
36+
/// If a token kind has determined text, return the text; otherwise assert.
37+
StringRef getTokenText(tok kind);
38+
2939
/// Token - This structure provides full information about a lexed token.
3040
/// It is not intended to be space efficient, it is intended to return as much
3141
/// information as possible about each returned token. This is expected to be
@@ -200,7 +210,7 @@ class Token {
200210
bool isKeyword() const {
201211
switch (Kind) {
202212
#define KEYWORD(X) case tok::kw_##X: return true;
203-
#include "swift/Syntax/TokenKinds.def"
213+
#include "swift/AST/TokenKinds.def"
204214
default: return false;
205215
}
206216
}
@@ -220,7 +230,7 @@ class Token {
220230
bool isPunctuation() const {
221231
switch (Kind) {
222232
#define PUNCTUATOR(Name, Str) case tok::Name: return true;
223-
#include "swift/Syntax/TokenKinds.def"
233+
#include "swift/AST/TokenKinds.def"
224234
default: return false;
225235
}
226236
}

include/swift/Syntax/TokenKinds.h

Lines changed: 0 additions & 42 deletions
This file was deleted.

lib/AST/ASTNode.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "swift/AST/Pattern.h"
2222
#include "swift/AST/TypeRepr.h"
2323
#include "swift/Basic/SourceLoc.h"
24+
#include "swift/Parse/Token.h"
2425

2526
using namespace swift;
2627

@@ -133,6 +134,16 @@ void ASTNode::dump() const {
133134
dump(llvm::errs());
134135
}
135136

137+
StringRef swift::getTokenText(tok kind) {
138+
switch(kind) {
139+
#define KEYWORD(KW) case tok::kw_##KW: return #KW;
140+
#define POUND_KEYWORD(KW) case tok::pound_##KW: return "#"#KW;
141+
#define PUNCTUATOR(PUN, TEXT) case tok::PUN: return TEXT;
142+
#include "swift/AST/TokenKinds.def"
143+
default: return StringRef();
144+
}
145+
}
146+
136147
#define FUNC(T) \
137148
bool ASTNode::is##T(T##Kind Kind) const { \
138149
if (!is<T*>()) \

lib/AST/ASTPrinter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ operator<<(llvm::raw_ostream &OS, tok keyword) {
438438
#define KEYWORD(KW) case tok::kw_##KW: OS << #KW; break;
439439
#define POUND_KEYWORD(KW) case tok::pound_##KW: OS << "#"#KW; break;
440440
#define PUNCTUATOR(PUN, TEXT) case tok::PUN: OS << TEXT; break;
441-
#include "swift/Syntax/TokenKinds.def"
441+
#include "swift/AST/TokenKinds.def"
442442
default:
443443
llvm_unreachable("unexpected keyword or punctuator kind");
444444
}
@@ -450,7 +450,7 @@ uint8_t swift::getKeywordLen(tok keyword) {
450450
#define KEYWORD(KW) case tok::kw_##KW: return StringRef(#KW).size();
451451
#define POUND_KEYWORD(KW) case tok::pound_##KW: return StringRef("#"#KW).size();
452452
#define PUNCTUATOR(PUN, TEXT) case tok::PUN: return StringRef(TEXT).size();
453-
#include "swift/Syntax/TokenKinds.def"
453+
#include "swift/AST/TokenKinds.def"
454454
default:
455455
llvm_unreachable("unexpected keyword or punctuator kind");
456456
}
@@ -472,7 +472,7 @@ static bool escapeKeywordInContext(StringRef keyword, PrintNameContext context){
472472
bool isKeyword = llvm::StringSwitch<bool>(keyword)
473473
#define KEYWORD(KW) \
474474
.Case(#KW, true)
475-
#include "swift/Syntax/TokenKinds.def"
475+
#include "swift/AST/TokenKinds.def"
476476
.Default(false);
477477

478478
switch (context) {

0 commit comments

Comments
 (0)