Skip to content

Commit f205b6e

Browse files
committed
Remove obsolete CharacterClass model computation
This is now done from the DSLTree.
1 parent 87caf13 commit f205b6e

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
@@ -308,21 +308,6 @@ extension CharacterClass {
308308
}
309309
}
310310

311-
extension AST.Node {
312-
/// If this has a character class representation, whether built-in or custom, return it.
313-
///
314-
/// TODO: Not sure if this the right model type, but I suspect we'll want to produce
315-
/// something like this on demand
316-
var characterClass: CharacterClass? {
317-
switch self {
318-
case let .customCharacterClass(cc): return cc.modelCharacterClass
319-
case let .atom(a): return a.characterClass
320-
321-
default: return nil
322-
}
323-
}
324-
}
325-
326311
extension DSLTree.Node {
327312
var characterClass: CharacterClass? {
328313
switch self {
@@ -491,66 +476,6 @@ extension DSLTree.CustomCharacterClass {
491476
}
492477
}
493478

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

0 commit comments

Comments
 (0)