@@ -34,7 +34,7 @@ extension Parser {
34
34
return RawSyntax ( self . parsePoundIfDirective { parser -> RawSyntax in
35
35
return parser. parseAttribute ( )
36
36
} syntax: { parser, attributes in
37
- return RawSyntax ( RawAttributeListSyntax ( elements: attributes, arena: parser. arena) )
37
+ return . attributes ( RawAttributeListSyntax ( elements: attributes, arena: parser. arena) )
38
38
} )
39
39
}
40
40
@@ -75,7 +75,7 @@ extension Parser {
75
75
let ( unexpectedBeforeAtSign, atSign) = self . expect ( . atSign)
76
76
let ( unexpectedBeforeIdent, ident) = self . expectIdentifierOrRethrows ( )
77
77
let leftParen = self . consume ( if: . leftParen)
78
- let arg : RawSyntax ?
78
+ let arg : RawAttributeSyntax . Argument ?
79
79
let unexpectedBeforeRightParen : RawUnexpectedNodesSyntax ?
80
80
let rightParen : RawTokenSyntax ?
81
81
if leftParen != nil {
@@ -84,7 +84,7 @@ extension Parser {
84
84
while !self . at ( any: [ . eof, . rightParen] ) && loopProgress. evaluate ( currentToken) {
85
85
args. append ( self . consumeAnyToken ( ) )
86
86
}
87
- arg = RawSyntax ( RawTokenListSyntax ( elements: args, arena: self . arena) )
87
+ arg = . tokenList ( RawTokenListSyntax ( elements: args, arena: self . arena) )
88
88
( unexpectedBeforeRightParen, rightParen) = self . expect ( . rightParen)
89
89
} else {
90
90
arg = nil
@@ -137,14 +137,14 @@ extension Parser {
137
137
let ( unexpectedBeforeAvailable, available) = self . expectContextualKeyword ( " available " )
138
138
let ( unexpectedBeforeLeftParen, leftParen) = self . expect ( . leftParen)
139
139
140
- let argument : RawSyntax
140
+ let argument : RawAttributeSyntax . Argument
141
141
do {
142
142
if self . peek ( ) . tokenKind == . integerLiteral {
143
- argument = RawSyntax ( self . parseAvailabilitySpecList ( from: . available) )
143
+ argument = . availability ( self . parseAvailabilitySpecList ( from: . available) )
144
144
} else if self . peek ( ) . tokenKind == . floatingLiteral {
145
- argument = RawSyntax ( self . parseAvailabilitySpecList ( from: . available) )
145
+ argument = . availability ( self . parseAvailabilitySpecList ( from: . available) )
146
146
} else {
147
- argument = RawSyntax ( self . parseExtendedAvailabilitySpecList ( ) )
147
+ argument = . availability ( self . parseExtendedAvailabilitySpecList ( ) )
148
148
}
149
149
}
150
150
let ( unexpectedBeforeRightParen, rightParen) = self . expect ( . rightParen)
@@ -168,14 +168,14 @@ extension Parser {
168
168
let ( unexpectedBeforeAvailable, available) = self . expectContextualKeyword ( " _spi_available " )
169
169
let ( unexpectedBeforeLeftParen, leftParen) = self . expect ( . leftParen)
170
170
171
- let argument : RawSyntax
171
+ let argument : RawAttributeSyntax . Argument
172
172
do {
173
173
if self . peek ( ) . tokenKind == . integerLiteral {
174
- argument = RawSyntax ( self . parseAvailabilitySpecList ( from: . available) )
174
+ argument = . availability ( self . parseAvailabilitySpecList ( from: . available) )
175
175
} else if self . peek ( ) . tokenKind == . floatingLiteral {
176
- argument = RawSyntax ( self . parseAvailabilitySpecList ( from: . available) )
176
+ argument = . availability ( self . parseAvailabilitySpecList ( from: . available) )
177
177
} else {
178
- argument = RawSyntax ( self . parseExtendedAvailabilitySpecList ( ) )
178
+ argument = . availability ( self . parseExtendedAvailabilitySpecList ( ) )
179
179
}
180
180
}
181
181
let ( unexpectedBeforeRightParen, rightParen) = self . expect ( . rightParen)
@@ -211,7 +211,7 @@ extension Parser {
211
211
attributeName: differentiable,
212
212
unexpectedBeforeLeftParen,
213
213
leftParen: leftParen,
214
- argument: RawSyntax ( argument) ,
214
+ argument: . differentiableArguments ( argument) ,
215
215
unexpectedBeforeRightParen,
216
216
rightParen: rightParen,
217
217
tokenList: nil ,
@@ -266,14 +266,18 @@ extension Parser {
266
266
267
267
guard let leftParen = self . consume ( if: . leftParen) else {
268
268
// If no opening '(' for parameter list, parse a single parameter.
269
- let param = self . parseDifferentiabilityParameter ( ) . map ( RawSyntax . init ( _: ) )
270
- ?? RawSyntax ( RawMissingSyntax ( arena: self . arena) )
269
+ let param = self . parseDifferentiabilityParameter ( )
270
+ ?? RawDifferentiabilityParamSyntax (
271
+ parameter: . name( missingToken ( . identifier) ) ,
272
+ trailingComma: nil ,
273
+ arena: self . arena
274
+ )
271
275
return RawDifferentiabilityParamsClauseSyntax (
272
276
unexpectedBeforeWrt,
273
277
wrtLabel: wrt,
274
278
unexpectedBeforeColon,
275
279
colon: colon,
276
- parameters: param,
280
+ parameters: . parameter ( param) ,
277
281
arena: self . arena
278
282
)
279
283
}
@@ -300,7 +304,7 @@ extension Parser {
300
304
wrtLabel: wrt,
301
305
unexpectedBeforeColon,
302
306
colon: colon,
303
- parameters: RawSyntax ( list) ,
307
+ parameters: . parameterList ( list) ,
304
308
arena: self . arena
305
309
)
306
310
}
@@ -334,17 +338,17 @@ extension Parser {
334
338
let token = self . eat ( handle)
335
339
let comma = self . consume ( if: . comma)
336
340
return RawDifferentiabilityParamSyntax (
337
- parameter: RawSyntax ( token) , trailingComma: comma, arena: self . arena)
341
+ parameter: . name ( token) , trailingComma: comma, arena: self . arena)
338
342
case ( . integerLiteral, let handle) ? :
339
343
let token = self . eat ( handle)
340
344
let comma = self . consume ( if: . comma)
341
345
return RawDifferentiabilityParamSyntax (
342
- parameter: RawSyntax ( token) , trailingComma: comma, arena: self . arena)
346
+ parameter: . index ( token) , trailingComma: comma, arena: self . arena)
343
347
case ( . selfKeyword, let handle) ? :
344
348
let token = self . eat ( handle)
345
349
let comma = self . consume ( if: . comma)
346
350
return RawDifferentiabilityParamSyntax (
347
- parameter: RawSyntax ( token) ,
351
+ parameter: . self ( token) ,
348
352
trailingComma: comma,
349
353
arena: self . arena
350
354
)
@@ -370,7 +374,7 @@ extension Parser {
370
374
attributeName: derivative,
371
375
unexpectedBeforeLeftParen,
372
376
leftParen: leftParen,
373
- argument: RawSyntax ( argument) ,
377
+ argument: . derivativeRegistrationArguments ( argument) ,
374
378
unexpectedBeforeRightParen,
375
379
rightParen: rightParen,
376
380
tokenList: nil ,
@@ -392,7 +396,7 @@ extension Parser {
392
396
attributeName: transpose,
393
397
unexpectedBeforeLeftParen,
394
398
leftParen: leftParen,
395
- argument: RawSyntax ( argument) ,
399
+ argument: . derivativeRegistrationArguments ( argument) ,
396
400
unexpectedBeforeRightParen,
397
401
rightParen: rightParen,
398
402
tokenList: nil ,
@@ -456,7 +460,7 @@ extension Parser {
456
460
unexpectedBeforeObjc,
457
461
attributeName: objc,
458
462
leftParen: leftParen,
459
- argument: argument. map ( RawSyntax . init ) ,
463
+ argument: argument. map ( { . objCName ( $0 ) } ) ,
460
464
unexpectedBeforeRightParen,
461
465
rightParen: rightParen,
462
466
tokenList: nil ,
@@ -515,7 +519,7 @@ extension Parser {
515
519
attributeName: specializeToken,
516
520
unexpectedBeforeLeftParen,
517
521
leftParen: leftParen,
518
- argument: RawSyntax ( argument) ,
522
+ argument: . specializeArguments ( argument) ,
519
523
unexpectedBeforeRightParen,
520
524
rightParen: rightParen,
521
525
tokenList: nil ,
@@ -542,7 +546,7 @@ extension Parser {
542
546
let ( unexpectedBeforeColon, colon) = self . expect ( . colon)
543
547
let ( targetFunction, args) = self . parseDeclNameRef ( [ . zeroArgCompoundNames, . keywordsUsingSpecialNames, . operators ] )
544
548
let declName = RawDeclNameSyntax (
545
- declBaseName: RawSyntax ( targetFunction) ,
549
+ declBaseName: . identifier ( targetFunction) ,
546
550
declNameArguments: args,
547
551
arena: self . arena)
548
552
let comma = self . consume ( if: . comma)
@@ -665,12 +669,12 @@ extension Parser {
665
669
attributeName: privateToken,
666
670
unexpectedBeforeLeftParen,
667
671
leftParen: leftParen,
668
- argument: RawSyntax ( RawNamedAttributeStringArgumentSyntax (
672
+ argument: . namedAttributeString ( RawNamedAttributeStringArgumentSyntax (
669
673
unexpectedBeforeLabel,
670
674
nameTok: label,
671
675
unexpectedBeforeColon,
672
676
colon: colon,
673
- stringOrDeclname: RawSyntax ( filename) ,
677
+ stringOrDeclname: . string ( filename) ,
674
678
arena: self . arena
675
679
) ) ,
676
680
unexpectedBeforeRightParen,
@@ -697,7 +701,7 @@ extension Parser {
697
701
. zeroArgCompoundNames, . keywordsUsingSpecialNames, . operators,
698
702
] )
699
703
}
700
- let method = RawDeclNameSyntax ( declBaseName: RawSyntax ( base) , declNameArguments: args, arena: self . arena)
704
+ let method = RawDeclNameSyntax ( declBaseName: . identifier ( base) , declNameArguments: args, arena: self . arena)
701
705
let ( unexpectedBeforeRightParen, rightParen) = self . expect ( . rightParen)
702
706
return RawAttributeSyntax (
703
707
unexpectedBeforeAtSign,
@@ -706,12 +710,12 @@ extension Parser {
706
710
attributeName: dynamicReplacementToken,
707
711
unexpectedBeforeLeftParen,
708
712
leftParen: leftParen,
709
- argument: RawSyntax ( RawNamedAttributeStringArgumentSyntax (
713
+ argument: . namedAttributeString ( RawNamedAttributeStringArgumentSyntax (
710
714
unexpectedBeforeLabel,
711
715
nameTok: label,
712
716
unexpectedBeforeColon,
713
717
colon: colon,
714
- stringOrDeclname: RawSyntax ( method) ,
718
+ stringOrDeclname: . declname ( method) ,
715
719
arena: self . arena
716
720
) ) ,
717
721
unexpectedBeforeRightParen,
@@ -735,7 +739,7 @@ extension Parser {
735
739
attributeName: spiToken,
736
740
unexpectedBeforeLeftParen,
737
741
leftParen: leftParen,
738
- argument: RawSyntax ( label) ,
742
+ argument: . identifier ( label) ,
739
743
unexpectedBeforeRightParen,
740
744
rightParen: rightParen,
741
745
tokenList: nil ,
@@ -757,7 +761,7 @@ extension Parser {
757
761
attributeName: spiToken,
758
762
unexpectedBeforeLeftParen,
759
763
leftParen: leftParen,
760
- argument: RawSyntax ( label) ,
764
+ argument: . implementsArguments ( label) ,
761
765
unexpectedBeforeRightParen,
762
766
rightParen: rightParen,
763
767
tokenList: nil ,
@@ -810,7 +814,7 @@ extension Parser {
810
814
attributeName: semanticsToken,
811
815
unexpectedBeforeLeftParen,
812
816
leftParen: leftParen,
813
- argument: RawSyntax ( label) ,
817
+ argument: . stringExpr ( label) ,
814
818
unexpectedBeforeRightParen,
815
819
rightParen: rightParen,
816
820
tokenList: nil ,
@@ -819,11 +823,11 @@ extension Parser {
819
823
}
820
824
821
825
extension Parser {
822
- mutating func parseConventionArguments( ) -> RawSyntax {
826
+ mutating func parseConventionArguments( ) -> RawAttributeSyntax . Argument {
823
827
if let witnessMethod = self . consumeIfContextualKeyword ( " witness_method " ) {
824
828
let ( unexpectedBeforeColon, colon) = self . expect ( . colon)
825
829
let name = self . parseAnyIdentifier ( )
826
- return RawSyntax ( RawConventionWitnessMethodAttributeArgumentsSyntax (
830
+ return . conventionWitnessMethodArguments ( RawConventionWitnessMethodAttributeArgumentsSyntax (
827
831
witnessMethodLabel: witnessMethod,
828
832
unexpectedBeforeColon,
829
833
colon: colon,
@@ -852,7 +856,7 @@ extension Parser {
852
856
unexpectedBeforeCTypeString = nil
853
857
cTypeString = nil
854
858
}
855
- return RawSyntax ( RawConventionAttributeArgumentsSyntax (
859
+ return . conventionArguments ( RawConventionAttributeArgumentsSyntax (
856
860
conventionLabel: label,
857
861
unexpectedBeforeComma,
858
862
comma: comma,
0 commit comments