+
    VBid                    ^&   ^ RI t ] P                  ! ER/ R]bR]bR]bR]bR]bR]bR]bR	]bR
]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]b  ^ RIHt ^ RIt^ RIH	t
 ^ RIHtHt ^RIHtHtHt ^RIHt ^RIHt ^RIHt ^R IHt ^R!IHt ^R"IHtHt ^R#IHt ^R$IHtHtHt ^R%IHt ^R&IH t  ^R'IH!t! ERt"] P                  ! ]#]#! ER4      4      t$ ! R( R)4      t%] PL                  ERR* R+ ll4       t'] PL                  R, R- l4       t(] PL                  R. R/ l4       t)R0 R1 lt*] PL                  R2 R3 l4       t+] PL                  R4 R5 l4       t,] PL                  R6 R7 l4       t-] PL                  R8 R9 l4       t.R:R;R<R=/t/] PL                  R> R? l4       t0R@ RA lt1] PL                  RB RC l4       t2] PL                  RD RE l4       t3] PL                  RF RG l4       t4] PL                  RH RI l4       t5] PL                  RJ RK l4       t6] PL                  RL RM l4       t7] PL                  RN RO l4       t8] PL                  RP RQ l4       t9] P                  ! ]#]#! ER4      4      t:] PL                  RR RS l4       t;] PL                  RT RU l4       t<] PL                  RV RW l4       t=] PL                  RX RY l4       t>] PL                  RZ R[ l4       t?] PL                  R\ R] l4       t@] PL                  R^ R_ l4       tA] PL                  R` Ra l4       tB] PL                  Rb Rc l4       tC] PL                  Rd Re l4       tD] PL                  ]$3Rf Rg ll4       tE] PL                  Rh Ri l4       tF] PL                  Rj Rk l4       tG] PL                  Rl Rm l4       tH] PL                  Rn Ro l4       tI] PL                  Rp Rq l4       tJ] PL                  ERRs Rt ll4       tK] PL                  Ru Rv l4       tL] PL                  Rw Rx l4       tM] PL                  Ry Rz l4       tN] PL                  R{ R| l4       tO] PL                  R} R~ l4       tP] PL                  R R l4       tQ] PL                  R R l4       tR] PL                  R 4       tS] P                  ERR l4       tU] PL                  R R l4       tV] PL                  R R l4       tW] PL                  R R l4       tX] PL                  R R l4       tY] PL                  R R l4       tZ] PL                  R 4       t[] PL                  R R l4       t\] PL                  ERR R ll4       t]] PL                  R R l4       t^] PL                  R R l4       t_] PL                  R R l4       t`] PL                  ERR R ll4       ta] PL                  R R l4       tb] PL                  R R l4       tc] PL                  R R l4       td] PL                  R R l4       te] PL                  R R l4       tf] PL                  R R l4       tg] PL                  R R l4       th] PL                  R R l4       ti] PL                  R R l4       tj] PL                  R R l4       tk] PL                  R R l4       tl] PL                  ERR R ll4       tm] PL                  ERR R ll4       tn] PL                  ERR R ll4       to] PL                  R R l4       tp] PL                  R R l4       tq] PL                  R R l4       tr] PL                  R R l4       ts] P                  ! ]#]#! ER4      4      tt] PL                  R R l4       tu] PL                  R R l4       tv] PL                  R R l4       tw] PL                  R R l4       tx] PL                  R R l4       ty] PL                  R R l4       tz] PL                  ERR R ll4       t{] PL                  R R l4       t|] PL                  R R l4       t}] PL                  R R l4       t~] PL                  R R l4       t] PL                  R R l4       t] PL                  ERR R ll4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  ERR R ll4       t] PL                  ERR R ll4       t] PL                  R R l4       t] PL                  R R l4       t] P                  ! ]#]#! ER4      4      t] PL                  R R l4       t] PL                  R R l4       t] PL                  ERR R ll4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R R l4       t] PL                  R ER  l4       t] PL                  ERER ER ll4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ERER	 ER
 ll4       t] PL                  ERER ER ll4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ERER ER ll4       t] PL                  ERER ER ll4       t] PL                  ]%! 4       3ER ER ll4       t] PL                  ERER ER ll4       t] PL                  ERER ER ll4       t] P                  ERER ER ll4       t] PL                  ER ER  l4       t] P                  ! ]#]#! ER4      4      t] PL                  ERER! ER" ll4       t] PL                  ERER# ER$ ll4       t] PL                  ER% ER& l4       t] PL                  ER' ER( l4       t] PL                  ER) ER* l4       t] PL                  ER+ ER, l4       t] PL                  ER- ER. l4       t] PL                  ER/ ER0 l4       t] PL                  ER1 ER2 l4       t] P                  ! ]#]#! ER4      4      t] P                  ! ]ER3ERER4ERER5ERER6ERER7ERER8ERER9ERER:ER/4      t] P                  ! ]#]#! ER4      4      t] P                  ! ]#]],          ]#! ]4      ,          4      t] P                  ! ]#]#! ER4      4      t] PL                  ER; ER< l4       t] PL                  ER= ER> l4       t] P                  ]%! 4       RRRRRR3ER? ER@ ll4       t] PL                  ERA ERB l4       t] PL                  ERC ERD l4       t] P                  ! ]#]#! ER4      4      t] PL                  ERE ERF l4       t] PL                  ERG ERH l4       t] PL                  ERI ERJ l4       t] PL                  ERK ERL l4       t] P                  ! ]#]#! ER4      4      t] P                  ]%! 4       RRRRRr3ERM ERN ll4       t] PL                  ERO ERP l4       t] PL                  ERERQ ERR ll4       t] PL                  ERS ERT l4       t] PL                  ERU ERV l4       t] PL                  ERW ERX l4       t] PL                  ERY ERZ l4       t] PL                  ER[ ER\ l4       t] PL                  ER] ER^ l4       t] PL                  ER_ ER` l4       t] PL                  ERa ERb l4       t] PL                  ERc ERd l4       t] PL                  ERe ERf l4       t] PL                  ERg ERh l4       t] PL                  ERi ERj l4       t] PL                  ERk ERl l4       t] PL                  ERm ERn l4       t] PL                  ERo ERp l4       t] PL                  ERq ERr l4       t] PL                  ERs ERt l4       t] PL                  ERERu ERv ll4       t] PL                  ERERw ERx ll4       t] PL                  ERERy ERz ll4       t] PL                  ER{ ER| l4       t] PL                  ER} ER~ l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] P                  R]%3ER ER ll4       t] P                  ! ]]EP                  ! ER4      EP                  4      t] PL                  ER ER l4       t] P                  ]%3ER ER ll4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] PL                  ER ER l4       t] P                  ERER ER ll4       tR# (      NNodes	ExprNodesEncodedStringbytes_literalStringEncodingFileSourceDescriptorlookup_unicodecharFutureOptionserrorwarningBuiltin
ModuleNodeUtils_unicode_bytesre_parse_escape_sequences_parse_escape_sequences_rawpartialreduce_CDEF_MODIFIERSCOMMON_BINOP_MISTAKES)StringIO)lookup)r   r   )PyrexScannerr   tentatively_scan)r   )r   )MatchCaseNodes)r   )r   )r   r   )r   )r   r   CompileError)r   )r
   )r   c                   T   a  ] tR t^)t o RtRtRtRtRtRt	Rt
RtRtRtR tR tRtV tR# )CtxotherprivateFNc                <    V P                   P                  V4       R # N)__dict__update)selfkwdss   &,</usr/lib/python3.14/site-packages/Cython/Compiler/Parsing.py__init__Ctx.__init__6   s    T"    c                    \        4       pVP                  pVP                  V P                  4       VP                  V4       V# r%   )r!   r&   r'   )r(   r)   ctxds   &,  r*   __call__Ctx.__call__9   s2    eLL		
r-    )__name__
__module____qualname____firstlineno__level
visibility	cdef_flagtypedef_flagapioverridablenogil	namespace	templatesallow_struct_enum_decoratorr+   r1   __static_attributes____classdictcell__)__classdict__s   @r*   r!   r!   )   sG     EJIL
CKEII"'# r-   r!   c                $    V ^8  d   QhR\         /#    sr   )formats   "r*   __annotate__rK   B   s      | r-   c                     V P                   R 8X  d8   V P                  P                  V P                  4      pV P	                  4        V# V P                  V4       R# )IDENTN)sycontextintern_ustringsystringnextr   )rH   messagenames   && r*   p_identrU   A   s?    ttwyy''

3		r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   L   s      L r-   c                     . pV P                   R 8X  dk   VP                  V P                  P                  V P                  4      4       V P                  4        V P                   R8w  d    V# V P                  4        K{  V# )rM   ,)rN   appendrO   rP   rQ   rR   )rH   namess   & r*   p_ident_listr[   K   s]    E
$$'/QYY--ajj9:	443;L 	
Lr-   c                0    V ^8  d   QhR\         R\        /# rG   rH   returnr   tuple)rJ   s   "r*   rK   rK   ]   s        r-   c                 `    V P                  4       pV P                  pV P                  4        W!3# r%   )positionrN   rR   )rH   posops   &  r*   p_binop_operatorre   \   s&    
**,C	
BFFH7Nr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   e   s      L r-   c                    V! V 4      pV P                   V9   dq   \        V 4      w  rEV! V 4      p\        P                  ! WTW64      pVR 8X  g   KF  \        P
                  V P                  P                  9   d
   RVn        Kx  RVn        K  V# )/TN)	rN   re   r   
binop_noder
   divisionrO   future_directivestruedivision)rH   ops
p_sub_exprn1rd   rc   n2s   &&&    r*   p_binop_exprrq   e   sm    	AB
$$#+"1%]!!#229!))"="=="&"&Ir-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   v   s       r-   c                     V P                  4       pV P                  4        V P                  R 8X  d   . pR;r4M\        V R RR7      w  r#pV P	                  R 4       \        V 4      p\        P                  ! WW4VR7      # ):NF)
terminator	annotated)argsstar_argstarstar_argresult_expr)rb   rR   rN   p_varargslistexpectp_testr   
LambdaNode)rH   rc   rw   rx   ry   exprs   &     r*   	p_lambdefr   u   sx     **,CFFHtts{"&&<'4#(0$HHSM!9D r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s     
 
l 
r-   c                 `    \        V 4      pV P                  R 8X  d   V P                  R4       V# ):=zAinvalid syntax: assignment expression not allowed in this context)p_test_allow_walrus_afterrN   r   )rH   r   s   & r*   r}   r}      s+     %Q'Dttt|	STKr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s       r-   c                 4   V P                   R 8X  d   \        V 4      # V P                  4       p\        V 4      pV P                   R8X  dP   V P	                  4        \        V 4      pV P                  R4       \        V 4      p\        P                  ! WW$R7      # V# )lambdaifelse)testtrue_val	false_val)	rN   r   rb   	p_or_testrR   r|   r}   r   CondExprNode)rH   rc   r   r   r"   s   &    r*   r   r      sv    ttx|
**,CQ<Dttt|	|	q	%%ctUUr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s       r-   c                    \        V 4      pV P                  R 8X  di   V P                  4       pVP                  '       g   V P	                  RRR7       V P                  4        \        V 4      p\        P                  ! W!VR7      # V# )r   z=Left-hand side of assignment expression must be an identifierFfatallhsrhs)	r   rN   rb   is_namer   rR   r}   r   AssignmentExpressionNode)rH   r   rb   r   s   &   r*   p_namedexpr_testr      si     $A
&Cttt|::<{{{GGS[`Ga	Qi11(MMJr-   z||or&&andc                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s     4 4 4r-   c                 $    \        V R \        4      # )r   )p_rassoc_binop_expr
p_and_testrH   s   &r*   r   r      s    q$
33r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s      < r-   c                    V! V 4      pV P                   V8X  dR   V P                  4       pV P                   pV P                  4        \        WV4      p\        P
                  ! WAW54      pV# V P                   \        9   dL   \        V P                   ,          V8X  d0   \        V P                  4       R V P                   : RV: R2^R7       V# )zFound the C operator 'z%', did you mean the Python operator 'z'?r8   )rN   rb   rR   r   r   ri   r   r   )rH   rd   	p_subexprro   rc   rp   s   &&&   r*   r   r      s    	1BttrzjjlTT	 	2!!#22 I 
&	&+@+F"+L

WXW[W[]_`	 Ir-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s     5 5, 5r-   c                 $    \        V R \        4      # )r   )r   
p_not_testr   s   &r*   r   r      s     q%44r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s      , r-   c                     V P                   R 8X  dB   V P                  4       pV P                  4        \        P                  ! V\        V 4      R7      # \        V 4      # )notoperand)rN   rb   rR   r   NotNoder   p_comparisonrH   rc   s   & r*   r   r      sB    ttu}jjl	  
1>>Ar-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s     
 
L 
r-   c                    \        V 4      pV P                  \        9   de   V P                  4       p\	        V 4      p\        V 4      p\
        P                  ! VW1VR 7      pV P                  \        9   d   \        V 4      Vn        V# ))operatoroperand1operand2)	p_starred_exprrN   comparison_opsrb   p_cmp_opr   PrimaryCmpNodep_cascaded_cmpcascade)rH   ro   rc   rd   rp   s   &    r*   r   r      sj    		Btt~jjla[A%%cR944>!'*BJIr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK      s      l r-   c                 P    V P                   R 8X  d   \        V 4      # \        V 4      # *)rN   r   r}   r   s   &r*   p_test_or_starred_exprr      s"    tts{a  ayr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     # # #r-   c                 P    V P                   R 8X  d   \        V 4      # \        V 4      # r   )rN   r   r   r   s   &r*    p_namedexpr_test_or_starred_exprr     s#    tts{a  ""r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     
 
l 
r-   c                     V P                  4       pV P                  R 8X  d   RpV P                  4        MRp\        V 4      pV'       d   \        P
                  ! W4      pV# )r   TF)rb   rN   rR   
p_bit_exprr   StarredUnpackingNode)rH   rc   starredr   s   &   r*   r   r     sL    
**,Ctts{	a=D--c8Kr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      l r-   c                     V P                  4       p\        V 4      p\        V 4      p\        P                  ! VW#R 7      pV P
                  \        9   d   \        V 4      Vn        V# ))r   r   )	rb   r   r   r   CascadedCmpNoderN   r   r   r   )rH   rc   rd   rp   results   &    r*   r   r     sR    
**,C	!B		B&&s&Ftt~'*Mr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   &  s       r-   c                 J   V P                   R 8X  d%   V P                  4        V P                  R4       RpMdV P                   R8X  d8   V P                  4        V P                   R 8X  d   V P                  4        RpMRpMV P                   pV P                  4        VR8X  d   RpV# )r   innot_inisis_not<>!=)rN   rR   r|   rH   rd   s   & r*   r   r   %  s{    ttu}			
	445=FFHBBTT		TzIr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   C       / /, /r-   c                 $    \        V R\        4      # )|)r   )rq   
p_xor_exprr   s   &r*   r   r   B      6:..r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   J  r   r-   c                 $    \        V R\        4      # )^)r   )rq   
p_and_exprr   s   &r*   r   r   I  r   r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   Q  s     1 1, 1r-   c                 $    \        V R\        4      # )&)r   )rq   p_shift_exprr   s   &r*   r   r   P  s    6<00r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   X  s     7 7L 7r-   c                 $    \        V R\        4      # )<<)r   >>)rq   p_arith_exprr   s   &r*   r   r   W  s    <66r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   _  s     / /L /r-   c                 $    \        V R\        4      # )+r   -)rq   p_termr   s   &r*   r   r   ^  s    :v..r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   f  s     A Al Ar-   c                 $    \        V R\        4      # )r   )r   @rh   %z//)rq   p_factorr   s   &r*   r   r   e  s    5x@@r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   m  s       r-   c                     \        V 4      # r%   )	_p_factorr   s   &r*   r   r   l  s     Q<r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   s  s       r-   c                    V P                   pVR9   dM   V P                   pV P                  4       pV P                  4        \        P                  ! W2\        V 4      4      # V P                  '       g   VR8X  dC   V P                  4       pV P                  4        \        V 4      p\        P                  ! W4R7      # VR8X  d   \        V 4      # VR8X  d   V P                  R8X  d   \        V 4      # \        V 4      # )r   r   r   <rM   sizeof)r   r   ~)rN   rb   rR   r   	unop_noder   in_python_fileAmpersandNode
p_typecastrQ   p_sizeofp_power)rH   rN   rd   rc   args   &    r*   r   r   r  s    	
B	_TTjjl	""3HQK889**,CFFH1+C**3>>3Ya= 7]qzzX5A;1:r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      , r-   c                 p   V P                  4       pV P                  4        \        V 4      p\        V\        P
                  4      p\        V\        P                  \        P                  \        P                  34      pV'       g(   V'       g    VP                  f   V P                  R4       \        V RR7      pV P                  R8X  d   V P                  4        RpMRpV P                  R4       \        V 4      pV'       d   \        P                   ! WVR7      # \        P"                  ! VVVVVR7      # )	NzUnknown typeTempty?F>)base_type_noder   )	base_type
declaratorr   	typecheck)rb   rR   p_c_base_type
isinstancer   MemoryViewSliceTypeNodeTemplatedTypeNodeCConstOrVolatileTypeNodeCTupleBaseTypeNoderT   r   p_c_declaratorrN   r|   r   r   CythonArrayNodeTypecastNode)rH   rc   r	  is_memsliceis_other_unnamed_typer
  r  r   s   &       r*   r   r     s     **,CFFHa IY(E(EFK&y&&  3 
 0inn6L	.Jtts{			HHSMqkG((PWXX!!#	 r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s       r-   c                 R   V P                  4       pV P                  4        V P                  R 4       \        V 4      '       d$   \	        V 4      p\
        P                  ! WR7      pM0\        V 4      p\        V RR7      p\
        P                  ! VWER7      pV P                  R4       V# )(r   Tr  r	  r
  ))
rb   rR   r|   looking_at_exprr}   r   SizeofVarNoder  r  SizeofTypeNode)rH   rc   r   noder	  r
  s   &     r*   r   r     s     **,CFFHHHSM q)&&s>!!$	#AT2
''!<HHSMKr-   c                0    V ^8  d   QhR\         R\        /# )rG   rH   statement_terminators)r   	frozenset)rJ   s   "r*   rK   rK     s     5 5, 5y 5r-   c                    V P                  4       pV P                  4        R pV P                  R8X  d   RpV P                  4        V P                  R8w  d1   V P                  V9  d    V'       d   \        V 4      M
\	        V 4      pMV'       d   V P                  RVR R7       RpV'       d   \        P                  ! W$R7      # \        P                  ! W$R7      # )FfromTr  z''yield from' requires a source argumentrc   r   Nr  )	rb   rR   rN   r}   
p_testlistr   r   YieldFromExprNodeYieldExprNode)rH   r!  rc   is_yield_fromr  s   &&   r*   p_yield_expressionr+    s     **,CFFHMttv~	tts{qtt#88(fQijmGG=5  ***388&&s44r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ? ? ?r-   c                 \    \        V 4      p\        P                  ! VP                  VR 7      # )r   )r+  r   ExprStatNoderc   )rH   
yield_exprs   & r*   p_yield_statementr1    s%     $A&Jjnn:>>r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     F F Fr-   c                    V P                   R 8X  dA   RVP                  9   d   V P                  R4       VP                  V n        \        WRR7      # V'       d   V P                  R4       R
# V P                   R8X  d   \	        V RR7      # V P                   R8X  d   V P                  4        \        V RR7      # V P                  R	4       R
# )defpxddef statement not allowed hereT)is_async_def7Decorators can only be followed by functions or classesforis_asyncwithz2expected one of 'def', 'for', 'with' after 'async'N)rN   r8   r   p_def_statementp_for_statementrR   p_with_items)rH   r/   
decoratorss   &&&r*   p_async_statementrA    s     	ttu}CIIGG45))q4@@		IJ	
q400	
	A--	DEr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      | r-   c                    V P                   R 8X  d(   V P                  4       ^ ,          R8X  d   \        V 4      # RpV P                  R8X  d!   V P	                  4       pV P                  4        \        V 4      pV P                  R9   d   \        W4      pK  V'       d   \        P                  ! WR7      pV P                  R8X  dD   V P	                  4       pV P                  4        \        V 4      p\        P                  ! VRW$4      pV# )newrM   Nawaitr&  **)r  [.)rQ   peek
p_new_exprrN   rb   rR   p_atom	p_trailerr   AwaitExprNoder   ri   )rH   	await_posro   rc   rp   s   &    r*   r   r     s    zzUqvvx{g5!}IttwJJL			B
$$/
!q$$Y7ttt|jjl	a[!!#tR4Ir-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     F F, Fr-   c                     V P                  4       pV P                  4        \        V 4      p\        V \        P
                  ! WR 7      4      # ))cppclass)rb   rR   r  p_callr   NewExprNode)rH   rc   rQ  s   &  r*   rJ  rJ    s:     **,CFFHQH!Y**3DEEr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     
' 
' 
'r-   c                     V P                  4       pV P                  R 8X  d   \        W4      # V P                  R8X  d   \        W4      # V P	                  4        \        V 4      p\        P                  ! VWR7      # )r  rG  obj	attribute)rb   rN   rR  p_indexrR   rU   r   AttributeNode)rH   node1rc   rT   s   &&  r*   rL  rL    sc    
**,Ctts{a	
q  	qz&&s' 	'r-   Tc                D    V ^8  d   QhR\         R\        P                  /# )rG   rH   allow_genexpr   cythonbint)rJ   s   "r*   rK   rK   )  s     /1 /1 /1V[[ /1r-   c                 H   V P                  4        . p. pR pR pV P                  R8w  Ed   V P                  R8X  dX   V'       d"   V P                  RV P                  4       R7       V P                  4        VP	                  \        V 4      4       RpEMaV P                  R8X  d/   V P                  4        VP	                  \        V 4      4       RpEM"\        V 4      pV P                  R8X  d   V P                  4        VP                  '       g   V P                  RVP                  R7       V P                  P                  VP                  4      p\        P                  ! VP                  VR	7      p\        V 4      pVP	                  W34       MbV'       d   V P                  RVP                  R7       V'       d"   V'       g   VR,          P	                  V4       MVP	                  V.4       R pV P                  R
8w  d   MV P                  4        EK   V P                  R9   d[   V'       dS   V'       gK   V'       gC   \        V4      ^8X  d3   \        V^ ,          4      ^8X  d   \        W^ ,          ^ ,          4      ..pV P!                  R4       T;'       g    . .V3# )Fr  r   %Non-keyword arg following keyword argrc   TrF  =z!Expected an identifier before '='valuerX   r9  async)rR   rN   r   rb   rY   r}   r   r   rc   rO   rP   rT   r   IdentifierStringNodelenp_genexpr|   )	rH   r]  positional_argskeyword_argsstarstar_seenlast_was_tuple_unpackr  encoded_namekeywords	   &&       r*   p_call_parse_argsrs  (  s    FFHOLM!
$$#+443;?QZZ\RFFH""6!9-$(!TTT\FFHq	* M"1%Ctts{{{{GG? #  ) yy77A#88GG<1Qi##WN3GGCGQ"+@#B'..s3#**C51(-%443;	ttL$9?#q(S1C-D-I$,Q0B10E$F#G"HHHSM""rdL00r-   c                $    V ^8  d   QhR\         /# rG   r^   r`   )rJ   s   "r*   rK   rK   \  s     '# '#E '#r-   c           	         R pV Uu. uFG  p\        V\        4      '       d   \        P                  ! WR7      M\        P                  ! WR7      NKI  	  pp\        \        \        P                  V R4      V4      pV'       Eds   . p. pV F  p	\        V	\        4      '       d8   V	w  rVP                  \        P                  ! V
P                  WR7      4       KP  V	P                  '       d   VP                  V	P                  4       K  V'       d<   VP                  \        P                  ! V^ ,          P                  VRR7      4       . pVP                  V	4       K  	  V'       d:   VP                  \        P                  ! V^ ,          P                  VRR7      4       V'       dM   \!        V4      ^8X  d&   V^ ,          P                  '       d   V^ ,          pWc3# \        P"                  ! WR7      pWc3# u upi )Nrw   r&  r   rc   keyrf  T)key_value_pairsreject_duplicates)rn  )r  listr   	TupleNodeAsTupleNoder   r   ri   r`   rY   DictItemNoderc   is_dict_literalextendr{  DictNoderk  MergedDictNode)rc   rm  rn  keyword_dictr  	subtuples	arg_tuplekwargs
dict_itemsitemrz  rf  s   &&&         r*   p_call_build_packed_argsr  [  s   L #"C /9d.C.C	C*I^I^_bIll"  
 wy33S#>	JI|
 D$&&!
!!)"8"8SWW#"[\%%%!!$"6"67MM)"4"4"1)):Y]#_ `!#Jd# ! MM),,1!!:QUW X 6{aF1I$=$=$=%ay
 ""  )77Q""Is   AG9c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     
Z 
Zl 
Zr-   c                 0   V P                  4       p\        V 4      w  r4V'       gM   \        V4      ^8X  d=   \        V^ ,          \        4      '       d    \
        P                  ! W!V^ ,          R7      # \        W#V4      w  rV\
        P                  ! W!WVR7      # )   )functionrw   )r  rm  rn  )	rb   rs  rk  r  r}  r   SimpleCallNoder  GeneralCallNode)rH   r  rc   rm  rn  r  r  s   &&     r*   rR  rR    s     **,C$5a$8!OC0A5*_UVEWY]:^:^''_UVEWXX":3Q]"^	((IZ 	Zr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      | r-   c                    V P                  4       pV P                  4        \        V 4      w  r4V'       d=   \        V^ ,          4      ^8X  d&   V^ ,          w  rV\        P
                  ! VWVR7      pML\        W#4      pV'       d   V^ ,          p	M\        P                  ! W(R7      p	\        P                  ! VWR7      pV P                  R4       V# )r   )basestartstoprx  r  index])
rb   rR   p_subscript_listrk  r   SliceIndexNodemake_slice_nodesr~  	IndexNoder|   )
rH   r  rc   
subscriptsis_single_valuer  r  r   indexesr  s
   &&        r*   rY  rY    s     **,CFFH"21"5J3z!}-2 m))#t5 #33AJE''<E$$S(HHSMMr-   c                0    V ^8  d   QhR\         R\        /# r]   r_   )rJ   s   "r*   rK   rK     s     	" 	" 	" 	"r-   c                     R p\        V 4      .pV P                  R8X  dD   RpV P                  4        V P                  R8X  d    W!3# VP                  \        V 4      4       KT  W!3# )TrX   Fr  )p_subscriptrN   rR   rY   )rH   r  itemss   &  r*   r  r    s^    O^E
