o
    oKaó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 rPd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 rhd*d+„ Zd,S d,S )-Ú
Ast3ToGAsté	   c                 C   s(   t  |  |j¡t  ¡ ¡}t  ||¡ |S ©N)ÚgastÚTupleÚ_visitZdimsÚLoadÚcopy_location©ÚselfÚnodeÚnew_node© r   ú)lib/python3.10/site-packages/gast/ast3.pyÚvisit_ExtSlice
   s   zAst3ToGAst.visit_ExtSlicec                 C   s   |   |j¡S r   )r	   Úvalue)r   r   r   r   r   Úvisit_Index   ó   zAst3ToGAst.visit_Indexé   c                 C   s   t  |  |j¡g ¡}|S r   )r   ÚModuler	   Úbodyr   r   r   r   Úvisit_Module   s
   
þzAst3ToGAst.visit_Modulec                 C   ó   t  |jd ¡}t  ||¡ |S r   )r   ÚConstantÚnr   r   r   r   r   Ú	visit_Num   ó   þzAst3ToGAst.visit_Numc                 C   s(   t  td ¡}t  ||¡ d  |_|_|S r   )r   r   ÚEllipsisr   Ú
end_linenoÚend_col_offsetr   r   r   r   Úvisit_Ellipsis"   s   þzAst3ToGAst.visit_Ellipsisc                 C   r   r   ©r   r   Úsr   r   r   r   r   Ú	visit_Str+   r   zAst3ToGAst.visit_Strc                 C   r   r   r#   r   r   r   r   Úvisit_Bytes3   r   zAst3ToGAst.visit_Bytesc              	   C   óL   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S r   )	r   ÚFunctionDefr	   ÚnameÚargsr   Údecorator_listÚreturnsr   r   r   r   r   Úvisit_FunctionDef;   ó   




úzAst3ToGAst.visit_FunctionDefc              	   C   r'   r   )	r   ÚAsyncFunctionDefr	   r)   r*   r   r+   r,   r   r   r   r   r   Úvisit_AsyncFunctionDefG   r.   z!Ast3ToGAst.visit_AsyncFunctionDefc                 C   óB   t  |  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡ |S r   )r   ÚForr	   ÚtargetÚiterr   Úorelser   r   r   r   r   Ú	visit_ForS   ó   



ûzAst3ToGAst.visit_Forc                 C   r1   r   )r   ÚAsyncForr	   r3   r4   r   r5   r   r   r   r   r   Úvisit_AsyncFor^   r7   zAst3ToGAst.visit_AsyncForc                 C   ó.   t  |  |j¡|  |j¡d ¡}t  ||¡ |S r   )r   ÚWithr	   Úitemsr   r   r   r   r   r   Ú
visit_Withi   ó   

ýzAst3ToGAst.visit_Withc                 C   r:   r   )r   Ú	AsyncWithr	   r<   r   r   r   r   r   r   Úvisit_AsyncWithr   r>   zAst3ToGAst.visit_AsyncWithc                 C   s¾   t jjdk r<|jrt |  |j¡t ¡ ¡}t ||¡ |g}ng }|j	r9t 
d |  |j	¡¡}t ||j	¡ |g}n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   ZstarZstarredÚkwrG   r   r   r   r   Ú
visit_Call{   s*   ÿ
ýzAst3ToGAst.visit_Callc                 C   sV   |j d u rt d d ¡}n|j du rt dd ¡}n|j du r#t dd ¡}t ||¡ |S )NTF)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 r   )
r   Ú	argumentsr	   r*   ÚvarargÚ
kwonlyargsÚkw_defaultsÚkwargÚdefaultsr   r   r   r   r   Úvisit_arguments    s   





ù	zAst3ToGAst.visit_argumentsc                 C   s0   t  |  |j¡|  |j¡d d ¡}t ||¡ |S r   )r   ÚNamer	   ÚidÚctxÚastr   r   r   r   r   Ú
visit_Name­   s   

