Your IP : 18.116.28.79
��Yf. � @ 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
�</opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_throw.py�
<listcomp>) s z&FixThrow.transform.<locals>.<listcomp>� � �args�tb�with_traceback���)�symsr �typer �STRINGZcannot_convert�getr Zchildren�prefixr r r r �replacer ZNodeZpower)�selfZnodeZresultsr r r r Z
throw_argsr �eZwith_tbr
r
r � transform s* #
%zFixThrow.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNr! r
r
r
r r
s r
N)�__doc__r r Zpgen2r r Z
fixer_utilr r r r r ZBaseFixr
r
r
r
r �<module> s
(