$$#+	443;!! 	[^$!!r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      < r-   c                     \        V R4      pV P                  R 8w  d   V.# V P                  4        \        V R4      pV P                  R 8w  d   W.# V P                  4        \        V R4      pWV.# )rt   )rt   )rt   rX   r  )p_slice_elementrN   rR   )rH   r  r  steps   &   r*   r  r    sj    
 Av&Etts{wFFH1o.Dtts{}FFH1o.Dr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK           | r-   c                 >    V P                   V9  d   \        V 4      # R # r%   )rN   r}   )rH   
follow_sets   &&r*   r  r    s     	tt:ayr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      | r-   c                 (    V P                  R 4       R# )...N)r|   r   s   &r*   expect_ellipsisr    s    HHUOr-   c                     . pV FI  p\        V4      ^8X  d   VP                  V^ ,          4       K-  VP                  \        V .VO5!  4       KK  	  V# r  )rk  rY   make_slice_node)rc   r  r   	subscripts   &&  r*   r  r    sL     F	y>QMM)A,'MM/#:	:;	  
 Mr-   c                     V'       g   \         P                  ! V 4      pV'       g   \         P                  ! V 4      pV'       g   \         P                  ! V 4      p\         P                  ! V WVR 7      # ))r  r  r  )r   NoneNode	SliceNode)rc   r  r  r  s   &&&&r*   r  r    sU    ""3'!!#&!!#&s41 1r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     )5 )5l )5r-   c                    V P                  4       pV P                  pVR 8X  dv   V P                  4        V P                  R8X  d   \        P                  ! V. R7      pM(V P                  R8X  d   \        V 4      pM\        V 4      pV P                  R4       V# VR8X  d   \        V 4      # VR8X  d   \        V 4      # VR8X  d   \        V 4      # VR8X  d"   \        V 4       \        P                  ! V4      # VR8X  d   \        V 4      # VR	8X  d4   V P                  pV P                  4        \        P                  ! WR
7      # VR8X  d7   V P                  RR pV P                  4        \        P                   ! WR
7      # VR8X  g   VR8X  d   \#        V 4      # VR8X  d7   \%        V 4      pVf&   \'        W P                  4      pV P                  4        V# V P)                  R4       R# )r  r  rx  yieldrG  {`r  INTFLOATre  IMAGNBEGIN_STRINGBEGIN_FT_STRINGrM   z!Expected an identifier or literalrg  )rb   rN   rR   r   r~  r+  p_testlist_compr|   p_list_makerp_dict_or_set_makerp_backquote_exprr  EllipsisNodep_int_literalrQ   	FloatNodeImagNodep_atom_stringp_atom_ident_constantsp_namer   )rH   rc   rN   r   rf  s   &    r*   rK  rK    s   
**,C	
B	Sy	443;((R8FTTW_'*F$Q'F		sA	s"1%%	s""	u%%c**	uQ	w

	""366	v

3B	!!#55	~	'8!8Q	w'*>Azz*FFFH	34r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   (  s     1 1\ 1r-   c                    V P                  4       p\        V 4      w  r#pV'       g   \        P                  ! WVR 7      # TpVR8X  d   \        P                  ! WR7      # VR8X  d   \        P                  ! WVR 7      # VR8X  d   \        P
                  ! WR7      # VR8X  d   \        P                  ! WR7      # VR8X  d   \        P                  ! WR7      # V P                  RV R	24       R
# ))rf  bytes_valuecre  ubfvaluestzinvalid string kind ''N)	rb   p_cat_string_literalr   UnicodeNodeCharNode	BytesNodeJoinedStrNodeTemplateStringNoder   )rH   rc   kindr  unicode_value	kind_chars   &     r*   r  r  '  s     **,C';A'>$D}$$S;WW $IC!!#99	c	$$S;WW	c	""3::	c	&&sAA	c	++CFF 	
'vQ/0r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   @  s      l r-   c                ~   V P                  4       pV P                  pVR8X  d   \        P                  ! V4      pMrVR8X  d   \        P                  ! VRR7      pMRVR8X  d   \        P                  ! VRR7      pM2VR8X  d*   V P
                  '       g   \        P                  ! V4      pMR# V P                  4        V# )	z{
Returns None if it isn't a special-cased named constant.
Only calls s.next() if it successfully matches a named constant.
NoneTrueTre  FalseFNULLN)rb   rQ   r   r  BoolNoder   NullNoderR   )rH   rc   rT   r   s   &   r*   r  r  ?  s     **,C::Dv~##C(	##Ct4	##Cu5	 0 0 0##C(FFHMr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   W  s     2 2\ 2r-   c                    V P                  4       p\        P                  ! \        V P                  4      pV P                  4        R pR pVR,          R9   d)   VR,          R9   d   VR,          pM	VR,          pVRR pK6  RpV'       d   RpM,V'       d%   VR8X  g   V P                  P                  ^8  d   RpV P                  '       d   V'       d   \        VR4       R	p\        P                  ! VVVVVR
7      # ) UuLlLlLUNTLLz4illegal integer literal syntax in Python source fileF)is_c_literalrf  unsignedlongnessrg  )rb   r_  caststrrQ   rR   rO   language_levelr   r   r   IntNode)rH   rc   rf  r  r  r  s   &     r*   r  r  V  s    
**,CS!**-EFFHHH
)v
9OHOHcr
 L	tqyy771<L#MNS,8%*(0(0	2 2r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   x  s     . .l .r-   c                     V P                  4       pV P                  '       g=   WP                  9   d-   V P                  P                  V4      p\	        W#4      pVe   V# \
        P                  ! W!R7      # )NrT   )rb   compile_time_exprcompile_time_envlookup_herewrap_compile_time_constantr   NameNode)rH   rT   rc   rf  r  s   &&   r*   r  r  w  s`    
**,C4+=+=#=""..t4)#5Kc--r-   c           
         Vf   \         P                  ! V 4      # V\        J d   \         P                  ! V 4      # \	        V\
        4      '       d   \         P                  ! WR7      # \	        V\        4      '       d#   \         P                  ! V \        V4      VR7      # \	        V\        4      '       d#   \         P                  ! V \        V4      VR7      # \	        V\        4      '       d   \         P                  ! V \        VP                  4      \        RVP                  4      R7      pVP                  '       dP   \         P                   ! V R\         P                  ! V \        VP                  4      VP                  R7      VVR7      pV# \	        V\"        4      '       d"   \         P$                  ! V \'        V4      R7      # \	        V\(        4      '       d%   \+        VR4      p\         P,                  ! WVR7      # \	        V\.        4      '       d;   V Uu. uF  p\1        W4      NK  	  ppR V9   d   R # \         P2                  ! WR7      # \5        V RV: R	VP6                  P8                  : R
24       R # u upi )Nre  )rf  constant_resultg        r   )r  asciirx  z(Invalid type for compile-time constant: z (type r  )r   r  Ellipsisr  r  boolr  intr  reprfloatr  complexr  imagrealri   r  r  r   bytesr   r  r`   r  r~  r   	__class__r4   )rc   rf  r  bvaluer  rw   s   &&    r*   r  r    s   }!!#&&	(	%%c**	E4	 	 !!#33	E3		  DKOO	E5	!	!""3d5k5QQ	E7	#	#!!#T%**-=wWZ\a\f\fOgh::: ''S)--cejj9I[`[e[efhl %'D 	E3		$$Se0DEE	E5	!	!ug.""3eLL	E5	!	!@EF*34F4<""322	#113 4 Gs   I=c                0    V ^8  d   QhR\         R\        /# r]   r_   )rJ   s   "r*   rK   rK     s     0, 0,L 0,U 0,r-   c           	      h   V P                  4       p\        V 4      w  r#pVR 8X  g#   V P                  R8w  d   V P                  R8w  d   W#V3# V.V.V.rvpR;r4V P                  R8X  g   V P                  R8X  d   V P                  4       p\        V 4      w  rp
VR 8X  d   \        VR4       KU  W8w  dE   W(0RR0RR039   d   RpM3VR8X  g   VR8X  d   \        VR	4       K  \        VR
V: RV: R24       K  VP	                  V	4       VP	                  V
4       VP	                  V4       K  VR9   g   VR8X  d-   RV9  d&   \        RP                  V4      V P                  4      pVR9   d0   \        RP                  V Uu. uF
  qf   K  VNK  	  up4      4      pVR8X  dg   . p\        Wg4       FU  w  r\        V\        4      '       d   WK,          pK%  VP	                  \        P                  ! V\        V4      R7      4       KW  	  VR8X  d   . pV F  pVP                  V4       K  	  W#V3# u upi )r  r  r  NzCCannot concatenate char literal with another string or char literalr  r  r  r  z:cannot mix t-string literals with string or bytes literalsz8Cannot mix string literals of different types, expected z'', got z''r-   re  )r  r  r  r  r  )rb   p_string_literalrN   r   rY   r   joinsource_encodingr   zipr  r}  r   r  r  )rH   rc   r  r  r  bstringsustrings	positions	next_kindnext_bytes_valuenext_unicode_valuer  s   &           r*   r  r    s   
 **,C'7':$D}s{qtt~-!$$:K2K-//%0MM?SE	H"&&K
$$.
 ADD,=$=jjl:J1:M7	%7#\] c3Z#r$;;	S 0cWXc)% &()*+~X1E#CHHX$68I8IJy%bgg(.T(Qqq(.T&UVs{(.FA!T""" $$Y%:%:3mTUFV%WX / s{A  # m++ /Us    H/
H/c                0    V ^8  d   QhR\         R\        /# )rG   rH   required_typer   r  )rJ   s   "r*   rK   rK     s     7 7L 7 7r-   c                     V P                   R 8w  d   R# V P                  4       p\        W4      w  r4pVR8X  d   VR8X  d   V P                  RV4       V# VR8X  d   V# V P                  R4       R# )r  Nr  r  zf-string not allowed herer  z#internal parser configuration error)rN   rb   r  r   )rH   r  rc   r  r  r  s   &&    r*   p_opt_string_literalr    sj    tt~
**,C'7'I$D}3;GG/5	#		56r-   c                8    V ^8  d   QhR\         P                  /# ru  )r_  r`  )rJ   s   "r*   rK   rK     s      fkk r-   c                 b    \         P                  ! \        V 4      pV F  pVR 8  g   K   R# 	  R# )   TF)r_  r  r  )stringrH   r  s   &  r*   check_for_non_ascii_charactersr$    s+    C A;  r-   c                D    V ^8  d   QhR\         R\        P                  /# )rG   rH   is_rawr^  )rJ   s   "r*   rK   rK     s       r-   c                   V P                   pV P                  pTpV P                  P                  ^8  pVR8X  d   VP	                  V4       V# VR8X  dZ   V'       dA   V'       g&   VR8w  g   \        V4      ^8  g   V^,          R9  d   VP	                  V4       V# Rp\        W2W`4        V# VR8X  d   VP	                  R4       V# VR8X  d   V P                  R	VR
7       V# R# )zx
Returns a string of non-escaped characters (if handled) or none.
If passed an escape sequence returns an empty string.
CHARSESCAPEr  Uur  NEWLINE
EOFzUnclosed string literalrc  N)rN   rQ   rO   r  rY   rk  _append_escape_sequencer   )	rH   rc   charsr  r&  rN   systrr   is_python3_sources	   &&&&&    r*   p_string_literal_shared_readr2    s     
BJJEF%&YY%=%=%B	W}U M 
x(DCK3u:>USTX]aMaLL M F#D: M 
yT
 M	 
u	)s3 M r-   c                $    V ^8  d   QhR\         /# )rG   rQ   )r  )rJ   s   "r*   rK   rK     s       r-   c                    VP                  R 4      P                  4       p\        V4      ^8:  g   \        V4      ^8X  d
   VR9   d   V# \        V4      p\        V4      \        V4      8w  d   \	        V R4       VP                  R4       \        V4      p\        V4      ^8  d$   \	        V RV^ ,           RV^,           R24       R# \	        V RV 24       R# )	z"'	rbrurfrtrz!Duplicate string prefix characterrzString prefixes  and z cannot be combinedzInvalid string prefix r  )rstriplowerrk  setr   discardsorted)rc   rQ   kind_stringunique_string_prefixess   &&  r*   _validate_kind_stringr?    s    //%(..0K
;1[!1Q!6;+;U -
!"c+&66c67""3'#$:;
!"a'c%&<Q&?%@F\]^F_E``stu  	c+K=9:r-   c                0    V ^8  d   QhR\         R\        /# r]   r_   )rJ   s   "r*   rK   rK   %  s     K. K. K.U K.r-   c                    V P                   R 8X  d   Ve   Q h\        V 4      # V P                  4       pV P                  P                  ^8  pRp\        W P                  4      pRV9   pRV9   d    \        V4      ^8w  d   \        VR4       RpMRV9   d   RpMRV9   d   RpMRpVR8X  dQ   VfM   \        P                  V P                  P                  9   d$   \        P                  ! V P                  4      pRpMrVe
   VR	9   d   TpVR9   d   \        P                  ! 4       pMHVR8X  d"   \        P                  ! V P                  4      pM \        P                   ! V P                  4      p V P#                  4        \%        WWVR
7      p	V	eG   V'       g=   V'       d5   \        P                  V P                  P                  9   d   \'        V	4      pKi  V P                   R8X  d   M0V P                  RV P                   : RV P                  : R24       K  VR8X  d7   Rp
VP)                  4       p\        V4      ^8w  d   \        VRV,          4       MgVP+                  4       w  rV'       dN   V'       dF   \        P                  V P                  P                  9   d   VR8X  d   V P                  RVR7       RpV P#                  4        W{V
3# )r  NFr6  r  z+Invalid string prefix for character literalr  r  r  ubr&  
END_STRINGUnexpected token rt   z in string literalzinvalid character literal: %rz0bytes can only contain ASCII literal characters.rc  )r  r  )rN   p_ft_string_literalrb   rO   r  r?  rQ   rk  r   r
   unicode_literalsrk   r   StrLiteralBuilderr  UnicodeLiteralBuilderBytesLiteralBuilderrR   r2  r$  getchar
