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

�Ke�M���	ddlZed��\ZZZZZejdejej	z��j
Zejdej��jZ
ejdejejz��jZejdej��jZejdej��jZejdej��jZGd	�d
e��Ze�ed��d��Ze�d
�dD����e�d�dD����e�d�dD����Gd�d��ZedkrddlmZedd���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��eZdZ	d�ZdS)�ParseMapc��dS)N�x�)�self�keys  �9/usr/local/apps/python3/lib/python3.11/idlelib/pyparse.py�__missing__zParseMap.__missing__rs���s�N)�__name__�
__module__�__qualname__rrr
rrrfs(������	�����r
r�rc#�RK�|]"}t|��td��fV��#dS)�(N��ord��.0�cs  r�	<genexpr>rx�3����/�/�A�c�!�f�f�c�#�h�h�
�/�/�/�/�/�/r
z({[c#�RK�|]"}t|��td��fV��#dS)�)Nrrs  rrryrr
z)}]c#�RK�|]"}t|��t|��fV��#dS�Nrrs  rrrzs3����2�2�!�c�!�f�f�c�!�f�f�
�2�2�2�2�2�2r
z"'\
#c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�Parserc�"�||_||_dSr)�indentwidth�tabwidth)r	r"r#s   r�__init__zParser.__init__s��&��� ��
�
�
r
c�"�||_d|_dS�Nr)�code�study_level)r	�ss  r�set_codezParser.set_code�s����	�����r
c��	|jd}}t|��}td��D]�}|�dd|��}|dkrnc|�dd|��dz}t	|||��}|r3||�����s|���}n|}��|�Dt	|��}|r1||�����s|���}|S|dz}t	||��x}r6|���\}}||��s|}t	||��x}�6|S)Nrz:
r�
�)r'�len�range�rfind�_synchre�start�span)	r	�is_char_in_stringr'�pos�limit�tries�i�mr)s	         r�find_good_parse_startzParser.find_good_parse_start�sr��	��I�t�c��
�D�	�	���1�X�X�		�		�E��
�
�5�!�U�+�+�A��1�u�u����
�
�4��A�&�&��*�A���q�%�(�(�A��
�*�*�1�7�7�9�9�5�5�
��g�g�i�i�����E�E��;�����A��
 �*�*�1�7�7�9�9�5�5�
 ��g�g�i�i���J�
�!�G���D�!�$�$�$�a�	��6�6�8�8�D�A�q�$�$�Q�'�'�
����D�!�$�$�$�a�	��
r
c�@�	|dkr|j|d�|_dSdSr&)r')r	�los  r�set_loz
Parser.set_lo�s.��	�
��6�6��	�"�#�#��D�I�I�I��6r
c��	|jdkrdSd|_|j}|�t��}|�dd��}|�dd��}|�dd��}|�dd��}|�dd��}t
}dx}}dgx|_}|j}dt|��}}||k�rn||}	|dz}|	dkr�|	dkr|dz}|dkr||���8|	d	kr|dz}�D|	d
kr|r|dz
}�R|	dks|	dkr�|	}
||dz
|d
z�|
dzkr|
dz}
|}t|
��dz
}||z}||kru||}	|dz}|	dkr�||dz
||z�|
kr||z}n_|	dkr|dz}|dkr|dkr||��n<�X|	dkr||dkr|dz}|dz}�u||k�u|dz
|krt}nt}��*|	dkr|�d|��}��H||dkr|dz}|dz|krt}|dz}||k��n|tkr|tkr
|dkrt}||_|d|kr
||��dSdS)Nr-�xxxxxxxx�x�xxxx�xxz
xr,rrr�"�'���\�#���)r(r'�	translate�trans�replace�C_NONE�	goodlines�appendr.�C_STRING_FIRST_LINE�C_STRING_NEXT_LINES�find�C_BACKSLASH�	C_BRACKET�continuation)
r	r'rU�level�lnorN�	push_goodr8�n�ch�quote�firstlno�ws
             r�_study1zParser._study1�sI��	���q� � ��F�����y���~�~�e�$�$���|�|�J��,�,���|�|�F�C�(�(���|�|�D�#�&�&���|�|�D�#�&�&���|�|�E�4�(�(��������&'�S�(�����$�	��#�d�)�)�1���!�e�e��a��B��!��A��S�y�y���T�z�z��A�g���A�:�:��I�c�N�N�N���S�y�y���	����S�y�y��&�!�A�I�E���S�y�y�B�#�I�I�����!��A�a�C��=�E�A�I�-�-�!�A�I�E�����J�J��N���a�C���!�e�e��a��B��!��A��S�y�y� ��A�a�C��!��G�}��-�-��a�C����T�z�z�!�A�g����6�6�$��z�z� )�	�#����!� ��T�z�z���7�d�?�?�"%��'�C��a�C�� �3�!�e�e�@�a��H�,�,�(;���':����S�y�y��I�I�d�A�&�&����A�w�$����A�g���Q�3�!�8�8�#.�L��!��A�k�!�e�e�t
�/�/�/�� 3�3�3���	�	�$�L�(���
�R�=�C����I�c�N�N�N�N�N� �r
c�8�|���|jSr)r^rU�r	s r�get_continuation_typezParser.get_continuation_typeKs��������� � r
c�
�	|jdkrdS|���d|_|j|j}}t	|��dz
}t	|��}|rZ|}t||dz
||��D]}|�dd|dz
��dz}� t||��r|dz
}nn|�Z|dkr|}||c|_|_	d}g}|j
}	|dfg}
||k�r�t|||��}|rV|���}|dz
}||kr||dvr|dz
}||kr
||dv�||kr||}|}||kr�n�||}
|
dvr7|	|��|
�
|t	|��f��|
}|dz}��|
dvr1|r|d	=|
}|dz}|
�
|t	|��f����|
d
ks|
dkrr|
�
|t	|��dzf��|
}t|||�����}|
�
|t	|��f����f|
dkrg|
�
|t	|��dzf��|�d||��dz}|
�
|t	|��f�����|dz}||dkr|
||z}|dz}||k���||_|r|d	nd|_t#|
��|_dS)
NrEr-r,r�� 	
�([{�)]}rIrCrDrH)r(r^r'rNr.r/r0�_junkre�
stmt_start�stmt_endrO�_chew_ordinaryre�end�_match_stringrerR�lastch�lastopenbracketpos�tuple�stmt_bracketing)r	r'rNr8�p�q�nothingrm�stack�
push_stack�
bracketingr9�newprZs              r�_study2zParser._study2Os���	�$��q� � ��F�����������)�T�^�i���	�N�N�Q�����I�I���
	��A� ��1�Q�3���1��>�>�
