<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

e fO                 @   s  d  d l  Z  d  d l Z d  d l m Z e d  \ Z Z Z Z Z	 e  j
 d e  j e  j B j Z e  j
 d e  j  j Z e  j
 d e  j e  j B j Z e  j
 d e  j  j Z e  j
 d e  j  j Z e  j
 d	 e  j  j Z Gd
 d   d e  Z Gd d   d  Z d S)    N)Mapping   z
    ^
    [ \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               @   sU   e  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 d d  Z d
 S)StringTranslatePseudoMappingaT  Utility class to be used with str.translate()

    This Mapping class wraps a given dict. When a value for a key is
    requested via __getitem__() or get(), the key is looked up in the
    given dict. If found there, the value from the dict is returned.
    Otherwise, the default value given upon initialization is returned.

    This allows using str.translate() to make some replacements, and to
    replace all characters for which no replacement was specified with
    a given character instead of leaving them as-is.

    For example, to replace everything except whitespace with 'x':

    >>> whitespace_chars = ' \t\n\r'
    >>> preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
    >>> mapping = StringTranslatePseudoMapping(preserve_dict, ord('x'))
    >>> text = "a + b\tc\nd"
    >>> text.translate(mapping)
    'x x x\tx\nx'
    c             C   s4   | |  _  | |  _ | j | d d  } | |  _ d  S)Nc             S   s   | |  |  S)N )key_getZ_defaultr   r   4/opt/alt/python34/lib64/python3.4/idlelib/PyParse.pyr   y   s    z3StringTranslatePseudoMapping.__init__.<locals>._get)_non_defaultsZ_default_valuegetr   )selfZnon_defaultsdefault_valuer   r   r   r   __init__u   s    		z%StringTranslatePseudoMapping.__init__c             C   s   |  j  |  S)N)r   )r   itemr   r   r   __getitem__}   s    z(StringTranslatePseudoMapping.__getitem__c             C   s   t  |  j  S)N)lenr	   )r   r   r   r   __len__   s    z$StringTranslatePseudoMapping.__len__c             C   s   t  |  j  S)N)iterr	   )r   r   r   r   __iter__   s    z%StringTranslatePseudoMapping.__iter__Nc             C   s   |  j  |  S)N)r   )r   r   defaultr   r   r   r
      s    z StringTranslatePseudoMapping.get)	__name__
