+
    UBi                       a  0 t $ ^ RIHt ^ RIHtHt ^ RIt^ RIt^ RIt^ RI	t
^RIHt ^RIHt ]
P                  '       d!   ^ RIHt ^RIHt ]
P(                  ! RR	R
7      t]P,                  ! R]P.                  ]P0                  ,          4      tR R lt ! R R]4      t ! R R]4      t]
P(                  ! R]]]4      t ]! RR7       ! R R]
PB                  ] ,          4      4       t"]P,                  ! R4      t# ! R R4      t$] ! R R	4      4       t%]! RR7       ! R R]%4      4       t&]! RR7       ! R R ]
PB                  ] ,          ]%4      4       t' ! R! R"]'],          4      t( ! R# R$]'],          4      t)]! RR7       ! R% R&]'],          4      4       t*]! RR7       ! R' R(]'],          4      4       t+ ! R) R*]'4      t, ! R+ R,]'4      t- ! R- R.]'],          4      t.]! RR7       ! R/ R0]%4      4       t/]! RR7       ! R1 R2]%4      4       t0]! RR7       ! R3 R4]%4      4       t1 ! R5 R6]%4      t2]! RR7       ! R7 R8]%4      4       t3 ! R9 R:]34      t4 ! R; R<]34      t5]! RR7       ! R= R>]34      4       t6]! RR7       ! R? R@]34      4       t7]! RR7       ! RA RB]%4      4       t8 ! RC RD]84      t9 ! RE RF]84      t:]! RR7       ! RG RH]%4      4       t;]! RR7       ! RI RJ]%4      4       t<]! RR7       ! RK RL]%4      4       t=]! RR7       ! RM RN]%4      4       t>]! RR7       ! RO RP]%4      4       t? ! RQ RR]?4      t@]! RR7       ! RS RT]%4      4       tA]! RR7       ! RU RV]%4      4       tB]! RR7       ! RW RX]%4      4       tC]! RR7       ! RY RZ]%4      4       tD]! RR7       ! R[ R\]%4      4       tE]! RR7       ! R] R^]%4      4       tF]! RR7       ! R_ R`]%4      4       tG]
P                  '       d
   ]Rt,          tHRiRaRjRbRkRcRlRdRmRfRnReRgRgRoRh/tIRp]JRq&    ! Rr Rs4      tKR# )u    )annotations)	dataclassfieldN)MesonException)mlog)Literal)
AstVisitor	BaseNodeTBaseNode)bounda,  
    ( \\U[A-Fa-f0-9]{8}   # 8-digit hex escapes
    | \\u[A-Fa-f0-9]{4}   # 4-digit hex escapes
    | \\x[A-Fa-f0-9]{2}   # 2-digit hex escapes
    | \\[0-7]{1,3}        # Octal escapes
    | \\N\{[^}]+\}        # Unicode characters by name
    | \\[\\'abfnrtv]      # Single-character escapes
    )c                    V ^8  d   QhRRRR/# )   matchzT.Match[str]returnstr )formats   "7/usr/lib/python3.14/site-packages/mesonbuild/mparser.py__annotate__r       s     D D D D    c                j    \         P                  ! V P                  ^ 4      P                  4       R4      # )r   unicode_escape)codecsdecodegroupencode)r   s   &r   decode_matchr       s%    ==Q..02BCCr   c                  >   a  ] tR t^#t$ RtR]R&   R V 3R lltRtV ;t# )ParseExceptionNzT.Optional[CodeBlockNode]astc          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r   textr   linelinenointcolnor   Noner   )r   s   "r   r   ParseException.__annotate__'   s/      S  S   r   c                	h   < \         SV `  \        P                  ! WV4      4       W0n        W@n        R # N)super__init__r   	code_liner$   r&   )selfr"   r#   r$   r&   	__class__s   &&&&&r   r,   ParseException.__init__'   s%    E:;
r   r&   r$   )	__name__
__module____qualname____firstlineno__r    __annotations__r,   __static_attributes____classcell__r/   s   @r   r   r   #   s    %)C	") r   r   c                  "    ] tR t^-tR R ltRtR# )BlockParseExceptionc               8    V ^8  d   QhRRRRRRRRRRRRR	RR
R/# )r   r"   r   r#   r$   r%   r&   
start_linestart_linenostart_colnor   r'   r   )r   s   "r   r    BlockParseException.__annotate__.   sZ        	
    " ! r   c                	N   W68X  dT   \         P                  ! V R P                  WRP                  RV,          RWG,
          ^,
          ,          4      4      4       M?\         P                  ! V RWRRV,          ,          WgVRRV,          ,          3,          4       W0n        W@n        R# )z{}
{}
{}z{}^{}^ _z0%s
%s
%s
For a block that started at %d,%d
%s
%sz%s^N)r   r,   r   r$   r&   )r.   r"   r#   r$   r&   r=   r>   r?   s   &&&&&&&&r   r,   BlockParseException.__init__.   s     ! ##D,*=*=d(//Z]`kZkmpty  uH  KL  uL  nM  KN  +O  P ##D*aeiqvz}  AF  {F  rG  IU  dn  pu  y|  J  yJ  pK  eL  +L  M
r   r1   N)r2   r3   r4   r5   r,   r7   r   r   r   r;   r;   -   s     r   r;   TV_TokenTypesF)eqc                  j    ] tR t^Pt$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R R ltRtR# )Tokenr   tidfilenamer%   
line_startr$   r&   T.Tuple[int, int]bytespanrE   valuec                    V ^8  d   QhRRRR/# )r   otherobjectr   boolr   )r   s   "r   r   Token.__annotate__Z   s      F t r   c                	    \        V\        4      '       d   V P                  V8H  # \        V\        4      '       d   V P                  VP                  8H  # \        # r*   )
isinstancer   rI   rH   NotImplemented)r.   rP   s   &&r   __eq__Token.__eq__Z   sD    eS!!88u$$u%%88uyy((r   r   N)r2   r3   r4   r5   r6   rW   r7   r   r   r   rH   rH   P   s1    	HMOKJ r   rH   z[_a-zA-Z][_0-9a-zA-Z]*c                  :    ] tR t^dtR R ltR R ltR R ltRtR# )	Lexerc                   V ^8  d   QhRR/# )r   coder   r   )r   s   "r   r   Lexer.__annotate__e   s     1
 1
