Skip to content

Commit 525e8b1

Browse files
committed
Rename 'greedy' to 'eager'
1 parent d90f91b commit 525e8b1

File tree

9 files changed

+52
-52
lines changed

9 files changed

+52
-52
lines changed

Sources/_MatchingEngine/Regex/AST/Quantification.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ extension AST {
2929
}
3030

3131
public enum Kind: String, Hashable {
32-
case greedy = ""
32+
case eager = ""
3333
case reluctant = "?"
3434
case possessive = "+"
3535
}
@@ -69,7 +69,7 @@ extension AST.Quantification.Kind: _ASTPrintable {
6969
public var _printBase: String { rawValue }
7070
public var _dumpBase: String {
7171
switch self {
72-
case .greedy: return "greedy"
72+
case .eager: return "eager"
7373
case .reluctant: return "reluctant"
7474
case .possessive: return "possessive"
7575
}

Sources/_MatchingEngine/Regex/Parse/LexicalAnalysis.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ extension Source {
281281
let kind: Located<Quant.Kind> = recordLoc { src in
282282
if src.tryEat("?") { return .reluctant }
283283
if src.tryEat("+") { return .possessive }
284-
return .greedy
284+
return .eager
285285
}
286286

287287
return (amt, kind)

Sources/_StringProcessing/ASTBuilder.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,53 +88,53 @@ public func atomicScriptRun(_ child: AST) -> AST {
8888

8989
func quant(
9090
_ amount: AST.Quantification.Amount,
91-
_ kind: AST.Quantification.Kind = .greedy,
91+
_ kind: AST.Quantification.Kind = .eager,
9292
_ child: AST
9393
) -> AST {
9494
.quantification(.init(
9595
.init(faking: amount), .init(faking: kind), child, .fake))
9696
}
9797
func zeroOrMore(
98-
_ kind: AST.Quantification.Kind = .greedy,
98+
_ kind: AST.Quantification.Kind = .eager,
9999
_ child: AST
100100
) -> AST {
101101
quant(.zeroOrMore, kind, child)
102102
}
103103
func zeroOrOne(
104-
_ kind: AST.Quantification.Kind = .greedy,
104+
_ kind: AST.Quantification.Kind = .eager,
105105
_ child: AST
106106
) -> AST {
107107
quant(.zeroOrOne, kind, child)
108108
}
109109
func oneOrMore(
110-
_ kind: AST.Quantification.Kind = .greedy,
110+
_ kind: AST.Quantification.Kind = .eager,
111111
_ child: AST
112112
) -> AST {
113113
quant(.oneOrMore, kind, child)
114114
}
115115
func exactly(
116-
_ kind: AST.Quantification.Kind = .greedy,
116+
_ kind: AST.Quantification.Kind = .eager,
117117
_ i: Int,
118118
_ child: AST
119119
) -> AST {
120120
quant(.exactly(.init(faking: i)), kind, child)
121121
}
122122
func nOrMore(
123-
_ kind: AST.Quantification.Kind = .greedy,
123+
_ kind: AST.Quantification.Kind = .eager,
124124
_ i: Int,
125125
_ child: AST
126126
) -> AST {
127127
quant(.nOrMore(.init(faking: i)), kind, child)
128128
}
129129
func upToN(
130-
_ kind: AST.Quantification.Kind = .greedy,
130+
_ kind: AST.Quantification.Kind = .eager,
131131
_ i: Int,
132132
_ child: AST
133133
) -> AST {
134134
quant(.upToN(.init(faking: i)), kind, child)
135135
}
136136
func quantRange(
137-
_ kind: AST.Quantification.Kind = .greedy,
137+
_ kind: AST.Quantification.Kind = .eager,
138138
_ r: ClosedRange<Int>,
139139
_ child: AST
140140
) -> AST {

Sources/_StringProcessing/Compiler.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class Compiler {
153153
// <code for component>
154154
// branch start
155155
// end:
156-
case (.zeroOrMore, .greedy):
156+
case (.zeroOrMore, .eager):
157157
let end = builder.makeAddress()
158158
let start = builder.makeAddress()
159159
builder.label(start)
@@ -168,7 +168,7 @@ class Compiler {
168168
// save end
169169
// branch element
170170
// end:
171-
case (.oneOrMore, .greedy):
171+
case (.oneOrMore, .eager):
172172
let element = builder.makeAddress()
173173
let end = builder.makeAddress()
174174
builder.label(element)
@@ -181,7 +181,7 @@ class Compiler {
181181
// save end
182182
// <code for component>
183183
// end:
184-
case (.zeroOrOne, .greedy):
184+
case (.zeroOrOne, .eager):
185185
let end = builder.makeAddress()
186186
builder.buildSave(end)
187187
try emit(child)

Sources/_StringProcessing/Legacy/LegacyCompile.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func compile(
8080
case .quantification(let quant):
8181
let child = quant.child
8282
switch (quant.amount.value, quant.kind.value) {
83-
case (.zeroOrMore, .greedy):
83+
case (.zeroOrMore, .eager):
8484
// a* ==> L_START, <split L_DONE>, a, goto L_START, L_DONE
8585
let childHasCaptures = child.hasCapture
8686
if childHasCaptures {
@@ -122,7 +122,7 @@ func compile(
122122
}
123123
return
124124

125-
case (.zeroOrOne, .greedy):
125+
case (.zeroOrOne, .eager):
126126
// a? ==> <split L_DONE> a, L_DONE
127127
if child.hasCapture {
128128
instructions.append(.beginGroup)
@@ -176,7 +176,7 @@ func compile(
176176
}
177177
return
178178

179-
case (.oneOrMore, .greedy):
179+
case (.oneOrMore, .eager):
180180
// a+ ==> L_START, a, <split L_DONE>, goto L_START, L_DONE
181181
let childHasCaptures = child.hasCapture
182182
if childHasCaptures {

Sources/_StringProcessing/RegexDSL/DSL.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public struct OneOrMore<Component: RegexProtocol>: RegexProtocol {
5353

5454
public init(_ component: Component) {
5555
self.regex = .init(ast:
56-
oneOrMore(.greedy, component.regex.ast)
56+
oneOrMore(.eager, component.regex.ast)
5757
)
5858
}
5959

@@ -75,7 +75,7 @@ public struct Repeat<Component: RegexProtocol>: RegexProtocol {
7575

7676
public init(_ component: Component) {
7777
self.regex = .init(ast:
78-
zeroOrMore(.greedy, component.regex.ast))
78+
zeroOrMore(.eager, component.regex.ast))
7979
}
8080

8181
public init(@RegexBuilder _ content: () -> Component) {
@@ -96,7 +96,7 @@ public struct Optionally<Component: RegexProtocol>: RegexProtocol {
9696

9797
public init(_ component: Component) {
9898
self.regex = .init(ast:
99-
zeroOrOne(.greedy, component.regex.ast))
99+
zeroOrOne(.eager, component.regex.ast))
100100
}
101101

102102
public init(@RegexBuilder _ content: () -> Component) {

Tests/RegexTests/LegacyTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ extension RegexTests {
377377
expectedCaptureType: (Substring, Substring).self,
378378
expecting: .init(captures: ("bb", "d"), capturesEqual: ==))
379379

380-
// Greedy vs lazy quantifiers
380+
// Eager vs reluctant quantifiers
381381
performTest(
382382
regex: "a(.*)(c+).*(e+)", input: "abbbbccccddddeeee",
383383
expectedCaptureType: (Substring, Substring, Substring).self,

Tests/RegexTests/ParseTests.swift

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ extension RegexTests {
7676
"abc", concat("a", "b", "c"))
7777
parseTest(
7878
#"abc\+d*"#,
79-
concat("a", "b", "c", "+", zeroOrMore(.greedy, "d")))
79+
concat("a", "b", "c", "+", zeroOrMore(.eager, "d")))
8080
parseTest(
8181
"a(b)", concat("a", capture("b")))
8282
parseTest(
@@ -85,30 +85,30 @@ extension RegexTests {
8585
concat(
8686
"a", "b", "c",
8787
oneOrMore(
88-
.greedy, nonCapture(concat("d", "e"))),
89-
"f", "g", "h", zeroOrMore(.greedy, "i"), "k"),
88+
.eager, nonCapture(concat("d", "e"))),
89+
"f", "g", "h", zeroOrMore(.eager, "i"), "k"),
9090
"j"))
9191
parseTest(
9292
"a(?:b|c)?d",
9393
concat("a", zeroOrOne(
94-
.greedy, nonCapture(alt("b", "c"))), "d"))
94+
.eager, nonCapture(alt("b", "c"))), "d"))
9595
parseTest(
9696
"a?b??c+d+?e*f*?",
9797
concat(
98-
zeroOrOne(.greedy, "a"), zeroOrOne(.reluctant, "b"),
99-
oneOrMore(.greedy, "c"), oneOrMore(.reluctant, "d"),
100-
zeroOrMore(.greedy, "e"), zeroOrMore(.reluctant, "f")))
98+
zeroOrOne(.eager, "a"), zeroOrOne(.reluctant, "b"),
99+
oneOrMore(.eager, "c"), oneOrMore(.reluctant, "d"),
100+
zeroOrMore(.eager, "e"), zeroOrMore(.reluctant, "f")))
101101
parseTest(
102102
"a|b?c",
103-
alt("a", concat(zeroOrOne(.greedy, "b"), "c")))
103+
alt("a", concat(zeroOrOne(.eager, "b"), "c")))
104104
parseTest(
105105
"(a|b)c",
106106
concat(capture(alt("a", "b")), "c"))
107107
parseTest(
108108
"(.)*(.*)",
109109
concat(
110-
zeroOrMore(.greedy, capture(atom(.any))),
111-
capture(zeroOrMore(.greedy, atom(.any)))))
110+
zeroOrMore(.eager, capture(atom(.any))),
111+
capture(zeroOrMore(.eager, atom(.any)))))
112112
parseTest(
113113
#"abc\d"#,
114114
concat("a", "b", "c", escaped(.decimalDigit)))
@@ -225,7 +225,7 @@ extension RegexTests {
225225

226226
parseTest(
227227
#"[a[bc]de&&[^bc]\d]+"#,
228-
oneOrMore(.greedy, charClass(
228+
oneOrMore(.eager, charClass(
229229
.setOperation(
230230
["a", charClass("b", "c"), "d", "e"],
231231
.init(faking: .intersection),
@@ -254,13 +254,13 @@ extension RegexTests {
254254
parseTest(
255255
"a&&b", concat("a", "&", "&", "b"))
256256
parseTest(
257-
"&?", zeroOrOne(.greedy, "&"))
257+
"&?", zeroOrOne(.eager, "&"))
258258
parseTest(
259-
"&&?", concat("&", zeroOrOne(.greedy, "&")))
259+
"&&?", concat("&", zeroOrOne(.eager, "&")))
260260
parseTest(
261-
"--+", concat("-", oneOrMore(.greedy, "-")))
261+
"--+", concat("-", oneOrMore(.eager, "-")))
262262
parseTest(
263-
"~~*", concat("~", zeroOrMore(.greedy, "~")))
263+
"~~*", concat("~", zeroOrMore(.eager, "~")))
264264

265265
// MARK: Quotes
266266

@@ -284,16 +284,16 @@ extension RegexTests {
284284

285285
parseTest(
286286
#"a{1,2}"#,
287-
quantRange(.greedy, 1...2, "a"))
287+
quantRange(.eager, 1...2, "a"))
288288
parseTest(
289289
#"a{,2}"#,
290-
upToN(.greedy, 2, "a"))
290+
upToN(.eager, 2, "a"))
291291
parseTest(
292292
#"a{2,}"#,
293-
nOrMore(.greedy, 2, "a"))
293+
nOrMore(.eager, 2, "a"))
294294
parseTest(
295295
#"a{1}"#,
296-
exactly(.greedy, 1, "a"))
296+
exactly(.eager, 1, "a"))
297297
parseTest(
298298
#"a{1,2}?"#,
299299
quantRange(.reluctant, 1...2, "a"))
@@ -369,12 +369,12 @@ extension RegexTests {
369369
parseTest(#"[\N{abc}]"#, charClass(atom_m(.namedCharacter("abc"))))
370370
parseTest(
371371
#"\N{abc}+"#,
372-
oneOrMore(.greedy,
372+
oneOrMore(.eager,
373373
atom(.namedCharacter("abc"))))
374374
parseTest(
375375
#"\N {2}"#,
376376
concat(atom(.escaped(.notNewline)),
377-
exactly(.greedy, 2, " ")))
377+
exactly(.eager, 2, " ")))
378378

379379
parseTest(#"\N{AA}"#, atom(.namedCharacter("AA")))
380380
parseTest(#"\N{U+AA}"#, scalar("\u{AA}"))
@@ -397,7 +397,7 @@ extension RegexTests {
397397
parseTest(#"[\p{C}]"#, charClass(prop_m(.generalCategory(.other))))
398398
parseTest(
399399
#"\p{C}+"#,
400-
oneOrMore(.greedy, prop(.generalCategory(.other))))
400+
oneOrMore(.eager, prop(.generalCategory(.other))))
401401

402402
parseTest(#"\p{Lx}"#, prop(.other(key: nil, value: "Lx")))
403403
parseTest(#"\p{gcL}"#, prop(.other(key: nil, value: "gcL")))

Tests/RegexTests/SyntaxOptionsTests.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import XCTest
44

55

66
private let dplus = oneOrMore(
7-
.greedy, atom(.escaped(.decimalDigit)))
7+
.eager, atom(.escaped(.decimalDigit)))
88
private let dotAST = concat(
99
dplus, ".", dplus, ".", dplus, ".", dplus)
1010
private let dotASTQuoted = concat(
@@ -50,34 +50,34 @@ extension RegexTests {
5050
func testExperimentalRanges() {
5151
parseTest(
5252
#"a{1,2}"#,
53-
quantRange(.greedy, 1...2, "a"))
53+
quantRange(.eager, 1...2, "a"))
5454
parseTest(
5555
#"a{1...2}"#,
56-
quantRange(.greedy, 1...2, "a"),
56+
quantRange(.eager, 1...2, "a"),
5757
syntax: .experimentalRanges)
5858
parseTest(
5959
#"a{1..<3}"#,
60-
quantRange(.greedy, 1...2, "a"),
60+
quantRange(.eager, 1...2, "a"),
6161
syntax: .experimentalRanges)
6262

6363
parseTest(
6464
#"a{,2}"#,
65-
upToN(.greedy, 2, "a"))
65+
upToN(.eager, 2, "a"))
6666
parseTest(
6767
#"a{...2}"#,
68-
upToN(.greedy, 2, "a"),
68+
upToN(.eager, 2, "a"),
6969
syntax: .experimental)
7070
parseTest(
7171
#"a{..<3}"#,
72-
upToN(.greedy, 2, "a"),
72+
upToN(.eager, 2, "a"),
7373
syntax: .experimental)
7474

7575
parseTest(
7676
#"a{1,}"#,
77-
nOrMore(.greedy, 1, "a"))
77+
nOrMore(.eager, 1, "a"))
7878
parseTest(
7979
#"a{1...}"#,
80-
nOrMore(.greedy, 1, "a"),
80+
nOrMore(.eager, 1, "a"),
8181
syntax: .experimental)
8282
}
8383

0 commit comments

Comments
 (0)