î
i f. ã @ s{ d Z d d l m Z d d l m Z d d l m Z d d l m Z m Z m Z m
Z
m Z Gd d „ d e j ƒ Z
d S) zÖ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.é )Úpytree)Útoken)Ú
fixer_base)ÚNameÚCallÚArgListÚAttrÚis_tuplec @ s( e Z d Z d Z d Z d d „ Z d S)ÚFixThrowTzÉ
power< any trailer< '.' 'throw' >
trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' >
>
|
power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > >
c C sG | j } | d j ƒ } | j t j k r? | j | d ƒ d S| j d ƒ } | d k r^ d S| j ƒ } t | ƒ r™ d d „ | j d d … Dƒ } n d | _ | g } | d } d | k r-| d j ƒ } d | _ t
| | ƒ } t | t d
ƒ ƒ t
| g ƒ g }
| j t j | j |
ƒ ƒ n | j t
| | ƒ ƒ d S)NÚexcz+Python 3 does not support string exceptionsÚvalc S s g | ] } | j ƒ ‘ q S© )Úclone)Ú.0Úcr
r
ú) s z&FixThrow.transform.