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

�Ke����	ddlZddlmZmZmZddlmZd�ZGd�d��Zd�Zd�Z	d	�Z
ed
krddlm
Z
e
dd
���dSdS)�N)�	StringVar�
BooleanVar�TclError)�
messageboxc�Z�	t|d��st|��|_|jS)N�
_searchengine)�hasattr�SearchEnginer)�roots �>/usr/local/apps/python3/lib/python3.11/idlelib/searchengine.py�getr
s4���
�4��)�)�0�)�$�/�/������c�r�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dd
�Zdd�Zdd�Zdd�ZdS)r
c��	||_t|d��|_t|d��|_t|d��|_t|d��|_t|d��|_t|d��|_dS)N�FT)	rr�patvarr�revar�casevar�wordvar�wrapvar�backvar)�selfrs  r�__init__zSearchEngine.__init__sz��	���	���b�)�)�����e�,�,��
�!�$��.�.���!�$��.�.���!�$��-�-���!�$��.�.����rc�4�|j���S�N)rr
�rs r�getpatzSearchEngine.getpat%s���{��� � � rc�:�|j�|��dSr)r�set�r�pats  r�setpatzSearchEngine.setpat(s�����������rc�4�|j���Sr)rr
rs r�isrezSearchEngine.isre+s���z�~�~���rc�4�|j���Sr)rr
rs r�iscasezSearchEngine.iscase.����|���!�!�!rc�4�|j���Sr)rr
rs r�iswordzSearchEngine.isword1r'rc�4�|j���Sr)rr
rs r�iswrapzSearchEngine.iswrap4r'rc�4�|j���Sr)rr
rs r�isbackzSearchEngine.isback7r'rc��	|���rtj|��}|�|��dSr)r$�re�escaper"r s  r�setcookedpatzSearchEngine.setcookedpat<s:��+��9�9�;�;�	!��)�C�.�.�C����C�����rc��|���}|���stj|��}|���rd|z}|S)Nz\b%s\b)rr$r/r0r)r s  r�getcookedpatzSearchEngine.getcookedpatCsJ���k�k�m�m���y�y�{�{�	!��)�C�.�.�C��;�;�=�=�	"��c�/�C��
rc��	|���}|s|�|d��dS|���}d}|���s|tjz}	t	j||��}n>#tj$r,}|�||j|j	��Yd}~dSd}~wwxYw|S)NzEmpty regular expressionr)
r�report_errorr3r&r/�
IGNORECASE�compile�error�msg�pos)rr!�flags�prog�es     r�getprogzSearchEngine.getprogKs���0��k�k�m�m���	����c�#=�>�>�>��4����!�!�����{�{�}�}�	*��B�M�)�E�	��:�c�5�)�)�D�D���x�	�	�	����c�1�5�!�%�0�0�0��4�4�4�4�4�����	�����s�*B�B;�!B6�6B;Nc��dt|��z}|r|dzt|��z}|�|dzt|��z}tjd||j���dS)NzError: z

Pattern: z	
Offset: zRegular expression error)�master)�strr�	showerrorr)rr!r9�cols    rr5zSearchEngine.report_error\sw���#�c�(�(�"���	1��
�%��C���0�C��?���$�s�3�x�x�/�C���7�"�4�9�	6�	6�	6�	6�	6�	6rrc��	|s|���}|sdS|j���}t|��\}}|���r4|r|}n|}t|��\}}	|�||||	||��}
n3|r|}n|}t|��\}}	|�||||	||��}
|
Sr)r>rr
�
get_selectionr-�get_line_col�search_backward�search_forward)r�textr<�ok�wrap�first�last�start�linerC�ress           r�search_textzSearchEngine.search_textfs���	�"�	��<�<�>�>�D��
��t��|���!�!��#�D�)�)���t��;�;�=�=�
	G��
������$�U�+�+�I�D�#��&�&�t�T�4��d�B�G�G�C�C��
������$�U�+�+�I�D�#��%�%�d�D�$��T�2�F�F�C��
rc�r�d}|}|�d|zd|dzz��}	|	r�|�|	dd�|��}
|
r|s|
���|kr||
fS|dz}|r||krnEd}d}|�d|zd|dzz��}	|	s|rd}d}d}|�dd��}	|	��dS)Nr�%d.0����z1.0z2.0)r
�search�end)rrIr<rOrCrKrJ�wrapped�	startline�chars�ms           rrHzSearchEngine.search_forward�s�����	�����$���$�q�&�(9�:�:���	/����E�#�2�#�J��,�,�A��
#��#������3�����7�N��!�8�D��
�4�)�+�+���C��B��H�H�V�d�]�F�d�1�f�,=�>�>�E��
/�T�
/������������.�.���	/� �trc���d}|}|�d|zd|dzz��}		t||	dd�|��}
|
r|s|
���|kr||
fS|dz
}|r||krn�d}|dkrG|snvd}d}|�d��}t	t
|�d����\}}|�d|zd|dzz��}	t|	��dz
}��dS)NrrSrTTrUzend-1c�.)r
�search_reverserN�index�map�int�split�len)rrIr<rOrCrKrJrXrYrZr[r:s            rrGzSearchEngine.search_backward�s�����	�����$���$�q�&�(9�:�:��	!��t�U�3�B�3�Z��5�5�A��
#��#������S�����7�N��!�8�D��
�4�)�+�+���B��q�y�y���������j�j��*�*����S�Y�Y�s�^�^�4�4�	��c��H�H�V�d�]�F�d�1�f�,=�>�>�E��e�*�*�q�.�C�#	!�$�trr)Nr)r)�__name__�
__module__�__qualname__rrr"r$r&r)r+r-r1r3r>r5rQrHrG�rrr
r
s
������F�/�/�/�!�!�!���� � � �"�"�"�"�"�"�"�"�"�"�"�"�
���������"6�6�6�6�&�&�&�&�P����,�����rr
c��	|�|��}|sdSd}|���\}}||krO||krI|}||kr|dz}|�||��}|sn#|���\}}||kr||k�I|S)NrT)rV�span)r<rZrCr[�found�i�js       rr^r^�s����	
���E���A����t��E��6�6�8�8�D�A�q�
�c�'�'�a�3�h�h�����6�6��!��A��K�K��q�!�!���	���v�v�x�x���1��c�'�'�a�3�h�h��Lrc���		|�d��}|�d��}n#t$rdx}}YnwxYw|s|�d��}|s|}||fS)Nz	sel.firstzsel.last�insert)r_r)rIrLrMs   rrErE�s������
�
�;�'�'���z�z�*�%�%�������������������%��
�
�8�$�$�������$�;�s�*.�?�?c�b�	tt|�d����\}}||fS)Nr])r`rarb)r_rOrCs   rrFrF�s.��B��C����S�)�)�*�*�I�D�#���9�r�__main__)�mainz#idlelib.idle_test.test_searchengine�)�	verbosity)r/�tkinterrrrrr
r
r^rErFrd�unittestrqrgrr�<module>rvs���-�	�	�	�	�3�3�3�3�3�3�3�3�3�3�������	�	�	�g�g�g�g�g�g�g�g�T���.�������z����������D�	.�!�<�<�<�<�<�<��r