getstrings)rH   kind_overriderc   r1   has_non_ascii_literal_charactersr=  r&  r  r/  handled_charsr  r  s   &&          r*   r  r  $  s[    	tt  $$$"1%%
**,C%&YY%=%=%B',$'ZZ8K,F
k {q #DE				rzm+0G0G199KfKf0f001B1BC$$)> D:"88:ERZ"44Q5F5FGE"66q7H7HIE
	4E $4%&*A*AQYYE`E`*`3QR_3`044<GGajj" # s{mmo{q #6DE%*%5%5%7",%&*A*AQYYE`E`*`s{JPSTKFFH}--r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   t  s     # #< #r-   c                     . p V P                  4        V P                  pVR9   d)   VR8X  d   V P                  4        RP                  V4      # VP                  V P                  4       Ki  )TEND_FT_STRING_EXPRr  )rR  r-  N)rR   rN   r  rY   rQ   )rH   stringsrN   s   &  r*   p_read_ft_string_expressionrT  s  s\    G
	TT     ))777##qzz"r-   c                    V ^8  d   QhR\         R\        P                  R\        P                  R\        P                  /# )rG   rH   r&  is_single_quotedtf_string_kindr   r_  r`  Py_UCS4)rJ   s   "r*   rK   rK     s=     j j\ j(.jGM{{j06jr-   c           
         . pR ;p;rgR pRp	V P                  4       p
V
^ ,          V
^,          V
^,          ^,           3p\        V 4      pVP                  4       '       g   \        V
RV R24       . pEMT p\	        \        V4      V
^ ,          V V P                  VR7      p V ;P                  ^,          un        V P                  R8X  d   V P                  4        V P                  R8X  d   \        V \        0 Rm,          R	7      pM\        V 4      pV P                  R
8X  d   Rp	V P                  4        V P                  R8X  Ed   V P                  4       pV P                  4        V P                  pVR9   d   \        V P                  4       R4       M\        P                  P!                  V4      '       g3   \        V P                  4       RV,          4       V P                  4        MeV P                  4       ^,          V^,          ^,           8w  d,   \        V P                  4       R4       V P                  4        MV P                  4        V	'       g   VR8X  d   Ve   VP#                  R^4      w  rVR8X  dX   \        P$                  ! V\&        P(                  ! VP+                  4       P+                  R
4      P+                  4       4      R7      pV	'       d<   VP-                  \        P$                  ! V\&        P(                  ! V4      R7      4       V P                  R8X  g   V P                  R8X  d   V P                  4        K4  V P                  R8w  d+   \        V P                  4       RV RV P                   24       Tp V P                  R8X  d8   V P                  4       p\/        WVRRR7      p\        P0                  ! VVR7      pV	'       d   Vf   Vf   RpVe   \&        P(                  ! V4      pVR8X  d+   VP-                  \        P2                  ! WVWhR7      4       V# VP-                  \        P                  ! WVVR7      4       V# )NFz empty expression not allowed in z-string)parent_scannerr  initial_posINDENTr  rt   !)r!  rd  Tzmissing conversion characterz!invalid conversion character '%s'zDf-string: conversion type must come right after the exclamation markr  )rc   rf  r+  DEDENTr-  zUnexpected characters after z-string expression: r  is_format_stringrW  r  r6  )rf  conversion_charformat_specexpression_str)rf  rb  rc  >   r^  rt   })re  rt   r  )rb   rT  stripr   r   r   r  bracket_nesting_levelrN   rR   r+  r!  p_testlist_star_exprrQ   r   FormattedValueNodefind_conversion_funcrsplitr  r   r   r8  rY   p_ft_string_middlesr  TStringInterpolationNode)rH   r&  rV  rW  r   rb  rc  r   t_string_expressionself_documentingbracket_posexpr_posexpr_stringoriginal_scannerprevious_pos_rc   format_spec_contentss   &&&&              r*   p_ft_string_replacement_fieldrw    s    F+//O/k**,KAAAq0@AH-a0Kk00@H	J[!N-- 
 	
1$448FFH447?%&;o&MOD (*D443;#FFH443;::<LFFHjjO.0ajjl$BC11FFWWajjl$G/$YZa\!_q%89ajjl$jk~4*!,!3!3C!;$&/&;&; (66{7I7I7K7R7RSV7W7^7^7`a'#  ))$,::;G ddi1448#3FFH445=

.~.>>RSTS]S]R^_a tts{jjl  31>Naevyz--'
 O38K"(66Gi88_#
 	 M	 	i22_#
 	 Mr-   c          
          V ^8  d   QhR\         R\        P                  R\        P                  R\        P                  R\        P                  /# )rG   rH   r&  rV  ra  rW  rX  )rJ   s   "r*   rK   rK     sE     & &< & &&?E{{&*0++& )/&r-   c           
         . p\         P                  ! 4       pV P                  4       p V P                  4        V P                  p\        WVRVR7      p	V	e   K2  VP                  '       dJ   VP                  \        P                  ! WvP                  4       R7      4       \         P                  ! 4       pVR8X  dC   \        WW$R7      p
VP                  V
4       V P                  R8X  g   V P                  R4       K  VR8X  d    V# V P                  R8X  d   V'       d    V# K  \        V P                  4       RV P                  : R	V P                  : R
V: R24       EK<  )Tr  rC  re  r  )rW  re  END_FT_STRINGrE  rt   z in z-string literal)r   rI  rb   rR   rN   r2  r/  rY   r   r  	getstringrw  r  expectedr   rQ   )rH   r&  rV  ra  rW  middlesbuilderrc   rN   rO  fieldss   &&&&&      r*   rl  rl    s"   
 G224G
**,C
	TT4GS $===NN900<M<M<OPQ$::<G92+LFNN6"443;

3?" N TTS[ N   

ajj.23r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ) )< )r-   c                 H   \        V P                  4       V P                  4      pR V9   d   R MRpRV9   pV P                  P                  R4      p\	        V4      ^8g  p\        WVRVR7      pV P                  R8w  d   V P                  V4       V P                  4        VRV3# )r  r  r6  
rRbBuUfFtTFr`  rz  N)	r?  rb   rQ   lstriprk  rl  rN   r|  rR   )rH   r=  rW  r&  quotesrV  r}  s   &      r*   rF  rF    s     (

ajjAK,/;,>SCN,FZZ|,F$'K1$4!!-=PUftuGtt	

6FFH4((r-   c                0    V ^8  d   QhR\         R\        /# )rG   escape_sequencerH   )r  r   )rJ   s   "r*   rK   rK   (  s     &( &(C &(L &(r-   c           	         \        V4      ^8  d   VP                  R4       R# V^,          pVR9   d%   VP                  \        VR,          ^4      4       R# VR9   d   VP                  V4       R# VR9   d(   VP                  \        P
                  ! V4      4       R# VR8X  d   R# VR8X  dQ   \        V4      ^8X  d%   VP                  \        VR	,          ^4      4       R# VP                  R
V,          RR7       R# VR9   d   V R9   d   RpVR8X  d   Rp \        V^R 4      p\        V4      pM_\        V4      R9   d6   \        VR	,          ^4      pVR8  d   VP                  RV,          4       RpMVP                  RV,          RR7       V^ 8  d   VP                  WR4       R# R# VP                  V4       R#   \         d9    TP                  R\        T^R 4      P                  R4      ,          RR7        Lqi ; i)rG   \N01234567:r  NNz'"\abfnrtvr,  xrG   NNzInvalid hex escape '%s'Fr   NUur  Nz!Unknown Unicode character name %si zInvalid unicode escape '%s')r  r  r  rg  )   
   )rk  rY   append_charvalr  r   char_from_escape_sequencer   r	   ordKeyErrorr  r  append_uescape)r  r~  r  rH   r  chrvaluchars   &&&&   r*   r.  r.  '  s   
?atAJs?2#6:;	
gq	
i~??PQ	
d	
c1$""3r':B#?@GG-?uGM	
e.8EN*?1R+@AU !W,,b1F5GHGG1OC5GQQ;""6;  	'  N;_Qr23::3?@GL  NNs   G A HHc                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   Y  s     / /L /r-   c                    V P                  4       pV P                  4        V P                  R 8X  d*   V P                  R 4       \        P
                  ! V. R7      # \        V 4      pV P                  R9   d   VP                  '       d   V P                  R4       \        P                  ! WR7      p\        W4      pV P                  R 4       \        P                  ! WV\        P                  V P                  P                  ^8  R7      # V P                  R8X  d   V P                  4        \!        W4      pMV.pV P                  R 4       \        P
                  ! WR7      # )r  rx  2iterable unpacking cannot be used in comprehensionr.  )looprY   typehas_local_scoperX   rh  )rb   rR   rN   r|   r   ListNoder   
is_starredr   ComprehensionAppendNode
p_comp_forComprehensionNoder   	list_typerO   r  %p_namedexpr_test_or_starred_expr_list)rH   rc   r   rY   r  exprss   &     r*   r  r  X  s    **,CFFHtts{	!!#B//+A.Dtt???GGHI223B!$	**60A0AII449; 	; 	tts{	5a>HHSMc..r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   x  s      < r-   c                 v    V P                   R9   d   \        W4      # V P                   R8X  d   \        W4      # V# )r9  r   rh  )rN   r  	p_comp_if)rH   bodys   &&r*   p_comp_iterr  w  s7    tt!""	
!! r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ( (, (r-   c                    V P                  4       pR pV P                  R8X  d   RpV P                  4        V P                  R4       \	        V R VR7      pVP                  R\        W4      VR7       \        P                  ! V3/ VB # )Fri  Tr9  allow_testlistr;  N)else_clauser  r;  )	rb   rN   rR   r|   p_for_boundsr'   r  r   ForStatNode)rH   r  rc   r;  kws   &&   r*   r  r    ss    
**,CHttw	 HHUO	a	ABII$[%9HIMS'B''r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s       r-   c                     V P                  4       pV P                  4        \        V 4      p\        P                  ! V\        P
                  ! W#\        W4      R 7      .RR7      # )	conditionr  N
if_clausesr  )rb   rR   r   r   
IfStatNodeIfClauseNoder  )rH   r  rc   r   s   &&  r*   r  r    sZ     **,CFFH Q<DC((0;A0DF G r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     jZ jZ< jZr-   c                    V P                  4       pV P                  4        V P                  R 8X  d)   V P                  4        \        P                  ! V. R7      # . p^ pRp V P                  R9   d   V^ 8X  d   V P                  R8X  d   ^M^pMGV\        V P                  4      8w  d.   T P                  RV P                  : RV^8X  d   RMR: R	24       V P                  4        V P                  R8X  d   V P                  R
4       \        V 4      pVP                  V4       RpM\        V 4      pV^ 8X  d   V P                  R8X  d   ^M^pV^8X  dA   V P                  R4       Tp\        V 4      p\        P                  ! VP                  WgR7      pV'       d   VR,          P                  V4       MVP                  V.4       RpV P                  R8X  d&   V P                  4        V P                  R 8X  d   MEK   V P                  R9   Ed   \        V4      ^8X  Ed+   \        V^ ,          \        4      '       Ed   \        V^ ,          4      ^8X  d   V^ ,          ^ ,          pV^8X  dy   \        V\        P                  4      '       g   Q \        V4      4       h\         P"                  p\        P$                  ! VP                  VP&                  VP(                  R7      p	M2\         P*                  p\        P,                  ! VP                  VR7      p	\/        W	4      p
V P                  R 4       \        P0                  ! WWR7      # \        V4      ^8X  d0   \        V^ ,          \        4      '       g   V P                  R4       MV P                  R 4       \        P                  ! V. R7      # V P                  R 4       V^8X  Ed"   . p. pV F  p\        V\        4      '       d   VP3                  V4       K,  V'       d;   VP                  \        P4                  ! V^ ,          P                  VR7      4       . pVP                  V4       K  	  V'       d9   VP                  \        P4                  ! V^ ,          P                  VR7      4       \        V4      ^8X  d#   V^ ,          P6                  '       d
   V^ ,          # \        P8                  ! W\         P*                  R7      # . p. pV F  p\        V\        4      '       d   VP3                  V4       K,  V'       d;   VP                  \        P                  ! V^ ,          P                  VR7      4       . pVP                  V4       K  	  V'       d9   VP                  \        P                  ! V^ ,          P                  VR7      4       \        V4      ^8X  d#   V^ ,          P:                  '       d
   V^ ,          # \        P<                  ! WRR7      # )re  r{  FTr   zunexpected zitem found in r:  dictz literalzexpected expression, found '*'rt   )rz  rf  rX   )key_expr
value_exprr.  )r  rY   r  r  rx  )rw   r  )rn  r|  r   rF  rg  rh  )rb   rR   rN   r   r  rk  r   r   rY   r}   r|   r  rc   r  r}  r  r   	dict_typeDictComprehensionAppendNoderz  rf  set_typer  r  r  r  SetNodeis_set_literalMergedSequenceNoder  r  )rH   rc   partstarget_typelast_was_simple_itemr  rz  rf  comprehension_typerY   r  r  	set_itemspartr  s   &              r*   r  r    ss    **,CFFHtts{	!!#r::EK 
44;a#$443;aAADD	)DD;!#3%?A BFFHtts{89!!$DLL#( !9Da#$443;aAaq	 --cgg3L#b	  &dV$'+$443;FFHtts{  ttu:?z%(D99c%(mq>P8A;Da!$	(>(>??KdK?%,%6%6"">>HHtxxDJJH &-%5%5""::488$Oa(DHHSM..sfff 5zQz%(D'A'ALM %%c2>>HHSMa	D$%%  &LL!2!29Q<3C3C)!TU "IT"  LL**9Q<+;+;)LMu:?uQx6668O++C'BRBRSS 
D$%%!!$'LL!3!3JqM4E4EWa!bc!#JT"  LL++JqM,=,=zZ[u:?uQx7778O''SXYYr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     3 3 3r-   c                    V P                  4       pV P                  4        \        V 4      .pV P                  R 8X  d-   V P                  4        VP	                  \        V 4      4       K=  V P                  R4       \        V4      ^8X  d   V^ ,          pM\        P                  ! WR7      p\        P                  ! WR7      # )rX   r  rx  r&  )
rb   rR   r}   rN   rY   r|   rk  r   r~  BackquoteNode)rH   rc   rw   r  s   &   r*   r  r    s     **,CFFH1I;D
$$#+	F1IHHSM
4yA~1g!!#3""322r-   c                0    V ^8  d   QhR\         R\        /# r]   r   r}  )rJ   s   "r*   rK   rK   *  s      , d r-   c                     Ve   V.M. pV P                   \        9  dA   VP                  \        V 4      4       V P                   R8w  d    V# V P	                  4        KU  V# NrX   )rN   expr_terminatorsrY   r}   rR   rH   r   r  s   && r*   p_simple_expr_listr  )  sP     ,4&"E
$$&
&fQi!443;L 	
Lr-   c                0    V ^8  d   QhR\         R\        /# r]   r  )rJ   s   "r*   rK   rK   5  s      < t r-   c                     Ve   V.M. pV P                   \        9  dA   VP                  \        V 4      4       V P                   R8w  d    V# V P	                  4        KU  V# r  )rN   r  rY   r   rR   r  s   && r*   p_test_or_starred_expr_listr  4  sR     ,4&"E
$$&
&+A./443;L 	
Lr-   c                0    V ^8  d   QhR\         R\        /# r]   r  )rJ   s   "r*   rK   rK   @  s      \  r-   c                     Ve   V.M. pV P                   \        9  dA   VP                  \        V 4      4       V P                   R8w  d    V# V P	                  4        KU  V# r  )rN   r  rY   r   rR   r  s   && r*   r  r  ?  sR     ,4&"E
$$&
&5a89443;L 	
Lr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   M  s      , r-   c                     V P                  4       p\        V 4      pV P                  R 8X  d3   V P                  4        \	        W4      p\
        P                  ! WR7      # V# rX   rx  )rb   r}   rN   rR   r  r   r~  rH   rc   r   r  s   &   r*   r'  r'  L  sJ    
**,C!9Dtts{	"1+""355r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   [  s      L r-   c                     V P                  4       p\        V 4      pV P                  R 8X  d3   V P                  4        \	        W4      p\
        P                  ! WR7      # V# r  )rb   r   rN   rR   r  r   r~  r  s   &   r*   rh  rh  Z  sK    
**,C!!$Dtts{	+A4""355r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   i  s     
 
| 
r-   c                     V P                  4       p\        V 4      pV P                  R 8X  d3   V P                  4        \	        W4      p\
        P                  ! WR7      # V P                  R9   d   \        W4      # V# )rX   rx  rh  )rb   r   rN   rR   r  r   r~  rl  r  s   &   r*   r  r  h  sc    
**,C+A.Dtts{	5a>""355	
!	!  r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   w  s     B B Br-   c                     \        V \        P                  ! VP                  \        P
                  ! VP                  VR 7      R7      4      p\        P                  ! VP                  VR7      # )r&  r.  )r  )r  r   r/  rc   r   r)  GeneratorExpressionNode)rH   r   r  s   && r*   rl  rl  v  sP     a++00tDF GD,,TXXDAAr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     0 0, 0r-   c                     V P                  4       pV P                  4        \        V 4      p\        P                  ! WR 7      # )rZ   )rb   rR   r[   r   
GlobalNoderH   rc   rZ   s   &  r*   p_global_statementr    s2     **,CFFHOEC//r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     2 2L 2r-   c                     V P                  4       pV P                  4        \        V 4      p\        P                  ! WR 7      # r  )rb   rR   r[   r   NonlocalNoder  s   &  r*   p_nonlocal_statementr    s0    
**,CFFHOEc11r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     0W 0W, 0Wr-   c           	      D   \        V 4      pR pV P                  R8X  dY   VP                  '       g%   VP                  '       g   VP                  '       d#   RpV P                  4        \        V 4      Vn        V P                  R8X  d0   VP                  '       d   V P                  RVP                  R7       V.pV P                  R8X  dL   V P                  4        V P                  R8X  d   \        V 4      pM\        V 4      pVP                  V4       K\  \        V4      ^8X  Ed   \        P                  ! RV P                  4      '       Ed@   V^ ,          p\!        V\"        P$                  4      '       dX   \"        P&                  ! VP                  VP(                  \+        VP                  VP,                  VP.                  4      R7      pMU\!        V\"        P0                  \"        P&                  \"        P2                  34      '       g   \        VP                  R	4       V P                  R
R pV P                  4        V P                  R8X  d   \        V 4      pM\5        V 4      p\6        P8                  ! VP                  WTVR7      # V^ ,          p\6        P:                  ! VP                  VR7      # VR,          p\        V4      ^8X  d+   \6        P<                  ! VP                  V^ ,          WbR7      # \6        P>                  ! VP                  VR
R VR7      # )Frt   Trd  zqa starred assignment target must be in a list or tuple - maybe you meant to use an index assignment: var[0] = ...rc  r  z([-+*/%^&|]|<<|>>|\*\*|//|@)=r  z&Illegal operand for inplace operation.N)r   r   r   r.  )r   r   first)lhs_listr   rg  ) rh  rN   r   is_subscriptis_attributerR   p_annotation
annotationr  r   rc   r+  rY   rk  r   matchr  r   r  r  r  r  r  r  rZ  r  r'  r   InPlaceAssignmentNoder/  SingleAssignmentNodeCascadedAssignmentNode)rH   r   has_annotation	expr_listr   r   r   s   &      r*   p_expression_or_assignmentr     s?   "DNtts{(9(9(9T=N=N=N	&q/tts{t 	
 NHH 	 	 I
$$#+	447?%a(D'*D
9~884add;;A,C#y7788))GG)#''399chhGI  i&=&=y?R?RT]TfTf%ghhcggGHttCRyHFFHttw(+ m..swwX[\\|!!$((66
B-C
9~))#''y|cc++CGGinRUVVr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     , , ,r-   c                 j   V P                  4       pR pV P                  4        V P                  R8X  dM   V P                  4        \        V 4      pV P                  R8X  d    V P                  4        V P                  R9   pMRp. pV P                  R9  dl   VP	                  \        V 4      4       V P                  R8X  dA   V P                  4        V P                  R9   d   RpMVP	                  \        V 4      4       KQ  \
        P                  ! WR7      p\        P                  ! VWSV'       * R7      # )Fr   rX   NTrx  )r  streamappend_newliner+  r-  )	rb   rR   rN   r}   rY   r   r~  r   PrintStatNode)rH   rc   ends_with_commar  rw   r  s   &     r*   p_print_statementr    s     **,C#(OFFHttt|	443;FFHdd&88ODtt%%F1IddckFFHtt))"&KKq	"##C3Is**, ,r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     . . .r-   c                 ~   V P                  4       pV P                  4        \        V 4      p\        V\        P
                  4      '       dG   R pVP                  p\        V4      R	9  d(   V P                  R\        V4      ,          VRR7       V.pMRpV.pV P                  R8X  d   V'       d   V P                  RRR7       V P                  4        VP                  \        V 4      4       V P                  R8X  d+   V P                  4        VP                  \        V 4      4       \        P                  ! WR7      # )
Tz.expected tuple of length 2 or 3, got length %dFr%  r   z@tuple variant of exec does not support additional 'in' argumentsr   rX   rx  )rG      )rb   rR   r   r  r   r~  rw   rk  r   rN   rY   r}   r   ExecStatNode)rH   rc   codetuple_variantrw   s   &    r*   p_exec_statementr    s     **,CFFHa=D$	++,,yyt9F"GGDs4yP5  *6Dvttt|GGV  !	F1I443;FFHKKq	"c--r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     / /| /r-   c                     V P                  4       pV P                  4        \        V 4      p\        P                  ! WR 7      # )rx  )rb   rR   r  r   DelStatNode)rH   rc   rw   s   &  r*   p_del_statementr    s3     **,CFFHa DS..r-   Fc                D    V ^8  d   QhR\         R\        P                  /# )rG   rH   with_newliner^  )rJ   s   "r*   rK   rK     s     # # #FKK #r-   c                     V P                  4       pV P                  R 4       V'       d   V P                  RRR7       \        P                  ! V4      # )passExpected a newlineTignore_semicolon)rb   r|   expect_newliner   PassStatNode)rH   r  rc   s   && r*   p_pass_statementr    sA    
**,CHHV	-Ec""r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     $ $ $r-   c                 n    V P                  4       pV P                  4        \        P                  ! V4      # r%   )rb   rR   r   BreakStatNoder   s   & r*   p_break_statementr!    s)     **,CFFHs##r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   #  s     ' 'L 'r-   c                 n    V P                  4       pV P                  4        \        P                  ! V4      # r%   )rb   rR   r   ContinueStatNoder   s   & r*   p_continue_statementr%  "  s)     **,CFFH!!#&&r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   +  s     4 4, 4r-   c                     V P                  4       pV P                  4        V P                  \        9  d   \	        V 4      pMR p\
        P                  ! WR7      # )Nre  )rb   rR   rN   r!  r'  r   ReturnStatNode)rH   rc   rf  s   &  r*   p_return_statementr)  *  sD     **,CFFHtt((133r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   7  s     * * *r-   c                 .   V P                  4       pV P                  4        R pR pR pR pV P                  \        9  d   \	        V 4      pV P                  R8X  dI   V P                  4        \	        V 4      pV P                  R8X  d   V P                  4        \	        V 4      pM,V P                  R8X  d   V P                  4        \	        V 4      pV'       g   V'       g	   V'       d   \
        P                  ! VVVVVR7      # \
        P                  ! V4      # )NrX   r$  )exc_type	exc_valueexc_tbcause)rb   rR   rN   r!  r}   r   RaiseStatNodeReraiseStatNode)rH   rc   r,  r-  r.  r/  s   &     r*   p_raise_statementr2  6  s     **,CFFHHIFEtt((!9443;FFHq	Itts{TTV^FFH1IE9""3!	 	 $$S))r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   U  s     0 0, 0r-   c                    V P                  4       pV P                  pV P                  4        \        V R R7      .pV P                  R8X  d/   V P                  4        VP	                  \        V R R7      4       K?  . p\
        P                  V P                  P                  9   pV F  w  rrxVR8X  d   \        P                  ! VVVVR7      p	My\        P                  ! T\        P                  ! Y;'       g    TR7      \        P                  ! T\        P                  ! WR7      \!        V4      V'       d   ^ MRRR7      R	7      p	VP	                  V	4       K  	  \        P"                  ! WR
7      # )T
as_allowedrX   cimport)module_nameas_nameis_absoluter  re  Nr8  is_import_as_namer8   imported_namesr   stats)rb   rN   rR   p_dotted_namerY   r
   absolute_importrO   rk   r   CImportStatNoder  r   r  
ImportNoderj  r  StatListNode)
rH   rc   r  r  r?  r:  target_namedotted_namer9  stats
   &         r*   p_import_statementrH  T  s%    **,C44DFFH1./E
$$#+	]167E((AII,G,GGK27.+9((''	)D --&&s1G1GKH(( ) > >s V&*7m*!#')*D 	T# 38$ c//r-   c                D    V ^8  d   QhR\         R\        P                  /# rG   rH   first_statementr^  )rJ   s   "r*   rK   rK   v  s"     M M| Mfkk Mr-   c                    V P                  4       pV P                  4        V P                  R9   dC   ^ pV P                  R9   d/   V\        V P                  4      ,          pV P                  4        K?  MRpVe=   V P                  R9   d,   V P                  4       V P                  P                  R4      rTM?Vf,   \        P                  V P                  P                  9   d   ^ p\        V RR7      w  rFrVV P                  R9  d   V P                  R4       V P                  pV P                  4        VR8H  pRp	V P                  R8X  d?   V P                  4       V P                  P                  R4      R3.p
V P                  4        M/V P                  R8X  d   R	p	V P                  4        \        V 4      .p
V P                  R
8X  dG   V P                  4        V	'       d   V P                  R8X  d   MV
P                  \        V 4      4       KW  V	'       d   V P                  R4       VR8X  d   V'       g   V P                  R4       MwV'       d   V P                  R4       M]V
 FW  w  rpVR8X  d   V P                  RV4        M: \        \        V4      pT P                  P                  P!                  T4       KY  	  \"        P$                  ! V4      # V'       d   \"        P&                  ! W%VV
R7      # . p. pV
 F^  w  rpVP                  \(        P*                  ! WR7      4       TP                  T\(        P,                  ! Y;'       g    TR7      34       K`  	  \"        P.                  ! V\(        P0                  ! V\(        P*                  ! W%R7      RVVR7      VR7      #   \         d     T P                  RT,          T4         EK  i ; i)rH  Nr7  r  Fr5  zExpected 'import' or 'cimport'r   r  TrX   r  
