B
    ­»ˆdg0  ã               @   sT   d dl mZmZ d dlZd dlZG dd„ deƒZG dd„ deƒZdd„ Zd	d
„ ZdS )é    )Ú	AstToGAstÚ	GAstToAstNc               @   sœ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%S )&Ú
Ast2ToGAstc             C   s   t  |  |j¡g ¡}|S )N)ÚgastÚModuleÚ_visitÚbody)ÚselfÚnodeÚnew_node© r   ú;/var/www/html/venv/lib/python3.7/site-packages/gast/ast2.pyÚvisit_Module	   s    
zAst2ToGAst.visit_Modulec             C   sP   t  |  |j¡|  |j¡|  |j¡|  |j¡d d ¡}t  ||¡ d  |_|_	|S )N)
r   ÚFunctionDefr   ÚnameÚargsr   Údecorator_listÚcopy_locationÚ
end_linenoÚend_col_offset)r	   r
   r   r   r   r   Úvisit_FunctionDef   s    



zAst2ToGAst.visit_FunctionDefc          	   C   sN   t  |  |j¡|  |j¡g |  |j¡|  |j¡¡}t  ||¡ d  |_|_	|S )N)
r   ÚClassDefr   r   Úbasesr   r   r   r   r   )r	   r
   r   r   r   r   Úvisit_ClassDef   s    


zAst2ToGAst.visit_ClassDefc             C   sN   t  |  |j¡|  |j¡|  |j¡|  |j¡g ¡}t  ||¡ d  |_|_	|S )N)
r   ÚForr   ÚtargetÚiterr   Úorelser   r   r   )r	   r
   r   r   r   r   Ú	visit_For+   s    



zAst2ToGAst.visit_Forc             C   sL   t  t  |  |j¡|  |j¡¡g|  |j¡d ¡}t  ||¡ d  |_|_	|S )N)
r   ÚWithÚwithitemr   Úcontext_exprÚoptional_varsr   r   r   r   )r	   r
   r   r   r   r   Ú
visit_With7   s    

zAst2ToGAst.visit_Withc             C   sÚ   |   |j¡}|   |j¡}|   |j¡}|}|d k	rXt ||gg ¡}t ||¡ d  |_|_|d k	r²t 	|dt 
¡ ¡}t ||¡ d  |_|_t ||gg ¡}t ||¡ d  |_|_t |d ¡}t ||¡ d  |_|_|S )NÚwith_traceback)r   ÚtypeÚinstZtbackr   ÚCallr   r   r   Ú	AttributeÚLoadÚRaise)r	   r
   ZntypeZninstZntbackÚwhatÚattrr   r   r   r   Úvisit_RaiseD   s,    zAst2ToGAst.visit_Raisec             C   sD   t  |  |j¡|  |j¡|  |j¡g ¡}t  ||¡ d  |_|_|S )N)	r   ÚTryr   r   Úhandlersr   r   r   r   )r	   r
   r   r   r   r   Úvisit_TryExceptc   s    


zAst2ToGAst.visit_TryExceptc             C   s<   t  |  |j¡g g |  |j¡¡}t  ||¡ d  |_|_|S )N)r   r.   r   r   Ú	finalbodyr   r   r   )r	   r
   r   r   r   r   Úvisit_TryFinallyn   s    
zAst2ToGAst.visit_TryFinallyc             C   s<   t  |  |j¡|  |j¡d d ¡}t  ||¡ d  |_|_|S )N)r   ÚNamer   ÚidÚctxr   r   r   )r	   r
   r   r   r   r   Ú
visit_Name{   s    

zAst2ToGAst.visit_Namec             C   s*   t  |jd ¡}t  ||¡ d  |_|_|S )N)r   ÚConstantÚnr   r   r   )r	   r
   r   r   r   r   Ú	visit_Num†   s    zAst2ToGAst.visit_Numc             C   sF   |   |j¡}t |   |j¡||   |j¡¡}t ||¡ d  |_|_|S )N)	r   Úslicer   Ú	SubscriptÚvaluer5   r   r   r   )r	   r
   Ú	new_slicer   r   r   r   Úvisit_Subscript   s    