S 1
r   c                	   VP                  \        P                  P                  R 4      4      '       d$   VP	                  R^R7      vr#\        RV^ ^ R7      hWn        0 RMmV n        R0V n        R\        P                  9   V n        V P                  '       d   V P                  P                  RR04       . R	\        P                  ! R
4      3NR\        P                  ! R\        P                  4      3NR\        P                  ! R4      3NR\         3NR\        P                  ! R4      3NR\        P                  ! R4      3NR\        P                  ! R4      3NR\        P                  ! R\        P                  4      3NR\        P                  ! R4      3NR\        P                  ! R4      3NR\        P                  ! R4      3NR\        P                  ! R4      3NR \        P                  ! R!4      3NR"\        P                  ! R#4      3NR$\        P                  ! R%4      3NR&\        P                  ! R'4      3NR(\        P                  ! R)4      3NR*\        P                  ! R+4      3NR,\        P                  ! R-4      3NR.\        P                  ! R/4      3NR0\        P                  ! R14      3NR2\        P                  ! R34      3NR4\        P                  ! R54      3NR6\        P                  ! R74      3NR8\        P                  ! R94      3NR:\        P                  ! R;4      3NR<\        P                  ! R=4      3NR>\        P                  ! R?4      3NR@\        P                  ! RA4      3NRB\        P                  ! RC4      3NRD\        P                  ! RE4      3NRF\        P                  ! RG4      3NRH\        P                  ! RI4      3NRJ\        P                  ! RK4      3NV n        RL# )Nzutf-8
)maxsplitz3Builder file must be encoded in UTF-8 (with no BOM))r$   r&   r   MESON_RUNNING_IN_PROJECT_TESTStestcaseendtestcase
whitespacez[ \t]+multiline_fstringzf'''(.|\n)*?'''fstringzf'([^'\\]|(\\.))*'idnumberz30[bB][01]+|0[oO][0-7]+|0[xX][0-9a-fA-F]+|0|[1-9]\d*eol_contz\\[ \t]*(#.*)?\neolz\nmultiline_stringz'''(.|\n)*?'''commentz#.*lparenz\(rparenz\)lbracketz\[rbracketz\]lcurlz\{rcurlz\}dblquote"stringz'([^'\\]|(\\.))*'comma,
plusassignz\+=dotz\.plusz\+dash-starz\*percent%fslash/colon:equal==nequal!=assign=le<=lt<ge>=gt>questionmarkz\?N>   ifinorandnotelifelsetruebreakendiffalseforeachcontinue
endforeach)
startswithr   BOM_UTF8r   splitr   r\   keywordsfuture_keywordsosenvironin_unit_testupdaterecompileMIDENT_REtoken_specification)r.   r\   r#   rC   s   &&  r   r,   Lexer.__init__e   s   ??6??11':;;zz$z3HD !VX\efnopp	4 !)z<

JMM  *m!<=$$
2::i01$$
 !"**-?"FG$$
 

#89:	$$

 8$$
 rzz"XYZ$$
 $789$$
 BJJu%&$$
  ,=rtt!DE$$
 

6*+$$
 rzz%()$$
 rzz%()$$
 E*+$$
 E*+$$
 bjj'($$
  bjj'(!$$
" D)*#$$
$ rzz"678%$$
& bjj&''$$
( 2::f-.)$$
* BJJu%&+$$
, RZZ&'-$$
. RZZ%&/$$
0 RZZ&'1$$
2 

4()3$$
4 rzz$'(5$$
6 bjj&'7$$
8 bjj'(9$$
: rzz%();$$
< rzz$'(=$$
> 2::e$%?$$
@ 2::d#$A$$
B 2::e$%C$$
D 2::d#$E$$
F RZZ./G$$
 r   c                    V ^8  d   QhRRRR/# )r   rK   r%   r   r   r   )r   s   "r   r   r]      s     F F# F# Fr   c                	R    V P                   WP                   P                  R V4       # )r_   )r\   find)r.   rK   s   &&r   getlineLexer.getline   s     yyIINN4$DEEr   c                    V ^8  d   QhRRRR/# )r   rJ   r   r   zT.Generator[Token, None, None]r   )r   s   "r   r   r]      s#     EJ EJC EJ$B EJr   c           
   #  	2  "   ^ p^p^ p^ p^ p^ p^ pV\        V P                  4      8  Ed   Rp	Rp
V P                   EF  w  rVP                  V P                  V4      pV'       g   K,  TpTpVP	                  4       V,
          pRp	TpVP                  4       pTpVV3pVP                  4       p
VR8X  d   V^,          pEMVR8X  d   V^,          pEMVR8X  d   V^,          pEMVR8X  d   V^,          pEMVR8X  d   V^,          pEMVR	8X  d   V^,          pEMVR
8X  d   \        RV P                  V4      W84      hVR9   do   V
P                  R4      R8w  dJ   Rp\        P                  ! \        P                  ! VV P                  V4      V4      \        W8V4      R7       YR8X  d   ^M^R p
EMVR9   dw   YR8X  d   ^M^R p
V
P                  R4      p\        V4      ^8  dH   V\        V4      ^,
          ,          pVP                  4       \        VR,          4      ,
          ^,
          pMVR8X  d   V^,          pTpRpMzVR8X  d$   V^,          pTpV^ 8  g   V^ 8  g   V^ 8  d   RpMPVR8X  dJ   WP                  9   d   T
pM6WP                   9   d'   \        P                  ! RV
 R2\        W8V4      R7       \#        WWVVV
4      x   M	  V	'       d   EK  \        RV P                  V,          : 2V P                  V4      W4V,
          4      hR# 5i)r   F Trm   rn   ro   rp   rq   rr   rs   z3Double quotes are not supported. Use single quotes.rf   r_   zNewline character in a string detected, use ''' (three single quotes) for multiline strings instead.
This will become a hard error in a future Meson release.locationre   ri   rd   rj   rg   zIdentifier 'zG' will become a reserved keyword in a future release. Please rename it.zlexer: unrecognized token N>   ru   rf   >   rk   re   )lenr\   r   r   startendr   r   r   r   r   warningr-   r   r   r   r   rH   )r.   rJ   rK   r$   loc	par_countbracket_count
curl_countcolmatchedrN   rI   regmocurlinecurline_start
span_startspan_endrM   msgliness   &&                   r   lex	Lexer.lex   s    
	
C		N"GE"66
YYtyy#.2$G$.M((*z1C"G!$J&&(C"H *H5HHHJEh!Q	!Q	
*%*
*%*"a
"a

*,-bdhdpdpq{d|  E  K  K 55 ::d+r1$^C !LLT\\*=UWZ)[fnou  }E  gF  G %)+;a2 F II %2E+Ea1R P %D 1u:>"c%j1n4F)+Cb	N)BQ)FJ
*!%(
*!%(
$q=MA,=a".C MM1"'C$(<(<< $|E7  CJ  .K6>vH6U!W}sHV[\\q 7r 7$'A$))C.AS%TVZVbVbcmVnpv  I  yI  J  J{ #s   A!L(I/L:L)r\   r   r   r   r   N)r2   r3   r4   r5   r,   r   r   r7   r   r   r   rZ   rZ   d   s    1
fFEJ EJr   rZ   c                      ] tR t^t$ R]R&   R]R&   ]! RR7      tR]R&   ]! RR7      tR]R&   ]! RR7      tR]R	&   ]! RR7      t	R
]R&   RR R llt
R R ltR R ltRtR# )r   r%   r$   r&   Fhashr   rJ   
end_lineno	end_colnoT.Optional[WhitespaceNode]whitespacesNc               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r   r$   r%   r&   rJ   r   r   zT.Optional[int]r   r   r'   r   )r   s   "r   r   BaseNode.__annotate__   s9     ! !s !3 !# !,!@O![_!r   c                	    Wn         W n        W0n        Ve   TMTV n        Ve   TMTV n        R V n        ^ V n        RV n        ^ V n        R # )Nr   )	r$   r&   rJ   r   r   r   levelast_idcondition_level)r.   r$   r&   rJ   r   r   s   &&&&&&r   r,   BaseNode.__init__   sM    
 (2(>*F&/&; 
 r   c                    V ^8  d   QhRRRR/# )r   visitorz'AstVisitor'r   r'   r   )r   s   "r   r   r      s      l t r   c                	    R P                  \        V 4      P                  4      p\        W4      '       d)   \	        W4      p\        V4      '       d   V! V 4       R# R# R# )zvisit_{}N)r   typer2   hasattrgetattrcallable)r.   r   fnamefuncs   &&  r   acceptBaseNode.accept   sK    !!$t*"5"567""7*D~~T
  #r   c                    V ^8  d   QhRRRR/# r   tokenrH   r   r'   r   )r   s   "r   r   r      s     + + +$ +r   c                	|    V P                   f   \        V4      V n         R # V P                   P                  V4       R # r*   )r   WhitespaceNodeappendr.   r   s   &&r   append_whitespacesBaseNode.append_whitespaces   s/    #-e4D##E*r   )	r   r&   r   r   r   rJ   r   r$   r   )NN)r2   r3   r4   r5   r6   r   rJ   r   r   r   r,   r   r   r7   r   r   r   r   r      s]    KJu%Hc%'J'&Is&.3.?K+?!+ +r   T)unsafe_hashc                  F   a  ] tR tRt$ R]R&   R V 3R lltR R ltRtV ;t# )	r   i  r   rN   c                   V ^8  d   QhRR/# r   r   
Token[str]r   )r   s   "r   r   WhitespaceNode.__annotate__  s     % %j %r   c                	   < \         SV `  VP                  VP                  VP                  4       R V n        V P                  V4       RV n        RV n        R# )r   FN)	r+   r,   r$   r&   rJ   rN   r   block_indentis_continuationr.   r   r/   s   &&r   r,   WhitespaceNode.__init__  sC    u{{ENNC
E!$r   c                    V ^8  d   QhRRRR/# )r   r   r   r   r'   r   )r   s   "r   r   r     s     " "J "4 "r   c                	L    V ;P                   VP                   ,          un         R # r*   )rN   r   s   &&r   r   WhitespaceNode.append  s    

ekk!
r   )r   r   rN   )	r2   r3   r4   r5   r6   r,   r   r7   r8   r9   s   @r   r   r     s     J% %" "r   r   c                  V   a  ] tR tRt$ R]R&   ]! RR7      tR]R&   R V 3R	 lltR
tV ;t	# )ElementaryNodei  rE   rN   Fr   rL   rM   c                   V ^8  d   QhRR/# r   r   Token[TV_TokenTypes]r   )r   s   "r   r   ElementaryNode.__annotate__  s     ' '2 'r   c                	   < \         SV `  VP                  VP                  VP                  4       VP
                  V n        VP                  V n        R # r*   )r+   r,   r$   r&   rJ   rN   rM   r   s   &&r   r,   ElementaryNode.__init__  s6    u{{ENNC[[
