o
    ³2úh†4  ã                   @   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%d&„ Zd'd(„ Zd)S )*Ú
Ast2ToGAstc                 C   s   t  |  |j¡g ¡}|S ©N)ÚgastÚModuleÚ_visitÚbody©ÚselfÚnodeÚnew_node© r   úD/var/www/html/chatgem/venv/lib/python3.10/site-packages/gast/ast2.pyÚvisit_Module	   s
   
þzAst2ToGAst.visit_Modulec              	   C   sR   t  |  |j¡|  |j¡|  |j¡|  |j¡d d g ¡}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   sP   t  |  |j¡|  |j¡g |  |j¡|  |j¡g ¡}t  ||¡ d  |_|_	|S r   )
r   ÚClassDefr   r   Úbasesr	   r   r   r   r   r
   r   r   r   Úvisit_ClassDef   s   



ú	zAst2ToGAst.visit_ClassDefc                 C   s:   t  |  |j¡|  |j¡d ¡}t  ||¡ d  |_|_|S r   )r   ÚAssignr   ÚtargetsÚvaluer   r   r   r
   r   r   r   Úvisit_Assign-   s   

ýzAst2ToGAst.visit_Assignc                 C   sN   t  |  |j¡|  |j¡|  |j¡|  |j¡g ¡}t  ||¡ d  |_|_	|S r   )
r   ÚForr   ÚtargetÚiterr	   Úorelser   r   r   r
   r   r   r   Ú	visit_For8   s   



ûzAst2ToGAst.visit_Forc                 C   sL   t  t  |  |j¡|  |j¡¡g|  |j¡d ¡}t  ||¡ d  |_|_	|S r   )
r   ÚWithÚwithitemr   Úcontext_exprÚoptional_varsr	   r   r   r   r
   r   r   r   Ú
visit_WithD   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ÚinstÚtbackr   ÚCallr   r   r   Ú	AttributeÚLoadÚRaise)r   r   ÚntypeÚninstÚntbackÚwhatÚattrr   r   r   r   Úvisit_RaiseQ   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_TryExceptp   s   


üzAst2ToGAst.visit_TryExceptc                 C   s<   t  |  |j¡g g |  |j¡¡}t  ||¡ d  |_|_|S r   )r   r8   r   r	   Ú	finalbodyr   r   r   r
   r   r   r   Úvisit_TryFinally{   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   Ú	Subscriptr   r?   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 r   )r   rB   Ú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   Údimsr   ÚTupler0   r   r   r   )r   r   Únew_dimsr   r   r   r   Úvisit_ExtSlice³   s
   zAst2ToGAst.visit_ExtSlicec                 C   rA   r   )r   rB   Úsr   r   r   r
   r   r   r   Ú	visit_Strº   rE   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   r0   r   r   r   ÚkwargsÚkeywordr.   Úfuncr   Úkeywords)r   r   ÚstarÚstarredrW   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   Úcomprehensionr   r!   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rt |jt ¡ ¡}nd }|j r+t |j t ¡ ¡}nd }t |  |j¡g |  |¡g g |  |¡|  |j	¡¡}|S r   )
ÚvarargÚastr=   ÚParamÚkwargr   Ú	argumentsr   r   Údefaults©r   r   rb   re   r   r   r   r   Úvisit_argumentsæ   s&   

ù	zAst2ToGAst.visit_argumentsc                 C   s8   t  |  |j¡|  |j¡¡}d  |_|_d  |_|_|S r   )	r   Úaliasr   r   ÚasnameÚlinenoÚ
col_offsetr   r   r
   r   r   r   Úvisit_alias  s   

þzAst2ToGAst.visit_aliasN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r$   r)   r7   r:   r<   r@   rD   rJ   rL   rM   rR   rT   r]   ra   ri   rn   r   r   r   r   r      s*    			r   c                   @   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S ) Ú
GAstToAst2c                 C   s   t  |  |j¡¡}|S r   )rc   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   )
rc   r   r   r   r   r	   r   rb   r   re   r
   r   r   r   r     s   



üzGAstToAst2.visit_FunctionDefc                 C   ó@   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡ |S r   )rc   r   r   r   r   r	   r   r   r
   r   r   r   r   $  ó   



üzGAstToAst2.visit_ClassDefc                 C   ó,   t  |  |j¡|  |j¡¡}t  ||¡ |S r   )rc   r   r   r   r   r   r
   r   r   r   r   /  s   

þzGAstToAst2.visit_Assignc                 C   rs   r   )rc   r    r   r!   r"   r	   r#   r   r
   r   r   r   r$   8  rt   zGAstToAst2.visit_Forc                 C   sB   t  |  |jd j¡|  |jd j¡|  |j¡¡}t  ||¡ |S )Nr   )rc   r%   r   Úitemsr'   r(   r	   r   r
   r   r   r   r)   C  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.   rY   r/   r6   r   r   r   rc   r1   r   )r   r   ÚraisedÚ	tracebackr   r   r   r   r7   L  s   ÿzGAstToAst2.visit_Raisec                 C   sZ   |j rt |  |j¡|  |j ¡¡}nt |  |j¡|  |j¡|  |j¡¡}t ||¡ |S r   )	r;   rc   Ú
TryFinallyr   r	   Ú	TryExceptr9   r#   r   r
   r   r   r   Ú	visit_TryY  s   

þ


ýzGAstToAst2.visit_Tryc                 C   ru   r   )rc   r=   r   r>   r?   r   r
   r   r   r   r@   j  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   )rw   r   ÚboolÚintÚlongÚfloatÚcomplexrc   ÚNumrK   ÚStrr   r
   r   r   r   Úvisit_Constantr  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   )rw   rc   ÚSlicerK   ÚIndex)rS   r   r   r   Úadjust_slice}  s   
z0GAstToAst2.visit_Subscript.<locals>.adjust_slicec                    s   g | ]	}ˆ ˆ  |¡ƒ‘qS r   )r   )Ú.0Úelt©rˆ   r   r   r   Ú
<listcomp>ƒ  s    ÿz.GAstToAst2.visit_Subscript.<locals>.<listcomp>)rw   rF   r   rP   rc   ÚExtSliceÚeltsr   r   rG   r   r?   r   r   rH   r   r‹   r   rJ   |  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   rw   r   rV   r   rZ   Úargrc   r.   r   rY   r   )r   r   r   rU   rZ   rW   r   r   r   r   r]   ’  s&   
ûzGAstToAst2.visit_Callc                 C   s"   t  |jt  ¡ ¡}t  ||¡ |S r   )rc   r=   r   rd   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   )rb   r>   re   rc   rf   r   r   rg   rh   r   r   r   ri   ±  s   

üzGAstToAst2.visit_argumentsc                 C   s    t  |  |j¡|  |j¡¡}|S r   )rc   rj   r   r   rk   r
   r   r   r   rn   ½  s
   

þzGAstToAst2.visit_aliasN)ro   rp   rq   r   r   r   r   r$   r)   r7   r}   r@   r…   rJ   r]   r‘   ri   rn   r   r   r   r   rr     s     		
rr   c                 C   ó   t ƒ  | ¡S r   )r   Úvisit©r   r   r   r   Úast_to_gastÅ  rN   r•   c                 C   r’   r   )rr   r“   r”   r   r   r   Úgast_to_astÉ  rN   r–   )	Úastnr   r   rc   r   r   rr   r•   r–   r   r   r   r   Ú<module>   s       :