@@ -522,9 +522,8 @@ extension RegexTests {
522
522
parseTest ( " [a-a] " , charClass ( range_m ( " a " , " a " ) ) )
523
523
parseTest ( " [B-a] " , charClass ( range_m ( " B " , " a " ) ) )
524
524
525
- // FIXME: AST builder helpers for custom char class types
526
525
parseTest ( " [a-d--a-c] " , charClass (
527
- . setOperation ( [ range_m ( " a " , " d " ) ] , . init ( faking : . subtraction) , [ range_m ( " a " , " c " ) ] )
526
+ setOp ( range_m ( " a " , " d " ) , op : . subtraction, range_m ( " a " , " c " ) )
528
527
) )
529
528
530
529
parseTest ( " [-] " , charClass ( " - " ) )
@@ -684,30 +683,31 @@ extension RegexTests {
684
683
685
684
parseTest (
686
685
#"[a[bc]de&&[^bc]\d]+"# ,
687
- oneOrMore ( of: charClass (
688
- . setOperation (
689
- [ " a " , charClass ( " b " , " c " ) , " d " , " e " ] ,
690
- . init ( faking : . intersection ) ,
691
- [ charClass ( " b " , " c " , inverted : true ) , atom_m ( . escaped ( . decimalDigit ) ) ]
692
- ) ) ) )
686
+ oneOrMore ( of: charClass ( setOp (
687
+ " a " , charClass ( " b " , " c " ) , " d " , " e " ,
688
+ op : . intersection ,
689
+ charClass ( " b " , " c " , inverted : true ) , atom_m ( . escaped ( . decimalDigit ) )
690
+ ) ) )
691
+ )
693
692
694
693
parseTest (
695
- " [a&&b] " ,
696
- charClass (
697
- . setOperation( [ " a " ] , . init( faking: . intersection) , [ " b " ] ) ) )
694
+ " [a&&b] " , charClass ( setOp ( " a " , op: . intersection, " b " ) )
695
+ )
698
696
699
697
parseTest (
700
698
" [abc--def] " ,
701
- charClass ( . setOperation( [ " a " , " b " , " c " ] , . init( faking: . subtraction) , [ " d " , " e " , " f " ] ) ) )
699
+ charClass ( setOp ( " a " , " b " , " c " , op: . subtraction, " d " , " e " , " f " ) )
700
+ )
702
701
703
702
// We left-associate for chained operators.
704
703
parseTest (
705
704
" [ab&&b~~cd] " ,
706
- charClass (
707
- . setOperation(
708
- [ . setOperation( [ " a " , " b " ] , . init( faking: . intersection) , [ " b " ] ) ] ,
709
- . init( faking: . symmetricDifference) ,
710
- [ " c " , " d " ] ) ) )
705
+ charClass ( setOp (
706
+ setOp ( " a " , " b " , op: . intersection, " b " ) ,
707
+ op: . symmetricDifference,
708
+ " c " , " d "
709
+ ) )
710
+ )
711
711
712
712
// Operators are only valid in custom character classes.
713
713
parseTest (
@@ -723,11 +723,11 @@ extension RegexTests {
723
723
724
724
parseTest (
725
725
" [ && ] " ,
726
- charClass ( . setOperation ( [ " " ] , . init ( faking : . intersection) , [ " " , " " ] ) )
726
+ charClass ( setOp ( " " , op : . intersection, " " , " " ) )
727
727
)
728
728
parseTest ( " (?x)[ a && b ] " , concat (
729
729
changeMatchingOptions ( matchingOptions ( adding: . extended) ) ,
730
- charClass ( . setOperation ( [ " a " ] , . init ( faking : . intersection) , [ " b " ] ) )
730
+ charClass ( setOp ( " a " , op : . intersection, " b " ) )
731
731
) )
732
732
733
733
// MARK: Quotes
0 commit comments