1�
1���J�J�t�Q��!��,�,�q�0�����a� � �
��a�C�����
	�
��6�6��A�)*�A�&����������\�
��!�f�X�
��!�e�e� ��q�!�,�,�A��
��u�u�w�w���1�H���1�f�f��a��G�!3�!3��!��A��1�f�f��a��G�!3�!3���6�6�!�!�W�F�����6�6���a��B��U�{�{��
�1�
�
�
��!�!�1�c�%�j�j�/�2�2�2����a�C����U�{�{��"��b�	����a�C���!�!�1�c�%�j�j�/�2�2�2���S�y�y�B�#�I�I��!�!�1�c�%�j�j��l�"3�4�4�4���#�D�!�Q�/�/�3�3�5�5���!�!�1�c�%�j�j�/�2�2�2���S�y�y��!�!�1�c�%�j�j��l�"3�4�4�4��I�I�d�A�q�)�)�A�-���!�!�1�c�%�j�j�/�2�2�2���!��A��A�w�$����d�1�g����!��A�{�!�e�e�B���/4�">�%��)�)�$���$�Z�0�0����r
c��	|���|j}|j}t|��}|�dd|��dzx}}|dz}||krMt||��}|r|���dz
}d}nE|�d|��dzx}}||k�M|x}}||dvr|dz}||dv�|j}t|||��	|j
����|zS)Nr,rr-� 	)rxrnr'r.r0�_itemrerkrRr"�
expandtabsr#)r	�jr'rY�origir8r9�extras        r�compute_bracket_indentzParser.compute_bracket_indent�s"��	�	
�������#���y����I�I���J�J�t�Q��*�*�Q�.�.���
�a�C���!�e�e���a� � �A��
/��E�E�G�G�a�K������	�	�$��*�*�Q�.�.��A��!�e�e��M�A���q�'�U�"�"��a�C���q�'�U�"�"��$�E��4��!��9�'�'��
�6�6�7�7�%�?�?r
c�\�	|���|j}|d|dz
S)NrI���)r^rN)r	rNs  r�get_num_lines_in_stmtzParser.get_num_lines_in_stmt�s0��	�
	