r   )rM   rN   )
r2   r3   r4   r5   r6   r   rM   r,   r7   r8   r9   s   @r   r  r    s%     "'U"3H3' 'r   r  c                      ] tR tRtRtR# )BooleanNodei!  r   Nr2   r3   r4   r5   r7   r   r   r   r	  r	  !      r   r	  c                      ] tR tRtRtR# )IdNodei$  r   Nr
  r   r   r   r  r  $  r  r   r  c                  @    ] tR tRt$ ]! RR7      tR]R&   R R ltRtR	# )

NumberNodei'  Fr   r   	raw_valuec                   V ^8  d   QhRR/# r   r   )r   s   "r   r   NumberNode.__annotate__,  s     ' 'j 'r   c                	    \         P                  WP                  VP                  VP                  4       VP
                  V n        \        VP
                  ^ R7      V n        VP                  V n        R# )r   )baseN)	r   r,   r$   r&   rJ   rN   r  r%   rM   r   s   &&r   r,   NumberNode.__init__,  sH    $ekk5>>J1-
r   )rM   r  rN   N)	r2   r3   r4   r5   r   r  r6   r,   r7   r   r   r   r  r  '  s     &Is&' 'r   r  c                  p   a  ] tR tRt$ ]! RR7      tR]R&   R]R&   R]R&   RR	 V 3R
 llltR R ltRt	V ;t
# )
StringNodei2  Fr   r   r  rR   is_multiline
is_fstringc                    V ^8  d   QhRRRR/# )r   r   r   escaperR   r   )r   s   "r   r   StringNode.__annotate__9  s     ' 'j '$ 'r   c                	   < \         SV `  V4       R VP                  9   V n        RVP                  9   V n        VP
                  V n        V'       d,   V P                  '       g   V P                  4       V n        R# R# R# )	multilinerf   N)r+   r,   rI   r  r  rN   r  r  )r.   r   r  r/   s   &&&r   r,   StringNode.__init__9  s^    '5994#uyy0$+++DJ ,6r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r  C  s     K K Kr   c                	J    \         P                  \        V P                  4      # r*   )ESCAPE_SEQUENCE_SINGLE_REsubr   r  r.   s   &r   r  StringNode.escapeC  s    (,,\4>>JJr   )r  r  r  rN   )T)r2   r3   r4   r5   r   r  r6   r,   r  r7   r8   r9   s   @r   r  r  2  s6     &Is&' 'K Kr   r  c                      ] tR tRtRtR# )ContinueNodeiF  r   Nr
  r   r   r   r(  r(  F  r  r   r(  c                      ] tR tRtRtR# )	BreakNodeiI  r   Nr
  r   r   r   r*  r*  I  r  r   r*  c                      ] tR tRtRtR# )
SymbolNodeiL  r   Nr
  r   r   r   r,  r,  L  r  r   r,  c                    a  ] tR tRt$ ]! RR7      tR]R&   ]! RR7      tR]R&   ]! RR7      tR]R&   ]! RR7      t	R	]R
&   R V 3R llt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltRtV ;t# ) ArgumentNodeiO  Fr   T.List[BaseNode]	argumentsT.List[SymbolNode]commascolonszT.Dict[BaseNode, BaseNode]kwargsc                   V ^8  d   QhRR/# r  r   )r   s   "r   r   ArgumentNode.__annotate__W  s     	" 	"2 	"r   c                	   < \         SV `  VP                  VP                  VP                  4       . V n        . V n        . V n        / V n        R V n	        R V n
        R# )FN)r+   r,   r$   r&   rJ   r0  r2  r3  r4  order_errorr  r   s   &&r   r,   ArgumentNode.__init__W  sN    u{{ENNC  "r   c                    V ^8  d   QhRRRR/# r   	statementr   r   r'   r   )r   s   "r   r   r6  b  s     : : :d :r   c                	    V P                  4       ^ 8  d   RV n        \        V\        4      '       g   V.V P                  ,           V n        R# R# r   TN