__module____qualname____doc__r   r   r   r   r
   r   r   r   r   r   `   s   r   c               @   sB  e  Z d  Z d d   Z d d   Z d e d d  Z d d	   Z i  Z e j	 d
 d   d D  e j	 d d   d D  e j	 d d   d D  e
 e d e d  Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d    Z d! d"   Z d# d$   Z d Z d% d&   Z d Z d' d(   Z d S))Parserc             C   s   | |  _  | |  _ d  S)N)indentwidthtabwidth)r   r   r   r   r   r   r      s    	zParser.__init__c             C   s>   t  |  d k s( | d d k s( t  | |  _ d |  _ d  S)Nr      
)r   AssertionErrorstrstudy_level)r   sr   r   r   set_str   s    (	zParser.set_strNc       
      C   sU  |  j  d  } } | s d  St |  } x t d  D] } | j d d |  } | d k  r^ Pn  | j d d |  d } | | | |  } | r | | j    r | j   } Pn  | } q3 W| d  k r | |  } | r | | j    r | j   } n  | S| d } xD | | |  } | rL| j   \ }	 } | |	  sM|	 } qMqPqW| S)Nr   z:
r   r   r   )r    r   rangerfindstartspan)
r   Zis_char_in_string_synchrer    poslimitZtriesimr"   r   r   r   find_good_parse_start   s8    
	
zParser.find_good_parse_startc             C   sR   | d k s) |  j  | d d k s) t  | d k rN |  j  | d   |  _  n  d  S)Nr   r   r   )r    r   )r   lor   r   r   set_lo   s    )zParser.set_loc             c   s'   |  ] } t  |  t  d   f Vq d S)(N)ord).0cr   r   r   	<genexpr>   s    zParser.<genexpr>z({[c             c   s'   |  ] } t  |  t  d   f Vq d S))N)r1   )r2   r3   r   r   r   r4      s    z)}]c             c   s'   |  ] } t  |  t  |  f Vq d  S)N)r1   )r2   r3   r   r   r   r4      s    z"'\
#r   xc             C   s  |  j  d k r d  Sd |  _  |  j } | j |  j  } | j d d  } | j d d  } | j d d  } | j d d  } | j d d  } t } d } } d g |  _ } | j } d t |  } } x| | k  r| | }	 | d } |	 d k rq n  |	 d k r7| d } | d k r | |  q q n  |	 d	 k rS| d } q n  |	 d
 k rx| r | d } q q n  |	 d k s|	 d k r|	 }
 | | d | d  |
 d k r|
 d }
 n  | } t |
  d } | | } x| | k  r| | }	 | d } |	 d k rqn  | | d | |  |
 k rF| | } Pn  |	 d k r| d } | d k r| d k r| |  n  Pqqn  |	 d k r| | k  st	  | | d k r| d } n  | d } qqqW| d | k rt
 } q t } q n  |	 d k r5| j d |  } | d k s t	  q n  |	 d k sGt	  | | k  sYt	  | | d k r| d } | d | k rt } qn  | d } q W| t
 k r| t k r| d k rt } n  | |  _ | t k | d | k k st	  | d | k r| |  n  d  S)Nr   Zxxxxxxxxr6   ZxxxxZxxz
xr   r   r0   r5   "'      \#r   r   )r!   r    	translate_tranreplaceC_NONE	goodlinesappendr   r   C_STRING_FIRST_LINEC_STRING_NEXT_LINESfindC_BACKSLASH	C_BRACKETcontinuation)r   r    rH   levelZlnorA   Z	push_goodr+   nchZquoteZfirstlnowr   r   r   _study1   s    		
	



"






	
		"zParser._study1c             C   s   |  j    |  j S)N)rM   rH   )r   r   r   r   get_continuation_typeg  s    
zParser.get_continuation_typec             C   s  |  j  d k r d  S|  j   d |  _  |  j |  j } } t |  d } t |  } x| | r | sj t  | } x@ t | | d | |  D]# } | j d d | d  d } q Wt | |  r | d } qX PqX W| d k r | d k s t  | } n  | | |  _	 |  _
 d } g  } | j }	 | d f g }
 xu| | k  rt | | |  } | r| j   } | d } x* | | k r| | d k r| d } qrW| | k r| | } n  | } | | k rPqn  | | } | d k r|	 |  |
 j | t |  f  | } | d } q5n  | d k rh| r9| d =n  | } | d } |
 j | t |  f  q5n  | d	 k s| d
 k r|
 j | t |  d f  | } t | | |  j   } |
 j | t |  f  q5n  | d k rM|
 j | t |  d f  | j d | |  d } | d k s.t  |
 j | t |  f  q5n  | d k s_t  | d } | | k  s{t  | | d k r| | | } n  | d } q5W| |  _ | r| d |  _ n  t |
  |  _ d  S)Nr9   r   r   r    z 	
z([{z)]}r7   r8   r<   r;   r   r   )r!   rM   r    rA   r   r   r$   r%   _junkre
stmt_startstmt_endrB   _chew_ordinaryreend_match_stringrerE   lastchlastopenbracketpostuplestmt_bracketing)r   r    rA   r+   pqZnothingrV   stackZ
push_stackZ
bracketingr,   ZnewprK   r   r   r   _study2|  s    
		"!		






	zParser._study2c             C   s  |  j    |  j t k s t  |  j } |  j } t |  } | j d d |  d } } | d } x | | k  r t | |  } | r | j	   d } d } Pqg | j
 d |  d } } qg W| } } x | | d k r | d } q W|  j } t | | |  j |  j   | S)Nr   r   r   z 	)r]   rH   rG   r   rW   r    r   r%   _itemrerT   rE   r   
expandtabsr   )r   jr    rJ   Zorigir+   r,   Zextrar   r   r   compute_bracket_indent  s&    
		

	zParser.compute_bracket_indentc             C   s#   |  j    |  j } | d | d S)Nr   r9   r   )rM   rA   )r   rA   r   r   r   get_num_lines_in_stmt  s    
	zParser.get_num_lines_in_stmtc             C   s  |  j    |  j t k s t  |  j } |  j } x | | d k rQ | d } q4 W| } | j d |  d } d } } x| | k  r| | } | d k r | d } | d } q{ | d k r | r | d } n  | d } q{ | d k s | d k rt | | |  j   } q{ | d	 k r#Pq{ | d k ry| d
 k ry| d k s[| | d d k ry| | d d
 k ryd } Pq{ | d } q{ W| r| d } t	 j
 d | | |   d  k } n  | s| } x! | | d k r| d } qWn  t | |  j |  j |  j   d S)Nz 	r   r   r   z([{z)]}r7   r8   r<   =z=<>!z\s*\\z 	
)r]   rH   rF   r   r    rQ   rE   rU   rT   rematchr   r_   r   )r   r    r+   startposendposfoundrI   rK   r   r   r   compute_backslash_indent  sJ    
		


 
%zParser.compute_backslash_indentc             C   sg   |  j    |  j |  j } } | } |  j } x* | | k  rX | | d k rX | d } q/ W| | |  S)Nz 	r   )r]   rQ   rR   r    )r   r+   rJ   r`   r    r   r   r   get_base_indent_stringF  s    
	zParser.get_base_indent_stringc             C   s   |  j    |  j d k S)N:)r]   rV   )r   r   r   r   is_block_openerQ  s    
zParser.is_block_openerc             C   s#   |  j    t |  j |  j  d  k	 S)N)r]   _closerer    rQ   )r   r   r   r   is_block_closerW  s    
zParser.is_block_closerc             C   s   |  j    |  j S)N)r]   rW   )r   r   r   r   get_last_open_bracket_pos^  s    
z Parser.get_last_open_bracket_posc             C   s   |  j    |  j S)N)r]   rY   )r   r   r   r   get_last_stmt_bracketingg  s    
zParser.get_last_stmt_bracketing)r   r   r   r   r#   r(   r-   r/   r>   updater   r1   rM   rN   r]   ra   rc   rj   rk   rm   ro   rW   rp   rY   rq   r   r   r   r   r      s.   3	m	5r   )re   syscollectionsr   r$   r@   rF   rC   rD   rG   compileVERBOSE	MULTILINEsearchr(   rf   rP   DOTALLrU   r^   rn   rS   r   r   r   r   r   r   <module>   s"   	*