
    -Ph                        d dl mZ ddlmZmZ d dlZej        rddlm	Z	  G d de          Z
 G d	 d
e          Z G d de          ZdS )    )annotations   )
AstVisitorFullAstVisitorN   )mparserc                  V    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S )AstIndentationGeneratorreturnNonec                    d| _         d S Nr   levelselfs    Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/ast/postprocess.py__init__z AstIndentationGenerator.__init__   s    


    nodemparser.BaseNodec                    | j         |_         d S Nr   r   r   s     r   visit_default_funcz*AstIndentationGenerator.visit_default_func   s    Z


r   mparser.ArrayNodec                    |                      |           | xj        dz  c_        |j                            |            | xj        dz  c_        d S Nr   r   r   argsacceptr   s     r   visit_ArrayNodez'AstIndentationGenerator.visit_ArrayNode   N    %%%

a

	

a



r   mparser.DictNodec                    |                      |           | xj        dz  c_        |j                            |            | xj        dz  c_        d S r   r   r   s     r   visit_DictNodez&AstIndentationGenerator.visit_DictNode   r#   r   mparser.MethodNodec                    |                      |           |j                            |            | xj        dz  c_        |j                            |            | xj        dz  c_        d S r   )r   source_objectr!   r   r    r   s     r   visit_MethodNodez(AstIndentationGenerator.visit_MethodNode"   se    %%%!!$'''

a

	

a



r   mparser.FunctionNodec                    |                      |           | xj        dz  c_        |j                            |            | xj        dz  c_        d S r   r   r   s     r   visit_FunctionNodez*AstIndentationGenerator.visit_FunctionNode)   r#   r   mparser.ForeachClauseNodec                    |                      |           | xj        dz  c_        |j                            |            |j                            |            | xj        dz  c_        d S r   )r   r   itemsr!   blockr   s     r   visit_ForeachClauseNodez/AstIndentationGenerator.visit_ForeachClauseNode/   sd    %%%

a


$
$

a



r   mparser.IfClauseNodec                    |                      |           |j        D ]}|                    |            |j        r<| xj        dz  c_        |j                            |            | xj        dz  c_        d S d S r   )r   ifsr!   	elseblockr   )r   r   is      r   visit_IfClauseNodez*AstIndentationGenerator.visit_IfClauseNode6   s    %%% 	 	AHHTNNNN> 	JJ!OJJN!!$'''JJ!OJJJJ	 	r   mparser.IfNodec                    |                      |           | xj        dz  c_        |j                            |            |j                            |            | xj        dz  c_        d S r   )r   r   	conditionr!   r1   r   s     r   visit_IfNodez$AstIndentationGenerator.visit_IfNode?   sd    %%%

a

d###
$

a



r   N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   r3   r   r   r   r9   r   r   )__name__
__module____qualname__r   r   r"   r&   r*   r-   r2   r8   r<    r   r   r
   r
      s                                         r   r
   c                      e Zd ZddZd	dZdS )
AstIDGeneratorr   r   c                    i | _         d S r   )counterr   s    r   r   zAstIDGenerator.__init__G   s    )+r   r   r   c                    t          |          j        }|| j        vr
d| j        |<   |dz   t          | j        |                   z   |_        | j        |xx         dz  cc<   d S )Nr   #r   )typerA   rH   strast_id)r   r   names      r   r   z!AstIDGenerator.visit_default_funcJ   sl    Dzz"t|##!"DLSj3t|D'9#:#::Tar   Nr=   r>   )rA   rB   rC   r   r   rD   r   r   rF   rF   F   s<        , , , ,           r   rF   c                  6    e Zd ZddZddZddZdd
ZddZdS )AstConditionLevelr   r   c                    d| _         d S r   condition_levelr   s    r   r   zAstConditionLevel.__init__R   s     r   r   r   c                    | j         |_         d S r   rR   r   s     r   
enter_nodezAstConditionLevel.enter_nodeU   s    #3r   r.   c                   |                      |           |j                            |            |j        D ]}|                    |            |j        D ]}|                    |            |j                            |            |j                            |            | xj        dz  c_        |j                            |            | xj        dz  c_        |j	                            |            | 
                    |           d S r   )rU   foreach_r!   varnamescommascolonr0   rS   r1   
endforeach	exit_node)r   r   varnamecommas       r   r2   z)AstConditionLevel.visit_ForeachClauseNodeX   s   T"""} 	! 	!GNN4    [ 	 	ELL
$
$!
$!t$$$tr   r9   c                6   |                      |           |j                            |            |j                            |            | xj        dz  c_        |j                            |            | xj        dz  c_        |                     |           d S r   )rU   if_r!   r;   rS   r1   r\   r   s     r   r<   zAstConditionLevel.visit_IfNodeg   s    d###!
$!tr   mparser.ElseNodec                   |                      |           |j                            |            | xj        dz  c_        |j                            |            | xj        dz  c_        |                     |           d S r   )rU   else_r!   rS   r1   r\   r   s     r   visit_ElseNodez AstConditionLevel.visit_ElseNodep   s    
$!
$!tr   Nr=   r>   r?   r@   )r   ra   r   r   )rA   rB   rC   r   rU   r2   r<   rd   rD   r   r   rP   rP   Q   sx        ! ! ! !4 4 4 4           r   rP   )
__future__r   visitorr   r   typingTTYPE_CHECKING r   r
   rF   rP   rD   r   r   <module>rk      s    # " " " " " / / / / / / / /    ? 6 6 6 6 6j 6 6 6p	  	  	  	  	 Z 	  	  	 % % % % % % % % % %r   