num_kwargsr8  rU   	EmptyNoder0  r.   r<  s   &&r   prependArgumentNode.prependb  s=    ??q #D)Y//'[4>>9DN 0r   c                    V ^8  d   QhRRRR/# r;  r   )r   s   "r   r   r6  h  s     * * *T *r   c                	    V P                  4       ^ 8  d   RV n        \        V\        4      '       g   V ;P                  V.,          un        R# R# r>  r?  rB  s   &&r   r   ArgumentNode.appendh  s;    ??q #D)Y//NNyk)N 0r   c               $    V ^8  d   QhRRRRRR/# )r   namer  rN   r   r   r'   r   )r   s   "r   r   r6  n  s!     " "f "X "$ "r   c                	D  a \         ;QJ d)    V3R  lV P                   4       F  '       g   K   RM	  RM! V3R  lV P                   4       4      '       d=   \        P                  ! RSP                   R2V R7       \        P                  ! R4       W P                  S&   R# )c              3     <"   T F6  p\        V\        4      ;'       d    SP                  VP                  8H  x  K8  	  R # 5ir*   )rU   r  rN   ).0xrI  s   & r   	<genexpr>)ArgumentNode.set_kwarg.<locals>.<genexpr>o  s0     V+Q
1f%??$***??+s
   A"ATFzKeyword argument "z" defined multiple times.r   z#This will be an error in Meson 2.0.N)anyr4  r   r   rN   r.   rI  rN   s   &f&r   	set_kwargArgumentNode.set_kwargn  sc    3V$++V333V$++VVVLL-djj\9RS^bcLL>?!Dr   c               $    V ^8  d   QhRRRRRR/# )r   rI  r   defaultr   r   r   )r   s   "r   r   r6  t  s!       x H r   c                	    V P                   P                  4        F2  w  r4\        V\        4      '       g   Q hVP                  V8X  g   K0  Vu # 	  V# r*   )r4  itemsrU   r  rN   )r.   rI  rU  kvs   &&&  r   get_kwarg_or_default!ArgumentNode.get_kwarg_or_defaultt  sE    KK%%'DAa((((ww$ ( r   c               $    V ^8  d   QhRRRRRR/# )r   rI  r   rN   r   r'   r   )r   s   "r   r   r6  {  s!     " "x " "T "r   c                	"    W P                   V&   R # r*   )r4  rQ  s   &&&r   set_kwarg_no_checkArgumentNode.set_kwarg_no_check{  s    !Dr   c                   V ^8  d   QhRR/# r   r   r%   r   )r   s   "r   r   r6  ~  s     # ## #r   c                	,    \        V P                  4      # r*   )r   r0  r%  s   &r   num_argsArgumentNode.num_args~  s    4>>""r   c                   V ^8  d   QhRR/# ra  r   )r   s   "r   r   r6    s        C  r   c                	,    \        V P                  4      # r*   )r   r4  r%  s   &r   r@  ArgumentNode.num_kwargs  s    4;;r   c                   V ^8  d   QhRR/# )r   r   rR   r   )r   s   "r   r   r6    s          r   c                	    V P                   # r*   )r8  r%  s   &r   incorrect_orderArgumentNode.incorrect_order  s    r   c                   V ^8  d   QhRR/# ra  r   )r   s   "r   r   r6    s     3 3 3r   c                	L    V P                  4       V P                  4       ,           # r*   )rc  r@  r%  s   &r   __len__ArgumentNode.__len__  s    }}!222r   )r0  r3  r2  r  r4  r8  )r2   r3   r4   r5   r   r0  r6   r2  r3  r4  r,   rC  r   rR  rZ  r^  rc  r@  rj  rn  r7   r8   r9   s   @r   r.  r.  O  s     #(U"3I3!&E!2F2!&E!2F2).E):F&:	" 	":*""#  3 3r   r.  c                  N   a  ] tR tRt$ R]R&   R]R&   R]R&   R V 3R lltR	tV ;t# )
	ArrayNodei  r,  ro   r.  argsrp   c               $    V ^8  d   QhRRRRRR/# )r   ro   r,  rr  r.  rp   r   )r   s   "r   r   ArrayNode.__annotate__  s!     ! ! !< !: !r   c                	   < \         SV `  VP                  VP                  VP                  VP                  VP                  ^,           R7       Wn        W n        W0n        R#    r   r   N)r+   r,   r$   r&   rJ   ro   rr  rp   )r.   ro   rr  rp   r/   s   &&&&r   r,   ArrayNode.__init__  sM    (..$--T\TcTcowo}o}~o  	A 	 r   )rr  ro   rp   r2   r3   r4   r5   r6   r,   r7   r8   r9   s   @r   rq  rq    s!     
! !r   rq  c                  N   a  ] tR tRt$ R]R&   R]R&   R]R&   R V 3R lltR	tV ;t# )
DictNodei  r,  rq   r.  rr  rr   c               $    V ^8  d   QhRRRRRR/# )r   rq   r,  rr  r.  rr   r   )r   s   "r   r   DictNode.__annotate__  s!      j  Z r   c                	   < \         SV `  VP                  VP                  VP                  VP                  VP                  ^,           R7       Wn        W n        W0n        R# rv  )r+   r,   r$   r&   rJ   rq   rr  rr   )r.   rq   rr  rr   r/   s   &&&&r   r,   DictNode.__init__  sG    u{{DMMellfkfqfqrsfst
	
r   )rr  rq   rr   rz  r9   s   @r   r|  r|    s!     
 r   r|  c                      ] tR tRtRtR# )rA  i  r   Nr
  r   r   r   rA  rA    r  r   rA  c                  N   a  ] tR tRt$ R]R&   R]R&   R]R&   R V 3R lltR	tV ;t# )
BinaryOperatorNodei  r   leftr,  operatorrightc               $    V ^8  d   QhRRRRRR/# )r   r  r   r  r,  r  r   )r   s   "r   r   BinaryOperatorNode.__annotate__  s!      X  H r   c                	   < \         SV `  VP                  VP                  VP                  4       Wn        W n        W0n        R # r*   )r+   r,   r$   r&   rJ   r  r  r  )r.   r  r  r  r/   s   &&&&r   r,   BinaryOperatorNode.__init__  s/    djj$--@	 
r   )r  r  r  rz  r9   s   @r   r  r    s     NO r   r  c                      ] tR tRtRtR# )OrNodei  r   Nr
  r   r   r   r  r    r  r   r  c                      ] tR tRtRtR# )AndNodei  r   Nr
  r   r   r   r  r    r  r   r  c                  :   a  ] tR tRt$ R]R&   R V 3R lltRtV ;t# )ComparisonNodei  COMPARISONSctypec               (    V ^8  d   QhRRRRRRRR/# )r   r  r  r  r   r  r,  r  r   )r   s   "r   r   ComparisonNode.__annotate__  s)      k  Z X` r   c                	4   < \         SV `  W#V4       Wn        R # r*   )r+   r,   r  )r.   r  r  r  r  r/   s   &&&&&r   r,   ComparisonNode.__init__  s    /
r   )r  rz  r9   s   @r   r  r    s      r   r  c                  :   a  ] tR tRt$ R]R&   R V 3R lltRtV ;t# )ArithmeticNodei  r   	operationc               (    V ^8  d   QhRRRRRRRR/# )r   r  r   r  r   r  r,  r  r   )r   s   "r   r   ArithmeticNode.__annotate__  s)     # ## #X # #T\ #r   c                	4   < \         SV `  W#V4       Wn        R # r*   )r+   r,   r  )r.   r  r  r  r  r/   s   &&&&&r   r,   ArithmeticNode.__init__  s    /"r   )r  rz  r9   s   @r   r  r    s     N# #r   r  c                  D   a  ] tR tRt$ R]R&   R]R&   R V 3R lltRtV ;t# )	UnaryOperatorNodei  r,  r  r   rN   c               $    V ^8  d   QhRRRRRR/# )r   r   r  r  r,  rN   r   r   )r   s   "r   r   UnaryOperatorNode.__annotate__  s#      2 j QY r   c                	~   < \         SV `  VP                  VP                  VP                  4       W n        W0n        R # r*   )r+   r,   r$   r&   rJ   r  rN   )r.   r   r  rN   r/   s   &&&&r   r,   UnaryOperatorNode.__init__  s*    u{{ENNC 
r   )r  rN   rz  r9   s   @r   r  r    s     O r   r  c                      ] tR tRtRtR# )NotNodei  r   Nr
  r   r   r   r  r    r  r   r  c                      ] tR tRtRtR# )
UMinusNodei  r   Nr
  r   r   r   r  r    r  r   r  c                  t   a  ] tR tRt$ ]! RR7      tR]R&   ]! RR7      tR]R&   R V 3R	 lltR
 R lt	Rt
V ;t# )CodeBlockNodei  Fr   r   pre_whitespacesr/  r   c                   V ^8  d   QhRR/# r  r   )r   s   "r   r   CodeBlockNode.__annotate__  s      2 r   c                	   < \         SV `  VP                  VP                  VP                  4       R V n        . V n        R # r*   )r+   r,   r$   r&   rJ   r  r   r   s   &&r   r,   CodeBlockNode.__init__  s/    u{{ENNC#
r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r    s     / / /$ /r   c                	    V P                   '       d%   V P                   R,          P                  V4       R# V P                  f   \        V4      V n        R# V P                  P	                  V4       R# )rw  Nr   )r   r   r  r   r   r   s   &&r   r    CodeBlockNode.append_whitespaces  sN    :::JJrN--e4!!)#1%#8D   ''.r   )r   r  )r2   r3   r4   r5   r   r  r6   r   r,   r   r7   r8   r9   s   @r   r  r    s9     38U2CO/C#/E/ 
/ /r   r  c                  X   a  ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R V 3R	 lltR
tV ;t# )	IndexNodei  r   iobjectr,  ro   indexrp   c               (    V ^8  d   QhRRRRRRRR/# )r   r  r   ro   r,  r  rp   r   )r   s   "r   r   IndexNode.__annotate__  s)     ! ! !J !x ![e !r   c                	   < \         SV `  VP                  VP                  VP                  4       Wn        W n        W0n        W@n        R # r*   )	r+   r,   r$   r&   rJ   r  ro   r  rp   )r.   r  ro   r  rp   r/   s   &&&&&r   r,   IndexNode.__init__  s6    8H8HI 
 r   )r  r  ro   rp   rz  r9   s   @r   r  r    s&     O! !r   r  c                  l   a  ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R V 3R lltRtV ;t# )
