
    <hD                        S SK Jr  SSKJr  SSKJrJr  SSKJr  S SK	r	S SK
rSS jr " S	 S
\5      r " S S\5      r " S S\5      rg)    )annotations   )mparser   )
AstVisitorFullAstVisitor)MesonBugExceptionNc                   [        U [        R                  [        R                  [        R                  45      (       a  g[        U [        R
                  5      (       a  g[        U [        R                  5      (       a  g[        U [        R                  5      (       a  g[        U [        R                  5      (       a$  U R                  S;   a  gU R                  S;   a  gGO[        U [        R                  [        R                  45      (       a  g	[        U [        R                  5      (       a  g
[        U [        R                  [        R                  45      (       a  g[        U [        R                  [        R                   [        R"                  [        R$                  [        R&                  45      (       a  g[        U [        R(                  5      (       a  [+        U R,                  5      $ [/        S5      e)Nr   r         >   addsub   >   divmodmul         	   
   zUnhandled node type)
isinstancer   PlusAssignmentNodeAssignmentNodeTernaryNodeOrNodeAndNodeComparisonNodeArithmeticNode	operationNotNode
UMinusNodeFunctionNode	ArrayNodeDictNodeBooleanNodeIdNode
NumberNode
StringNode	EmptyNodeParenthesizedNodeprecedence_levelinnerr	   )nodes    w/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/ast/printer.pyr,   r,      s_   $33W5K5KWM`M`abb	D'..	)	)	D'//	*	*	D'00	1	1	D'00	1	1>>^+^^44 5	D7??G,>,>?	@	@	D'..	/	/	D7,,g.>.>?	@	@	D7..@R@RT[TfTfhohyhyz	{	{	D'33	4	4  

++
1
22    c                     \ rS rSr% \R                  SSS.5      rS\S'   S)S*S j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#SDS# jr$SES$ jr%SFS% jr&SGS& jr'S'r(g()H
AstPrinter/   z\\')\r4   zT.Dict[int, str]escape_transc                    SU l         Xl        X l        SU l        SU l        SU l        U(       a  SU l        g S U l        g )N Tr   r   )resultindentarg_newline_cutoffci
is_newline
last_level	curr_line)selfr:   r;   update_ast_line_noss       r/   __init__AstPrinter.__init__2   s8    "41tr0   c                R    [         R                  " SSU R                  5      U l        g )Nz\s+\n
)rer   r9   r@   s    r/   post_processAstPrinter.post_process;   s    ffXtT[[9r0   c                    UR                   U l        U R                  (       a/  U =R                  SUR                   U R                  -  -  -  sl        U =R                  U-  sl        SU l        g )N F)levelr>   r=   r9   r:   r@   datar.   s      r/   appendAstPrinter.append>   sI    **??KK3$**t{{":;;Ktr0   c                    U R                   (       a  U R                   S   S;  a  SU-   nU R                  US-   U5        g )N)rK   rE   rK   )r9   rO   rM   s      r/   append_paddedAstPrinter.append_paddedE   s3    ;;4;;r?+=:DD3J%r0   c                    U =R                   S-  sl         SU l        U R                  b  U =R                  S-  sl        g g )NrE   Tr   )r9   r=   r?   rG   s    r/   newlineAstPrinter.newlineJ   s4    t>>%NNaN &r0   c                    U R                  UR                  (       a  SOSU5        U R                  =(       d    UR                  Ul        g Ntruefalse)rO   valuer?   linenor@   r.   s     r/   visit_BooleanNodeAstPrinter.visit_BooleanNodeP   s,    djjFgt<nn3r0   c                    [        UR                  [        5      (       d   eU R                  UR                  U5        U R                  =(       d    UR
                  Ul        g N)r   r\   strrO   r?   r]   r^   s     r/   visit_IdNodeAstPrinter.visit_IdNodeT   s?    $**c****DJJ%nn3r0   c                    U R                  [        UR                  5      U5        U R                  =(       d    UR                  Ul        g rb   )rO   rc   r\   r?   r]   r^   s     r/   visit_NumberNodeAstPrinter.visit_NumberNodeY   s,    C

OT*nn3r0   c                8    UR                  U R                  5      $ rb   )	translater6   )r@   vals     r/   escapeAstPrinter.escape]   s    }}T..//r0   c                   [        UR                  [        5      (       d   eUR                  (       a  U R	                  SU5        UR
                  (       a#  U R	                  SUR                  -   S-   U5        O1U R	                  SU R                  UR                  5      -   S-   U5        U R                  =(       d    UR                  Ul        g Nfz'''r4   )	r   r\   rc   
is_fstringrO   is_multilinerl   r?   r]   r^   s     r/   visit_StringNodeAstPrinter.visit_StringNode`   s    $**c****??KKT"KK

*U2D9KKdkk$**55;TBnn3r0   c                p    U R                  SU5        U R                  =(       d    UR                  Ul        g NcontinuerO   r?   r]   r^   s     r/   visit_ContinueNodeAstPrinter.visit_ContinueNodek   s$    J%nn3r0   c                p    U R                  SU5        U R                  =(       d    UR                  Ul        g Nbreakrx   r^   s     r/   visit_BreakNodeAstPrinter.visit_BreakNodeo   s$    GT"nn3r0   c                    U R                   =(       d    UR                  Ul        U R                  SU5        UR                  R	                  U 5        U R                  SU5        g N[]r?   r]   rO   argsacceptr^   s     r/   visit_ArrayNodeAstPrinter.visit_ArrayNodes   D    nn3C		Cr0   c                    U R                   =(       d    UR                  Ul        U R                  SU5        UR                  R	                  U 5        U R                  SU5        g )N{}r   r^   s     r/   visit_DictNodeAstPrinter.visit_DictNodey   r   r0   c                    UR                   R                  U 5        U R                  SU5        U R                  =(       d    UR                  Ul        UR
                  R                  U 5        g )Norleftr   rS   r?   r]   rightr^   s     r/   visit_OrNodeAstPrinter.visit_OrNode   sJ    		4&nn3

$r0   c                    UR                   R                  U 5        U R                  SU5        U R                  =(       d    UR                  Ul        UR
                  R                  U 5        g )Nandr   r^   s     r/   visit_AndNodeAstPrinter.visit_AndNode   sJ    		5$'nn3

$r0   c                   UR                   R                  U 5        U R                  UR                  S:w  a  UR                  OSU5        U R                  =(       d    UR
                  Ul        UR                  R                  U 5        g )Nnotinznot in)r   r   rS   ctyper?   r]   r   r^   s     r/   visit_ComparisonNodeAstPrinter.visit_ComparisonNode   s[    		w)>4::HdSnn3

$r0   c                    U(       a  U R                  SU5        UR                  U 5        U(       a  U R                  SU5        g g N())rO   r   )r@   outerr-   parenss       r/   maybe_parenthesesAstPrinter.maybe_parentheses   s5    KKU#TKKU# r0   c                   [        U5      n[        UR                  5      n[        UR                  5      nU R                  XR                  X#:  5        U R	                  UR
                  R                  U5        U R                  =(       d    UR                  Ul        U R                  XR                  X$:  =(       d    X$:H  =(       a    UR                  S;   5        g )N>   r   r   r   )
r,   r   r   r   rS   operatorr\   r?   r]   r    )r@   r.   prec	prec_left
prec_rights        r/   visit_ArithmeticNodeAstPrinter.visit_ArithmeticNode   s    %$TYY/	%djj1
tYY0@A4==..5nn3tZZ1B  2GtGY  HF^b^l^l  qF  _F  	Hr0   c                    U R                   =(       d    UR                  Ul        U R                  SU5        UR                  R	                  U 5        g )Nnotr?   r]   rS   r\   r   r^   s     r/   visit_NotNodeAstPrinter.visit_NotNode   s8    nn35$'

$r0   c                    U R                   =(       d    UR                  Ul        UR                   H$  nUR                  U 5        U R	                  5         M&     g rb   )r?   r]   linesr   rV   )r@   r.   is      r/   visit_CodeBlockNodeAstPrinter.visit_CodeBlockNode   s8    nn3AHHTNLLN r0   c                    UR                   R                  U 5        U R                  =(       d    UR                  Ul        U R	                  SU5        UR
                  R                  U 5        U R	                  SU5        g r   )iobjectr   r?   r]   rO   indexr^   s     r/   visit_IndexNodeAstPrinter.visit_IndexNode   sV    D!nn3C

$Cr0   c                4   U R                   =(       d    UR                  Ul        UR                  R                  U 5        U R	                  SUR
                  R                  -   S-   U5        UR                  R                  U 5        U R	                  SU5        g )N.r   r   )r?   r]   source_objectr   rO   namer\   r   r^   s     r/   visit_MethodNodeAstPrinter.visit_MethodNode   sj    nn3!!$'C$))//)C/6		Cr0   c                    U R                   =(       d    UR                  Ul        U R                  UR                  R                  S-   U5        UR
                  R                  U 5        U R                  SU5        g r   )r?   r]   rO   	func_namer\   r   r   r^   s     r/   visit_FunctionNodeAstPrinter.visit_FunctionNode   sS    nn3DNN((3.5		Cr0   c                    U R                   =(       d    UR                  Ul        U R                  UR                  R                  S-   U5        UR                  R                  U 5        g )Nz = r?   r]   rO   var_namer\   r   r^   s     r/   visit_AssignmentNodeAstPrinter.visit_AssignmentNode   sE    nn3DMM''%/6

$r0   c                    U R                   =(       d    UR                  Ul        U R                  UR                  R                  S-   U5        UR                  R                  U 5        g )Nz += r   r^   s     r/   visit_PlusAssignmentNode#AstPrinter.visit_PlusAssignmentNode   sE    nn3DMM''&0$7

$r0   c                   U R                   =(       d    UR                  Ul        U R                  SU5        U R                  SR                  S UR                   5       5      U5        U R                  SU5        UR
                  R                  U 5        U R                  5         UR                  R                  U 5        U R                  SU5        g )Nforeach, c              3  8   #    U  H  oR                   v   M     g 7frb   )r\   ).0varnames     r/   	<genexpr>5AstPrinter.visit_ForeachClauseNode.<locals>.<genexpr>   s     $P-w]]-s   :
endforeach)
r?   r]   rS   joinvarnamesitemsr   rV   blockrO   r^   s     r/   visit_ForeachClauseNode"AstPrinter.visit_ForeachClauseNode   s    nn39d+499$P$--$PPRVW3%

$

$L$'r0   c                   U R                   =(       d    UR                  Ul        SnUR                   H+  nU R                  US-   U5        SnUR	                  U 5        M-     [        UR                  [        R                  5      (       d=  U R                  SU5        U R                  5         UR                  R	                  U 5        U R                  SU5        g )Nr8   ifelelseendif)r?   r]   ifsrS   r   r   	elseblockr   r*   rO   rV   )r@   r.   prefixr   s       r/   visit_IfClauseNodeAstPrinter.visit_IfClauseNode   s    nn3Av}d3FHHTN  $..'*;*;<<KK%LLNNN!!$'GT"r0   c                    U R                   =(       d    UR                  Ul        U R                  SU5        UR                  R	                  U 5        g )N-r   r^   s     r/   visit_UMinusNodeAstPrinter.visit_UMinusNode   s8    nn33%

$r0   c                    U R                   =(       d    UR                  Ul        UR                  R                  U 5        U R	                  5         UR
                  R                  U 5        g rb   )r?   r]   	conditionr   rV   r   r^   s     r/   visit_IfNodeAstPrinter.visit_IfNode   sC    nn3d#

$r0   c                6   U R                   =(       d    UR                  Ul        UR                  R                  U 5        U R	                  SU5        UR
                  R                  U 5        U R	                  SU5        UR                  R                  U 5        g )N?r   )r?   r]   r   r   rS   	trueblock
falseblockr^   s     r/   visit_TernaryNodeAstPrinter.visit_TernaryNode   sl    nn3d#3%d#3%t$r0   c                   U R                   =(       d    UR                  Ul        [        UR                  5      [        UR                  5      -   U R
                  :  nUR                  [        UR                  R                  5       5      -    H6  n[        U[        R                  [        R                  45      (       a  M4  SnM8     U(       a  U R                  5         UR                   H?  nUR                  U 5        U R                  SU5        U(       d  M/  U R                  5         MA     UR                  R                  5        Hd  u  pEUR                  U 5        U R!                  SU5        UR                  U 5        U R                  SU5        U(       d  MT  U R                  5         Mf     U(       a(  ["        R$                  " SSU R&                  5      U l        g ["        R$                  " SSU R&                  5      U l        g )NTr   r   z, \n$rE   z, $r8   )r?   r]   len	argumentskwargsr;   listvaluesr   r   ElementaryNode	IndexNoderV   r   rO   r   rS   rF   r   r9   )r@   r.   
break_argsr   keyrk   s         r/   visit_ArgumentNodeAstPrinter.visit_ArgumentNode   s\   nn3$..)C,<<@W@WW
$t{{'9'9';"<<Aa'"8"8':K:K!LMM!
 = LLNAHHTNKKd#z	  
 ))+HCJJtsD)JJtKKd#z , &&4=DK&&T[[9DKr0   )r;   r<   r?   r:   r=   r>   r9   N)r   r   F)r:   intr;   r  rA   boolreturnNone)rN   rc   r.   mparser.BaseNoder  r  r.   zmparser.BooleanNoder  r  r.   zmparser.IdNoder  r  r.   zmparser.NumberNoder  r  )rk   rc   r  rc   r.   zmparser.StringNoder  r  r.   zmparser.ContinueNoder  r  r.   zmparser.BreakNoder  r  r.   zmparser.ArrayNoder  r  r.   zmparser.DictNoder  r  r.   zmparser.OrNoder  r  r.   zmparser.AndNoder  r  r.   zmparser.ComparisonNoder  r  )r   r  r-   r  r   r  r  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.TernaryNoder  r  r.   zmparser.ArgumentNoder  r  ))__name__
__module____qualname____firstlineno__rc   	maketransr6   __annotations__rB   rH   rO   rS   rV   r_   rd   rg   rl   rs   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  __static_attributes__ r0   r/   r2   r2   /   s    %(]]&t3L%ML"M<: &
 44
40	444   $H 
 
 
(# 
 %:r0   r2   c                  d    \ 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
rg)
RawPrinteri  c                    SU l         g )Nr8   r9   rG   s    r/   rB   RawPrinter.__init__  s	    r0   c                    U R                  U5        [        US5      (       d   eU =R                  UR                  -  sl        U R	                  U5        g Nr\   )
enter_nodehasattrr9   r\   	exit_noder^   s     r/   visit_default_funcRawPrinter.visit_default_func  s?    tW%%%%tzz!tr0   c                H    U R                  U5        U R                  U5        g rb   )r1  r3  r^   s     r/   visit_EmptyNodeRawPrinter.visit_EmptyNode  s    tr0   c                    U R                  U5        U =R                  UR                  (       a  SOS-  sl        U R                  U5        g rY   )r1  r9   r\   r3  r^   s     r/   r_   RawPrinter.visit_BooleanNode  s0    v8tr0   c                    U R                  U5        U =R                  UR                  -  sl        U R                  U5        g rb   )r1  r9   	raw_valuer3  r^   s     r/   rg   RawPrinter.visit_NumberNode!  s,    t~~%tr0   c                D   U R                  U5        UR                  (       a  U =R                  S-  sl        UR                  (       a$  U =R                  SUR                   S3-  sl        O#U =R                  SUR
                   S3-  sl        U R                  U5        g ro   )r1  rq   r9   rr   r\   r<  r3  r^   s     r/   rs   RawPrinter.visit_StringNode&  so    ??KK3KKKSC00KKKQt~~.a00Ktr0   c                r    U R                  U5        U =R                  S-  sl        U R                  U5        g rv   r1  r9   r3  r^   s     r/   ry   RawPrinter.visit_ContinueNode0  s(    z!tr0   c                r    U R                  U5        U =R                  S-  sl        U R                  U5        g r|   rA  r^   s     r/   r~   RawPrinter.visit_BreakNode5  s(    wtr0   r-  Nr  r.   r  r  r  )r.   zmparser.EmptyNoder  r  r	  r  r  r  r  )r"  r#  r$  r%  rB   r4  r7  r_   rg   rs   ry   r~   r(  r)  r0   r/   r+  r+    s*    


r0   r+  c                  @   \ 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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 r"g!)?AstJSONPrinteri;  c                4    0 U l         U R                   U l        g rb   )r9   currentrG   s    r/   rB   AstJSONPrinter.__init__<  s    *,{{r0   c                v    U R                   n0 nX@l         UR                  U 5        X0l         X@R                   U'   g rb   rI  r   )r@   r   r.   oldrN   s        r/   _acceptAstJSONPrinter._accept@  s2    ll#%D Sr0   c                    U R                   n/ nU H*  n0 U l         UR                  U 5        X@R                   /-  nM,     X0l         X@R                   U'   g rb   rL  )r@   r   nodesrM  datalistr   s         r/   _accept_listAstJSONPrinter._accept_listH  sM    ll/1ADLHHTN&H  $Sr0   c                V    U R                   nX l         UR                  U 5        X0l         g rb   rL  )r@   r.   rN   rM  s       r/   _raw_acceptAstJSONPrinter._raw_acceptR  s!    llDr0   c                   [        U5      R                  U R                  S'   UR                  U R                  S'   UR                  U R                  S'   UR
                  U R                  S'   UR                  U R                  S'   g )Nr.   r]   colno
end_lineno	end_colno)typer"  rI  r]   rY  rZ  r[  r^   s     r/   setbaseAstJSONPrinter.setbaseX  sb    #Dz22V!%X $

W%)__\"$(NN[!r0   c                &    U R                  U5        g rb   )r]  r^   s     r/   r4  !AstJSONPrinter.visit_default_func_  s    Tr0   c                X    UR                   U R                  S'   U R                  U5        g r0  )r\   rI  r]  r^   s     r/   gen_ElementaryNode!AstJSONPrinter.gen_ElementaryNodeb  s      $

WTr0   c                &    U R                  U5        g rb   rb  r^   s     r/   r_    AstJSONPrinter.visit_BooleanNodef      %r0   c                &    U R                  U5        g rb   re  r^   s     r/   rd   AstJSONPrinter.visit_IdNodei  rg  r0   c                &    U R                  U5        g rb   re  r^   s     r/   rg   AstJSONPrinter.visit_NumberNodel  rg  r0   c                &    U R                  U5        g rb   re  r^   s     r/   rs   AstJSONPrinter.visit_StringNodeo  rg  r0   c                ^    U R                  SUR                  5        U R                  U5        g Nr   rN  r   r]  r^   s     r/   r   AstJSONPrinter.visit_ArrayNoder       VTYY'Tr0   c                ^    U R                  SUR                  5        U R                  U5        g ro  rp  r^   s     r/   r   AstJSONPrinter.visit_DictNodev  rr  r0   c                    U R                  SUR                  5        U R                  SUR                  5        U R                  U5        g Nr   r   rN  r   r   r]  r^   s     r/   r   AstJSONPrinter.visit_OrNodez  2    VTYY'Wdjj)Tr0   c                    U R                  SUR                  5        U R                  SUR                  5        U R                  U5        g rv  rw  r^   s     r/   r   AstJSONPrinter.visit_AndNode  ry  r0   c                    U R                  SUR                  5        U R                  SUR                  5        UR                  U R                  S'   U R                  U5        g )Nr   r   r   )rN  r   r   r   rI  r]  r^   s     r/   r   #AstJSONPrinter.visit_ComparisonNode  sD    VTYY'Wdjj) $

WTr0   c                    U R                  SUR                  5        U R                  SUR                  5        UR                  R                  U R
                  S'   U R                  U5        g )Nr   r   op)rN  r   r   r   r\   rI  r]  r^   s     r/   r   #AstJSONPrinter.visit_ArithmeticNode  sJ    VTYY'Wdjj)!]]00TTr0   c                ^    U R                  SUR                  5        U R                  U5        g Nr   rN  r\   r]  r^   s     r/   r   AstJSONPrinter.visit_NotNode       Wdjj)Tr0   c                ^    U R                  SUR                  5        U R                  U5        g )Nr   )rS  r   r]  r^   s     r/   r   "AstJSONPrinter.visit_CodeBlockNode  s"    '4::.Tr0   c                    U R                  SUR                  5        U R                  SUR                  5        U R                  U5        g )Nobjectr   )rN  r   r   r]  r^   s     r/   r   AstJSONPrinter.visit_IndexNode  s2    Xt||,Wdjj)Tr0   c                    U R                  SUR                  5        U R                  SUR                  5        UR                  R                  U R
                  S'   U R                  U5        g )Nr  r   r   )rN  r   r   r   r\   rI  r]  r^   s     r/   r   AstJSONPrinter.visit_MethodNode  sJ    Xt112VTYY'#yyVTr0   c                    U R                  SUR                  5        UR                  R                  U R                  S'   U R                  U5        g )Nr   r   )rN  r   r   r\   rI  r]  r^   s     r/   r   !AstJSONPrinter.visit_FunctionNode  s8    VTYY'#~~33VTr0   c                    U R                  SUR                  5        UR                  R                  U R                  S'   U R	                  U5        g Nr\   r   rN  r\   r   rI  r]  r^   s     r/   r   #AstJSONPrinter.visit_AssignmentNode  8    Wdjj)#'==#6#6Z Tr0   c                    U R                  SUR                  5        UR                  R                  U R                  S'   U R	                  U5        g r  r  r^   s     r/   r   'AstJSONPrinter.visit_PlusAssignmentNode  r  r0   c                   U R                  SUR                  5        U R                  SUR                  5        UR                   Vs/ s H  o"R                  PM     snU R
                  S'   U R                  U5        g s  snf )Nr   r   r   )rN  r   r   r   r\   rI  r]  )r@   r.   r   s      r/   r   &AstJSONPrinter.visit_ForeachClauseNode  s[    Wdjj)Wdjj)AE#OgMM#OZ T $Ps   A>c                    U R                  SUR                  5        U R                  SUR                  5        U R	                  U5        g )Nr   r   )rS  r   rN  r   r]  r^   s     r/   r   !AstJSONPrinter.visit_IfClauseNode  s4    %*VT^^,Tr0   c                ^    U R                  SUR                  5        U R                  U5        g r  r  r^   s     r/   r   AstJSONPrinter.visit_UMinusNode  r  r0   c                    U R                  SUR                  5        U R                  SUR                  5        U R                  U5        g )Nr   r   )rN  r   r   r]  r^   s     r/   r   AstJSONPrinter.visit_IfNode  s2    [$..1Wdjj)Tr0   c                    U R                  SUR                  5        U R                  SUR                  5        U R                  SUR                  5        U R	                  U5        g )Nr   rZ   r[   )rN  r   r   r   r]  r^   s     r/   r    AstJSONPrinter.visit_TernaryNode  sD    [$..1VT^^,Wdoo.Tr0   c                    U R                  SUR                  5        / nUR                  R                  5        H3  u  p40 n0 nU R	                  X55        U R	                  XF5        X%US./-  nM5     X R
                  S'   U R                  U5        g )N
positional)r   rk   r   )rS  r   r   r   rV  rI  r]  )r@   r.   kwargs_listr   rk   key_resval_ress          r/   r  !AstJSONPrinter.visit_ArgumentNode  s    ,7?A))+HC*,G*,GS*S*G<==K , "-XTr0   )rI  r9   Nr  )r   rc   r.   r  r  r  )r   rc   rQ  zT.Sequence[mparser.BaseNode]r  r  )r.   r  rN   zT.Dict[str, T.Any]r  r  rE  )r.   zmparser.ElementaryNoder  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%  rB   rN  rS  rV  r]  r4  rb  r_   rd   rg   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r(  r)  r0   r/   rG  rG  ;  s    #!%3&&&&








r0   rG  )r.   r  r  r  )
__future__r   r8   r   visitorr   r   mesonlibr	   rF   typingTr,   r2   r+  rG  r)  r0   r/   <module>r     sH    #  / ( 	 
3:\: \:|+ +\[Z [r0   