ó v®¸Qc@s{dZddlmZddlmZddlmZddlmZmZm Z m Z m Z dej fd„ƒ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 ')' > > c CsP|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( tselftnodetresultsR R tvaltcR t throw_argsR tetwith_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.pyts (