§
    ZQd†
  ã                   ó\   — 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	dS )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                 ó€   •— t          t          | ¦  «                             ||¦  «         t          ¦   «         | _        d S ©N)Úsuperr	   Ú
start_treeÚsetÚtransformed_xranges)ÚselfÚtreeÚfilenameÚ	__class__s      €ú//usr/lib/python3.11/lib2to3/fixes/fix_xrange.pyr   zFixXrange.start_tree   s5   ø€ Ý�i˜ÑÔ×)Ò)¨$°Ñ9Ô9Ð9Ý#&¡5¤5ˆÔ Ð Ð ó    c                 ó   — d | _         d S r   )r   )r   r   r   s      r   Úfinish_treezFixXrange.finish_tree   s   € Ø#'ˆÔ Ð Ð r   c                 óÎ   — |d         }|j         dk    r|                      ||¦  «        S |j         dk    r|                      ||¦  «        S t          t	          |¦  «        ¦  «        ‚)NÚnameÚxrangeÚrange)ÚvalueÚtransform_xrangeÚtransform_rangeÚ
ValueErrorÚrepr©r   ÚnodeÚresultsr   s       r   Ú	transformzFixXrange.transform   se   € Ø�vŒˆØŒ:˜Ò!Ð!Ø×(Ò(¨¨wÑ7Ô7Ð7ØŒZ˜7Ò"Ð"Ø×'Ò'¨¨gÑ6Ô6Ð6å�T $™ZœZÑ(Ô(Ð(r   c                 ó¶   — |d         }|                      t          d|j        ¬¦  «        ¦  «         | j                             t          |¦  «        ¦  «         d S )Nr   r   ©Úprefix)Úreplacer   r'   r   ÚaddÚidr!   s       r   r   zFixXrange.transform_xrange$   sO   € Ø�vŒˆØ�Š•T˜'¨$¬+Ð6Ñ6Ô6Ñ7Ô7Ð7àÔ ×$Ò$¥R¨¡X¤XÑ.Ô.Ð.Ð.Ð.r   c                 óZ  — t          |¦  «        | j        vr’|                      |¦  «        st          t	          d¦  «        |d                              ¦   «         g¦  «        }t          t	          d¦  «        |g|j        ¬¦  «        }|d         D ]}|                     |¦  «         Œ|S d S d S )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ŒH˜DÔ4Ð4Ð4Ø×'Ò'¨Ñ-Ô-ð 5å�d 7™mœm¨g°f¬o×.CÒ.CÑ.EÔ.EÐ-FÑGÔGˆJå�T &™\œ\¨J¨<Ø$(¤Kð1ñ 1ô 1ˆIð ˜V”_ð *ð *�Ø×&Ò& qÑ)Ô)Ð)Ð)ØÐð 5Ð4Ð4Ð4r   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                 ó
  — |j         €dS i }|j         j         �C| j                             |j         j         |¦  «        r|d         |u r|d         j        t          v S | j                             |j         |¦  «        o	|d         |u S )NFr"   Úfunc)ÚparentÚp1Úmatchr   r   Úp2)r   r"   r#   s      r   r/   zFixXrange.in_special_context?   sƒ   € ØŒ;ÐØ�5ØˆØŒKÔÐ*ØŒw�}Š}˜Tœ[Ô/°Ñ9Ô9ð +à�vŒ $Ð&Ð&à˜6”?Ô(­OÐ;Ð;àŒw�}Š}˜Tœ[¨'Ñ2Ô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	      sÊ   ø€ € € € € Ø€Mð€Gð)ð )ð )ð )ð )ð(ð (ð (ð)ð )ð )ð/ð /ð /ð
ð 
ð 
ð 
?€BØ	 ˆÔ	  Ñ	$Ô	$€Bð
€Bð 
!ˆÔ	  Ñ	$Ô	$€Bð
Oð 
Oð 
Oð 
Oð 
Oð 
Oð 
Or   r	   N)
Ú__doc__Ú r   Ú
fixer_utilr   r   r   r   ÚBaseFixr	   © r   r   ú<module>rI      s’   ðð 6Ð 5ð Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð ð=Oð =Oð =Oð =Oð =O�
Ô"ñ =Oô =Oð =Oð =Oð =Or   