;ò
�ü?c           @   s“  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 e  i d e  i e  i Bƒ i Z e  i d e  i ƒ i Z e  i d e  i ƒ i Z e  i d e  i ƒ i Z d g d	 Z x d
 D] Z d e e e ƒ <qÜ Wx d D] Z d e e e ƒ <qý Wx d D] Z e e e e ƒ <qWd i e ƒ Z [ y e e d ƒ ƒ Z Wn e j
 o e Z n Xd 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           B   s’   t  Z d „  Z d „  Z e e d „ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z e Z d „  Z RS(   Nc         C   s   | |  _  | |  _ d  S(   N(   s   indentwidths   selfs   tabwidth(   s   selfs   indentwidths   tabwidth(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   __init__s   s    	c         C   sº   t  | ƒ d j p | d d j p t ‚ t | ƒ t j of | } g  } | i } x; t t	 | ƒ D]* } | | d j  o
 t | ƒ p d ƒ qc Wd i | ƒ } n | |  _ d |  _ d  S(   Ni    iÿÿÿÿs   
i   s   xs    (   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/lib/python2.3/idlelib/PyParse.pys   set_strw   s    +	 (	c         C   sç  |  i t f \ }
 } | ob d t i } |
 i | ƒ } | d j o1 | t	 | ƒ } |
 | d  d |
 | |  _ n | Sn | o t Sn t	 |
 ƒ }	 x˜ t d ƒ D]Š } |
 i d d |	 ƒ } | d j  o Pn |
 i d d | ƒ d } | |
 | |	 ƒ } | o | | i ƒ  ƒ o | i ƒ  } Pn | }	 q§ W| t j o? | |
 ƒ } | o | | i ƒ  ƒ o | i ƒ  } n | Sn | d } xQ n oI | |
 | ƒ } | o. | i ƒ  \ } } | | ƒ o
 | } qÚqŽ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   _synchres   ss   ms   poss   is   triess   limits   strs   ps1(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   find_good_parse_startš   sJ    ! 
	
 c         C   sQ   | d j p |  i | d d j p t ‚ | d j o |  i | |  _ n d  S(   Ni    i   s   
(   s   los   selfs   strs   AssertionError(   s   selfs   lo(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   set_loÚ   s    ,c         C   s$  |  i d j o d  Sn d |  _ |  i }	 |	 i t ƒ }	 |	 i d d ƒ }	 |	 i d d ƒ }	 |	 i d d ƒ }	 |	 i d d ƒ }	 |	 i d d ƒ }	 t } d } } d g |  _
 } | i } d t |	 ƒ f \ } } xÙ| | j  oË|	 | } | d } | d j o q× n | d j o, | d } | d j o | | ƒ q× q× n | d	 j o | d } q× n | d
 j o | o | d } q× q× n | d j p
 | d j o_| }
 |	 | d | d !|
 d j o |
 d }
 n t |
 ƒ d } | | } x| | j  oó |	 | } | d } | d j o q÷n |	 | d | | !|
 j o | | } Pn | d j o> | d } | d j o  | d j o | | ƒ n Pq÷q÷n | d j oD | | j  p t ‚ |	 | d j o | d } n | d } q÷q÷q÷Wt } q× n | d j o- |	 i d | ƒ } | d j p t ‚ q× n | d j p t ‚ | | j  p t ‚ |	 | d j o) | d } | d | j o
 t } q¡n | d } q× W| t j o
 | d j o
 t } n | |  _ | 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	   translates   _trans   replaces   C_NONEs   continuations   levels   lnos	   goodliness   appends	   push_goods   lens   is   ns   chs   quotes   ws   AssertionErrors   C_STRINGs   finds   C_BACKSLASHs	   C_BRACKET(   s   selfs   chs   levels   is   continuations	   goodliness   ns   ws   lnos   strs   quotes	   push_good(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   _study1ã   s     		
	 



 
 






	$c         C   s   |  i ƒ  |  i Sd  S(   N(   s   selfs   _study1s   continuation(   s   self(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   get_continuation_type\  s    
c         C   sY  |  i d j o d  Sn |  i ƒ  d |  _ |  i |  i f \ }	 } t | ƒ d } t |	 ƒ } x‚ | oz | p t ‚ | } x@ t
 | | d | | ƒ D]# }
 |	 i d d | d ƒ d } q™ Wt |	 | ƒ o | d } qb Pqb W| d j o | d j p t ‚ | } n | | f \ |  _ |  _ d } g  } | i } xõ| | j  oçt |	 | | ƒ } | o} | i ƒ  } | d } x- | | j o |	 | d j o | d } q~W| | j o |	 | } n | } | | j o Pqân |	 | } | d j o! | | ƒ | } | d } q?n | d j o) | o | d	 =n | } | d } q?n | d
 j p
 | d j o% | } t |	 | | ƒ i ƒ  } q?n | d j o4 |	 i d | | ƒ d } | d j p t ‚ q?n | d j p t ‚ | d } | | 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   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
   push_stacks   lastchs   is   ms	   goodliness   qs   ps   chs   strs   nothings   newps   stack(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   _study2l  s†    
	  !
	 
 	




	c         C   s!  |  i ƒ  |  i t j p t ‚ |  i } |  i } t | ƒ } | i
 d d | ƒ d } } | d } x“ | | j  oO t | | ƒ } | o | i ƒ  d } d } Pqi | i d | ƒ d } } qi W| } } x  | | d j o | d } qÓ W|  i } t | | | !i |  i ƒ ƒ | Sd  S(   Ns   
i    i   s    	(   s   selfs   _study2s   continuations	   C_BRACKETs   AssertionErrors   lastopenbracketposs   js   strs   lens   ns   rfinds   origis   is   _itemres   ms   ends   extras   finds   indentwidths
   expandtabss   tabwidth(   s   selfs   extras   is   js   ms   ns   strs   origi(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   compute_bracket_indentÑ  s*    
		
 
 	c         C   s'   |  i ƒ  |  i } | d | d Sd  S(   Niÿÿÿÿiþÿÿÿ(   s   selfs   _study1s	   goodlines(   s   selfs	   goodlines(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   get_num_lines_in_stmtð  s    
	c         C   s/  |  i ƒ  |  i t j p t ‚ |  i } |  i } x  | | d j o | d } q6 W| } | i	 d | ƒ d } d } } x| | j  o| | } | d j o | d } | d } q | d j o# | o | d } n | d } q | d j p
 | d j o t | | | ƒ i ƒ  } q | d	 j o Pq | d j oA | d
 j o4 | d j p | | d d j o | | d d
 j o d } Pq | d } q W| o- | d } t i d | | | !ƒ t j } n | o- | } x$ | | d j o | d } qãWn t | |  i | !i |  i ƒ ƒ d Sd  S(   Ns    	i   s   
i    s   ([{s   )]}s   "s   's   #s   =s   =<>!s   \s*\\s    	
(   s   selfs   _study2s   continuations   C_BACKSLASHs   AssertionErrors   strs
   stmt_starts   is   startposs   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/lib/python2.3/idlelib/PyParse.pys   compute_backslash_indentù  sJ    
		 
 

Q
# c         C   sp   |  i ƒ  |  i |  i f \ } } | } |  i } x- | | j  o | | d j o | d } q4 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/lib/python2.3/idlelib/PyParse.pys   get_base_indent_string.  s    
	 c         C   s   |  i ƒ  |  i d j Sd  S(   Ns   :(   s   selfs   _study2s   lastch(   s   self(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   is_block_opener9  s    
c         C   s'   |  i ƒ  t |  i |  i ƒ t j	 Sd  S(   N(   s   selfs   _study2s   _closeres   strs
   stmt_starts   None(   s   self(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   is_block_closer?  s    
c         C   s   |  i ƒ  |  i Sd  S(   N(   s   selfs   _study2s   lastopenbracketpos(   s   self(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   get_last_open_bracket_posF  s    
(   s   __name__s
   __module__s   __init__s   set_strs   Nones   _synchres   find_good_parse_starts   set_los   _study1s   get_continuation_types   _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/lib/python2.3/idlelib/PyParse.pys   Parserq   s   		#@			y		e				5			(   s   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   _match_stringres	   C_BRACKETs   _trans   C_NONEs   res   syss   C_BACKSLASHs   C_STRINGs   _closeres   Parsers   UnicodeTypes   _itemres   _synchre(    (    s,   /mit/python/lib/python2.3/idlelib/PyParse.pys   ?   s4   		 	   