Skip to content

Commit c5e4ef3

Browse files
committed
Refactor tryLexRegexLiteral
1 parent a728bd2 commit c5e4ef3

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

Sources/SwiftParser/Lexer/Cursor.swift

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -678,14 +678,16 @@ extension Lexer.Cursor {
678678
}
679679

680680
// Try lex a regex literal.
681-
if let token = self.tryLexRegexLiteral(tokenStart: start, sourceBufferStart: sourceBufferStart) {
681+
if let token = start.tryLexRegexLiteral(sourceBufferStart: sourceBufferStart) {
682+
self = start
682683
return Lexer.Result(token)
683684
}
684685
// Otherwise try lex a magic pound literal.
685686
return self.lexMagicPoundLiteral()
686687
case UInt8(ascii: "/"):
687688
// Try lex a regex literal.
688-
if let token = self.tryLexRegexLiteral(tokenStart: start, sourceBufferStart: sourceBufferStart) {
689+
if let token = start.tryLexRegexLiteral(sourceBufferStart: sourceBufferStart) {
690+
self = start
689691
return Lexer.Result(token)
690692
}
691693

@@ -2182,15 +2184,12 @@ extension Lexer.Cursor {
21822184
}
21832185

21842186
extension Lexer.Cursor {
2185-
mutating func tryLexRegexLiteral(
2186-
tokenStart tokStart: Lexer.Cursor,
2187-
sourceBufferStart: Lexer.Cursor
2188-
) -> RawTokenKind? {
2189-
guard !tokStart.isLeftBound(sourceBufferStart: sourceBufferStart) else {
2187+
mutating func tryLexRegexLiteral(sourceBufferStart: Lexer.Cursor) -> RawTokenKind? {
2188+
guard !self.isLeftBound(sourceBufferStart: sourceBufferStart) else {
21902189
return nil
21912190
}
21922191

2193-
var tmp = tokStart
2192+
var tmp = self
21942193
var poundCount = 0
21952194
var parenCount = 0
21962195

@@ -2220,15 +2219,12 @@ extension Lexer.Cursor {
22202219
switch tmp.peek() {
22212220
case UInt8(ascii: " "), UInt8(ascii: "\t"):
22222221
_ = tmp.advance()
2223-
continue
22242222
case UInt8(ascii: "\n"), UInt8(ascii: "\r"):
22252223
isMultiline = true
2226-
case nil:
22272224
break LOOP
2228-
case .some:
2229-
break
2225+
default:
2226+
break LOOP
22302227
}
2231-
break
22322228
}
22332229

22342230
var escaped = false
@@ -2297,7 +2293,7 @@ extension Lexer.Cursor {
22972293
parenCount -= 1
22982294

22992295
default:
2300-
continue DELIMITLOOP
2296+
break
23012297
}
23022298
}
23032299

0 commit comments

Comments
 (0)