1
+ % {
2
+ # -*- mode: Swift -*-
3
+ from gyb_syntax_support import *
4
+ # Ignore the following admonition it applies to the resulting . def file only
5
+ } %
6
+ //// Automatically Generated From TokenKinds.def.gyb.
7
+ //// Do Not Edit Directly!
1
8
//===--- TokenKinds.def - Swift Tokenizer Metaprogramming -----------------===//
2
9
//
3
10
// This source file is part of the Swift.org open source project
137
144
#endif
138
145
139
146
// Keywords that start decls.
140
- DECL_KEYWORD(associatedtype)
141
- DECL_KEYWORD(class)
142
- DECL_KEYWORD(deinit)
143
- DECL_KEYWORD(enum)
144
- DECL_KEYWORD(extension)
145
- DECL_KEYWORD(func)
146
- DECL_KEYWORD(import)
147
- DECL_KEYWORD(init)
148
- DECL_KEYWORD(inout)
149
- DECL_KEYWORD(let)
150
- DECL_KEYWORD(operator)
151
- DECL_KEYWORD(precedencegroup)
152
- DECL_KEYWORD(protocol)
153
- DECL_KEYWORD(struct)
154
- DECL_KEYWORD(subscript)
155
- DECL_KEYWORD(typealias)
156
- DECL_KEYWORD(var)
157
-
158
- DECL_KEYWORD(fileprivate)
159
- DECL_KEYWORD(internal)
160
- DECL_KEYWORD(private)
161
- DECL_KEYWORD(public)
162
- DECL_KEYWORD(static)
147
+ % for token in SYNTAX_TOKENS:
148
+ % if isinstance ( token, Token . Punctuator) :
149
+ ${ token. macro_name ( ) } ( ${ token. unprefixed_kind} , " ${token.text} " )
150
+ % elif isinstance ( token, Token . PoundObjectLiteral) :
151
+ ${ token. macro_name ( ) } ( ${ token. unprefixed_kind} , " ${ token. description} " , ${ token. protocol } )
152
+ % else :
153
+ ${ token. macro_name ( ) } ( ${ token. unprefixed_kind} )
154
+ % end
155
+ % end
156
+
157
+ // The following tokens are irrelevant for swiftSyntax and thus only declared
158
+ // in this .def file
163
159
164
160
SIL_KEYWORD ( undef)
165
161
SIL_KEYWORD ( sil)
@@ -172,137 +168,14 @@ SIL_KEYWORD(sil_default_witness_table)
172
168
SIL_KEYWORD ( sil_coverage_map)
173
169
SIL_KEYWORD ( sil_scope)
174
170
175
- // Statement keywords.
176
- STMT_KEYWORD(defer)
177
- STMT_KEYWORD(if)
178
- STMT_KEYWORD(guard)
179
- STMT_KEYWORD(do)
180
- STMT_KEYWORD(repeat)
181
- STMT_KEYWORD(else)
182
- STMT_KEYWORD(for)
183
- STMT_KEYWORD(in)
184
- STMT_KEYWORD(while)
185
- STMT_KEYWORD(return)
186
- STMT_KEYWORD(break)
187
- STMT_KEYWORD(continue)
188
- STMT_KEYWORD(fallthrough)
189
- STMT_KEYWORD(switch)
190
- STMT_KEYWORD(case)
191
- STMT_KEYWORD(default)
192
- STMT_KEYWORD(where)
193
- STMT_KEYWORD(catch)
194
- STMT_KEYWORD(throw)
195
-
196
- // Expression keywords.
197
- EXPR_KEYWORD(as)
198
- EXPR_KEYWORD(Any)
199
- EXPR_KEYWORD(false)
200
- EXPR_KEYWORD(is)
201
- EXPR_KEYWORD(nil)
202
- EXPR_KEYWORD(rethrows)
203
- EXPR_KEYWORD(super)
204
- EXPR_KEYWORD(self)
205
- EXPR_KEYWORD(Self)
206
- EXPR_KEYWORD(true)
207
- EXPR_KEYWORD(try)
208
- EXPR_KEYWORD(throws)
209
- KEYWORD(__FILE__)
210
- KEYWORD(__LINE__)
211
- KEYWORD(__COLUMN__)
212
- KEYWORD(__FUNCTION__)
213
- KEYWORD(__DSO_HANDLE__)
214
-
215
- // Pattern keywords.
216
- PAT_KEYWORD(_)
217
-
218
- // Punctuators.
219
- PUNCTUATOR(l_paren, "(")
220
- PUNCTUATOR(r_paren, ")")
221
- PUNCTUATOR(l_brace, "{")
222
- PUNCTUATOR(r_brace, "}")
223
- PUNCTUATOR(l_square, "[")
224
- PUNCTUATOR(r_square, "]")
225
- PUNCTUATOR(l_angle, "<")
226
- PUNCTUATOR(r_angle, ">")
227
-
228
- PUNCTUATOR(period, ".")
229
- PUNCTUATOR(period_prefix, ".")
230
- PUNCTUATOR(comma, ",")
231
- PUNCTUATOR(colon, ":")
232
- PUNCTUATOR(semi, ";")
233
- PUNCTUATOR(equal, "=")
234
- PUNCTUATOR(at_sign, "@")
235
- PUNCTUATOR(pound, "#")
236
-
237
- PUNCTUATOR(amp_prefix, "&")
238
- PUNCTUATOR(arrow, "->")
239
-
240
- PUNCTUATOR(backtick, "`")
241
-
242
- PUNCTUATOR(backslash, "\\")
243
-
244
- PUNCTUATOR(exclaim_postfix, "!") // if left-bound
245
-
246
- PUNCTUATOR(question_postfix, "?") // if left-bound
247
- PUNCTUATOR(question_infix,"?") // if not left-bound
248
-
249
171
PUNCTUATOR ( sil_dollar, " $ " ) // Only in SIL mode.
250
172
PUNCTUATOR ( sil_exclamation, " ! " ) // Only in SIL mode.
251
173
252
- // string_literal might be exploded to {quote segment quote} in the Parser.
253
- PUNCTUATOR(string_quote, "\"")
254
- PUNCTUATOR(multiline_string_quote, "\"\"\"")
255
-
256
- // Keywords prefixed with a '#'. "keyPath" becomes "tok::pound_keyPath".
257
- POUND_KEYWORD(keyPath)
258
- POUND_KEYWORD(line)
259
- POUND_KEYWORD(selector)
260
- POUND_KEYWORD(file)
261
- POUND_KEYWORD(column)
262
- POUND_KEYWORD(function)
263
- POUND_KEYWORD(dsohandle)
264
-
265
- // Directive '#' keywords.
266
- POUND_DIRECTIVE_KEYWORD(sourceLocation)
267
- POUND_DIRECTIVE_KEYWORD(warning)
268
- POUND_DIRECTIVE_KEYWORD(error)
269
-
270
- // Conditional compilation '#' keywords.
271
- POUND_COND_DIRECTIVE_KEYWORD(if)
272
- POUND_COND_DIRECTIVE_KEYWORD(else)
273
- POUND_COND_DIRECTIVE_KEYWORD(elseif)
274
- POUND_COND_DIRECTIVE_KEYWORD(endif)
275
-
276
- // Keywords prefixed with a '#' that are build configurations.
277
- POUND_CONFIG(available)
278
-
279
- // Object literals and their corresponding protocols.
280
- POUND_OBJECT_LITERAL(fileLiteral, "file reference", ExpressibleByFileReferenceLiteral)
281
- POUND_OBJECT_LITERAL(imageLiteral, "image", ExpressibleByImageLiteral)
282
- POUND_OBJECT_LITERAL(colorLiteral, "color", ExpressibleByColorLiteral)
283
-
284
- // Single-token literals
285
- LITERAL(integer_literal)
286
- LITERAL(floating_literal)
287
- LITERAL(string_literal)
288
-
289
- // Miscellaneous tokens.
290
- MISC(unknown)
291
174
MISC ( eof)
292
175
MISC ( code_complete)
293
- MISC(identifier)
294
- MISC(oper_binary_unspaced) // "x+y"
295
- MISC(oper_binary_spaced) // "x + y"
296
- MISC(oper_postfix)
297
- MISC(oper_prefix)
298
- MISC(dollarident)
299
176
MISC ( sil_local_name) // %42 in SIL mode.
300
177
MISC ( comment)
301
178
302
- MISC(contextual_keyword)
303
- MISC(string_segment)
304
- MISC(string_interpolation_anchor)
305
- MISC(kw_yield) // the contextual "yield" keyword
306
179
307
180
#undef TOKEN
308
181
#undef KEYWORD
0 commit comments