B
    ­»ˆdó7  ã               @   s\   d dl mZmZ d dl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ejjdk r$dd„ Zdd„ Zejjdk r 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ejjd)k rÌd*d+„ Zd,S )-Ú
Ast3ToGAsté	   c             C   s(   t  |  |j¡t  ¡ ¡}t  ||¡ |S )N)ÚgastÚTupleÚ_visitZdimsÚLoadÚcopy_location)ÚselfÚnodeÚnew_node© r   ú;/var/www/html/venv/lib/python3.7/site-packages/gast/ast3.pyÚvisit_ExtSlice
   s    zAst3ToGAst.visit_ExtSlicec             C   s   |   |j¡S )N)r   Úvalue)r   r   r   r   r   Úvisit_Index   s    zAst3ToGAst.visit_Indexé   c             C   s   t  |  |j¡g ¡}|S )N)r   ÚModuler   Úbody)r   r   r   r   r   r   Úvisit_Module   s    
zAst3ToGAst.visit_Modulec             C   s   t  |jd ¡}t  ||¡ |S )N)r   ÚConstantÚnr
   )r   r   r   r   r   r   Ú	visit_Num   s
    zAst3ToGAst.visit_Numc             C   s(   t  td ¡}t  ||¡ d  |_|_|S )N)r   r   ÚEllipsisr
   Z
end_linenoZend_col_offset)r   r   r   r   r   r   Úvisit_Ellipsis"   s    zAst3ToGAst.visit_Ellipsisc             C   s   t  |jd ¡}t  ||¡ |S )N)r   r   Úsr
   )r   r   r   r   r   r   Ú	visit_Str+   s
    zAst3ToGAst.visit_Strc             C   s   t  |jd ¡}t  ||¡ |S )N)r   r   r   r
   )r   r   r   r   r   r   Úvisit_Bytes3   s
    zAst3ToGAst.visit_Bytesc          	   C   sL   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S )N)	r   ÚFunctionDefr   ÚnameÚargsr   Údecorator_listÚreturnsr
   )r   r   r   r   r   r   Úvisit_FunctionDef;   s    




zAst3ToGAst.visit_FunctionDefc          	   C   sL   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S )N)	r   ÚAsyncFunctionDefr   r    r!   r   r"   r#   r
   )r   r   r   r   r   r   Úvisit_AsyncFunctionDefG   s    




z!Ast3ToGAst.visit_AsyncFunctionDefc             C   sB   t  |  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S )N)r   ÚForr   ÚtargetÚiterr   Úorelser
   )r   r   r   r   r   r   Ú	visit_ForS   s    



zAst3ToGAst.visit_Forc             C   sB   t  |  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S )N)r   ÚAsyncForr   r(   r)   r   r*   r
   )r   r   r   r   r   r   Úvisit_AsyncFor^   s    



zAst3ToGAst.visit_AsyncForc             C   s.   t  |  |j¡|  |j¡d ¡}t  ||¡ |S )N)r   ÚWithr   Úitemsr   r
   )r   r   r   r   r   r   Ú
visit_Withi   s    

zAst3ToGAst.visit_Withc             C   s.   t  |  |j¡|  |j¡d ¡}t  ||¡ |S )N)r   Ú	AsyncWithr   r/   r   r
   )r   r   r   r   r   r   Úvisit_AsyncWithr   s    

zAst3ToGAst.visit_AsyncWithc             C   s¾   t jjdk rx|jr>t |  |j¡t ¡ ¡}t ||¡ |g}ng }|j	rrt 
d |  |j	¡¡}t ||j	¡ |g}q€g }ng  }}t |  |j¡|  |j¡| |  |j¡| ¡}t ||¡ |S )Né   )ÚsysÚversion_infoÚminorÚstarargsr   ÚStarredr   r	   r
   ÚkwargsÚkeywordÚCallÚfuncr!   Úkeywords)r   r   ÚstarZstarredÚkwr9   r   r   r   r   Ú
visit_Call{   s&    

zAst3ToGAst.visit_Callc             C   sV   |j d krt d d ¡}n.|j dkr0t dd ¡}n|j dkrFt dd ¡}t ||¡ |S )NTF)r   r   r   r
   )r   r   r   r   r   r   Úvisit_NameConstant–   s    


