
    <h*                    |    S SK Jr  S SKrS SKJr  \R                  (       a  SSKJr   " S S5      r	 " S S	\	5      r
g)
    )annotationsN)zip_longest   )mparserc                  T   \ rS rSrS$S jrS%S jrS&S jrS'S jrS(S jrS)S jr	S*S jr
S+S	 jrS,S
 jrS-S jrS.S jrS/S jrS0S jrS1S jrS2S jrS3S jrS4S jrS5S jrS6S jrS7S jrS8S jrS9S jrS:S jrS;S jrS<S jrS=S jrS>S jrS?S jrS@S jr SAS jr!SBS  jr"SCS! jr#S"r$g#)D
AstVisitor   c                    g N )selfs    w/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/ast/visitor.py__init__AstVisitor.__init__           c                    g r   r   r   nodes     r   visit_default_funcAstVisitor.visit_default_func   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_BooleanNodeAstVisitor.visit_BooleanNode       %r   c                &    U R                  U5        g r   r   r   s     r   visit_IdNodeAstVisitor.visit_IdNode   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_NumberNodeAstVisitor.visit_NumberNode   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_StringNodeAstVisitor.visit_StringNode   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_ContinueNodeAstVisitor.visit_ContinueNode!   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_BreakNodeAstVisitor.visit_BreakNode$   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_SymbolNodeAstVisitor.visit_SymbolNode'   r   r   c                &    U R                  U5        g r   r   r   s     r   visit_WhitespaceNodeAstVisitor.visit_WhitespaceNode*   r   r   c                \    U R                  U5        UR                  R                  U 5        g r   r   argsacceptr   s     r   visit_ArrayNodeAstVisitor.visit_ArrayNode-   "    %		r   c                \    U R                  U5        UR                  R                  U 5        g r   r3   r   s     r   visit_DictNodeAstVisitor.visit_DictNode1   r8   r   c                &    U R                  U5        g r   r   r   s     r   visit_EmptyNodeAstVisitor.visit_EmptyNode5   r   r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   r   leftr5   rightr   s     r   visit_OrNodeAstVisitor.visit_OrNode8   4    %		

$r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   r@   r   s     r   visit_AndNodeAstVisitor.visit_AndNode=   rE   r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   r@   r   s     r   visit_ComparisonNodeAstVisitor.visit_ComparisonNodeB   rE   r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   r@   r   s     r   visit_ArithmeticNodeAstVisitor.visit_ArithmeticNodeG   rE   r   c                \    U R                  U5        UR                  R                  U 5        g r   r   valuer5   r   s     r   visit_NotNodeAstVisitor.visit_NotNodeL   "    %

$r   c                n    U R                  U5        UR                   H  nUR                  U 5        M     g r   )r   linesr5   r   r   is      r   visit_CodeBlockNodeAstVisitor.visit_CodeBlockNodeP   s)    %AHHTN r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   )r   iobjectr5   indexr   s     r   visit_IndexNodeAstVisitor.visit_IndexNodeU   s4    %D!

$r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        g r   )r   source_objectr5   namer4   r   s     r   visit_MethodNodeAstVisitor.visit_MethodNodeZ   sH    %!!$'				r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   )r   	func_namer5   r4   r   s     r   visit_FunctionNodeAstVisitor.visit_FunctionNode`   s4    %d#		r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   r   var_namer5   rQ   r   s     r   visit_AssignmentNodeAstVisitor.visit_AssignmentNodee   4    %T"

$r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   rj   r   s     r   visit_PlusAssignmentNode#AstVisitor.visit_PlusAssignmentNodej   rn   r   c                    U R                  U5        UR                   H  nUR                  U 5        M     UR                  R                  U 5        UR                  R                  U 5        g r   )r   varnamesr5   itemsblock)r   r   varnames      r   visit_ForeachClauseNode"AstVisitor.visit_ForeachClauseNodeo   sN    %}}GNN4  %

$

$r   c                    U R                  U5        UR                   H  nUR                  U 5        M     UR                  R                  U 5        g r   )r   ifsr5   	elseblockrW   s      r   visit_IfClauseNodeAstVisitor.visit_IfClauseNodev   s;    %AHHTN d#r   c                \    U R                  U5        UR                  R                  U 5        g r   rP   r   s     r   visit_UMinusNodeAstVisitor.visit_UMinusNode|   rT   r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        g r   )r   	conditionr5   ru   r   s     r   visit_IfNodeAstVisitor.visit_IfNode   s4    %d#