__future__z?from __future__ imports must occur at the beginning of the filezinvalid syntaxbracesznot a chancez future feature %s is not defined)r8  relative_levelr=  re  r  r;  )moduler  )rH  r  importr7  )rb   rR   rN   rk  rO   rP   r
   rA  rk   r@  r   p_imported_namerY   r|   getattrAttributeErroraddr   r  FromCImportStatNoder   rj  r  FromImportStatNoderC  )rH   rK  rc   r8   dotted_name_posrF  ru  r  
is_cimportis_parenthesizedr=  name_posrT   r9  	directiveimported_name_stringsr  s   &&               r*   p_from_import_statementr_  u  s    **,CFFHtt|ddl"SYEFFH # QTT%::'(zz|QYY5M5Mb5Q=V33qyy7R7RRE/<Q5/Q,[tt((	0144DFFH"Jtts{::<)A)A#)FMN	443;#FFH)!,-
$$#+	oa01	l"GGUVGG$%-;)8#GGNH5 ' 5I 		++//	: .< !!#&&	(( )+ 	+
 !#)7%XW!((..xDFLLy))(DIJL *8
 ''))/'<<SV$)!6	8
  	% & GG>ExPs   N&&$OOc                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s        |  r-   c                 V    V P                  4       p\        V 4      p\        V 4      pWV3# r%   )rb   rU   	p_as_name)rH   rc   rT   r9  s   &   r*   rS  rS    s*    
**,C1:DlGwr-   c                P    V ^8  d   QhR\         R\        P                  R\        /# )rG   rH   r6  r^   r   r_  r`  r`   )rJ   s   "r*   rK   rK     s*     
R 
R\ 
Rv{{ 
Ru 
Rr-   c                 <   V P                  4       p\        V 4      pR pV.pV P                  R8X  d-   V P                  4        VP	                  \        V 4      4       K=  V'       d   \        V 4      pW#V P                  P                  RP                  V4      4      V3# )NrH  )	rb   rU   rN   rR   rY   rb  rO   rP   r  )rH   r6  rc   rE  r9  rZ   s   &&    r*   r@  r@    sv    
**,C!*KGME
$$#+	WQZ A,aii66sxxGQQr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s       r-   c                     V P                   R 8X  d-   V P                  R8X  d   V P                  4        \        V 4      # R# )rM   asN)rN   rQ   rR   rU   r   s   &r*   rb  rb    s.    ttw1::-	qzr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     
B 
B, 
Br-   c                     V P                  4       pV P                  4        \        V 4      pV P                  R 8X  d   V P                  4        \        V 4      pMRp\        P
                  ! WVR7      # )rX   N)r  rf  )rb   rR   r}   rN   r   AssertStatNode)rH   rc   condrf  s   &   r*   p_assert_statementrm    sV     **,CFFH!9Dtts{	q	5AAr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     
< 
<l 
<r-   c                    V P                  4       pV P                  4        \        V 4      .pV P                  R 8X  d-   V P                  4        VP	                  \        V 4      4       K=  \        V 4      p\        P                  ! VW#R7      # )elifr  )rb   rR   p_if_clauserN   rY   p_else_clauser   r  )rH   rc   r  r  s   &   r*   p_if_statementrs    sl     **,CFFHa.!J
$$&.	+a.)"KC< <r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ' '< 'r-   c                 ~    V P                  4       p\        V 4      p\        V 4      p\        P                  ! VW#R 7      # )r  )rb   r   p_suiter   r  )rH   rc   r   r  s   &   r*   rq  rq    s8    
**,CAD1:Dc' 'r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      \ r-   c                 ^    V P                   R 8X  d   V P                  4        \        V 4      # R# )r   N)rN   rR   rv  r   s   &r*   rr  rr  
  s#    ttv~	qzr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     	# 	# 	#r-   c                     V P                  4       pV P                  4        \        V 4      p\        V 4      p\	        V 4      p\
        P                  ! VW#VR 7      # ))r  r  r  )rb   rR   r   rv  rr  r   WhileStatNode)rH   rc   r   r  r  s   &    r*   p_while_statementr|    sP     **,CFFHAD1:D"Ks!# #r-   c                D    V ^8  d   QhR\         R\        P                  /# rG   rH   r;  r^  )rJ   s   "r*   rK   rK   !  s     ( (| (v{{ (r-   c                     V P                  4       pV P                  4        \        V R VR7      p\        V 4      p\	        V 4      pVP                  WEVR7       \        P                  ! V3/ VB # )Tr  )r  r  r;  )rb   rR   r  rv  rr  r'   r   r  )rH   r;  rc   r  r  r  s   &&    r*   r>  r>     s_     **,CFFH	ax	@B1:D"KII48IDS'B''r-   c                p    V ^8  d   QhR\         R\        P                  R\        P                  R\        /# )rG   rH   r  r;  r^   )r   r_  r`  r  )rJ   s   "r*   rK   rK   -  s4     ) )L )&++ )PVP[P[ )hl )r-   c           	         \        V 4      pV P                  R 8X  d*   V P                  4        \        WVR7      p\	        W4R7      # V P
                  '       Eg$   V'       Eg   V P                  R8X  d   V P                  4        \        V 4      pMTRr5\        V 4      pV P                  4       p\        V 4      pV P                  4       p	\        V 4      p
\        V 4      p\        V 4      pVf   \        P                  ! WxR7      pMEVP                  '       g   \        VP                  R4       MWP                   8w  d   \        VR4       V^ ,          V
^ ,          8w  d   \        V	R4       \	        VVVV
VVR	7      # V P#                  R 4       / # )
r   r:  )targetiteratorr$  Nr  z4Target of for-from statement must be a variable namez5Variable name in for-from range does not match targetz,Relation directions in for-from do not match)r  bound1	relation1	relation2bound2r  )p_for_targetrN   rR   p_for_iteratorr  r   r   p_for_from_relationrb   rU   p_for_from_stepr   r  r   r   rc   rT   r|   )rH   r  r;  r  r  r  rel1	name2_posname2rel2_posrel2r  r  s   &&&          r*   r  r  ,  sH   !_Fttt|	!!hG655hh446>FFH]F $TF"1%JJL	
::<"1%Aq!>''	@F>>>fjjJL++%iKM7d1g(>@V# $ $# 	 	
	r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   Z  s     7 7< 7r-   c                     V P                   \        9   d   V P                   pV P                  4        V# V P                  R 4       R# )z#Expected one of '<', '<=', '>' '>='N)rN   inequality_relationsrR   r   r   s   & r*   r  r  Y  s3    tt##TT			56r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   d  r  r-   c                     V P                   R 8X  d/   V P                  R8X  d   V P                  4        \        V 4      pV# R# )rM   byN)rN   rQ   rR   r   )rH   r  s   & r*   r  r  c  s2    ttw1::-	!}r-   c                0    V ^8  d   QhR\         R\        /# )rG   rH   ru   r  )rJ   s   "r*   rK   rK   r  s       # r-   c                 P   V P                  4       p\        V 4      pV P                  R 8X  dz   V P                  4        V.pV P                  V8w  d?   VP	                  \        V 4      4       V P                  R 8w  d   MV P                  4        KO  \
        P                  ! W$R7      # V# r  )rb   r   rN   rR   rY   r   r~  )rH   ru   rc   r   r  s   &&   r*   p_targetr  q  s|    
**,C!Dtts{	ddj LL*+tts{FFH""355r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      L r-   c                     \        V R 4      # )r   )r  r   s   &r*   r  r    s    Atr-   c                d    V ^8  d   QhR\         R\        P                  R\        P                  /# )rG   rH   r  r;  r^  )rJ   s   "r*   rK   rK     s1     e el eFKK eRXR]R] er-   c                     V P                  4       pV'       d   \        V 4      pM\        V 4      pV'       d   \        P                  M\        P
                  ! W4R 7      # ))sequence)rb   r'  r   r   AsyncIteratorNodeIteratorNode)rH   r  r;  rc   r   s   &&&  r*   r  r    sA    
**,C!}|+3I''9O9OOQTddr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     2 2| 2r-   c                 :   V P                  4       pV P                  4        \        V 4      p. pR pV P                  R9   d   V P                  R8X  d   VP	                  \        V 4      4       K-  V P                  R8X  d   V P                  4        \        V 4      p\        P                  ! VW#VR7      pV P                  R8w  d   V# V P                  R8X  d4   V P                  4        \        V 4      p\        P                  ! VW%R7      # V P                  R4       R # )Nexceptr   )r  except_clausesr  finally)r  finally_clausezExpected 'except' or 'finally')r  r   )
rb   rR   rv  rN   rY   p_except_clauser   TryExceptStatNodeTryFinallyStatNoder   )rH   rc   r  r  r  r  s   &     r*   p_try_statementr    s     **,CFFH1:DNKtt!!ddh!!/!"45446>FFH!!*K&&s%' 449Ktty	 '': 	: 	
01r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     0 0| 0r-   c                    V P                  4       pV P                  4        R pR pRpV P                  R8w  Ed   \        V 4      p\	        V\
        P                  4      '       d   VP                  pMV.pV P                  R8X  g>   V P                  R8X  dI   V P                  R8X  d8   V P                  P                  ^8X  d   V P                  4        \        V 4      pMfV P                  R8X  dV   V P                  R8X  dE   V P                  4        V P                  4       p\        V 4      p\
        P                  ! WVR7      pRp\        V 4      p\        P                  ! VW#WtR7      # )	NFrt   rX   rM   rh  r  T)patternr  r  is_except_as)rb   rR   rN   r}   r  r   r~  rw   rQ   rO   r  rU   r  rv  r   ExceptClauseNode)rH   rc   r,  r-  r  pos2rT   r  s   &       r*   r  r    s    **,CFFHHILtts{!9h	 3 344}}H zH443;1447?qzzT/A yy771<FFHq	ITTW_t!3FFH::<D1:D!**4=IL1:D!!#0 0r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ' '< 'r-   c           
      <   V P                  4       pV P                  4        \        V R 4      ^,          pV P                  R4       V P                  '       d   TpV P
                  P                  WB4      pV'       dw   V P                  P                  V4       \        V4      pVP                  4       ;_uu_ 4       p\        WvWP                  V P                  R7      p\        W4      p	RRR4       V	# R# \        P                   ! V4      #   + '       g   i     X	# ; i)r  z!Syntax error in include statement)r  parse_commentsN)rb   rR   r  r  compile_time_evalrO   find_include_fileincluded_filesrY   r   get_file_objectr   encodingr  p_statement_listr   r  )
rH   r/   rc   unicode_include_file_nameinclude_file_nameinclude_file_pathsource_descr  s2trees
   &&        r*   p_include_statementr    s    
**,CFFH 0C 8 ;895II778IO##$56./@AK,,..!!!!ZZ`a`p`pq'0 / K!!#&& /. Ks   :.D

D	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s       r-   c                     V P                  4        V P                  R 8X  d    V P                  '       g   \        V 4      pV# \	        V 4      pV# )template)rR   rQ   r   p_with_templater?  )rH   r  s   & r*   p_with_statementr    sC    FFHzzZ(8(8(8q! K AKr-   c                D    V ^8  d   QhR\         R\        P                  /# r~  r^  )rJ   s   "r*   rK   rK     s      L FKK r-   c                   RpRpV P                   R8X  dr   \        V 4      ;_uu_ 4       pV P                  4        \        W4      pV P	                  R4       V P                   R8w  d   V P                  R4       RRR4       X'       * pV'       g   \        W4      p\        V 4      p\        V4       F  w  rgpV! V3RV/VB pK  	  V#   + '       g   i     LW; i)	au  
Copied from CPython:
| 'with' '(' a[asdl_withitem_seq*]=','.with_item+ ','? ')' ':' b=block {
    _PyAST_With(a, b, NULL, EXTRA) }
| 'with' a[asdl_withitem_seq*]=','.with_item+ ':' tc=[TYPE_COMMENT] b=block {
    _PyAST_With(a, b, NEW_TYPE_COMMENT(p, tc), EXTRA) }