zAst3ToGAst.visit_NameConstantc             C   sV   t  |  |j¡g |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  	||¡ |S )N)
r   Ú	argumentsr   r!   ÚvarargÚ
kwonlyargsÚkw_defaultsÚkwargÚdefaultsr
   )r   r   r   r   r   r   Úvisit_arguments    s    




zAst3ToGAst.visit_argumentsc             C   s0   t  |  |j¡|  |j¡d d ¡}t ||¡ |S )N)r   ÚNamer   ÚidÚctxÚastr
   )r   r   r   r   r   r   Ú
visit_Name­   s    

zAst3ToGAst.visit_Namec             C   sZ   t jjdk rd g}n|  |j¡g}tj|  |j¡t ¡ |  |j	¡f|žŽ }t
 ||¡ |S )Nr   )r4   r5   r6   r   Útype_commentr   rI   ÚargÚParamÚ
annotationrL   r
   )r   r   Ú
extra_argsr   r   r   r   Ú	visit_arg·   s    
zAst3ToGAst.visit_argc          	   C   sT   |j rFt |  |j¡t |j t ¡ d d ¡|  |j¡¡}t 	||¡ |S |  
|¡S d S )N)r    r   ÚExceptHandlerr   ÚtyperI   ÚStorer   rL   r
   Úgeneric_visit)r   r   r   r   r   r   Úvisit_ExceptHandlerÆ   s    
zAst3ToGAst.visit_ExceptHandleré   c             C   s6   t j|  |j¡|  |j¡|  |j¡dd}t ||¡S )Nr   )r(   r)   ÚifsZis_async)r   Úcomprehensionr   r(   r)   rZ   rL   r
   )r   r   r   r   r   r   Úvisit_comprehensionÓ   s    


zAst3ToGAst.visit_comprehensionN)Ú__name__Ú
__module__Ú__qualname__r4   r5   r6   r   r   r   r   r   r   r   r$   r&   r+   r-   r0   r2   r@   rA   rH   rM   rS   rX   r\   r   r   r   r   r      s.   			

r   c               @   s¾   e Zd Zejjdk rdd„ Zejjdk r8dd„ Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zejjdk rndd„ Zdd„ ZnDejjdk r²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 )$Ú
GAstToAst3r   c                sÐ   dd„ ‰ t |jtjƒr„tdd„ |jjD ƒƒrPt ‡ fdd„|  |jj¡D ƒ¡}q”t |  |jj¡t 	¡ ¡}t 
||j¡ t |¡}nˆ |  |j¡ƒ}t 
||j¡ t |  |j¡||  |j¡¡}t 
||¡ |S )Nc             S   s   t | tjƒr| S t | ¡S d S )N)Ú
isinstancerL   ÚSliceÚIndex)r   r   r   r   Úadjust_sliceà   s    z0GAstToAst3.visit_Subscript.<locals>.adjust_slicec             s   s   | ]}t |tjƒV  qd S )N)ra   r   Úslice)Ú.0Úeltr   r   r   ú	<genexpr>æ   s    z-GAstToAst3.visit_Subscript.<locals>.<genexpr>c                s   g | ]}ˆ |ƒ‘qS r   r   )rf   Úx)rd   r   r   ú
<listcomp>è   s    z.GAstToAst3.visit_Subscript.<locals>.<listcomp>)ra   re   r   r   ÚanyÚeltsrL   ÚExtSlicer   r	   r
   rc   Ú	Subscriptr   rK   )r   r   Z	new_slicer   r   r   )rd   r   Úvisit_Subscriptß   s"    

