��Qc@s_dZddlmZddlmZddlmZmZmZdejfd��YZ dS(s�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)
i(tpytree(t
fixer_base(tCommatNametCalltFixExeccBseZeZdZd�ZRS(sx
exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
|
exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
cCs�|st�|j}|d}|jd�}|jd�}|j�g}d|d_|dk r�|jt�|j�g�n|dk r�|jt�|j�g�ntt d�|d|j�S(Ntatbtctiuexectprefix(
tAssertionErrortsymstgettcloneR
tNonetextendRRR(tselftnodetresultsRRRRtargs((s,/sys/lib/python2.7/lib2to3/fixes/fix_exec.pyt transforms
(t__name__t
__module__tTruet
BM_compatibletPATTERNR(((s,/sys/lib/python2.7/lib2to3/fixes/fix_exec.pyRsN(
t__doc__R RRt
fixer_utilRRRtBaseFixR(((s,/sys/lib/python2.7/lib2to3/fixes/fix_exec.pyt<module>
s
|