U
��,a��@s:dZddlmZddlmZmZmZGdd�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@seZdZdZdZdd�ZdS)�FixExecTzx
exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
|
exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
cCs�|st�|j}|d}|�d�}|�d�}|��g}d|d_|dk rZ|�t�|��g�|dk rv|�t�|��g�ttd�||jd�S)N�a�b�c���exec)�prefix) �AssertionError�syms�getZcloner
�extendrrr)�selfZnodeZresultsrrrr �args�r�;/opt/alt/python38/lib64/python3.8/lib2to3/fixes/fix_exec.py� transforms
zFixExec.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNrrrrrrsrN) �__doc__r
rZ
fixer_utilrrrZBaseFixrrrrr�<module>s |