+
     BiM                     ^   ^ RI t ]! ^4      w  ttttt] P                  ! R] P                  ] P                  ,          4      P                  t] P                  ! R] P                  4      P                  t] P                  ! R] P                  ] P                  ,          4      P                  t] P                  ! R] P                  4      P                  t] P                  ! R] P                  4      P                  t] P                  ! R] P                  4      P                  t ! R R	]4      t]P+                  ]! ^4      ^x4      t]P/                  R
 R 4       4       ]P/                  R R 4       4       ]P/                  R R 4       4        ! R R4      t]R8X  d   ^ RIHt ]! R^R7       R# R# )    Nz
    ^
    [ \t]*
    (?: while
    |   else
    |   def
    |   return
    |   assert
    |   break
    |   class
    |   continue
    |   elif
    |   try
    |   except
    |   raise
    |   import
    |   yield
    )
    \b
z'
    [ \t]*
    (?: \# \S .* )?
    \n
aK  
    \""" [^"\\]* (?:
                     (?: \\. | "(?!"") )
                     [^"\\]*
                 )*
    (?: \""" )?

|   " [^"\\\n]* (?: \\. [^"\\\n]* )* "?

|   ''' [^'\\]* (?:
                   (?: \\. | '(?!'') )
                   [^'\\]*
                )*
    (?: ''' )?

|   ' [^'\\\n]* (?: \\. [^'\\\n]* )* '?
zM
    [ \t]*
    [^\s#\\]    # if we match, m.end()-1 is the interesting char
z_
    \s*
    (?: return
    |   break
    |   continue
    |   raise
    |   pass
    )
    \b
z
    [^[\](){}#'"\\]+
c                   &   a  ] tR t^ft o R tRtV tR# )ParseMapc                    ^x# )x    )selfkeys   &&&/usr/lib/python3.14/idlelib/pyparse.py__missing__ParseMap.__missing__r   s        r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r
   r   r   f   s      r   r   c              #   N   "   T F  p\        V4      \        R 4      3x  K  	  R# 5i)(Nord.0cs   & r
   	<genexpr>r   x        /Ac!fc#h   #%z({[c              #   N   "   T F  p\        V4      \        R 4      3x  K  	  R# 5i))Nr   r   s   & r
   r   r   y   r   r   z)}]c              #   N   "   T F  p\        V4      \        V4      3x  K  	  R # 5iNr   r   s   & r
   r   r   z   s     2z!c!fc!fzr   z"'\
#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R tRtV tR# )Parserc                    Wn         W n        R # r#   )indentwidthtabwidth)r   r'   r(   s   &&&r
   __init__Parser.__init__   s    & r   c                     Wn         ^ V n        R# r   N)codestudy_level)r   ss   &&r
   set_codeParser.set_code   s    	r   c                \   V P                   R r2\        V4      p\        ^4       F}  pVP                  R^ V4      pV^ 8  d    MbVP                  R^ V4      ^,           p\	        W&V4      pV'       d/   V! VP                  4       4      '       g   VP                  4       p MTpK  	  VfB   \	        V4      pV'       d-   V! VP                  4       4      '       g   VP                  4       pV# V^,           p\	        W&4      ;p'       d'   VP                  4       w  rV! V4      '       d   K5  TpK9  V# )Nz:

)r-   lenrangerfind_synchrestartspan)	r   is_char_in_stringr-   poslimittriesimr/   s	   &&       r
   find_good_parse_startParser.find_good_parse_start   s    IItc
 D	1XE

5!U+A1u

4A&*A%(A*177955ggiE  ; A*177955ggiJ !GD$$a$668DA$Q''
r   c                @    V^ 8  d   V P                   VR V n         R# R# r,   )r-   )r   los   &&r
   set_loParser.set_lo   s!     6		"#DI r   c                   V P                   ^8  d   R# ^V n         V P                  pVP                  \        4      pVP	                  RR4      pVP	                  RR4      pVP	                  RR4      pVP	                  RR4      pVP	                  RR4      p\
        p^ ;r4^ .;V n        pVP                  p^ \        V4      rWx8  Ed   W,          p	V^,           pV	R8X  d   K!  V	R8X  d   V^,           pV^ 8X  d	   V! V4       KB  V	R8X  d   V^,           pKT  V	R	8X  d   V'       d
   V^,
          pKn  V	R
8X  g   V	R8X  d   T	p
W^,
          V^,            V
^,          8X  d
   V
^,          p
Tp\        V
4      ^,
          pW|,           pWx8  d   W,          p	V^,           pV	R8X  d   K   W^,
          W|,            V
8X  d
   W|,           pMnV	R8X  d#   V^,           pV^ 8X  d   V^ 8X  d	   V! V4       MGKh  V	R8X  g   Kq  W,          R8X  d
   V^,           pV^,           pK  V^,
          V8X  d   \        pM\        pEKq  V	R8X  d   VP                  RV4      pEK  W,          R8X  d   V^,           pV^,           V8X  d   \        pV^,           pEK  V\        8w  d   V\        8w  d   V^ 8  d   \        pW n        VR,          V8w  d   V! V4       R# R# )   Nxxxxxxxxxxxxxxxz
xr3   r   r!   "'\#)r.   r-   	translatetransreplaceC_NONE	goodlinesappendr4   C_STRING_FIRST_LINEC_STRING_NEXT_LINESfindC_BACKSLASH	C_BRACKETcontinuation)r   r-   r\   levellnorU   	push_goodr>   nchquotefirstlnows   &            r
   _study1Parser._study1   s    q  yy~~e$||J,||FC(||D#&||D#&||E4( &'S($$	#d)1eB!A SyTzAgA:cNSy	Sy!AIESyB#I!AaC=EAI-!AIEJNCeB!ASy aC}-CTz!Ag6$z )#! Tz7d?"%'CaC  aH, (;':SyIIdA& w$AgQ3!8#.L!A
 // 33	$L(
 R=CcN  r   c                :    V P                  4        V P                  # r#   )re   r\   r   s   &r
   get_continuation_typeParser.get_continuation_typeK  s       r   c                   V P                   ^8  d   R# V P                  4        ^V n         V P                  V P                  r!\	        V4      ^,
          p\	        V4      pV'       dg   Tp\        W#^,
          ,          W#,          4       F$  pVP                  R^ V^,
          4      ^,           pK&  	  \        W4      '       d   V^,
          pKm   V^ 8X  d   TpVXuV n        V n	        Rp. pVP                  p	V^ 3.p
WE8  Ed   \        WV4      pV'       dP   VP                  4       pV^,
          pW48  d   W,          R9   d   V^,
          pK  W48  d	   W,          pTpWE8  d   EMzW,          pVR9   d2   V	! V4       V
P                  V\	        V4      34       TpV^,           pK  VR9   d5   V'       d   VR
 TpV^,           pV
P                  V\	        V4      34       K  VR8X  g   VR8X  d_   V
P                  V\	        V4      ^,           34       Tp\        WV4      P                  4       pV
P                  V\	        V4      34       EKQ  VR	8X  d\   V
P                  V\	        V4      ^,           34       VP                  RWE4      ^,           pV
P                  V\	        V4      34       EK  V^,           pW,          R8w  d   WV,          ,           pV^,           pEK  Wpn        V'       d
   VR
,          MRV n        \#        V
4      V n        R# )   Nr3     	
([{)]}rL   rM   rO   rP   )r.   re   r-   rU   r4   r5   r6   _junkre
stmt_startstmt_endrV   _chew_ordinaryreend_match_stringrerY   lastchlastopenbracketpostuplestmt_bracketing)r   r-   rU   r>   pqnothingrw   stack
push_stack
bracketingr?   newpra   s   &             r
   _study2Parser._study2O  s   & q  ))T^^i	NQI A Q3>JJtQ!,q0 ?
   aC6 A)*A& \\
!fX
e !,Auuw1HfG!3!A6!WF6BU{1!!1c%j/2aCU{b	aC!!1c%j/2SyB#I !!1c%jl"34#DQ/335!!1c%j/2Sy!!1c%jl"34IIdA)A-!!1c%j/2 !Aw$1g!A /4%)$$Z0r   c                   V P                  4        V P                  pV P                  p\        V4      pVP	                  R ^ V4      ^,           ;rEV^,           pW8  dJ   \        W!4      pV'       d   VP                  4       ^,
          p^ pMCVP                  R V4      ^,           ;rQKO  T;rW!,          R9   d   V^,           pK  V P                  p\        W%V P                  V P                  4      4      V,           # )r3    	)r   rx   r-   r4   r6   _itemreru   rY   r'   
expandtabsr(   )r   jr-   r`   origir>   r?   extras   &       r
   compute_bracket_indentParser.compute_bracket_indent  s    
 	##yyIJJtQ*Q..aCe AEEGaK 		$*Q..A MA'U"aC$$E4!9''67%??r   c                h    V P                  4        V P                  pVR,          VR,          ,
          # )rG   rP   )re   rU   )r   rU   s   & r
   get_num_lines_in_stmtParser.get_num_lines_in_stmt  s)     	NN	}y},,r   c                Z   V P                  4        V P                  pV P                  pW,          R 9   d   V^,           pK  TpVP                  RV4      ^,           p^ ;rVW$8  d   W,          pVR9   d   V^,           pV^,           pK)  VR9   d   V'       d
   V^,
          pV^,           pKL  VR8X  g   VR8X  d   \	        WV4      P                  4       pKv  VR8X  d   MKV^ 8X  d:   VR8X  d3   V^ 8X  g   W^,
          ,          R9  d   W^,           ,          R8w  d   ^pMV^,           pK  V'       d%   V^,           p\        P                  ! R	WV 4      R
J pV'       g   TpW,          R9  d   V^,           pK  \        WP                  V P                  V P                  4      4      ^,           # )r   r3   ro   rp   rL   rM   rO   =z=<>!z\s*\\Nrn   )r   r-   rr   rY   rv   ru   rematchr4   r   r(   )r   r-   r>   startposendposfoundr]   ra   s   &       r
   compute_backslash_indentParser.compute_backslash_indent  s{    	yyOOg!A 4*Q.jBU{	aCu!AIEaCsbCi#DV488:s !c	FdQ3iv5!9#aC !AHHXtf~6$>E A'(aC4*55%)]]4 5789 	9r   c                    V P                  4        V P                  V P                  r!TpV P                  pW28  d   WC,          R 9   d   V^,           pK  WAV # )r   )r   rr   rs   r-   )r   r>   r`   r   r-   s   &    r
   get_base_indent_stringParser.get_base_indent_string,  sK     	1yye5(AAayr   c                @    V P                  4        V P                  R 8H  # ):)r   rw   rh   s   &r
   is_block_openerParser.is_block_opener8  s    {{c!!r   c                f    V P                  4        \        V P                  V P                  4      R J# r#   )r   _closerer-   rr   rh   s   &r
   is_block_closerParser.is_block_closer=  s%    		4??34??r   c                :    V P                  4        V P                  # r#   )r   rz   rh   s   &r
   get_last_stmt_bracketingParser.get_last_stmt_bracketingB  s    
 	###r   )r-   r\   rU   r'   rw   rx   rz   rs   rr   r.   r(   N)r   r   r   r   r)   r0   r@   rD   re   ri   r   r   r   r   r   r   r   r   r   r   r   s   @r
   r%   r%   }   sX     !
2h'DL!y1v@>-79r
"
@
$ $r   r%   __main__)mainzidlelib.idle_test.test_pyparse)	verbosity)r   r5   rT   rZ   rW   rX   r[   compileVERBOSE	MULTILINEsearchr7   r   rq   DOTALLrv   r   r   rt   dictr   fromkeysrR   updater%   r   unittestr   r   r   r
   <module>r      s   
 $)8!)i :: & ZZ",,' & !'' 	. **  ZZ	 	  **   ZZ"))!  #U! * **  ZZ   :: 	 ZZ	  	  :: ZZ 
t " 	%*c* // / // / 2z2 2K$ K$\ z	)Q7 r   