File: //opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_execfile.pyc
�
T~gc           @   sy   d  Z  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
 d e j f d �  �  YZ d S(   so   Fixer for execfile.
This converts usages of the execfile function into calls to the built-in
exec() function.
i   (   t
   fixer_base(
   t   Commat   Namet   Callt   LParent   RParent   Dott   Nodet   ArgListt   Stringt   symst   FixExecfilec           B   s   e  Z e Z d  Z d �  Z RS(   s�   
    power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
    |
    power< 'execfile' trailer< '(' filename=any ')' > >
    c         C   s�  | s t  � | d } | j d � } | j d � } | j d j d j �  } t | j �  t �  t d d � 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	 rq| j t �  | j �  g � n  | d  k	 r�| j t �  | j �  g � n  t t
 d � | d | j �S(   Nt   filenamet   globalst   localsi����s   "rb"t    t   rparenu   openu   readu    u   'exec'u   compileu    u   exect   prefix(   t   AssertionErrort   gett   childrent   cloneR   R   R	   R   R
   t   powerR   t   trailerR   R   R   R   R   t   Nonet   extend(   t   selft   nodet   resultsR   R
   R   t   execfile_parent	   open_argst	   open_callt   readt	   open_exprt   filename_argt   exec_strt   compile_argst   compile_callt   args(    (    s?   /opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_execfile.pyt	   transform   s,    
$	!
		(   t   __name__t
   __module__t   Truet
   BM_compatiblet   PATTERNR'