
    ZQdf                     ~    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dS )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$|                     |t
                     d| _        d S d| _        d S )NnextTF)superr
   
start_treer   warningbind_warningshadowed_next)selftreefilenamen	__class__s       -/usr/lib/python3.11/lib2to3/fixes/fix_next.pyr   zFixNext.start_tree$   sj    gt''h777&& 	'LLL)))!%D!&D    c                 d   |sJ |                     d          }|                     d          }|                     d          }|r| j        r+|                    t          d|j                             d S d |D             }d|d         _        |                    t          t          d	|j                  |                     d S |r-t          d|j                  }|                    |           d S |rt          |          rZ|d
         }d                    d |D                                                       dk    r| 	                    |t                     d S |                    t          d                     d S d|v r$| 	                    |t                     d| _        d S d S )Nbaseattrname__next__)prefixc                 6    g | ]}|                                 S  )clone.0r   s     r   
<listcomp>z%FixNext.transform.<locals>.<listcomp>9   s     000a		000r        r   headc                 ,    g | ]}t          |          S r!   )strr#   s     r   r%   z%FixNext.transform.<locals>.<listcomp>E   s    111qCFF111r   __builtin__globalT)getr   replacer   r   r   is_assign_targetjoinstripr   r   )r   noderesultsr   r   r   r   r(   s           r   	transformzFixNext.transform.   s   {{6""{{6""{{6"" 	&! KT*T[AAABBBBB004000!#QT$vdk"B"B"BDIIJJJJJ 	&Z444ALLOOOOO 	&  %% v7711D1112288::mKKLL|444LLj))*****  LL|,,,!%D ! r   )	__name__
__module____qualname__BM_compatiblePATTERNorderr   r4   __classcell__)r   s   @r   r
   r
      sZ        MG E' ' ' ' '& & & & & & &r   r
   c                     t          |           }|dS |j        D ]-}|j        t          j        k    r dS t          ||           r dS .dS )NFT)find_assignchildrentyper   EQUAL
is_subtree)r2   assignchilds      r   r/   r/   Q   sc    F~u  :$$55t$$ 	44	5r   c                     | j         t          j        k    r| S | j         t          j        k    s| j        d S t          | j                  S N)r?   syms	expr_stmtsimple_stmtparentr=   )r2   s    r   r=   r=   ]   sB    yDN""yD$$$(;tt{###r   c                 T    | k    rdS t          fd| j        D                       S )NTc              3   8   K   | ]}t          |          V  d S rE   )rA   )r$   cr2   s     r   	<genexpr>zis_subtree.<locals>.<genexpr>g   s-      ::qz!T""::::::r   )anyr>   )rootr2   s    `r   rA   rA   d   s6    t||t::::DM::::::r   N)__doc__pgen2r   pygramr   rF   r&   r   
fixer_utilr   r   r   r   BaseFixr
   r/   r=   rA   r!   r   r   <module>rU      s    4 4       + + + + + +       1 1 1 1 1 1 1 1 1 1L:& :& :& :& :&j  :& :& :&@
 
 
$ $ $; ; ; ; ;r   