
„Æ.^n  ã               @   su   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)é   )Úpytree)Útoken)Ú
fixer_base)ÚNameÚCallÚAttrÚArgListÚis_tuplec               @   s(   e  Z d  Z d Z d Z d d „  Z d S)ÚFixRaiseTzB
    raise_stmt< 'raise' exc=any [',' val=any [',' tb=any]] >
    c             C   sü  |  j  } | d j ƒ  } | j t j k rE d } |  j | | ƒ d  St | ƒ r‡ x* t | ƒ r} | j d j d j ƒ  } qT Wd | _ d | k rÄ t	 j
 | j t d ƒ | g ƒ } | j | _ | S| d j ƒ  } t | ƒ rd d	 „  | j d d … Dƒ } n d
 | _ | g } d | k rÇ| d j ƒ  }	 d
 |	 _ | }
 | j t j k sa| j d k rpt | | ƒ }
 t |
 t d ƒ ƒ t |	 g ƒ g } t	 j
 | j t d ƒ g | ƒ } | j | _ | St	 j
 | j t d ƒ t | | ƒ g d | j ƒSd  S)NÚexcz+Python 3 does not support string exceptionsé   é    ú ÚvalÚraisec             S   s   g  |  ] } | j  ƒ  ‘ q S© )Úclone)Ú.0Úcr   r   úN/build/toolchain/mac32/python-3.5.2-openssl1.0.2u-1/lib/python3.5/fix_raise.pyú
<listcomp>D   s   	 z&FixRaise.transform.<locals>.<listcomp>Ú ÚtbÚNoneÚwith_tracebackÚprefixéÿÿÿÿ)Úsymsr   Útyper   ÚSTRINGZcannot_convertr	   Zchildrenr   r   ZNodeZ
raise_stmtr   ÚNAMEÚvaluer   r   r   Zsimple_stmt)ÚselfZnodeÚresultsr   r   ÚmsgÚnewr   Úargsr   ÚeZwith_tbr   r   r   Ú	transform&   s@    		!#			!%"zFixRaise.transformN)Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZPATTERNr(   r   r   r   r   r
      s   r
   N)r   r   Zpgen2r   r   Z
fixer_utilr   r   r   r   r	   ZBaseFixr
   r   r   r   r   Ú<module>   s   (