o
    oKag0  ã                   @   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   ú)lib/python3.10/site-packages/gast/ast2.pyÚvisit_Module	   s
   
þzAst2ToGAst.visit_Modulec                 C   sP   t  |  |j¡|  |j¡|  |j¡|  |j¡d d ¡}t  ||¡ d  |_|_	|S r   )
r   ÚFunctionDefr   ÚnameÚargsr	   Údecorator_listÚcopy_locationÚ
end_linenoÚend_col_offsetr
   r   r   r   Úvisit_FunctionDef   s   



úzAst2ToGAst.visit_FunctionDefc              	   C   sN   t  |  |j¡|  |j¡g |  |j¡|  |j¡¡}t  ||¡ d  |_|_	|S r   )
r   ÚClassDefr   r   Úbasesr	   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 r   )
r   ÚForr   ÚtargetÚiterr	   Úorelser   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 r   )
r   ÚWithZwithitemr   Úcontext_exprÚoptional_varsr	   r   r   r   r
   r   r   r   Ú
visit_With7   s   

þ
úzAst2ToGAst.visit_Withc                 C   sÚ   |   |j¡}|   |j¡}|   |j¡}|}|d ur,t ||gg ¡}t ||¡ d  |_|_|d urYt 	|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ntbackZwhatÚattrr   r   r   r   Úvisit_RaiseD   s.   ýzAst2ToGAst.visit_Raisec                 C   sD   t  |  |j¡|  |j¡|  |j¡g ¡}t  ||¡ d  |_|_|S r   )	r   ÚTryr   r	   Úhandlersr   r   r   r   r
   r   r   r   Úvisit_TryExceptc   s   


üzAst2ToGAst.visit_TryExceptc                 C   s<   t  |  |j¡g g |  |j¡¡}t  ||¡ d  |_|_|S r   )r   r.   r   r	   Ú	finalbodyr   r   r   r
   r   r   r   Úvisit_TryFinallyn   s   

üzAst2ToGAst.visit_TryFinallyc                 C   s<   t  |  |j¡|  |j¡d d ¡}t  ||¡ d  |_|_|S r   )r   ÚNamer   ÚidÚctxr   r   r   r
   r   r   r   Ú
visit_Name{   s   

üzAst2ToGAst.visit_Namec                 C   ó*   t  |jd ¡}t  ||¡ d  |_|_|S r   )r   ÚConstantÚnr   r   r   r
   r   r   r   Ú	visit_Num†   ó   þzAst2ToGAst.visit_Numc                 C   sF   |   |j¡}t |   |j¡||   |j¡¡}t ||¡ d  |_|_|S r   )	r   Úslicer   Ú	SubscriptÚvaluer5   r   r   r   ©r   r   Z	new_slicer   r   r   r   Úvisit_Subscript   s   

ýzAst2ToGAst.visit_Subscriptc                 C   s(   t  td ¡}t  ||¡ d  |_|_|S r   )r   r8   ÚEllipsisr   r   r   r
   r   r   r   Úvisit_Ellipsisš   s   þzAst2ToGAst.visit_Ellipsisc                 C   s   |   |j¡S r   )r   r>   )r   r   r   r   r   Úvisit_Index£   ó   zAst2ToGAst.visit_Indexc                 C   s8   |   |j¡}t |t ¡ ¡}t ||¡ d  |_|_|S r   )r   Zdimsr   ÚTupler*   r   r   r   )r   r   Znew_dimsr   r   r   r   Úvisit_ExtSlice¦   s
   zAst2ToGAst.visit_ExtSlicec                 C   r7   r   )r   r8   Úsr   r   r   r
   r   r   r   Ú	visit_Str­   r;   zAst2ToGAst.visit_Strc                 C   s®   |j rt |  |j ¡t ¡ ¡}t ||¡ d  |_|_|g}ng }|jr0t 	d |  |j¡¡g}ng }t 
|  |j¡|  |j¡| |  |j¡| ¡}t ||¡ d  |_|_|S r   )Ústarargsr   ÚStarredr   r*   r   r   r   ÚkwargsÚkeywordr(   Úfuncr   Úkeywords)r   r   ZstarZstarredrK   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   ÚifsÚis_async)	r   Zcomprehensionr   r   r   rP   r   r   r   r
   r   r   r   Úvisit_comprehensionÍ   s   


