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__/hyperparser.cpython-310.opt-2.pyc
o

�iY2�@s�	ddlmZddlZddlmZeejejd�Zeejd�Z	dd�e
d�D�Zdd�e
d�D�ZGd	d
�d
�Z
edkrMddlmZed
dd�dSdS)�)�	iskeywordN)�pyparse�_cC�g|]}t|�tv�qS�)�chr�_ASCII_ID_CHARS��.0�xrr�0/usr/local/lib/python3.10/idlelib/hyperparser.py�
<listcomp>�r
�cCrr)r�_ASCII_ID_FIRST_CHARSr	rrrr
rc@sZeZdZdd�Zdd�Zdd�Zdd�Zddd�Zehd
��Z	e
dd��ZdZdd�Z
dS)�HyperParserc
sJ	|�_|j�_}t�|j|j�}dd�}||�|��}|js\|jD]0}t	||d�}t
|�d}	d|}
|�|�|	|
�d�|�
|�|	��}|dusQ|dkrSnq#|�|pYd�n#|�d|�}|ri|d}	nd	}	d|}
|�|�|	|
�d�|�d�|jdd
��_|
�_|���_�fdd�tt�j��D��_��|�dS)
NcSstt|��S)N)�int�float)�indexrrr�
index2line"sz(HyperParser.__init__.<locals>.index2line�z.0z%d.endz 
rZconsolez1.0���cs4g|]}|dko�j|d�j|ddk�qS)rr)�
bracketing)r
�i��selfrrr
Ks
��z(HyperParser.__init__.<locals>.<listcomp>)�editwin�textrZParserZindentwidthZtabwidthrZprompt_last_lineZnum_context_lines�max�reprZset_code�getZfind_good_parse_startZ_build_char_in_string_funcZset_loZ
tag_prevrange�code�rawtext�stopatindexZget_last_stmt_bracketingr�range�len�isopener�	set_index)
rrrr�parserr�lno�contextZstartatZstartatindexr#Zbod�rrrr�__init__sB
��



�zHyperParser.__init__cCs	t|j�t|j�||j��}|dkrtd|��||_d|_|jt|j�dkrU|j|jdd|jkrU|jd7_|jt|j�dkrU|j|jdd|jks7|jt|j�dkr}|j|jdd|jkr|j	|jds�|jd7_dSdSdSdS)Nrz(Index %s precedes the analyzed statementr)
r%r"rr r#�
ValueError�indexinrawtext�indexbracketrr&)rrr.rrrr'Qs,�����zHyperParser.set_indexcCs(	|j|jo|j|j|jddvS)Nr)�"�'�r&r/r"rrrrr�is_in_stringfs��zHyperParser.is_in_stringcCs*	|j|jp|j|j|jddvS)Nr)�#r0r1r2rrrr�
is_in_codens��zHyperParser.is_in_code�([{FcCs�	|j|jd}|j}|j|r&|j|j|d|vs&|j|d|krT|d8}|dkr0dSt||j|d�}|j|r&|j|j|d|vs&|j|d|ks&|jd}|t|j�kr}|j|d|kr}|d7}|t|j�kr}|j|d|ksi|j�d|jt|j�|j|df�}|t|j�ks�|j|dt|j�kr�|r�dS|j}||fS|j�d|jt|j�|j|ddf�}||fS)Nrrz%s-%dc)	rr/r&r"�minr%rrr#)rZopenersZ	mustcloseZbracketinglevel�beforeZafterZbeforeindexZ
afterindexrrr�get_surrounding_bracketstsD

�
�����z$HyperParser.get_surrounding_brackets>�False�None�TruecCs�	t}|}||kr9t||d�dkr9|t||d�r9|d8}||kr9t||d�dkr9|t||d�s||kr�t||d�dkr�|d|krod||d|���ro|d8}|d|krod||d|���sY|d|kr�d||d|���r�|d8}|d|kr�d||d|���r�|d8}|||���s�dSn||kr�tt||�s�dS||kr�t|||��r�|||�|jvr�dS||S)Nrr��a�r)�_IS_ASCII_ID_CHAR�ord�isidentifier�_IS_ASCII_ID_FIRST_CHARr�_ID_KEYWORDS)�cls�str�limit�posZis_ascii_id_charrrrr�_eat_identifier�s@���	$$�$$��zHyperParser._eat_identifierz 	
\c
Cs	|��s	td��|j}|j}|j}||d}|j}|}d}		||kr3||d|jvr3|d8}n=|sH||krH||ddkrH|d8}d}n(||kro|dkro|||dddkro|d8}||d}||dd}nnq!|stn�|�|||�}|r�||}|}d}nr||kr�||d}	|dkr�||dd|	kr�|d8}|dkr�||dd|	ks�||d|kr�n@||d}|d8}||d}|}||d	vr�n&||d
vr�|dkr�||ddvr�|d8}|dkr�||ddvs�|}nnq |||j�S)Nz?get_expression should only be called if index is inside a code.rTr�.r4r?Fz([z'"ZrRbBuU)r5r-r"rr/r.�_whitespace_charsrI)
rr"rZ
brck_indexZ
brck_limitrHZlast_identifier_posZ
postdot_phase�ret�levelrrr�get_expression�sl
����CzHyperParser.get_expressionN)r6F)�__name__�
__module__�__qualname__r,r'r3r5r9�	frozensetrD�classmethodrIrKrNrrrrrs7
,
9r�__main__)�mainz"idlelib.idle_test.test_hyperparserr?)�	verbosity)�keywordr�stringZidlelibrrR�
ascii_letters�digitsrrr$r@rCrrOZunittestrUrrrr�<module>s ��