-
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    is   
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   )]}is   "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(   Nii(   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   "	"
 	
 	
 	