üzAst3ToGAst.visit_Namec                 C   s\   t jjdk r
d g}n|  |j¡g}tj|  |j¡t ¡ |  |j	¡g|¢R Ž }t
 ||¡ |S ©Nr   )rB   rC   rD   r	   Útype_commentr   rV   ÚargZParamÚ
annotationrY   r   ©r   r   Ú
extra_argsr   r   r   r   Ú	visit_arg·   s   

ýüzAst3ToGAst.visit_argc              	   C   sP   |j r#t |  |j¡t |j t ¡ d d ¡|  |j¡¡}t 	||¡ |S |  
|¡S r   )r)   r   ÚExceptHandlerr	   ÚtyperV   ZStorer   rY   r   Úgeneric_visitr   r   r   r   Úvisit_ExceptHandlerÆ   s   

ý
zAst3ToGAst.visit_ExceptHandleré   c                 C   s6   t j|  |j¡|  |j¡|  |j¡dd}t ||¡S )Nr   )r3   r4   ÚifsÚis_async)r   Zcomprehensionr	   r3   r4   rg   rY   r   r   r   r   r   Úvisit_comprehensionÓ   s   


üzAst3ToGAst.visit_comprehensionN)Ú__name__Ú
__module__Ú__qualname__rB   rC   rD   r   r   r   r   r"   r%   r&   r-   r0   r6   r9   r=   r@   rM   rN   rU   rZ   ra   re   ri   r   r   r   r   r      s2    			

þr   c                   @   s¾   e Zd Zejjdk rdd„ Zejjdk rdd„ Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zejjdk r7dd„ Zdd„ Zn"ejjdk rYd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ƒrBtdd„ |jjD ƒƒr(t ‡ fdd„|  |jj¡D ƒ¡}n"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 r   )Ú
isinstancerY   ZSliceÚIndex)r$   r   r   r   Úadjust_sliceà   s   
z0GAstToAst3.visit_Subscript.<locals>.adjust_slicec                 s   s    | ]	}t |tjƒV  qd S r   )rn   r   Úslice)Ú.0Úeltr   r   r   Ú	<genexpr>æ   s   € z-GAstToAst3.visit_Subscript.<locals>.<genexpr>c                    s   g | ]}ˆ |ƒ‘qS r   r   )rr   Úx©rp   r   r   Ú
<listcomp>è   s    z.GAstToAst3.visit_Subscript.<locals>.<listcomp>)rn   rq   r   r   ÚanyÚeltsrY   ZExtSlicer	   r
   r   ro   Z	Subscriptr   rX   )r   r   Z	new_slicer   r   r   rv   r   Úvisit_Subscriptß   s(   
ÿÿ

ýzGAstToAst3.visit_Subscriptr   c                 C   s   t  |  |j¡¡}|S r   )rY   r   r	   r   r   r   r   r   r   ü   s   zGAstToAst3.visit_Modulec                 C   sœ   |j d u rt |j ¡}n:|j tu rt ¡ }n0t|j tƒr#t |j ¡}n#t|j tttfƒr3t 	|j ¡}nt|j t
ƒr@t |j ¡}nt |j ¡}t ||¡ |S r   )r   rY   ZNameConstantr   rn   ÚboolÚintÚfloatÚcomplexZNumÚstrZStrZBytesr   r   r   r   r   Úvisit_Constant   s   


zGAstToAst3.visit_Constantc                 C   s^   |d u rd S t jjdk rtƒ }n|  |j¡f}tj|  |j¡|  |j	¡g|¢R Ž }t 
||¡S r[   )rB   rC   rD   Útupler	   r\   rY   r]   rW   r^   r   r_   r   r   r   Ú	_make_arg  s   

þýzGAstToAst3._make_argc                 C   ó,   t  |  |j¡|  |j¡¡}t  ||¡ |S r   )rY   rV   r	   rW   rX   r   r   r   r   r   rZ      ó   

