
    -Ph*                    v    d dl mZ d dlZd dlmZ ej        rddlmZ  G d d          Z	 G d d	e	          Z
dS )
    )annotationsN)zip_longest   )mparserc                     e Zd ZdDdZdEdZdFdZdGd
ZdHdZdIdZdJdZ	dKdZ
dLdZdMdZdNdZdOdZdPdZdQdZdRd ZdSd"ZdTd$ZdUd&ZdVd(ZdWd*ZdXd,ZdYd.ZdZd0Zd[d2Zd\d4Zd]d6Zd^d8Zd_d:Zd`d<Zdad>Z dbd@Z!dcdBZ"dCS )d
AstVisitorreturnNonec                    d S N )selfs    V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/ast/visitor.py__init__zAstVisitor.__init__           nodemparser.BaseNodec                    d S r   r   r   r   s     r   visit_default_funczAstVisitor.visit_default_func   r   r   mparser.BooleanNodec                0    |                      |           d S r   r   r   s     r   visit_BooleanNodezAstVisitor.visit_BooleanNode       %%%%%r   mparser.IdNodec                0    |                      |           d S r   r   r   s     r   visit_IdNodezAstVisitor.visit_IdNode   r   r   mparser.NumberNodec                0    |                      |           d S r   r   r   s     r   visit_NumberNodezAstVisitor.visit_NumberNode   r   r   mparser.StringNodec                0    |                      |           d S r   r   r   s     r   visit_StringNodezAstVisitor.visit_StringNode   r   r   mparser.ContinueNodec                0    |                      |           d S r   r   r   s     r   visit_ContinueNodezAstVisitor.visit_ContinueNode!   r   r   mparser.BreakNodec                0    |                      |           d S r   r   r   s     r   visit_BreakNodezAstVisitor.visit_BreakNode$   r   r   mparser.SymbolNodec                0    |                      |           d S r   r   r   s     r   visit_SymbolNodezAstVisitor.visit_SymbolNode'   r   r   mparser.WhitespaceNodec                0    |                      |           d S r   r   r   s     r   visit_WhitespaceNodezAstVisitor.visit_WhitespaceNode*   r   r   mparser.ArrayNodec                d    |                      |           |j                            |            d S r   r   argsacceptr   s     r   visit_ArrayNodezAstVisitor.visit_ArrayNode-   2    %%%	r   mparser.DictNodec                d    |                      |           |j                            |            d S r   r4   r   s     r   visit_DictNodezAstVisitor.visit_DictNode1   r8   r   mparser.EmptyNodec                0    |                      |           d S r   r   r   s     r   visit_EmptyNodezAstVisitor.visit_EmptyNode5   r   r   mparser.OrNodec                    |                      |           |j                            |            |j                            |            d S r   r   leftr6   rightr   s     r   visit_OrNodezAstVisitor.visit_OrNode8   H    %%%	
$r   mparser.AndNodec                    |                      |           |j                            |            |j                            |            d S r   rA   r   s     r   visit_AndNodezAstVisitor.visit_AndNode=   rE   r   mparser.ComparisonNodec                    |                      |           |j                            |            |j                            |            d S r   rA   r   s     r   visit_ComparisonNodezAstVisitor.visit_ComparisonNodeB   rE   r   mparser.ArithmeticNodec                    |                      |           |j                            |            |j                            |            d S r   rA   r   s     r   visit_ArithmeticNodezAstVisitor.visit_ArithmeticNodeG   rE   r   mparser.NotNodec                d    |                      |           |j                            |            d S r   r   valuer6   r   s     r   visit_NotNodezAstVisitor.visit_NotNodeL   2    %%%
$r   mparser.CodeBlockNodec                n    |                      |           |j        D ]}|                    |            d S r   )r   linesr6   r   r   is      r   visit_CodeBlockNodezAstVisitor.visit_CodeBlockNodeP   sB    %%% 	 	AHHTNNNN	 	r   mparser.IndexNodec                    |                      |           |j                            |            |j                            |            d S r   )r   iobjectr6   indexr   s     r   visit_IndexNodezAstVisitor.visit_IndexNodeU   sH    %%%D!!!
$r   mparser.MethodNodec                    |                      |           |j                            |            |j                            |            |j                            |            d S r   )r   source_objectr6   namer5   r   s     r   visit_MethodNodezAstVisitor.visit_MethodNodeZ   s_    %%%!!$'''		r   mparser.FunctionNodec                    |                      |           |j                            |            |j                            |            d S r   )r   	func_namer6   r5   r   s     r   visit_FunctionNodezAstVisitor.visit_FunctionNode`   sH    %%%d###	r   mparser.AssignmentNodec                    |                      |           |j                            |            |j                            |            d S r   r   var_namer6   rR   r   s     r   visit_AssignmentNodezAstVisitor.visit_AssignmentNodee   H    %%%T"""
$r   mparser.PlusAssignmentNodec                    |                      |           |j                            |            |j                            |            d S r   rk   r   s     r   visit_PlusAssignmentNodez#AstVisitor.visit_PlusAssignmentNodej   rn   r   mparser.ForeachClauseNodec                    |                      |           |j        D ]}|                    |            |j                            |            |j                            |            d S r   )r   varnamesr6   itemsblock)r   r   varnames      r   visit_ForeachClauseNodez"AstVisitor.visit_ForeachClauseNodeo   sn    %%%} 	! 	!GNN4    
$
$r   mparser.IfClauseNodec                    |                      |           |j        D ]}|                    |            |j                            |            d S r   )r   ifsr6   	elseblockrX   s      r   visit_IfClauseNodezAstVisitor.visit_IfClauseNodev   sT    %%% 	 	AHHTNNNNd#####r   mparser.UMinusNodec                d    |                      |           |j                            |            d S r   rQ   r   s     r   visit_UMinusNodezAstVisitor.visit_UMinusNode|   rT   r   mparser.IfNodec                    |                      |           |j                            |            |j                            |            d S r   )r   	conditionr6   rv   r   s     r   visit_IfNodezAstVisitor.visit_IfNode   sH    %%%d###
$r   mparser.ElseNodec                d    |                      |           |j                            |            d S r   )r   rv   r6   r   s     r   visit_ElseNodezAstVisitor.visit_ElseNode   rT   r   mparser.TernaryNodec                    |                      |           |j                            |            |j                            |            |j                            |            d S r   )r   r   r6   	trueblock
falseblockr   s     r   visit_TernaryNodezAstVisitor.visit_TernaryNode   s^    %%%d###d###t$$$$$r   mparser.ArgumentNodec                    |                      |           |j        D ]}|                    |            |j                                        D ]/\  }}|                    |            |                    |            0d S r   )r   	argumentsr6   kwargsru   )r   r   rY   keyvals        r   visit_ArgumentNodezAstVisitor.visit_ArgumentNode   s    %%% 	 	AHHTNNNN))++ 	 	HCJJtJJt	 	r   mparser.ParenthesizedNodec                d    |                      |           |j                            |            d S r   )r   innerr6   r   s     r   visit_ParenthesizedNodez"AstVisitor.visit_ParenthesizedNode   rT   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   r)   r	   r
   )r   r,   r	   r
   )r   r/   r	   r
   r   r2   r	   r
   r   r9   r	   r
   )r   r<   r	   r
   r   r?   r	   r
   r   rF   r	   r
   r   rI   r	   r
   r   rL   r	   r
   r   rO   r	   r
   r   rU   r	   r
   r   r[   r	   r
   r   r`   r	   r
   r   re   r	   r
   r   ri   r	   r
   r   ro   r	   r
   r   rr   r	   r
   r   ry   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
   )#__name__
__module____qualname__r   r   r   r   r"   r%   r(   r+   r.   r1   r7   r;   r>   rD   rH   rK   rN   rS   rZ   r_   rd   rh   rm   rq   rx   r}   r   r   r   r   r   r   r   r   r   r   r      s             & & & && & & && & & && & & && & & && & & && & & && & & &      & & & &       
       
       
       
          
       
      
       
       
       $ $ $ $              
       % % % %              r   r   c                      e Zd ZdZd8dZd8dZd8dZd9d
Zd:dZd;dZ	d<dZ
d=dZd>dZd?dZd@dZdAdZdBdZdCdZdDd ZdEd"ZdFd$ZdGd&ZdHd(ZdId*ZdJd,ZdKd.ZdLd0ZdMd2ZdNd4ZdOd6Zd7S )PFullAstVisitorz1Visit all nodes, including Symbol and Whitespacesr   r   r	   r
   c                    d S r   r   r   s     r   
enter_nodezFullAstVisitor.enter_node   r   r   c                L    |j         r|j                             |            d S d S r   )whitespacesr6   r   s     r   	exit_nodezFullAstVisitor.exit_node   s4     	*##D)))))	* 	*r   c                Z    |                      |           |                     |           d S r   )r   r   r   s     r   r   z!FullAstVisitor.visit_default_func   s,    tr   mparser.UnaryOperatorNodec                    |                      |           |j                            |            |j                            |            |                     |           d S r   )r   operatorr6   rR   r   r   s     r   visit_UnaryOperatorNodez&FullAstVisitor.visit_UnaryOperatorNode   sX    T"""
$tr   mparser.BinaryOperatorNodec                    |                      |           |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   rB   r6   r   rC   r   r   s     r   visit_BinaryOperatorNodez'FullAstVisitor.visit_BinaryOperatorNode   sn    	T"""
$tr   r2   c                    |                      |           |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   lbracketr6   r5   rbracketr   r   s     r   r7   zFullAstVisitor.visit_ArrayNode   sn    T"""	T"""tr   r9   c                    |                      |           |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   lcurlr6   r5   rcurlr   r   s     r   r;   zFullAstVisitor.visit_DictNode   sn    
$	
$tr   r?   c                0    |                      |           d S r   r   r   s     r   rD   zFullAstVisitor.visit_OrNode       %%d+++++r   rF   c                0    |                      |           d S r   r   r   s     r   rH   zFullAstVisitor.visit_AndNode   r   r   rI   c                0    |                      |           d S r   r   r   s     r   rK   z#FullAstVisitor.visit_ComparisonNode   r   r   rL   c                0    |                      |           d S r   r   r   s     r   rN   z#FullAstVisitor.visit_ArithmeticNode   r   r   rO   c                0    |                      |           d S r   r   r   s     r   rS   zFullAstVisitor.visit_NotNode       $$T*****r   rU   c                    |                      |           |j        r|j                            |            |j        D ]}|                    |            |                     |           d S r   )r   pre_whitespacesr6   rW   r   rX   s      r   rZ   z"FullAstVisitor.visit_CodeBlockNode   sp     	. ''--- 	 	AHHTNNNNtr   r[   c                *   |                      |           |j                            |            |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   r]   r6   r   r^   r   r   r   s     r   r_   zFullAstVisitor.visit_IndexNode   s    D!!!T"""
$T"""tr   r`   c                   |                      |           |j                            |            |j                            |            |j                            |            |j                            |            |j                            |            |j                            |            |                     |           d S r   )	r   rb   r6   dotrc   lparr5   rparr   r   s     r   rd   zFullAstVisitor.visit_MethodNode   s    !!$'''				tr   re   c                *   |                      |           |j                            |            |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   rg   r6   r   r5   r   r   r   s     r   rh   z!FullAstVisitor.visit_FunctionNode   s    d###			tr   ri   c                    |                      |           |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   rl   r6   r   rR   r   r   s     r   rm   z#FullAstVisitor.visit_AssignmentNode   sn    T"""T"""
$tr   ro   c                0    |                      |           d S r   )rm   r   s     r   rq   z'FullAstVisitor.visit_PlusAssignmentNode   s    !!$'''''r   rr   c                   |                      |           |j                            |            t          |j        |j                  D ]1\  }}|                    |            ||                    |            2|j                            |            |j                            |            |j                            |            |j	                            |            | 
                    |           d S r   )r   foreach_r6   r   rt   commascolonru   rv   
endforeachr   )r   r   rw   commas       r   rx   z&FullAstVisitor.visit_ForeachClauseNode   s    T""")$-EE 	# 	#NGUNN4    T"""
$
$
$t$$$tr   ry   c                    |                      |           |j        D ]}|                    |            |j                            |            |j                            |            |                     |           d S r   )r   r{   r6   r|   endifr   rX   s      r   r}   z!FullAstVisitor.visit_IfClauseNode  sz     	 	AHHTNNNNd###
$tr   r~   c                0    |                      |           d S r   r   r   s     r   r   zFullAstVisitor.visit_UMinusNode  r   r   r   c                    |                      |           |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   if_r6   r   rv   r   r   s     r   r   zFullAstVisitor.visit_IfNode  sl    d###
$tr   r   c                    |                      |           |j                            |            |j                            |            |                     |           d S r   )r   else_r6   rv   r   r   s     r   r   zFullAstVisitor.visit_ElseNode  sX    
$
$tr   r   c                ^   |                      |           |j                            |            |j                            |            |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   r   r6   questionmarkr   r   r   r   r   s     r   r   z FullAstVisitor.visit_TernaryNode$  s    d###  &&&d###
$t$$$tr   r   c                   |                      |           t          |j                  }|j        D ]L}|                    |            	 t          |          }|                    |            =# t          $ r Y Iw xY wt          |j                  t          |j	                  k    sJ t          |j	                                        |j                  D ]|\  \  }}}|                    |            |                    |            |                    |            	 t          |          }|                    |            m# t          $ r Y yw xY w|                     |           d S r   )r   iterr   r   r6   nextStopIterationlencolonsr   zipru   r   )r   r   commas_iterargr   r   r   r   s           r   r   z!FullAstVisitor.visit_ArgumentNode-  s}   4;''> 	 	CJJt[))T""""     4;3t{#3#33333!$T[%6%6%8%8$+!F!F 	 	JS#JJtLLJJt[))T""""     	ts$   	$A..
A;:A;$E
EEr   c                    |                      |           |j                            |            |j                            |            |j                            |            |                     |           d S r   )r   r   r6   r   r   r   r   s     r   r   z&FullAstVisitor.visit_ParenthesizedNodeF  sn    	
$	tr   Nr   )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   r   __doc__r   r   r   r   r   r7   r;   rD   rH   rK   rN   rS   rZ   r_   rd   rh   rm   rq   rx   r}   r   r   r   r   r   r   r   r   r   r   r      s"       ;;   * * * *               , , , ,, , , ,, , , ,, , , ,+ + + +               ( ( ( (      + + + +            2     r   r   )
__future__r   typingT	itertoolsr   TYPE_CHECKING r   r   r   r   r   r   <module>r      s    # " " " " "     ! ! ! ! ! !? K  K  K  K  K  K  K  K Zp p p p pZ p p p p pr   