Current File : //usr/local/apps/python3/lib/python3.11/idlelib/__pycache__/hyperparser.cpython-311.opt-2.pyc
�

�KeY2��(�	ddlmZddlZddlmZeejejzdz��Zeejdz��Z	d�e
d��D��Zd�e
d��D��ZGd�d	��Z
ed
krddlmZedd
���dSdS)�)�	iskeywordN)�pyparse�_c�:�g|]}t|��tv��S�)�chr�_ASCII_ID_CHARS��.0�xs  �=/usr/local/apps/python3/lib/python3.11/idlelib/hyperparser.py�
<listcomp>rs#��E�E�E�Q�c�!�f�f��/�E�E�E��c�:�g|]}t|��tv��Sr)r�_ASCII_ID_FIRST_CHARSr
s  r
rrs$��;�;�;�1�c�!�f�f�%�%�;�;�;rc�h�eZdZd�Zd�Zd�Zd�Zd
d�Zehd���Z	e
d	���Zd
Zd�Z
dS)�HyperParserc����	|�_|jx�_}tj|j|j��}d�}||�|����}|js�|jD]�}t||z
d��}t|��dz}	d|z}
|�|�|	|
��dz��|�
|�|	����}|�|dkrn��|�|pd��ni|�d|��}|r	|d}	nd}	d|z}
|�|�|	|
��dz��|�d��|jdd	��_|
�_|����_�fd
�t-t/�j����D���_��|��dS)Nc�:�tt|����S)N)�int�float)�indexs r
�
index2linez(HyperParser.__init__.<locals>.index2line"s���u�U�|�|�$�$�$r�z.0z%d.endz 
r�consolez1.0���c�r��g|]3}|dko*�j|d�j|dz
dk��4S)rr)�
bracketing)r�i�selfs  �r
rz(HyperParser.__init__.<locals>.<listcomp>KsX���?�?�?���1��1����!3�A�!6����1��-�a�0�"1�?�?�?r)�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_bracketingr�range�len�isopener�	set_index)
r!r"rr#�parserr�lno�context�startat�startatindexr3�bod�rs
`            r
�__init__zHyperParser.__init__s���E����"�<�'��	�D���� 3�W�5E�F�F��	%�	%�	%��j����E�*�*�+�+���'�	�"�4�
�
���c�G�m�Q�/�/��#�G�}�}�t�3��&��n��
�������{� C� C�E� I�J�J�J��2�2�!�<�<�\�J�J�L�L���?�g��l�l��E�'3��M�M�#�(��#�#�#�#��"�"�9�e�4�4�A��
%� ��t���$��"�S�.�K�
�O�O�D�H�H�\�;�?�?��E�F�F�F��M�M�!�����{�3�B�3�'���'��� �9�9�;�;���?�?�?�?�"'��D�O�(<�(<�"=�"=�?�?�?��
�	
���u�����rc���	t|j��t|j�||j����z
}|dkrtd|z���||_d|_|jt|j��dz
krx|j|jdzd|jkrT|xjdz
c_|jt|j��dz
kr$|j|jdzd|jk�T|jt|j��dz
krK|j|jdzd|jkr)|j	|jdzs|xjdz
c_dSdSdSdS)Nrz(Index %s precedes the analyzed statementr)
r6r2r#r,r3�
ValueError�indexinrawtext�indexbracketrr7)r!rrCs   r
r8zHyperParser.set_indexQs���	��d�l�+�+��d�i�m�m�E�4�3C�D�D�E�E�F���A����G�$�%�&�&�
&�,������� �3�t��#7�#7��#9�9�9���t�0��2�3�A�6��9L�L�L�����"���� �3�t��#7�#7��#9�9�9���t�0��2�3�A�6��9L�L�L����D�O� 4� 4�Q� 6�6�6��O�D�-�a�/�0��3�t�7J�J�J��}�T�.�q�0�1�
K�����"�����
7�6�J�J�J�Jrc�r�	|j|jo$|j|j|jddvS)Nr)�"�'�r7rDr2r�r!s r
�is_in_stringzHyperParser.is_in_stringfs?��@��
�d�/�0����T�_�T�->�?��B�C���	rc�t�	|j|jp$|j|j|jddvS)Nr)�#rFrGrHrIs r
�
is_in_codezHyperParser.is_in_codens@��C��M�$�"3�4�4�'���T�_�T�->�?��B�C�&�'�	(r�([{Fc�X�	|j|jd}|j}|j|r7|j|j|d|vs|j|d|krr|dz}|dkrdSt	||j|d��}|j|�;|j|j|d|v�[|j|d|k�r|jdz}|t|j��krK|j|d|kr4|dz
}|t|j��kr|j|d|k�4|j�d|jt|j��|j|dz
fz��}|t|j��ks)|j|dt|j��kr|rdS|j}nM|j�d|jt|j��|j|ddz
z
fz��}||fS)Nrrz%s-%dc)	rrDr7r2�minr6r#rr3)r!�openers�	mustclose�bracketinglevel�before�after�beforeindex�
afterindexs        r
�get_surrounding_bracketsz$HyperParser.get_surrounding_bracketstsF��		��/�$�*;�<�Q�?���"���=��(�	O��l�4�?�6�2�1�5�6�g�E�E��o�f�%�a�(�?�:�:��a�K�F���z�z��t�!�/�4�?�6�3J�1�3M�N�N�O�
�=��(�	O��l�4�?�6�2�1�5�6�g�E�E��o�f�%�a�(�?�:�:�
�!�A�%���s�4�?�+�+�+�+��o�e�$�Q�'�?�:�:��Q�J�E��s�4�?�+�+�+�+��o�e�$�Q�'�?�:�:��i�o�o�h�
�
�s�4�<�0�0����1H��1K�K�L�'M�N�N���S���)�)�)�)��?�5�!�!�$�s�4�<�'8�'8�8�8��
��t��)�J�J������D�,��T�\�"�"�D�O�E�$:�1�$=�a�$?�@�B�B�C�C�J��J�&�&r>�None�True�Falsec���	t}|}||krt||dz
��dkrc|t||dz
��rE|dz}||kr:t||dz
��dkr|t||dz
���E||kr�t||dz
��dkr�|dz
|krRd||dz
|�z���r0|dz}|dz
|kr"d||dz
|�z����0|dz
|kr'd||dz
|�z���r|dz}|dz
|kr'd||dz
|�z���r|dz}|||����sdSn(||kr"tt||��sdS||kr*t	|||���r|||�|jvrdS||z
S)Nrr��a�r)�_IS_ASCII_ID_CHAR�ord�isidentifier�_IS_ASCII_ID_FIRST_CHARr�_ID_KEYWORDS)�cls�str�limit�pos�is_ascii_id_charr s      r
�_eat_identifierzHyperParser._eat_identifier�s-��	�
-��
���%�i�i��C��A��J���#�%�%� ��S��Q��Z���1�&�
��F�A�	�%�i�i��C��A��J���#�%�%� ��S��Q��Z���1�&�
�u�9�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��Q��U�3�Y��#7�"E�"E�"G�"G�~��Q����1�u��~�~�3��Q��U�3�Y��#7�"E�"E�"G�"G�~��Q����q��u�:�*�*�,�,�
��q�
�
��W�W�+�3�s�1�v�;�;�7�
��q�
�s�7�7��#�a��e�*�%�%���A�c�E�
�#�"2�2�2��1��Q�w�rz 	
\c��	|���std���|j}|j}|j}||d}|j}|}d}		||kr||dz
|jvr|dz}nl|s||kr||dz
dkr|dz}d}nM||krF|dkr@|||dz
ddkr%|dz}||d}||dzd}nn��|sn�|�|||��}|r
||z
}|}d}n�||kr�||d}	|dkr5||dz
d|	kr |dz}|dkr||dz
d|	k� ||d|krni||d}|dz}||d}|}||d	vrn9||d
vr-|dkr%||dz
dvr|dz}|dkr
||dz
dv�|}nn��}|||j�S)Nz?get_expression should only be called if index is inside a code.rTr�.rLr_Fz([z'"�rRbBuU)rMrBr2rrDrC�_whitespace_charsrj)
r!r2r�
brck_index�
brck_limitrh�last_identifier_pos�
postdot_phase�ret�levels
          r
�get_expressionzHyperParser.get_expression�s���	���� � �	;��:�;�;�
;��,���_�
��&�
��
�+�A�.�
��!��!���
�A	�
��z�>�>�g�c�!�e�n��8N�&N�&N��1�H�C�C�'���J�&�&�7�3�q�5�>�S�+@�+@��1�H�C�$(�M�M��Z�'�'�J��N�N��j��A��6�q�9�:�c�A�A��!�O�J�!+�J�!7��!:�J�$�Z��\�2�1�5�C�C��'
�*!�
���&�&�w�
�C�@�@�C��$
��C�i��&)�#� %�
�
��
�"�"�#�:�.�q�1�� �1�n�n��J�q�L�)A�!�)D�u�)L�)L��!�O�J�!�1�n�n��J�q�L�)A�!�)D�u�)L�)L��j�)�!�,�
�:�:�� ��,�Q�/���a��
�'�
�3�A�6�
�&)�#��3�<�4�'�'���s�|�u�,�,�!�A�g�g�'�#��'�*:�h�*F�*F��1�H�C�"�A�g�g�'�#��'�*:�h�*F�*F�.1�+���CA	�F�*�4�+>�>�?�?rN)rNF)�__name__�
__module__�__qualname__r@r8rJrMrX�	frozensetrd�classmethodrjrnrurrr
rrs�������5�5�5�n#�#�#�*���(�(�(�('�('�('�('�X�9�6�6�6�7�7�L��6�6��[�6�r"��U@�U@�U@�U@�U@rr�__main__)�mainz"idlelib.idle_test.test_hyperparserr_)�	verbosity)�keywordr�string�idlelibrry�
ascii_letters�digitsr	rr5r`rcrrv�unittestr|rrr
�<module>r�s,���������
�
�
�
��������)�F�0�6�=�@�3�F�G�G��!�	�&�"6��"<�=�=��F�E�%�%��*�*�E�E�E��<�;���c�
�
�;�;�;��Z@�Z@�Z@�Z@�Z@�Z@�Z@�Z@�z�z����������D�	-��;�;�;�;�;�;��r