o
    + iŠL  ã                   @   s`   d dl mZmZ d dl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Ú	GAstToAst)Úgasté    Nc                   @   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	ejjdk rbd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ejjd0k rxd1d2„ Zdejj  kr„d3k r•n d7S d4d„ Zd5d„ Zd6d„ Zd7S d7S )8Ú
Ast3ToGAsté
   c                 C   s8   t  |  |j¡|  |j¡¡}d  |_|_d  |_|_|S ©N)	r   ÚaliasÚ_visitÚnameÚasnameÚlinenoÚ
col_offsetÚ
end_linenoÚend_col_offset©ÚselfÚnodeÚnew_node© r   úb/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/utils/gast/ast3.pyÚvisit_alias)   s   

þzAst3ToGAst.visit_aliasé	   c                 C   s$   t  |  |j¡t  ¡ ¡}t  ||¡S r   )r   ÚTupler
   ÚdimsÚLoadÚcopy_locationr   r   r   r   Úvisit_ExtSlice4   s   zAst3ToGAst.visit_ExtSlicec                 C   s   |   |j¡S r   )r
   Úvalue)r   r   r   r   r   Úvisit_Index8   ó   zAst3ToGAst.visit_Indexc                 C   s:   t  |  |j¡|  |j¡d ¡}t  ||¡ d  |_|_|S r   )r   ÚAssignr
   Útargetsr   r   r   r   r   r   r   r   Úvisit_Assign;   s   

ýzAst3ToGAst.visit_Assigné   c                 C   s   t  |  |j¡g ¡}|S r   )r   ÚModuler
   Úbodyr   r   r   r   Úvisit_ModuleH   s   zAst3ToGAst.visit_Modulec                 C   ó   t  |jd ¡}t  ||¡S r   )r   ÚConstantÚnr   r   r   r   r   Ú	visit_NumL   ó
   þzAst3ToGAst.visit_Numc                 C   s(   t  td ¡}t  ||¡ d  |_|_|S r   )r   r)   ÚEllipsisr   r   r   r   r   r   r   Úvisit_EllipsisS   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_Bytesc   r,   zAst3ToGAst.visit_Bytesc              	   C   óH   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡g ¡}t  ||¡S r   ©	r   ÚClassDefr
   r   ÚbasesÚkeywordsr&   Údecorator_listr   r   r   r   r   Úvisit_ClassDefj   ó   




úzAst3ToGAst.visit_ClassDefc              	   C   óJ   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d g ¡}t  ||¡S r   )	r   ÚFunctionDefr
   r   Úargsr&   r8   Úreturnsr   r   r   r   r   Úvisit_FunctionDefu   ó   




ù	zAst3ToGAst.visit_FunctionDefc              	   C   r;   r   )	r   ÚAsyncFunctionDefr
   r   r=   r&   r8   r>   r   r   r   r   r   Úvisit_AsyncFunctionDef   r@   z!Ast3ToGAst.visit_AsyncFunctionDefc                 C   ó>   t  |  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡S r   )r   ÚForr
   ÚtargetÚiterr&   Úorelser   r   r   r   r   Ú	visit_For   ó   



ûzAst3ToGAst.visit_Forc                 C   rC   r   )r   ÚAsyncForr
   rE   rF   r&   rG   r   r   r   r   r   Úvisit_AsyncFor—   rI   zAst3ToGAst.visit_AsyncForc                 C   ó*   t  |  |j¡|  |j¡d ¡}t  ||¡S r   )r   ÚWithr
   Úitemsr&   r   r   r   r   r   Ú
visit_With¡   ó   

ýzAst3ToGAst.visit_Withc                 C   rL   r   )r   Ú	AsyncWithr
   rN   r&   r   r   r   r   r   Úvisit_AsyncWith©   rP   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=   r7   )r   r   ÚstarZstarredÚkwrY   r   r   r   r   Ú
visit_Call±   s$   
ýzAst3ToGAst.visit_Callc                 C   sR   |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   sR   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   s&   t  |j|  |j¡d d ¡}t ||¡S r   )r   ÚNameÚidr
   ÚctxÚastr   r   r   r   r   Ú
visit_Nameß   s   
üzAst3ToGAst.visit_Namec                 C   sH   t jjdk r	d }n|  |j¡}t |jt ¡ |  |j	¡|¡}t
 ||¡S ©Nr$   )rT   rU   rV   r
   Útype_commentr   rh   ÚargÚParamÚ
annotationrk   r   )r   r   Z	extra_argr   r   r   r   Ú	visit_argè   s   
üzAst3ToGAst.visit_argc              	   C   sL   |j r!t |  |j¡t |j t ¡ d d ¡|  |j¡¡}t 	||¡S |  
|¡S r   )r   r   ÚExceptHandlerr
   Útyperh   ÚStorer&   rk   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   )rE   rF   ÚifsÚis_async)r   Úcomprehensionr
   rE   rF   ry   rk   r   r   r   r   r   Úvisit_comprehension  s   


üzAst3ToGAst.visit_comprehensioné   c              	   C   r3   r   r4   r   r   r   r   r9     r:   c              
   C   óR   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡g ¡}t  	||¡S r   )
r   r<   r
   r   r=   r&   r8   r>   rn   r   r   r   r   r   r?     ó   





ù	c              
   C   r~   r   )
r   rA   r
   r   r=   r&   r8   r>   rn   r   r   r   r   r   rB   %  r   N)Ú__name__Ú
__module__Ú__qualname__rT   rU   rV   r   r   r   r#   r'   r+   r.   r1   r2   r9   r?   rB   rH   rK   rO   rR   r_   r`   rg   rl   rr   rw   r|   r   r   r   r   r   &   sB    		

			ç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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 rEdd„ Zdd„ Zn"ejjd	k rgdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d„ Zdejj  krsd&k ryn nd'd„ Zd	ejj  kr…d&k rn nd(d„ Zd)d„ Zd*d+„ Zd,S )-Ú
