
c'oTC  ã               @   si   d  Z  d d l m Z d d l m Z m Z d d l m Z d d l m	 Z	 Gd d „  d e j
 ƒ Z d S)	zAFixer for 'g.throw(E(V).with_traceback(T))' -> 'g.throw(E, V, T)'é    )Ú
fixer_base)ÚNodeÚLeaf)Útoken)ÚCommac               @   s"   e  Z d  Z d Z d d „  Z d S)ÚFixThrowz½
    power< any trailer< '.' 'throw' >
        trailer< '(' args=power< exc=any trailer< '(' val=any* ')' >
        trailer< '.' 'with_traceback' > trailer< '(' trc=any ')' > > ')' > >
    c       	      C   sŸ   |  j  } | d | d | d } } } | r9 | d n t t j d ƒ } d | _ | _ | j ƒ  t ƒ  | j ƒ  t ƒ  | j ƒ  g } | d } | | _ d  S)NÚexcÚvalÚtrcr   ÚNoneú Úargs)Úsymsr   r   ÚNAMEÚprefixZcloner   Zchildren)	ÚselfZnodeZresultsr   r   r	   r
   Zkidsr   © r   ú?/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_throw.pyÚ	transform   s    	 "-
zFixThrow.transformN)Ú__name__Ú
__module__Ú__qualname__ZPATTERNr   r   r   r   r   r      s   r   N)Ú__doc__Zlib2to3r   Zlib2to3.pytreer   r   Zlib2to3.pgen2r   Zlib2to3.fixer_utilr   ZBaseFixr   r   r   r   r   Ú<module>   s
   