@@ -328,6 +328,125 @@ enum DeclarationKeyword: TokenSpecSet {
328328  } 
329329} 
330330
331+ enum  DeclarationModifier :  TokenSpecSet  { 
332+   case  __consuming
333+   case  __setter_access
334+   case  _const
335+   case  _local
336+   case  async 
337+   case  borrowing
338+   case  `class`
339+   case  consuming
340+   case  convenience
341+   case  distributed
342+   case  dynamic
343+   case  `fileprivate`
344+   case  final
345+   case  indirect
346+   case  infix
347+   case  `internal`
348+   case  isolated
349+   case  lazy
350+   case  mutating
351+   case  nonisolated
352+   case  nonmutating
353+   case  open
354+   case  optional
355+   case  override
356+   case  package 
357+   case  postfix
358+   case  prefix
359+   case  `private`
360+   case  `public`
361+   case  reasync
362+   case  required
363+   case  `rethrows`
364+   case  `static`
365+   case  unowned
366+   case  weak
367+ 
368+   init ? ( lexeme:  Lexer . Lexeme )  { 
369+     switch  PrepareForKeywordMatch ( lexeme)  { 
370+     case  TokenSpec ( . __consuming) :  self  =  . __consuming
371+     case  TokenSpec ( . __setter_access) :  self  =  . __setter_access
372+     case  TokenSpec ( . _const) :  self  =  . _const
373+     case  TokenSpec ( . _local) :  self  =  . _local
374+     case  TokenSpec ( . async) :  self  =  . async
375+     case  TokenSpec ( . borrowing) :  self  =  . borrowing
376+     case  TokenSpec ( . class) :  self  =  . class
377+     case  TokenSpec ( . consuming) :  self  =  . consuming
378+     case  TokenSpec ( . convenience) :  self  =  . convenience
379+     case  TokenSpec ( . distributed) :  self  =  . distributed
380+     case  TokenSpec ( . dynamic) :  self  =  . dynamic
381+     case  TokenSpec ( . fileprivate) :  self  =  . fileprivate
382+     case  TokenSpec ( . final) :  self  =  . final
383+     case  TokenSpec ( . indirect) :  self  =  . indirect
384+     case  TokenSpec ( . infix) :  self  =  . infix
385+     case  TokenSpec ( . internal) :  self  =  . internal
386+     case  TokenSpec ( . isolated) :  self  =  . isolated
387+     case  TokenSpec ( . lazy) :  self  =  . lazy
388+     case  TokenSpec ( . mutating) :  self  =  . mutating
389+     case  TokenSpec ( . nonisolated) :  self  =  . nonisolated
390+     case  TokenSpec ( . nonmutating) :  self  =  . nonmutating
391+     case  TokenSpec ( . open) :  self  =  . open
392+     case  TokenSpec ( . optional) :  self  =  . optional
393+     case  TokenSpec ( . override) :  self  =  . override
394+     case  TokenSpec ( . package ) :  self  =  . package 
395+     case  TokenSpec ( . postfix) :  self  =  . postfix
396+     case  TokenSpec ( . prefix) :  self  =  . prefix
397+     case  TokenSpec ( . private) :  self  =  . private
398+     case  TokenSpec ( . public) :  self  =  . public
399+     case  TokenSpec ( . reasync) :  self  =  . reasync
400+     case  TokenSpec ( . required) :  self  =  . required
401+     case  TokenSpec ( . rethrows) :  self  =  . rethrows
402+     case  TokenSpec ( . static) :  self  =  . static
403+     case  TokenSpec ( . unowned) :  self  =  . unowned
404+     case  TokenSpec ( . weak) :  self  =  . weak
405+     default :  return  nil 
406+     } 
407+   } 
408+ 
409+   var  spec :  TokenSpec  { 
410+     switch  self  { 
411+     case  . __consuming:  return  . keyword( . __consuming) 
412+     case  . __setter_access:  return  . keyword( . __setter_access) 
413+     case  . _const:  return  TokenSpec ( . _const,  recoveryPrecedence:  . declKeyword) 
414+     case  . _local:  return  . keyword( . _local) 
415+     case  . async :  return  TokenSpec ( . async,  recoveryPrecedence:  . declKeyword) 
416+     case  . borrowing:  return  TokenSpec ( . borrowing,  recoveryPrecedence:  . declKeyword) 
417+     case  . class:  return  . keyword( . class) 
418+     case  . consuming:  return  TokenSpec ( . consuming,  recoveryPrecedence:  . declKeyword) 
419+     case  . convenience:  return  . keyword( . convenience) 
420+     case  . distributed:  return  . keyword( . distributed) 
421+     case  . dynamic:  return  . keyword( . dynamic) 
422+     case  . fileprivate:  return  . keyword( . fileprivate) 
423+     case  . final:  return  . keyword( . final) 
424+     case  . indirect:  return  . keyword( . indirect) 
425+     case  . infix:  return  . keyword( . infix) 
426+     case  . internal:  return  . keyword( . internal) 
427+     case  . isolated:  return  TokenSpec ( . isolated,  recoveryPrecedence:  . declKeyword) 
428+     case  . lazy:  return  . keyword( . lazy) 
429+     case  . mutating:  return  . keyword( . mutating) 
430+     case  . nonisolated:  return  . keyword( . nonisolated) 
431+     case  . nonmutating:  return  . keyword( . nonmutating) 
432+     case  . open:  return  . keyword( . open) 
433+     case  . optional:  return  . keyword( . optional) 
434+     case  . override:  return  . keyword( . override) 
435+     case  . package :  return  . keyword( . package ) 
436+     case  . postfix:  return  . keyword( . postfix) 
437+     case  . prefix:  return  . keyword( . prefix) 
438+     case  . private:  return  . keyword( . private) 
439+     case  . public:  return  . keyword( . public) 
440+     case  . reasync:  return  TokenSpec ( . reasync,  recoveryPrecedence:  . declKeyword) 
441+     case  . required:  return  . keyword( . required) 
442+     case  . rethrows:  return  TokenSpec ( . rethrows,  recoveryPrecedence:  . declKeyword) 
443+     case  . static:  return  . keyword( . static) 
444+     case  . unowned:  return  TokenSpec ( . unowned,  recoveryPrecedence:  . declKeyword) 
445+     case  . weak:  return  TokenSpec ( . weak,  recoveryPrecedence:  . declKeyword) 
446+     } 
447+   } 
448+ } 
449+ 
331450/// Union of the following token kind subsets:
332451///  - `DeclarationModifier`
333452///  - `DeclarationKeyword`
@@ -463,6 +582,56 @@ enum SwitchCaseStart: TokenSpecSet {
463582  } 
464583} 
465584
585+ enum  TypeAttribute :  TokenSpecSet  { 
586+   case  _local
587+   case  _noMetadata
588+   case  _opaqueReturnTypeOf
589+   case  async 
590+   case  autoclosure
591+   case  convention
592+   case  differentiable
593+   case  escaping
594+   case  noDerivative
595+   case  noescape
596+   case  Sendable
597+   case  unchecked
598+ 
599+   init ? ( lexeme:  Lexer . Lexeme )  { 
600+     switch  PrepareForKeywordMatch ( lexeme)  { 
601+     case  TokenSpec ( . _local) :  self  =  . _local
602+     case  TokenSpec ( . _noMetadata) :  self  =  . _noMetadata
603+     case  TokenSpec ( . _opaqueReturnTypeOf) :  self  =  . _opaqueReturnTypeOf
604+     case  TokenSpec ( . async) :  self  =  . async
605+     case  TokenSpec ( . autoclosure) :  self  =  . autoclosure
606+     case  TokenSpec ( . convention) :  self  =  . convention
607+     case  TokenSpec ( . differentiable) :  self  =  . differentiable
608+     case  TokenSpec ( . escaping) :  self  =  . escaping
609+     case  TokenSpec ( . noDerivative) :  self  =  . noDerivative
610+     case  TokenSpec ( . noescape) :  self  =  . noescape
611+     case  TokenSpec ( . Sendable) :  self  =  . Sendable
612+     case  TokenSpec ( . unchecked) :  self  =  . unchecked
613+     default :  return  nil 
614+     } 
615+   } 
616+ 
617+   var  spec :  TokenSpec  { 
618+     switch  self  { 
619+     case  . _local:  return  . keyword( . _local) 
620+     case  . _noMetadata:  return  . keyword( . _noMetadata) 
621+     case  . _opaqueReturnTypeOf:  return  . keyword( . _opaqueReturnTypeOf) 
622+     case  . async :  return  . keyword( . async) 
623+     case  . autoclosure:  return  . keyword( . autoclosure) 
624+     case  . convention:  return  . keyword( . convention) 
625+     case  . differentiable:  return  . keyword( . differentiable) 
626+     case  . escaping:  return  . keyword( . escaping) 
627+     case  . noDerivative:  return  . keyword( . noDerivative) 
628+     case  . noescape:  return  . keyword( . noescape) 
629+     case  . Sendable:  return  . keyword( . Sendable) 
630+     case  . unchecked:  return  . keyword( . unchecked) 
631+     } 
632+   } 
633+ } 
634+ 
466635@_spi ( Diagnostics)  
467636public  enum  TypeSpecifier :  TokenSpecSet  { 
468637  case  `inout`
0 commit comments