Ë
    #´˜jf  ã                   ó€   — d Z ddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZ dZ G d„ dej                  «      Zd	„ Zd
„ Zd„ Zy)z.Fixer for it.next() -> next(it), per PEP 3114.é   )Útoken)Úpython_symbols)Ú
fixer_base)ÚNameÚCallÚfind_bindingz;Calls to builtin next() possibly shadowed by global bindingc                   ó0   ‡ — e Zd ZdZdZdZˆ fd„Zd„ Zˆ xZS )ÚFixNextTa¾  
    power< base=any+ trailer< '.' attr='next' > trailer< '(' ')' > >
    |
    power< head=any+ trailer< '.' attr='next' > not trailer< '(' ')' > >
    |
    classdef< 'class' any+ ':'
              suite< any*
                     funcdef< 'def'
                              name='next'
                              parameters< '(' NAME ')' > any+ >
                     any* > >
    |
    global=global_stmt< 'global' any* 'next' any* >
    Úprec                 ó”   •— t         t        | �  ||«       t        d|«      }|r| j	                  |t
        «       d| _        y d| _        y )NÚnextTF)Úsuperr
   Ú
start_treer   ÚwarningÚbind_warningÚshadowed_next)ÚselfÚtreeÚfilenameÚnÚ	__class__s       €ú(lib/python3.12/lib2to3/fixes/fix_next.pyr   zFixNext.start_tree$   sA   ø€ ÜŒg�tÑ'¨¨hÔ7ä˜ Ó&ˆÙØ�L‰L˜œLÔ)Ø!%ˆDÕà!&ˆDÕó    c                 ó4  — |sJ ‚|j                  d«      }|j                  d«      }|j                  d«      }|r‹| j                  r'|j                  t        d|j                  ¬«      «       y |D �cg c]  }|j                  «       ‘Œ }}d|d   _        |j                  t        t        d|j                  ¬«      |«      «       y |r)t        d|j                  ¬«      }|j                  |«       y |r{t        |«      rU|d	   }dj                  |D �cg c]  }t        |«      ‘Œ c}«      j                  «       d
k(  r| j                  |t        «       y |j                  t        d«      «       y d|v r| j                  |t        «       d| _        y y c c}w c c}w )NÚbaseÚattrÚnameÚ__next__)ÚprefixÚ é    r   ÚheadÚ__builtin__ÚglobalT)Úgetr   Úreplacer   r   Úcloner   Úis_assign_targetÚjoinÚstrÚstripr   r   )r   ÚnodeÚresultsr   r   r   r   r"   s           r   Ú	transformzFixNext.transform.   sI  € Ùˆˆwà�{‰{˜6Ó"ˆØ�{‰{˜6Ó"ˆØ�{‰{˜6Ó"ˆáØ×!Ò!Ø—‘œT *°T·[±[ÔAÕBá+/Ó0©4 a˜Ÿ™�	¨4�Ð0Ø!#��Q‘”Ø—‘œT¤$ v°d·k±kÔ"BÀDÓIÕJÙÜ�Z¨¯©Ô4ˆAØ�L‰L˜�OÙô   Ô%Ø˜v‘�Ø—7‘7©DÓ1©D qœC �F¨DÑ1Ó2×8Ñ8Ó:¸mÒKØ—L‘L ¤|Ô4ØØ�L‰Lœ˜jÓ)Õ*Ø˜Ñ Ø�L‰L˜œ|Ô,Ø!%ˆDÕð !ùò! 1ùò 2s   Á1FÄF)	Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNÚorderr   r.   Ú__classcell__)r   s   @r   r
   r
      s    ø„ Ø€Mð€Gð €Eô'ö&r   r
   c                 óœ   — t        | «      }|€y|j                  D ]/  }|j                  t        j                  k(  r yt        || «      sŒ/ y y)NFT)Úfind_assignÚchildrenÚtyper   ÚEQUALÚ
is_subtree)r,   ÚassignÚchilds      r   r(   r(   Q   sG   € Ü˜Ó€FØ€~Øà—”ˆØ�:‰:œŸ™Ò$ÙÜ˜˜tÕ$Ùð	 !ð
 r   c                 ó¾   — | j                   t        j                  k(  r| S | j                   t        j                  k(  s| j                  €y t        | j                  «      S ©N)r9   ÚsymsÚ	expr_stmtÚsimple_stmtÚparentr7   )r,   s    r   r7   r7   ]   sD   € Ø‡y�y”D—N‘NÒ"ØˆØ‡y�y”D×$Ñ$Ò$¨¯©Ð(;ØÜ�t—{‘{Ó#Ð#r   c                 óL   ‡— | ‰k(  ryt        ˆfd„| j                  D «       «      S )NTc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr?   )r;   )Ú.0Úcr,   s     €r   Ú	<genexpr>zis_subtree.<locals>.<genexpr>g   s   øè ø€ Ð:©M qŒz˜!˜T×"©Mùs   ƒ)Úanyr8   )Úrootr,   s    `r   r;   r;   d   s"   ø€ Øˆt‚|ØÜÓ:¨D¯MªMÓ:Ó:Ð:r   N)Ú__doc__Úpgen2r   Úpygramr   r@   r    r   Ú
fixer_utilr   r   r   r   ÚBaseFixr
   r(   r7   r;   © r   r   Ú<module>rQ      s@   ðÙ 4õ Ý +Ý ß 1Ñ 1àL€ô:&ˆj× Ñ ô :&ò@
ò$ó;r   