GAstToAst3r   c                 C   s    t  |  |j¡|  |j¡¡}|S r   )rk   r	   r
   r   r   r   r   r   r   r   5  s   ÿzGAstToAst3.visit_aliasr   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   )Ú
isinstancerk   ÚSliceÚIndex)r0   r   r   r   Úadjust_slice>  s   
z0GAstToAst3.visit_Subscript.<locals>.adjust_slicec                 s   s    | ]	}t |tjƒV  qd S r   )r„   r   Úslice)Ú.0Úeltr   r   r   Ú	<genexpr>E  s   € z-GAstToAst3.visit_Subscript.<locals>.<genexpr>c                    s   g | ]}ˆ |ƒ‘qS r   r   )r‰   Úx©r‡   r   r   Ú
<listcomp>G  s    z.GAstToAst3.visit_Subscript.<locals>.<listcomp>)r„   rˆ   r   r   ÚanyÚeltsrk   ÚExtSlicer
   r   r   r†   Ú	Subscriptr   rj   )r   r   Z	new_slicer   r   r   r   r   Úvisit_Subscript=  s"   ÿ

ýzGAstToAst3.visit_Subscriptc                 C   ó(   t  |  |j¡|  |j¡¡}t  ||¡S r   )rk   r!   r
   r"   r   r   r   r   r   r   r#   X  s
   

þzGAstToAst3.visit_Assignr$   c                 C   s   t  |  |j¡¡}|S r   )rk   r%   r
   r&   r   r   r   r   r'   b  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   rk   ÚNameConstantr-   r„   ÚboolÚintÚfloatÚcomplexÚNumÚstrÚStrÚBytesr   r   r   r   r   Úvisit_Constantf  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 rm   )rT   rU   rV   Útupler
   rn   rk   ro   ri   rq   r   ©r   r   Ú
