-í
°¦T<c       sö     d  k  Z   d  k Z  d  k Z  e d ƒ \ Z Z Z Z   e i d e i	 e i
 Bƒ i Z ' e i d e i	 ƒ i Z 0 e i d e i	 e i Bƒ i Z E e i d e i	 ƒ i Z L e i d e i	 ƒ i Z \ e i d e i	 ƒ i Z c d g d	 Z d x$ d
 Dd ] Z e d e e e ƒ <qWf x$ d Df ] Z g d e e e ƒ <q9Wh x$ d Dh ] Z i e e e e ƒ <qcWj e  i e d ƒ Z k [ m y n e e d ƒ ƒ Z Wn o e j
 o p e Z n Xr d f  d „  ƒ  YZ d  S(   Ni   sû   
    ^
    [ \t]*
    (?: if
    |   for
    |   while
    |   else
    |   def
    |   return
    |   assert
    |   break
    |   class
    |   continue
    |   elif
    |   try
    |   except
    |   raise
    |   import
    |   yield
    )
    \b
s'   
    [ \t]*
    (?: \# \S .* )?
    \n
sK  
    \""" [^"\\]* (?:
                     (?: \\. | "(?!"") )
                     [^"\\]*
                 )*
    (?: \""" )?

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

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

|   ' [^'\\\n]* (?: \\. [^'\\\n]* )* '?
sM   
    [ \t]*
    [^\s#\\]    # if we match, m.end()-1 is the interesting char
s_   
    \s*
    (?: return
    |   break
    |   continue
    |   raise
    |   pass
    )
    \b
s   
    [^[\](){}#'"\\]+
s   xi   s   ({[s   (s   )}]s   )s   "'\
#s    s   Parserc      sæ   r t d „  Z  x d „  Z › e e i e d „ Z Ü d „  Z å e i e i	 d „ Z
 ^d „  Z ne i e i	 e i d „ Z Ôe i	 d „ Z ôd	 „  Z ýd
 „  Z 3d „  Z >d „  Z Dd „  Z Ie Z Kd „  Z RS(   Nc    s   t u | |  _  v | |  _ d  S(   N(   s   indentwidths   selfs   tabwidth(   s   selfs   indentwidths   tabwidth(    (    s$   /mit/python/share/idlelib/PyParse.pys   __init__t s   c    så   x y t  o+ t | ƒ d j p | d d j p t ‚ z t | ƒ t j o{ � | } ‚ g  } ƒ | i } „ xA t	 t
 | ƒ D„ ]- } … | | d j  o
 t | ƒ p d ƒ q W† d i | ƒ } n ‡ | |  _ ˆ d |  _ d  S(   Ni    iÿÿÿÿs   
i   s   xs    (   s	   __debug__s   lens   strs   AssertionErrors   types   UnicodeTypes	   uniphooeys   appends   pushs   maps   ords   raws   chrs   joins   selfs   study_level(   s   selfs   strs	   uniphooeys   raws   push(    (    s$   /mit/python/share/idlelib/PyParse.pys   set_strx s   5		 	+c    sY  › ž |  i t f \ } } Ÿ | ot ¡ d t i } ¢ | | | ƒ } £ | d j o7 ¤ | t	 | ƒ } ¨ | | d  d | | |  _ n © | Sn ¬ | o ® t Sn ³ t	 | ƒ }
 ´ x¶ t d ƒ D´ ]¥ }	 µ | | d d |
 ƒ } ¶ | d j  o · Pn ¸ | | d d | ƒ d } ¹ | | | |
 ƒ } º | o | | i ƒ  ƒ o » | i ƒ  } ¼ Pn ½ | }
 qÎ W¾ | t j oK Ç | | ƒ } È | o | | i ƒ  ƒ o É | i ƒ  } n Ê | Sn Î | d } Ï xf Ï d o[ Ð | | | ƒ } Ñ | o7 Ò | i ƒ  \ } } Ó | | ƒ o Ô | } n n Ö PqèW× | Sd  S(   Ns   
i    i   i   s   :
(   s   selfs   strs   Nones   poss   use_ps1s   syss   ps1s   _rfinds   is   lens   is_char_in_strings   limits   ranges   triess   _synchres   ms   starts   spans   s(   s   selfs   use_ps1s   is_char_in_strings   _rfinds   _synchres   is   ss   ms   poss   triess   limits   strs   ps1(    (    s$   /mit/python/share/idlelib/PyParse.pys   find_good_parse_start› sJ   
$ 		 

	c    sd   Ü Ý t  o, | d j p |  i | d d j p t ‚ Þ | d j o ß |  i | |  _ n d  S(   Ni    i   s   
(   s	   __debug__s   los   selfs   strs   AssertionError(   s   selfs   lo(    (    s$   /mit/python/share/idlelib/PyParse.pys   set_loÜ s   6c    s=  å æ |  i d j o ç d  Sn è d |  _ î |  i } ï t i | t ƒ } ð | | d d ƒ } ñ | | d d ƒ } ò | | d d ƒ } ó | | d d ƒ } ô | | d d ƒ } û t } ü d } }
 ý d g |  _ } þ | i }	 ÿ d t | ƒ f \ } }  x£ | | j  o’| | } | d } | d j o
 qn | d j o8 	|
 d }
 
| d j o |	 |
 ƒ n qn | d	 j o | d } qn | d
 j o% | o | d } n qn | d j p
 | d j o½| } | | d | d !| d j o | d } n t | ƒ d } | | }  xP | | j  o6!| | } "| d } $| d j o
 %qun '| | d | | !| j o (| | } )Pn +| d j oP ,|
 d }
 -| d j o) /| d j o 0|	 |
 ƒ n 1Pn 2qun 4| d j oZ 5t o | | j  p t ‚ 6| | d j o 7|
 d }
 n 8| d } 9qun quW@t } Aqn C| d j o= E| | d | ƒ } Ft o | d j p t ‚ Gqn It o | d j p t ‚ Jt o | | j  p t ‚ K| | d j o2 L|
 d }
 M| d | j o Nt } n n O| d } qWT| t j o
 | d j o Ut } n V| |  _ Zt o$ | t j | d |
 j j p t ‚ [| d |
 j o \|	 |
 ƒ n d  S(   Ni   s   xxxxxxxxs   xs   xxxxs   xxs   
xs   
i    s   (s   )s   "s   'i   i   s   \s   #iÿÿÿÿ(   s   selfs   study_levels   strs   strings	   translates   _trans   _replaces   C_NONEs   continuations   levels   lnos	   goodliness   appends	   push_goods   lens   is   ns   chs   quotes   ws	   __debug__s   AssertionErrors   C_STRINGs   _finds   C_BACKSLASHs	   C_BRACKET(   s   selfs   _replaces   _finds   chs   levels   is   continuations	   goodliness   ns	   push_goods   lnos   strs   quotes   w(    (    s$   /mit/python/share/idlelib/PyParse.pys   _study1å s    	 




	# 

	

.c    s   ^_|  i ƒ  `|  i Sd  S(   N(   s   selfs   _study1s   continuation(   s   self(    (    s$   /mit/python/share/idlelib/PyParse.pys   get_continuation_type^s   c    sH  np|  i d j o qd  Sn r|  i ƒ  sd |  _ v|  i |  i f \ } }	 wt |	 ƒ d } xt | ƒ } yx¤ y| o™ zt o | p t	 ‚ }| }
 ~xF t |	 | d |	 | ƒ D~]& } €| | d d | d ƒ d } qÇ Wƒt | | ƒ o „| d } n †Pq} W‡| d j o+ ‰t o | d j p t	 ‚ Š| }
 n ‹| |
 f \ |  _ |  _ �d } �g  } ‘| i } ’x’| |
 j  on”t | | |
 ƒ } •| o› —| i ƒ  } ™| d } šx3 š| | j o | | d j o ›| d } qìWœ| | j o �| | } n ž| } Ÿ| |
 j o  Pn n ¢| | } ¤| d j o- ¥| | ƒ ¦| } §| d } ¨q›n ª| d j o8 «| o ¬| d	 =n ­| } ®| d } ¯q›n ±| d
 j p
 | d j o. ¹| } ºt | | |
 ƒ i ƒ  } »q›n ½| d j oD ¿| | d | |
 ƒ d } Àt o | d j p t	 ‚ Áq›n Ãt o | d j p t	 ‚ Ä| d } Åt o | |
 j  p t	 ‚ Æ| | d j o È| | | } n É| d } q›WÍ| |  _ Î| o Ï| d	 |  _ n d  S(   Ni   i   s   
i    s    s    	
s   ([{s   )]}iÿÿÿÿs   "s   's   #s   \(   s   selfs   study_levels   _study1s   strs	   goodliness   lens   is   ps	   __debug__s   AssertionErrors   qs   ranges   nothings   _rfinds   _junkres
   stmt_starts   stmt_ends   lastchs   stacks   appends
   push_stacks   _chew_ordinaryres   ms   ends   newps   chs   _match_stringres   _finds   lastopenbracketpos(   s   selfs   _rfinds   _finds   _wss
   push_stacks   lastchs   is   chs   ms	   goodliness   qs   ps   newps   strs   nothings   stack(    (    s$   /mit/python/share/idlelib/PyParse.pys   _study2ns†    
	 	$			 
 !		

	
	


c 	   ss  ÔÕ|  i ƒ  Öt o |  i t j p t ‚ ×|  i } Ø|  i } Ùt	 | ƒ } Út i | d d | ƒ d } } Û| d } Ýx· Ý| | j  oa Þt | | ƒ } ß| o$ à| i ƒ  d } ád } âPn å| | d | ƒ d } } qŽ Wé| } } êx& ê| | d j o ë| d } qWì|  i } ít	 t i | | | !î|  i ƒ ƒ | Sd  S(   Ns   
i    i   s    	(   s   selfs   _study2s	   __debug__s   continuations	   C_BRACKETs   AssertionErrors   lastopenbracketposs   js   strs   lens   ns   strings   rfinds   origis   is   _itemres   ms   ends   extras   _finds   indentwidths
   expandtabss   tabwidth(	   s   selfs   _finds   extras   is   js   ms   ns   strs   origi(    (    s$   /mit/python/share/idlelib/PyParse.pys   compute_bracket_indentÔs,   !# 
	" c    s3   ôõ|  i ƒ  ö|  i } ÷| d | d Sd  S(   Niÿÿÿÿiþÿÿÿ(   s   selfs   _study1s	   goodlines(   s   selfs	   goodlines(    (    s$   /mit/python/share/idlelib/PyParse.pys   get_num_lines_in_stmtôs   c    s±  ýþ|  i ƒ  ÿt o |  i t j p t ‚  |  i } |  i } x& | | d j o | d } qO W| } t
 i | d | ƒ d } 	d } } 
xR
| | j  oA| | } | d j o | d } | d } n| d j o, | o | d } n | d } nÇ | d j p
 | d j o t | | | ƒ i ƒ  } n‹ | d	 j o Pns | d j oA | d
 j o4 | d j p | | d d j o | | d d
 j o d } Pn | d } q­ W| o3 "| d } #t i d | | | !ƒ t j } n %| o9 (| } )x& )| | d j o *| d } qVWn ,t t
 i | |  i | !.|  i ƒ ƒ d Sd  S(   Ns    	i   s   
i    s   ([{s   )]}s   "s   's   #s   =s   =<>!s   \s*\\s    	
(   s   selfs   _study2s	   __debug__s   continuations   C_BACKSLASHs   AssertionErrors   strs
   stmt_starts   is   startposs   strings   finds   endposs   founds   levels   chs   _match_stringres   ends   res   matchs   Nones   lens
   expandtabss   tabwidth(   s   selfs   chs   levels   is   endposs   strs   founds   startpos(    (    s$   /mit/python/share/idlelib/PyParse.pys   compute_backslash_indentýsL   ! 	 
T	
&	 c    s‹   34|  i ƒ  5|  i |  i f \ } } 6| } 7|  i } 8x3 8| | j  o | | d j o 9| d } qF W:| | | !Sd  S(   Ns    	i   (   s   selfs   _study2s
   stmt_starts   stmt_ends   is   ns   js   str(   s   selfs   is   js   strs   n(    (    s$   /mit/python/share/idlelib/PyParse.pys   get_base_indent_string3s   	 !c    s$   >?|  i ƒ  @|  i d j Sd  S(   Ns   :(   s   selfs   _study2s   lastch(   s   self(    (    s$   /mit/python/share/idlelib/PyParse.pys   is_block_opener>s   c    s0   DE|  i ƒ  Ft |  i |  i ƒ t j	 Sd  S(   N(   s   selfs   _study2s   _closeres   strs
   stmt_starts   None(   s   self(    (    s$   /mit/python/share/idlelib/PyParse.pys   is_block_closerDs   c    s   KL|  i ƒ  M|  i Sd  S(   N(   s   selfs   _study2s   lastopenbracketpos(   s   self(    (    s$   /mit/python/share/idlelib/PyParse.pys   get_last_open_bracket_posKs   (   s   __init__s   set_strs   Nones   strings   rfinds   _synchres   find_good_parse_starts   set_los   replaces   finds   _study1s   get_continuation_types
   whitespaces   _study2s   compute_bracket_indents   get_num_lines_in_stmts   compute_backslash_indents   get_base_indent_strings   is_block_openers   is_block_closers   lastopenbracketposs   get_last_open_bracket_pos(    (    (    s$   /mit/python/share/idlelib/PyParse.pys   Parserr s   #A	yf 	6	(   s   strings   res   syss   ranges   C_NONEs   C_BACKSLASHs   C_STRINGs	   C_BRACKETs   compiles   VERBOSEs	   MULTILINEs   searchs   _synchres   matchs   _junkres   DOTALLs   _match_stringres   _itemres   _closeres   _chew_ordinaryres   _trans   chs   ords   joins   types   unicodes   UnicodeTypes	   NameErrors   Nones   Parser(   s   _chew_ordinaryres   _junkres   chs   strings   _match_stringres   C_BACKSLASHs   syss	   C_BRACKETs   _trans   C_STRINGs   _closeres   Parsers   C_NONEs   res   UnicodeTypes   _itemres   _synchre(    (    s$   /mit/python/share/idlelib/PyParse.pys   ? s6   "	"
 	
 	
 	