üzAst2ToGAst.visit_comprehensionc                 C   s   |j rt |j t ¡ ¡}nd }|jrt |jt ¡ ¡}nd }|j r+t |j t ¡ ¡}nd }t |  |j¡g |  |¡g g |  |¡|  |j	¡¡}|S r   )
ÚvarargÚastr3   ÚParamÚkwargr   Ú	argumentsr   r   Údefaults©r   r   rS   rV   r   r   r   r   Úvisit_argumentsÙ   s&   

ù	zAst2ToGAst.visit_argumentsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r$   r-   r0   r2   r6   r:   r@   rB   rC   rF   rH   rO   rR   rZ   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 r   )rT   r   r   r	   r
   r   r   r   r   ù   s   zGAstToAst2.visit_Modulec                 C   sp   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}|jjr$t  |jj|¡ |jj	r0t  |jj	|¡ t  ||¡ |S r   )
rT   r   r   r   r   r	   r   rS   r   rV   r
   r   r   r   r   þ   s   



üzGAstToAst2.visit_FunctionDefc                 C   ó@   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S r   )rT   r   r   r   r   r	   r   r   r
   r   r   r   r     ó   



üzGAstToAst2.visit_ClassDefc                 C   r_   r   )rT   r   r   r   r   r	   r   r   r
   r   r   r   r      r`   zGAstToAst2.visit_Forc                 C   sB   t  |  |jd j¡|  |jd j¡|  |j¡¡}t  ||¡ |S )Nr   )rT   r!   r   Úitemsr"   r#   r	   r   r
   r   r   r   r$   $  s   
ýzGAstToAst2.visit_Withc                 C   s~   t |jtjƒr(t |jjtjƒr(|jjjdkr(|  |jjj¡}|  |jj	d ¡}n|  |j¡}d }t
 |d |¡}t
 ||¡ |S )Nr%   r   )Ú
isinstanceÚexcr   r(   rM   r)   r,   r   r>   r   rT   r+   r   )r   r   Z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 r   )	r1   rT   Z
TryFinallyr   r	   Z	TryExceptr/   r   r   r
   r   r   r   Ú	visit_Try:  s   

þ


ýzGAstToAst2.visit_Tryc                 C   s,   t  |  |j¡|  |j¡¡}t  ||¡ |S r   )rT   r3   r   r4   r5   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	u rt 	¡ }nt 
|j¡}t ||¡ |S r   )rb   r>   ÚboolÚintZlongÚfloatÚcomplexrT   ZNumrA   ZStrr   r
   r   r   r   Úvisit_ConstantS  s   

zGAstToAst2.visit_Constantc                    sŽ   dd„ ‰ t |jtjƒrt ‡ ‡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 r   )rb   rT   ZSlicerA   ZIndex)rG   r   r   r   Úadjust_slice^  s   
z0GAstToAst2.visit_Subscript.<locals>.adjust_slicec                    s   g | ]	}ˆ ˆ  |¡ƒ‘qS r   )r   )Ú.0Úelt©rk   r   r   r   Ú
<listcomp>d  s    ÿz.GAstToAst2.visit_Subscript.<locals>.<listcomp>)rb   r<   r   rE   rT   ZExtSliceÚeltsr   r   r=   r>   r5   r   r   r?   r   rn   r   r@   ]  s   
ÿ

ýzGAstToAst2.visit_Subscriptc              	   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   rb   r   rJ   r>   rN   ÚargrT   r(   r   rM   r   )r   r   r   rI   rN   rK   r   r   r   r   rO   s  s&   
ûzGAstToAst2.visit_Callc                 C   s"   t  |jt  ¡ ¡}t  ||¡ |S r   )rT   r3   rr   rU   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 r   )rS   r4   rV   rT   rW   r   r   rX   rY   r   r   r   rZ   ’  s   

üzGAstToAst2.visit_argumentsN)r[   r\   r]   r   r   r   r    r$   r-   re   r6   rj   r@   rO   rs   rZ   r   r   r   r   r^   ö   s    	
r^   c                 C   ó   t ƒ  | ¡S r   )r   Úvisit©r   r   r   r   Úast_to_gastŸ  rD   rw   c                 C   rt   r   )r^   ru   rv   r   r   r   Úgast_to_ast£  rD   rx   )	Zastnr   r   rT   r   r   r^   rw   rx   r   r   r   r   Ú<module>   s     q *