Ñò
$8Zc           @   s_   d  Z  d d k l Z d d k l Z d d k l Z l Z l Z d e i f d „  ƒ  YZ	 d S(   s•   Fixer for exec.

This converts usages of the exec statement into calls to a built-in
exec() function.

exec code in ns1, ns2 -> exec(code, ns1, ns2)
i   (   t   pytree(   t
   fixer_base(   t   Commat   Namet   Callt   FixExecc           B   s   e  Z d  Z d „  Z RS(   sx   
    exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
    |
    exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
    c         C   sÑ   | p t  ‚ |  i } | d } | i d ƒ } | i d ƒ } | i ƒ  g } d | d _ | d  j	 o  | i t ƒ  | i ƒ  g ƒ n | d  j	 o  | i t ƒ  | i ƒ  g ƒ n t t	 d ƒ | d | i ƒS(   Nt   at   bt   ct    i    u   exect   prefix(
   t   AssertionErrort   symst   gett   cloneR
   t   Nonet   extendR   R   R   (   t   selft   nodet   resultsR   R   R   R   t   args(    (    s,   /usr/lib/python2.6/lib2to3/fixes/fix_exec.pyt	   transform   s    	
  (   t   __name__t
   __module__t   PATTERNR   (    (    (    s,   /usr/lib/python2.6/lib2to3/fixes/fix_exec.pyR      s   N(
   t   __doc__R	   R    R   t
   fixer_utilR   R   R   t   BaseFixR   (    (    (    s,   /usr/lib/python2.6/lib2to3/fixes/fix_exec.pyt   <module>
   s   