zAst2ToGAst.visit_Subscriptc             C   s(   t  td ¡}t  ||¡ d  |_|_|S )N)r   r7   ÚEllipsisr   r   r   )r	   r
   r   r   r   r   Úvisit_Ellipsisš   s    zAst2ToGAst.visit_Ellipsisc             C   s   |   |j¡S )N)r   r<   )r	   r
   r   r   r   Úvisit_Index£   s    zAst2ToGAst.visit_Indexc             C   s8   |   |j¡}t |t ¡ ¡}t ||¡ d  |_|_|S )N)r   Zdimsr   ÚTupler)   r   r   r   )r	   r
   Znew_dimsr   r   r   r   Úvisit_ExtSlice¦   s
    zAst2ToGAst.visit_ExtSlicec             C   s*   t  |jd ¡}t  ||¡ d  |_|_|S )N)r   r7   Úsr   r   r   )r	   r
   r   r   r   r   Ú	visit_Str­   s    zAst2ToGAst.visit_Strc             C   s®   |j r>t |  |j ¡t ¡ ¡}t ||¡ d  |_|_|g}ng }|jr`t 	d |  |j¡¡g}ng }t 
|  |j¡|  |j¡| |  |j¡| ¡}t ||¡ d  |_|_|S )N)Ústarargsr   ÚStarredr   r)   r   r   r   ÚkwargsÚkeywordr'   Úfuncr   Úkeywords)r	   r
   ÚstarZstarredrH   r   r   r   r   Ú
visit_Call¶   s     
zAst2ToGAst.visit_Callc             C   sF   t j|  |j¡|  |j¡|  |j¡dd}t  ||¡ d  |_|_|S )Nr   )r   r   ÚifsZis_async)	r   Úcomprehensionr   r   r   rN   r   r   r   )r	   r
   r   r   r   r   Úvisit_comprehensionÍ   s    


zAst2ToGAst.visit_comprehensionc             C   s   |j rt |j t ¡ ¡}nd }|jr8t |jt ¡ ¡}nd }|j rVt |j t ¡ ¡}nd }t |  |j¡g |  |¡g g |  |¡|  |j	¡¡}|S )N)
ÚvarargÚastr3   ÚParamÚkwargr   Ú	argumentsr   r   Údefaults)r	   r
   rQ   rT   r   r   r   r   Úvisit_argumentsÙ   s$    
zAst2ToGAst.visit_argumentsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r#   r-   r0   r2   r6   r9   r>   r@   rA   rC   rE   rM   rP   rW   r   r   r   r   r      s$   			r   c               @   st   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú
GAstToAst2c             C   s   t  |  |j¡¡}|S )N)rR   r   r   r   )r	   r
   r   r   r   r   r   ù   s    zGAstToAst2.visit_Modulec             C   sp   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}|jjrHt  |jj|¡ |jj	r`t  |jj	|¡ t  ||¡ |S )N)
rR   r   r   r   r   r   r   rQ   r   rT   )r	   r
   r   r   r   r   r   þ   s    


zGAstToAst2.visit_FunctionDefc             C   s@   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S )N)rR   r   r   r   r   r   r   r   )r	   r
   r   r   r   r   r     s    


zGAstToAst2.visit_ClassDefc             C   s@   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S )N)rR   r   r   r   r   r   r   r   )r	   r
   r   r   r   r   r     s    


zGAstToAst2.visit_Forc             C   sB   t  |  |jd j¡|  |jd j¡|  |j¡¡}t  ||¡ |S )Nr   )rR   r   r   Úitemsr!   r"   r   r   )r	   r
   r   r   r   r   r#   $  s    zGAstToAst2.visit_Withc             C   s~   t |jtjƒrPt |jjtjƒrP|jjjdkrP|  |jjj¡}|  |jj	d ¡}n|  |j¡}d }t
 |d |¡}t
 ||¡ |S )Nr$   r   )Ú