zGAstToAst3.visit_Subscriptr   c             C   s   t  |  |j¡¡}|S )N)rL   r   r   r   )r   r   r   r   r   r   r   ü   s    zGAstToAst3.visit_Modulec             C   sœ   |j d krt |j ¡}nt|j tkr,t ¡ }n`t|j tƒrFt |j ¡}nFt|j tttfƒrft 	|j ¡}n&t|j t
ƒr€t |j ¡}nt |j ¡}t ||¡ |S )N)r   rL   ÚNameConstantr   ra   ÚboolÚintÚfloatÚcomplexÚNumÚstrÚStrÚBytesr
   )r   r   r   r   r   r   Úvisit_Constant   s    


zGAstToAst3.visit_Constantc             C   s\   |d krd S t jjdk r tƒ }n|  |j¡f}tj|  |j¡|  |j	¡f|žŽ }t 
||¡S )Nr   )r4   r5   r6   Útupler   rN   rL   rO   rJ   rQ   r
   )r   r   rR   r   r   r   r   Ú	_make_arg  s    
zGAstToAst3._make_argc             C   s,   t  |  |j¡|  |j¡¡}t  ||¡ |S )N)rL   rI   r   rJ   rK   r
   )r   r   r   r   r   r   rM      s
    
zGAstToAst3.visit_Namec             C   sB   |j r4t |  |j¡|j j|  |j¡¡}t ||¡S |  |¡S d S )N)	r    rL   rT   r   rU   rJ   r   r
   rW   )r   r   r   r   r   r   rX   (  s    
zGAstToAst3.visit_ExceptHandlerr3   c          	   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!   ra   r   r8   r   r=   rO   rL   r;   r   r<   r
   )r   r   r!   r7   r=   r9   r   r   r   r   r@   4  s$    
zGAstToAst3.visit_Callc          	   C   sV   |   |¡ tj|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d d d}t 	||¡S )N)r    Úbasesr=   r   r"   r7   r9   )
rW   rL   ÚClassDefr   r    r}   r=   r   r"   r
   )r   r   r   r   r   r   Úvisit_ClassDefM  s    





zGAstToAst3.visit_ClassDefc          	   C   sJ   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S )N)	rL   r   r   r    r!   r   r"   r#   r
   )r   r   r   r   r   r   r$   \  s    



zGAstToAst3.visit_FunctionDefc          	   C   sJ   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S )N)	rL   r%   r   r    r!   r   r"   r#   r
   )r   r   r   r   r   r   r&   g  s    



z!GAstToAst3.visit_AsyncFunctionDefc             C   s@   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S )N)rL   r'   r   r(   r)   r   r*   r
   )r   r   r   r   r   r   r+   r  s    


zGAstToAst3.visit_Forc             C   sB   t  |  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S )N)rL   r,   r   r(   r)   r   r*   r
   )r   r   r   r   r   r   r-   |  s    



zGAstToAst3.visit_AsyncForc             C   s,   t  |  |j¡|  |j¡¡}t  ||¡ |S )N)rL   r.   r   r/   r   r
   )r   r   r   r   r   r   r0   ‡  s
    
zGAstToAst3.visit_Withc             C   s,   t  |  |j¡|  |j¡¡}t  ||¡ |S )N)rL   r1   r   r/   r   r
   )r   r   r   r   r   r   r2     s
    
zGAstToAst3.visit_AsyncWithc             C   s6   t  |  |j¡|  |j¡|  |j¡¡}t  ||¡ |S )N)rL   r;   r   r<   r!   r=   r
   )r   r   r   r   r   r   r@   —  s    

c                s¢   ˆ   |j¡‡ fdd„|jD ƒˆ  |j¡ˆ   |j¡ˆ  |j¡g}tjj	dkr~t
j‡ fdd„|jD ƒ‡ fdd„|jD ƒf|žŽ }n t
j‡ fdd„|jD ƒf|žŽ }|S )Nc                s   g | ]}ˆ   |¡‘qS r   )r{   )rf   r   )r   r   r   rj   ¢  s    z.GAstToAst3.visit_arguments.<locals>.<listcomp>r   c                s   g | ]}ˆ   |¡‘qS r   )r{   )rf   rO   )r   r   r   rj   ¨  s    c                s   g | ]}ˆ   |¡‘qS r   )r{   )rf   r   )r   r   r   rj   ©  s    c                s   g | ]}ˆ   |¡‘qS r   )r{   )rf   r   )r   r   r   rj   ®  s    )r{   rC   rD   r   rE   rF   rG   r4   r5   r6   rL   rB   Zposonlyargsr!   )r   r   rR   r   r   )r   r   rH      s    



zGAstToAst3.visit_argumentsN)r]   r^   r_   r4   r5   r6   ro   r   ry   r{   rM   rX   r@   r   r$   r&   r+   r-   r0   r2   rH   r   r   r   r   r`   Ý   s(   


	r`   c             C   s   t ƒ  | ¡S )N)r   Úvisit)r   r   r   r   Úast_to_gast´  s    r   c             C   s   t ƒ  | ¡S )N)r`   r€   )r   r   r   r   Úgast_to_ast¸  s    r‚   )
Z	gast.astnr   r   r   rL   r4   r   r`   r   r‚   r   r   r   r   Ú<module>   s    W X