o
    uJAf~  ã                   @  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   ú?/usr/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   Ú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   r7   r   r	   )Ú__name__Ú
__module__Ú__qualname__r   r   r    r#   r&   r(   r-   r5   r9   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?   rC   ÚstrÚast_id)r   r   Únamer   r   r   r   U   s
   


z!AstIDGenerator.visit_default_funcNr:   r;   )r?   r@   rA   r   r   r   r   r   r   rB   Q   s    
rB   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   rJ   r   r   r   r   r   `   s   z$AstConditionLevel.visit_default_funcr)   c                 C  r*   r   )r   rK   r+   r   r,   r   r   r   r   r-   c   r.   z)AstConditionLevel.visit_ForeachClauseNoder/   c                 C  r0   r   )r   r1   r   r2   rK   r3   r   r   r   r5   j   r6   z$AstConditionLevel.visit_IfClauseNoder7   c                 C  r*   r   )r   rK   r8   r   r,   r   r   r   r   r9   s   r.   zAstConditionLevel.visit_IfNodeNr:   r;   r<   r=   r>   )r?   r@   rA   r   r   r-   r5   r9   r   r   r   r   rI   \   s    



	rI   )Ú
__future__r   Úvisitorr   ÚtypingÚTÚTYPE_CHECKINGÚ r   r   rB   rI   r   r   r   r   Ú<module>   s   8