@@ -30,7 +30,7 @@ extension Parser {
30
30
31
31
extension Parser {
32
32
/// Compiler-known attributes that take arguments.
33
- enum DeclarationAttributeWithSpecialSyntax : RawTokenKindSubset {
33
+ enum DeclarationAttributeWithSpecialSyntax : TokenSpecSet {
34
34
case _alignment
35
35
case _cdecl
36
36
case _documentation
@@ -65,44 +65,44 @@ extension Parser {
65
65
66
66
init ? ( lexeme: Lexer . Lexeme ) {
67
67
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
100
100
default :
101
101
return nil
102
102
}
103
103
}
104
104
105
- var rawTokenKind : RawTokenKind {
105
+ var spec : TokenSpec {
106
106
switch self {
107
107
case . _alignment: return . keyword( . _alignment)
108
108
case . _cdecl: return . keyword( . _cdecl)
@@ -171,7 +171,7 @@ extension Parser {
171
171
case . required:
172
172
shouldParseArgument = true
173
173
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 ) )
175
175
case . optional:
176
176
shouldParseArgument = self . at ( . leftParen)
177
177
}
@@ -313,7 +313,7 @@ extension Parser {
313
313
}
314
314
case . rethrows:
315
315
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) )
317
317
return . attribute(
318
318
RawAttributeSyntax (
319
319
unexpectedBeforeAtSign,
@@ -358,21 +358,21 @@ extension Parser {
358
358
)
359
359
}
360
360
361
- enum DifferentiabilityKind : RawTokenKindSubset {
361
+ enum DifferentiabilityKind : TokenSpecSet {
362
362
case reverse
363
363
case linear
364
364
case forward
365
365
366
366
init ? ( lexeme: Lexer . Lexeme ) {
367
367
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
371
371
default : return nil
372
372
}
373
373
}
374
374
375
- var rawTokenKind : RawTokenKind {
375
+ var spec : TokenSpec {
376
376
switch self {
377
377
case . reverse: return . keyword( . reverse)
378
378
case . linear: return . keyword( . _linear)
@@ -469,21 +469,21 @@ extension Parser {
469
469
}
470
470
471
471
mutating func parseDifferentiabilityParameter( ) -> RawDifferentiabilityParamSyntax ? {
472
- enum ExpectedTokenKind : RawTokenKindSubset {
472
+ enum ExpectedTokenKind : TokenSpecSet {
473
473
case identifier
474
474
case integerLiteral
475
475
case selfKeyword
476
476
477
477
init ? ( lexeme: Lexer . Lexeme ) {
478
478
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
482
482
default : return nil
483
483
}
484
484
}
485
485
486
- var rawTokenKind : RawTokenKind {
486
+ var spec : TokenSpec {
487
487
switch self {
488
488
case . identifier: return . identifier
489
489
case . integerLiteral: return . integerLiteral
@@ -649,7 +649,7 @@ extension Parser {
649
649
}
650
650
651
651
extension Parser {
652
- enum SpecializeParameter : RawTokenKindSubset {
652
+ enum SpecializeParameter : TokenSpecSet {
653
653
case target
654
654
case availability
655
655
case exported
@@ -660,18 +660,18 @@ extension Parser {
660
660
661
661
init ? ( lexeme: Lexer . Lexeme ) {
662
662
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
670
670
default : return nil
671
671
}
672
672
}
673
673
674
- var rawTokenKind : RawTokenKind {
674
+ var spec : TokenSpec {
675
675
switch self {
676
676
case . target: return . keyword( . target)
677
677
case . availability: return . keyword( . availability)
@@ -1082,14 +1082,14 @@ extension Parser {
1082
1082
let value : RawDocumentationAttributeArgumentSyntax . Value
1083
1083
switch label. tokenText {
1084
1084
case " visibility " :
1085
- enum AccessLevelModifier : RawTokenKindSubset {
1085
+ enum AccessLevelModifier : TokenSpecSet {
1086
1086
case `private`
1087
1087
case `fileprivate`
1088
1088
case `internal`
1089
1089
case `public`
1090
1090
case `open`
1091
1091
1092
- var rawTokenKind : RawTokenKind {
1092
+ var spec : TokenSpec {
1093
1093
switch self {
1094
1094
case . private: return . keyword( . private)
1095
1095
case . fileprivate: return . keyword( . fileprivate)
@@ -1101,11 +1101,11 @@ extension Parser {
1101
1101
1102
1102
init ? ( lexeme: Lexer . Lexeme ) {
1103
1103
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
1109
1109
default : return nil
1110
1110
}
1111
1111
}
@@ -1180,7 +1180,7 @@ extension Parser.Lookahead {
1180
1180
return false
1181
1181
}
1182
1182
1183
- if self . at ( . leftParen, allowTokenAtStartOfLine : false ) && self . withLookahead ( { $0. isCustomAttributeArgument ( ) } ) {
1183
+ if self . at ( TokenSpec ( . leftParen, allowAtStartOfLine : false ) ) && self . withLookahead ( { $0. isCustomAttributeArgument ( ) } ) {
1184
1184
self . skipSingle ( )
1185
1185
}
1186
1186
0 commit comments