HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux vps109042.inmotionhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: cisa (1010)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/imh/python3.13/lib/python3.13/idlelib/__pycache__/hyperparser.cpython-313.pyc
�

��eY2��n�SrSSKJr SSKrSSKJr \"\R\R-S-5r	\"\RS-5r
\"S5Vs/sHn\"U5\	;PM snr
\"S5Vs/sHn\"U5\
;PM snr"SS5r\S	:XaSS
KJr \"SSS
9 ggs snfs snf)z�Provide advanced parsing abilities for ParenMatch and other extensions.

HyperParser uses PyParser.  PyParser mostly gives information on the
proper indentation of code.  HyperParser gives additional information on
the structure of code.
�)�	iskeywordN)�pyparse�_�c�d�\rSrSrSrSrSrSrS
Sjr\	"1Sk5r
\S5rS	r
S
rSrg)�HyperParser�c�(�XlUR=Uln[R"URUR
5nSnU"UR
U55nUR(d�URHrn[Xg-
S5n[U5S-n	SU-n
URURX�5S-5 URURU	55nUcUS:XdMr O URW=(d S5 OZUR!SU5nU(aUSn	OS	n	SU-n
URURX�5S-5 URS5 UR"SS
UlW
UlUR)5Ul[-[/UR*55V
s/sH7n
U
S:�=(a( UR*U
SUR*U
S-
S:�PM9 sn
UlUR3U5 gs sn
f)z;To initialize, analyze the surroundings of the given index.c�*�[[U55$)N)�int�float)�indexs �9/opt/imh/python3.13/lib/python3.13/idlelib/hyperparser.py�
index2line�(HyperParser.__init__.<locals>.index2line"s���u�U�|�$�$��z.0z%d.endz 
Nr�consolez1.0���)�editwin�textr�Parser�indentwidth�tabwidthr�prompt_last_line�num_context_lines�max�repr�set_code�get�find_good_parse_start�_build_char_in_string_func�set_lo�
tag_prevrange�code�rawtext�stopatindex�get_last_stmt_bracketing�
bracketing�range�len�isopener�	set_index)�selfrrr�parserr�lno�context�startat�startatindexr'�bod�r�is              r�__init__�HyperParser.__init__s�����"�<�<�'��	�D����� 3� 3�W�5E�5E�F��	%�����E�*�+���'�'�"�4�4���c�m�Q�/��#�G�}�t�3��&��n��
������� C�E� I�J��2�2�!�<�<�\�J�L���?�g��l��5�
�M�M�#�(��#��"�"�9�e�4�A�� ��t��$��"�S�.�K�
�O�O�D�H�H�\�?��E�F��M�M�!���{�{�3�B�'���'��� �9�9�;���
#(��D�O�O�(<�"=�?�"=�Q��1��1�����!3�A�!6�����1��-�a�0�"1�1�"=�?��
�	
���u���	?s�7>Hc�`�[UR5[URRXR55-
nUS:a[SU-5eX lSUlUR[UR5S-
:a�URURS-SUR:ajU=RS-
slUR[UR5S-
:a/URURS-SUR:aMjUR[UR5S-
:afURURS-SUR:Xa8URURS-(dU=RS-
slgggg)zWSet the index to which the functions relate.

The index must be in the same statement.
rz(Index %s precedes the analyzed statementrN)
r+r&rr r'�
ValueError�indexinrawtext�indexbracketr)r,)r.rr;s   rr-�HyperParser.set_indexQsu��
�d�l�l�+��d�i�i�m�m�E�3C�3C�D�E�F���A���G�$�%�&�
&�,������ � �3�t���#7��#9�9����t�0�0��2�3�A�6��9L�9L�L�����"��� � �3�t���#7��#9�9����t�0�0��2�3�A�6��9L�9L�L�����D�O�O� 4�Q� 6�6��O�O�D�-�-�a�/�0��3�t�7J�7J�J��}�}�T�.�.�q�0�1�����"��2�
K�
7rc��URUR=(a, URURURSS;$)z2Is the index given to the HyperParser in a string?r)�"�'�r,r<r&r)�r.s r�is_in_string�HyperParser.is_in_stringfsH���
�
�d�/�/�0�����T�_�_�T�->�->�?��B�C���	rc��URUR(+=(d, URURURSS;$)z5Is the index given to the HyperParser in normal code?r)�#r?r@rArBs r�
is_in_code�HyperParser.is_in_codensI���M�M�$�"3�"3�4�4�'����T�_�_�T�->�->�?��B�C�&�'�	(rc���URURSnURnURU(a9URURUSU;dURUSU:�azUS-nUS:ag[	X0RUS5nURU(dM=URURUSU;aMbURUSU:�aMzURS-nU[UR5:aLURUSU:�a6US-
nU[UR5:aURUSU:�aM6URRSUR[UR5URUS-
4-5nU[UR5:�d)URUS[UR5:�aU(agURnXg4$URRSUR[UR5URUSS-
-
4-5nXg4$)a�Return bracket indexes or None.

If the index given to the HyperParser is surrounded by a
bracket defined in openers (or at least has one before it),
return the indices of the opening bracket and the closing
bracket (or the end of line, whichever comes first).

If it is not surrounded by brackets, or the end of line comes
before the closing bracket and mustclose is True, returns None.
rrNz%s-%dc)	r)r<r,r&�minr+rrr')r.�openers�	mustclose�bracketinglevel�before�after�beforeindex�
afterindexs        r�get_surrounding_brackets�$HyperParser.get_surrounding_bracketsts3���/�/�$�*;�*;�<�Q�?���"�"���=�=��(��l�l�4�?�?�6�2�1�5�6�g�E��o�o�f�%�a�(�?�:��a�K�F���z��!�/�?�?�6�3J�1�3M�N�O�
�=�=��(�(��l�l�4�?�?�6�2�1�5�6�g�E��o�o�f�%�a�(�?�:�
�!�!�A�%���s�4�?�?�+�+��o�o�e�$�Q�'�?�:��Q�J�E��s�4�?�?�+�+��o�o�e�$�Q�'�?�:��i�i�o�o�h�
�
�
�s�4�<�<�0�����1H��1K�K�L�'M�N���S����)�)��?�?�5�!�!�$�s�4�<�<�'8�8����)�)�J��&�&�	������D�,�,��T�\�\�"�D�O�O�E�$:�1�$=�a�$?�@�B�B�C�J��&�&r>�None�True�Falsec�4�[nUnXR:�ad[XS-
5S:aPU[XS-
5(a8US-nXR:�a.[XS-
5S:aU[XS-
5(aM8XR:�a�[XS-
5S:�a�US-
U:�aJSXS-
U-R5(a-US-nUS-
U:�aSXS-
U-R5(aM-US-
U:�a"SXS-
U-R5(aUS-nUS-
U:�a"SXS-
U-R5(aUS-nXUR5(dgOXS:a[[X5(dgXS:a%[	XU5(aXUUR
;agX5-
$)z�Given a string and pos, return the number of chars in the
identifier which ends at pos, or 0 if there is no such one.

This ignores non-identifier eywords are not identifiers.
rr��a�r)�_IS_ASCII_ID_CHAR�ord�isidentifier�_IS_ASCII_ID_FIRST_CHARr�_ID_KEYWORDS)�cls�str�limit�pos�is_ascii_id_charr6s      r�_eat_identifier�HyperParser._eat_identifier�s���-��
���i��C�A��J��#�%� ��S�Q��Z��1�
��F�A�	�i��C�A��J��#�%� ��S�Q��Z��1�1�
�9��S�Q��Z��C�/��a�%�5�.�c�C�A��c�N�&:�%H�%H�%J�%J��Q����a�%�5�.�c�C�A��c�N�&:�%H�%H�%J�%J��1�u��~�3���U�3��#7�"E�"E�"G�"G��Q����1�u��~�3���U�3��#7�"E�"E�"G�"G��Q�����:�*�*�,�,��-�
�W�+�3�s�v�;�7��
�7��#��*�%�%��c�
�#�"2�"2�2���w�rz 	
\c�P�UR5(d[S5eURnURnURnX#SnUR
nUnSnXT:�aXS-
UR;aUS-nOSU(dXT:�aXS-
S:XaUS-nSnO4XT:Xa.US:�a(XUS-
SS:XaUS-nX#SnX#S-SnOOMuU(dO�URXU5nU(a	XX-
nUnSnO�XT:Xa�X#Sn	US:�a)X#S-
SU	:�aUS-nUS:�aX#S-
SU	:�aMX#SU:XaOVX#SnUS-nX#SnUnXS	;aO5XS
;a+US:�a#XS-
S;aUS-nUS:�a
XS-
S;aMUnOOGM=XUR
$)zrReturn a string with the Python expression which ends at the
given index, which is empty if there is no real one.
z?get_expression should only be called if index is inside a code.rTr�.rFrZFz([z'"�rRbBuU)rGr:r&r)r<r;�_whitespace_charsre)
r.r&r)�
brck_index�
brck_limitrc�last_identifier_pos�
postdot_phase�ret�levels
          r�get_expression�HyperParser.get_expression�sC����� � ��:�;�
;��,�,���_�_�
��&�&�
��+�A�.�
��!�!��!���
����>�g�!�e�n��8N�8N�&N��1�H�C�'��&�7�q�5�>�S�+@��1�H�C�$(�M��'�J��N���A��6�q�9�:�c�A��!�O�J�!+�!7��!:�J�$��\�2�1�5�C��'�*!���&�&�w�C�@�C���i��&)�#� %�
��"�#�.�q�1�� �1�n��q�L�)A�!�)D�u�)L��!�O�J�!�1�n��q�L�)A�!�)D�u�)L��)�!�,�
�:�� �,�Q�/���a��
�'�3�A�6�
�&)�#��<�4�'���|�u�,�!�A�g�'��'�*:�h�*F��1�H�C�"�A�g�'��'�*:�h�*F�.1�+���C�F�4�+>�+>�?�?r)r)rr<r;r,r&r'rN)z([{F)�__name__�
__module__�__qualname__�__firstlineno__r7r-rCrGrR�	frozensetr_�classmethodrerjrq�__static_attributes__�rrrrsL��5�n#�*�(�('�X�6�7�L��6��6�r"��U@rr�__main__)�mainz"idlelib.idle_test.test_hyperparserrZ)�	verbosity)�__doc__�keywordr�string�idlelibrrw�
ascii_letters�digits�_ASCII_ID_CHARS�_ASCII_ID_FIRST_CHARSr*�chrr[r^rrs�unittestr|)�xs0r�<module>r�s�����
���F�0�0�6�=�=�@�3�F�G��!�&�"6�"6��"<�=��;@��*�E�*�Q�c�!�f��/�*�E��16�c�
�;�
�1�c�!�f�%�%�
�;��Z@�Z@�z�z����	-��;���I	F��<s�B-�6B2