@@ -339,48 +339,7 @@ extension Parser {
339
339
}
340
340
341
341
mutating func parseImportKind( ) -> RawTokenSyntax ? {
342
- enum ImportKind : TokenSpecSet {
343
- case `typealias`
344
- case `struct`
345
- case `class`
346
- case `enum`
347
- case `protocol`
348
- case `var`
349
- case `let`
350
- case `func`
351
- case `inout`
352
-
353
- var spec : TokenSpec {
354
- switch self {
355
- case . typealias: return . keyword( . typealias)
356
- case . struct: return . keyword( . struct)
357
- case . class: return . keyword( . class)
358
- case . enum: return . keyword( . enum)
359
- case . protocol: return . keyword( . protocol)
360
- case . var: return . keyword( . var)
361
- case . let: return . keyword( . let)
362
- case . func: return . keyword( . func)
363
- case . inout: return . keyword( . inout)
364
- }
365
- }
366
-
367
- init ? ( lexeme: Lexer . Lexeme ) {
368
- switch PrepareForKeywordMatch ( lexeme) {
369
- case TokenSpec ( . typealias) : self = . typealias
370
- case TokenSpec ( . struct) : self = . struct
371
- case TokenSpec ( . class) : self = . class
372
- case TokenSpec ( . enum) : self = . enum
373
- case TokenSpec ( . protocol) : self = . protocol
374
- case TokenSpec ( . var) : self = . var
375
- case TokenSpec ( . let) : self = . let
376
- case TokenSpec ( . func) : self = . func
377
- case TokenSpec ( . inout) : self = . inout
378
- default : return nil
379
- }
380
- }
381
- }
382
-
383
- return self . consume ( ifAnyIn: ImportKind . self)
342
+ return self . consume ( ifAnyIn: ImportDeclSyntax . ImportKindOptions. self)
384
343
}
385
344
386
345
mutating func parseImportPath( ) -> RawImportPathSyntax {
@@ -581,56 +540,6 @@ extension Parser {
581
540
)
582
541
}
583
542
584
- enum LayoutConstraint : TokenSpecSet {
585
- case _Trivial
586
- case _TrivialAtMost
587
- case _UnknownLayout
588
- case _RefCountedObjectLayout
589
- case _NativeRefCountedObjectLayout
590
- case _Class
591
- case _NativeClass
592
-
593
- init ? ( lexeme: Lexer . Lexeme ) {
594
- switch PrepareForKeywordMatch ( lexeme) {
595
- case TokenSpec ( . _Trivial) : self = . _Trivial
596
- case TokenSpec ( . _TrivialAtMost) : self = . _TrivialAtMost
597
- case TokenSpec ( . _UnknownLayout) : self = . _UnknownLayout
598
- case TokenSpec ( . _RefCountedObject) : self = . _RefCountedObjectLayout
599
- case TokenSpec ( . _NativeRefCountedObject) : self = . _NativeRefCountedObjectLayout
600
- case TokenSpec ( . _Class) : self = . _Class
601
- case TokenSpec ( . _NativeClass) : self = . _NativeClass
602
- default : return nil
603
- }
604
- }
605
-
606
- var spec : TokenSpec {
607
- switch self {
608
- case . _Trivial: return . keyword( . _Trivial)
609
- case . _TrivialAtMost: return . keyword( . _TrivialAtMost)
610
- case . _UnknownLayout: return . keyword( . _UnknownLayout)
611
- case . _RefCountedObjectLayout: return . keyword( . _RefCountedObject)
612
- case . _NativeRefCountedObjectLayout: return . keyword( . _NativeRefCountedObject)
613
- case . _Class: return . keyword( . _Class)
614
- case . _NativeClass: return . keyword( . _NativeClass)
615
- }
616
- }
617
-
618
- var hasArguments : Bool {
619
- switch self {
620
- case . _Trivial,
621
- . _TrivialAtMost:
622
- return true
623
-
624
- case . _UnknownLayout,
625
- . _RefCountedObjectLayout,
626
- . _NativeRefCountedObjectLayout,
627
- . _Class,
628
- . _NativeClass:
629
- return false
630
- }
631
- }
632
- }
633
-
634
543
mutating func parseGenericWhereClause( ) -> RawGenericWhereClauseSyntax {
635
544
let ( unexpectedBeforeWhereKeyword, whereKeyword) = self . expect ( . keyword( . where) )
636
545
@@ -690,7 +599,7 @@ extension Parser {
690
599
case ( . colon, let handle) ? :
691
600
let colon = self . eat ( handle)
692
601
// A conformance-requirement.
693
- if let ( layoutConstraint, handle) = self . at ( anyIn: LayoutConstraint . self) {
602
+ if let ( layoutConstraint, handle) = self . at ( anyIn: LayoutRequirementSyntax . LayoutConstraintOptions . self) {
694
603
// Parse a layout constraint.
695
604
let constraint = self . eat ( handle)
696
605
@@ -701,9 +610,25 @@ extension Parser {
701
610
let alignment : RawTokenSyntax ?
702
611
let unexpectedBeforeRightParen : RawUnexpectedNodesSyntax ?
703
612
let rightParen : RawTokenSyntax ?
613
+
614
+ var hasArguments : Bool {
615
+ switch layoutConstraint {
616
+ case . _Trivial,
617
+ . _TrivialAtMost:
618
+ return true
619
+
620
+ case . _UnknownLayout,
621
+ . _RefCountedObject,
622
+ . _NativeRefCountedObject,
623
+ . _Class,
624
+ . _NativeClass:
625
+ return false
626
+ }
627
+ }
628
+
704
629
// Unlike the other layout constraints, _Trivial's argument list
705
630
// is optional.
706
- if layoutConstraint . hasArguments && ( layoutConstraint != . _Trivial || self . at ( . leftParen) ) {
631
+ if hasArguments && ( layoutConstraint != . _Trivial || self . at ( . leftParen) ) {
707
632
( unexpectedBeforeLeftParen, leftParen) = self . expect ( . leftParen)
708
633
size = self . expectWithoutRecovery ( . integerLiteral)
709
634
comma = self . consume ( if: . comma)
@@ -1296,7 +1221,7 @@ extension Parser {
1296
1221
1297
1222
// Parse getter and setter.
1298
1223
let accessor : RawSubscriptDeclSyntax . Accessor ?
1299
- if self . at ( . leftBrace) || self . at ( anyIn: AccessorKind . self) != nil {
1224
+ if self . at ( . leftBrace) || self . at ( anyIn: AccessorDeclSyntax . AccessorKindOptions . self) != nil {
1300
1225
accessor = self . parseGetSet ( )
1301
1226
} else {
1302
1227
accessor = nil
@@ -1418,7 +1343,7 @@ extension Parser {
1418
1343
}
1419
1344
1420
1345
let accessor : RawPatternBindingSyntax . Accessor ?
1421
- if self . at ( . leftBrace) || ( inMemberDeclList && self . at ( anyIn: AccessorKind . self) != nil && !self . at ( . keyword( . `init`) ) ) {
1346
+ if self . at ( . leftBrace) || ( inMemberDeclList && self . at ( anyIn: AccessorDeclSyntax . AccessorKindOptions . self) != nil && !self . at ( . keyword( . `init`) ) ) {
1422
1347
switch self . parseGetSet ( ) {
1423
1348
case . accessors( let accessors) :
1424
1349
accessor = . accessors( accessors)
@@ -1456,19 +1381,19 @@ extension Parser {
1456
1381
struct AccessorIntroducer {
1457
1382
var attributes : RawAttributeListSyntax ?
1458
1383
var modifier : RawDeclModifierSyntax ?
1459
- var kind : AccessorKind
1384
+ var kind : AccessorDeclSyntax . AccessorKindOptions
1460
1385
var unexpectedBeforeToken : RawUnexpectedNodesSyntax ?
1461
1386
var token : RawTokenSyntax
1462
1387
}
1463
1388
1464
1389
mutating func parseAccessorIntroducer(
1465
- forcedKind: ( AccessorKind , TokenConsumptionHandle ) ? = nil
1390
+ forcedKind: ( AccessorDeclSyntax . AccessorKindOptions , TokenConsumptionHandle ) ? = nil
1466
1391
) -> AccessorIntroducer ? {
1467
1392
// Check there is an identifier before consuming
1468
1393
var look = self . lookahead ( )
1469
1394
let _ = look. consumeAttributeList ( )
1470
1395
let hasModifier = look. consume ( if: . keyword( . mutating) , . keyword( . nonmutating) , . keyword( . __consuming) ) != nil
1471
- guard let ( kind, _) = look. at ( anyIn: AccessorKind . self) ?? forcedKind else {
1396
+ guard let ( kind, _) = look. at ( anyIn: AccessorDeclSyntax . AccessorKindOptions . self) ?? forcedKind else {
1472
1397
return nil
1473
1398
}
1474
1399
@@ -1530,7 +1455,7 @@ extension Parser {
1530
1455
//
1531
1456
// set-name ::= '(' identifier ')'
1532
1457
let parameter : RawAccessorParameterSyntax ?
1533
- if [ AccessorKind . set, . willSet, . didSet, . `init`] . contains ( introducer. kind) , let lparen = self . consume ( if: . leftParen) {
1458
+ if [ AccessorDeclSyntax . AccessorKindOptions . set, . willSet, . didSet, . `init`] . contains ( introducer. kind) , let lparen = self . consume ( if: . leftParen) {
1534
1459
let ( unexpectedBeforeName, name) = self . expectIdentifier ( )
1535
1460
let ( unexpectedBeforeRParen, rparen) = self . expect ( . rightParen)
1536
1461
parameter = RawAccessorParameterSyntax (
@@ -1575,7 +1500,7 @@ extension Parser {
1575
1500
// Parse getter and setter.
1576
1501
let unexpectedBeforeLBrace : RawUnexpectedNodesSyntax ?
1577
1502
let lbrace : RawTokenSyntax
1578
- if self . at ( anyIn: AccessorKind . self) != nil {
1503
+ if self . at ( anyIn: AccessorDeclSyntax . AccessorKindOptions . self) != nil {
1579
1504
unexpectedBeforeLBrace = nil
1580
1505
lbrace = missingToken ( . leftBrace)
1581
1506
} else {
@@ -1976,7 +1901,7 @@ extension Parser {
1976
1901
case ( . assignment, let handle) ? :
1977
1902
let assignmentKeyword = self . eat ( handle)
1978
1903
let ( unexpectedBeforeColon, colon) = self . expect ( . colon)
1979
- let ( unexpectedBeforeFlag, flag) = self . expect ( . keyword ( . true ) , . keyword ( . false ) , default: . keyword ( . true ) )
1904
+ let ( unexpectedBeforeFlag, flag) = self . expect ( anyIn : PrecedenceGroupAssignmentSyntax . FlagOptions . self , default: . true )
1980
1905
let unexpectedAfterFlag : RawUnexpectedNodesSyntax ?
1981
1906
if flag. isMissing, let unexpectedIdentifier = self . consume ( if: TokenSpec ( . identifier, allowAtStartOfLine: false ) ) {
1982
1907
unexpectedAfterFlag = RawUnexpectedNodesSyntax ( [ unexpectedIdentifier] , arena: self . arena)
0 commit comments