o
    ¢Ùld†  ã                   @  sf   d dl mZ ddlmZ d dlZejrddlmZ G dd„ deƒZ	G d	d
„ d
eƒZ
G dd„ deƒZdS )é    )Úannotationsé   )Ú
AstVisitorNé   )Úmparserc                   @  sf   e Zd Zddd„Zd dd„Zd!d
d„Zd"dd„Zd#dd„Zd$dd„Zd%dd„Z	d&dd„Z
d'dd„ZdS )(ÚAstIndentationGeneratorÚreturnÚNonec                 C  ó
   d| _ d S ©Nr   ©Úlevel©Úself© r   úyhome/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/ast/postprocess.pyÚ__init__   ó   
z AstIndentationGenerator.__init__Únodeúmparser.BaseNodec                 C  ó   | j |_ d S ©Nr   ©r   r   r   r   r   Úvisit_default_func   s   z*AstIndentationGenerator.visit_default_funcúmparser.ArrayNodec                 C  ó6   |   |¡ |  jd7  _|j | ¡ |  jd8  _d S ©Nr   ©r   r   ÚargsÚacceptr   r   r   r   Úvisit_ArrayNode!   ó   
z'AstIndentationGenerator.visit_ArrayNodeúmparser.DictNodec                 C  r   r   r   r   r   r   r   Úvisit_DictNode'   r!   z&AstIndentationGenerator.visit_DictNodeúmparser.MethodNodec                 C  sB   |   |¡ |j | ¡ |  jd7  _|j | ¡ |  jd8  _d S r   )r   Zsource_objectr   r   r   r   r   r   r   Úvisit_MethodNode-   s
   
z(AstIndentationGenerator.visit_MethodNodeúmparser.FunctionNodec                 C  r   r   r   r   r   r   r   Úvisit_FunctionNode4   r!   z*AstIndentationGenerator.visit_FunctionNodeúmparser.ForeachClauseNodec                 C  óB   |   |¡ |  jd7  _|j | ¡ |j | ¡ |  jd8  _d S r   )r   r   Úitemsr   Úblockr   r   r   r   Úvisit_ForeachClauseNode:   ó
   
z/AstIndentationGenerator.visit_ForeachClauseNodeúmparser.IfClauseNodec                 C  óV   |   |¡ |jD ]}| | ¡ q|jr)|  jd7  _|j | ¡ |  jd8  _d S d S r   )r   Úifsr   Ú	elseblockr   ©r   r   Úir   r   r   Úvisit_IfClauseNodeA   ó   

ýz*AstIndentationGenerator.visit_IfClauseNodeúmparser.IfNodec                 C  r)   r   )r   r   Ú	conditionr   r+   r   r   r   r   Úvisit_IfNodeJ   r-   z$AstIndentationGenerator.visit_IfNodeN©r   r	   ©r   r   r   r	   )r   r   r   r	   )r   r"   r   r	   )r   r$   r   r	   )r   r&   r   r	   ©r   r(   r   r	   ©r   r.   r   r	   ©r   r6   r   r	   )Ú__name__Ú
__module__Ú__qualname__r   r   r    r#   r%   r'   r,   r4   r8   r   r   r   r   r      s    







	r   c                   @  s    e Zd Zd
dd„Zddd„Zd	S )ÚAstIDGeneratorr   r	   c                 C  s
   i | _ d S r   )Úcounterr   r   r   r   r   R   r   zAstIDGenerator.__init__r   r   c                 C  sL   t |ƒj}|| jvrd| j|< |d t| j| ƒ |_| j|  d7  < d S )Nr   ú#r   )Útyper>   rB   ÚstrZast_id)r   r   Únamer   r   r   r   U   s
   


z!AstIDGenerator.visit_default_funcNr9   r:   )r>   r?   r@   r   r   r   r   r   r   rA   Q   s    
rA   c                   @  s>   e Zd Zddd„Zddd„Zdd
d„Zddd„Zddd„ZdS )ÚAstConditionLevelr   r	   c                 C  r
   r   ©Úcondition_levelr   r   r   r   r   ]   r   zAstConditionLevel.__init__r   r   c                 C  r   r   rH   r   r   r   r   r   `   s   z$AstConditionLevel.visit_default_funcr(   c                 C  r)   r   )r   rI   r*   r   r+   r   r   r   r   r,   c   r-   z)AstConditionLevel.visit_ForeachClauseNoder.   c                 C  r/   r   )r   r0   r   r1   rI   r2   r   r   r   r4   j   r5   z$AstConditionLevel.visit_IfClauseNoder6   c                 C  r)   r   )r   rI   r7   r   r+   r   r   r   r   r8   s   r-   zAstConditionLevel.visit_IfNodeNr9   r:   r;   r<   r=   )r>   r?   r@   r   r   r,   r4   r8   r   r   r   r   rG   \   s    



	rG   )Ú
__future__r   Úvisitorr   ÚtypingÚTÚTYPE_CHECKINGÚ r   r   rA   rG   r   r   r   r   Ú<module>   s   8