Ñò
$8Zc           @   s{   d  Z  d d k l Z d d k l Z d d k l Z d d k l Z l Z l	 Z	 l
 Z
 l Z d e i f d „  ƒ  YZ d S(	   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   (   t   pytree(   t   token(   t
   fixer_base(   t   Namet   Callt   ArgListt   Attrt   is_tuplet   FixThrowc           B   s   e  Z d  Z d „  Z RS(   sÉ   
    power< any trailer< '.' 'throw' >
           trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' >
    >
    |
    power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > >
    c         C   s`  |  i  } | d i ƒ  } | i t i j o |  i | d ƒ d  S| i d ƒ } | d  j o d  S| i ƒ  } t | ƒ o5 g  } | i	 d d !D] } | | i ƒ  q ~ } n d | _
 | g } | d }	 d | j om | d i ƒ  }
 d |
 _
 t | | ƒ } t | t d	 ƒ ƒ t |
 g ƒ g } |	 i t i | i | ƒ ƒ n |	 i t | | ƒ ƒ d  S(
   Nt   excs+   Python 3 does not support string exceptionsu   vali   iÿÿÿÿu    t   argst   tbu   with_traceback(   t   symst   clonet   typeR   t   STRINGt   cannot_convertt   gett   NoneR   t   childrent   prefixR   R   R   R   t   replaceR    t   Nodet   power(   t   selft   nodet   resultsR   R	   t   valt   _[1]t   cR
   t
   throw_argsR   t   et   with_tb(    (    s-   /usr/lib/python2.6/lib2to3/fixes/fix_throw.pyt	   transform   s*    	5		
	% (   t   __name__t
   __module__t   PATTERNR!   (    (    (    s-   /usr/lib/python2.6/lib2to3/fixes/fix_throw.pyR      s   N(   t   __doc__t    R    t   pgen2R   R   t
   fixer_utilR   R   R   R   R   t   BaseFixR   (    (    (    s-   /usr/lib/python2.6/lib2to3/fixes/fix_throw.pyt   <module>   s
   (