isinstanceÚexcr   r'   rJ   r(   r,   r   r<   r   rR   r*   r   )r	   r
   ÚraisedÚ	tracebackr   r   r   r   r-   -  s    zGAstToAst2.visit_Raisec             C   sZ   |j r$t |  |j¡|  |j ¡¡}n&t |  |j¡|  |j¡|  |j¡¡}t ||¡ |S )N)	r1   rR   Z
TryFinallyr   r   Z	TryExceptr/   r   r   )r	   r
   r   r   r   r   Ú	visit_Try:  s    


zGAstToAst2.visit_Tryc             C   s,   t  |  |j¡|  |j¡¡}t  ||¡ |S )N)rR   r3   r   r4   r5   r   )r	   r
   r   r   r   r   r6   K  s
    
zGAstToAst2.visit_Namec             C   sT   t |jtttttfƒr$t |j¡}n |jt	kr8t 	¡ }nt 
|j¡}t ||¡ |S )N)r]   r<   ÚboolÚintÚlongÚfloatÚcomplexrR   ÚNumr?   ÚStrr   )r	   r
   r   r   r   r   Úvisit_ConstantS  s    

zGAstToAst2.visit_Constantc                sŽ   dd„ ‰ t |jtjƒr6t ‡ ‡fdd„|jjD ƒ¡}nˆ ˆ |j¡ƒ}t ||j¡ t 	ˆ |j
¡|ˆ |j¡¡}t ||¡ d  |_|_|S )Nc             S   s$   t | tjtjfƒr| S t | ¡S d S )N)r]   rR   ÚSlicer?   ÚIndex)rD   r   r   r   Úadjust_slice^  s    z0GAstToAst2.visit_Subscript.<locals>.adjust_slicec                s   g | ]}ˆ ˆ  |¡ƒ‘qS r   )r   )Ú.0Úelt)rl   r	   r   r   ú
<listcomp>d  s   z.GAstToAst2.visit_Subscript.<locals>.<listcomp>)r]   r:   r   rB   rR   ÚExtSliceÚeltsr   r   r;   r<   r5   r   r   )r	   r
   r=   r   r   )rl   r	   r   r>   ]  s    
zGAstToAst2.visit_Subscriptc          	   C   s¼   |j r4t|j d tjƒr4|j d d… }|j d j}n
|j }d }|jrp|jd jd krp|jd d… }|jd j}n
|j}d }t |  	|j
¡|  	|¡|  	|¡|  	|¡|  	|¡¡}t ||¡ |S )Néÿÿÿÿ)r   r]   r   rG   r<   rK   ÚargrR   r'   r   rJ   r   )r	   r
   r   rF   rK   rH   r   r   r   r   rM   s  s$    
zGAstToAst2.visit_Callc             C   s"   t  |jt  ¡ ¡}t  ||¡ |S )N)rR   r3   rs   rS   r   )r	   r
   r   r   r   r   Ú	visit_argŒ  s    zGAstToAst2.visit_argc             C   sL   |j o|j j}|jo|jj}t |  |j¡|  |¡|  |¡|  |j¡¡}|S )N)rQ   r4   rT   rR   rU   r   r   rV   )r	   r
   rQ   rT   r   r   r   r   rW   ’  s    
zGAstToAst2.visit_argumentsN)rX   rY   rZ   r   r   r   r   r#   r-   ra   r6   ri   r>   rM   rt   rW   r   r   r   r   r[   ö   s   	
r[   c             C   s   t ƒ  | ¡S )N)r   Úvisit)r
   r   r   r   Úast_to_gastŸ  s    rv   c             C   s   t ƒ  | ¡S )N)r[   ru   )r
   r   r   r   Úgast_to_ast£  s    rw   )	Zastnr   r   rR   r   r   r[   rv   rw   r   r   r   r   Ú<module>   s    q *