3 \�@sRddlmZddlmZmZmZmZmZmZm Z m Z m Z m Z Gdd�dej �ZdS)�)� fixer_base) �Comma�Name�Call�LParen�RParen�Dot�Node�ArgList�String�symsc@seZdZdZdZdd�ZdS)� FixExecfileTz� power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > > | power< 'execfile' trailer< '(' filename=any ')' > > cCs&|d}|jd�}|jd�}|jdjdj�}t|j�t�tdd�g|d�}ttjt d�|g�}ttj t �t d �g�ttj t �t �g�g} |g| } |j�} d| _td d�} | t�| t�| g} tt d �| d �}|g}|dk r�|jt�|j�g�|dk �r|jt�|j�g�tt d �||jd�S)N�filename�globals�locals�z"rb"� )Zrparen�open�readz'exec'�compile��exec)�prefix�����r)�getZchildrenZcloner rr r r ZpowerrZtrailerrrrrr�extend)�selfZnodeZresultsrrrZexecfile_parenZ open_argsZ open_callrZ open_exprZ filename_argZexec_strZ compile_argsZ compile_call�args�r�2/usr/lib64/python3.6/lib2to3/fixes/fix_execfile.py� transforms*     zFixExecfile.transformN)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNr rrrrr sr N)rrZ fixer_utilrrrrrrr r r r ZBaseFixr rrrr� s 0