File: //lib64/python3.6/lib2to3/fixes/__pycache__/fix_exec.cpython-36.pyc
3
  \�  �               @   s:   d Z ddlmZ ddlmZmZmZ G dd� dej�ZdS )z�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)
�   )�
fixer_base)�Comma�Name�Callc               @   s   e Zd ZdZdZdd� ZdS )�FixExecTzx
    exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
    |
    exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
    c             C   s�   |st �| j}|d }|jd�}|jd�}|j� g}d|d _|d k	rZ|jt� |j� g� |d k	rv|jt� |j� g� ttd�||jd�S )N�a�b�c� �    �exec)�prefix)	�AssertionError�syms�getZcloner
   �extendr   r   r   )�selfZnodeZresultsr   r   r   r	   �args� r   �./usr/lib64/python3.6/lib2to3/fixes/fix_exec.py�	transform   s    
zFixExec.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNr   r   r   r   r   r      s   r   N)	�__doc__r
   r   Z
fixer_utilr   r   r   ZBaseFixr   r   r   r   r   �<module>
   s