þzGAstToAst3.visit_Namec                 C   s>   |j rt |  |j¡|j j|  |j¡¡}t ||¡S |  |¡S r   )	r)   rY   rb   r	   rc   rW   r   r   rd   r   r   r   r   re   (  s   

ý
zGAstToAst3.visit_ExceptHandlerrA   c              	   C   s¼   |j rt|j d tjƒr|j d d… }|j d j}n|j }d }|jr8|jd jd u r8|jd d… }|jd j}n|j}d }t |  	|j
¡|  	|¡|  	|¡|  	|¡|  	|¡¡}t ||¡ |S )Néÿÿÿÿ)r*   rn   r   rF   r   rK   r]   rY   rI   r	   rJ   r   )r   r   r*   rE   rK   rG   r   r   r   r   rM   4  s&   
ûzGAstToAst3.visit_Callc              	   C   sV   |   |¡ tj|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d d d}t 	||¡S )N)r)   ÚbasesrK   r   r+   rE   rG   )
rd   rY   ZClassDefr	   r)   r†   rK   r   r+   r   r   r   r   r   Úvisit_ClassDefM  s   





ù	zGAstToAst3.visit_ClassDefc              	   C   óJ   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S r   )	rY   r(   r	   r)   r*   r   r+   r,   r   r   r   r   r   r-   \  ó   




ûzGAstToAst3.visit_FunctionDefc              	   C   rˆ   r   )	rY   r/   r	   r)   r*   r   r+   r,   r   r   r   r   r   r0   g  r‰   z!GAstToAst3.visit_AsyncFunctionDefc                 C   s@   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S r   )rY   r2   r	   r3   r4   r   r5   r   r   r   r   r   r6   r  s   



üzGAstToAst3.visit_Forc                 C   r1   r   )rY   r8   r	   r3   r4   r   r5   r   r   r   r   r   r9   |  r7   zGAstToAst3.visit_AsyncForc                 C   rƒ   r   )rY   r;   r	   r<   r   r   r   r   r   r   r=   ‡  r„   zGAstToAst3.visit_Withc                 C   rƒ   r   )rY   r?   r	   r<   r   r   r   r   r   r   r@     r„   zGAstToAst3.visit_AsyncWithc                 C   s6   t  |  |j¡|  |j¡|  |j¡¡}t  ||¡ |S r   )rY   rI   r	   rJ   r*   rK   r   r   r   r   r   rM   —  s   


ýc                    s¨   ˆ   |j¡‡ fdd„|jD ƒˆ  |j¡ˆ   |j¡ˆ  |j¡g}tjj	dkrAt
j‡ fdd„|jD ƒ‡ fdd„|jD ƒg|¢R Ž }|S t
j‡ fdd„|jD ƒg|¢R Ž }|S )Nc                    ó   g | ]}ˆ   |¡‘qS r   ©r‚   ©rr   r   ©r   r   r   rw   ¢  ó    z.GAstToAst3.visit_arguments.<locals>.<listcomp>r   c                    rŠ   r   r‹   )rr   r]   r   r   r   rw   ¨  rŽ   c                    rŠ   r   r‹   rŒ   r   r   r   rw   ©  rŽ   c                    rŠ   r   r‹   rŒ   r   r   r   rw   ®  rŽ   )r‚   rP   rQ   r	   rR   rS   rT   rB   rC   rD   rY   rO   Úposonlyargsr*   r_   r   r   r   rU      s(   



üþý
üÿþzGAstToAst3.visit_argumentsN)rj   rk   rl   rB   rC   rD   rz   r   r€   r‚   rZ   re   rM   r‡   r-   r0   r6   r9   r=   r@   rU   r   r   r   r   rm   Ý   s*    


	rm   c                 C   ó   t ƒ  | ¡S r   )r   Úvisit©r   r   r   r   Úast_to_gast´  r   r“   c                 C   r   r   )rm   r‘   r’   r   r   r   Úgast_to_ast¸  r   r”   )
Z	gast.astnr   r   r   rY   rB   r   rm   r“   r”   r   r   r   r   Ú<module>   s     W X