$r   c                \    U R                  U5        UR                  R                  U 5        g r   )r   ru   r5   r   s     r   visit_ElseNodeAstVisitor.visit_ElseNode   rT   r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        g r   )r   r   r5   	trueblock
falseblockr   s     r   visit_TernaryNodeAstVisitor.visit_TernaryNode   sF    %d#d#t$r   c                    U R                  U5        UR                   H  nUR                  U 5        M     UR                  R	                  5        H'  u  p4UR                  U 5        UR                  U 5        M)     g r   )r   	argumentsr5   kwargsrt   )r   r   rX   keyvals        r   visit_ArgumentNodeAstVisitor.visit_ArgumentNode   sZ    %AHHTN  ))+HCJJtJJt ,r   c                \    U R                  U5        UR                  R                  U 5        g r   )r   innerr5   r   s     r   visit_ParenthesizedNode"AstVisitor.visit_ParenthesizedNode   rT   r   r   N)returnNoner   zmparser.BaseNoder   r   )r   zmparser.BooleanNoder   r   )r   zmparser.IdNoder   r   )r   zmparser.NumberNoder   r   )r   zmparser.StringNoder   r   )r   zmparser.ContinueNoder   r   )r   zmparser.BreakNoder   r   )r   zmparser.SymbolNoder   r   )r   zmparser.WhitespaceNoder   r   r   zmparser.ArrayNoder   r   r   zmparser.DictNoder   r   )r   zmparser.EmptyNoder   r   r   zmparser.OrNoder   r   r   zmparser.AndNoder   r   r   zmparser.ComparisonNoder   r   r   zmparser.ArithmeticNoder   r   r   zmparser.NotNoder   r   r   zmparser.CodeBlockNoder   r   r   zmparser.IndexNoder   r   r   zmparser.MethodNoder   r   r   zmparser.FunctionNoder   r   r   zmparser.AssignmentNoder   r   r   zmparser.PlusAssignmentNoder   r   r   zmparser.ForeachClauseNoder   r   r   zmparser.IfClauseNoder   r   r   zmparser.UMinusNoder   r   r   zmparser.IfNoder   r   r   zmparser.ElseNoder   r   r   zmparser.TernaryNoder   r   r   zmparser.ArgumentNoder   r   r   zmparser.ParenthesizedNoder   r   )%__name__
__module____qualname____firstlineno__r   r   r   r   r!   r$   r'   r*   r-   r0   r6   r:   r=   rC   rG   rJ   rM   rR   rY   r^   rc   rg   rl   rp   rw   r|   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    &&&&&&&&& 
 
 
 
 
 

 
 
 $  
 % r   r   c                     \ rS rSrSrSS jrSS jrSS jrS S jrS!S jr	S"S jr
S#S	 jrS$S
 jrS%S jrS&S jrS'S jrS(S jrS)S jrS*S jrS+S jrS,S jrS-S jrS.S jrS/S jrS0S jrS1S jrS2S jrS3S jrS4S jrS5S jrS6S jrSrg)7FullAstVisitor   z1Visit all nodes, including Symbol and Whitespacesc                    g r   r   r   s     r   
enter_nodeFullAstVisitor.enter_node   r   r   c                ^    UR                   (       a  UR                   R                  U 5        g g r   )whitespacesr5   r   s     r   	exit_nodeFullAstVisitor.exit_node   s$    ##D) r   c                H    U R                  U5        U R                  U5        g r   )r   r   r   s     r   r   !FullAstVisitor.visit_default_func   s    tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        U R	                  U5        g r   )r   operatorr5   rQ   r   r   s     r   visit_UnaryOperatorNode&FullAstVisitor.visit_UnaryOperatorNode   s>    T"

$tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   rA   r5   r   rB   r   r   s     r   visit_BinaryOperatorNode'FullAstVisitor.visit_BinaryOperatorNode   sP    		T"

$tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   lbracketr5   r4   rbracketr   r   s     r   r6   FullAstVisitor.visit_ArrayNode   sP    T"		T"tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   lcurlr5   r4   rcurlr   r   s     r   r:   FullAstVisitor.visit_DictNode   sP    

$		

