£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

j f                 @   s_   d  Z  d d l m Z d d l m Z d d l m Z m Z m Z Gd d   d e j  Z	 d S)zFixer 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)
   )pytree)
fixer_base)CommaNameCallc               @   s(   e  Z d  Z d Z d Z d d   Z d S)FixExecTzx
    exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
    |
    exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
    c             C   s   |  j  } | d } | j d  } | j d  } | j   g } d | d _ | d  k	 rx | j t   | j   g  n  | d  k	 r | j t   | j   g  n  t t d  | d | j S)Nabc     execprefix)symsgetZcloner   extendr   r   r   )selfZnodeZresultsr   r   r	   r
   args r   ;/opt/alt/python34/lib64/python3.4/lib2to3/fixes/fix_exec.py	transform   s    	
zFixExec.transformN)__name__
__module____qualname__ZBM_compatibleZPATTERNr   r   r   r   r   r      s   r   N)
__doc__r   r   r   Z
fixer_utilr   r   r   ZBaseFixr   r   r   r   r   <module>
   s   