Therefore the first thing to try is the bracket-enclosed
version and if that fails try the regular version
Fr  r  rt   r  Nr  r3   )rN   r   rR   p_with_items_listr|   r   rv  reversed)	rH   r;  brackets_succeededr  errorsr  clsrc   r)   s	   &&       r*   r?  r?    s     Etts{a  FFFH%a2EHHSMtts{  ! "(Z!!.1:D"5/$3*T*T* * K! ! s   ACC	c                P    V ^8  d   QhR\         R\        P                  R\        /# rG   rH   r;  r^   r   r_  r`  r}  )rJ   s   "r*   rK   rK   	  s%     
 
 
 
 
r-   c                     . p VP                  \        W4      4       V P                  R8w  d    V# V P                  4        V P                  R8X  g   KR   V# )TrX   r  )rY   p_with_itemrN   rR   )rH   r;  r  s   && r*   r  r  	  sN    E
[-.443;
 L	 	
443;Lr-   c                P    V ^8  d   QhR\         R\        P                  R\        /# r  rd  )rJ   s   "r*   rK   rK   	  s*     e e< e6;; e5 er-   c                 f   V P                  4       pV P                  '       g   V P                  R 8X  d   V P                  R9   d   V'       d   V P	                  R4       V P                  pV P                  4        RpV P                  R8X  d-   V P                  4        \        V 4      pV P                  R4       \        P                  VRVRV/3# \        V 4      pRpV P                  R 8X  d-   V P                  R8X  d   V P                  4        \        V 4      p\        P                  VRVR	VR
V/3# )rM   zwith gil/nogil cannot be asyncNr  r  stater  rh  managerr  r;  )r>   gil)rb   r   rN   rQ   r   rR   r}   r|   r   GILStatNoder   WithStatNode)rH   r;  rc   r  r  r  r  s   &&     r*   r  r  	  s     **,CAJJBR4RGG45

	 	443;FFHq	IHHSM  #Y'OOO)447?qzzT1FFH#A&F!!3GXvz[c(dddr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   <	  s     D D| Dr-   c                 x   V P                  4       p. pV P                  4        V P                  R 4       VP                  V P                  4       V P                  4        V P                  R8X  d>   V P                  4        VP                  V P                  4       V P                  4        KN  V P                  R4       V P
                  R8X  d`   V P                  4        V P                  R4       V P                  4        \        4       pW#n	        \        WV4      pV P                  4        V# \        VR4       R# )rG  rX   r  rt   z-Syntax error in template function declarationN)rb   rR   r|   rY   rQ   rN   r  expect_indentr!   r@   p_c_func_or_var_declarationexpect_dedentr   )rH   rc   r@   body_ctxfunc_or_vars   &    r*   r  r  ;	  s    
**,CIFFHHHSMQZZ FFH
**
	$	HHSMtts{		HI	5&1!(C	cBCr-   c                D    V ^8  d   QhR\         R\        P                  /# rJ  r^  )rJ   s   "r*   rK   rK   V	  s        ,    r-   c                 f   V P                   R 8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \	        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R9   d   \        V 4      pV# V P                   R	8X  d   \        WR
7      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# V P                   R8X  d   \        V 4      pV# \        V 4      pV# )globalnonlocalprintexecdelbreakcontinuer^   raiser$  rK  r  assertr  rQ  )rN   r  r  r  r  r  r!  r%  r)  r2  rH  r_  r1  rm  r  r   )rH   rK  r  s   && r*   p_simple_statementr  U	  s    	ttx!!$: K9 
	#A&6 K5 
 #2 K1 
". K- 
q!* K) 
 #& K% 
	#A&" K! 
	!!$ K 
 # K 
&	&!!$ K 
&qL K 
 # K 
	!!$
 K	 
" K *!,Kr-   c                D    V ^8  d   QhR\         R\        P                  /# rJ  r^  )rJ   s   "r*   rK   rK   z	  s     ! !| !6;; !r-   c                 >   \        WR 7      pVP                  p. p\        V\        P                  4      '       g   VP                  V4       V P                  R8X  df   V P                  4        V P                  R9   d   MC\        WR 7      p\        V\        P                  4      '       d   Ka  VP                  V4       RpKv  V'       g   \        P                  ! V4      pM1\        V4      ^8X  d   V^ ,          pM\        P                  ! WER7      pV P                  R9  dj   \        V\        P                  4      '       dJ   VP                  P                  '       d.   VP                  P                  R8X  d   V P                  RV4       V P                  R4       V# )r  ;Fr>  cdefz@The 'cdef' keyword is only allowed in Cython files (pyx/pxi/pxd)z%Syntax error in simple statement listr  )r  rc   r  r   r  rY   rN   rR   rk  rD  r/  r   r   rT   r   r  )rH   r/   rK  rG  rc   r?  s   &&&   r*   p_simple_statement_listr  y	  s*    aCD
((CEdE..//T
$$#+	44%%!!GdE..//T!!#&	UqQx!!#5tt%%dE..//yy   TYY^^v%=Z\_`<=Kr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   	  s      < r-   c                 N    V P                   p^V n         \        V 4      pWn         V# r  )r  r'  )rH   oldr   s   &  r*   p_compile_time_exprr  	  s)    


CAa=DKr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   	  s     # #| #r-   c                 b   V P                  4       pV P                  pV P                  4        \        V 4      pV P	                  R 4       \        V 4      pV P                  '       d#   VP                  V4      pVP                  W54       V P                  RRR7       \        P                  ! V4      # )rd  r  Tr  )rb   r  rR   rU   r|   r  r  compile_time_valuedeclarer  r   r  )rH   rc   denvrT   r   rf  s   &     r*   p_DEF_statementr  	  s    
**,CDFFH1:DHHSMq!D''-T!)DAc""r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   	  s      l r-   c                    V P                  4       pV P                  pTpV P                  pR p V P                  4        \	        V 4      pT;'       d    \        VP                  V4      4      V n        \        W4      pV P                  '       d   Tp^ pV P                  R8w  g   Ky   T P                  R8X  d,   T P                  4        Y@n        \        Y4      pT'       d   TpT'       g   \        P                  ! T4      pY0n        T# )NELIFELSE)rb   r  r  rR   r  r  r  rv  rN   r   r  )	rH   r/   rc   
saved_evalcurrent_evalr  r   r   r  s	   &&       r*   p_IF_statementr  	  s    
**,C$$JLDF
	"1%*RRtD4K4KD4Q/RqFL446>ttv~	*qF##C($Mr-   c                D    V ^8  d   QhR\         R\        P                  /# rJ  r^  )rJ   s   "r*   rK   rK   	  s&     vX vX< vXv{{ vXr-   c                 n   VP                   pV P                  4       pR pV P                  R8X  d.   VP                  R+9  d   V P	                  R4       \        W4      # V P                  R8X  dF   V P                  P                  P                  RR4      '       d   \        VR^R7       \        V 4      # V P                  R8X  dF   V P                  P                  P                  R	R
4      '       d   \        VR^R7       \        W4      # V P                  R8X  d   VP                  R,9  d   V P	                  R4       VP                  V n        \        V 4      pVP                  '       gF   V P                  R-9  d5   V P                  R8X  d   V P                  R8X  d   M8V P	                  R4       M&V P                  R8X  d   V'       d   \        V R
R7      # RpV P                  R8X  d   R
pV P!                  4        M%V P                  R8X  d   R
pR
pV P!                  4        V'       d   VP                  R.9  d   V P	                  R4       VP                  V n        \#        WV! VR7      4      pVe   \$        P&                  \$        P(                  \$        P*                  3pVP                  '       d(   V\$        P,                  \$        P.                  3,          p\1        Wx4      '       g   V P	                  R4       WWn        V# VP4                  '       d   V P	                  RRR7       R # V P                  R8X  dP   RVP                  9   d#   VP                  R8w  d   V P	                  R4       VP                  V n        \7        W4      # V P                  R8X  d.   VP                  R/9  d   V P	                  R 4       \9        W4      # V P                  R!8X  d.   VP                  R+9  d   V P	                  R"4       \;        W4      # VP                  R8X  d.   V P                  R8X  d   V P                  R8X  d   \=        V 4      # V P                  R8X  d   VP                  R8w  d   \        V R
R7      # VP                  R09   d#   \?        V 4      pVe   V# V P	                  R#4       V P                  R$8X  d   \A        V 4      # V P                  R%8X  d   \C        V 4      # V P                  R&8X  d   \E        V 4      # V P                  R'8X  d   \G        V 4      # V P                  R(8X  d   \I        V 4      # V P                  R8X  d   V P!                  4        \K        WV4      # V P                  R8X  d   V P                  R8X  du   V P                  p	V P                  4       p
V P!                  4        V P                  R8X  d   \K        WV4      # V'       d   V P	                  R4       V PM                  RW4       V P                  R8X  d#   V P                  R)8X  d   \O        W4      pVe   V# \Q        WVR*7      # )1Nctypedefz#ctypedef statement not allowed hereDEFzwarn.deprecated.DEFFzThe 'DEF' statement  will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310r   IFzwarn.deprecated.IFTzThe 'IF' statement is deprecated and will be removed in a future Cython version. Consider using runtime conditions or C macros instead. See https://github.com/cython/cython/issues/4310r   classc_classpropertyc_class_pxdzdecorator not allowed herer4  r  cpdefri  rM   r8  r  )r  zcdef statement not allowed here)r=   %'api' not allowed with this statementr   r5  r6  z!class definition not allowed hereincludez"include statement not allowed herez%Executable statement not allowed herer   whiler9  tryr<  r  r  rP  
module_pxd)rP  r  r	  r  r
  r  r  r"   )r4  r  r  r  ri  )rP  r  r  r	  r  )rP  r  r  r"   )r  r
  ))r:   rb   rN   r8   r   p_ctypedef_statementrO   compiler_directivesgetr   r  r  p_decoratorsrA   rQ   r  rR   p_cdef_statementr   CFuncDefNodeCVarDefNodeCClassDefNodeCStructOrUnionDefNodeCEnumDefNoder  r@  r<   r=  p_class_statementr  p_property_declp_ignorable_statementrs  r|  r>  r  r  rA  put_backp_match_statementr  )rH   r/   rK  r:   rc   r@  r=   r  tup
ident_name	ident_posmatch_statements   &&&         r*   p_statementr&  	  s    ]]I
**,CJttz9944GG9: $A++	
 99((,,-BEJJCGNOQ q!!	
99((,,-A4HHCGNOQ a%%	
99xxGG01))!!_
...144?i3ittw1::#8QR	
I55Kttv~			
		99ZZGG56))(DE!%%u'8'8%:M:MNC...33U5G5GHHd((QR(O777GG;5GITTU] "m)C89iiAG"111TTW_yy HH;<$Q33TTYyy 88<=&q..YY)#AJJ*<T"1%%TTV^		Z 7#AD99yy77,Q/#K?@ttt|%a(((++&q))&q))'**(<<447?qzzW'<!"J !

IFFHttu}0DD# YZJJw
>447?qzzW'<&7&?O&2...qWWr-   c                D    V ^8  d   QhR\         R\        P                  /# rJ  r^  )rJ   s   "r*   rK   rK   O
  s     6 6 6FKK 6r-   c                 l   V P                  4       p. pV P                  R9  dE   \        WVR7      p\        V\        P
                  4      '       d   K@  VP                  V4       RpKU  V'       g   \        P
                  ! V4      # \        V4      ^8X  d
   V^ ,          # \        P                  ! W4R7      # )r_  r  Fr>  r_  r-  )	rb   rN   r&  r  r   r  rY   rk  rD  )rH   r/   rK  rc   r?  rG  s   &&&   r*   r  r  N
  s     **,CE
$$'
'1_EdE..//T!!#&&	UqQx!!#55r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   b
  s     B B| Br-   c                 *    \        WR R7      ^,          # )Fwith_doc_only)p_suite_with_docstringrH   r/   s   &&r*   rv  rv  a
  s    !!>qAAr-   c                P    V ^8  d   QhR\         R\        P                  R\        /# )rG   rH   r-  r^   rd  )rJ   s   "r*   rK   rK   g
  s&      l  X] r-   c                    V P                  R 4       RpV P                  R8X  dP   V P                  4        V P                  4        V'       d   \	        V 4      p\        W4      pV P                  4        M`VP                  '       d   V P                  RRR7       VP                  R	9   d   \        W4      pM\        V 4      pV P                  RRR7       V'       g   \        V4      w  r4W43# )
rt   Nr+  r  Fr   zSyntax error in declarationsTr  )rP  r  r  r"   )r|   rN   rR   r  p_doc_stringr  r  r<   r   r8   r  r  r  _extract_docstring)rH   r/   r-  docr  s   &&&  r*   r.  r.  f
  s    HHSM
Ctty		q/C'	777GG;5GI99@@*12D#A&D;dS&t,	9r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   
  s     6) 6)\ 6)r-   c                   . p. p^ pV P                   V9  Ed+   V P                   R8X  g   V P                   R8X  d   V P                  RRR7       RpV P                   R8X  d   V P                  4       ^ ,          R8X  d   V P                  pV P	                  4        V P	                  4        \        V 4      '       d   \        V 4      pM=\        WR7      p	\        V R	R
7      p
\        P                  ! V	P                  WR7      pR	p\        P                  ! VP                  VR7      pVP                  W34       R	pM\        V 4      '       d   \        V 4      pM=\        WR7      p	\        V R	R
7      p
\        P                  ! V	P                  WR7      pR	pVP                  V4       V^,          p\        V4      ^ 8  d   V P                  RVP                  R7       V P                   R8w  dE   V P                   V9  d0   V'       d(   V P                  RRP!                  V4      ,          4        W43# V P	                  4        EK<  W43# )z
Parses positional and keyword arguments. end_sy_set
should contain any s.sy that terminate the argument list.
Argument expansion (* and **) are not allowed.

Returns: (positional_args, keyword_args)
r   rF  z$Argument expansion not allowed here.Fr   rM   rd  r@   Tr  r  re  rb  rc  rX   zUnmatched %sz or )rN   r   rI  rQ   rR   r  r}   r  r  r   CComplexBaseTypeNoderc   r   rj  rY   rk  r  )rH   
end_sy_setr@   rm  rn  pos_idxparsed_typeidentr  r	  r
  keyword_nodewas_keywords   &&&          r*   p_positional_and_keyword_argsr?  ~
  s    OLG
$$j
 443;!$$$,GG:%GH447?qvvx{c1JJEFFHFFHq!!Qi)!C	+AT:
