mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
ASTPrinter: Expose a utility to print keywords directly by token kinds. NFC (#7646)
This commit is contained in:
@@ -581,17 +581,24 @@ ASTPrinter &ASTPrinter::operator<<(DeclName name) {
|
||||
return *this;
|
||||
}
|
||||
|
||||
ASTPrinter &operator<<(ASTPrinter &printer, tok keyword) {
|
||||
StringRef name;
|
||||
llvm::raw_ostream &swift::
|
||||
operator<<(llvm::raw_ostream &OS, tok keyword) {
|
||||
switch (keyword) {
|
||||
|
||||
#define KEYWORD(KW) case tok::kw_##KW: name = #KW; break;
|
||||
#define POUND_KEYWORD(KW) case tok::pound_##KW: name = "#"#KW; break;
|
||||
#define KEYWORD(KW) case tok::kw_##KW: OS << #KW; break;
|
||||
#define POUND_KEYWORD(KW) case tok::pound_##KW: OS << "#"#KW; break;
|
||||
#define PUNCTUATOR(PUN, TEXT) case tok::PUN: OS << TEXT; break;
|
||||
#include "swift/Syntax/TokenKinds.def"
|
||||
default:
|
||||
llvm_unreachable("unexpected keyword kind");
|
||||
llvm_unreachable("unexpected keyword or punctuator kind");
|
||||
}
|
||||
printer.printKeyword(name);
|
||||
return OS;
|
||||
}
|
||||
|
||||
ASTPrinter &operator<<(ASTPrinter &printer, tok keyword) {
|
||||
SmallString<16> Buffer;
|
||||
llvm::raw_svector_ostream OS(Buffer);
|
||||
OS << keyword;
|
||||
printer.printKeyword(Buffer.str());
|
||||
return printer;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user