@@ -308,21 +308,6 @@ extension CharacterClass {
308
308
}
309
309
}
310
310
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
-
326
311
extension DSLTree . Node {
327
312
var characterClass : CharacterClass ? {
328
313
switch self {
@@ -491,66 +476,6 @@ extension DSLTree.CustomCharacterClass {
491
476
}
492
477
}
493
478
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
-
554
479
extension CharacterClass {
555
480
// FIXME: Calling on inverted sets wont be the same as the
556
481
// inverse of a boundary if at the start or end of the
0 commit comments