�`^c@s{dZddlmZddlmZddlmZddlmZmZm Z m
Z
mZdejfd��YZ
dS( s�Fixer for generator.throw(E, V, T).
g.throw(E) -> g.throw(E)
g.throw(E, V) -> g.throw(E(V))
g.throw(E, V, T) -> g.throw(E(V).with_traceback(T))
g.throw("foo"[, V[, T]]) will warn about string exceptions.i(tpytree(ttoken(t
fixer_base(tNametCalltArgListtAttrtis_tupletFixThrowcBseZeZdZd�ZRS(s�
power< any trailer< '.' 'throw' >
trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' >
>
|
power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > >
cCsP|j}|dj�}|jtjkr?|j|d�dS|jd�}|dkr^dS|j�}t|�r�g|j dd!D]}|j�^q�}nd|_
|g}|d}d|kr6|dj�} d| _
t||�}
t|
t
d ��t| g�g}|jtj|j|��n|jt||��dS(
Ntexcs+Python 3 does not support string exceptionsuvalii�utargsttbuwith_traceback(tsymstclonettypeRtSTRINGtcannot_converttgettNoneRtchildrentprefixRRRRtreplaceRtNodetpower(tselftnodetresultsRR tvaltcR
t
throw_argsRtetwith_tb((s-/sys/lib/python2.7/lib2to3/fixes/fix_throw.pyt transforms* ,
%(t__name__t
__module__tTruet
BM_compatibletPATTERNR (((s-/sys/lib/python2.7/lib2to3/fixes/fix_throw.pyRsN(t__doc__tRtpgen2RRt
fixer_utilRRRRRtBaseFixR(((s-/sys/lib/python2.7/lib2to3/fixes/fix_throw.pyt<module>s
(
|