Skip to content

Commit 692f0fd

Browse files
committed
Remove obsolete CharacterClass model computation
This is now done from the DSLTree.
1 parent 5a52d53 commit 692f0fd

File tree

1 file changed

+0
-75
lines changed

1 file changed

+0
-75
lines changed

Sources/_StringProcessing/CharacterClass.swift

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -319,21 +319,6 @@ extension CharacterClass {
319319
}
320320
}
321321

322-
extension AST.Node {
323-
/// If this has a character class representation, whether built-in or custom, return it.
324-
///
325-
/// TODO: Not sure if this the right model type, but I suspect we'll want to produce
326-
/// something like this on demand
327-
var characterClass: CharacterClass? {
328-
switch self {
329-
case let .customCharacterClass(cc): return cc.modelCharacterClass
330-
case let .atom(a): return a.characterClass
331-
332-
default: return nil
333-
}
334-
}
335-
}
336-
337322
extension DSLTree.Node {
338323
var characterClass: CharacterClass? {
339324
switch self {
@@ -502,66 +487,6 @@ extension DSLTree.CustomCharacterClass {
502487
}
503488
}
504489

505-
extension AST.CustomCharacterClass {
506-
/// The model character class for this custom character class.
507-
var modelCharacterClass: CharacterClass? {
508-
typealias Component = CharacterClass.CharacterSetComponent
509-
func getComponents(_ members: [Member]) -> [Component]? {
510-
var result = Array<Component>()
511-
for m in members {
512-
switch m {
513-
case .custom(let cc):
514-
guard let cc = cc.modelCharacterClass else {
515-
return nil
516-
}
517-
result.append(.characterClass(cc))
518-
case .range(let r):
519-
result.append(.range(
520-
r.lhs.literalCharacterValue! ...
521-
r.rhs.literalCharacterValue!))
522-
523-
case .atom(let a):
524-
if let cc = a.characterClass {
525-
result.append(.characterClass(cc))
526-
} else if let lit = a.literalCharacterValue {
527-
result.append(.character(lit))
528-
} else {
529-
return nil
530-
}
531-
532-
case .quote(let q):
533-
// Decompose quoted literal into literal characters.
534-
result += q.literal.map { .character($0) }
535-
536-
case .trivia:
537-
// Not semantically important.
538-
break
539-
540-
case .setOperation(let lhs, let op, let rhs):
541-
// FIXME: CharacterClass wasn't designed for set operations with
542-
// multiple components in each operand, we should fix that. For now,
543-
// just produce custom components.
544-
guard let lhs = getComponents(lhs),
545-
let rhs = getComponents(rhs)
546-
else {
547-
return nil
548-
}
549-
result.append(.setOperation(.init(
550-
lhs: .characterClass(.custom(lhs)),
551-
op: op.value,
552-
rhs: .characterClass(.custom(rhs)))))
553-
}
554-
}
555-
return result
556-
}
557-
guard let comps = getComponents(members) else {
558-
return nil
559-
}
560-
let cc = CharacterClass.custom(comps)
561-
return self.isInverted ? cc.inverted : cc
562-
}
563-
}
564-
565490
extension CharacterClass {
566491
// FIXME: Calling on inverted sets wont be the same as the
567492
// inverse of a boundary if at the start or end of the

0 commit comments

Comments
 (0)