3 \.�@sVddlmZddlmZddlmZddlmZmZmZm Z m Z Gdd�dej �Z dS)�)�pytree)�token)� fixer_base)�Name�Call�ArgList�Attr�is_tuplec@seZdZdZdZdd�ZdS)�FixThrowTz� power< any trailer< '.' 'throw' > trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' > > | power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > > c Cs�|j}|dj�}|jtjkr.|j|d�dS|jd�}|dkrDdS|j�}t|�rndd�|jdd �D�}n d|_ |g}|d}d |kr�|d j�}d|_ t ||�} t | t d ��t |g�g} |jtj|j| ��n|jt ||��dS) N�excz+Python 3 does not support string exceptions�valcSsg|] }|j��qS�)�clone)�.0�cr r �//usr/lib64/python3.6/lib2to3/fixes/fix_throw.py� )sz&FixThrow.transform..���args�tb�with_traceback�����)�symsr�typer�STRINGZcannot_convert�getr Zchildren�prefixrrrr�replacerZNodeZpower) �selfZnodeZresultsrr r rZ throw_argsr�eZwith_tbr r r� transforms*      zFixThrow.transformN)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNr!r r r rr sr N) rrZpgen2rrZ fixer_utilrrrrr ZBaseFixr r r r r� s