�`^c@sydZddlmZddlmZmZmZmZmZm Z m
Z
mZmZm
Z
dejfd��YZdS(soFixer for execfile.
This converts usages of the execfile function into calls to the built-in
exec() function.
i(t
fixer_base(
tCommatNametCalltLParentRParentDottNodetArgListtStringtsymstFixExecfilecBseZeZdZd�ZRS(s�
power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
|
power< 'execfile' trailer< '(' filename=any ')' > >
cCs�|d}|jd�}|jd�}|jdjdj�}t|j�gd|�}ttjtd�|g�}ttjt �td�g�ttjt
�t�g�g} |g| }
|j�}d|_t
d d�}|
t�|t�|g}
ttd
�|
d�}|g}|dk rS|jt�|j�g�n|dk r~|jt�|j�g�nttd�|d
|j�S(Ntfilenametglobalstlocalsi�trparenuopenureadu u'exec'ucompileuuexectprefix(tgettchildrentcloneRRR
tpowerRttrailerRRRRR RRtNonetextend(tselftnodetresultsRR
Rtexecfile_parent open_argst open_calltreadt open_exprtfilename_argtexec_strtcompile_argstcompile_calltargs((s0/sys/lib/python2.7/lib2to3/fixes/fix_execfile.pyt transforms(
!
(t__name__t
__module__tTruet
BM_compatibletPATTERNR%(((s0/sys/lib/python2.7/lib2to3/fixes/fix_execfile.pyRsN(t__doc__tRt
fixer_utilRRRRRRRRR R
tBaseFixR(((s0/sys/lib/python2.7/lib2to3/fixes/fix_execfile.pyt<module>sF
|