File: //opt/alt/python35/lib64/python3.5/lib2to3/fixes/__pycache__/fix_execfile.cpython-35.opt-2.pyc
���]�  �               @   ss   d  d l  m Z d  d l m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z Gd d �  d e j
 � Z d S)�   )�
fixer_base)
�Comma�Name�Call�LParen�RParen�Dot�Node�ArgList�String�symsc               @   s(   e  Z d  Z d Z d Z d d �  Z d S)�FixExecfileTz�
    power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
    |
    power< 'execfile' trailer< '(' filename=any ')' > >
    c             C   s�  | d } | j  d � } | j  d � } | j d j d j �  } t | j �  g d | �} t t j t d � | g � } t t j t	 �  t d � g � t t j t
 �  t �  g � g }	 | g |	 }
 | j �  } d | _ t
 d	 d � } |
 t �  | t �  | g }
 t t d
 � |
 d � } | g } | d  k	 rP| j t �  | j �  g � | d  k	 rx| j t �  | j �  g � t t d � | d
 | j �S)N�filename�globals�locals�   Zrparen�open�read� z'exec'�compile� �exec�prefix���r   )�getZchildrenZcloner
   r	   r   Zpowerr   Ztrailerr   r   r   r   r   r   r   �extend)�selfZnode�resultsr   r   r   Zexecfile_parenZ	open_argsZ	open_callr   Z	open_exprZfilename_argZexec_strZcompile_argsZcompile_call�args� r   �1/opt/alt/python35/lib64/python3.5/fix_execfile.py�	transform   s(    
!
		zFixExecfile.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNr!   r   r   r   r    r
      s   r
   N)r   r   Z
fixer_utilr   r   r   r   r   r   r	   r
   r   r   ZBaseFixr
   r   r   r   r    �<module>
   s   F