
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,af  ã                   @   sn   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„ dejƒZd	d
„ Zdd„ Zd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                       s0   e Zd ZdZdZdZ‡ fdd„Zdd„ Z‡  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* >
    Zprec                    s>   t t| ƒ ||¡ td|ƒ}|r4|  |t¡ d| _nd| _d S )NÚnextTF)Úsuperr   Ú
start_treer   ÚwarningÚbind_warningÚshadowed_next)ÚselfZtreeÚfilenameÚn©Ú	__class__© ú;/opt/alt/python38/lib64/python3.8/lib2to3/fixes/fix_next.pyr   $   s    
zFixNext.start_treec                 C   s  |st ‚| d¡}| d¡}| d¡}|rz| jrF| td|jd�¡ n2dd„ |D ƒ}d|d	 _| ttd
|jd�|ƒ¡ nŠ|r˜td|jd�}| |¡ nl|rèt|ƒrØ|d }d dd„ |D ƒ¡ 	¡ dkrÔ|  
|t¡ d S | tdƒ¡ nd|k�r|  
|t¡ d| _d S )NÚbaseÚattrÚnameÚ__next__)Úprefixc                 S   s   g | ]}|  ¡ ‘qS r   )Zclone©Ú.0r   r   r   r   Ú
<listcomp>9   s     z%FixNext.transform.<locals>.<listcomp>Ú é    r	   Úheadc                 S   s   g | ]}t |ƒ‘qS r   )Ústrr   r   r   r   r   E   s     Z__builtin__ÚglobalT)ÚAssertionErrorÚgetr   Úreplacer   r   r   Úis_assign_targetÚjoinÚstripr   r   )r   ÚnodeZresultsr   r   r   r   r    r   r   r   Ú	transform.   s.    




zFixNext.transform)	Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZPATTERNÚorderr   r*   Ú__classcell__r   r   r   r   r      s
   
r   c                 C   sF   t | ƒ}|d krdS |jD ]&}|jtjkr0 dS t|| ƒr dS qdS )NFT)Úfind_assignÚchildrenÚtyper   ÚEQUALÚ
is_subtree)r)   ZassignZchildr   r   r   r&   Q   s    

r&   c                 C   s4   | j tjkr| S | j tjks&| jd kr*d S t| jƒS ©N)r2   ÚsymsZ	expr_stmtZsimple_stmtÚparentr0   ©r)   r   r   r   r0   ]   s
    r0   c                    s$   | ˆ krdS t ‡ fdd„| jD ƒƒS )NTc                 3   s   | ]}t |ˆ ƒV  qd S r5   )r4   )r   Úcr8   r   r   Ú	<genexpr>g   s     zis_subtree.<locals>.<genexpr>)Úanyr1   )Úrootr)   r   r8   r   r4   d   s    r4   N)Ú__doc__Zpgen2r   Zpygramr   r6   r   r   Z
fixer_utilr   r   r   r   ZBaseFixr   r&   r0   r4   r   r   r   r   Ú<module>   s   @