�������N�	���}�y��}�,�,r
c���	|���|j}|j}||dvr|dz}||dv�|}|�d|��dz}dx}}||kr�||}|dvr|dz}|dz}n~|dvr
|r|dz
}|dz}nm|dks|dkr$t	|||�����}n=|d	krn<|dkr+|d
kr%|dks
||dz
dvr||dzd
krd}n|dz}||k��|r$|dz}t
jd|||���du}|s|}||d
vr|dz}||d
v�t||j|��	|j
����dzS)Nrzr-r,rrerfrCrDrH�=z=<>!z\s*\\rd)rxr'rhrRrlrk�re�matchr.r|r#)r	r'r8�startpos�endpos�foundrVrZs        r�compute_backslash_indentzParser.compute_backslash_indent�s
��	�
	
�������y���O���1�g�����!��A��1�g���������4��*�*�Q�.�������&�j�j��a��B��U�{�{���	���a�C����u����&�!�A�I�E��a�C����s���b�C�i�i�#�D�!�V�4�4�8�8�:�:����s�����!����c�	�	���F�F�d�1�Q�3�i�v�5�5���!��9��#�#�����a�C��+�&�j�j�.�	?��!��A��H�X�t�A�f�H�~�6�6�$�>�E��	��A��q�'��(�(��a�C���q�'��(�(��4����)�*�5�5�%)�]�4�4�5�5�78�9�	9r
c��	|���|j|j}}|}|j}||kr||dvr|dz}||kr
||dv�|||�S)Nrzr-)rxrhrir')r	r8rYr}r's     r�get_base_indent_stringzParser.get_base_indent_string,sv��	�	
���������
�1��
���y���!�e�e��Q��5�(�(��A��A��!�e�e��Q��5�(�(��A�a�C�y�r
c�B�	|���|jdkS)N�:)rxrmr`s r�is_block_openerzParser.is_block_opener8s��F��������{�c�!�!r
c�d�	|���t|j|j��duSr)rx�_closerer'rhr`s r�is_block_closerzParser.is_block_closer=s+��G���������	�4�?�3�3�4�?�?r
c�:�	|���|jSr)rxrpr`s r�get_last_stmt_bracketingzParser.get_last_stmt_bracketingBs��	�	
�������#�#r
N)rrrr$r*r:r=r^rarxr�r�r�r�r�r�r�rr
rr r }s�������!�!�!����
2�2�2�h'�'�'�D�D�D�L!�!�!�y1�y1�y1�v@�@�@�>-�-�-�79�79�79�r
�
�
�"�"�"�
@�@�@�
$�$�$�$�$r
r �__main__)�mainzidlelib.idle_test.test_pyparserE)�	verbosity)r�r/rMrSrPrQrT�compile�VERBOSE�	MULTILINE�searchr1r�rg�DOTALLrlr{r�rj�dictr�fromkeysrK�updater r�unittestr�rr
r�<module>r�sS���
�	�	�	�$)�5��8�8�!���)��i��2�:��&�Z�"�,��' � �&!'�'	�.�"�*���Z�	���	��"�*�� �Z�"�)��!�� #�!�*�"�*���Z������2�:�	��Z�	�	��	� �2�:���Z�����

�
�
�
�
�t�
�
�
�"	���%�%��*�*�c�*�*�����/�/��/�/�/�/�/�/����/�/��/�/�/�/�/�/����2�2�z�2�2�2�2�2�2�K$�K$�K$�K$�K$�K$�K$�K$�\�z����������D�	)�Q�7�7�7�7�7�7��r