00 )D"$99#''OL 34K q!!Qi)!C	+AT:
00 )D"""3'qLG< 1$?GG  % 443;tt:%GGNV[[-DDE(( 	
((r-   c                D    V ^8  d   QhR\         R\        P                  /# rG   rH   nonemptyr^  )rJ   s   "r*   rK   rK   
  s"     O O\ OV[[ Or-   c                 V    V P                   R 8X  d   \        WR7      # \        WVR7      # )r  r7  rB  r@   )rN   p_c_complex_base_typep_c_simple_base_type)rH   rB  r@   s   &&&r*   r  r  
  s%    tts{$Q>>#AINNr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   
  s     ! !L !r-   c                     V P                   R 8X  d4   V P                  \        9   d   V P                  pV P                  4        V# \	        R4      # )rM   r  )rN   rQ   calling_convention_wordsrR   r   )rH   r   s   & r*   p_calling_conventionrJ  
  s;    ttw1::)AA	R  r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   
  s      \ r-   c                    V P                  4       pV P                  4        \        WR 7      p\        V RR7      p\        P
                  ! W#VR7      pV P                  R8X  d   V.pV P                  R8X  de   V P                  4        V P                  R8X  d   MB\        WR 7      p\        V RR7      pVP                  \        P
                  ! W#VR7      4       Ku  \        P                  ! W&R7      pV P                  R4       V P                  R8X  d+   \        V 4      '       d   \        W4      pV# \        WV4      pV# )r7  Tr  r  rX   r  )
componentsrG  )rb   rR   r  r  r   r8  rN   rY   r  r|   is_memoryviewslice_accessp_memoryviewslice_accessp_buffer_or_template)rH   r@   rc   r	  r
  	type_noderM  s   &&     r*   rE  rE  
  s    **,CFFHa5I.J**Z9Itts{[
ddckFFHtts{%a=I'6Je88ZA B,,SJ	HHSMtts{$Q''0>I  -Q9EIr-   c                D    V ^8  d   QhR\         R\        P                  /# rA  r^  )rJ   s   "r*   rK   rK   
  s"     _ _L _FKK _r-   c                    R p^p^ pR p. pV P                  4       pR ;rV P                  R8X  dd   V P                  R8X  d   V	'       d   \        VR4       Rp	M)V P                  R8X  d   V
'       d   \        VR4       Rp
MMV P	                  4        Kt  V	'       g	   V
'       dq   \        WVR7      p\        V\        P                  4      '       d+   \        P                  ! VVP                  WR7      Vn
        V# \        P                  ! VWV
R7      # V P                  R8w  d   \        VR	V P                  ,          4       \        V 4      '       d   RpV P                  R8X  dL   V P                  \        9   d7   \        V P                  ,          w  rEV P                  pV P	                  4        MR\        V 4      w  rEV P                  R8X  d3   V P                  \        9   d   V P                  pV P	                  4        MR
pV P                  R8X  d$   V P                  R8X  d   RpV P	                  4        EM\        V 4      '       d^   V P                  pV P	                  4        V P                  R8X  d/   VP!                  V4       V P	                  4        \#        V 4      pK?  EM0V P                  pV P                  4       pV P	                  4        V'       d   V P                  R8w  d   V P                  R8X  d   V P                  4       pV P	                  4        V P                  R8X  gI   V P                  R8X  g8   V P                  R8X  g'   V P                  R8X  d*   V P                  \$        9   d   V P'                  RRV4       MMV P'                  RRV4       V P'                  RW4       RpM%V P                  R9  d   V P'                  RW4       Rp\        P(                  ! VWW4WeVR7      pV P                  R8X  d*   \+        V 4      '       d   \-        W4      pM\/        WV4      pV P                  R8X  d4   V P	                  4        \#        V 4      p\        P0                  ! WVR7      pV# )FrM   constzDuplicate 'const'TvolatilezDuplicate 'volatile'rD  )r	  is_constis_volatilez"Expected an identifier, found '%s'r  r  rH  r  r   rF  r   NrG  )rT   module_pathis_basic_c_typesignedr  r  r@   )r	  rT   )r   rF  rG  r   )rb   rN   rQ   r   rR   r  r  r   r  r  r  looking_at_base_typespecial_basic_c_typesp_sign_and_longnessbasic_c_type_nameslooking_at_dotted_namerY   rU   rI  r   CSimpleBaseTypeNoderN  rO  rP  CNestedBaseTypeNode)rH   rB  r@   is_basicrZ  r  r  rX  rc   rV  rW  r	  rT   r\  old_posrQ  s   &&&             r*   rF  rF  
  sX   HFHGK
**,C #"H
$$'/:: s$78HZZ:%E#'=>K	;!!)L	i!>!>??','E'Ec#22X(`I$--cM 	M 	ttwc7!$$>?A447?qzz-BB4QZZ@F::DFFH215Fttw1::1C#Czz447?qzzY6GFFH		"	"zz	ddckt$FFH1:D 
 zz::<	tts{**,DDCK1444<1443;DDGO

>V0VJJsC1JJsC1JJw7D22

7D3))#"	I 	tts{$Q''0>I,Q9EItts{	qz--cQUV	r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   P  s      L r-   c                    V P                  4       pV P                  4        \        V RV4      w  rEV P                  R 4       V P                  R8X  d   \        WV4      p\        P                  ! TV UUu. uF'  w  rg\        P                  ! VP                  WgR7      NK)  	  uppR7      p\        P                  ! VVVVR7      p	V	# u uppi )r  rG  ry  r  )rm  rn  r  )r  )rb   rR   r?  r|   rN   rP  r   r  r  rc   r   r  )
rH   r  r@   rc   rm  rn  rz  rf  r  r   s
   &&&       r*   rP  rP  O  s     **,CFFH 	&a; "O HHSMtts{-aK%%c +
*
 ""swwCE*
L
 $$S)#')F M
s   4-Cc                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK   k  s       &++ r-   c                    V P                   V P                  V P                  4       3.pV P                  4        R pV P                  R8X  d   RpMjV P                   R8X  dZ   VP	                  V P                   V P                  V P                  4       34       V P                  4        V P                   R8X  d   RpVRRR1,           F  pV P
                  ! V!   K  	  V# )Frt   Tr  Nrg  )rN   rQ   rb   rR   rY   r   )rH   savedretvalsvs   &   r*   rN  rN  j  s     ddAJJ

-.EFFHFzzS	
addAJJ

56	443;FDbDkk	

B  Mr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s       r-   c                 "   V P                  4       pV P                  4        \        V 4      w  r4V F&  p\        V4      ^8  g   K  V P	                  R4       K(  	  V P                  R4       \        W#4      p\        P                  ! VVVR7      pV# )rG   zDAn axis specification in memoryview declaration does not have a ':'.r  )r  axes)	rb   rR   r  rk  r   r|   r  r   r  )rH   r  rc   r  ru  r  r  r   s   &&      r*   rO  rO    s}     **,CFFH$Q'MJ	y>AGGZ[   HHSMs/G**3+F Mr-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK     s"     J J| J Jr-   c                 V    V P                   R 8H  ;'       d    V P                  \        9  # rM   )rN   rQ   rI  r   s   &r*   looking_at_namerq    s"    447?IIqzz1IIIr-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK     s     ' '| ' 'r-   c                    V P                   \        9   d   R # V P                  R8X  Ed'   R pV P                   pV P                  4       p. pV P	                  4        V P                  R8X  dO   V P	                  4        VP                  V P                   V P                  4       34       V P                  R4       K_  V P                  V P                   V P                  4       3pV P                  R8X  d   RpMV P                  R8X  g   V P                  R8X  d1   V P	                  4        V P                  R	9   pV P                  ! V!   MV P                  R8X  d1   V P	                  4        V P                  R8H  pV P                  ! V!   MXV P                  R8X  dH   V P	                  4        V P                  R8H  ;'       g    \        V 4      '       * pV P                  ! V!   VP                  4        V F1  pV P                  ! R.VO5!   V P                  RRV^,          4       K3  	  V P                  RW#4       V'       * ;'       d
    V^ ,          # R# )
FrM   rH  Tr   rF  r  r  rG  )r  r  )
rQ   base_type_start_wordsrN   rb   rR   rY   r|   r   r  reverse)rH   is_typerT   r\  dotted_pathrh  ps   &      r*   r  r    s   zz**	
zz::<	ddckFFH

AJJL9:HHWajj!**,.447?GTTS[ADDDLFFHddj(GJJTTS[FFHddckGJJTTS[FFHddck;;);%;GJJAJJw##JJsC1&  	


7D+{''uQx'r-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK     s"     C CL CV[[ Cr-   c                 V    V P                   R 8H  ;'       d    V P                  \        9   # rp  )rN   rQ   rt  r   s   &r*   r[  r[    s$     447?BBqzz-BBBr-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK     s     	 	l 	v{{ 	r-   c                     V P                   R 8X  dP   V P                  pV P                  4       pV P                  4        V P                   R8H  pV P	                  R W4       V# R# )rM   rH  F)rN   rQ   rb   rR   r   )rH   rT   r\  r   s   &   r*   r_  r_    sM    ttwzz::<	ddck	

7D+r-   
Py_UNICODErY  	Py_hash_t
Py_ssize_tssize_tsize_t	ptrdiff_tPy_tss_tc                0    V ^8  d   QhR\         R\        /# r]   r_   )rJ   s   "r*   rK   rK     s      < E r-   c                 ,   ^p^ pV P                   R8X  d~   V P                  \        9   di   V P                  R8X  d   ^ pMBV P                  R8X  d   ^pM.V P                  R8X  d   RpMV P                  R8X  d
   V^,          pV P                  4        K  W3# )r  rM   r  rZ  shortlongrg  )rN   rQ   sign_and_longness_wordsrR   )rH   rZ  r  s   &  r*   r]  r]    s}    FH
$$'/ajj,CC::#FZZ8#FZZ7"HZZ6!MH	r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      < r-   c                 f    \        V R 4      pVe   \        V4      pV P                  Vn        V# RpV# )r  N)r  r   r  r  )rH   literalcnames   &  r*   p_opt_cnamer    s>    "1c*Gg&** L Lr-   c                    V ^8  d   QhR\         R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  /# )rG   rH   r  rv  cmethod_flag
assignablerB  calling_convention_allowedr^  )rJ   s   "r*   rK   rK     s_     " "l " ++"8>"[a[f[f"%{{">Dkk" 06{{"r-   c           
         V P                  4       pV P                  R 8X  d   V P                  4        V P                  R8X  g   \        V 4      '       d@   \        P
                  ! WP                  P                  R4      RR7      p	\        WWV4      p
M0\        WW#VVRR7      p
V P                  R4       M\        WW#VWV4      p
V'       gO   V
P                  '       d=   V P                  R 8w  d,   \        V P                  4       RV
P                  ,          4       V P                  R	9   dO   V P                  4       pV P                  R8X  d   \        W
4      p
MV P                  4        \        WWV4      p
^ pK_  V
# )
r  r  r  N)rT   r  T)r  rv  r  rB  r  z&%s on something that is not a functionrG  rG  r  )rb   rN   rR   rq  r   CNameDeclaratorNoderO   rP   p_c_func_declaratorr  r|   p_c_simple_declaratorcalling_conventionr   p_c_array_declarator)rH   r/   r  rv  r  r  rB  r  rc   r  r   s   &&&&&&&&   r*   r  r    s(    **,Ctts{	443;/!,,,,Syy7O7OPR7S[_`D(LIF#AE3?/7AEGF HHSM&qu|'1=%&*C*C*CPSajjlD''( 	)
$$*
jjl443;)!4FFFH(lKFMr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   5  s     I IL Ir-   c                     V P                  4       pV P                  4        V P                  R 8w  d   \        V 4      pMRpV P	                  R 4       \
        P                  ! W!VR7      # )r  N)r  	dimension)rb   rR   rN   r'  r|   r   CArrayDeclaratorNode)rH   r  rc   dims   &&  r*   r  r  4  sM    
**,CFFHtts{mHHSM%%cCHHr-   c                D    V ^8  d   QhR\         R\        P                  /# )rG   rH   r  r^  )rJ   s   "r*   rK   rK   A  s"     i i< iv{{ ir-   c                    \        WV^ R7      p\        V 4      pV P                  R4       \        V 4      p\	        WP
                  R8H  4      w  rp
V'       d%   V
'       d   \        V P                  4       R^R7       T;'       g    \        V 4      p\        V 4      p\        P                  ! TY5TYT;'       g    VP                  ;'       g    TWR7	      # )r   )r  nonempty_declaratorsr  externzThe keyword 'nogil' should appear at the end of the function signature line. Placing it before 'except' or 'noexcept' will be disallowed in a future version of Cython.r   )r  rw   has_varargsexception_valueexception_checkr>   with_gilhas_explicit_exc_clause)p_c_arg_listp_optional_ellipsisr|   p_nogilp_exception_value_clauser9   r   rb   
p_with_gilr   CFuncDeclaratorNoder>   )rH   rc   r/   r  r  rw   ellipsisr>   exc_val	exc_check
exc_clauser  s   &&&&&       r*   r  r  @  s     |/02D"1%HHHSMAJE%=aS[A[%\"G
JJL 	
 WQZE!}H$$S!....h8i ir-   c                    V ^8  d   QhR\         R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  /# )rG   rH   r  rv  r  r  rB  r^  )rJ   s   "r*   rK   rK   d  sY     O O\ O!'O7={{ORXR]R]O&,kkO=C[[Or-   c           
      j   V P                  4       p\        V 4      pV P                  R9   d   V P                  R8H  p	V P                  4        V P                  4       p
V P                  R8H  ;'       d    V P                  R8H  pV'       d   V P                  4        \        WW#VWVR7      pV'       d   \        P                  ! WR7      pV	'       d   \        P                  ! W|R7      p\        P                  ! W|R7      pEM(V P                  R8X  g.   V P                  R8X  dx   V P                  P                  '       d\   V P                  R8X  d   \        P                  M\        P                  pV P                  4        \        WW#VWVR7      pV! W|R7      pEMRpV P                  R8X  d   V P                  pV'       d   \        V P                  4       R	4       V P                  4        \        V 4      pVR
8w  d5   V P                  R8X  d$   V'       d   V P                  4        \        V 4      pM&V'       d   \        V P                  4       R4       RpRpVf1   VP                   e#   V'       d   VP                   R,           V,           pVR
8X  Ed|   VP"                  R8X  Edj   V'       Eda   V P                  pV Uu. uF  pVR9   g   K  ^NK  	  up'       d   V P                  4        VR8X  d   V P%                  R4       RpMVR8X  d   V P%                  R4       RpMfVR9   d,   V P                  V8X  d   V^,          pV P                  4        M4V P                  R8X  d$   VV P                  ,          pV P                  4        V\&        9  d   V P                  RV,          RR7       VV,          pMXVR8X  dR   V P                  pV\&        9  d   V P                  RV,          RR7       VR,           V,           pV P                  4        \        P(                  ! VVVVR7      pWn        V# u upi )r   rF  rT  rM   )r  rv  r  r  rB  )r  r   r   NzDeclarator should be emptyr   rd  zEmpty declaratorr  ::r  z+-*/<=>!%&|([^~,r  r  ()rG  r  []z,Overloading operator '%s' not yet supported.Fr    )rT   r  defaultr  )r   r   r   r   )rb   rJ  rN   rR   rQ   r  r   CConstDeclaratorNodeCPtrDeclaratorNoderO   cpp CppRvalueReferenceDeclaratorNodeCReferenceDeclaratorNoder   r  r}   r?   r9   r|   supported_overloaded_operatorsr  r  )rH   r/   r  rv  r  r  rB  rc   r  	is_ptrptr	const_posrV  r  r   
node_classr   rT   r  rd   r  s   &&&&&&&             r*   r  r  c  s,    **,C-a0tt{DDDL		JJL	::(<<QTTW_FFHaE+7)3H --iCD++C;D))#9	
!))---?@ttt|U;;QVQoQo
	aE+7)3H C+447?::Dajjl$@AFFHNEz!addckjQiajjl$67DE=S]]68MMD(4/E:#..H"<B92a&8!82999HHSMB3YHHSMB//ADDBJ!GBFFHTTS[!$$JBFFH;;GGJRO"'  )
wZZ;;GGJRO"'  )czB**3#7 2M; :s   >	P0P0c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK     s      |  r-   c                 n    V P                   R 8X  d$   V P                  R8X  d   V P                  4        R# R# )rM   r>   TFrN   rQ   rR   r   s   &r*   r  r    s'    ttw1::0	r-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK     s      , 6;; r-   c                 n    V P                   R 8X  d$   V P                  4        V P                  R4       R# R# )r<  r  TF)rN   rR   expect_keywordr   s   &r*   r  r    s*    ttv~		r-   c                P    V ^8  d   QhR\         R\        P                  R\        /# )rG   rH   	is_externr^   rd  )rJ   s   "r*   rK   rK     s*     A* A* A* A* A*r-   c                   RpRpV'       d   RMRpV P                   R8X  d(   V P                  R8X  d   RpV P                  4        RpEMzV P                   R8X  Edi   RpV P                  4        V P                   R8X  d   RpV P                  4        EM1V P                   R8X  d   RpV P                  4       ^,          pV P                  4        V P                   R8X  dn   V P                  pVR	8X  d?   V P                  4       ^,          V^,           8X  d   \	        V P                  4       R
4       M\        W4      pV P                  4        MyV P                   R8X  d7   \        P                  ! V P                  4       RR7      pV P                  4        M1V P                   R8X  d   RpV P                  4        MRp\        V 4      pW4V3# )a2  
Parse exception value clause.

Maps clauses to exc_check / exc_value / exc_clause as follows:
 ______________________________________________________________________
|                             |             |             |            |
| Clause                      | exc_check   | exc_value   | exc_clause |
| ___________________________ | ___________ | ___________ | __________ |
|                             |             |             |            |
| <nothing> (default func.)   | True        | None        | False      |
| <nothing> (cdef extern)     | False       | None        | False      |
| noexcept                    | False       | None        | True       |
| except <val>                | False       | <val>       | True       |
| except? <val>               | True        | <val>       | True       |
| except *                    | True        | None        | True       |
| except +                    | '+'         | None        | True       |
| except +*                   | '+'         | '*'         | True       |
| except +<PyErr>             | '+'         | <PyErr>     | True       |
| ___________________________ | ___________ | ___________ | __________ |

Note that the only reason we need `exc_clause` is to raise a
warning when `'except'` or `'noexcept'` is placed after the
`'nogil'` keyword.
FNTrM   noexceptr  r   r   r>   zf'except +nogil' defines an exception handling function. Use 'except + nogil' for the 'nogil' modifier.re  r  )	rN   rQ   rR   rb   r   r  r   r  r}   )rH   r  r  r  r  plus_char_posrT   s   &&     r*   r  r    sX   4 $JG"Ittw1::3
			
	
	443;IFFHTTS[IJJLOMFFHttwzz7?zz|A-!*;;ajjl GH %QoGFFH#,,QZZ\Etts{ 	!	QiGz))r-   c                    V ^8  d   QhR\         R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R\        /# )rG   rH   	in_pyfuncr  r  kw_onlyrv   r^   r  )rJ   s   "r*   rK   rK     s[      L "KK?E{{'-{{EK[[ #KK 48r-   c                     . pTpV P                   \        9  dG   VP                  \        WW(WEVR 7      4       V P                   R8w  d    V# V P	                  4        ^ pK[  V# ))rB  r  rv   rX   )rN   c_arg_list_terminatorsrY   p_c_arg_declrR   )	rH   r/   r  r  r  r  rv   rw   is_self_args	   &&&&&&&  r*   r  r    sd     DK
$$,
,L+!# 	$ 443; K 	
Kr-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK   '  s      < FKK r-   c                 B    V P                   R 8X  d   \        V 4       R# R# )r  TF)rN   r  r   s   &r*   r  r  &  s    ttu}r-   c                    V ^8  d   QhR\         R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  /# )rG   rH   r  r  rB  r  rv   r^  )rJ   s   "r*   rK   rK   0  sM     3 3L 3&++ 3V[[ 3!;;3 ++3:@++3r-   c                    V P                  4       pR ;rRp
RpV P                  '       d!   \        P                  ! VR. R ^ R ^ VRR7	      pM\	        WR7      p\        WVR7      pV P                  R9   d   V P                  '       g   V P                  pV P                  4        V P                  R8X  d#   V P                  R8X  d   V P                  4        MV P                  R4       V'       g   \        VR	V,          4       VR8H  p	VR8H  pV'       d-   V P                  R
8X  d   V P                  4        \        V 4      pV P                  R8X  d   V P                  4        RVP                  9   dc   V P                  R9   d(   \        P                  ! V4      p
V P                  4        M5RVP                  9   d   \        V 4      p
M\        VR4       M\        V 4      p
\        P                   ! VVVVV	V
VVR7      # )FN)rT   rX  rY  rZ  r  r  r  r@   rB  r   r   rM   r  zExpected 'None'z*'%s None' only allowed in Python functionsrt   rd  r5  inlinez;default values cannot be specified in pxd files, use ? or *)r	  r
  not_noneor_noner  r  r  )r   r   )r   r  )rb   r   r   r`  r  r  rN   rR   rQ   r   r  r8   r   r  	modifiersr}   CArgDeclNode)rH   r/   r  r  rB  r  rv   rc   r  r  r  r  r	  r
  r  s   &&&&&&&        r*   r  r  /  s    **,CHGJ--cr#a&D	:	 "!7	8<Jtt}Q%5%5%5tt	447?qzzV3FFHGG%&#CdJK$,5=QTTS[	!!_
tts{	CIIttz!#,,S1S]]* )cXYQiGc r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   g  s     	4 	4L 	4r-   c                f    V P                  4       p\        V 4      p\        P                  ! WR7      # )a  An annotation just has the "test" syntax, but also stores the string it came from

Note that the string is *allowed* to be changed/processed (although isn't here)
so may not exactly match the string generated by Python, and if it doesn't
then it is not a bug.
r.  )rb   r}   r   AnnotationNode)rH   rc   r   s   &  r*   r  r  f  s)     **,C!9D##C33r-   c                D    V ^8  d   QhR\         R\        P                  /# r]   r^  )rJ   s   "r*   rK   rK   t  s      \ fkk r-   c                 n    V P                   R 8X  d$   V P                  R8X  d   V P                  4        R# R# )rM   r<   TFr  r   s   &r*   p_apir  s  s'    ttw1::.	r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   }  s     &8 &8 &8r-   c                 &   \        WP                  4      Vn        VP                  ;'       g    \        V 4      Vn        VP                  '       d/   VP                  R9  d   \	        VRVP                  ,          4       VP                  R8X  d   V P
                  R8X  d   \        WV4      # V P
                  R8X  d   V P                  4        \        WV4      # \        V 4      '       d1   RVn	        VP                  '       d   \	        VR4       \        W4      # V P
                  R8X  d*   VP                  '       d   \	        VR4       \        W4      # V P
                  R8X  dH   VP                  R9  d   \	        VR	4       VP                  '       d   \	        VR
4       \        WV4      # V P
                  R8X  d   V P                  R8X  d   \        WV4      # V P
                  R8X  dn   V P                  \         9   dY   VP                  R9  d   \	        VR4       VP                  '       d   V P                  R8w  d   \	        VR4       \#        WV4      # V P
                  R8X  d   V P                  R8X  d   \%        WV4      # \'        WV4      # )r#   zCannot combine 'api' with '%s'r  r$  rR  Tz$cdef blocks cannot be declared cpdefrt   r  z*Extension type definition not allowed herez(Extension types cannot be declared cpdefrM   rQ  z/C struct/union/enum definition not allowed hereenumz'C struct/union cannot be declared cpdeffused)r#   publicr  )p_visibilityr9   r<   r  r   rN   p_cdef_extern_blockrR   r  r>   r=   p_cdef_blockr8   p_c_class_definitionrQ   p_cpp_class_definitionstruct_enum_unionp_struct_enump_fused_definitionr  rH   rc   r/   s   &&&r*   r  r  |  s   !!^^4CNgg!!qCG
www>>!66#7#..HI(""13//	
		"13//		???#=>A##	
???#=>A##	
9944#CD???#AB#AC00	
QZZ:5%ac22	
QZZ+<<9944#HI???zzV#cDEQS))	
QZZ72!!#..*1377r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     - -L -r-   c                 &    \        W! R R7      4      # )T)r:   )rv  r/  s   &&r*   r  r    s    1cd+,,r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     # #< #r-   c                    VP                   '       d   \        VR 4       RpV P                  R4       V P                  R8X  d   V P	                  4        M\        V R4      ^,          pV! RRR7      pV P                  R8X  d)   V P	                  4        \        V R4      ^,          Vn        \        V 4      '       d   RVn	        \        WR4      w  rE\        P                  ! VVVVVP                  R	7      # )
z+cdef extern blocks cannot be declared cpdefNr$  r   r  Tr  )r:   r9   r?   )include_fileverbatim_includer  r?   )r=   r   r|   rN   rR   r  rQ   r?   r  r>   r.  r   CDefExternNode)rH   rc   r/   r  r  r  s   &&&   r*   r  r    s    
c@ALHHVtts{	'3/2
$X
6Czz[ 	(C03qzz	 4ADA#+MM	# #r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     <@ <@< <@r-   c                    V P                  4        R pV P                  P                  '       dF   V P                  R8X  g#   V P                  R8X  d$   V P                  R8X  d   RpV P                  4        V P                  R8X  dU   V P                  pV P                  4        \        V 4      pVf)   VP                  e   VP                  R,           V,           pMR;rEV'       d   V P                  R4       V'       d?   V P                  R8X  d.   V P                  4        \        V 4      pV P                  R	4       M\        P                  ! VR
. R^R ^ R7      pV P                  R4       . pRpV P                  R8w  d   \        WV4       MZV P                  4        V P                  4        \        V 4      pV P                  R9  d   \        WV4       K  V P                  4        V'       g   VP                   R8w  d   \        VR4       \        P"                  ! WVW7VVP$                  VP                   VP&                  VP(                  VP*                  R8H  VR7      # )Fr  rM   structTNr  zUnnamed scoped enum not allowedr  r  r  )rT   rX  rY  rZ  r  r  rt   r+  r  zDEmpty enum definition not allowed outside a 'cdef extern from' blockr  )rT   r  scopedr  underlying_typer;   r9   create_wrapperr<   in_pxdr4  r)  )rR   rO   r  rN   rQ   r  r?   r   r  r|   r   r`  p_c_enum_liner  r2  r  r9   r  r;   r=   r<   r8   )	rH   rc   r/   r  rT   r  r  r  r4  s	   &&&      r*   p_c_enum_definitionr     s    FFHFyy}}}!$$'/addgo!**PXBX	ttwzz	A=S]]6MMD(4/EGG56!$$#+	'*	33"
 HHSME
Cttyae$		1odd++!%(	S^^x/cYZe'%%#..GGCII53@ @r-   c                0    V ^8  d   QhR\         R\        /# rG   rH   r  r  )rJ   s   "r*   rK   rK     s     
7 
7\ 
7t 
7r-   c                    V P                   R 8w  dO   \        WV4       V P                   R8X  d1   V P                  4        V P                   R9   d   M\        WV4       KA  MV P                  4        V P                  R4       R# )r  rX   zSyntax error in enum item listNr  )rN   p_c_enum_itemrR   r  )rH   r/   r  s   &&&r*   r  r    sd    ttv~ae$ddckFFHtt))!%(	  	
56r-   c                0    V ^8  d   QhR\         R\        /# r  r  )rJ   s   "r*   rK   rK     s     4 4\ 4t 4r-   c           	      V   V P                  4       p\        V 4      p\        V 4      pVf)   VP                  e   VP                  R,           V,           pR pV P                  R8X  d   V P                  4        \        V 4      pVP                  \        P                  ! VWEVR7      4       R # )Nr  rd  )rT   r  rf  )
rb   rU   r  r?   rN   rR   r}   rY   r   CEnumDefItemNode)rH   r/   r  rc   rT   r  rf  s   &&&    r*   r  r    s    
**,C1:DNE}2$t+Etts{	q		LL''E3 4r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   $  s     *L *Ll *Lr-   c                    R pV P                   R8X  dF   RpV P                  4        V P                  R8w  g   V P                   R8w  d   V P                  R4       V P                   pV P                  4        \	        V 4      p\        V 4      pVf)   VP                  e   VP                  R,           V,           pRpV P                  R8X  Ed%   V P                  4        . pV P                  R8X  d%   V P                  4        V P                  R	RR
7       MV P                  R4       V P                  4        \        VP                  R7      pV P                  R8w  d`   V P                  R8w  d,   VP                  \        W P                  4       V4      4       KM  V P                  4        V P                  R	4       Kp  V P                  4        V'       g   VP                  R8w  d   \!        VR4       MV P                  R4       \"        P$                  ! VWVWGVP&                  VP                  VP(                  VP*                  R8H  VR7
      # )FpackedTrM   r  Nr  rt   r  r  r  r+  )r9   r_  r  zOEmpty struct or union definition not allowed outside a 'cdef extern from' blockz*Syntax error in struct or union definitionr  )	rT   r  r  
attributesr;   r9   r<   r  r
  )rQ   rR   rN   r|  rU   r  r?   r  r|   r  r!   r9   rY   r  rb   r  r   r   r  r;   r<   r8   )	rH   rc   r/   r
  r  rT   r  r  r  s	   &&&      r*   p_c_struct_or_union_definitionr  #  s   FzzX	447?ajjH4JJx ::DFFH1:DNE}2$t+Jtts{	
446>FFH1DIHHYOOcnn5H$$("446>%%3Azz|XNP FFH$$%9:OOcnn8#hi	EF&&s4''cnngg		\ 9FL Lr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   R  s      <  <,  <r-   c                   VP                   R9  d   \        VR4       V P                  4        \        V 4      pV P	                  R4       V P                  4        V P                  4        . pV P                  R8w  dO   V P                  R8w  d   VP                  \        V 4      4       MV P                  4        V P                  4        K_  V P                  4        V'       g   \        VR4       \        P                  ! WVR7      # )z)
c(type)def fused my_fused_type:
    ...
z&Fused type definition not allowed herert   r_  r  zNeed at least one type)rT   typesr  )r8   r   rR   rU   r|   r  r  rN   rY   r  r  r   FusedTypeNode)rH   rc   r/   rT   r  s   &&&  r*   r  r  Q  s     yy00c;<FFH1:DHHSMOOE
$$(
446>LLq)*FFH	OOc+,sU;;r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   v  s     ; ;\ ;r-   c                 T    V P                   R 8X  d   \        WV4      # \        WV4      # )r  )rQ   r   r  r  s   &&&r*   r  r  u  s(    zzV"13//-ac::r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   ~  s      L r-   c                     TpV P                   R 8X  dW   V P                  R9   dF   V P                  pVR8w  d#   W!8w  d   V P                  RV: RV: R2RR7       V P                  4        V# )rM   r#   z Conflicting visibility options 'z' and 'r  Fr   )r  r  readonly)rN   rQ   r   rR   )rH   prev_visibilityr9   s   && r*   r  r  }  sa     Jttw1::)IIZZ
i'J,IGG"J07<  >	r-   c                0    V ^8  d   QhR\         R\        /# r]   r  )rJ   s   "r*   rK   rK     s      \ d r-   c                     V P                   R 8X  dA   V P                  R9   d0   V P                  pV P                  4        V.\        V 4      ,           # . # )rM   )r  )rN   rQ   rR   p_c_modifiers)rH   modifiers   & r*   r  r    sA    ttw1::4::	zM!,,,Ir-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     A A< Ar-   c                    VP                   R9   p\        V 4      p\        V RVP                  R7      p\	        W! VR7      VRRR7      pVP
                  Vn        V P                  R8X  d6   V P                  R8X  d%   VP                   R8X  d   V P                  4        RpMRpV P                  R	8X  d/   V P                  R
RR7       V P                  4        \        V 4       V P                  R8X  d   VP                   R9  d$   VP                  '       g   V P                  R4       \        V \        RR7      4      w  r\        P                  ! VVP                  VVV	VVVP                   VP
                  VR7
      p
V
# V'       d   Wvn        V.pV P                  R8X  dE   V P                  4        V P                  R8X  d   M"\	        WVRRR7      pVP%                  V4       KU  V P&                  ^,           pV P)                  RRR7       VP                   R9   d   V P&                  V8X  d   \+        V 4      pMRp\        P,                  ! VVP                  VVVP                   R9   VVP                   VVP
                  R7	      p
V
# )r	  TrD  )r  )r  r  rB  rM   rT  	cpp_classF->z~Return type annotation is not allowed in cdef/cpdef signatures. Please define it before the function name, as in C signatures.r   rt   z&C function definition not allowed herer  r   )	r9   r	  r
  r  r4  r  r<   r=   is_const_methodrX   r+  z&Syntax error in C variable declarationr  N)r9   r	  declaratorsr  r4  r<   r  r=   )r	  r  )rP  r	  r  r  r  )r  r  )r8   r  r  r@   r  r=   rN   rQ   rR   r   r}   r.  r!   r   r  r9   r<   r  rY   
start_liner  r2  r  )rH   rc   r/   r  r  r	  r
  r  r4  suiter   r   doc_lines   &&&          r*   r  r    s+    #		-G GLa Ia$CMMJI3#;L+/4AJ __Jttw1::0SYY+5M	ttt|	M 	 	 	
q	tts{99[[dgdqdqdqGG<=+As/DE
##C!#!''//-	/L M3 )8&!lddckFFHtty '|37$HJz*<<!#	ATXY9922q||x7Oq/CC""3!%YY"??''!//+ Mr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     0 0L 0r-   c           	      X   V P                  4       pV P                  4        \        WP                  4      p\	        V 4      pV! R VR7      pV'       d   R Vn        V P                  R8X  d   \        WV4      # V P                  R8X  d"   V P                  \        9   d   \        WV4      # V P                  R8X  d   V P                  R8X  d   \        WV4      # \        V R R7      p\        WR R R7      pV P                  RR R7       \        P                   ! W%VW4VP"                  R	8H  R
7      # )T)r;   r9   r  rM   r  r  )rv  rB  z"Syntax error in ctypedef statementr  r  )r	  r
  r9   r<   r  )rb   rR   r  r9   r  r<   rN   r  rQ   r  r  r  r  r  r  r   CTypeDefNoder8   )rH   r/   rc   r9   r<   r	  r
  s   &&     r*   r  r    s     **,CFFHa0J
(C
4j
9C
ttw#AC00	
QZZ+<<QS))	
QZZ72!!#..!!d3	#AD4H
	=PTU!!##YY,.	0 	0r-   c                0    V ^8  d   QhR\         R\        /# r]   r  )rJ   s   "r*   rK   rK     s      L T r-   c                     . pV P                   R 8X  de   V P                  4       pV P                  4        \        V 4      pVP	                  \
        P                  ! W#R7      4       V P                  R4       Ku  V# )r   )	decoratorz"Expected a newline after decorator)rN   rb   rR   r   rY   r   DecoratorNoder  )rH   r@  rc   r)  s   &   r*   r  r    s^    J
$$#+jjl	$Q'	%--cGH	=>r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      < r-   c                    V P                   R8X  d1   V\        9   d&   V P                  RV,          RR7       \        V 4      # V# )zqStep over incorrectly placed cdef modifiers (@see _CDEF_MODIFIERS) to provide a good error message for them.
    rM   zTCannot use cdef modifier '%s' in Python function signature. Use a decorator instead.Fr   )rN   r   r   rU   )rH   rT   s   &&r*   _reject_cdef_modifier_in_pyr-    s=     	ttw4?2	fimmuz{qzKr-   c                P    V ^8  d   QhR\         R\        R\        P                  /# )rG   rH   r@  r7  )r   r}  r_  r`  )rJ   s   "r*   rK   rK   
  s%     7 7| 7 7FKK 7r-   c                    V'       d   V^ ,          P                   MV P                  4       pV'       d   V P                  4        V P                  4        \	        V \        V 4      4      pT P                  RRV P                  R8X  d   V P                  MV P                  ,          4       \        V RR7      w  rVpV P                  R4       \	        W P                  4       RpV P                  R8X  d1   V P                  4        \        V 4      p\	        W P                  4       \        V \        RR	7      4      w  rV'       d   V P                  4        \        P                  ! W4WVVWWVR
7
      # )r   r  z~Expected '(', found '%s'. Did you use cdef syntax in a Python declaration? Use decorators and Python type annotations instead.rM   r  )ru   Nr  r  r   )	rT   rw   rx   ry   r4  r  r@  r7  return_type_annotation)rc   rb   enter_asyncrR   r-  rU   r|   rN   rQ   r{   r  r.  r!   
exit_asyncr   DefNode)rH   r@  r7  rc   rT   rw   rx   ry   r0  r4  r  s   &&&        r*   r=  r=  	  s     **Q-

qzz|C	FFH&q'!*5DHH	>$$'/AJJqtt	56
 $1s#C DLHHSM::.!ttt|	!-a#Azz2&q#J*?@IC	==T<z57 7r-   c                p    V ^8  d   QhR\         R\        P                  R\        P                  R\        /# )rG   rH   ru   rv   r^   )r   r_  rY  r`  r`   )rJ   s   "r*   rK   rK   +  s4     "* "*\ "*v~~ "*PVP[P[ "*gl "*r-   c           
      v   \        V R R VR7      pRpRpV P                  R8X  d   \        V4      ^ 8X  d   V P                  R4       V P	                  4        V F
  p^Vn        K  	  V P                  R8X  d0   V P	                  4        VP                  \        V R R VR7      4       M"V P                  V8w  d   V P                  R4       V P                  R8X  d   V P	                  4        V P                  R8X  d   \        WR	7      pV P                  R8X  d1   V P	                  4        VP                  \        V R R R VR
7      4       M"V P                  V8w  d   V P                  R4       V P                  R8X  d   V P	                  4        \        WR	7      pV P                  R8X  d   V P	                  4        W4V3# )T)r  r  rv   Nrh   zTGot zero positional-only arguments despite presence of positional-only specifier '/'rX   z-Syntax error in Python function argument listr   rM   )rv   )r  r  r  rv   rF  )r  rN   rk  r   rR   pos_onlyr  p_py_arg_decl)rH   ru   rv   rw   rx   ry   r  s   &&&    r*   r{   r{   *  s_   T$-/DHLtts{t9>GG 4 5	CCL 443;FFHKKT)U VTTZGGCDtts{	447?$Q<H443;FFHKKdtYbd eTTZGGCDttt|	$Q<tts{	L))r-   c                D    V ^8  d   QhR\         R\        P                  /# )rG   rH   rv   r^  )rJ   s   "r*   rK   rK   Q  s"     J J\ Jfkk Jr-   c                     V P                  4       p\        V 4      pR pV'       d-   V P                  R8X  d   V P                  4        \	        V 4      p\
        P                  ! W#VR7      # )Nrt   )rT   r  )rb   rU   rN   rR   r  r   PyArgDeclNode)rH   rv   rc   rT   r  s   &&   r*   r7  r7  P  sM    
**,C1:DJQTTS[	!!_
sjIIr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   \  s     ; ; ;r-   c                    V P                  4       pV P                  4        \        \        V 4      4      pV P                  Vn        R pR pV P                  R8X  d   \        V RR7      w  rg\        W&V4      w  rEVf   \        P                  ! V. R7      p\        V \        RR7      4      w  r\        P                  ! W#VVWVV P                  P                   ^8  R7      # )Nr  Fr]  rx  r  r   )rT   basesrn  r4  r  r@  force_py3_semantics)rb   rR   r   rU   r  r  rN   rs  r  r   r~  r.  r!   r   PyClassDefNoderO   r  )
rH   r@  rc   
class_namer  r  rm  rn  r4  r  s
   &&        r*   r  r  [  s     **,CFFHwqz*J++JILtts{(9!%(P%":3Q]"^	''"5	&q#G*<=IC!zII449; ;r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   t  s     I IL Ir-   c                 B   V P                  4        . p\        V 4      pV P                  R 8X  d/   V P                  4        VP                  V4       \        V 4      pK?  V'       d   VP                  R8w  d   \        VR4       V'       d?   V P                  R8X  d.   V P                  R8X  d   V P                  4        \        V 4      pMTpRpRpRpRp	V P                  R8X  d7   \        V RR7      w  rV'       d   V P                  R	4       \        WV4      w  rVf   \        P                  ! V. R
7      pV P                  R8X  dL   VP                  R9  d-   VP                  '       g   \        V P                  4       R4       \        V 4      w  rgp	V P                  R8X  d0   VP                  R8X  d   RpMRp\        V \!        VR7      4      w  rMV P#                  R4       RpRpVP                  R8X  d*   V'       g   \        VR4       V'       d   \        VR4       MVP                  R8X  d*   V'       g   \        VR4       V'       g   \        VR4       MiVP                  R8X  d<   VP                  '       d)   V'       g   \        VR4       V'       g   \        VR4       M\        VRVP                  ,          4       \$        P&                  ! VVP                  VP(                  VP                  R P+                  V4      VVVVVV	VP                  R8H  VVR7      # )rH  r  z6Qualified class name only allowed for 'extern' C classrM   rh  Nr  Fr=  z$C classes cannot take keyword bases.rx  rG  r  zBName options only allowed for 'public', 'api', or 'extern' C classrt   r  r  r	  r   z"Syntax error in C class definitionz)Module name required for 'extern' C classz?Type object name specification not allowed for 'extern' C classz>Object struct name specification required for 'public' C classz<Type object name specification required for 'public' C classr#   z;Object struct name specification required for 'api' C classz9Type object name specification required for 'api' C classzInvalid class visibility '%s')r9   r;   r<   r8  rA  r9  r>  objstruct_nametypeobj_name
check_sizer  r4  r  )r  r  )rR   rU   rN   rY   r9   r   rQ   rs  r  r   r~  r<   rb   p_c_class_optionsr8   r.  r!   r  r   r  r;   r  )rH   rc   r/   rX  rA  r9  rD  rE  r>  rF  rm  rn  ru  
body_levelr4  r  s   &&&             r*   r  r  s  st    FFHKJ
$$#+	:&QZ
s~~1cKLqttw1::+=	!*NLEJtts{(9!%(P%GG:;+C,O}##Cb1tts{>>!55cggg!**, de3DQ3G0jtts{99$&J"J*1c
.CD	T	=>
~~!#BC#XY	8	##WX#UV	9	$777!cXYcVWc2S^^CDs^^''gghh{+'#l* r-   c                0    V ^8  d   QhR\         R\        /# r]   r_   )rJ   s   "r*   rK   rK     s     4 4 4% 4r-   c                    R pR pR pV P                  R4        V P                  R8w  d   MV P                  R8X  d   V P                  4        \	        V 4      pMxV P                  R8X  d   V P                  4        \	        V 4      pMKV P                  R8X  d;   V P                  4        \	        V 4      pVR
9  d   V P                  RV,          4       V P                  R8w  d   MV P                  4        K  V P                  RR	4       WV3# )NrG  rM   objectr  rF  z/Expected one of ignore, warn or error, found %rrX   r  z)Expected 'object', 'type' or 'check_size')ignorewarnr   )r|   rN   rQ   rR   rU   r   )rH   rD  rE  rF  s   &   r*   rG  rG    s    NLJHHSM
447?::!FFH$QZNZZ6!FFH"1:LZZ<'FFH J!<<IJVW443;	HHS=>33r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     B B| Br-   c                     V P                  4       pV P                  4        \        V 4      p\        V \	        R R7      RR7      w  r4\
        P                  ! WW4R7      # )r
  r   Tr,  )rT   r4  r  )rb   rR   rU   r.  r!   r   PropertyNode)rH   rc   rT   r4  r  s   &    r*   r  r    sJ    
**,CFFH1:D&	3Z 6ICc#AAr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     	 	\ 	r-   c                    V P                   R8X  dF   V P                  4       p\        V 4      pV P                  RRR7       \        P
                  ! WR7      # R# )zG
Parses any kind of ignorable statement that is allowed in .pxd files.
r  zSyntax error in stringTr  r.  N)rN   rb   rK  r  r   r/  )rH   rc   string_nodes   &  r*   r  r    sL    
 	tt~jjlQi	1DI!!#88r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     
 
L 
r-   c                     V P                   R 8X  dI   V P                  4       p\        V 4      w  r#pV P                  RRR7       VR9   d   V# \	        VR4       V# R# )r  zSyntax error in doc stringTr  2Python 3 requires docstrings to be unicode stringsNr  )rN   rb   r  r  r   )rH   rc   r  bytes_resultunicode_results   &    r*   r2  r2    s^    tt~jjl-A!-D*N	5M9!!IJr-   c                $    V ^8  d   QhR\         /# ru  rv  )rJ   s   "r*   rK   rK     s       r-   c                   RpV f   EM	\        V \        P                  4      '       dL   V P                  P                  '       d/   V P                  p\        P
                  ! V P                  . R7      p M\        V \        P
                  4      '       d   V P                  '       dm   V P                  p\        V^ ,          \        P                  4      '       d:   V^ ,          P                  P                  '       d   V^ ,          P                  pV^  Vf   RpW03# \        V\        P                  4      '       d&   \        V P                  R4       VP                  pW03# VP                  pW03# )z
Extract a docstring from a statement or from the first statement
in a list.  Remove the statement if found.  Return a tuple
(plain-docstring or None, node).
Nr>  rV  )r  r   r/  r   is_string_literalrD  rc   r?  r   r  r   rf  )r  doc_noder?  r4  s   &   r*   r3  r3     s    H|	D%,,	-	-99&&&yyH%%dhhb9D	D%,,	-	-$***

eAh 2 233Qx}}... 8==!H 9 
Hi11	2	2D	Fnn 9 nn9r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   !  s      l r-   c                     \        W! VR 7      RR7      pV P                  R8w  dA   V P                  R\        V P                  4      : R\        V P                  4      : R24       V# )r   Tr  r-  Syntax error in statement [rX   r  )r  rN   r   r  rQ   )rH   r8   r/   r  s   &&& r*   p_coder`     sL    As514HDttu}	JQZZ(* 	+Kr-   z$^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$c                0    V ^8  d   QhR\         R\        /# r]   )r   r  )rJ   s   "r*   rK   rK   .  s     $ $\ $d $r-   c           
         / pV P                   R 8X  Ed   V P                  4       p\        V P                  4      pV'       Ed@   VP	                  ^4      P                  4       p \        P                  ! VRR7      pT F  pYq9  d   K  \        P                  P                  T4      \        J d'   Y;;,          YW,          ,          uu&   Y,          YW&   KX  YW,          Y,          8X  d   \        TRT: 24       K}  T P                  RT: RY,          : R	YW,          : 2TR
7       K  	  RT9   d#   T P                   P#                  TR,          4       RT9   d   TR,          T P                   n        TP'                  T4       V P                  4        EK  V#   \         dA   pT P                  TP                  ^ ,          RR7       T P                  4         Rp?EK  Rp?ii ; i)commentlineT)ignore_unknownFr   NzDuplicate directive found: z3Conflicting settings found for top-level directive : r7  rc  r  legacy_implicit_noexcept)rN   rb   !_match_compiler_directive_commentrQ   grouprf  r   parse_directive_list
ValueErrorr   rw   rR   directive_typesr  r}  r   rO   set_language_levelrf  r'   )rH   r   rc   mdirectives_stringnew_directiveserT   s   &       r*   p_compiler_directive_commentsrq  -  sy   F
$$-
jjl-ajj91 !
 0 0 2!(!=!=>O`d!e '%,,006$>LN$88L+1<N(#)V\9CD!JKGGfllN,@BGJ  L '  >1		,,^<L-MN)^;5CD^5_		2 MM.)	M7  q	/s   #F G""4GG"c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   V  s     ? ? ?r-   c                    V P                  4       p\        V 4      pR V n        V P                  P                  f   V P                  P                  R4       V'       d   RMRp\        V 4      p\        W! VR7      RR7      pV P                  R8w  dA   V P                  R\        V P                  4      : R	\        V P                  4      : R
24       \        WGVVVR7      # )F3r  rP  r   Tr  r-  r_  rX   r  )r4  r  full_module_namedirective_comments)rb   rq  r  rO   r  rl  r2  r  rN   r   r  rQ   r   )	rH   r5  ru  r/   rc   rv  r8   r4  r  s	   &&&&     r*   p_modulerw  U  s    
**,C6q9Ayy'			$$S)LXE
q/CAs/FDttu}	JQZZ(* 	+cT)9+=? ?r-   c                0    V ^8  d   QhR\         R\        /# r]   r_   )rJ   s   "r*   rK   rK   k  s      \ e r-   c                     \        V 4      pV P                  R 8X  d(   V P                  R 4       V P                  R4       RpW3# RpW3# )rd  r   FT)rU   rN   r|   )rH   rT   requireds   &  r*   p_template_definitionr{  j  sJ    1:Dtts{		 > >r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   w  s     < <l <r-   c                    V P                  4        \        V 4      p\        V 4      pVf)   VP                  e   VP                  R,           V,           pV P                  R8X  d   \        VR4       V P                  R8X  d   V P                  4        \        V 4      .pV P                  R8X  d-   V P                  4        VP                  \        V 4      4       K=  V P                  R4       V UUu. uF  w  rgVNK	  	  pppMR pR pV P                  R8X  dn   V P                  4        \        WR7      .p	V P                  R8X  d.   V P                  4        V	P                  \        WR7      4       K>  V P                  R	4       M. p	V P                  R8X  d   \        V P                  4       R
4       \        V 4      p
V P                  R8X  d   V P                  4        V P                  R4       V P                  4        \        V 4       . p\        VP                  RT
;'       g    VP                   R7      pWn        V P                  R8w  dQ   V P                  R8w  d   VP                  \%        W4      4       K>  V P                  4        V P'                  R4       Ka  V P)                  4        MR pV P'                  R4       \*        P,                  ! VVVV	VP                  VP.                  R8H  VVR7      # u uppi )Nr  rH  z*Qualified class name not allowed C++ classrG  rX   r  r  r7  r  z&Name options not allowed for C++ classrt   r+  r  )r9   r8   r>   r_  r  r  z$Syntax error in C++ class definitionr  )rT   r  base_classesr9   r  r  r@   )rR   rU   r  r?   rN   r   r{  rY   r|   r  rb   r  r  r2  r!   r9   r>   r@   p_cpp_class_attributer  r  r   CppClassNoder8   )rH   rc   r/   rA  r  r@   rT   rz  template_namesr~  r>   r  r  s   &&&          r*   r  r  v  sG    FFHJNE}2$z1tts{c?@tts{	*1-.	ddckFFH2156	5>?Y>4$Y?	tts{	%aDEddckFFHa LM	tts{ajjlDEAJEtts{			 	Q
CNN+UM_M_VYV_V_`+ddhttv~!!"7"DE  !56	
	?@c#^^l* K @s   0K6c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      \ r-   c                    V P                  4       pR pV P                  R8X  d   \        V 4      pV P                  R8X  d   \	        WV4      # V P                  R8X  d   \        W4      # V P                  R8X  d?   V P                  \        9   d*   V P                  R8w  d   \	        WV4      # \        WV4      # \        WV4      pVe   \        P                  \        P                  \        P                  3pVP                  '       d(   V\        P                  \        P                  3,          p\!        WE4      '       g   V P#                  R4       W4n        V# )Nr   rQ  r  rM   r  r8  )rb   rN   r  rQ   r  r  r  r  r  r   r  r  r  rA   r  r  r  r   r@  )rH   r/   rc   r@  r  r"  s   &&    r*   r  r    s   
**,CJtts{!!_
zzZ%ac22	
z	!#A++	
QZZ+<<::)!#66 --*137!$$e&7&79L9LLC...u22E4F4FFFd((QR(Or-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     G G Gr-   c                 $   V P                   R 8X  d   V P                  R8X  g   Q hV P                  4       p\        V 4      ;_uu_ 4       pV P	                  4        \        V 4      pRpV P                   R8X  d   V.pV P                   R8X  d?   V P	                  4        V P                   R8X  d   MVP                  \        V 4      4       KO  Ve   \        P                  ! W%R7      pV P                  R4       RRR4       X'       d   R# V P                  4        V P                  4        . pV P                   R8w  d   VP                  \        W4      4       K-  V P                  4        \        P                   ! VXVR7      #   + '       g   i     L; i)rM   r  NrX   rt   rx  r_  )subjectcases)rN   rQ   rb   r   rR   r   rY   r}   r   r~  r|   r  r  p_case_blockr  r   	MatchNode)rH   r/   rc   r  r  subjectsr  s   &&     r*   r!  r!    s"   447?qzzW444
**,C	!			"1%443;yHddckFFHtts{OOF1I&))#=G	 
  OOE
$$(
\!)*OO##CFF7 
	s   B-E??F	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     V VL Vr-   c                 `   V P                   R 8X  d   V P                  R8X  g   V P                  R4       V P                  4        V P	                  4       p\        V 4      pRpV P                   R8X  d   V P                  4        \        V 4      p\        W4      p\        P                  ! W#WTR7      # )rM   caseNr   )r  r  guard)
rN   rQ   r|  rR   rb   
p_patternsr}   rv  r   MatchCaseNode)rH   r/   rc   r  r  r  s   &&    r*   r  r    s    DDGO

f 4	

6FFH
**,CmGEttt|	q	1?D''4UUr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      , r-   c                     . pR pV P                  4       p \        V 4      ;_uu_ 4       p\        V 4      pRRR4       X'       dH   V'       d   MV^ ,          pV P                  VP                  ^,          VP                  ^ ,          R7       VP                  X4       V P                  R8X  d'   RpV P                  4        V P                  R9   d   MK   V'       d   \        P                  ! W1R7      # V^ ,          #   + '       g   i     L; i)FTNrc  rX   patterns)rt   r   )
rb   r   p_maybe_star_patternr   rw   rY   rN   rR   r   MatchSequencePatternNode)rH   r  seqrc   r  r  rp  s   &      r*   r  r    s     H
C
**,C
a  F*1-G !1Iq	qvvay1 443;CFFHtt{" # 
66sNN{+ ! s   C==D	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   $  s      L r-   c                    V P                   R 8X  di   V P                  4        RpV P                  R8w  d   \        V 4      pMV P                  4        \        P
                  ! V P                  4       VRR7      pV# \        V 4      pV# )r   Nru  T)r  is_star)rN   rR   rQ   p_pattern_capture_targetr   MatchAndAssignPatternNoderb   	p_pattern)rH   r  r  s   &  r*   r  r  #  sn     	tts{	::-a0FFFH ::JJL
 A,r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   8  s          r-   c                    . pV P                  4       p VP                  \        V 4      4       V P                  R8w  d   MV P	                  4        K?  \        V4      ^8  d   \        P                  ! VVR7      pM	V^ ,          pV P                  R8X  Ed'   V P                  R8X  Ed   V P	                  4        \        V 4      ;_uu_ 4       pVP                  P                  \        V 4      4       RRR4       X'       dj   V P                  R8X  dY   V P	                  4        \        P                  ! V^ ,          P                  ^ ,          V^ ,          P                  ^,          R7      # V'       dL   \        V 4      ;_uu_ 4        \        V 4      p\        P                  ! VP                   RR7      uuRRR4       # V#   + '       g   i     L; i  + '       g   i     M; iT P#                  T^ ,          4       LA)	Tr   )alternativesrM   rh  Nru  whatzInvalid pattern target)rb   rY   p_closed_patternrN   rR   rk  r   OrPatternNoderQ   r   
as_targetsr  r   	ErrorNoderw   r}   rc   r   )rH   r  rc   r  r  r   s   &     r*   r  r  7  sV    H
**,C
(+,443;	
8}q ..!

 1+ttw1::-	a  F%%&>q&AB !addckFFH??6!9>>!#46!9>>!;LMM!!$$aytxx6NO %$ N !  %$ GGF1Is   %F>-G>G	G!	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   \  s     . . .r-   c                   V P                   R8X  dH   V P                  R8X  d7   V P                  4       pV P                  4        \        P
                  ! V4      # V P                   R8X  d   \        V 4      # V P                   R8X  d   \        V 4      # V P                   R8X  dH   \        V 4      ;_uu_ 4       p\        V 4      pV'       g   VuuRRR4       #  RRR4       \        V 4      # \        V 4      ;_uu_ 4       p\        V 4      pV'       g   VuuRRR4       #  RRR4       \        V 4      ;_uu_ 4       p\        V 4      pV'       g   VuuRRR4       #  RRR4       \        V 4      ;_uu_ 4       p\        V 4      pV'       g   VuuRRR4       #  RRR4       \        V 4      #   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L}; i  + '       g   i     LT; i)a  
The PEG parser specifies it as
| literal_pattern
| capture_pattern
| wildcard_pattern
| value_pattern
| group_pattern
| sequence_pattern
| mapping_pattern
| class_pattern

For the sake avoiding too much backtracking, we know:
* starts with "{" is a sequence_pattern
* starts with "[" is a mapping_pattern
* starts with "(" is a group_pattern or sequence_pattern
* wildcard pattern is just identifier=='_'
The rest are then tried in order with backtracking
rM   ru  r  rG  r  N)rN   rQ   rb   rR   r   r  p_mapping_patternp_sequence_patternr   p_group_patternp_literal_patternp_capture_patternp_value_patternp_class_pattern)rH   rc   r  r   s   &   r*   r  r  [  sl   ( 	ttw1::,jjl	77<<	
 ##	
!!$$	
a  F$Q'F !  ! "!$$	!		"1% 
	 
 
!		"1% 
	 
 
!		 # 
	 
 1% !  
	 
	 
	s0   5F(<F;8G4G!(F8	;G	G	!G1	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ?' ?' ?'r-   c           
      8   R pRpV P                   R8X  d/   V P                   pV P                  4       pV P                  4        RpV P                   pV P                  4       pRpVR8X  d   \        V 4      pM:VR8X  d4   V P                  pV P                  4        \
        P                  ! WWR7      pVe    VR8X  d   \
        P                  ! XVR7      pVe   V P                   R9   d   V P                   pV P                  4        V P                   R	8w  d   V P                  R
4       MmV P                  4       pV P                  RR pV P                  4        \
        P                  ! VVV\
        P                  ! V P                  4       VR7      R7      pVfd   VR	8X  d]   V P                  RR pV P                  4        \
        P                  ! WRV,           R7      pVR8X  d   \
        P                  ! XVR7      pVe   \        P                  ! WVR7      # V'       d   V P                  R4       VR8X  d#   \        V 4      p\        P                  ! WVR7      # VR8X  d,   \        V 4      p	V	'       d   \        P                  ! WYRR7      # V P                  R4       R# )Fr  r   TNr  r  re  r   r  zExpected imaginary number)r   r   zExpected a numberr  rM   )rf  is_is_checkzFailed to match literalr   rg  )rN   rb   rR   r  rQ   r   r  UnaryMinusNoder   ri   r  r   MatchValuePatternNoder  r  )
rH   next_must_be_a_numbersignsign_posrN   rc   resrf  add_posr   s
   &         r*   r  r    s    "Dtts{tt::<	 $	
B
**,C
C	U{A	w

	!!#3
43;&&x=
144:-tt	446>GG/0jjlGJJsOEFFH&&"++AJJLF	C {rV|

3B	  J73;**8SAC
33CCC	#$	^A33CCC	w (*!77W[\\GG%&r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s       r-   c                 `    \         P                  ! V P                  4       \        V 4      R 7      # ))r  )r   r  rb   r  r   s   &r*   r  r    s&    33	

'* r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     @ @| @r-   c                 4   V P                   R 8w  d   V P                  R4       V P                  4       p\        W P                  4      pV P                  4        V P                   R8w  d   V P                  R4       V P                   R8X  dF   V P                  4       pV P                  4        \        V 4      p\        P                  ! W2VR7      pKV  V P                   R9   d#   V P                  RV P                   ,          4       \        P                  ! WR7      # )rM   Expected identifierrH  rV  zUnexpected symbol '%s're  )r  rd  )rN   r   rb   r  rQ   rR   rU   r   rZ  r   r  )rH   rc   r  attr_posattrs   &    r*   r  r    s    ttw	%&
**,C
JJ
CFFHtts{	
$$#+::<	qz%%h4Httz	(144/0//??r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s      | r-   c                 `    V P                  R 4       \        V 4      pV P                  R4       V# )r  r  )r|   r  )rH   r  s   & r*   r  r    s&    HHSMlGHHSMNr-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     ' ', 'r-   c                    V P                   pV P                  4       pVR	9   d   VR 8X  d   RMRpV P                  4        . pV P                   V8w  dg   VP                  \	        V 4      4       V P                   R8X  d   V P                  4        KN  VR8X  d"   \        V4      ^8X  d   V P                  R4        V P                  V4       \        P                  ! W$R7      # V P                  R4       R# )
rG  r  r  r  rX   z3tuple-like pattern of length 1 must finish with ','r  zExpected '[' or '('Nr  )
rN   rb   rR   rY   r  rk  r   r|   r   r  )rH   openerrc   closerr  s   &    r*   r  r    s    TTF
**,C#3	ddfnOO034tts{S=S]a%7GGQR	66sNN	%&r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK     s     + + +r-   c           	         V P                  4       pV P                  R 4       V P                  R8X  d'   V P                  4        \        P
                  ! V4      # Rp. pRpV P                  R8w  d   V'       d   V'       g   V P                  4       pV P                  R8X  d   V P                  4        \        V 4      pM\        V 4      ;_uu_ 4       p\        V 4      pVP                  pRRR4       X'       d   \        V 4      pVP                  pV P                  R4       \        V 4      pVP                  XV34       V P                  R8w  d   MV P                  4        EK  V P                  R4       Ve   \        P                  ! VRR7      # \        P
                  ! TV U	u. uF  q^ ,          NK  	  up	V U	u. uF  q^,          NK  	  up	VR7      #   + '       g   i     L; iu up	i u up	i )	r  re  NrF  rt   rX   z7** pattern must be the final part of a mapping pattern.r  )keysvalue_patternsdouble_star_capture_target)rb   r|   rN   rR   r   MatchMappingPatternNoder  r   r  rf  r  r  rY   r   r  )
rH   rc   r  items_patternsstar_star_arg_posr  r  rz  rf  kvs
   &         r*   r  r  
  s   
**,CHHSMtts{	55c::!%N
$$#+%.? !

444<FFH)A!)D& "!$$+A.mm % )!,mmHHSMaLE!!3,/443;	HHSM$L
 	
 11 ./"1/*89.BQ%%.9%?	 ' %$* 09s   G%G)
<G.G&	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   :  s     . .| .r-   c                    V P                  4       p\        W P                  4      pV P                  4        V P                  R 8X  dF   V P                  4       pV P                  4        \        V 4      p\        P                  ! W2VR7      pKV  TpV P                  R4       V P                  R8X  d(   V P                  4        \        P                  ! WR7      # . p. pRpV P                  R8w  d   \        V 4      ;_uu_ 4       p	VP                  \        V 4      4       RRR4       X	'       g   V'       d   V P                  4       pM6\        V 4      ;_uu_ 4       p	VP                  \        V 4      4       RRR4       V P                  R8w  d   MV P                  4        K  V P                  R4       Ve   \        P                   ! VRR7      # \        P                  ! YTV U
u. uF  q^ ,          NK  	  up
V U
u. uF  q^,          NK  	  up
R	7      #   + '       g   i     L; i  + '       g   i     L; iu up
i u up
i )
rH  rV  r  r  )class_NrX   z+Positional patterns follow keyword patternsr  )r  positional_patternskeyword_pattern_nameskeyword_pattern_patterns)rb   r  rQ   rR   rN   rU   r   rZ  r|   r   ClassPatternNoder   rY   r  p_keyword_patternr   r  )rH   rc   r  r  r  r  r  keyword_patternskeyword_patterns_errorr  r  s   &          r*   r  r  9  s    **,C
JJ
CFFH
$$#+::<	qz%%h4HFHHSMtts{	..sBB !
$$#+a  F&&y|4 !)*&!!$$ ''(9!(<= %443;	HHSM)">
 	
 **11A B1A2A1A B4D#E4DbqEE4D#E	 % !  %$ !C#Es$   HH%"H89H=H"	%H5	c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   l  s       r-   c                     V P                   R 8w  d   V P                  R4       \        W P                  4      pV P	                  4        V P                  R4       \        V 4      pW3# )rM   r  rd  )rN   r   r  rQ   rR   r|   r  )rH   r  rf  s   &  r*   r  r  k  sM    ttw	%&
JJ
CFFHHHSMaLE:r-   c                $    V ^8  d   QhR\         /# rF   rI   )rJ   s   "r*   rK   rK   w  s     
 
 
r-   c                 >   V P                   R 8w  d   V P                  R4       V P                  R8X  d   V P                  R4       \        W P                  4      pV P	                  4        V P                   R9   d#   V P                  RV P                   ,          4       V# )rM   r  ru  z$Pattern capture target cannot be '_'zIllegal next symbol '%s')rH  r  rd  )rN   r   rQ   r  rR   )rH   r  s   & r*   r  r  v  ss     	ttw	%&zzS	67Azz"FFFHtt	*QTT12Mr-   c                8    V ^8  d   QhR\         P                  /# )rG   r8   )r_  r  )rJ   s   "r*   rK   rK     s     " "V[[ "r-   c                    R V,          pV P                  V4       V'       d   V P                  V R24       V'       g   V P                  R4       R# \        V4      \        J d`   V P                  RV^ ,           RV^,           R24       VR,           F  p\        WV^,           4       K  	  V P                  V R24       R# \	        V\
        P                  4      '       d    VP                  pV P                  V RVP                   R24       \        VP                  P                  4       4       F+  w  rxVR8w  g   K  VR	8w  g   K  \        WV^,           V4       K-  	  R# \        V4      \        J dD   V P                  R
4       V F  p\        WV^,           4       K  	  V P                  V R24       R# V P                  V V R24       R#   \         d    TP                  P                  p ELi ; i)z  re  zNone
r  z @ r,  r  z)
tagrc   z[
z]
N)writer  r`   print_parse_treer  r   Noder  rU  r  r4   rc   r<  r&   r  r}  )	r  r  r8   rz  indr  r  rT   rf  s	   &&&&     r*   r  r    s   e|CGGCL
	3%r
		du		!DG9CQy+,HHDQeAg. 	3%s	D%**	%	%	*((C 	
3%s488*B'(!$--"5"5"78KDu} 57D9 9 
dt		DQeAg. 	3%s	3%vR !  	*..))C	*s   %G !G98G9r3   )r  r>   r<   )r  r+  r-  )zExpected an identifier)
r   r  ==>=<=r   r   r   r   r   )T)NN)r  r%   )r  r  re  rt   rd  r+  r-  )F)r   )TF)r   r  r  r  )FN)	__stdcall__cdecl
__fastcall)voidcharr  r  doubler`  )r   r   )rG   r   )r  r   )r  r  rZ  r  )r  unionr  r
  )r   r   r   rh   r   z++z--r   r   r   r   r   r   rX   r  r   r  r  r  r   r  r  r^  rd  r  )r   rF  r  r  rt   rh   )FFFT)NF)r  T)r_  r  rK  r`   r  ior   r   unicodedatar   r	   	functoolsr   r   Scanningr   r   r   r  r   r   r   r   r   r   r   r   Errorsr   r   r   r   r
   r   r   r"  r!  r!   cfuncrU   r[   re   rq   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+  r1  rA  r   rJ  rL  rs  r  rR  rY  r  r  r  r  r  ccallr  rK  r  r  r  r  r  r  r  r$  r2  r?  r  rT  rw  rl  rF  r.  r  r  r  r  r  r  r  r  r  r'  rh  r  rl  r  r  r  r   r  r  r  r  r!  r%  r)  r2  rH  r_  rS  r@  rb  rm  rs  rq  rr  r|  r>  r  r  r  r  r  r  r  r  r  r  r  r?  r  r  r  r  r  r  r  r  r&  r  rv  r.  r?  r  rJ  rI  rE  rF  rP  rN  rO  rq  r  r[  r_  r^  r\  r  rt  r  r]  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r-  r=  r{   r7  r  r  rG  r  r  r2  r3  r`  compiler  rg  rq  rw  r{  r  r  r!  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r3   r-   r*   <module>r     s     BV Bv BV B#B4:B$*B?EB B '-B 5;B EKB 	B +1	B 9?	B JP	B Y_	B
 B
 39B
 W]B B '-B  %B =AB  	 4 % J J      8 " 0 0    -y) = 3   0          ( 
 
    * tT51 4 4
$ 5 5   
 
   # # 
 
    ( 	9 6 ,  / / / / 1 1 7 7 / / A A  
  (  >  ( K` 5 5, ? ? F F,  ( F F 
' 
', /1 /1d '# '#T 
Z 
Z"  * 	" 	"          1 1 )5 )5X 1 1.  , 2 2@ . . " "J 0, 0,f 7 7    :    K. K.\ # # j jX & &P ) ) &( &(` / /<   ( (  , jZ jZ\ 3 3            
 
 B B >>)Y 8/ .0 1  0 0 2 2 0W 0Wf , ,8 . .8 / / # # $ $ ' ' 4 4 * *: 0 0@ M M`     
R 
R   
B 
B 
< 
< ' '   	# 	# ( ( ) )X 7 7   ~~i < 2        e e 2 28 0 0> ' '*     @ 
 
 e e: D D2      F ! ! !H   # #  8 vX vX vXr 6 6 6$ !$ B B B   . 6) 6) 6)r O O O ! ! ">>)Y @* 6+ ,    : _ _ _D  4  ,  " J J ' 'T C C
 	 	 ^^Iy :6 07 8  t66666666
. 
  !..I ?+ 5, -  %&'(  NN9i 9) /* +       *-%(-ein-2E=B" " "J I I i i2 "(	9 F < "  O Od     A* A*H  	9 >% 4& '  (+*/U5:SX*.  &   3 3 3l 	4 	4   &8 &8R - - # #4 <@ <@~ 
7 
7 4 4 *L *LZ  <  <F ; ;     A AH 0 04     7 7 7@ "* "* "*J J J J ; ;. I IX 4 44 B B 	 	 
 
  > "&C    %+NN62::+<--2U%4 ! $ $N 9< ? ? ?(   < <~  4 G GB V V  >  &    F . .b ?' ?'D   @ @$   ' ', + +\ . .b   
 
( " " "r-   