@@ -1566,6 +1566,173 @@ extension Repeat {
15661566 self . init ( node: . repeating( expression. relative ( to: 0 ..< Int . max) , behavior, component ( ) . regex. root) )
15671567 }
15681568}
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+ }
15691736extension AlternationBuilder {
15701737 public static func buildPartialBlock< R0, R1> (
15711738 accumulated: R0 , next: R1
0 commit comments