-
Notifications
You must be signed in to change notification settings - Fork 582
/
Copy pathkind.go
423 lines (420 loc) · 9.85 KB
/
kind.go
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
package ast
//go:generate go tool golang.org/x/tools/cmd/stringer -type=Kind -output=kind_stringer_generated.go
type Kind int16
const (
KindUnknown Kind = iota
KindEndOfFile
KindSingleLineCommentTrivia
KindMultiLineCommentTrivia
KindNewLineTrivia
KindWhitespaceTrivia
KindConflictMarkerTrivia
KindNonTextFileMarkerTrivia
KindNumericLiteral
KindBigIntLiteral
KindStringLiteral
KindJsxText
KindJsxTextAllWhiteSpaces
KindRegularExpressionLiteral
KindNoSubstitutionTemplateLiteral
// Pseudo-literals
KindTemplateHead
KindTemplateMiddle
KindTemplateTail
// Punctuation
KindOpenBraceToken
KindCloseBraceToken
KindOpenParenToken
KindCloseParenToken
KindOpenBracketToken
KindCloseBracketToken
KindDotToken
KindDotDotDotToken
KindSemicolonToken
KindCommaToken
KindQuestionDotToken
KindLessThanToken
KindLessThanSlashToken
KindGreaterThanToken
KindLessThanEqualsToken
KindGreaterThanEqualsToken
KindEqualsEqualsToken
KindExclamationEqualsToken
KindEqualsEqualsEqualsToken
KindExclamationEqualsEqualsToken
KindEqualsGreaterThanToken
KindPlusToken
KindMinusToken
KindAsteriskToken
KindAsteriskAsteriskToken
KindSlashToken
KindPercentToken
KindPlusPlusToken
KindMinusMinusToken
KindLessThanLessThanToken
KindGreaterThanGreaterThanToken
KindGreaterThanGreaterThanGreaterThanToken
KindAmpersandToken
KindBarToken
KindCaretToken
KindExclamationToken
KindTildeToken
KindAmpersandAmpersandToken
KindBarBarToken
KindQuestionToken
KindColonToken
KindAtToken
KindQuestionQuestionToken
/** Only the JSDoc scanner produces BacktickToken. The normal scanner produces NoSubstitutionTemplateLiteral and related kinds. */
KindBacktickToken
/** Only the JSDoc scanner produces HashToken. The normal scanner produces PrivateIdentifier. */
KindHashToken
// Assignments
KindEqualsToken
KindPlusEqualsToken
KindMinusEqualsToken
KindAsteriskEqualsToken
KindAsteriskAsteriskEqualsToken
KindSlashEqualsToken
KindPercentEqualsToken
KindLessThanLessThanEqualsToken
KindGreaterThanGreaterThanEqualsToken
KindGreaterThanGreaterThanGreaterThanEqualsToken
KindAmpersandEqualsToken
KindBarEqualsToken
KindBarBarEqualsToken
KindAmpersandAmpersandEqualsToken
KindQuestionQuestionEqualsToken
KindCaretEqualsToken
// Identifiers and PrivateIdentifier
KindIdentifier
KindPrivateIdentifier
KindJSDocCommentTextToken
// Reserved words
KindBreakKeyword
KindCaseKeyword
KindCatchKeyword
KindClassKeyword
KindConstKeyword
KindContinueKeyword
KindDebuggerKeyword
KindDefaultKeyword
KindDeleteKeyword
KindDoKeyword
KindElseKeyword
KindEnumKeyword
KindExportKeyword
KindExtendsKeyword
KindFalseKeyword
KindFinallyKeyword
KindForKeyword
KindFunctionKeyword
KindIfKeyword
KindImportKeyword
KindInKeyword
KindInstanceOfKeyword
KindNewKeyword
KindNullKeyword
KindReturnKeyword
KindSuperKeyword
KindSwitchKeyword
KindThisKeyword
KindThrowKeyword
KindTrueKeyword
KindTryKeyword
KindTypeOfKeyword
KindVarKeyword
KindVoidKeyword
KindWhileKeyword
KindWithKeyword
// Strict mode reserved words
KindImplementsKeyword
KindInterfaceKeyword
KindLetKeyword
KindPackageKeyword
KindPrivateKeyword
KindProtectedKeyword
KindPublicKeyword
KindStaticKeyword
KindYieldKeyword
// Contextual keywords
KindAbstractKeyword
KindAccessorKeyword
KindAsKeyword
KindAssertsKeyword
KindAssertKeyword
KindAnyKeyword
KindAsyncKeyword
KindAwaitKeyword
KindBooleanKeyword
KindConstructorKeyword
KindDeclareKeyword
KindGetKeyword
KindImmediateKeyword
KindInferKeyword
KindIntrinsicKeyword
KindIsKeyword
KindKeyOfKeyword
KindModuleKeyword
KindNamespaceKeyword
KindNeverKeyword
KindOutKeyword
KindReadonlyKeyword
KindRequireKeyword
KindNumberKeyword
KindObjectKeyword
KindSatisfiesKeyword
KindSetKeyword
KindStringKeyword
KindSymbolKeyword
KindTypeKeyword
KindUndefinedKeyword
KindUniqueKeyword
KindUnknownKeyword
KindUsingKeyword
KindFromKeyword
KindGlobalKeyword
KindBigIntKeyword
KindOverrideKeyword
KindOfKeyword // LastKeyword and LastToken and LastContextualKeyword
// Parse tree nodes
// Names
KindQualifiedName
KindComputedPropertyName
// Signature elements
KindTypeParameter
KindParameter
KindDecorator
// TypeMember
KindPropertySignature
KindPropertyDeclaration
KindMethodSignature
KindMethodDeclaration
KindClassStaticBlockDeclaration
KindConstructor
KindGetAccessor
KindSetAccessor
KindCallSignature
KindConstructSignature
KindIndexSignature
// Type
KindTypePredicate
KindTypeReference
KindFunctionType
KindConstructorType
KindTypeQuery
KindTypeLiteral
KindArrayType
KindTupleType
KindOptionalType
KindRestType
KindUnionType
KindIntersectionType
KindConditionalType
KindInferType
KindParenthesizedType
KindThisType
KindTypeOperator
KindIndexedAccessType
KindMappedType
KindLiteralType
KindNamedTupleMember
KindTemplateLiteralType
KindTemplateLiteralTypeSpan
KindImportType
// Binding patterns
KindObjectBindingPattern
KindArrayBindingPattern
KindBindingElement
// Expression
KindArrayLiteralExpression
KindObjectLiteralExpression
KindPropertyAccessExpression
KindElementAccessExpression
KindCallExpression
KindNewExpression
KindTaggedTemplateExpression
KindTypeAssertionExpression
KindParenthesizedExpression
KindFunctionExpression
KindArrowFunction
KindDeleteExpression
KindTypeOfExpression
KindVoidExpression
KindAwaitExpression
KindPrefixUnaryExpression
KindPostfixUnaryExpression
KindBinaryExpression
KindConditionalExpression
KindTemplateExpression
KindYieldExpression
KindSpreadElement
KindClassExpression
KindOmittedExpression
KindExpressionWithTypeArguments
KindAsExpression
KindNonNullExpression
KindMetaProperty
KindSyntheticExpression
KindSatisfiesExpression
// Misc
KindTemplateSpan
KindSemicolonClassElement
// Element
KindBlock
KindEmptyStatement
KindVariableStatement
KindExpressionStatement
KindIfStatement
KindDoStatement
KindWhileStatement
KindForStatement
KindForInStatement
KindForOfStatement
KindContinueStatement
KindBreakStatement
KindReturnStatement
KindWithStatement
KindSwitchStatement
KindLabeledStatement
KindThrowStatement
KindTryStatement
KindDebuggerStatement
KindVariableDeclaration
KindVariableDeclarationList
KindFunctionDeclaration
KindClassDeclaration
KindInterfaceDeclaration
KindTypeAliasDeclaration
KindEnumDeclaration
KindModuleDeclaration
KindModuleBlock
KindCaseBlock
KindNamespaceExportDeclaration
KindImportEqualsDeclaration
KindImportDeclaration
KindImportClause
KindNamespaceImport
KindNamedImports
KindImportSpecifier
KindExportAssignment
KindExportDeclaration
KindNamedExports
KindNamespaceExport
KindExportSpecifier
KindMissingDeclaration
// Module references
KindExternalModuleReference
// JSX
KindJsxElement
KindJsxSelfClosingElement
KindJsxOpeningElement
KindJsxClosingElement
KindJsxFragment
KindJsxOpeningFragment
KindJsxClosingFragment
KindJsxAttribute
KindJsxAttributes
KindJsxSpreadAttribute
KindJsxExpression
KindJsxNamespacedName
// Clauses
KindCaseClause
KindDefaultClause
KindHeritageClause
KindCatchClause
// Import attributes
KindImportAttributes
KindImportAttribute
// Property assignments
KindPropertyAssignment
KindShorthandPropertyAssignment
KindSpreadAssignment
// Enum
KindEnumMember
// Top-level nodes
KindSourceFile
KindBundle
// JSDoc nodes
KindJSDocTypeExpression
KindJSDocNameReference
KindJSDocMemberName // C#p
KindJSDocAllType // The * type
KindJSDocNullableType
KindJSDocNonNullableType
KindJSDocOptionalType
KindJSDocVariadicType
KindJSDoc
KindJSDocText
KindJSDocTypeLiteral
KindJSDocSignature
KindJSDocLink
KindJSDocLinkCode
KindJSDocLinkPlain
KindJSDocTag
KindJSDocAugmentsTag
KindJSDocImplementsTag
KindJSDocDeprecatedTag
KindJSDocPublicTag
KindJSDocPrivateTag
KindJSDocProtectedTag
KindJSDocReadonlyTag
KindJSDocOverrideTag
KindJSDocCallbackTag
KindJSDocOverloadTag
KindJSDocParameterTag
KindJSDocReturnTag
KindJSDocThisTag
KindJSDocTypeTag
KindJSDocTemplateTag
KindJSDocTypedefTag
KindJSDocSeeTag
KindJSDocPropertyTag
KindJSDocSatisfiesTag
KindJSDocImportTag
// Synthesized list
KindSyntaxList
// Synthesized JS nodes
KindJSTypeAliasDeclaration
// Transformation nodes
KindNotEmittedStatement
KindPartiallyEmittedExpression
KindCommaListExpression
KindSyntheticReferenceExpression
KindNotEmittedTypeElement
// Enum value count
KindCount
// Markers
KindFirstAssignment = KindEqualsToken
KindLastAssignment = KindCaretEqualsToken
KindFirstCompoundAssignment = KindPlusEqualsToken
KindLastCompoundAssignment = KindCaretEqualsToken
KindFirstReservedWord = KindBreakKeyword
KindLastReservedWord = KindWithKeyword
KindFirstKeyword = KindBreakKeyword
KindLastKeyword = KindOfKeyword
KindFirstFutureReservedWord = KindImplementsKeyword
KindLastFutureReservedWord = KindYieldKeyword
KindFirstTypeNode = KindTypePredicate
KindLastTypeNode = KindImportType
KindFirstPunctuation = KindOpenBraceToken
KindLastPunctuation = KindCaretEqualsToken
KindFirstToken = KindUnknown
KindLastToken = KindLastKeyword
KindFirstLiteralToken = KindNumericLiteral
KindLastLiteralToken = KindNoSubstitutionTemplateLiteral
KindFirstTemplateToken = KindNoSubstitutionTemplateLiteral
KindLastTemplateToken = KindTemplateTail
KindFirstBinaryOperator = KindLessThanToken
KindLastBinaryOperator = KindCaretEqualsToken
KindFirstStatement = KindVariableStatement
KindLastStatement = KindDebuggerStatement
KindFirstNode = KindQualifiedName
KindFirstJSDocNode = KindJSDocTypeExpression
KindLastJSDocNode = KindJSDocImportTag
KindFirstJSDocTagNode = KindJSDocTag
KindLastJSDocTagNode = KindJSDocImportTag
KindFirstContextualKeyword = KindAbstractKeyword
KindLastContextualKeyword = KindOfKeyword
KindComment = KindSingleLineCommentTrivia | KindMultiLineCommentTrivia
)