HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/__pycache__/pyparse.cpython-310.opt-2.pyc
o

�i�M�@s	ddlZed�\ZZZZZe�dejej	B�j
Ze�dej�jZ
e�dejejB�jZe�dej�jZe�dej�jZe�dej�jZGd	d
�d
e�Ze�ed�d�Ze�d
d�dD��e�dd�dD��e�dd�dD��Gdd�d�Zedkr�ddlmZeddd�dSdS)�N�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@seZdZ	dd�ZdS)�ParseMapcCsdS)N�x�)�self�keyrr�,/usr/local/lib/python3.10/idlelib/pyparse.py�__missing__rszParseMap.__missing__N)�__name__�
__module__�__qualname__r	rrrrrfsr�rcc� �|]}t|�td�fVqdS)�(N��ord��.0�crrr�	<genexpr>x��rz({[ccr)�)Nrrrrrryrz)}]ccs �|]}t|�t|�fVqdS�Nrrrrrrzrz"'\
#c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�ParsercCs||_||_dSr)�indentwidth�tabwidth)rrrrrr�__init__s
zParser.__init__cCs||_d|_dS�Nr)�code�study_level)r�srrr�set_code�s
zParser.set_codec	Cs�	|jd}}t|�}td�D].}|�dd|�}|dkrn |�dd|�d}t|||�}|r;||���s;|��}n|}q|durTt|�}|rR||���sR|��}|S|d}t||�}rr|��\}}||�sk|}t||�}s_|S)Nrz:
r�
�)r�len�range�rfind�_synchre�start�span)	rZis_char_in_stringr�pos�limitZtries�i�mr rrr�find_good_parse_start�s2	�zParser.find_good_parse_startcCs"	|dkr|j|d�|_dSdSr)r)r�lorrr�set_lo�s�z
Parser.set_loc
Cs�	|jdkrdSd|_|j}|�t�}|�dd�}|�dd�}|�dd�}|�dd�}|�dd�}t}d}}dg|_}|j}dt|�}}||k�r*||}	|d}|	dkrYqG|	dkrj|d}|dkri||�qG|	d	krs|d}qG|	d
kr~|r}|d}qG|	dks�|	dk�r|	}
||d|d
�|
dkr�|
d}
|}t|
�d}||}||kr�||}	|d}|	dkr�q�||d||�|
kr�||}n8|	dkr�|d}|dkr�|dkr�||�n#q�|	dkr�||dkr�|d}|d}q�||ks�|d|kr�t	}nt
}qG|	dk�r|�d|�}qG||dk�r"|d}|d|k�r"t}|d}||ksL|t	k�r;|t
k�r;|dk�r;t
}||_|d|k�rK||�dSdS)Nr#Zxxxxxxxx�xZxxxx�xxz
xr"rrr�"�'���\�#���)rr�	translate�trans�replace�C_NONE�	goodlines�appendr$�C_STRING_FIRST_LINE�C_STRING_NEXT_LINES�find�C_BACKSLASH�	C_BRACKET�continuation)
rrrE�level�lnor>Z	push_goodr,�n�ch�quoteZfirstlno�wrrr�_study1�s�


� 
�
Z�zParser._study1cCs|��|jSr)rLrE�rrrr�get_continuation_typeKszParser.get_continuation_typecCs�	|jdkrdS|��d|_|j|j}}t|�d}t|�}|rJ|}t||d||�D]
}|�dd|d�d}q/t||�rG|d}nn|s"|dkrP|}|||_|_	d}g}|j
}	|dfg}
||k�r7t|||�}|r�|��}|d}||kr�||dvr�|d}||kr�||dvs�||kr�||}|}||kr�n�||}
|
dvr�|	|�|
�
|t|�f�|
}|d}qc|
dvr�|r�|d	=|
}|d}|
�
|t|�f�qc|
d
ks�|
dkr�|
�
|t|�df�|
}t
|||���}|
�
|t|�f�qc|
dk�r|
�
|t|�df�|�d||�d}|
�
|t|�f�qc|d}||dk�r/|
||}|d}||ksh||_|�rA|d	nd|_t|
�|_dS)
Nr5r#r"r�� 	
�([{�)]}r9r3r4r8)rrLrr>r$r%r&�_junkre�
stmt_start�stmt_endr?�_chew_ordinaryre�end�_match_stringrerB�lastch�lastopenbracketpos�tuple�stmt_bracketing)rrr>r,�p�qZnothingrY�stackZ
push_stackZ
bracketingr-ZnewprIrrr�_study2Os�


�

�
�AzParser._study2cCs�	|��|j}|j}t|�}|�dd|�d}}|d}||kr@t||�}|r2|��d}d}n%|�d|�d}}||ks"|}}||dvrT|d}||dvsJ|j}t|||��	|j
��|S)Nr"rr#� 	)r`rZrr$r&�_itemrerWrBr�
expandtabsr)r�jrrHZorigir,r-�extrarrr�compute_bracket_indent�s*
��zParser.compute_bracket_indentcCs 	|��|j}|d|dS)Nr9���)rLr>)rr>rrr�get_num_lines_in_stmt�szParser.get_num_lines_in_stmtcCs~	|��|j}|j}||dvr|d}||dvs|}|�d|�d}d}}||kr�||}|dvr>|d}|d}nH|dvrM|rH|d}|d}n9|dksU|dkr^t|||���}n(|d	krcn'|dkr�|d
kr�|dksw||ddvr�||dd
kr�d}n|d}||ks-|r�|d}t�d|||��du}|s�|}||d
vr�|d}||d
vs�t||j|��	|j
��dS)Nrar#r"rrQrRr3r4r8�=z=<>!z\s*\\rP)r`rrTrBrXrW�re�matchr$rcr)rrr,�startpos�endpos�foundrFrIrrr�compute_backslash_indent�sV�

����zParser.compute_backslash_indentcCs^	|��|j|j}}|}|j}||kr)||dvr)|d}||kr)||dvs|||�S)Nrar#)r`rTrUr)rr,rHrdrrrr�get_base_indent_string,s�zParser.get_base_indent_stringcCs	|��|jdkS)N�:)r`rYrMrrr�is_block_opener8s
zParser.is_block_openercCs	|��t|j|j�duSr)r`�_closererrTrMrrr�is_block_closer=szParser.is_block_closercCs	|��|jSr)r`r\rMrrr�get_last_stmt_bracketingBszParser.get_last_stmt_bracketingN)r
rrrr!r.r0rLrNr`rfrhrorprrrtrurrrrr}s 4	{
9r�__main__)�mainzidlelib.idle_test.test_pyparser5)�	verbosity)rjr%r=rCr@rArD�compile�VERBOSE�	MULTILINE�searchr'rkrS�DOTALLrXrbrsrV�dictr�fromkeysr;�updaterr
Zunittestrwrrrr�<module>s`�
����	
����	�	���Q