Skip to content

Commit 48b12a2

Browse files
authored
Merge pull request #263 from kimdv/kimdv/add-gyb-for-swift-syntax-builder-tokens
Add gyb for swift syntax builder keyword tokens
2 parents 3db1ab8 + e8ed33b commit 48b12a2

File tree

3 files changed

+313
-59
lines changed

3 files changed

+313
-59
lines changed

Sources/SwiftSyntaxBuilder/Tokens.swift renamed to Sources/SwiftSyntaxBuilder/Tokens.swift.gyb

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1+
%{
2+
from gyb_syntax_support import *
3+
from gyb_syntax_support.kinds import lowercase_first_word
4+
# -*- mode: Swift -*-
5+
# Ignore the following admonition it applies to the resulting .swift file only
6+
}%
7+
//// Automatically Generated From Tokens.swift.gyb.
8+
//// Do Not Edit Directly!
19
//===----------------------------------------------------------------------===//
210
//
311
// This source file is part of the Swift.org open source project
412
//
5-
// Copyright (c) 2014 - 2019 Apple Inc. and the Swift project authors
13+
// Copyright (c) 2014 - 2021 Apple Inc. and the Swift project authors
614
// Licensed under Apache License v2.0 with Runtime Library Exception
715
//
816
// See https://swift.org/LICENSE.txt for license information
@@ -16,17 +24,12 @@ import SwiftSyntax
1624
enum Tokens {
1725
// MARK: Keywords
1826

19-
/// `"let "`
20-
static let `let` = SyntaxFactory.makeLetKeyword().withTrailingTrivia(.spaces(1))
21-
22-
/// `"var "`
23-
static let `var` = SyntaxFactory.makeVarKeyword().withTrailingTrivia(.spaces(1))
24-
25-
/// `"import "`
26-
static let `import` = SyntaxFactory.makeImportKeyword().withTrailingTrivia(.spaces(1))
27-
28-
/// `"struct "`
29-
static let `struct` = SyntaxFactory.makeStructKeyword().withTrailingTrivia(.spaces(1))
27+
% for token in SYNTAX_TOKENS:
28+
% if token.is_keyword:
29+
/// The `${token.text}` keyword
30+
static let `${lowercase_first_word(token.name)}` = SyntaxFactory.make${token.name}Keyword().withTrailingTrivia(.spaces(1))
31+
% end
32+
% end
3033

3134
// MARK: Punctuations and Signs
3235

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
//// Automatically Generated From Tokens.swift.gyb.
2+
//// Do Not Edit Directly!
3+
//===----------------------------------------------------------------------===//
4+
//
5+
// This source file is part of the Swift.org open source project
6+
//
7+
// Copyright (c) 2014 - 2021 Apple Inc. and the Swift project authors
8+
// Licensed under Apache License v2.0 with Runtime Library Exception
9+
//
10+
// See https://swift.org/LICENSE.txt for license information
11+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
12+
//
13+
//===----------------------------------------------------------------------===//
14+
15+
import SwiftSyntax
16+
17+
/// Namespace for commonly used tokens with default trivia.
18+
enum Tokens {
19+
// MARK: Keywords
20+
21+
/// The `associatedtype` keyword
22+
static let `associatedtype` = SyntaxFactory.makeAssociatedtypeKeyword().withTrailingTrivia(.spaces(1))
23+
/// The `class` keyword
24+
static let `class` = SyntaxFactory.makeClassKeyword().withTrailingTrivia(.spaces(1))
25+
/// The `deinit` keyword
26+
static let `deinit` = SyntaxFactory.makeDeinitKeyword().withTrailingTrivia(.spaces(1))
27+
/// The `enum` keyword
28+
static let `enum` = SyntaxFactory.makeEnumKeyword().withTrailingTrivia(.spaces(1))
29+
/// The `extension` keyword
30+
static let `extension` = SyntaxFactory.makeExtensionKeyword().withTrailingTrivia(.spaces(1))
31+
/// The `func` keyword
32+
static let `func` = SyntaxFactory.makeFuncKeyword().withTrailingTrivia(.spaces(1))
33+
/// The `import` keyword
34+
static let `import` = SyntaxFactory.makeImportKeyword().withTrailingTrivia(.spaces(1))
35+
/// The `init` keyword
36+
static let `init` = SyntaxFactory.makeInitKeyword().withTrailingTrivia(.spaces(1))
37+
/// The `inout` keyword
38+
static let `inout` = SyntaxFactory.makeInoutKeyword().withTrailingTrivia(.spaces(1))
39+
/// The `let` keyword
40+
static let `let` = SyntaxFactory.makeLetKeyword().withTrailingTrivia(.spaces(1))
41+
/// The `operator` keyword
42+
static let `operator` = SyntaxFactory.makeOperatorKeyword().withTrailingTrivia(.spaces(1))
43+
/// The `precedencegroup` keyword
44+
static let `precedencegroup` = SyntaxFactory.makePrecedencegroupKeyword().withTrailingTrivia(.spaces(1))
45+
/// The `protocol` keyword
46+
static let `protocol` = SyntaxFactory.makeProtocolKeyword().withTrailingTrivia(.spaces(1))
47+
/// The `struct` keyword
48+
static let `struct` = SyntaxFactory.makeStructKeyword().withTrailingTrivia(.spaces(1))
49+
/// The `subscript` keyword
50+
static let `subscript` = SyntaxFactory.makeSubscriptKeyword().withTrailingTrivia(.spaces(1))
51+
/// The `typealias` keyword
52+
static let `typealias` = SyntaxFactory.makeTypealiasKeyword().withTrailingTrivia(.spaces(1))
53+
/// The `var` keyword
54+
static let `var` = SyntaxFactory.makeVarKeyword().withTrailingTrivia(.spaces(1))
55+
/// The `fileprivate` keyword
56+
static let `fileprivate` = SyntaxFactory.makeFileprivateKeyword().withTrailingTrivia(.spaces(1))
57+
/// The `internal` keyword
58+
static let `internal` = SyntaxFactory.makeInternalKeyword().withTrailingTrivia(.spaces(1))
59+
/// The `private` keyword
60+
static let `private` = SyntaxFactory.makePrivateKeyword().withTrailingTrivia(.spaces(1))
61+
/// The `public` keyword
62+
static let `public` = SyntaxFactory.makePublicKeyword().withTrailingTrivia(.spaces(1))
63+
/// The `static` keyword
64+
static let `static` = SyntaxFactory.makeStaticKeyword().withTrailingTrivia(.spaces(1))
65+
/// The `defer` keyword
66+
static let `defer` = SyntaxFactory.makeDeferKeyword().withTrailingTrivia(.spaces(1))
67+
/// The `if` keyword
68+
static let `if` = SyntaxFactory.makeIfKeyword().withTrailingTrivia(.spaces(1))
69+
/// The `guard` keyword
70+
static let `guard` = SyntaxFactory.makeGuardKeyword().withTrailingTrivia(.spaces(1))
71+
/// The `do` keyword
72+
static let `do` = SyntaxFactory.makeDoKeyword().withTrailingTrivia(.spaces(1))
73+
/// The `repeat` keyword
74+
static let `repeat` = SyntaxFactory.makeRepeatKeyword().withTrailingTrivia(.spaces(1))
75+
/// The `else` keyword
76+
static let `else` = SyntaxFactory.makeElseKeyword().withTrailingTrivia(.spaces(1))
77+
/// The `for` keyword
78+
static let `for` = SyntaxFactory.makeForKeyword().withTrailingTrivia(.spaces(1))
79+
/// The `in` keyword
80+
static let `in` = SyntaxFactory.makeInKeyword().withTrailingTrivia(.spaces(1))
81+
/// The `while` keyword
82+
static let `while` = SyntaxFactory.makeWhileKeyword().withTrailingTrivia(.spaces(1))
83+
/// The `return` keyword
84+
static let `return` = SyntaxFactory.makeReturnKeyword().withTrailingTrivia(.spaces(1))
85+
/// The `break` keyword
86+
static let `break` = SyntaxFactory.makeBreakKeyword().withTrailingTrivia(.spaces(1))
87+
/// The `continue` keyword
88+
static let `continue` = SyntaxFactory.makeContinueKeyword().withTrailingTrivia(.spaces(1))
89+
/// The `fallthrough` keyword
90+
static let `fallthrough` = SyntaxFactory.makeFallthroughKeyword().withTrailingTrivia(.spaces(1))
91+
/// The `switch` keyword
92+
static let `switch` = SyntaxFactory.makeSwitchKeyword().withTrailingTrivia(.spaces(1))
93+
/// The `case` keyword
94+
static let `case` = SyntaxFactory.makeCaseKeyword().withTrailingTrivia(.spaces(1))
95+
/// The `default` keyword
96+
static let `default` = SyntaxFactory.makeDefaultKeyword().withTrailingTrivia(.spaces(1))
97+
/// The `where` keyword
98+
static let `where` = SyntaxFactory.makeWhereKeyword().withTrailingTrivia(.spaces(1))
99+
/// The `catch` keyword
100+
static let `catch` = SyntaxFactory.makeCatchKeyword().withTrailingTrivia(.spaces(1))
101+
/// The `throw` keyword
102+
static let `throw` = SyntaxFactory.makeThrowKeyword().withTrailingTrivia(.spaces(1))
103+
/// The `as` keyword
104+
static let `as` = SyntaxFactory.makeAsKeyword().withTrailingTrivia(.spaces(1))
105+
/// The `Any` keyword
106+
static let `any` = SyntaxFactory.makeAnyKeyword().withTrailingTrivia(.spaces(1))
107+
/// The `false` keyword
108+
static let `false` = SyntaxFactory.makeFalseKeyword().withTrailingTrivia(.spaces(1))
109+
/// The `is` keyword
110+
static let `is` = SyntaxFactory.makeIsKeyword().withTrailingTrivia(.spaces(1))
111+
/// The `nil` keyword
112+
static let `nil` = SyntaxFactory.makeNilKeyword().withTrailingTrivia(.spaces(1))
113+
/// The `rethrows` keyword
114+
static let `rethrows` = SyntaxFactory.makeRethrowsKeyword().withTrailingTrivia(.spaces(1))
115+
/// The `super` keyword
116+
static let `super` = SyntaxFactory.makeSuperKeyword().withTrailingTrivia(.spaces(1))
117+
/// The `self` keyword
118+
static let `self` = SyntaxFactory.makeSelfKeyword().withTrailingTrivia(.spaces(1))
119+
/// The `Self` keyword
120+
static let `capitalSelf` = SyntaxFactory.makeCapitalSelfKeyword().withTrailingTrivia(.spaces(1))
121+
/// The `true` keyword
122+
static let `true` = SyntaxFactory.makeTrueKeyword().withTrailingTrivia(.spaces(1))
123+
/// The `try` keyword
124+
static let `try` = SyntaxFactory.makeTryKeyword().withTrailingTrivia(.spaces(1))
125+
/// The `throws` keyword
126+
static let `throws` = SyntaxFactory.makeThrowsKeyword().withTrailingTrivia(.spaces(1))
127+
/// The `__FILE__` keyword
128+
static let `__file__` = SyntaxFactory.make__FILE__Keyword().withTrailingTrivia(.spaces(1))
129+
/// The `__LINE__` keyword
130+
static let `__line__` = SyntaxFactory.make__LINE__Keyword().withTrailingTrivia(.spaces(1))
131+
/// The `__COLUMN__` keyword
132+
static let `__column__` = SyntaxFactory.make__COLUMN__Keyword().withTrailingTrivia(.spaces(1))
133+
/// The `__FUNCTION__` keyword
134+
static let `__function__` = SyntaxFactory.make__FUNCTION__Keyword().withTrailingTrivia(.spaces(1))
135+
/// The `__DSO_HANDLE__` keyword
136+
static let `__dso_handle__` = SyntaxFactory.make__DSO_HANDLE__Keyword().withTrailingTrivia(.spaces(1))
137+
/// The `_` keyword
138+
static let `wildcard` = SyntaxFactory.makeWildcardKeyword().withTrailingTrivia(.spaces(1))
139+
/// The `#keyPath` keyword
140+
static let `poundKeyPath` = SyntaxFactory.makePoundKeyPathKeyword().withTrailingTrivia(.spaces(1))
141+
/// The `#line` keyword
142+
static let `poundLine` = SyntaxFactory.makePoundLineKeyword().withTrailingTrivia(.spaces(1))
143+
/// The `#selector` keyword
144+
static let `poundSelector` = SyntaxFactory.makePoundSelectorKeyword().withTrailingTrivia(.spaces(1))
145+
/// The `#file` keyword
146+
static let `poundFile` = SyntaxFactory.makePoundFileKeyword().withTrailingTrivia(.spaces(1))
147+
/// The `#fileID` keyword
148+
static let `poundFileID` = SyntaxFactory.makePoundFileIDKeyword().withTrailingTrivia(.spaces(1))
149+
/// The `#filePath` keyword
150+
static let `poundFilePath` = SyntaxFactory.makePoundFilePathKeyword().withTrailingTrivia(.spaces(1))
151+
/// The `#column` keyword
152+
static let `poundColumn` = SyntaxFactory.makePoundColumnKeyword().withTrailingTrivia(.spaces(1))
153+
/// The `#function` keyword
154+
static let `poundFunction` = SyntaxFactory.makePoundFunctionKeyword().withTrailingTrivia(.spaces(1))
155+
/// The `#dsohandle` keyword
156+
static let `poundDsohandle` = SyntaxFactory.makePoundDsohandleKeyword().withTrailingTrivia(.spaces(1))
157+
/// The `#assert` keyword
158+
static let `poundAssert` = SyntaxFactory.makePoundAssertKeyword().withTrailingTrivia(.spaces(1))
159+
/// The `#sourceLocation` keyword
160+
static let `poundSourceLocation` = SyntaxFactory.makePoundSourceLocationKeyword().withTrailingTrivia(.spaces(1))
161+
/// The `#warning` keyword
162+
static let `poundWarning` = SyntaxFactory.makePoundWarningKeyword().withTrailingTrivia(.spaces(1))
163+
/// The `#error` keyword
164+
static let `poundError` = SyntaxFactory.makePoundErrorKeyword().withTrailingTrivia(.spaces(1))
165+
/// The `#if` keyword
166+
static let `poundIf` = SyntaxFactory.makePoundIfKeyword().withTrailingTrivia(.spaces(1))
167+
/// The `#else` keyword
168+
static let `poundElse` = SyntaxFactory.makePoundElseKeyword().withTrailingTrivia(.spaces(1))
169+
/// The `#elseif` keyword
170+
static let `poundElseif` = SyntaxFactory.makePoundElseifKeyword().withTrailingTrivia(.spaces(1))
171+
/// The `#endif` keyword
172+
static let `poundEndif` = SyntaxFactory.makePoundEndifKeyword().withTrailingTrivia(.spaces(1))
173+
/// The `#available` keyword
174+
static let `poundAvailable` = SyntaxFactory.makePoundAvailableKeyword().withTrailingTrivia(.spaces(1))
175+
/// The `#fileLiteral` keyword
176+
static let `poundFileLiteral` = SyntaxFactory.makePoundFileLiteralKeyword().withTrailingTrivia(.spaces(1))
177+
/// The `#imageLiteral` keyword
178+
static let `poundImageLiteral` = SyntaxFactory.makePoundImageLiteralKeyword().withTrailingTrivia(.spaces(1))
179+
/// The `#colorLiteral` keyword
180+
static let `poundColorLiteral` = SyntaxFactory.makePoundColorLiteralKeyword().withTrailingTrivia(.spaces(1))
181+
182+
// MARK: Punctuations and Signs
183+
184+
/// `":"`
185+
static let colon = SyntaxFactory.makeColonToken().withTrailingTrivia(.spaces(1))
186+
187+
/// `" = "`
188+
static let equal = SyntaxFactory.makeEqualToken().withLeadingTrivia(.spaces(1))
189+
.withTrailingTrivia(.spaces(1))
190+
191+
/// `"{"`
192+
static let leftBrace = SyntaxFactory.makeLeftBraceToken()
193+
194+
/// `"}"`
195+
static let rightBrace = SyntaxFactory.makeRightBraceToken()
196+
}

0 commit comments

Comments
 (0)