Skip to content

Commit 2a5ae7d

Browse files
committed
Change LoopProgressCondition.evaluate to TokenConsumer.hasProgressed
1 parent d724849 commit 2a5ae7d

19 files changed

+103
-111
lines changed

Sources/SwiftParser/Attributes.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extension Parser {
2323
repeat {
2424
let attribute = self.parseAttribute()
2525
elements.append(attribute)
26-
} while self.at(.atSign, .poundIf) && loopProgress.evaluate(self)
26+
} while self.at(.atSign, .poundIf) && self.hasProgressed(&loopProgress)
2727
return RawAttributeListSyntax(elements: elements, arena: self.arena)
2828
}
2929
}
@@ -453,7 +453,7 @@ extension Parser {
453453

454454
var elements = [RawDifferentiabilityParamSyntax]()
455455
var loopProgress = LoopProgressCondition()
456-
while !self.at(.endOfFile, .rightParen) && loopProgress.evaluate(self) {
456+
while !self.at(.endOfFile, .rightParen) && self.hasProgressed(&loopProgress) {
457457
guard let param = self.parseDifferentiabilityParameter() else {
458458
break
459459
}
@@ -594,7 +594,7 @@ extension Parser {
594594
mutating func parseObjectiveCSelector() -> RawObjCSelectorSyntax {
595595
var elements = [RawObjCSelectorPieceSyntax]()
596596
var loopProgress = LoopProgressCondition()
597-
while loopProgress.evaluate(self) {
597+
while self.hasProgressed(&loopProgress) {
598598
// Empty selector piece.
599599
if let colon = self.consume(if: .colon) {
600600
elements.append(
@@ -676,7 +676,7 @@ extension Parser {
676676
var elements = [RawSpecializeAttributeSpecListSyntax.Element]()
677677
// Parse optional "exported" and "kind" labeled parameters.
678678
var loopProgress = LoopProgressCondition()
679-
while !self.at(.endOfFile, .rightParen, .keyword(.where)) && loopProgress.evaluate(self) {
679+
while !self.at(.endOfFile, .rightParen, .keyword(.where)) && self.hasProgressed(&loopProgress) {
680680
switch self.at(anyIn: SpecializeParameter.self) {
681681
case (.target, let handle)?:
682682
let ident = self.eat(handle)

Sources/SwiftParser/Availability.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ extension Parser {
4848
arena: self.arena
4949
)
5050
)
51-
} while keepGoing != nil && availabilityArgumentProgress.evaluate(self)
51+
} while keepGoing != nil && self.hasProgressed(&availabilityArgumentProgress)
5252
}
5353

5454
return RawAvailabilitySpecListSyntax(elements: elements, arena: self.arena)
@@ -99,7 +99,7 @@ extension Parser {
9999
var elements = [RawAvailabilityArgumentSyntax]()
100100
var keepGoing: RawTokenSyntax? = nil
101101

102-
var loopProgressCondition = LoopProgressCondition()
102+
var loopProgress = LoopProgressCondition()
103103
LOOP: repeat {
104104
let entry: RawAvailabilityArgumentSyntax.Entry
105105
switch self.at(anyIn: AvailabilityArgumentKind.self) {
@@ -176,7 +176,7 @@ extension Parser {
176176
arena: self.arena
177177
)
178178
)
179-
} while keepGoing != nil && loopProgressCondition.evaluate(self)
179+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
180180
return RawAvailabilitySpecListSyntax(elements: elements, arena: self.arena)
181181
}
182182

@@ -266,7 +266,7 @@ extension Parser {
266266
unexpectedTokens.append(unexpectedVersion)
267267
}
268268
keepGoing = self.consume(if: .period)
269-
} while keepGoing != nil && loopProgress.evaluate(self)
269+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
270270
return RawUnexpectedNodesSyntax(unexpectedTokens, arena: self.arena)
271271
}
272272

Sources/SwiftParser/Declarations.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ extension TokenConsumer {
6161

6262
var hasAttribute = false
6363
var attributeProgress = LoopProgressCondition()
64-
while attributeProgress.evaluate(subparser) && subparser.at(.atSign) {
64+
while subparser.hasProgressed(&attributeProgress) && subparser.at(.atSign) {
6565
hasAttribute = true
6666
_ = subparser.consumeAttributeList()
6767
}
@@ -71,7 +71,7 @@ extension TokenConsumer {
7171
var modifierProgress = LoopProgressCondition()
7272
while let (modifierKind, handle) = subparser.at(anyIn: DeclarationModifier.self),
7373
modifierKind != .class,
74-
modifierProgress.evaluate(subparser)
74+
subparser.hasProgressed(&modifierProgress)
7575
{
7676
hasModifier = true
7777
subparser.eat(handle)
@@ -356,7 +356,7 @@ extension Parser {
356356
arena: self.arena
357357
)
358358
)
359-
} while keepGoing != nil && loopProgress.evaluate(self)
359+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
360360
return RawImportPathSyntax(elements: elements, arena: self.arena)
361361
}
362362
}
@@ -486,7 +486,7 @@ extension Parser {
486486
arena: self.arena
487487
)
488488
)
489-
} while keepGoing != nil && loopProgress.evaluate(self)
489+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
490490
}
491491

492492
let whereClause: RawGenericWhereClauseSyntax?
@@ -692,7 +692,7 @@ extension Parser {
692692
arena: self.arena
693693
)
694694
)
695-
} while keepGoing != nil && loopProgress.evaluate(self)
695+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
696696
}
697697

698698
return RawGenericWhereClauseSyntax(
@@ -758,7 +758,7 @@ extension Parser {
758758
let (unexpectedBeforeLBrace, lbrace) = self.expect(.leftBrace)
759759
do {
760760
var loopProgress = LoopProgressCondition()
761-
while !self.at(.endOfFile, .rightBrace) && loopProgress.evaluate(self) {
761+
while !self.at(.endOfFile, .rightBrace) && self.hasProgressed(&loopProgress) {
762762
let newItemAtStartOfLine = self.atStartOfLine
763763
guard let newElement = self.parseMemberDeclListItem() else {
764764
break
@@ -858,7 +858,7 @@ extension Parser {
858858
arena: self.arena
859859
)
860860
)
861-
} while keepGoing != nil && loopProgress.evaluate(self)
861+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
862862
}
863863

864864
return RawEnumCaseDeclSyntax(
@@ -1376,7 +1376,7 @@ extension Parser {
13761376
arena: self.arena
13771377
)
13781378
)
1379-
} while keepGoing != nil && loopProgress.evaluate(self)
1379+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
13801380
}
13811381

13821382
return RawVariableDeclSyntax(
@@ -1521,7 +1521,7 @@ extension Parser {
15211521
var elements = [RawAccessorDeclSyntax]()
15221522
do {
15231523
var loopProgress = LoopProgressCondition()
1524-
while !self.at(.endOfFile, .rightBrace) && loopProgress.evaluate(self) {
1524+
while !self.at(.endOfFile, .rightBrace) && self.hasProgressed(&loopProgress) {
15251525
guard let introducer = self.parseAccessorIntroducer() else {
15261526
// There can only be an implicit getter if no other accessors were
15271527
// seen before this one.
@@ -1741,7 +1741,7 @@ extension Parser {
17411741
while (identifiersAfterOperatorName.last ?? name).trailingTriviaByteLength == 0,
17421742
self.currentToken.leadingTriviaByteLength == 0,
17431743
!self.at(.colon, .leftBrace, .endOfFile),
1744-
loopProgress.evaluate(self)
1744+
self.hasProgressed(&loopProgress)
17451745
{
17461746
identifiersAfterOperatorName.append(consumeAnyToken())
17471747
}
@@ -1888,7 +1888,7 @@ extension Parser {
18881888
var elements = [RawPrecedenceGroupAttributeListSyntax.Element]()
18891889
do {
18901890
var attributesProgress = LoopProgressCondition()
1891-
LOOP: while !self.at(.endOfFile, .rightBrace) && attributesProgress.evaluate(self) {
1891+
LOOP: while !self.at(.endOfFile, .rightBrace) && self.hasProgressed(&attributesProgress) {
18921892
switch self.at(anyIn: LabelText.self) {
18931893
case (.associativity, let handle)?:
18941894
let associativity = self.eat(handle)
@@ -1952,7 +1952,7 @@ extension Parser {
19521952
arena: self.arena
19531953
)
19541954
)
1955-
} while keepGoing != nil && namesProgress.evaluate(self)
1955+
} while keepGoing != nil && self.hasProgressed(&namesProgress)
19561956
}
19571957
elements.append(
19581958
.precedenceGroupRelation(

Sources/SwiftParser/Directives.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ extension Parser {
121121

122122
// Proceed to parse #if continuation clauses (#elseif, #else, check #elif typo, #endif)
123123
var loopProgress = LoopProgressCondition()
124-
LOOP: while let (match, handle) = self.canRecoverTo(anyIn: IfConfigContinuationClauseStartKeyword.self), loopProgress.evaluate(self) {
124+
LOOP: while let (match, handle) = self.canRecoverTo(anyIn: IfConfigContinuationClauseStartKeyword.self), self.hasProgressed(&loopProgress) {
125125
var unexpectedBeforePound: RawUnexpectedNodesSyntax?
126126
var pound: RawTokenSyntax
127127
let condition: RawExprSyntax?
@@ -207,7 +207,7 @@ extension Parser {
207207
while !self.at(.endOfFile)
208208
&& !self.at(.poundElse, .poundElseif, .poundEndif)
209209
&& !self.atElifTypo()
210-
&& elementsProgress.evaluate(self)
210+
&& self.hasProgressed(&elementsProgress)
211211
{
212212
let newItemAtStartOfLine = self.atStartOfLine
213213
guard let element = parseElement(&self, elements.isEmpty), !element.isEmpty else {

Sources/SwiftParser/Expressions.swift

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ extension Parser {
151151
pattern: pattern
152152
)
153153

154-
var loopCondition = LoopProgressCondition()
155-
while loopCondition.evaluate(self) {
154+
var loopProgress = LoopProgressCondition()
155+
while self.hasProgressed(&loopProgress) {
156156
guard
157157
!lastElement.is(RawMissingExprSyntax.self),
158158
!(forDirective && self.atStartOfLine)
@@ -806,8 +806,8 @@ extension Parser {
806806
) -> RawExprSyntax {
807807
// Handle suffix expressions.
808808
var leadingExpr = start
809-
var loopCondition = LoopProgressCondition()
810-
while loopCondition.evaluate(self) {
809+
var loopProgress = LoopProgressCondition()
810+
while self.hasProgressed(&loopProgress) {
811811
if forDirective && self.atStartOfLine {
812812
return leadingExpr
813813
}
@@ -964,7 +964,7 @@ extension Parser {
964964
while !backtrack.at(.endOfFile) && !backtrack.currentToken.isAtStartOfLine {
965965
backtrack.skipSingle()
966966
}
967-
} while backtrack.at(.poundIf) && loopProgress.evaluate(backtrack)
967+
} while backtrack.at(.poundIf) && backtrack.hasProgressed(&loopProgress)
968968

969969
guard backtrack.isAtStartOfPostfixExprSuffix() else {
970970
break
@@ -1077,8 +1077,8 @@ extension Parser {
10771077
}
10781078

10791079
var components: [RawKeyPathComponentSyntax] = []
1080-
var loopCondition = LoopProgressCondition()
1081-
while loopCondition.evaluate(self) {
1080+
var loopProgress = LoopProgressCondition()
1081+
while self.hasProgressed(&loopProgress) {
10821082
// Check for a [] or .[] suffix. The latter is only permitted when there
10831083
// are no components.
10841084
if self.at(TokenSpec(.leftSquare, allowAtStartOfLine: false))
@@ -1683,8 +1683,8 @@ extension Parser {
16831683
var elementKind: CollectionKind? = nil
16841684
var elements = [RawSyntax]()
16851685
do {
1686-
var collectionLoopCondition = LoopProgressCondition()
1687-
COLLECTION_LOOP: while collectionLoopCondition.evaluate(self) {
1686+
var collectionProgress = LoopProgressCondition()
1687+
COLLECTION_LOOP: while self.hasProgressed(&collectionProgress) {
16881688
elementKind = self.parseCollectionElement(elementKind)
16891689

16901690
// Parse the ',' if exists.
@@ -1928,7 +1928,7 @@ extension Parser {
19281928
arena: self.arena
19291929
)
19301930
)
1931-
} while keepGoing != nil && loopProgress.evaluate(self)
1931+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
19321932
}
19331933
// We were promised a right square bracket, so we're going to get it.
19341934
var unexpectedNodes = [RawSyntax]()
@@ -1983,7 +1983,7 @@ extension Parser {
19831983
arena: self.arena
19841984
)
19851985
)
1986-
} while keepGoing != nil && loopProgress.evaluate(self)
1986+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
19871987
}
19881988

19891989
parameterClause = .simpleInput(RawClosureParamListSyntax(elements: params, arena: self.arena))
@@ -2122,7 +2122,7 @@ extension Parser {
21222122
arena: self.arena
21232123
)
21242124
)
2125-
} while keepGoing != nil && loopProgress.evaluate(self)
2125+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
21262126
return result
21272127
}
21282128
}
@@ -2143,7 +2143,7 @@ extension Parser {
21432143
// Parse labeled trailing closures.
21442144
var elements = [RawMultipleTrailingClosureElementSyntax]()
21452145
var loopProgress = LoopProgressCondition()
2146-
while self.withLookahead({ $0.isStartOfLabelledTrailingClosure() }) && loopProgress.evaluate(self) {
2146+
while self.withLookahead({ $0.isStartOfLabelledTrailingClosure() }) && self.hasProgressed(&loopProgress) {
21472147
let (unexpectedBeforeLabel, label) = self.parseArgumentLabel()
21482148
let (unexpectedBeforeColon, colon) = self.expect(.colon)
21492149
let closure = self.parseClosureExpression()
@@ -2240,7 +2240,7 @@ extension Parser.Lookahead {
22402240
var loopProgress = LoopProgressCondition()
22412241
while !backtrack.at(.endOfFile, .rightBrace)
22422242
&& !backtrack.at(.poundEndif, .poundElse, .poundElseif)
2243-
&& loopProgress.evaluate(backtrack)
2243+
&& backtrack.hasProgressed(&loopProgress)
22442244
{
22452245
backtrack.skipSingle()
22462246
}
@@ -2392,7 +2392,7 @@ extension Parser {
23922392
var elements = [RawSwitchCaseListSyntax.Element]()
23932393
var elementsProgress = LoopProgressCondition()
23942394
while !self.at(.endOfFile, .rightBrace) && !self.at(.poundEndif, .poundElseif, .poundElse)
2395-
&& elementsProgress.evaluate(self)
2395+
&& self.hasProgressed(&elementsProgress)
23962396
{
23972397
if self.withLookahead({ $0.isAtStartOfSwitchCase(allowRecovery: false) }) {
23982398
elements.append(.switchCase(self.parseSwitchCase()))
@@ -2556,7 +2556,7 @@ extension Parser {
25562556
arena: self.arena
25572557
)
25582558
)
2559-
} while keepGoing != nil && loopProgress.evaluate(self)
2559+
} while keepGoing != nil && self.hasProgressed(&loopProgress)
25602560
}
25612561
let (unexpectedBeforeColon, colon) = self.expect(.colon)
25622562
return RawSwitchCaseLabelSyntax(
@@ -2669,7 +2669,7 @@ extension Parser.Lookahead {
26692669
mutating func consumeEffectsSpecifiers() {
26702670
var loopProgress = LoopProgressCondition()
26712671
while let (_, handle) = self.at(anyIn: EffectSpecifier.self),
2672-
loopProgress.evaluate(self)
2672+
self.hasProgressed(&loopProgress)
26732673
{
26742674
self.eat(handle)
26752675
}
@@ -2679,7 +2679,7 @@ extension Parser.Lookahead {
26792679
// Consume attributes.
26802680
var lookahead = self.lookahead()
26812681
var attributesProgress = LoopProgressCondition()
2682-
while let _ = lookahead.consume(if: .atSign), attributesProgress.evaluate(lookahead) {
2682+
while let _ = lookahead.consume(if: .atSign), lookahead.hasProgressed(&attributesProgress) {
26832683
guard lookahead.at(.identifier) else {
26842684
break
26852685
}
@@ -2699,7 +2699,7 @@ extension Parser.Lookahead {
26992699

27002700
// While we don't have '->' or ')', eat balanced tokens.
27012701
var skipProgress = LoopProgressCondition()
2702-
while !lookahead.at(.endOfFile, .rightParen) && skipProgress.evaluate(lookahead) {
2702+
while !lookahead.at(.endOfFile, .rightParen) && lookahead.hasProgressed(&skipProgress) {
27032703
lookahead.skipSingle()
27042704
}
27052705

@@ -2722,7 +2722,7 @@ extension Parser.Lookahead {
27222722
lookahead.consumeAnyToken()
27232723

27242724
var parametersProgress = LoopProgressCondition()
2725-
while lookahead.consume(if: .comma) != nil && parametersProgress.evaluate(lookahead) {
2725+
while lookahead.consume(if: .comma) != nil && lookahead.hasProgressed(&parametersProgress) {
27262726
if lookahead.at(.identifier) || lookahead.at(.wildcard) {
27272727
lookahead.consumeAnyToken()
27282728
continue

Sources/SwiftParser/Lookahead.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ extension Parser.Lookahead {
226226
self.skipUntilEndOfLine()
227227

228228
var attributesLoopProgress = LoopProgressCondition()
229-
ATTRIBUTE_LOOP: while attributesLoopProgress.evaluate(self) {
229+
ATTRIBUTE_LOOP: while self.hasProgressed(&attributesLoopProgress) {
230230
switch self.currentToken.rawTokenKind {
231231
case .atSign:
232232
didSeeAnyAttributes = true
@@ -237,7 +237,7 @@ extension Parser.Lookahead {
237237
break ATTRIBUTE_LOOP
238238
}
239239
}
240-
} while self.at(.poundElseif, .poundElse) && poundIfLoopProgress.evaluate(self)
240+
} while self.at(.poundElseif, .poundElse) && self.hasProgressed(&poundIfLoopProgress)
241241

242242
return didSeeAnyAttributes && self.atStartOfLine && self.consume(if: .poundEndif) != nil
243243
}

0 commit comments

Comments
 (0)