extra_argsr   r   r   r   Ú	_make_argu  s   ÿÿzGAstToAst3._make_argc                 C   r”   r   )rk   rh   r
   ri   rj   r   r   r   r   r   rl   ƒ  ó
   

þzGAstToAst3.visit_Namec                 C   s>   |j rt |  |j¡|j j|  |j¡¡}t ||¡S |  |¡S r   )	r   rk   rs   r
   rt   ri   r&   r   rv   r   r   r   r   rw   Š  s   ÿ
zGAstToAst3.visit_ExceptHandlerrS   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=   r„   r   rX   r   r7   ro   rk   r[   r
   r\   r   )r   r   r=   rW   r7   rY   r   r   r   r   r_   •  s$   
ûzGAstToAst3.visit_Callc              	   C   sV   |   |¡ tj|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d d d}t 	||¡S )N)r   r6   r7   r&   r8   rW   rY   )
rv   rk   r5   r
   r   r6   r7   r&   r8   r   r   r   r   r   r9   ­  s   





ù	zGAstToAst3.visit_ClassDefc              	   C   óF   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡S r   )	rk   r<   r
   r   r=   r&   r8   r>   r   r   r   r   r   r?   ¼  ó   




ûzGAstToAst3.visit_FunctionDefc              	   C   r¥   r   )	rk   rA   r
   r   r=   r&   r8   r>   r   r   r   r   r   rB   Æ  r¦   z!GAstToAst3.visit_AsyncFunctionDefc                 C   s<   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡S r   )rk   rD   r
   rE   rF   r&   rG   r   r   r   r   r   rH   Ð  s   



üzGAstToAst3.visit_Forc                 C   rC   r   )rk   rJ   r
   rE   rF   r&   rG   r   r   r   r   r   rK   Ù  rI   zGAstToAst3.visit_AsyncForc                 C   r”   r   )rk   rM   r
   rN   r&   r   r   r   r   r   rO   ã  r£   zGAstToAst3.visit_Withc                 C   r”   r   )rk   rQ   r
   rN   r&   r   r   r   r   r   rR   ê  r£   zGAstToAst3.visit_AsyncWithc                 C   s2   t  |  |j¡|  |j¡|  |j¡¡}t  ||¡S r   )rk   r[   r
   r\   r=   r7   r   r   r   r   r   r_   ñ  s   


ýr}   c              	   C   r¥   r   )	rk   r5   r
   r   r6   r7   r&   r8   r   r   r   r   r   r9   û  r¦   c              
   C   óP   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  	||¡S r   )
rk   r<   r
   r   r=   r&   r8   r>   rn   r   r   r   r   r   r?     ó   





úc              
   C   r§   r   )
rk   rA   r
   r   r=   r&   r8   r>   rn   r   r   r   r   r   rB     r¨   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¢   ©r‰   r*   ©r   r   r   rŽ      ó    z.GAstToAst3.visit_arguments.<locals>.<listcomp>r$   c                    r©   r   rª   )r‰   ro   r¬   r   r   rŽ   '  r­   c                    r©   r   rª   r«   r¬   r   r   rŽ   (  r­   c                    r©   r   rª   r«   r¬   r   r   rŽ   -  r­   )r¢   rb   rc   r
   rd   re   rf   rT   rU   rV   rk   ra   Úposonlyargsr=   r    r   r¬   r   rg     s(   



ûþý	ýÿÿzGAstToAst3.visit_argumentsN)r€   r   r‚   rT   rU   rV   r   r“   r#   r'   rž   r¢   rl   rw   r_   r9   r?   rB   rH   rK   rO   rR   rg   r   r   r   r   rƒ   2  s:    	


	

rƒ   c                 C   ó   t ƒ  | ¡S r   )r   Úvisit©r   r   r   r   Úast_to_gast2  r    r²   c                 C   r¯   r   )rƒ   r°   r±   r   r   r   Úgast_to_ast6  r    r³   )Zastnr   r   Ú r   rk   rT   r   rƒ   r²   r³   r   r   r   r   Ú<module>   s       