Ë
    #´˜j†
  ã                   ó^   — d Z ddlmZ ddlmZmZmZ ddlmZ  G d„ dej                  «      Z	y)z/Fixer that changes xrange(...) into range(...).é   )Ú
fixer_base)ÚNameÚCallÚconsuming_calls)Úpatcompc                   ó”   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Z	dZ
 ej                  e
«      Zd	Z ej                  e«      Zd
„ Zˆ xZS )Ú	FixXrangeTzˆ
              power<
                 (name='range'|name='xrange') trailer< '(' args=any ')' >
              rest=any* >
              c                 óL   •— t         t        | �  ||«       t        «       | _        y ©N)Úsuperr	   Ú
start_treeÚsetÚtransformed_xranges)ÚselfÚtreeÚfilenameÚ	__class__s      €ú*lib/python3.12/lib2to3/fixes/fix_xrange.pyr   zFixXrange.start_tree   s   ø€ ÜŒi˜Ñ)¨$°Ô9Ü#&£5ˆÕ ó    c                 ó   — d | _         y r   )r   )r   r   r   s      r   Úfinish_treezFixXrange.finish_tree   s
   € Ø#'ˆÕ r   c                 ó¸   — |d   }|j                   dk(  r| j                  ||«      S |j                   dk(  r| j                  ||«      S t        t	        |«      «      ‚)NÚnameÚxrangeÚrange)ÚvalueÚtransform_xrangeÚtransform_rangeÚ
ValueErrorÚrepr©r   ÚnodeÚresultsr   s       r   Ú	transformzFixXrange.transform   sX   € Ø�v‰ˆØ�:‰:˜Ò!Ø×(Ñ(¨¨wÓ7Ð7Ø�Z‰Z˜7Ò"Ø×'Ñ'¨¨gÓ6Ð6äœT $›ZÓ(Ð(r   c                 ó¢   — |d   }|j                  t        d|j                  ¬«      «       | j                  j	                  t        |«      «       y )Nr   r   ©Úprefix)Úreplacer   r'   r   ÚaddÚidr!   s       r   r   zFixXrange.transform_xrange$   s:   € Ø�v‰ˆØ�‰”T˜'¨$¯+©+Ô6Ô7à× Ñ ×$Ñ$¤R¨£XÕ.r   c                 ó"  — t        |«      | j                  vrx| j                  |«      sft        t	        d«      |d   j                  «       g«      }t        t	        d«      |g|j                  ¬«      }|d   D ]  }|j                  |«       Œ |S y y )Nr   ÚargsÚlistr&   Úrest)r*   r   Úin_special_contextr   r   Úcloner'   Úappend_child)r   r"   r#   Ú
range_callÚ	list_callÚns         r   r   zFixXrange.transform_range*   s‹   € Üˆt‹H˜D×4Ñ4Ñ4Ø×'Ñ'¨Ô-Üœd 7›m¨g°f©o×.CÑ.CÓ.EÐ-FÓGˆJäœT &›\¨J¨<Ø$(§K¡Kô1ˆIð ˜V”_�Ø×&Ñ& qÕ)ð %àÐð .ð 5r   z3power< func=NAME trailer< '(' node=any ')' > any* >zŸfor_stmt< 'for' any 'in' node=any ':' any* >
            | comp_for< 'for' any 'in' node=any any* >
            | comparison< any 'in' node=any any*>
         c                 óB  — |j                   €yi }|j                   j                   �L| j                  j                  |j                   j                   |«      r|d   |u r|d   j                  t        v S | j
                  j                  |j                   |«      xr |d   |u S )NFr"   Úfunc)ÚparentÚp1Úmatchr   r   Úp2)r   r"   r#   s      r   r/   zFixXrange.in_special_context?   sˆ   € Ø�;‰;ÐØØˆØ�K‰K×ÑÐ*Ø�w‰w�}‰}˜TŸ[™[×/Ñ/°Ô9Ø�v‰ $Ñ&à˜6‘?×(Ñ(¬OÐ;Ð;à�w‰w�}‰}˜TŸ[™[¨'Ó2ÒN°w¸v±È$Ð7NÐNr   )Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr   r   r$   r   r   ÚP1r   Úcompile_patternr8   ÚP2r:   r/   Ú__classcell__)r   s   @r   r	   r	      sb   ø„ Ø€Mð€Gô)ò(ò)ò/ò
ð 
?€BØ	 ˆ×	 Ñ	  Ó	$€Bð
€Bð 
!ˆ×	 Ñ	  Ó	$€Bö
Or   r	   N)
Ú__doc__Ú r   Ú
fixer_utilr   r   r   r   ÚBaseFixr	   © r   r   Ú<module>rI      s,   ðñ 6õ ß 4Ñ 4Ý ô=O�
×"Ñ"õ =Or   