@@ -319,21 +319,6 @@ extension CharacterClass {
319
319
}
320
320
}
321
321
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
-
337
322
extension DSLTree . Node {
338
323
var characterClass : CharacterClass ? {
339
324
switch self {
@@ -502,66 +487,6 @@ extension DSLTree.CustomCharacterClass {
502
487
}
503
488
}
504
489
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
-
565
490
extension CharacterClass {
566
491
// FIXME: Calling on inverted sets wont be the same as the
567
492
// inverse of a boundary if at the start or end of the
0 commit comments