MethodNodei   r   source_objectr,  ry   r  rI  lparr.  rr  rparc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   r  r   ry   r,  rI  r  r  rr  r.  r  r   )r   s   "r   r   MethodNode.__annotate__
  s=      h Z v U_ gs   |F r   c                	   < \         SV `  VP                  VP                  VP                  VP                  VP                  ^,           R7       Wn        W n        W0n        W@n        WPn	        W`n
        R# rv  )r+   r,   r$   r&   rJ   r  ry   rI  r  rr  r  )r.   r  ry   rI  r  rr  r  r/   s   &&&&&&&r   r,   MethodNode.__init__
  sW    djj$--DKKcgcmcmnocop*				r   )rr  ry   r  rI  r  r  rz  r9   s   @r   r  r     s1     	O
L


 r   r  c                  X   a  ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	 V 3R
 lltRtV ;t# )FunctionNodei  r  	func_namer,  r  r.  rr  r  c               (    V ^8  d   QhRRRRRRRR/# )r   r  r  r  r,  rr  r.  r  r   )r   s   "r   r   FunctionNode.__annotate__  s)      & 
 , V` r   c                	   < \         SV `  VP                  VP                  VP                  VP
                  VP                  ^,           R7       Wn        W n        W0n	        W@n
        R# rv  )r+   r,   r$   r&   rJ   r   r   r  r  rr  r  )r.   r  r  rr  r  r/   s   &&&&&r   r,   FunctionNode.__init__  sf    ))9??I<N<N[_[j[jvz  wE  wE  FG  wG  	H"			r   )rr  r  r  r  rz  r9   s   @r   r  r    s'     


 r   r  c                  N   a  ] tR tRt$ R]R&   R]R&   R]R&   R V 3R	 lltR
tV ;t# )AssignmentNodei"  r  var_namer,  r  r   rN   c               $    V ^8  d   QhRRRRRR/# )r   r  r  r  r,  rN   r   r   )r   s   "r   r   AssignmentNode.__annotate__)  s!       : h r   c                	   < \         SV `  VP                  VP                  VP                  4       Wn        W n        W0n        R # r*   )r+   r,   r$   r&   rJ   r  r  rN   )r.   r  r  rN   r/   s   &&&&r   r,   AssignmentNode.__init__)  s1    (..(:K:KL  
r   )r  rN   r  rz  r9   s   @r   r  r  "  s      O r   r  c                      ] tR tRtRtR# )PlusAssignmentNodei/  r   Nr
  r   r   r   r  r  /  r  r   r  c                     a  ] tR tRt$ ]! RR7      tR]R&   ]! RR7      tR]R&   ]! RR7      tR]R	&   ]! RR7      t	R]R
&   R]R&   R]R&   ]! RR7      t
R]R&   R V 3R lltRtV ;t# )ForeachClauseNodei2  Fr   r,  foreach_T.List[IdNode]varnamesr1  r2  r   r   rW  r  blockr   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r   r  r,  r  r  r2  r1  r   rW  r   r  r  r   r   )r   s   "r   r   ForeachClauseNode.__annotate__=  sN     % % %~ %Oa %jt %  ~F %  O\ %  jt %r   c                	   < \         SV `  VP                  VP                  VP                  4       Wn        W n        W0n        W@n        WPn	        W`n
        Wpn        R # r*   )r+   r,   r$   r&   rJ   r  r  r2  r   rW  r  r   )	r.   r  r  r2  r   rW  r  r   r/   s	   &&&&&&&&r   r,   ForeachClauseNode.__init__=  sE    (..(:K:KL  


$r   )r  r   r2  r   r  rW  r  )r2   r3   r4   r5   r   r  r6   r  r2  r   r   r,   r7   r8   r9   s   @r   r  r  2  sf     !e,Hj,$%0Hn0!&E!2F25)E:)O".J
.% %r   r  c                  N   a  ] tR tRt$ R]R&   R]R&   R]R&   R V 3R	 lltR
tV ;t# )IfNodeiH  r,  if_r   	conditionr  r  c               (    V ^8  d   QhRRRRRRRR/# )r   linenoder   if_noder,  r  r  r  r   )r   s   "r   r   IfNode.__annotate__O  s)       J 8 \i r   c                	   < \         SV `  VP                  VP                  VP                  4       W n        W0n        W@n        R # r*   )r+   r,   r$   r&   rJ   r  r  r  )r.   r  r  r  r  r/   s   &&&&&r   r,   IfNode.__init__O  s1    (..(:K:KL"
r   )r  r  r  rz  r9   s   @r   r  r  H  s      
O r   r  c                  D   a  ] tR tRt$ R]R&   R]R&   R V 3R lltRtV ;t# )	ElseNodeiU  r,  else_r  r  c                    V ^8  d   QhRRRR/# )r   r  r,  r  r  r   )r   s   "r   r   ElseNode.__annotate__[  s      j  r   c                	~   < \         SV `  VP                  VP                  VP                  4       Wn        W n        R # r*   )r+   r,   r$   r&   rJ   r  r  )r.   r  r  r/   s   &&&r   r,   ElseNode.__init__[  s*    u{{ENNC

r   )r  r  rz  r9   s   @r   r  r  U  s      r   r  c                  `   a  ] tR tRt$ ]! RR7      tR]R&   R]R&   R]R	&   R
 V 3R lltRtV ;t	# )IfClauseNodei`  Fr   zT.List[IfNode]ifszT.Union[EmptyNode, ElseNode]	elseblockr,  r   c                   V ^8  d   QhRR/# )r   r  r   r   )r   s   "r   r   IfClauseNode.__annotate__g  s     W W Wr   c                	   < \         SV `  VP                  VP                  VP                  4       . V n        \        VP                  VP                  VP                  4      V n        R # r*   )r+   r,   r$   r&   rJ   r  rA  r  )r.   r  r/   s   &&r   r,   IfClauseNode.__init__g  sG    (..(:K:KL"8??HNNHDUDUVr   )r  r  )
r2   r3   r4   r5   r   r  r6   r,   r7   r8   r9   s   @r   r  r  `  s,      U+C+++W Wr   r  c                  X   a  ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	 V 3R
 lltRtV ;t# )TestCaseClauseNodeil  r,  rb   r   r  r  r  rc   c               (    V ^8  d   QhRRRRRRRR/# )r   rb   r,  r  r   r  r  rc   r   )r   s   "r   r   TestCaseClauseNode.__annotate__t  s)     ' ' ' ' 'eo 'r   c                	   < \         SV `  VP                  VP                  VP                  4       Wn        W n        W0n        W@n        R # r*   )	r+   r,   r$   r&   rJ   rb   r  r  rc   )r.   rb   r  r  rc   r/   s   &&&&&r   r,   TestCaseClauseNode.__init__t  s9    ))9??I<N<NO "
&r   )r  r  rc   rb   rz  r9   s   @r   r  r  l  s'     ' 'r   r  c                  b   a  ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R	 V 3R
 lltRtV ;t# )TernaryNodei{  r   r  r,  r   	trueblockr   
falseblockc          
     ,    V ^8  d   QhRRRRRRRRRR/# )r   r  r   r   r,  r  r   r  r   )r   s   "r   r   TernaryNode.__annotate__  s6     % %( %* %QY %bl %  {C %r   c                	   < \         SV `  VP                  VP                  VP                  4       Wn        W n        W0n        W@n        WPn	        R # r*   )