$tr   c                &    U R                  U5        g r   r   r   s     r   rC   FullAstVisitor.visit_OrNode       %%d+r   c                &    U R                  U5        g r   r   r   s     r   rG   FullAstVisitor.visit_AndNode   r   r   c                &    U R                  U5        g r   r   r   s     r   rJ   #FullAstVisitor.visit_ComparisonNode   r   r   c                &    U R                  U5        g r   r   r   s     r   rM   #FullAstVisitor.visit_ArithmeticNode   r   r   c                &    U R                  U5        g r   r   r   s     r   rR   FullAstVisitor.visit_NotNode       $$T*r   c                    U R                  U5        UR                  (       a  UR                  R                  U 5        UR                   H  nUR                  U 5        M     U R	                  U5        g r   )r   pre_whitespacesr5   rV   r   rW   s      r   rY   "FullAstVisitor.visit_CodeBlockNode   sP      ''-AHHTN tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        UR
                  R                  U 5        U R                  U5        g r   )r   r\   r5   r   r]   r   r   r   s     r   r^   FullAstVisitor.visit_IndexNode   sb    D!T"

$T"tr   c                   U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        UR
                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )	r   ra   r5   dotrb   lparr4   rparr   r   s     r   rc   FullAstVisitor.visit_MethodNode   s    !!$'								tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        UR
                  R                  U 5        U R                  U5        g r   )r   rf   r5   r   r4   r   r   r   s     r   rg   !FullAstVisitor.visit_FunctionNode   sb    d#						tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   rk   r5   r   rQ   r   r   s     r   rl   #FullAstVisitor.visit_AssignmentNode   sP    T"T"

$tr   c                &    U R                  U5        g r   )rl   r   s     r   rp   'FullAstVisitor.visit_PlusAssignmentNode   s    !!$'r   c                   U R                  U5        UR                  R                  U 5        [        UR                  UR
                  5       H,  u  p#UR                  U 5        Uc  M  UR                  U 5        M.     UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   foreach_r5   r   rs   commascolonrt   ru   
endforeachr   )r   r   rv   commas       r   rw   &FullAstVisitor.visit_ForeachClauseNode   s    T")$--ENGNN4  T" F 	

$

$

$t$tr   c                    U R                  U5        UR                   H  nUR                  U 5        M     UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   rz   r5   r{   endifr   rW   s      r   r|   !FullAstVisitor.visit_IfClauseNode  sW    AHHTN d#

$tr   c                &    U R                  U5        g r   r   r   s     r   r   FullAstVisitor.visit_UMinusNode  r   r   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   if_r5   r   ru   r   r   s     r   r   FullAstVisitor.visit_IfNode  sN    d#

$tr   c                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        U R	                  U5        g r   )r   else_r5   ru   r   r   s     r   r   FullAstVisitor.visit_ElseNode  s>    

$

$tr   c                V   U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        UR
                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   r   r5   questionmarkr   r   r   r   r   s     r   r    FullAstVisitor.visit_TernaryNode$  sv    d#  &d#

$t$tr   c                   U R                  U5        [        UR                  5      nUR                   H1  nUR	                  U 5         [        U5      nUR	                  U 5        M3     [        UR                  5      [        UR                  5      :X  d   e[        UR                  R                  5       UR                  5       HX  u  u  pVnUR	                  U 5        UR	                  U 5        UR	                  U 5         [        U5      nUR	                  U 5        MZ     U R                  U5        g ! [         a     GM  f = f! [         a     M  f = fr   )r   iterr   r   r5   nextStopIterationlencolonsr   ziprt   r   )r   r   commas_iterargr   r   r   r   s           r   r   !FullAstVisitor.visit_ArgumentNode-  s   4;;'>>CJJt[)T"	 " 4;;3t{{#3333!$T[[%6%6%8$++!FJSJJtLLJJt[)T" "G 	t !  ! s$   D2 E2
E E
EEc                    U R                  U5        UR                  R                  U 5        UR                  R                  U 5        UR                  R                  U 5        U R                  U5        g r   )r   r   r5   r   r   r   r   s     r   r   &FullAstVisitor.visit_ParenthesizedNodeF  sP    		

$		tr   r   Nr   )r   zmparser.UnaryOperatorNoder   r   )r   zmparser.BinaryOperatorNoder   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   r6   r:   rC   rG   rJ   rM   rR   rY   r^   rc   rg   rl   rp   rw   r|   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     s5    #  !??K  K ZpZ pr   