@@ -30,7 +30,7 @@ extension Parser {
3030
3131extension Parser {
3232 /// Compiler-known attributes that take arguments.
33- enum DeclarationAttributeWithSpecialSyntax : RawTokenKindSubset {
33+ enum DeclarationAttributeWithSpecialSyntax : TokenSpecSet {
3434 case _alignment
3535 case _cdecl
3636 case _documentation
@@ -65,44 +65,44 @@ extension Parser {
6565
6666 init ? ( lexeme: Lexer . Lexeme ) {
6767 switch lexeme {
68- case RawTokenKindMatch ( . _alignment) : self = . _alignment
69- case RawTokenKindMatch ( . _backDeploy) : self = . backDeployed
70- case RawTokenKindMatch ( . _cdecl) : self = . _cdecl
71- case RawTokenKindMatch ( . _documentation) : self = . _documentation
72- case RawTokenKindMatch ( . _dynamicReplacement) : self = . _dynamicReplacement
73- case RawTokenKindMatch ( . _effects) : self = . _effects
74- case RawTokenKindMatch ( . _expose) : self = . _expose
75- case RawTokenKindMatch ( . _implements) : self = . _implements
76- case RawTokenKindMatch ( . _nonSendable) : self = . _nonSendable
77- case RawTokenKindMatch ( . _objcImplementation) : self = . _objcImplementation
78- case RawTokenKindMatch ( . _objcRuntimeName) : self = . _objcRuntimeName
79- case RawTokenKindMatch ( . _optimize) : self = . _optimize
80- case RawTokenKindMatch ( . _originallyDefinedIn) : self = . _originallyDefinedIn
81- case RawTokenKindMatch ( . _private) : self = . _private
82- case RawTokenKindMatch ( . _projectedValueProperty) : self = . _projectedValueProperty
83- case RawTokenKindMatch ( . _semantics) : self = . _semantics
84- case RawTokenKindMatch ( . _silgen_name) : self = . _silgen_name
85- case RawTokenKindMatch ( . _specialize) : self = . _specialize
86- case RawTokenKindMatch ( . _spi) : self = . _spi
87- case RawTokenKindMatch ( . _spi_available) : self = . _spi_available
88- case RawTokenKindMatch ( . _swift_native_objc_runtime_base) : self = . _swift_native_objc_runtime_base
89- case RawTokenKindMatch ( . _typeEraser) : self = . _typeEraser
90- case RawTokenKindMatch ( . _unavailableFromAsync) : self = . _unavailableFromAsync
91- case RawTokenKindMatch ( . `rethrows`) : self = . rethrows
92- case RawTokenKindMatch ( . available) : self = . available
93- case RawTokenKindMatch ( . backDeployed) : self = . backDeployed
94- case RawTokenKindMatch ( . derivative) : self = . derivative
95- case RawTokenKindMatch ( . differentiable) : self = . differentiable
96- case RawTokenKindMatch ( . exclusivity) : self = . exclusivity
97- case RawTokenKindMatch ( . inline) : self = . inline
98- case RawTokenKindMatch ( . objc) : self = . objc
99- case RawTokenKindMatch ( . transpose) : self = . transpose
68+ case TokenSpec ( . _alignment) : self = . _alignment
69+ case TokenSpec ( . _backDeploy) : self = . backDeployed
70+ case TokenSpec ( . _cdecl) : self = . _cdecl
71+ case TokenSpec ( . _documentation) : self = . _documentation
72+ case TokenSpec ( . _dynamicReplacement) : self = . _dynamicReplacement
73+ case TokenSpec ( . _effects) : self = . _effects
74+ case TokenSpec ( . _expose) : self = . _expose
75+ case TokenSpec ( . _implements) : self = . _implements
76+ case TokenSpec ( . _nonSendable) : self = . _nonSendable
77+ case TokenSpec ( . _objcImplementation) : self = . _objcImplementation
78+ case TokenSpec ( . _objcRuntimeName) : self = . _objcRuntimeName
79+ case TokenSpec ( . _optimize) : self = . _optimize
80+ case TokenSpec ( . _originallyDefinedIn) : self = . _originallyDefinedIn
81+ case TokenSpec ( . _private) : self = . _private
82+ case TokenSpec ( . _projectedValueProperty) : self = . _projectedValueProperty
83+ case TokenSpec ( . _semantics) : self = . _semantics
84+ case TokenSpec ( . _silgen_name) : self = . _silgen_name
85+ case TokenSpec ( . _specialize) : self = . _specialize
86+ case TokenSpec ( . _spi) : self = . _spi
87+ case TokenSpec ( . _spi_available) : self = . _spi_available
88+ case TokenSpec ( . _swift_native_objc_runtime_base) : self = . _swift_native_objc_runtime_base
89+ case TokenSpec ( . _typeEraser) : self = . _typeEraser
90+ case TokenSpec ( . _unavailableFromAsync) : self = . _unavailableFromAsync
91+ case TokenSpec ( . `rethrows`) : self = . rethrows
92+ case TokenSpec ( . available) : self = . available
93+ case TokenSpec ( . backDeployed) : self = . backDeployed
94+ case TokenSpec ( . derivative) : self = . derivative
95+ case TokenSpec ( . differentiable) : self = . differentiable
96+ case TokenSpec ( . exclusivity) : self = . exclusivity
97+ case TokenSpec ( . inline) : self = . inline
98+ case TokenSpec ( . objc) : self = . objc
99+ case TokenSpec ( . transpose) : self = . transpose
100100 default :
101101 return nil
102102 }
103103 }
104104
105- var rawTokenKind : RawTokenKind {
105+ var spec : TokenSpec {
106106 switch self {
107107 case . _alignment: return . keyword( . _alignment)
108108 case . _cdecl: return . keyword( . _cdecl)
@@ -171,7 +171,7 @@ extension Parser {
171171 case . required:
172172 shouldParseArgument = true
173173 case . customAttribute:
174- shouldParseArgument = self . withLookahead { $0. isCustomAttributeArgument ( ) } && self . at ( . leftParen, allowTokenAtStartOfLine : false )
174+ shouldParseArgument = self . withLookahead { $0. isCustomAttributeArgument ( ) } && self . at ( TokenSpec ( . leftParen, allowAtStartOfLine : false ) )
175175 case . optional:
176176 shouldParseArgument = self . at ( . leftParen)
177177 }
@@ -313,7 +313,7 @@ extension Parser {
313313 }
314314 case . rethrows:
315315 let ( unexpectedBeforeAtSign, atSign) = self . expect ( . atSign)
316- let ( unexpectedBeforeAttributeName, attributeName) = self . expect ( . keyword( . rethrows) , remapping: . identifier)
316+ let ( unexpectedBeforeAttributeName, attributeName) = self . expect ( TokenSpec ( . keyword( . rethrows) , remapping: . identifier) )
317317 return . attribute(
318318 RawAttributeSyntax (
319319 unexpectedBeforeAtSign,
@@ -358,21 +358,21 @@ extension Parser {
358358 )
359359 }
360360
361- enum DifferentiabilityKind : RawTokenKindSubset {
361+ enum DifferentiabilityKind : TokenSpecSet {
362362 case reverse
363363 case linear
364364 case forward
365365
366366 init ? ( lexeme: Lexer . Lexeme ) {
367367 switch lexeme {
368- case RawTokenKindMatch ( . reverse) : self = . reverse
369- case RawTokenKindMatch ( . _linear) : self = . linear
370- case RawTokenKindMatch ( . _forward) : self = . forward
368+ case TokenSpec ( . reverse) : self = . reverse
369+ case TokenSpec ( . _linear) : self = . linear
370+ case TokenSpec ( . _forward) : self = . forward
371371 default : return nil
372372 }
373373 }
374374
375- var rawTokenKind : RawTokenKind {
375+ var spec : TokenSpec {
376376 switch self {
377377 case . reverse: return . keyword( . reverse)
378378 case . linear: return . keyword( . _linear)
@@ -469,21 +469,21 @@ extension Parser {
469469 }
470470
471471 mutating func parseDifferentiabilityParameter( ) -> RawDifferentiabilityParamSyntax ? {
472- enum ExpectedTokenKind : RawTokenKindSubset {
472+ enum ExpectedTokenKind : TokenSpecSet {
473473 case identifier
474474 case integerLiteral
475475 case selfKeyword
476476
477477 init ? ( lexeme: Lexer . Lexeme ) {
478478 switch lexeme {
479- case RawTokenKindMatch ( . identifier) : self = . identifier
480- case RawTokenKindMatch ( . integerLiteral) : self = . integerLiteral
481- case RawTokenKindMatch ( . self ) : self = . selfKeyword
479+ case TokenSpec ( . identifier) : self = . identifier
480+ case TokenSpec ( . integerLiteral) : self = . integerLiteral
481+ case TokenSpec ( . self ) : self = . selfKeyword
482482 default : return nil
483483 }
484484 }
485485
486- var rawTokenKind : RawTokenKind {
486+ var spec : TokenSpec {
487487 switch self {
488488 case . identifier: return . identifier
489489 case . integerLiteral: return . integerLiteral
@@ -649,7 +649,7 @@ extension Parser {
649649}
650650
651651extension Parser {
652- enum SpecializeParameter : RawTokenKindSubset {
652+ enum SpecializeParameter : TokenSpecSet {
653653 case target
654654 case availability
655655 case exported
@@ -660,18 +660,18 @@ extension Parser {
660660
661661 init ? ( lexeme: Lexer . Lexeme ) {
662662 switch lexeme {
663- case RawTokenKindMatch ( . target) : self = . target
664- case RawTokenKindMatch ( . availability) : self = . availability
665- case RawTokenKindMatch ( . exported) : self = . exported
666- case RawTokenKindMatch ( . kind) : self = . kind
667- case RawTokenKindMatch ( . spi) : self = . spi
668- case RawTokenKindMatch ( . spiModule) : self = . spiModule
669- case RawTokenKindMatch ( . available) : self = . available
663+ case TokenSpec ( . target) : self = . target
664+ case TokenSpec ( . availability) : self = . availability
665+ case TokenSpec ( . exported) : self = . exported
666+ case TokenSpec ( . kind) : self = . kind
667+ case TokenSpec ( . spi) : self = . spi
668+ case TokenSpec ( . spiModule) : self = . spiModule
669+ case TokenSpec ( . available) : self = . available
670670 default : return nil
671671 }
672672 }
673673
674- var rawTokenKind : RawTokenKind {
674+ var spec : TokenSpec {
675675 switch self {
676676 case . target: return . keyword( . target)
677677 case . availability: return . keyword( . availability)
@@ -1082,14 +1082,14 @@ extension Parser {
10821082 let value : RawDocumentationAttributeArgumentSyntax . Value
10831083 switch label. tokenText {
10841084 case " visibility " :
1085- enum AccessLevelModifier : RawTokenKindSubset {
1085+ enum AccessLevelModifier : TokenSpecSet {
10861086 case `private`
10871087 case `fileprivate`
10881088 case `internal`
10891089 case `public`
10901090 case `open`
10911091
1092- var rawTokenKind : RawTokenKind {
1092+ var spec : TokenSpec {
10931093 switch self {
10941094 case . private: return . keyword( . private)
10951095 case . fileprivate: return . keyword( . fileprivate)
@@ -1101,11 +1101,11 @@ extension Parser {
11011101
11021102 init ? ( lexeme: Lexer . Lexeme ) {
11031103 switch lexeme {
1104- case RawTokenKindMatch ( . private) : self = . private
1105- case RawTokenKindMatch ( . fileprivate) : self = . fileprivate
1106- case RawTokenKindMatch ( . internal) : self = . internal
1107- case RawTokenKindMatch ( . public) : self = . public
1108- case RawTokenKindMatch ( . open) : self = . open
1104+ case TokenSpec ( . private) : self = . private
1105+ case TokenSpec ( . fileprivate) : self = . fileprivate
1106+ case TokenSpec ( . internal) : self = . internal
1107+ case TokenSpec ( . public) : self = . public
1108+ case TokenSpec ( . open) : self = . open
11091109 default : return nil
11101110 }
11111111 }
@@ -1180,7 +1180,7 @@ extension Parser.Lookahead {
11801180 return false
11811181 }
11821182
1183- if self . at ( . leftParen, allowTokenAtStartOfLine : false ) && self . withLookahead ( { $0. isCustomAttributeArgument ( ) } ) {
1183+ if self . at ( TokenSpec ( . leftParen, allowAtStartOfLine : false ) ) && self . withLookahead ( { $0. isCustomAttributeArgument ( ) } ) {
11841184 self . skipSingle ( )
11851185 }
11861186
0 commit comments