@@ -522,9 +522,8 @@ extension RegexTests {
522522 parseTest ( " [a-a] " , charClass ( range_m ( " a " , " a " ) ) )
523523 parseTest ( " [B-a] " , charClass ( range_m ( " B " , " a " ) ) )
524524
525- // FIXME: AST builder helpers for custom char class types
526525 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 " ) )
528527 ) )
529528
530529 parseTest ( " [-] " , charClass ( " - " ) )
@@ -684,30 +683,31 @@ extension RegexTests {
684683
685684 parseTest (
686685 #"[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+ )
693692
694693 parseTest (
695- " [a&&b] " ,
696- charClass (
697- . setOperation( [ " a " ] , . init( faking: . intersection) , [ " b " ] ) ) )
694+ " [a&&b] " , charClass ( setOp ( " a " , op: . intersection, " b " ) )
695+ )
698696
699697 parseTest (
700698 " [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+ )
702701
703702 // We left-associate for chained operators.
704703 parseTest (
705704 " [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+ )
711711
712712 // Operators are only valid in custom character classes.
713713 parseTest (
@@ -723,11 +723,11 @@ extension RegexTests {
723723
724724 parseTest (
725725 " [ && ] " ,
726- charClass ( . setOperation ( [ " " ] , . init ( faking : . intersection) , [ " " , " " ] ) )
726+ charClass ( setOp ( " " , op : . intersection, " " , " " ) )
727727 )
728728 parseTest ( " (?x)[ a && b ] " , concat (
729729 changeMatchingOptions ( matchingOptions ( adding: . extended) ) ,
730- charClass ( . setOperation ( [ " a " ] , . init ( faking : . intersection) , [ " b " ] ) )
730+ charClass ( setOp ( " a " , op : . intersection, " b " ) )
731731 ) )
732732
733733 // MARK: Quotes
0 commit comments