@@ -1566,6 +1566,173 @@ extension Repeat {
1566
1566
self . init ( node: . repeating( expression. relative ( to: 0 ..< Int . max) , behavior, component ( ) . regex. root) )
1567
1567
}
1568
1568
}
1569
+ extension BacktrackingScope {
1570
+ @_disfavoredOverload
1571
+ public init < Component: RegexComponent > (
1572
+ _ component: Component
1573
+ ) where Output == Substring {
1574
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1575
+ }
1576
+ }
1577
+
1578
+ extension BacktrackingScope {
1579
+ @_disfavoredOverload
1580
+ public init < Component: RegexComponent > (
1581
+ @RegexComponentBuilder _ component: ( ) -> Component
1582
+ ) where Output == Substring {
1583
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1584
+ }
1585
+ }
1586
+ extension BacktrackingScope {
1587
+ public init < W, C0, Component: RegexComponent > (
1588
+ _ component: Component
1589
+ ) where Output == ( Substring , C0 ) , Component. Output == ( W , C0 ) {
1590
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1591
+ }
1592
+ }
1593
+
1594
+ extension BacktrackingScope {
1595
+ public init < W, C0, Component: RegexComponent > (
1596
+ @RegexComponentBuilder _ component: ( ) -> Component
1597
+ ) where Output == ( Substring , C0 ) , Component. Output == ( W , C0 ) {
1598
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1599
+ }
1600
+ }
1601
+ extension BacktrackingScope {
1602
+ public init < W, C0, C1, Component: RegexComponent > (
1603
+ _ component: Component
1604
+ ) where Output == ( Substring , C0 , C1 ) , Component. Output == ( W , C0 , C1 ) {
1605
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1606
+ }
1607
+ }
1608
+
1609
+ extension BacktrackingScope {
1610
+ public init < W, C0, C1, Component: RegexComponent > (
1611
+ @RegexComponentBuilder _ component: ( ) -> Component
1612
+ ) where Output == ( Substring , C0 , C1 ) , Component. Output == ( W , C0 , C1 ) {
1613
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1614
+ }
1615
+ }
1616
+ extension BacktrackingScope {
1617
+ public init < W, C0, C1, C2, Component: RegexComponent > (
1618
+ _ component: Component
1619
+ ) where Output == ( Substring , C0 , C1 , C2 ) , Component. Output == ( W , C0 , C1 , C2 ) {
1620
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1621
+ }
1622
+ }
1623
+
1624
+ extension BacktrackingScope {
1625
+ public init < W, C0, C1, C2, Component: RegexComponent > (
1626
+ @RegexComponentBuilder _ component: ( ) -> Component
1627
+ ) where Output == ( Substring , C0 , C1 , C2 ) , Component. Output == ( W , C0 , C1 , C2 ) {
1628
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1629
+ }
1630
+ }
1631
+ extension BacktrackingScope {
1632
+ public init < W, C0, C1, C2, C3, Component: RegexComponent > (
1633
+ _ component: Component
1634
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 ) , Component. Output == ( W , C0 , C1 , C2 , C3 ) {
1635
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1636
+ }
1637
+ }
1638
+
1639
+ extension BacktrackingScope {
1640
+ public init < W, C0, C1, C2, C3, Component: RegexComponent > (
1641
+ @RegexComponentBuilder _ component: ( ) -> Component
1642
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 ) , Component. Output == ( W , C0 , C1 , C2 , C3 ) {
1643
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1644
+ }
1645
+ }
1646
+ extension BacktrackingScope {
1647
+ public init < W, C0, C1, C2, C3, C4, Component: RegexComponent > (
1648
+ _ component: Component
1649
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 ) {
1650
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1651
+ }
1652
+ }
1653
+
1654
+ extension BacktrackingScope {
1655
+ public init < W, C0, C1, C2, C3, C4, Component: RegexComponent > (
1656
+ @RegexComponentBuilder _ component: ( ) -> Component
1657
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 ) {
1658
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1659
+ }
1660
+ }
1661
+ extension BacktrackingScope {
1662
+ public init < W, C0, C1, C2, C3, C4, C5, Component: RegexComponent > (
1663
+ _ component: Component
1664
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 ) {
1665
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1666
+ }
1667
+ }
1668
+
1669
+ extension BacktrackingScope {
1670
+ public init < W, C0, C1, C2, C3, C4, C5, Component: RegexComponent > (
1671
+ @RegexComponentBuilder _ component: ( ) -> Component
1672
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 ) {
1673
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1674
+ }
1675
+ }
1676
+ extension BacktrackingScope {
1677
+ public init < W, C0, C1, C2, C3, C4, C5, C6, Component: RegexComponent > (
1678
+ _ component: Component
1679
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 ) {
1680
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1681
+ }
1682
+ }
1683
+
1684
+ extension BacktrackingScope {
1685
+ public init < W, C0, C1, C2, C3, C4, C5, C6, Component: RegexComponent > (
1686
+ @RegexComponentBuilder _ component: ( ) -> Component
1687
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 ) {
1688
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1689
+ }
1690
+ }
1691
+ extension BacktrackingScope {
1692
+ public init < W, C0, C1, C2, C3, C4, C5, C6, C7, Component: RegexComponent > (
1693
+ _ component: Component
1694
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 ) {
1695
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1696
+ }
1697
+ }
1698
+
1699
+ extension BacktrackingScope {
1700
+ public init < W, C0, C1, C2, C3, C4, C5, C6, C7, Component: RegexComponent > (
1701
+ @RegexComponentBuilder _ component: ( ) -> Component
1702
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 ) {
1703
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1704
+ }
1705
+ }
1706
+ extension BacktrackingScope {
1707
+ public init < W, C0, C1, C2, C3, C4, C5, C6, C7, C8, Component: RegexComponent > (
1708
+ _ component: Component
1709
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 ) {
1710
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1711
+ }
1712
+ }
1713
+
1714
+ extension BacktrackingScope {
1715
+ public init < W, C0, C1, C2, C3, C4, C5, C6, C7, C8, Component: RegexComponent > (
1716
+ @RegexComponentBuilder _ component: ( ) -> Component
1717
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 ) {
1718
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1719
+ }
1720
+ }
1721
+ extension BacktrackingScope {
1722
+ public init < W, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, Component: RegexComponent > (
1723
+ _ component: Component
1724
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 ) {
1725
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component. regex. root) )
1726
+ }
1727
+ }
1728
+
1729
+ extension BacktrackingScope {
1730
+ public init < W, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, Component: RegexComponent > (
1731
+ @RegexComponentBuilder _ component: ( ) -> Component
1732
+ ) where Output == ( Substring , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 ) , Component. Output == ( W , C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 ) {
1733
+ self . init ( node: . nonCapturingGroup( . atomicNonCapturing, component ( ) . regex. root) )
1734
+ }
1735
+ }
1569
1736
extension AlternationBuilder {
1570
1737
public static func buildPartialBlock< R0, R1> (
1571
1738
accumulated: R0 , next: R1
0 commit comments