r+   r,   r$   r&   rJ   r  r   r  r   r  )r.   r  r   r  r   r  r/   s   &&&&&&r   r,   TernaryNode.__init__  s>    ))9??I<N<NO"("
$r   )r   r  r  r   r  rz  r9   s   @r   r  r  {  s-     % %r   r  c                  |   a  ] tR tRt$ ]! RR7      tR]R&   R]R&   ]! RR7      tR]R&   R	]R
&   R V 3R lltRt	V ;t
# )ParenthesizedNodei  Fr   r,  r  r   innerr  rR   r  c               $    V ^8  d   QhRRRRRR/# )r   r  r,  r  r   r  r   )r   s   "r   r   ParenthesizedNode.__annotate__  s!     " "Z " "
 "r   c                	   < \         SV `  VP                  VP                  VP                  VP                  VP                  ^,           R7       Wn        W n        W0n        RV n        R# )rw  rx  FN)	r+   r,   r$   r&   rJ   r  r  r  r  )r.   r  r  r  r/   s   &&&&r   r,   ParenthesizedNode.__init__  sO    djj%..T[[dhdndnopdpq	
	!r   )r  r  r  r  )r2   r3   r4   r5   r   r  r6   r  r,   r7   r8   r9   s   @r   r  r    s8     %(D*(O%(D*(" "r   r  r   r   r   r   r   r   r   notinr   r   r   r   r   r   znot inzT.Mapping[str, COMPARISONS]comparison_mapc                     ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 ltR8 R9 ltR: R; lt R< R= lt!R> R? lt"R@t#RA# )BParseri  c                    V ^8  d   QhRRRR/# )r   r\   r   rJ   r   )r   s   "r   r   Parser.__annotate__  s        S  C  r   c           	     	    \        V4      V n        V P                  P                  V4      V n        \	        R R^ ^ ^ RR4      V n        V P
                  V n        . V n        V P                  4        RV n	        R# )eofr   NFr   r   )
rZ   lexerr   streamrH   currentprevious
current_wsgetsym
in_ternary)r.   r\   rJ   s   &&&r   r,   Parser.__init__  s[    4[
jjnnX.#E2q!QE)+r   c               (    V ^8  d   QhRRRRRRRR/# )r   	node_typezT.Type[BaseNodeT]rr  zT.Anyr4  r   r
   r   )r   s   "r   r   r    s+      %6 u PU Zc r   c                	l    V! V/ VB pV P                    F  pVP                  V4       K  	  . V n         V# r*   )r  r   )r.   r  rr  r4  nodews_tokens   &&*,  r   create_nodeParser.create_node  s9    $)&)H##H- (r   c                   V ^8  d   QhRR/# )r   r   r'   r   )r   s   "r   r   r    s     r r rr   c           
     	   V P                   V n         \        V P                  4      V n         V P                   P                  R9   d_   V P
                  P                  V P                   4       V P                   P                  R 8X  d   R# \        V P                  4      V n         Ky  R#   \         d    \        RRT P                   P                  T P                   P                  T P                   P                  T P                   P                  ^,          ,           T P                   P                  ^ ,          ,
          RR4      T n          R# i ; i)rj   r  r   N>   rj   rl   rd   r  )r  r  nextr  rI   r  r   StopIterationrH   rK   r$   r&   rM   r%  s   &r   r  Parser.getsym  s4   
	r,DL,,""&FF&&t||4<<##u,#DKK0	 G  	r DLL,C,CT\\EXEXZ^ZfZfZlZloso{o{  pE  pE  FG  pH  [H  KO  KW  KW  K`  K`  ab  Kc  [c  ek  mq  rDL	rs   A5B( 
B( (B!EEc                   V ^8  d   QhRR/# r!  r   )r   s   "r   r   r    s     ; ; ;r   c                	`    V P                   P                  V P                  P                  4      # r*   )r  r   r  rK   r%  s   &r   r   Parser.getline  s!    zz!!$,,"9"9::r   c                    V ^8  d   QhRRRR/# r   sr   r   rR   r   )r   s   "r   r   r    s        r   c                	`    V P                   P                  V8X  d   V P                  4        R # R# )TFr  rI   r  r.   r-  s   &&r   r   Parser.accept  s#    <<q KKMr   c                    V ^8  d   QhRRRR/# )r   tidszT.Tuple[str, ...]r   r   r   )r   s   "r   r   r    s      0 S r   c                	b    V P                   P                  pW!9   d   V P                  4        V# R # )r   r/  )r.   r3  rI   s   && r   
accept_anyParser.accept_any  s'    ll;KKMJr   c                    V ^8  d   QhRRRR/# r,  r   )r   s   "r   r   r    s     @ @ @ @r   c                	    V P                  V4      '       d   R # \        RV RV P                  P                   R2V P	                  4       V P                  P
                  V P                  P                  4      hTz
Expecting z got .)r   r   r  rI   r   r$   r&   r0  s   &&r   expectParser.expect  s]    ;;q>>z!E$,,2B2B1C1Et||~W[WcWcWjWjlplxlxl~l~r   c               $    V ^8  d   QhRRRRRR/# )r   r-  r   block_startrH   r   rR   r   )r   s   "r   r   r    s&     X Xc X X$ Xr   c           	     	f   V P                  V4      '       d   R # \        RV RV P                  P                   R2V P	                  4       V P                  P
                  V P                  P                  V P                  P	                  VP                  4      VP
                  VP                  4      hr9  )	r   r;   r  rI   r   r$   r&   r  rK   )r.   r-  r>  s   &&&r   block_expectParser.block_expect  s    ;;q>>!Jqct||7G7G6H"JDLLN\`\h\h\o\oquq}q}  rD  rD  FJ  FP  FP  FX  FX  Yd  Yo  Yo  Fp  r}  rD  rD  FQ  FW  FW  X  	Xr   c                   V ^8  d   QhRR/# r   r   r  r   )r   s   "r   r   r    s      } r   c                	~    V P                  4       p V P                  R 4       V#   \         d   pYn        h Rp?ii ; i)r  N)	codeblockr;  r   r    )r.   r  es   &  r   parseParser.parse  s@     	KK   	E	s   % <7<c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r    s      8 r   c                	"    V P                  4       # r*   )e1r%  s   &r   r<  Parser.statement  s    wwyr   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r     s      H r   c                	   V P                  4       pV P                  R 4      '       d   V P                  \        V P                  4      pV P                  4       p\        V\        4      '       g1   \        RV P                  4       VP                  VP                  4      h\        VP                  \        4      '       g   Q hV P                  \        WV4      # V P                  R4      '       d   V P                  \        V P                  4      pV P                  4       p\        V\        4      '       g1   \        RV P                  4       VP                  VP                  4      h\        VP                  \        4      '       g   Q hV P                  \        WV4      # V P                  R4      '       d   V P                   '       d1   \        RV P                  4       VP                  VP                  4      hV P                  \        V P                  4      pRV n        V P                  4       pV P#                  R4       V P                  \        V P                  4      pV P                  4       pRV n        V P                  \$        WWVV4      # V# )	rx   z$Plusassignment target must be an id.r   z Assignment target must be an id.r   z)Nested ternary operators are not allowed.Tr   F)e2r   r!  r,  r  rL  rU   r  r   r   r$   r&   rN   r   r  r  r  r;  r  )r.   r  r  rN   qm_noder  
colon_noder  s   &       r   rL  	Parser.e1   s   wwy;;|$$''
DMMBHGGIEdF++$%KT\\^]a]h]hjnjtjtuudjj#....##$6NN[[""''
DMMBHGGIEdF++$%G%)\\^T[[$**N Ndjj#....##NDEJJ[[(($%P%)\\^T[[$**N N &&z4==AG"DO	IKK ))*dmmDJJ#DO##K	Wabbr   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r           H r   c                	n   V P                  4       pV P                  R 4      '       d   V P                  \        V P                  4      p\        V\        4      '       d1   \        RV P                  4       VP                  VP                  4      hV P                  \        WV P                  4       4      pK  V# )r   zInvalid or clause.)e3r   r!  r,  r  rU   rA  r   r   r$   r&   r  r.   r  r  s   &  r   rP  	Parser.e2   s    wwykk$''
DMMBH$	**$%9%)\\^T[[$**N N##FDDGGIFDr   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  *  rU  r   c                	n   V P                  4       pV P                  R 4      '       d   V P                  \        V P                  4      p\        V\        4      '       d1   \        RV P                  4       VP                  VP                  4      hV P                  \        WV P                  4       4      pK  V# )r   zInvalid and clause.)e4r   r!  r,  r  rU   rA  r   r   r$   r&   r  rX  s   &  r   rW  	Parser.e3*  s    wwykk%  ''
DMMBH$	**$%:%)\\^T[[$**N N##GTTWWYGDr   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  4  s      H r   c           	     	   V P                  4       p\        P                  4        Fc  w  r#V P                  V4      '       g   K  V P	                  \
        V P                  4      pV P	                  \        W1W@P                  4       4      u # 	  V P                  R 4      '       EdR   V P                  P                  4       pV P                  pV P                  R4      '       Ed   V P                  pV P                  \        V4      R V n        \        VP                  VP                  VP                  4      pV F  p	VP                  V	4       K  	  VP                   ^ ,          VP                   ^,          3Vn        V;P"                  VP$                  P"                  VP"                  ,           ,          un        V P	                  \
        V4      pV P	                  \        RWV P                  4       4      # V# )r   r   Nr  )e5r  rW  r   r!  r,  r  r  r  copyr   rA  r$   r&   rJ   r   rM   rN   r   )
r.   r  nodenameoperator_typer  ws	not_tokenin_token	temp_nodews
   &         r   r\  	Parser.e44  st   wwy'5';';'=#H{{8$$++JF''XW^W^W`aa (> ;;u%%'BI{{4  =="&//#b'(";%hoox~~xGXGXY	A003  '0&8&8&;X=N=Nq=Q%R	"9#8#8#>#>#OO++J	B''QUQXQXQZ[[r   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  J  s      H r   c                	2   R RRR/pV P                  4       p V P                  \        VP                  4       4      4      pV'       dO   V P	                  \
        V P                  4      pV P	                  \        W,          W$V P                  4       4      pK   V# )rz   addr{   r$  )e6r5  tuplekeysr!  r,  r  r  r.   op_mapr  opr  s   &    r   r`  	Parser.e5J  s    EE
 wwyv{{}!56B++JF''
DTXT[T[T]^r   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  Y  s      H r   c                	6   R RRRRR/pV P                  4       p V P                  \        VP                  4       4      4      pV'       dO   V P	                  \
        V P                  4      pV P	                  \        W,          W$V P                  4       4      pK   V# )r~   modr}   mulr   div)e7r5  rn  ro  r!  r,  r  r  rp  s   &    r   rm  	Parser.e6Y  s    uEe

 wwyv{{}!56B++JF''
DTXT[T[T]^r   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  i  s      H r   c                	   V P                  R 4      '       dP   V P                  \        V P                  4      pV P                  \        V P
                  WP                  4       4      # V P                  R4      '       dP   V P                  \        V P                  4      pV P                  \        V P
                  WP                  4       4      # V P                  4       # )r   r{   )r   r!  r,  r  r  r  e8r  )r.   r  s   & r   ry  	Parser.e7i  s    ;;u''
DMMBH##GT\\8WWYOO;;v''
DMMBH##Jh	RRwwyr   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  r  s      H r   c                	   V P                  4       pV P                  pV P                  R 4      '       d   V P                  \        V4      pV P                  4       pV P                  RV4       V P                  \        V P                  4      p\        V\        4      '       g1   \        RV P                  4       VP                  VP                  4      h\        VP                  \        4      '       g   Q hV P                  \         WWE4      pRpV'       d[   RpV P                  R4      '       d   RpV P#                  V4      pV P                  R4      '       g   KM  RpV P%                  V4      pKb  V# )rm   rn   z)Function call must be applied to plain idTFry   ro   )e9r  r   r!  r,  rr  r@  r  rU   r  r   r   r$   r&   rN   r   r  method_call
index_call)r.   r  r>  r  rr  r  go_agains   &      r   r}  	Parser.e8r  s   wwyll;;x  ##J<D99;Dh4##J>DdF++$%P%)\\^T[[$**N Ndjj#....##L$dIDH{{5!!''-{{:&&t,r   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r    s      H r   c                	H   V P                   pV P                  R 4      '       de   V P                  \        V4      pV P	                  4       pV P                  RV4       V P                  \        V P                  4      p\        W#V4      # V P                  R4      '       dp   V P                  \        V4      pV P                  4       pV P                  RV4       V P                  \        V P                  4      pV P                  \        WVV4      # V P                  R4      '       dp   V P                  \        V4      pV P                  4       p	V P                  RV4       V P                  \        V P                  4      p
V P                  \        WV
4      # V P                  4       # )rm   rn   ro   rp   rq   rr   )r  r   r!  r,  r<  r@  r  r  rr  rq  
key_valuesr|  e10)r.   r>  r  rF  r  ro   rr  rp   rq   r  rr   s   &          r   r  	Parser.e9  sF   ll;;x  ##J<D Ah4##J>D$Td33[[$$''
K@H99;Dj+6''
DMMBH##IxxHH[[!!$$Z=E*Jg{3$$Z?E##HeGG88:r   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r    s     Y YX Yr   c                	   V P                   pV P                  R 4      '       d   RVn        V P                  \        V4      # V P                  R4      '       d   RVn        V P                  \        V4      # V P                  R4      '       d   V P                  \
        V4      # V P                  R4      '       d   V P                  \        V4      # V P                  R4      '       d   V P                  \        V4      # \        V P                   P                  V P                   P                  V P                   P                  4      # )r   Tr   Frg   rh   )ru   rf   rk   re   )r  r   rN   r!  r	  r  r  r5  r  rA  r$   r&   rJ   )r.   ts   & r   r  
Parser.e10  s    LL;;vAG##K33;;wAG##K33;;t##FA..;;x  ##J22??YZZ##J22,,dll.@.@$,,BWBWXXr   c                   V ^8  d   QhRR/# r   r   r.  r   )r   s   "r   r   r    s      L r   c                	   V P                  4       pV P                  \        V P                  4      p\	        V\
        4      '       Eg   V P                  R 4      '       d   VP                  P                  V P                  \        V P                  4      4       VP                  WP                  4       4       V P                  R4      '       g   V# VP                  P                  V P                  \        V P                  4      4       M0\        RV P                  4       VP                  VP                   4      hV P                  4       pEK  V# )r   rv   z4Only key:value pairs are valid in dict construction.)r<  r!  r.  r  rU   rA  r   r3  r   r,  r  r^  r2  r   r   r$   r&   r.   r-  as   &  r   r  Parser.key_values  s    NN\4<<8Q	**{{7## 0 0T]] KL$$Q(89{{7++H 0 0T]] KL$%[%)\\^QXXqwwH H Ar   c                   V ^8  d   QhRR/# r  r   )r   s   "r   r   r    s      l r   c                	   V P                  4       pV P                  \        V P                  4      p\	        V\
        4      '       Eg   V P                  R 4      '       dM   VP                  P                  V P                  \        V P                  4      4       VP                  V4       EMV P                  R4      '       d   VP                  P                  V P                  \        V P                  4      4       \	        V\        4      '       g1   \        RV P                  4       VP                  VP                   4      hVP#                  WP                  4       4       V P                  R 4      '       g   V# VP                  P                  V P                  \        V P                  4      4       MVP                  V4       V# V P                  4       pEK  V# )rv   r   z*Dictionary key must be a plain identifier.)r<  r!  r.  r  rU   rA  r   r2  r   r,  r  r3  r  r   r   r$   r&   rR  r  s   &  r   rr  Parser.args  s9   NN\4<<8Q	**{{7## 0 0T]] KLW%% 0 0T]] KL!!V,,()U)-177L LA~~/0{{7++H 0 0T]] KL Ar   c                    V ^8  d   QhRRRR/# )r   r  r   r   r  r   )r   s   "r   r   r    s       j r   c           	     	z   V P                  \        V P                  4      pV P                  4       p\	        V\
        4      '       g   \	        V\        4      '       dG   \	        V\        4      '       d1   \        R V P                  4       VP                  VP                  4      h\        RV P                  4       V P                  P                  V P                  P                  4      h\	        VP                  \        4      '       g   Q hV P                  R4       V P                  \        V P                  4      pV P                  4       pV P                  \        V P                  4      pV P                  R4       V P                  \         WW4WV4      pV P#                  R4      '       d   V P%                  V4      # V# )z$meson does not support float numberszMethod name must be plain idrm   rn   ry   )r!  r,  r  r  rU   r  r  r   r   r$   r&   r  rN   r   r;  rr  r  r   r  )r.   r  ry   
methodnamer  rr  r  methods   &&      r   r  Parser.method_call  sL   z4==9XXZ
*f---44JPZ9[9[$%K%)\\^]5I5I=K^K^` ` !?!%1D1DdllFXFXZ Z***C0000H
DMM:yy{
DLL9H!!*m*TX_;;u##F++r   c                    V ^8  d   QhRRRR/# )r   r  r   r   r  r   )r   s   "r   r   r    s     _ _ _Y _r   c                	    V P                  \        V P                  4      pV P                  4       pV P	                  R 4       V P                  \        V P                  4      pV P                  \
        WW44      # )rp   )r!  r,  r  r<  r;  r  )r.   r  ro   index_statementrp   s   &&   r   r  Parser.index_call  s[    ##J>..*J##J>	=O^^r   c                   V ^8  d   QhRR/# )r   r   r  r   )r   s   "r   r   r    s     p p/ pr   c           
     	z   V P                  \        V P                  4      pV P                  R 4       \	        V P                  P
                  \        4      '       g   Q hV P                  \        V P                  4      .p. pV P                  R4      '       d   VP                  V P                  \        V P                  4      4       V P                  R 4       \	        V P                  P
                  \        4      '       g   Q hVP                  V P                  \        V P                  4      4       V P                  R4       V P                  \        V P                  4      pV P                  4       pV P                  4       pV P                  \        V P                  4      pV P                  \        WW4WVV4      # )rg   rv   r   )r!  r,  r  r;  rU   rN   r   r  r   r   r<  rE  r  r  )r.   r  r  r2  r   rW  r  r   s   &       r   foreachblockParser.foreachblock  s=   ##J>D$----s3333$$VT]];<;;wMM$**:t}}EFKKdmm1137777OOD,,VT]]CDG  T]];  %%j$,,?
 18vV[dnoor   c                   V ^8  d   QhRR/# )r   r   r  r   )r   s   "r   r   r    s     
 
 
r   c           	     	   V P                  \        V P                  4      pV P                  4       pV P                  \        V4      pV P                  R 4       V P                  4       pVP                  P                  V P                  \        W1W$4      4       V P                  V4       V P                  4       Vn        V P                  \        V P                  4      Vn        V# rj   )r!  r,  r  r<  r  r;  rE  r  r   r  elseifblockr  r  r   )r.   r  r  clauser  s   &    r   ifblockParser.ifblock  s    "":t}}=NN$	!!,	:E 

$**66IUV >>+''
DLLAr   c                    V ^8  d   QhRRRR/# )r   r  r  r   r'   r   )r   s   "r   r   r    s     H H, H4 Hr   c           	     	:   V P                  R 4      '       d   V P                  \        V P                  4      pV P	                  4       pV P                  R4       V P                  4       pVP                  P                  V P                  \        W2W44      4       K  R# )r   rj   N)
r   r!  r,  r  r<  r;  rE  r  r   r  )r.   r  elif_r-  bs   &&   r   r  Parser.elseifblock  sq    kk&!!$$Z?E AKK AJJd..vqFG "r   c                   V ^8  d   QhRR/# )r   r   zT.Union[ElseNode, EmptyNode]r   )r   s   "r   r   r    s     Y Y7 Yr   c                	Z   V P                  R 4      '       dM   V P                  \        V P                  4      pV P	                  R4       V P                  4       p\        W4      # \        V P                  P                  V P                  P                  V P                  P                  4      # )r   rj   )r   r!  r,  r  r;  rE  r  rA  r  r$   r&   rJ   )r.   r  r  s   &  r   r  Parser.elseblock  sw    ;;v$$Z?EKKNN$EE)),,dll.@.@$,,BWBWXXr   c                   V ^8  d   QhRR/# )r   r   r  r   )r   s   "r   r   r  $  s     ] ]1 ]r   c                	    V P                  \        V P                  4      pV P                  4       pV P	                  R 4       V P                  4       p\        V P                  4      pV P                  \        WW44      # r  )r!  r,  r  r<  r;  rE  r  r  )r.   rb   r  r  rc   s   &    r   testcaseblockParser.testcaseblock$  s`    ##J>NN$	E  . 2H\\r   c                   V ^8  d   QhRR/# rJ  r   )r   s   "r   r   r  ,  s        h  r   c                	d   V P                   pV P                   R 8X  dJ   \        V P                   P                  V P                   P                  V P                   P                  4      # V P                  R4      '       d%   V P                  4       pV P                  RV4       V# V P                  R4      '       d%   V P                  4       pV P                  RV4       V# V P                  R4      '       d!   V P                  \        V P                   4      # V P                  R4      '       d!   V P                  \        V P                   4      # V P                  P                  '       d<   V P                  R4      '       d%   V P                  4       pV P                  RV4       V# V P                  4       # )	rj   r   r   r   r   r   r   rb   rc   )r  rA  r$   r&   rJ   r   r  r@  r  r!  r(  r*  r  r   r  r<  )r.   r>  r  forblockr  s   &    r   r#   Parser.line,  s?   ll<<5 T\\00$,,2D2DdllF[F[\\;;tllnGg{3N;;y!!((*HlK8O;;z""##L$,,??;;w##It||<<::"""t{{:'>'>&&(Em[9L~~r   c                   V ^8  d   QhRR/# rC  r   )r   s   "r   r   r  B  s      = r   c                	   V P                  \        V P                  4      pR p V'       d   V P                   F  pVP	                  V4       K  	  . V n        V P                  4       p\        V\        4      '       g   VP                  P                  V4       V P                  R4      pK   T P                   F  pTP	                  T4       K  	  . T n        T#   \         d   pYn        h Rp?ii ; i)Trj   N)r!  r  r  r  r   r#   rU   rA  r   r   r   r   r    )r.   r  condr   r   rF  s   &     r   rE  Parser.codeblockB  s      =	 $H,,X6 !0"$))+!'955KK&&w/{{5) " H$$X. (  	E	s   C A?C C0$C++C0)r  r  r  r  r  r  N)$r2   r3   r4   r5   r,   r!  r  r   r   r5  r;  r@  rG  r<  rL  rP  rW  r\  r`  rm  ry  r}  r  r  r  rr  r  r  r  r  r  r  r  r#   rE  r7   r   r   r   r  r    s     r;@
X
@, 0.Y ".(_p(
HY] , r   r  )r   r   r   r   r   r   r   r  )L__conditional_annotations__
__future__r   dataclassesr   r   r   r   r   typingTmesonlibr   r   r   TYPE_CHECKINGtyping_extensionsr   r    r	   TypeVarr
   r   UNICODEVERBOSEr#  r   r   r;   r%   r   rR   rE   GenericrH   r   rZ   r   r   r  r	  r  r  r  r(  r*  r,  r.  rq  r|  rA  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r6   r  )r  s   @r   <module>r     s   # " ( 	  	  $ ???)		+Z8I JJ (	 **rzz
!# D^ . B 		/3T:
eAIIm$  " ::./|J |J| !+ !+ !+H t"X " " t'QYY}-x ' '	.& 		^C  	 t'$ ' ' tK$ K K&	> 		 		$ 	 t838 83 83t t
! 
! 
! t
x 
 
	 	 t
 
 
	 		  	 t'   t#' # # t  	 		" 	 t/H / /$ t! ! ! t  $ t8   t
X 
 
	 	 t% % %* t
X 
 
 tx   t	W8 	W 	W t' ' ' t%( % %" t" " " ???IJK Td#$#$$g	/+ 	6b br   