HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/__pycache__/test_grammar.cpython-311.opt-1.pyc
�

��Vc��6�UddlmZddlmZddlmZddlZddlZddlZddlZddlTddl	m
Z
ddlZddlm
Z
ddlmZddlZgd�Zgd	�ZGd
�dej��Zeed<Gd
�d��ZGd�dej��Zedkrej��dSdS)���check_syntax_error)�
import_helper��check_syntax_warningN)�*)�ChainMap)�ann_module2)�0_0_0�4_2�1_0000_0000�0b1001_0100�0xffff_ffff�0o5_7_7z	1_00_00.5z1_00_00.5e5�1_00_00e5_1�1e1_0z.1_4z.1_4e1�0b_0�0x_f�0o_5�1_00_00jz
1_00_00.5j�1_00_00e5_1jz.1_4jz(1_2.5+3_3j)z(.5_6j))(�0_�42_z1.4j_�0x_�0b1_�0xf_�0o5_z
0 if 1_Else 1�0_b0�0_xf�0_o5�0_7�09_99�	4_______2z0.1__4z0.1__4j�0b1001__0100�0xffff__ffff�0x___�0o5__77�1e1__0�1e1__0jz1_.4z1_.4jz1._4z1._4jz._5z._5jz1.0e+_1z1.0e+_1jz1.4_jz1.4e5_j�1_e1z1.4_e1z1.4_e1j�1e_1z1.4e_1z1.4e_1jz
(1+1.5_j_)z	(1+1.5_j)c�h�eZdZddlmZddlmZd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�ZdS)�
TokenTestsrrrc�j�d}|�|dd��d}|�|dd��dS)N�zbackslash for line continuationrzbackslash ending comment��assertEqual��self�xs  �%D:\Python311\Lib\test\test_grammar.py�test_backslashzTokenTests.test_backslashmsH��
������A�@�A�A�A�
������A�9�:�:�:�:�:�c�,�|�td��td����|�dd��|�dd��|�dd��|�dd��|�ttd��ddlm}|dkr�|�dd��|�ddk��|�ddk��|�ddk��d	D]:}	t	|��}�#t$r|�	d
|z��Y�7wxYwdS|dkr�|�dd��|�d
dk��|�d
dk��|�ddk��dD]:}	t	|��}�#t$r|�	d
|z��Y�7wxYwdS|�	d|z��dS)Nr�i����	�0x)�maxsizei�l��)�
2147483648�
0o40000000000�0x100000000�"0b10000000000000000000000000000000z(OverflowError on huge integer literal %rl����l���������l����)�9223372036854775808�0o2000000000000000000000�0x10000000000000000�A0b100000000000000000000000000000000000000000000000000000000000000zWeird maxsize value %r)
r1�type�assertRaises�SyntaxError�eval�sysr<�
assertTrue�
OverflowError�fail)r3r<�sr4s    r5�test_plain_integerszTokenTests.test_plain_integersws~������c���D��G�G�,�,�,�����s�#�#�#������$�$�$�����]�3�3�3������#�#�#����+�t�T�2�2�2��������j� �	:����]�N�;�;�;��O�O�M�A�-�.�.�.��O�O�J��N�+�+�+��O�O�=��A�B�B�B�<�
N�
N��N��Q���A�A��$�N�N�N��I�I�H�1�L�M�M�M�M�M�N����	
N�
N��+�
+�
	:����3�5N�O�O�O��O�O�4�q�8�9�9�9��O�O�.��2�3�3�3��O�O�\�_`�`�a�a�a�Y�
N�
N��N��Q���A�A��$�N�N�N��I�I�H�1�L�M�M�M�M�M�N����
N�
N�
�I�I�.��8�9�9�9�9�9s$�D,�,"E�E�G�"G7�6G7c�&�d}d}d}d}d}d}d}d}dS)NrrAl���?l�
~��l!]cll������r2s  r5�test_long_integerszTokenTests.test_long_integers�s.��
����������*��S��S���r7c�2�d}d}d}d}d}d}d}d}d}d}d}dS)Ng��Q�	@g�s@gj�t��?g��
�Bg��t� =g�W�H�BgF�@rQr2s  r5�test_floatszTokenTests.test_floats�s=�������������������������r7c�^�tj��5tjdt��|�td��d��|�td��d��ddd��n#1swxYwY|�tt
d��dS)N�ignorez1 if 1else 0�z1 if 0else 0rz0 if 1Else 0)�warnings�catch_warnings�simplefilter�
SyntaxWarningr1rIrGrH�r3s r5� test_float_exponent_tokenizationz+TokenTests.test_float_exponent_tokenization�s���
�
$�
&�
&�	6�	6��!�(�M�:�:�:����T�.�1�1�1�5�5�5����T�.�1�1�1�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	
���+�t�^�<�<�<�<�<s�A!B�B�Bc
�:�tD]F}|�t|��t|�dd�������GtD]#}|�tt|���$|�ttd��dS)N�_��_0)�VALID_UNDERSCORE_LITERALSr1rI�replace�INVALID_UNDERSCORE_LITERALSrGrH�	NameError)r3�lits  r5�test_underscore_literalsz#TokenTests.test_underscore_literals�s���,�	D�	D�C����T�#�Y�Y��S�[�[��b�-A�-A�(B�(B�C�C�C�C�.�	6�	6�C����k�4��5�5�5�5����)�T�4�0�0�0�0�0r7c��|j}|dd��|dd��|dd��|dd��|dd��|dd	��|d
d	��|dd	��|dd
��|dd
��|dd��|dd��|dd��|dd��|dd��|dd��|dd��dS)N�0b12z#invalid digit '2' in binary literal�0b1_2�0b2rzinvalid binary literal�0b�0o18z"invalid digit '8' in octal literal�0o1_8�0o8�0o1_zinvalid octal literal�0o�0x1_zinvalid hexadecimal literalr;�1_zinvalid decimal literal�012z`leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integersz1.2_�1e2_z1e+r�r3�checks  r5�test_bad_numerical_literalsz&TokenTests.test_bad_numerical_literals�s]���'��
��f�;�<�<�<�
��g�<�=�=�=�
��e�:�;�;�;�
��f�.�/�/�/�
��d�,�-�-�-�
��f�:�;�;�;�
��g�;�<�<�<�
��e�9�:�:�:�
��f�-�.�.�.�
��d�+�,�,�,�
��f�3�4�4�4�
��d�1�2�2�2�
��d�-�.�.�.�
��e�4�	5�	5�	5�	��f�/�0�0�0�
��f�/�0�0�0�
��e�.�/�/�/�/�/r7c�n��d�fd�	}dD�]�}t|dd��||�d�|dk���||�d	�|d
k���||�d���||�d���||�d
���|d|�d�|dk���|d|�d���||�d�d���tj��5tjddt����td��5t|�d�dd��ddd��n#1swxYwYtjdt����td��5t|�d�dd��ddd��n#1swxYwYddd��n#1swxYwY���|d��|d��|d��dS)NFc�����|���5|r�tjd���5}��td��5t|dd��ddd��n#1swxYwYddd��n#1swxYwY��|g��n��|d���ddd��dS#1swxYwYdS)N)�exprT)�record�invalid \w+ literal�
<testcase>rI)�errtext)�subTestrXrY�assertRaisesRegexrH�compiler1r)�test�error�wr3s   �r5rwz8TokenTests.test_end_of_numerical_literals.<locals>.check�s�������4��(�(�	
<�	
<��<�!�0��=�=�=�@��!�3�3�K�$:�<�<�@�@�#�D�,��?�?�?�@�@�@�@�@�@�@�@�@�@�@����@�@�@�@�@�@�@�@�@�@�@�@�@�@�@����@�@�@�@��$�$�Q��,�,�,�,��-�-�d�$:�.�<�<�<�	
<�	
<�	
<�	
<�	
<�	
<�	
<�	
<�	
<�	
<�	
<�	
<����	
<�	
<�	
<�	
<�	
<�	
<sX�C�B�A*�B�*A.�.B�1A.�2B�5C�B	�C�B	�	1C�C�C)�0xf�0o7�0b1�9�0z1.�1e3�1jr~rIzand xr�)r�zor xr�zin xznot in xzif x else yzx if zelse y�[zfor x in ()]�spamTrV�"is" with a literalr}zis xr�z[0x1ffor x in ()]z[0x1for x in ()]z[0xfor x in ()]�F)	r�rXrY�filterwarningsr[�assertWarnsRegexrZr�rH)r3rw�nums`  r5�test_end_of_numerical_literalsz)TokenTests.test_end_of_numerical_literals�s>���
	<�
	<�
	<�
	<�
	<�
	<�D�	@�	@�C��C��v�.�.�.��E�S�-�-�-��u��6�6�6�6��E�S�,�,�,�s�c�z�3�3�3�3��E�S�,�,�,�����E�S�"�"�"�#�#�#��E�S�%�%�%�&�&�&��E�%�#�%�%�%�c�U�l�<�<�<�<��E�'�c�'�'�'�(�(�(��E�S�,�,�,�d�+�+�+�+��(�*�*�	
@�	
@��'��2G�(5�7�7�7��*�*�=�2�4�4�@�@��s�L�L�L�,��?�?�?�@�@�@�@�@�@�@�@�@�@�@����@�@�@�@��%�g�}�=�=�=��+�+�K�2�4�4�@�@��s�L�L�L�,��?�?�?�@�@�@�@�@�@�@�@�@�@�@����@�@�@�@�	
@�	
@�	
@�	
@�	
@�	
@�	
@�	
@�	
@�	
@�	
@����	
@�	
@�	
@�	
@��	��!�"�"�"�
�� �!�!�!�
��� � � � � sZ�77F�.D�F�D�F�D�8F�E0�$F�0E4�4F�7E4�8F�F	�F	c��d}d}|�t|��dko||k��d}d}|�t|��dko||kot|��dk��d}d}|�t|��dko||kot|��dk��d}d}|�t|��d	ko||k��d
}d
}|�t|��d	ko||k��d}d}|�||��d}|�||��d}|�||��d}|�||��dS)Nr`r�'rW�'�"�"zdoesn't "shrink" does it�zdoes "shrink" doesn't itz2
The "quick"
brown fox
jumps over
the 'lazy' dog.
)rK�len�ordr1�r3r4�ys   r5�test_string_literalszTokenTests.test_string_literalss�����B������A���!��(>��Q��?�?�?���c�!�4�?�?�3�q�6�6�Q�;�+R�1��6�+R�c�!�f�f�PR�l�S�S�S���T��4�?�?�3�q�6�6�Q�;�+R�1��6�+R�c�!�f�f�PR�l�S�S�S�(��'������A���"��/��a��0�0�0�(��'������A���"��/��a��0�0�0�
��
H������A����
��	
����A����
��	
����A����
��	
����A�����r7c��d}|�|tu��|�ttd��dS)N.z.. .)rK�EllipsisrGrHrIr2s  r5�
test_ellipsiszTokenTests.test_ellipsis(s;��������X�
�&�&�&����+�t�V�4�4�4�4�4r7c���d}|D]m}|�t��5}t|dd��ddd��n#1swxYwY|�dt	|j�����ndS)N)zdef foo(z	
def foo(z	def foo(
z<test>�execzwas never closed)rGrHr��assertIn�str�	exception)r3�samplesrN�cms    r5�test_eof_errorzTokenTests.test_eof_error-s���:���	A�	A�A��"�"�;�/�/�
-�2���8�V�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��M�M�,�c�"�,�.?�.?�@�@�@�@�	A�	As�?�A	�A	N)�__name__�
__module__�__qualname__�test.supportr�test.support.warnings_helperrr6rOrRrTr]rgrxr�r�r�r�rQr7r5r-r-hs�������/�/�/�/�/�/�A�A�A�A�A�A�;�;�;�":�":�":�HT�T�T����=�=�=�1�1�1�0�0�0�,%!�%!�%!�N&�&�&�P5�5�5�
A�A�A�A�Ar7r-�var_annot_globalc� �eZdZd�Zd�Zd�ZdS)�CNSc��i|_dS�N��_dctr\s r5�__init__zCNS.__init__9s
����	�	�	r7c�>�||j|���<dSr�)r��lower)r3�item�values   r5�__setitem__zCNS.__setitem__;s��"'��	�$�*�*�,�,���r7c��|j|Sr�r��r3r�s  r5�__getitem__zCNS.__getitem__=s���y���r7N�r�r�r�r�r�r�rQr7r5r�r�8sA���������(�(�(�����r7r�c���eZdZddlmZddlmZddlmZd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(d&�Z)e*j+d'd(��d)���Z,d*�Z-d+�Z.d,�Z/d-�Z0d.�Z1d/�Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9�Z<d:�Z=d;�Z>d<�Z?d=�Z@d>�ZAd?�ZBd@�ZCdA�ZDdB�ZEdC�ZFdD�ZGdE�ZHdF�ZIdG�ZJdH�ZKdIS)J�GrammarTestsrrr)�check_no_warningsc�$�td��}dS)Nz	1, 0 or 1)rIr2s  r5�test_eval_inputzGrammarTests.test_eval_inputPs��������r7c��d}dg}d�}ttgdd||��dz
<|�|dg��dS)N��*c��dS�NrWrQrQr7r5�onez/GrammarTests.test_var_annot_basics.<locals>.oneYs���1r7rrW)�int�listr1)r3�var1�my_lstr�s    r5�test_var_annot_basicsz"GrammarTests.test_var_annot_basicsTs_�������	�	�	���	
���q�� ��s�s�u�u�Q�w������!��%�%�%�%�%r7c�&�t|d��t|d��t|d��t|d��t|d��t|d��t|d��t|d��t|d	��dS)
Nz
def f: intzx: int: strzdef f():
    nonlocal x: int
z[x, 0]: int
z	f(): int
z	(x,): intz"def f():
    (x, y): int = (1, 2)
z!def f():
    x: int
    global x
z!def f():
    global x
    x: int
rr\s r5�test_var_annot_syntax_errorsz)GrammarTests.test_var_annot_syntax_errors`s����4��.�.�.��4��/�/�/��4�"9�	:�	:�	:�	�4��1�1�1��4��.�.�.��4��-�-�-��4�">�	?�	?�	?�	�4�"2�	3�	3�	3�	�4�"0�	1�	1�	1�	1�	1r7c���|�t��5ddztt<ddd��n#1swxYwY|�t��5dtt<ddd��n#1swxYwYd�}|�|ji��d�}|��d�}|�t��5|��ddd��n#1swxYwYd�}	|��n?#t$r2}|�	t|��t��Yd}~nd}~wwxYwGd�d��}|�|jttd	���|�t��5Gd
�d��}ddd��n#1swxYwY|�t��5Gd�d
|��}ddd��dS#1swxYwYdS)NrWrc�"�d}dt_|S)N�Hello�rWr/��a�b)�sts r5�fz6GrammarTests.test_var_annot_basic_semantics.<locals>.f}s���B��A�C��Ir7c��dSr�rQrQr7r5�f_OKz9GrammarTests.test_var_annot_basic_semantics.<locals>.f_OK�����r7c�$�t|��dSr���print�r4s r5�fbadz9GrammarTests.test_var_annot_basic_semantics.<locals>.fbad�s���!�H�H�H�H�Hr7c�.�tt��dSr�)r��no_such_globalrQr7r5�f2badz:GrammarTests.test_var_annot_basic_semantics.<locals>.f2bad�s���.�!�!�!�!�!r7c�2�eZdZUeed<dZeed<dZd�ZdS)�6GrammarTests.test_var_annot_basic_semantics.<locals>.C�_C__foo�attrrNr/c��||_dSr�r�r2s  r5r�z?GrammarTests.test_var_annot_basic_semantics.<locals>.C.__init__�s
������r7N)	r�r�r�r��__annotations__rNr��zr�rQr7r5�Cr��s@��������J�J�J��A�s�O�O�O��A�
 �
 �
 �
 �
 r7r�)r�rNc�"�eZdZUde_edS)�9GrammarTests.test_var_annot_basic_semantics.<locals>.CBadrN)r�r�r��no_such_name_definedr�r�rQr7r5�CBadr��s �������12�$�)�3�2�2�2r7r�c�,�eZdZUeed<ge_edS)�:GrammarTests.test_var_annot_basic_semantics.<locals>.Cbad2r4N)r�r�r�r�r�r4r�r�rQr7r5�Cbad2r��s$��������������T���r7r�)
rG�ZeroDivisionError�no_name�does_not_existrer1r��UnboundLocalError�	Exception�assertIsrFr�r�)	r3r�r�r�r��er�r�r�s	         r5�test_var_annot_basic_semanticsz+GrammarTests.test_var_annot_basic_semanticsts���
�
�
�0�
1�
1�	9�	9�56�q�S�G�N�#�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
�
�
�y�
)�
)�	-�	-�+,�G�N�#�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
	�	�	�	
����*�B�/�/�/�	�	�	������	�	�	��
�
�0�
1�
1�	�	��D�F�F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	"�	"�	"�	.��E�G�G�G�G���	.�	.�	.��M�M�$�q�'�'�9�-�-�-�-�-�-�-�-�����	.����	 �	 �	 �	 �	 �	 �	 �	 �	
����*��#�,F�,F�G�G�G�
�
�
�y�
)�
)�	3�	3�
3�
3�
3�
3�
3�
3�
3�
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3��
�
�y�
)�
)�	�	�
�
�
�
�
��
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sm�:�>�>�A;�;A?�A?�C%�%C)�,C)�4
C?�?
D;�	(D6�6D;�
F'�'F+�.F+�G(�(G,�/G,c��Gd�dt��}Gd�d|���}|�|jdd��dS)Nc�$�eZdZed���ZdS)�>GrammarTests.test_var_annot_metaclass_semantics.<locals>.CMetac�"�dt��iS�Nr�)r�)�metacls�name�bases�kwdss    r5�__prepare__zJGrammarTests.test_var_annot_metaclass_semantics.<locals>.CMeta.__prepare__�s��)�3�5�5�1�1r7N)r�r�r��classmethodrrQr7r5�CMetar�s-������
�
2�
2��[�
2�
2�
2r7r	c��eZdZUded<dS)�;GrammarTests.test_var_annot_metaclass_semantics.<locals>.CC�ANNOT�XXN)r�r�r�r�rQr7r5�CCr�s��������K�K�K�K�Kr7r)�	metaclass�xxr)rFr1r�)r3r	rs   r5�"test_var_annot_metaclass_semanticsz/GrammarTests.test_var_annot_metaclass_semantics�s��	2�	2�	2�	2�	2�D�	2�	2�	2�	�	�	�	�	�5�	�	�	�	�����+�D�1�7�;�;�;�;�;r7c	��|�tji��|�tjdtt
tjttfttzd���|�tj	jdtd���|�tji��dS)Nr/)rWr4r�r��u�{)�123�o)r1r�r��
ann_moduler�r��typing�Tuple�float�MrFr
r\s r5�test_var_annot_module_semanticsz,GrammarTests.test_var_annot_module_semantics�s�������-�r�2�2�2�����3���3�V�\�#�s�(�5K�RU�X]�R]�^�^�	`�	`�	`������5�&)��5�5�	7�	7�	7�����4�b�9�9�9�9�9r7c���tjd��}|�t��5|���ddd��n#1swxYwY|�t��5|���ddd��n#1swxYwY|�t��5|�d��ddd��dS#1swxYwYdS)Nztest.ann_module3r�)r�import_fresh_modulerGre�	f_bad_ann�	g_bad_ann�	D_bad_ann)r3�ann_module3s  r5�test_var_annot_in_modulez%GrammarTests.test_var_annot_in_module�s���$�7�8J�K�K��
�
�
�y�
)�
)�	$�	$��!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
�
�
�y�
)�
)�	$�	$��!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
�
�
�y�
)�
)�	%�	%��!�!�!�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%s5�A�A�A�5B�B�B�;C�C"�%C"c���i}i}td||��|�|ddtd���|�t��5|dddd��dS#1swxYwYdS)Nz.'docstring'
__annotations__[1] = 2
x: int = 5
r�r/)rWr4)r�r1r�rG�KeyError)r3�gns�lnss   r5�test_var_annot_simple_execz'GrammarTests.test_var_annot_simple_exec�s�����r�#��� �#�	'�	'�	'�	
����.�/�Q�S�1A�1A�B�B�B�
�
�
�x�
(�
(�	#�	#��!�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�	A*�*A.�1A.c���dt��i}td|��|�|ddt��|�|ddt��|�t��5|ddddd��n#1swxYwYi�G�fd�d��}tdi|����|��ddt��dS)	Nr�z'X: int; Z: str = "Z"; (w): complex = 1jr4r�r�c�&��eZdZd�Z�fd�Zd�ZdS)�5GrammarTests.test_var_annot_custom_maps.<locals>.CNS2c��i|_dSr�r�r\s r5r�z>GrammarTests.test_var_annot_custom_maps.<locals>.CNS2.__init__�s
����	�	�	r7c�&��||j|<|�|<dSr�r��r3r�r��	nonloc_nss   �r5r�zAGrammarTests.test_var_annot_custom_maps.<locals>.CNS2.__setitem__�����"'��	�$��"'�	�$���r7c��|j|Sr�r�r�s  r5r�zAGrammarTests.test_var_annot_custom_maps.<locals>.CNS2.__getitem__�����y���&r7Nr�)r/s�r5�CNS2r+�sL�������
�
�
�
(�
(�
(�
(�
(�
'�
'�
'�
'�
'r7r3z
x: int = 1)r�r�r1r�r�rGr%)r3�nsr3r/s   @r5�test_var_annot_custom_mapsz'GrammarTests.test_var_annot_custom_maps�sV�������
'���
6��;�;�;�����-�.�s�3�S�9�9�9�����-�.�s�3�S�9�9�9�
�
�
�x�
(�
(�	'�	'�� �!�#�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'��	�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	
�\�2�t�t�v�v�&�&�&�����#4�5�c�:�C�@�@�@�@�@s�
B%�%B)�,B)c�����t���d�i�G��fd�d��}tdi|����|��ddt��dS)Nr�c�*��eZdZ�fd�Z�fd�Zd�ZdS)�1GrammarTests.test_var_annot_refleak.<locals>.CNS2c���d�i|_dSrr�)r3�cnss �r5r�z:GrammarTests.test_var_annot_refleak.<locals>.CNS2.__init__�s���.��4��	�	�	r7c�&��||j|<|�|<dSr�r�r.s   �r5r�z=GrammarTests.test_var_annot_refleak.<locals>.CNS2.__setitem__�r0r7c��|j|Sr�r�r�s  r5r�z=GrammarTests.test_var_annot_refleak.<locals>.CNS2.__getitem__�r2r7Nr�)r:r/s��r5r3r8�sV�������
5�
5�
5�
5�
5�
(�
(�
(�
(�
(�
'�
'�
'�
'�
'r7r3zX: strr4)r�r�r1r�)r3r3r:r/s  @@r5�test_var_annot_refleakz#GrammarTests.test_var_annot_refleak�s������e�e��&��,�	�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	
�X�r�4�4�6�6�"�"�"�����#4�5�c�:�C�@�@�@�@�@r7c�d�i}td|��|�|dd��d}t||��|�t|d����dg��dddtjd	�}td
|��|�|dd��dS)Nzx: tuple = 1, 2r4r�zdef f():
    x: int = yieldr�rW�r/��r�)r�r��crzx: Tuple[int, ...] = a,*b,c�rWr/r@rAr�)r�r1r�rr)r3r4�stmts   r5�test_var_annot_rhszGrammarTests.test_var_annot_rhs�s���
���
��#�#�#�����C��&�)�)�)�%���T�2��������g�b��g�i�i���4�&�1�1�1��9�!�f�l�
C�
C���
*�B�/�/�/�����C��/�2�2�2�2�2r7c�����d�}|��|d�|dii��d�}d�}|�|jjd��|�|jjd��d�}d�}d	�}d
�}d�}|��|d��|d��|dd
��|dd
��|��|d��|d��|dd
��|dd
dddddddd�
�
|d��|d��|dd
��|dd
d��|dd
dddddddd�
�
|dd
��|dd
d��|dd
dd��|dd
dddddddd�
�
dd�}	|	��|	d��|	d�|	gpd
g�|	gd�iod�Rii��|	didd
i��|	didd
ipi��dd�}
|
d��|
dd
��|
didd
i��dd�}|dd
��|dd
d��|d�|dgd�R�|dd
gd�R�|d!iddi��d!d �}|��|d��|dd
��|d!�|dgd"�R�|didd
i��|didd
d#���d!d$�}
|
d��|
dd
��|
dd
d��d!d%�}|dd
��|dd
d��|dd
dd��dd&�}|��|d��|dd
��|d'�|d�|didd
i��dd(�}|d��|dd
��|dd
d��dd)�}|dd
��|dd
d��|dd
dd��|d'�|d!iddi��d!d*�}|��|d��|dd
��|dd
d��|dgd+�R�|didd
d#���d!d,�}|d��|dd
��|dd
d��|dd
dd��|d'�|dd
gd-�R�|dgd"�Riddi��d!d.�}|dd
��|dd
d��|dd
dd��|dd
ddd��|d'�|dd
gd-�R�|dgd�Rid/di��tj��5tjd0t��	td�id2di��|�d3��n#t$rYnwxYwddd��n#1swxYwYd4�}|d5�6��d5d7�d8�}|dd
d5�9��|dd
d5d:�;��|dd
d5d:�<��d5d9�d=�}|dd
d5d5d:�>��|dd
d5d:d5�?��|�
ttd@��|�
ttdA��|�
ttdB��dC�}|�|dgddg�Rd
ddD��dEd
ddD�f��|�|dgd�d�R�d'if��|�
ttdF��|�|didGdHdI���ddGdHdI�f��|�|ddJdHidKdGi��ddGdHdI�f��t|dL��t|dM��dNtfdO�}|�|jdNti��d1t fdP�}|�|jd1t i��d1t fdQ�}|�|jd1t i��d�d1t fdS�}|�|jd1t i��d1tfdT�}|�|jd1ti��d1t"fdU�}|�|jd1t"i��d�dW�}|�|jdVdi��d�dX�}|�|jdVdi��d�dY�}|�|jdd
dZ���d�d[�}|�|jdd
dZ���d�d�d^�}|�|jdd
ddd_���d�dd`da�			d�dg�}|�|jdd
dddddedfdh���d�dd`da�dddd
d\ddit d]ddbddcddddedNdffdj�}|�|jdd
dt ddddedfdk�	��Gdl�dm��}Gdn�do|��}|�|jjdpdi��|�|jjdpdi��dq���dNtfdr���}|�|jdNti���dt���}�x}du���}�fdv�dw���}dx�dxgddy���}�������dz���}�gdjjd{���}d��fd|�}d�fd}�	}dd~��fd�
}dNt f�fd��}d��}d��}d��}d��}d��}d��}d��}d��}d��}d��}d��}d��}d��}d��}d��}dS)�Nc��dSr�rQrQr7r5�f1z%GrammarTests.test_funcdef.<locals>.f1r�r7rQc��dSr�rQ��one_arguments r5�f2z%GrammarTests.test_funcdef.<locals>.f2r�r7c��dSr�rQ��two�	argumentss  r5�f3z%GrammarTests.test_funcdef.<locals>.f3r�r7rJrNc��dSr�rQ)�one_args r5�a1z%GrammarTests.test_funcdef.<locals>.a1r�r7c��dSr�rQ)rO�argss  r5�a2z%GrammarTests.test_funcdef.<locals>.a2r�r7c��dSr�rQ��rests r5�v0z%GrammarTests.test_funcdef.<locals>.v0r�r7c��dSr�rQ�r�rZs  r5�v1z%GrammarTests.test_funcdef.<locals>.v1r�r7c��dSr�rQ�r�r�rZs   r5�v2z%GrammarTests.test_funcdef.<locals>.v2r�r7rWr/r@rAr����r:rc��dSr�rQ�r�s r5�d01z&GrammarTests.test_funcdef.<locals>.d01)r�r7�rWr�c��dSr�rQr�s  r5�d11z&GrammarTests.test_funcdef.<locals>.d111r�r7r�c��dSr�rQ�r�r�rBs   r5�d21z&GrammarTests.test_funcdef.<locals>.d215r�r7�rWr/r@�r/r@�r@rBc��dSr�rQr�s  r5�d02z&GrammarTests.test_funcdef.<locals>.d02<r�r7r��r/r�c��dSr�rQrls   r5�d12z&GrammarTests.test_funcdef.<locals>.d12Dr�r7c��dSr�rQ�r�r�rB�ds    r5�d22z&GrammarTests.test_funcdef.<locals>.d22Hr�r7c��dSr�rQr]s  r5�d01vz'GrammarTests.test_funcdef.<locals>.d01vLr�r7)rWr/r@rAc��dSr�rQr`s   r5�d11vz'GrammarTests.test_funcdef.<locals>.d11vSr�r7c��dSr�rQ�r�r�rBrZs    r5�d21vz'GrammarTests.test_funcdef.<locals>.d21vWr�r7c��dSr�rQr`s   r5�d02vz'GrammarTests.test_funcdef.<locals>.d02v]r�r7r?c��dSr�rQrs    r5�d12vz'GrammarTests.test_funcdef.<locals>.d12vdr�r7�r@rAr�c��dSr�rQ)r�r�rBrxrZs     r5�d22vz'GrammarTests.test_funcdef.<locals>.d22vlr�r7rxrVr4sfooz/Bytes should not work as keyword argument namesc��|Sr�rQ��keys r5�pos0key1z+GrammarTests.test_funcdef.<locals>.pos0key1s��S�jr7�dr�)�k2c��||||fSr�rQ)�p1�p2�k1r�s    r5�pos2key2z+GrammarTests.test_funcdef.<locals>.pos2key2�s��B�r�"�R�K�-?r7)r���)r�r�)r�r�c��|||||fSr�rQ)r�r�r�r��kwargs     r5�pos2key2dictz/GrammarTests.test_funcdef.<locals>.pos2key2dict�s���B�r�"�U�AR�:Rr7)r��tokwarg1�tokwarg2)r�r�r�zdef f(*): passzdef f(*,): passzdef f(*, **kwds): passc�
�||fSr�rQ)rV�kwargss  r5r�z$GrammarTests.test_funcdef.<locals>.f�s����<�r7�r4r�)rWr@rAzf(1, x=2, *(3,4), x=5)�	scrambled�fried)�eggsr�r�r�z
f(*g(1=2))zf(**g(1=2))�returnc��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7r�c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7r�c��dSr�rQr�s  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQrws    r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7)r�rBc��dSr�rQrws    r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7r��gc��dSr�rQ)r�r�rBrxr�r�r�s       r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7)r�rBr�r��
)�i�j�hr��k��c��dSr�rQ�r�r�rBrxr�r�r�r�r�r�r�s           r5r�z$GrammarTests.test_funcdef.<locals>.f����"�dr7)r�rBr�r�r�r�r�r�r�c��dSr�rQr�s           r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7)	r�rBr�r�r�r�r�r�r�c��eZdZdd�ZdS)�'GrammarTests.test_funcdef.<locals>.Spam�	_Spam__kwrWc��dSr�rQ)r3r�s  r5r�z)GrammarTests.test_funcdef.<locals>.Spam.f�����r7N)r�rW)r�r�r�r�rQr7r5�Spamr��s(������
�
�
�
�
�
r7r�c��eZdZdS)�&GrammarTests.test_funcdef.<locals>.HamN�r�r�r�rQr7r5�Hamr����������r7r�r�c��|Sr�rQr�s r5�nullz'GrammarTests.test_funcdef.<locals>.null�s��A�Xr7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�s���$r7Fc��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�����$r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c����|��Sr�rQ)r�r�s �r5�<lambda>z+GrammarTests.test_funcdef.<locals>.<lambda>�s���4�4��7�7�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7.c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c����Sr�rQ��closures�r5r�z$GrammarTests.test_funcdef.<locals>.f�s����r7c����Sr�rQ)r4r�s �r5r�z$GrammarTests.test_funcdef.<locals>.f�s���7�Nr7�r�c����Sr�rQ)r�r�s �r5r�z$GrammarTests.test_funcdef.<locals>.f�s���g�~r7c����Sr�rQr�s�r5r�z$GrammarTests.test_funcdef.<locals>.f�s���w�r7c��dSr�rQrfs r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�rVs r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�rs r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�rVs  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�rs  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�rVs  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�s r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�rVrs  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�r�rVs   r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQr�s  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�rVrs   r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�rVrs   r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�rs  r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�r�rVrs    r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7c��dSr�rQ�r�r�rs   r5r�z$GrammarTests.test_funcdef.<locals>.f�r�r7r�)r�)r�r@)r�rWrBr/)rBr/r�rW)rAr�)r�rWrBr/r�r@r�rb)r�rWrBr/r�r@r�rbr�rcr�r:r�r�r�r�)r1�__code__�co_varnamesrXrYrZ�BytesWarningr�rM�	TypeErrorrGrHrIrr�r�r�rr��__call__)r3rHrLrQrTrWr[r^rargrjrmrrruryr{r}r�r�r�r�r�r�r�r�r�r�rxr�r�s                            @@r5�test_funcdefzGrammarTests.test_funcdef�s�����	���
�����
��B���
��B�
�"�
�
�
�"�"�"�$�$�$������0�2C�D�D�D������0�2F�G�G�G���� � � �������!�!�!�
�����
��1����
��1����
��1�a����
��1�a�	�	�	�
�����
��1����
��1����
��1�Q����
��1�Q�q��1�Q�q��1�Q����
��1����
��1����
��1�Q����
��1�Q�q�	�	�	�
��1�Q�q��1�Q�q��1�Q����
��1�Q����
��1�Q�q�	�	�	�
��1�Q�q�����
��1�Q�q��1�Q�q��1�Q���������������A������T�
�
���R�Y�A�3�����.�2�.��	�r�.�.�.�2�.�.�.�����s�1�g��������s�1�g�m�����������A������A�q�	�	�	�����#�a����� � � � ���A�q�	�	�	���A�q�!������Y�����A���������A�q��4���������S��G���������������A������A�q�	�	�	���V�����A�
��
�
�
�
�����#�a���������A�A������"�"�"�"���A������A�q�	�	�	���A�q�!����%�%�%�%���A�q�	�	�	���A�q�!������A�q�!�Q����"�"�"�"��������Q������Q��
�
�
���l�����d��������A�w����%�%�%�%���Q������Q��
�
�
���Q��1�
�
�
�(�(�(�(���Q��
�
�
���Q��1�
�
�
���Q��1�a������l�������c�1�X����'�'�'�'��������Q������Q��
�
�
���Q��1�
�
�
���Q��������� � �Q�Q��� � � �*�*�*�*���Q������Q��
�
�
���Q��1�
�
�
���Q��1�a������l�����Q���I�������Q�"��"�"�"�#�q��"�"�"�-�-�-�-���Q��
�
�
���Q��1�
�
�
���Q��1�a������Q��1�a�������l�����Q���I�������Q�$��$�$�$�C��8�$�$�$��
$�
&�
&�	M�	M��!�(�L�9�9�9�
M��'�'�F�1�;�'�'�'��	�	�K�L�L�L�L���
�
�
���
����		M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�	)�(�(���S�����'*�?�?�?�?�?����A�#��������A�#�#�&�&�&�&����A�#�#�&�&�&�&�'*�R�R�R�R�R���Q�q�C��c�:�:�:�:���Q�q�#�s�s�;�;�;�;����+�t�-=�>�>�>����+�t�->�?�?�?����+�t�-E�F�F�F�	 �	 �	 ������1�0�Q��F�0�0��a�0�0�0�9�9:��N�N�3D�	E�	E�	E������1��u��a����<��*<�=�=�=����+�t�-E�F�F�F������B�B�[��A�A�B�B��k�'�B�B�C�	E�	E�	E������@�@��@�F�;�+?�@�@��k�'�B�B�C�	E�	E�	E�	�4��.�.�.��4��/�/�/�	�D���������*�X�t�,<�=�=�=�����������*�S�#�J�7�7�7�����������*�S�#�J�7�7�7�#�#��#�#�#�#�����*�S�#�J�7�7�7��#���������*�S�#�J�7�7�7��5���������*�S�%�L�9�9�9���������*�S�!�H�5�5�5�!�!�!�!�����*�S�!�H�5�5�5�%�%�%�%�����*�!�!�,<�,<�=�=�=�(�(�(�(�����*�!�!�,<�,<�=�=�=�;�;�;�;�;�����*� �q�q�q�9�9�	;�	;�	;�	#�a��	#�	#��	#��	#�	#�	#�	#�����*� �q�q�q�q�q�!�R�1�1�	2�	2�	2�	#��RT�	#�	#�	#�A�	#�!�	#�1�	#�S�	#�Q�	#�1�	#�a�	#��	#��	#�	#�	#�	#�����*� !����!�!�RS� "�b�2�2�	3�	3�	3�	�	�	�	�	�	�	�	�	�����$���������/�+�q�1A�B�B�B������.��a�0@�A�A�A����	
��D����
�������*�X�t�,<�=�=�=����
��������
���	�	�	�	���
�	��

�t�S�	�!�	���
�	��	���d���D�	�	���
�	��
����	�	$���
%�	$���������"�"�"�"�"�"��%�%�%�%�%�%�%�&�3�&�&�&�&�&�&�	���������������������#�#�#�!�!�!����&�&�&�&�&�&�"�"�"�)�)�)�%�%�%�%�%s6�R,�,R�:R,�
R�R,�R�R,�,R0�3R0c��d�}|�|��d��d�}d�}|�|��gd���d&d�fd�fd	�}|�|��d��d'd�}|�|dd
��d��|�|dd
d
��d��t|d��t|d��dd�d�}|�|dd
��d��|�|dd
d���d��d�}d�}d�}	d�}
d�}d�}d�}
d�}d�}d �}d!�}d"�}d#�}d$�}d%�}dS)(Nc��dS�NrrQrQr7r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s��a�r7rc�&�ttSr�)r�rxrQr7r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s
��a��d�r7c��d�dD��S)Nc��g|]}d|k��	SrsrQ��.0r4s  r5�
<listcomp>z?GrammarTests.test_lambdef.<locals>.<lambda>.<locals>.<listcomp>�s��1�1�1��q�1�u�1�1�1r7)���r@rrQrQr7r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s��1�1�j�1�1�1�r7)rrWrrWc��|Sr�rQ�r�s r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s���r7c��|��Sr�rQ)r�s r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s��A�A�C�C�r7c��|��Sr�rQr�s r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s��!�!�#�#�r7r/c��||z|zSr�rQ)r4r�r�s   r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>�s��q�1�u�q�y�r7r�r@rbzlambda x: x = 2zlambda (None,): None�r�c��||z|zSr�rQ)r4r�r�s   r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��1�Q�3�q�5�r7�r��
c��dSr�rQrfs r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s���r7c��dSr�rQr�s r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��Q�r7c��dSr�rQr�s r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��a�r7c��dSr�rQr�s  r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>����r7c��dSr�rQr�s  r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>	s���r7c��dSr�rQr�s  r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>
rr7c��dSr�rQr�s r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��A�r7c��dSr�rQr�s  r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��Q�r7c��dSr�rQr�s   r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>
s��1�r7c��dSr�rQr�s  r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��q�r7c��dSr�rQr�s   r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>����r7c��dSr�rQr�s   r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>rr7c��dSr�rQr�s  r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��A�r7c��dSr�rQr�s    r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��1�r7c��dSr�rQr�s   r5r�z+GrammarTests.test_lambdef.<locals>.<lambda>s��q�r7rhrs�r1r)r3�l1�l2�l3�l4�l5�l6�l10�l11�l12�l13�l14�l15�l16�l17�l18�l19�l20�l21�l22�l23�l24s                      r5�test_lambdefzGrammarTests.test_lambdef�s���
�Z���������q�!�!�!�
�]��
1�
1���������y�y�y�)�)�)�#1�>�>�7�7�7�
=�
=�
=���������q�!�!�!�
(�
(�
(�������A�q���1�%�%�%������A�q�!���a�(�(�(��4�!2�3�3�3��4�!7�8�8�8�!�
(�
(�
(�
(�������A�a���&�)�)�)������A�a�"����v�.�.�.��l��������!�!��"�"��!�!���o��&�&��$�$�� � ��)�)��)�)��%�%��,�,��(�(���r7c�&�d}~d�}|��dS)NrWc��d}~dSr�rQr�s r5�fooz*GrammarTests.test_simple_stmt.<locals>.foos
���A�Q�Q�Qr7rQ)r3r4r4s   r5�test_simple_stmtzGrammarTests.test_simple_stmts)��
���	 �	 �	 �	������r7c��		d}d}dx}x}}d\}}}dx}x\}}}x\}}}}t|d��t|d��dS)NrWrn)rWr/)r@rAz	x + 1 = 1z
a + 1 = b + 2r)	r3r4r�r��abcr�r�rB�xyzs	         r5�test_expr_stmtzGrammarTests.test_expr_stmt$sr��	��
��������A�����1�a�(4�4��4�g�a��A�4���1�a�#��4��-�-�-��4��1�1�1�1�1r7c	�n�d}gd�}|D�]*}d�|��}|D�]}|�|��}|�|���5|�t|��5t	|��ddd��n#1swxYwYddd��n#1swxYwY|�dd��}|�|���5|�td��5t	|��ddd��n#1swxYwYddd��n#1swxYwY����,dS)N)r�r�)z{} fooz{} {{1:foo}}zif 1: {} foozif 1: {} {{1:foo}}zif 1:
    {} foozif 1:
    {} {{1:foo}}zcall to '{}')�sourcer4z(foo.)zinvalid syntax)�formatr�r�rHr�rc)r3�keywords�cases�keyword�
custom_msg�caser;s       r5�(test_former_statements_refer_to_builtinsz5GrammarTests.test_former_statements_refer_to_builtins3s@��"��
�
�
�� �
	%�
	%�G�'�.�.�w�7�7�J��
%�
%�����W�-�-���\�\��\�0�0�%�%��/�/��Z�H�H�%�%��V����%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%� ����x�8�8���\�\��\�0�0�%�%��/�/��=M�N�N�%�%��V����%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%��

%�
	%�
	%sl�B �-B		�=B �	B

�
B �B

�B � B$�'B$�D&�3D	�D&�D
�D&�D
�D&�&D*�-D*c���gd�}|\}}}|||f}~~~~~d\}}}~~~d\}}}}	}
}}~~~~	~
~d\}}}}	}
}}~~~~	~
~td��}
|
dd�=tddd	��dS)
Nrnr8�abcdefg�abcdrWr/z-del a, (b[0].c, (d.e, f.g[1:2])), [h.i.j], ()r~r�)r�r�)r3r7r4r�r�r8r�r�rBrxr�r�r�rEs              r5�
test_del_stmtzGrammarTests.test_del_stmtJs����g�g�����1�a���A�g���
�q�1�c����1�a�
�
�
�(���1�a��A�q�!�
��1��A�q�'���1�a��A�q�!�
��1��A�q��F�|�|����1��I��?��v�V�V�V�V�Vr7c��dSr�rQr\s r5�test_pass_stmtzGrammarTests.test_pass_stmtds���r7c��dSr�rQr\s r5�test_break_stmtzGrammarTests.test_break_stmtks���r7c���d}|rd}�d}|sd}	�#d}YnxYw|�|dkr|�|��d}|sd}		d}�	#d}wxYw|dkr|�|��dSdS)NrWrr`�okz&continue failed to continue inside tryz'continue inside try called except blockzfinally block not called�rM)r3r��msgs   r5�test_continue_stmtzGrammarTests.test_continue_stmtos���
��� �Q������	@��C�
@���
@�?�������
�	@��$�;�	��I�I�c�N�N�N����	�,�C�
������d��
�
�
�
��$�;�	��I�I�c�N�N�N�N�N�	�	s
��Ac�(��d�fd�	}|��dS)NrWrc���d}|r |dz
}	|r|dkr|dz}n|dz}�#�xYw|dks|dkr��d��dSdS)Nr/rWz1continue then break in try/except in loop broken!rM)�extra_burning_oil�count�	big_hippor3s   �r5�
test_innerz9GrammarTests.test_break_continue_loop.<locals>.test_inner�s�����I��	
���
���(��Y�!�^��)�Q�.�)����N�I���������q�y�
O�I��N�
O��	�	�M�N�N�N�N�N�
O�
Os�
 � �#)rWrrQ)r3rUs` r5�test_break_continue_loopz%GrammarTests.test_break_continue_loop�s8���
	O�
	O�
	O�
	O�
	O�
	O�	�
�����r7c��d�}d�}d�}|��|��}|��}|�|dd��t|d��dS)Nc��dSr�rQrQr7r5�g1z$GrammarTests.test_return.<locals>.g1�s��&�&r7c��dSr�rQrQr7r5�g2z$GrammarTests.test_return.<locals>.g2�s���r7c��ddg}dg|�RS)Nr/r@rWrQrs r5�g3z$GrammarTests.test_return.<locals>.g3�s���A��A��5�q�5�5�Lr7rnz unparenthesized star expr returnzclass foo:return 1r)r3rYr[r]r4r�s      r5�test_returnzGrammarTests.test_return�sv��������	�	�	�	������B�D�D���B�D�D������I�'I�J�J�J��4�!5�6�6�6�6�6r7c��d}|dkr|dz
}		n#YnxYw|�|d��d}|dkr|dz
}		n#YnxYw|�|d��d}|dkr|dz
}	ddzn#YnxYw|�|d��dD]#}|�|d��		n#YnxYw|�|d��dD]#}|�|d��		n#YnxYw|�|d��dD]'}|�|d��	ddzn#YnxYw|�|d��dS�Nrr/rW�rrWr0�r3rSs  r5�test_break_in_finallyz"GrammarTests.test_break_in_finally�s������a�i�	��Q�J�E�
���������������"�"�"����a�i�	��Q�J�E�
���������������"�"�"����a�i�	��Q�J�E�
��!����������������"�"�"��	�	�E����U�A�&�&�&�
�����������������"�"�"��	�	�E����U�A�&�&�&�
�����������������"�"�"��	�	�E����U�A�&�&�&�
��!������������������"�"�"�"�"s-��A�)A/�/A3�*B/�&C+�D&�&D+c��d}|dkr|dz
}		�#Y�xYw|�|d��d}|dkr|dz
}		�#Y�xYw|�|d��d}|dkr|dz
}	ddz�#Y�xYw|�|d��dD]}		�#Y�	xYw|�|d��dD]}		�#Y�	xYw|�|d��dD]}	ddz�	#Y�
xYw|�|d��dSr`r0rbs  r5�test_continue_in_finallyz%GrammarTests.test_continue_in_finally�s������a�i�	��Q�J�E�
���������������"�"�"����a�i�	��Q�J�E�
���������������"�"�"����a�i�	��Q�J�E�
��!����������������"�"�"��	�	�E�
���������������"�"�"��	�	�E�
���������������"�"�"��	�	�E�
��!����������������"�"�"�"�"s-��A�)A/�/A3�B�7B;�C�C#c���d�}|�|��d��d�}|�|��d��d�}|�|��d��dS)Nc��		dS#YdSxYwr�rQrQr7r5rYz/GrammarTests.test_return_in_finally.<locals>.g1s��
���q��q�q�q�q�q�q�q��
rWc��		dS#YdSxYw)Nr@rQrQr7r5r[z/GrammarTests.test_return_in_finally.<locals>.g2"s��
���q��q�q�q�q�q�q�qrhr@c�"�	ddzdS#YdSxYw)NrWrrArQrQr7r5r]z/GrammarTests.test_return_in_finally.<locals>.g3)s$��
��!����q��q�q�q�q�q�q�qs�	�rAr0)r3rYr[r]s    r5�test_return_in_finallyz#GrammarTests.test_return_in_finallys���	�	�	�
	
�������q�!�!�!�	�	�	�
	
�������q�!�!�!�	�	�	�
	
�������q�!�!�!�!�!r7c�
�d�}|�|d��d��|�|d��d��d�}|�|d��d��|�|d��d��dS)Nc�\�dD]%}d}|dkr|dz
}	||z|rn
cS#|rYnwxYw�&d||fS)Nrarrr��endrQ�r4rS�count2s   r5rYz;GrammarTests.test_break_in_finally_after_return.<locals>.g12sx���
"�
"�����r�k�"��b�L�F�"�$�v�~��"�!�E�"�"�"��1�"�!�E�E�E�E�E�E���%��'�'s��%�%Fr�T)rnrWr�c�R�dD] }dD]}	||z|rnccS#|rYnwxYw�!d||fS)Nra)r�rrnrQros   r5r[z;GrammarTests.test_break_in_finally_after_return.<locals>.g2@s{���
"�
"��&�"�"�F�"�$�v�~��"�!�E�E�"�"�"�"�"��1�"�!�E�E�E�E�E�E�E���%��'�'s�� � r0�r3rYr[s   r5�"test_break_in_finally_after_returnz/GrammarTests.test_break_in_finally_after_return0s���
	(�
	(�
	(�	
�����E���B�'�'�'������D���>�2�2�2�	(�	(�	(�	
�����E���B�'�'�'������D���>�2�2�2�2�2r7c�
�d�}|�|d��d��|�|d��d��d�}|�|d��d��|�|d��d��dS)	Nc�F�d}|dkr|dz
}	||r�S#|rY�wxYwd|fS)Nrr�rWrnrQ�r4rSs  r5rYz>GrammarTests.test_continue_in_finally_after_return.<locals>.g1NsW���E��#�+�
!���
��!� ��!� ��!��q�!� ��������%�<�s���FrWT)rnr�c�8�dD]}	||r�cS#|rY�wxYwd|fS)NrarnrQrvs  r5r[z>GrammarTests.test_continue_in_finally_after_return.<locals>.g2[sV���
!�
!��!� ��!� ��!�!�!��q�!� ��������%�<�s���r)rnrWr0rrs   r5�%test_continue_in_finally_after_returnz2GrammarTests.test_continue_in_finally_after_returnLs���		 �		 �		 �	
�����E���A�&�&�&������D���<�0�0�0�	 �	 �	 �	
�����E���A�&�&�&������D���:�.�.�.�.�.r7c�L�d�}d�}d�}d�}d�}d�}t|d��t|d��d	�}d
�}t|d��t|d��d
�}d�}d�}d�}d�}|�t|����dg��t|d��t|d��t|d��t|d��t|d��t|d��t|d��t|d��t|d��dS)Nc3�K�dV�dSr�rQrQr7r5r�z"GrammarTests.test_yield.<locals>.ghs����q�����r7c3�K�dEd{V��dS�NrQrQrQr7r5r�z"GrammarTests.test_yield.<locals>.gis����B���������r7c3�K�dV�}dSr�rQr�s r5r�z"GrammarTests.test_yield.<locals>.gks����1�W�W���r7c3�K�dEd{V��}dSr|rQr�s r5r�z"GrammarTests.test_yield.<locals>.gls�����]�]�]�]�]�]���r7c3�K�dV�dS�N)rWrWrQrQr7r5r�z"GrammarTests.test_yield.<locals>.gns����t�����r7c3�K�dV�}dSr�rQr�s r5r�z"GrammarTests.test_yield.<locals>.gos����4�Z�Z���r7zdef g(): yield from (), 1zdef g(): x = yield from (), 1c3�K�ddV�fdSr�rQrQr7r5r�z"GrammarTests.test_yield.<locals>.gts�����1�W�W����r7c3�K�ddEd{V��fdS�NrWrQrQrQr7r5r�z"GrammarTests.test_yield.<locals>.gus"������]�]�]�]�]�]�#�#�#�#r7zdef g(): 1, yield 1zdef g(): 1, yield from ()c3�,K�tdV���dSr��r�rQr7r5r�z"GrammarTests.test_yield.<locals>.gys�����!�G�G�����r7c3�.K�tdV�d��dSr�r�rQr7r5r�z"GrammarTests.test_yield.<locals>.gzs�����!�G�G�a�����r7c3�4K�tdEd{V����dSr|r�rQr7r5r�z"GrammarTests.test_yield.<locals>.g{s%�����r�M�M�M�M�M�M�#�#�#�#�#r7c3�6K�tdEd{V��d��dS)NrQrWr�rQr7r5r�z"GrammarTests.test_yield.<locals>.g|s'�����r�M�M�M�M�M�M�A�&�&�&�&�&r7c3�"K�d}dddg|�RV�dS)N�rAr�rbrWr/r@rQrYs r5r�z"GrammarTests.test_yield.<locals>.g~s'������q�!�Q�~��~�~�!5�!5�!5�!5�!5r7)rWr/r@rAr�rbzdef g(): f(yield 1)zdef g(): f(yield 1, 1)zdef g(): f(yield from ())zdef g(): f(yield from (), 1)�yieldz
yield fromzclass foo:yield 1zclass foo:yield from ()zdef g(a:(yield)): pass)rr1r�)r3r�s  r5�
test_yieldzGrammarTests.test_yieldfs~�����������"�"�"��������4�!<�=�=�=��4�!@�A�A�A����#�#�#��4�!6�7�7�7��4�!<�=�=�=���� � � �#�#�#�&�&�&�5�5�5�����a�a�c�c���%7�$8�9�9�9��4�!6�7�7�7��4�!9�:�:�:��4�!<�=�=�=��4�!?�@�@�@��4��)�)�)��4��.�.�.��4�!4�5�5�5��4�!:�;�;�;��4�!9�:�:�:�:�:r7c��d�}d�}|j}|dd��|dd��|dd��|dd��|d	d
��|dd
��|dd
��|dd��|dd��|dd��dS)Nc3�(K�d�dV�fD��dS)Nc��g|]}|��SrQrQr�s  r5r�zHGrammarTests.test_yield_in_comprehensions.<locals>.g.<locals>.<listcomp>�s��)�)�)��!�)�)�)r7rWrQrQr7r5r�z4GrammarTests.test_yield_in_comprehensions.<locals>.g�s&����)�)�Q�w�w�[�)�)�)�)�)�)r7c3�0K�d�dEd{V��fD��dS)Nc��g|]}|��SrQrQr�s  r5r�zHGrammarTests.test_yield_in_comprehensions.<locals>.g.<locals>.<listcomp>�s��/�/�/��!�/�/�/r7rQrQrQr7r5r�z4GrammarTests.test_yield_in_comprehensions.<locals>.g�s/����/�/�"�}�}�}�}�}�}�.�/�/�/�/�/�/r7z def g(): [(yield x) for x in ()]z!'yield' inside list comprehensionz)def g(): [x for x in () if not (yield x)]z-def g(): [y for x in () for y in [(yield x)]]z def g(): {(yield x) for x in ()}z 'yield' inside set comprehensionz#def g(): {(yield x): x for x in ()}z!'yield' inside dict comprehensionz#def g(): {x: (yield x) for x in ()}z def g(): ((yield x) for x in ())z#'yield' inside generator expressionz%def g(): [(yield from x) for x in ()]z class C: [(yield x) for x in ()]z[(yield x) for x in ()]r)r3r�rws   r5�test_yield_in_comprehensionsz)GrammarTests.test_yield_in_comprehensions�s*��)�)�)�/�/�/��'��
��0�1�	3�	3�	3�
��9�1�	3�	3�	3�
��=�1�	3�	3�	3�
��0�0�	2�	2�	2�
��3�1�	3�	3�	3�
��3�1�	3�	3�	3�
��0�3�	5�	5�	5�
��5�1�	3�	3�	3�
��0�1�	3�	3�	3�
��'�1�	3�	3�	3�	3�	3r7c�p�td���#t$rYnwxYwt�#t$rYdSwxYw)Nzjust testing)�RuntimeError�KeyboardInterruptr\s r5�
test_raisezGrammarTests.test_raise�sF����/�/�
/���!�!�!�T�T�!����$�
$�� �&�&�&�$�$�$�&���s��
��'�
5�5c�f�ddl}ddl}ddl}ddlm}ddlm}ddlm}m}ddlm}m}ddlm}m}dS)Nr)�time)�path�argv)rJr�r�r�)r3rJr�r�r�s     r5�test_importzGrammarTests.test_import�s����
�
�
���������������������	#�"�"�"�"�"�"�"�$�$�$�$�$�$�$�$�%�%�%�%�%�%�%�%�%�%r7c��dSr�rQr\s r5�test_globalzGrammarTests.test_global�r�r7c����d�d���fd�}dS)Nrc���dSr�rQr�s��r5r�z%GrammarTests.test_nonlocal.<locals>.f�s����r7rQ)r3r�r4r�s  @@r5�
test_nonlocalzGrammarTests.test_nonlocal�s6����
��
��	�	�	�	�	�	�	�	r7c��n,#t$r}|�d��Yd}~nd}~wwxYwdS#t$r }|�d��Yd}~dSd}~wwxYw)Nz6'assert True' should not have raised an AssertionErrorz;'assert True, msg' should not have raised an AssertionError)�AssertionErrorrM�r3r�s  r5�test_assertzGrammarTests.test_assert�s���	P���	P�	P�	P��I�I�N�O�O�O�O�O�O�O�O�����	P����	2�	2���	2�	2�	2��I�I�1�
2�
2�
2�
2�
2�
2�
2�
2�
2�����	2���s�
+�&�+�
A�A�AFz Won't work if __debug__ is Falsec�P�	|�d��n8#t$r+}|�|jdd��Yd}~nd}~wwxYw	|�d��dS#t$r3}|�t	|j��d��Yd}~dSd}~wwxYw)Nz%AssertionError not raised by assert 0rrNz+AssertionError not raised by 'assert False')rMr�r1rVr�r�s  r5�test_assert_failuresz!GrammarTests.test_assert_failures�s���	?�

�I�I�=�>�>�>�>���	/�	/�	/����Q�V�A�Y��.�.�.�.�.�.�.�.�����	/����
	E�

�I�I�C�D�D�D�D�D���	-�	-�	-����S���[�[�!�,�,�,�,�,�,�,�,�,�����	-���s"�
A
�!A�A
�(
B%�2(B � B%c�6�|�dd��|�dd��|�dd��|�t���5tddd��td	dd��ddd��dS#1swxYwYdS)
N�assert(x, "msg")zassertion is always true�assert(False, "msg")�assert(False,))�categoryzassert x, "msg"r~r�zassert False, "msg")rr�r[r�r\s r5�test_assert_syntax_warningsz(GrammarTests.test_assert_syntax_warnings�s��	
�!�!�"4�"<�	>�	>�	>��!�!�"8�"<�	>�	>�	>��!�!�"2�"<�	>�	>�	>��
#�
#�]�
#�
;�
;�	A�	A��%�|�V�<�<�<��)�<��@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As�#B�B�Bc��tj��5tjdt��	t	ddd��n%#t
$r|�d��YnwxYw|�t
��5t	ddd��ddd��n#1swxYwY|�t
��5t	ddd��ddd��n#1swxYwY|�t
��5t	ddd��ddd��n#1swxYwYddd��dS#1swxYwYdS)	Nr�zassert x, "msg" r~r�z4SyntaxError incorrectly raised for 'assert x, "msg"'r�r�r�)rXrYrZr[r�rHrMrGr\s r5�,test_assert_warning_promotes_to_syntax_errorz9GrammarTests.test_assert_warning_promotes_to_syntax_error�s����
$�
&�
&�	@�	@��!�'�=�9�9�9�
T��*�L�&�A�A�A�A���
T�
T�
T��	�	�R�S�S�S�S�S�
T�����"�"�;�/�/�
B�
B��*�L�&�A�A�A�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B��"�"�;�/�/�
F�
F��.��f�E�E�E�
F�
F�
F�
F�
F�
F�
F�
F�
F�
F�
F����
F�
F�
F�
F��"�"�;�/�/�
@�
@��(�,��?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s��D=�A�D=�A$�!D=�#A$�$D=�B�D=�B#	�#D=�&B#	�'D=�C"�D=�"C&	�&D=�)C&	�*D=�D%�D=�%D)	�)D=�,D)	�-D=�=E�Ec��								dSr�rQr\s r5�test_ifzGrammarTests.test_ifs)����	��	�	�	�	��dr7c�B�			d}	d}|�|d��dS)NrrWr/r0r2s  r5�
test_whilezGrammarTests.test_whiles<���	��
��	��A�����A�����r7c��dD]}�dD]\}}}�	Gd�d��}d}|d��D]}||z}�|dkr|�d��g}d	D]\}|�|���|�|gd���g}gd�x}x}	}
g|�|	�|
�RD]}|�|���|�|d
|z��dS)NrnrQc� �eZdZd�Zd�Zd�ZdS)�&GrammarTests.test_for.<locals>.Squaresc�"�||_g|_dSr�)�max�sofar)r3r�s  r5r�z/GrammarTests.test_for.<locals>.Squares.__init__2s�������
�
�
r7c�*�t|j��Sr�)r�r�r\s r5�__len__z.GrammarTests.test_for.<locals>.Squares.__len__5s��c�$�*�o�o�5r7c���d|cxkr|jks	nt�t|j��}||kr(|j�||z��|dz}||k�(|j|S)NrrW)r��
IndexErrorr�r��append)r3r��ns   r5r�z2GrammarTests.test_for.<locals>.Squares.__getitem__6s����A�:�:�:�:���:�:�:�:�
�*:���
�O�O���1�f���J�%�%�a��c�*�*�*��!��A��1�f���z�!�}�$r7N)r�r�r�r�r�r�rQr7r5�Squaresr�1s=������
 �
 �
 �
6�5�5�
%�
%�
%�
%�
%r7r�rr�izfor over growing sequence)rhrsrpr@)rMr�r1)r3r�r�r�r�r�r4�resultr�r�rBs           r5�test_forzGrammarTests.test_for,sC�����A�A��	�	�G�A�q�!�!��	%�	%�	%�	%�	%�	%�	%�	%�
�������%�%�A�!�A�#�a�a���8�	3��I�I�1�2�2�2���$�	�	�B�A��M�M�!������������+�+�+����I�I����A���!��a��!���	�	�A��M�M�!����������Q��'�'�'�'�'r7c���	ddzn#t$rYnwxYwddzn$#t$rYnt$r
}Yd}~n
d}~wYnxYwddzn#tttf$rYnwxYwddzn$#tttf$r
}Yd}~nd}~wwxYw	n#wxYw|�t��5tddd��tddd��ddd��dS#1swxYwYdS)NrWrz/try:
    pass
except Exception as a.b:
    pass�?r�z0try:
    pass
except Exception as a[b]:
    pass�r��EOFErrorr�rGrHr��r3rNs  r5�test_tryzGrammarTests.test_tryMs���	�
�a�C�C�
��!�	�	�	��D�	�����q�S�S����������%�%�%����������������
�q�S�S�S���)�%6�7�=�=�=���=����
�q�S�S�S���)�%6�7�D�D�D����������D����
�������
�
�
�{�
+�
+�	X�	X��H�#�v�V�V�V��I�3�PV�W�W�W�	X�	X�	X�	X�	X�	X�	X�	X�	X�	X�	X�	X����	X�	X�	X�	X�	X�	XsX��
���
?�	?�?�A�A"�!A"�%A+�+B�B�B�0#C � C$�'C$c��	ddzn #xgct%x�nn��Xx�YncYwxYw	ddzn5#xgct%x�nn�t%x�n
}d}~nd}~��Xx�YncYwxYw	ddzn-#xgctttf%x�nn��Xx�YncYwxYwddzn3#xgctttf%x�n
}d}~nd}~��Xx�YncYwxYw	n#wxYw|�t��5tddd��tddd��tddd��ddd��dS#1swxYwYdS)NrWrz0try:
    pass
except* Exception as a.b:
    passr�r�z1try:
    pass
except* Exception as a[b]:
    passztry:
    pass
except*:
    passr�r�s  r5�
test_try_starzGrammarTests.test_try_starfs��	�
�a�C�C�C��	�	�	�!�	�	�	�	�	�	������������������
�q�S�S�S������������$���!�.�.�.�.�.�.�$�$�$�$��������������������
�q�S�S�S��>�>�>��9�&7�8�>�>�>�>�>�>�$����������������
�q�S�S�S��E�E�E��9�&7�8�E�E�E�E�E�E�����������������������
�������
�
�
�{�
+�
+�	G�	G��I�3�PV�W�W�W��J�C�QW�X�X�X��8�#�v�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	GsA��%�/�-A!�%A+�+%B�B�+C�C�24D3�3D7�:D7c��						dSr�rQr\s r5�
test_suitezGrammarTests.test_suite~s���	��	�
���Dr7c��					dSr�rQr\s r5�	test_testzGrammarTests.test_test�s��	����"�48�Dr7c��	ddk}ddkr	ddkr	ddkr	ddkr	ddkr	ddkr	||ur	||ur	ddvr	ddvr	ddcxkr6dcxkr/dcxkr(dcxkr!dcxkrdcxkrdcxvr|cxvr	|cxur|urndSdSdSr�rQr2s  r5�test_comparisonzGrammarTests.test_comparison�s ���
�!�V����6��4���6��4��q�5��$��q�5��$���6��4���6��4���6��4��A�:��t���7��D��B�;����q�J�J�J�J�1�J�J�J�J��J�J�J�J�Q�J�J�J�J�!�J�J�J�J�q�J�J�J�J�A�J�J�J�J�Q�J�J�J�J�!�J�J�J�J�1�J�J�J�J�J�J�d�d�J�Jr7c���d�fd�	}|d��|d��|d��|d��|dd��tj��5tjd	t��t	d
dd��t	d
dd��t	ddd��t	ddd��ddd��dS#1swxYwYdS)Nr�c�4����||��dSr�r�r�rNr3s  �r5rwz6GrammarTests.test_comparison_is_literal.<locals>.check������%�%�d�C�0�0�0�0�0r7zx is 1zx is "thing"z1 is xzx is y is 1z
x is not 1z"is not" with a literalr�z	x is Noner~r�z
x is Falsez	x is Truezx is ...)r��rXrYrZr[r�rvs` r5�test_comparison_is_literalz'GrammarTests.test_comparison_is_literal�s>���	1�	1�	1�	1�	1�	1�	��h����
��n����
��h����
��m����
��l�5�6�6�6�
�
$�
&�
&�	6�	6��!�'�=�9�9�9��K��v�6�6�6��L�,��7�7�7��K��v�6�6�6��J��f�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�AB?�?C�Cc�>�����fd�}d�|d��|d��|d��|d��|d��|d��|d	��|d
��|d��|d��|d
��|d��|d��|d��|d��|d��|d��|d��|d��d�|d��|d��|d��|d��|d��|d��|d��|d��|d��|d ��d!�|d"��|d#��|d$��|d%��|d&��|d'��|d(��|d)��d*�|d+��d,�|d-��|d.��d/�|d0��|d1��d2�|d3��|d4��d5�|d6��d7�|d8��d9�|d:��|d;��|d<��d=�|d>��|d?��|d@��|dA��|dB��tj��5tjdCt��t	dDdEdF��t	dGdEdF��t	dHdEdF��t	dIdEdF��t	dJdEdF��t	dKdEdF��ddd��dS#1swxYwYdS)LNc�4����|���dSr�rr�s ��r5rwz2GrammarTests.test_warn_missed_comma.<locals>.check�r�r7z-is not callable; perhaps you missed a comma\?z[(1, 2) (3, 4)]z[(x, y) (3, 4)]z[[1, 2] (3, 4)]z[{1, 2} (3, 4)]z[{1: 2} (3, 4)]z[[i for i in range(5)] (3, 4)]z[{i for i in range(5)} (3, 4)]z[(i for i in range(5)) (3, 4)]z![{i: i for i in range(5)} (3, 4)]z[f"{x}" (3, 4)]z[f"x={x}" (3, 4)]z["abc" (3, 4)]z[b"abc" (3, 4)]z[123 (3, 4)]z
[12.3 (3, 4)]z[12.3j (3, 4)]z
[None (3, 4)]z
[True (3, 4)]z[... (3, 4)]z2is not subscriptable; perhaps you missed a comma\?z[{1, 2} [i, j]]z[{i for i in range(5)} [i, j]]z[(i for i in range(5)) [i, j]]z[(lambda x, y: x) [i, j]]z[123 [i, j]]z
[12.3 [i, j]]z[12.3j [i, j]]z
[None [i, j]]z
[True [i, j]]z[... [i, j]]zKindices must be integers or slices, not tuple; perhaps you missed a comma\?z[(1, 2) [i, j]]z[(x, y) [i, j]]z[[1, 2] [i, j]]z[[i for i in range(5)] [i, j]]z[f"{x}" [i, j]]z[f"x={x}" [i, j]]z["abc" [i, j]]z[b"abc" [i, j]]z.indices must be integers or slices, not tuple;z[[1, 2] [3, 4]]z-indices must be integers or slices, not list;z[[1, 2] [[3, 4]]]z [[1, 2] [[i for i in range(5)]]]z,indices must be integers or slices, not set;z[[1, 2] [{3, 4}]]z [[1, 2] [{i for i in range(5)}]]z-indices must be integers or slices, not dict;z[[1, 2] [{3: 4}]]z#[[1, 2] [{i: i for i in range(5)}]]z2indices must be integers or slices, not generator;z [[1, 2] [(i for i in range(5))]]z1indices must be integers or slices, not function;z[[1, 2] [(lambda x, y: x)]]z,indices must be integers or slices, not str;z[[1, 2] [f"{x}"]]z[[1, 2] [f"x={x}"]]z[[1, 2] ["abc"]]z'indices must be integers or slices, notz[[1, 2] [b"abc"]]z[[1, 2] [12.3]]z[[1, 2] [12.3j]]z[[1, 2] [None]]z[[1, 2] [...]]r�z[(lambda x, y: x) (3, 4)]r~r�z[[1, 2] [i]]z[[1, 2] [0]]z[[1, 2] [True]]z[[1, 2] [1:2]]z[{(1, 2): 3} [i, j]]r�)r3rwrNs` @r5�test_warn_missed_commaz#GrammarTests.test_warn_missed_comma�s�����	1�	1�	1�	1�	1�	1�
=��
��� � � �
��� � � �
��� � � �
��� � � �
��� � � �
��.�/�/�/�
��.�/�/�/�
��.�/�/�/�
��1�2�2�2�
��� � � �
��!�"�"�"�
������
��� � � �
��n����
��o����
������
��o����
��o����
��n����A��
��� � � �
��.�/�/�/�
��.�/�/�/�
��)�*�*�*�
��n����
��o����
������
��o����
��o����
��n����Z��
��� � � �
��� � � �
��� � � �
��.�/�/�/�
��� � � �
��!�"�"�"�
������
��� � � �=��
��� � � �<��
��!�"�"�"�
��0�1�1�1�;��
��!�"�"�"�
��0�1�1�1�<��
��!�"�"�"�
��3�4�4�4�A��
��0�1�1�1�@��
��+�,�,�,�;��
��!�"�"�"�
��#�$�$�$�
�� �!�!�!�6��
��!�"�"�"�
��� � � �
�� �!�!�!�
��� � � �
������
�
$�
&�
&�	B�	B��!�'�=�9�9�9��/��v�F�F�F��N�L�&�9�9�9��N�L�&�9�9�9��%�|�V�<�<�<��$�l�F�;�;�;��*�L�&�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�BL�L�Lc��d}d}d}dS)NrWrrQr2s  r5�test_binary_mask_opsz!GrammarTests.test_binary_mask_opss���������r7c��d}d}d}dS)Nr/rrWrQr2s  r5�test_shift_opszGrammarTests.test_shift_opss���������r7c��d}d}d}d}dS)NrWr/rrQr2s  r5�test_additive_opszGrammarTests.test_additive_opss��
���������r7c��d}d}d}d}dS)NrW��?rgrQr2s  r5�test_multiplicative_opsz$GrammarTests.test_multiplicative_opss�����������r7c��d}d}d}d}d}dS)NrWr���r�rQr2s  r5�test_unary_opszGrammarTests.test_unary_ops"s��������#��!���r7c��ddl}ddl}|jd}|���}|jd���}d}|d}|d}|dd�}|dd�}|dd�}|dd�}|dd�}|dd�}|dd�}i}d	|d	<d
|d<d|d
<d|d<t	|��}|�d����|�t|��d��dS)Nrr��01234rr����������rWr/rhr@r�rArnc�.�t|��j|fSr�)rFr�r�s r5r�z-GrammarTests.test_selectors.<locals>.<lambda>Ds��d�1�g�g�.��2�r7r�z[1, (1,), (1, 2), (1, 2, 3)])rJr�r��modulesr��sortr1r�)	r3rJr�rBr4r�rNrx�Ls	         r5�test_selectorszGrammarTests.test_selectors)s/��	���������H�Q�K���I�I�K�K���K���$�$�&�&����
�a�D��
�b�E��
�a��c�F��
�b�q�b�E��
�a�b�b�E��
�a�a�a�D��
�b�c�c�F��
�c�r�c�F��
�b��e�H��
����!����"����#����%����G�G��	���2�2��3�3�3�����Q���!?�@�@�@�@�@r7c��d}d}dddf}g}dg}dg}dddg}g}i}ddi}ddi}ddi}ddd�}ddd�}dddddd	d
�}dh}ddh}hd�}hd�}|}d
}d}dS)NrWr/r@r�rO)r�rOrAr�rb)r�rO�three�four�five�six>r�rOr�>r/r@rAr4rrQr2s  r5�
test_atomszGrammarTests.test_atomsGs�����
��
�!�Q�����
�C��
�M��
�!�Q�������
�A�J��
�A�K��
�Q�$���a� � ���a�!�!���a�!�Q��!�L�L��
�G��
�A�K��#�#�#���J�J��
�������r7c�<��Gd�d��}Gd�d��}Gd�d|��}Gd�d|��}Gd	�d
|||��}Gd�d��}d
���Gd�d����}�Gd�d����}�x}	Gd�d����}
�fd�Gd�d����}d�dgdGd�d����}�������Gd�d����}
�gdjjGd�d ����}dS)!Nc��eZdZdS)�%GrammarTests.test_classdef.<locals>.BNr�rQr7r5�Br�lr�r7r�c��eZdZdS)�&GrammarTests.test_classdef.<locals>.B2Nr�rQr7r5�B2r�mr�r7r�c��eZdZdS)�&GrammarTests.test_classdef.<locals>.C1Nr�rQr7r5�C1r�nr�r7r�c��eZdZdS)�&GrammarTests.test_classdef.<locals>.C2Nr�rQr7r5�C2ror�r7rc��eZdZdS)�%GrammarTests.test_classdef.<locals>.DNr�rQr7r5�Drpr�r7rc� �eZdZd�Zd�Zd�ZdS)�%GrammarTests.test_classdef.<locals>.Cc��dSr�rQr\s r5�meth1z+GrammarTests.test_classdef.<locals>.C.meth1rr�r7c��dSr�rQ)r3�args  r5�meth2z+GrammarTests.test_classdef.<locals>.C.meth2sr�r7c��dSr�rQ)r3rTrWs   r5�meth3z+GrammarTests.test_classdef.<locals>.C.meth3tr�r7N)r�r�r�r	rrrQr7r5r�rqs+������!�!�!�&�&�&�)�)�)�)�)r7r�c��|Sr�rQr�s r5�class_decoratorz3GrammarTests.test_classdef.<locals>.class_decoratorys��q�r7c��eZdZdS)�%GrammarTests.test_classdef.<locals>.GNr�rQr7r5�Grz��������r7rFc��eZdZdS)�%GrammarTests.test_classdef.<locals>.HNr�rQr7r5�Hr~rr7rc��eZdZdS)�%GrammarTests.test_classdef.<locals>.INr�rQr7r5�Ir�rr7rc����|��Sr�rQ)rBrs �r5r�z,GrammarTests.test_classdef.<locals>.<lambda>�s���?�?�1�%�%�r7c��eZdZdS)�%GrammarTests.test_classdef.<locals>.JNr�rQr7r5�Jr�rr7r.rWc��eZdZdS)�%GrammarTests.test_classdef.<locals>.KNr�rQr7r5�Kr �rr7r!c��eZdZdS)�%GrammarTests.test_classdef.<locals>.LNr�rQr7r5r�r#�rr7r�rc��eZdZdS)�%GrammarTests.test_classdef.<locals>.MNr�rQr7r5rr%�rr7r)r�)r3r�r�r�rrr�rrrxrrr!r�rrs               @r5�
test_classdefzGrammarTests.test_classdefjs�����
�
�
�
�
�
�
��������������������������� � � � � ��B�� � � �	*�	*�	*�	*�	*�	*�	*�	*�	)�(�(�	��
�
�
�
�
�
�
���"��
�
�
�
�
�
�
"�	!���	���
�
�
�
�
�
�
�	��	%�	%�	%�	%��
�
�
�
�
�
�
&�	%��

���	$�Q�	'��
�
�
�
�
�
�
(�	'��	)����	)�	)�/�	:�	:��
�
�
�
�
�
�
;�	:��
�	�1�	�	&�	/��
�
�
�
�
�
�
0�	/��
�
r7c�V�gd�}|�d�|D��dddd���dS)Nrnc��i|]}||dz��	SrhrQ�r�r�s  r5�
<dictcomp>z/GrammarTests.test_dictcomps.<locals>.<dictcomp>�s��.�.�.�A�!�A�a�C�.�.�.r7r/r@rAr0)r3�numss  r5�test_dictcompszGrammarTests.test_dictcomps�sB���y�y�����.�.��.�.�.�A�!��0B�0B�C�C�C�C�Cr7c	�����	�gd�}gd��gd�}��d�|D��gd�����d�|D��gd�����d�|D��gd	������fd
�|D��gd������fd�|D��gd
�����d�td��D��dgddggd�gd�gd�g��d�}��||��gd����fd�}|��t�d��t�d��gd�}gd��gd��	��	fd�|D��}��|gd���dS)NrC)�Apple�Banana�Coconut)z  Applez Banana zCoco  nut  c�6�g|]}|�����SrQ)�strip)r�rNs  r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s ��2�2�2��!�'�'�)�)�2�2�2r7)r.r/z	Coco  nutc��g|]}d|z��SrprQr�s  r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s��.�.�.�A�!�a�%�.�.�.r7)r@rbr:r��c��g|]
}|dk�|��SrsrQr�s  r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s!��3�3�3��Q��U�3�!�3�3�3r7r�c�"��g|]}�D]}||f���SrQrQ�r�r�rN�strss   �r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s*���=�=�=�Q��=�=�1�1�a�&�=�=�=�=r7))rWr.�rWr/�rWr0)r/r.�r/r/�r/r0)r@r.�r@r/�r@r0)rAr.�rAr/�rAr0)r�r.�r�r/�r�r0c�6��g|]}d��D��D]}||f���S)c��g|]}d|v�|��	S)r�rQ)r�r�s  r5r�z:GrammarTests.test_listcomps.<locals>.<listcomp>.<listcomp>�s"��8U�8U�8U�q�C�ST�H�8U��8U�8U�8Ur7rQr7s   �r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s9���V�V�V�Q�8U�8U�D�8U�8U�8U�V�V�1�1�a�&�V�V�V�Vr7)
r9r:r;r<r=r>r?r@rArBc�&�g|]}d�|����S)c�@���fd�t�dz��D��S)Nc���g|]}�|z��SrQrQ)r�r�r�s  �r5r�zLGrammarTests.test_listcomps.<locals>.<listcomp>.<lambda>.<locals>.<listcomp>�s���$>�$>�$>�a�Q��T�$>�$>�$>r7rW��rangerfs`r5r�z8GrammarTests.test_listcomps.<locals>.<listcomp>.<lambda>�s&���$>�$>�$>�$>�5��1��:�:�$>�$>�$>�r7rQ)r�r�s  r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s'��U�U�U�q�>�>�>��B�B�U�U�Ur7r�rW)rWr/rA)rWr@r:�)rWrA��@�c��d�|D��S)Nc�:�g|]}|dk�d|cxkodknc��S)r/rr@rQr�s  r5r�zEGrammarTests.test_listcomps.<locals>.test_in_func.<locals>.<listcomp>�s5��2�2�2�!�A��E�2�A��I�I�I�I�A�I�I�I�I�2�2�2r7rQ)�ls r5�test_in_funcz1GrammarTests.test_listcomps.<locals>.test_in_func�s��2�2�q�2�2�2�2r7)FFFc�Z����d�dD��ddgddgddgg��dS)	Nc�0�g|]}d�||dzfD����S)c��g|]}|��SrQrQ�r�r�s  r5r�zUGrammarTests.test_listcomps.<locals>.test_nested_front.<locals>.<listcomp>.<listcomp>�s��5�5�5�Q�q�5�5�5r7rWrQr�s  r5r�zJGrammarTests.test_listcomps.<locals>.test_nested_front.<locals>.<listcomp>�s/��G�G�G�!�5�5�1�a�!�e�*�5�5�5�G�G�Gr7)rWr@r�rWr/r@rAr�rbr0r\s�r5�test_nested_frontz6GrammarTests.test_listcomps.<locals>.test_nested_front�sL������G�G�w�G�G�G� �!�f�q�!�f�q�!�f�5�
7�
7�
7�
7�
7r7z"[i, s for i in nums for s in strs]z[x if y]))rW�Boeing)r/�Ford)r@�
Macdonalds))r��Airliner)r�Engine)��Cheeseburger))rWr�)rWr)r/r)r@r\c�V��g|]%\}}�D]\}}�D]\}}||k�||k�||f����&SrQrQ)	r��sno�sname�pno�pname�sp_sno�sp_pno�parts�supparts	       ��r5r�z/GrammarTests.test_listcomps.<locals>.<listcomp>�s���
�
�
���e�"'�
�
��3��(/�	
�
�%�V�V��F�]�
�
(+�f�}�
��%�.�
�
�
�
�
r7))rWrZ)rWr[)rXr[)rYr])r1rIr)
r3r+�spcsrQrV�	suppliersr4rer8rfs
`      @@@r5�test_listcompszGrammarTests.test_listcomps�s�����������-�-�-��5�5�5�����2�2�T�2�2�2�4T�4T�4T�U�U�U����.�.��.�.�.�0A�0A�0A�B�B�B����3�3�T�3�3�3�Y�Y�Y�?�?�?����=�=�=�=�$�=�=�=�G�G�G�	H�	H�	H�	
���V�V�V�V�$�V�V�V�9�9�9�	:�	:�	:�	
���U�U�E�RS�H�H�U�U�U��#��1�v�y�y�y�-�-�-�AT�AT�AT�U�	W�	W�	W�	3�	3�	3�	
�����d�+�+�-B�-B�-B�C�C�C�	7�	7�	7�	7�	7�	������4�!E�F�F�F��4��,�,�,�
�
�
�	�
�
�
��
�
�
��
�
�
�
�
� )�
�
�
��	
����=�=�=�	>�	>�	>�	>�	>r7c
�>	��d�td��D��}|�t|��d�td��D����	t|��|�d��n#t$rYnwxYwd�	�fd��D��}t|��|�d��n#t
$rYnwxYw|�t
d�d	D����d
�d	D����|�t
d�dD����d
�dD����d�td��D���d�d��D��D��}|�t|��td�td��D������|�td�td��D����td�td��D������|�td�td��D����td�td��D������|�td�d�td��D��D����td�td��D������|�td�d�d�td��D��D��D����td�td��D������|�td�d�d�td��D��D��D����td �td��D������|�td!�d"�d#�td��D��D��D����td$�td��D������|�td%�d&�d'�td��D��D��D����d(��t|d)��t|d*��dS)+Nc3�HK�|]}d�td��D��V��dS)c��g|]}|��SrQrQr�s  r5r�z7GrammarTests.test_genexps.<locals>.<genexpr>.<listcomp>�s��
#�
#�
#�A�a�
#�
#�
#r7r�NrHr�s  r5�	<genexpr>z,GrammarTests.test_genexps.<locals>.<genexpr>�s7����6�6��
#�
#��r���
#�
#�
#�6�6�6�6�6�6r7rWc��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��"8�"8�"8��1�"8�"8�"8r7r�z&should produce StopIteration exceptionc3��K�|]}�V��dSr�rQ)r�rxr�s  �r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s�������q�������r7zshould produce TypeErrorc3�(K�|]
}dD]}||fV��	�dS)rENrQ�r�r4r�s   r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s3����E�E��f�E�E��q�!�f�E�E�E�E�E�E�Er7rEc� �g|]}dD]}||f���S)rErQrqs   r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s,��Go�Go�Go�ST�hn�Go�Go�cd��A��Go�Go�Go�Gor7c3�(K�|]
}dD]}||fV��	�dS)�xyNrQrqs   r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s3����A�A��D�A�A�q�q�!�f�A�A�A�A�A�A�Ar7�abc� �g|]}dD]}||f���S)rtrQrqs   r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s+��Cg�Cg�Cg�q�bf�Cg�Cg�]^�Q��F�Cg�Cg�Cg�Cgr7c��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��"�"�"�1�Q�"�"�"r7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����'�'�1�Q�'�'�'�'�'�'r7c3�K�|]}|V��dSr�rQrUs  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s������q�������r7c��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��%;�%;�%;�A�a�%;�%;�%;r7c3� K�|]	}|dzV��
dS�r/NrQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s&����5�5�a�Q��T�5�5�5�5�5�5r7c��g|]}|dz��SrsrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��;T�;T�;T�Q�A�q�D�;T�;T�;Tr7c3�*K�|]}|dz�||zV��dSr|rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s/����;�;�Q�q��s�;�Q�q�S�;�;�;�;�;�;r7c�"�g|]}|dz�||z��
SrsrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s(��A`�A`�A`�!�\]�^_�\_�A`�!�A�#�A`�A`�A`r7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����?�?�1�Q�?�?�?�?�?�?r7c3�K�|]}|V��dSr�rQrUs  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����(>�(>�q��(>�(>�(>�(>�(>�(>r7c��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��E[�E[�E[�A�a�E[�E[�E[r7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>��"����L�L�1�Q�L�L�L�L�L�Lr7c3�K�|]}|V��dSr�rQrUs  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����(K�(K�q��(K�(K�(K�(K�(K�(Kr7c3�K�|]}|V��dSr�rQ�r�r�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>��"����4J�4J�1�Q�4J�4J�4J�4J�4J�4Jr7c��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>����Rh�Rh�Rh�YZ�ST�Rh�Rh�Rhr7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�r�r7c��g|]}|��SrQrQrUs  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��(K�(K�(K�q��(K�(K�(Kr7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�r�r7c��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�r�r7c3�K�|]}|V��dS�TNrQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����\�\�1�Q�\�\�\�\�\�\r7c3�K�|]}|V��dSr�rQrUs  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����(S�(S�q��(S�(S�(S�(S�(S�(Sr7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>��"����4R�4R�1�Q�4R�4R�4R�4R�4R�4Rr7c��g|]}|��SrQrQr�s  r5r�z-GrammarTests.test_genexps.<locals>.<listcomp>�s��bx�bx�bx�ij�cd�bx�bx�bxr7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s"����e�e�1�Q�e�e�e�e�e�er7c3�K�|]}�dS)FNrQrUs  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�s����(\�(\�q�(\�(\�(\r7c3�K�|]}|V��dSr�rQr�s  r5rmz,GrammarTests.test_genexps.<locals>.<genexpr>�r�r7rzfoo(x for x in range(10), 100)zfoo(100, x for x in range(10)))	rIr1�nextrM�
StopIterationr�r��sumr)r3r�r�r�s   @r5�test_genexpszGrammarTests.test_genexps�s����6�6�U�1�X�X�6�6�6������a���"8�"8�e�B�i�i�"8�"8�"8�9�9�9�	���G�G�G��I�I�>�?�?�?�?���	�	�	��D�	����
��	�����A����A���G�G�G��I�I�0�1�1�1�1���	�	�	��D�	����	
����E�E�f�E�E�E�E�E�Go�Go�X^�Go�Go�Go�p�p�p�����A�A�d�A�A�A�A�A�Cg�Cg�TX�Cg�Cg�Cg�h�h�h�"�"��b�	�	�"�"�"��'�'���A����'�'�'������Q����%;�%;��r���%;�%;�%;�!<�!<�=�=�=�����5�5�5��9�9�5�5�5�5�5�s�;T�;T�%�PR�)�)�;T�;T�;T�7U�7U�V�V�V�����;�;�%��)�)�;�;�;�;�;�S�A`�A`�u�UW�y�y�A`�A`�A`�=a�=a�b�b�b�����?�?�(>�(>�E�"�I�I�(>�(>�(>�?�?�?�?�?��E[�E[�QV�WY�QZ�QZ�E[�E[�E[�A\�A\�]�]�]�����L�L�(K�(K�4J�4J��b�	�	�4J�4J�4J�(K�(K�(K�L�L�L�L�L�c�Rh�Rh�^c�df�^g�^g�Rh�Rh�Rh�Ni�Ni�j�j�j�����L�L�(K�(K�4J�4J��b�	�	�4J�4J�4J�(K�(K�(K�L�L�L�L�L�c�Rh�Rh�^c�df�^g�^g�Rh�Rh�Rh�Ni�Ni�j�j�j�����\�\�(S�(S�4R�4R��b�	�	�4R�4R�4R�(S�(S�(S�\�\�\�\�\�^a�bx�bx�ns�tv�nw�nw�bx�bx�bx�^y�^y�z�z�z�����e�e�(\�(\�4R�4R��b�	�	�4R�4R�4R�(\�(\�(\�e�e�e�e�e�gh�i�i�i��4�!A�B�B�B��4�!A�B�B�B�B�Bs$�$A;�;
B�B�2C�
C�
Cc�����d�d�t���D��}d�|�tt|����d��d�d���fd�t���D��}d�d�|�d�td��D��t|����|�d�td��D��gd	���|�td
�td��D����gd	���|�d�dD��gd
���|�td�dD����gd���dS)Nr�c3�K�|]}|V��dSr�rQr)s  r5rmz;GrammarTests.test_comprehension_specials.<locals>.<genexpr>�s"����)�)�1�Q�)�)�)�)�)�)r7r�Fc3�H�K�|]}��t���D]}||fV��	�dSr�rH)r�r�r��tr4s   ��r5rmz;GrammarTests.test_comprehension_specials.<locals>.<genexpr>�s?�����O�O�!�1�O�e�A�h�h�O�O���1��O�O�O�O�O�O�Or7Tc�:�g|]}td��D]}||f���S�r�rH)r�r�r�s   r5r�z<GrammarTests.test_comprehension_specials.<locals>.<listcomp>�s/��E�E�E�A�E�!�H�H�E�E�q�1�Q�%�E�E�E�Er7c�&�g|]}|dz�|dz�|��SrorQr�s  r5r�z<GrammarTests.test_comprehension_specials.<locals>.<listcomp>s*��C�C�C��1�q�5�C�A��E�C�1�C�C�Cr7)rWr�rcc3�.K�|]}|dz�|dz�|V��dS)r/r@NrQr�s  r5rmz;GrammarTests.test_comprehension_specials.<locals>.<genexpr>s4����E�E�A�a�!�e�E�q�1�u�E�a�E�E�E�E�E�Er7c��g|]\}|��SrQrQr�s  r5r�z<GrammarTests.test_comprehension_specials.<locals>.<listcomp>s��9�9�9���!�9�9�9r7))rAr�)rbr�c3�K�|]\}|V��	dSr�rQr�s  r5rmz;GrammarTests.test_comprehension_specials.<locals>.<genexpr>s$����=�=�B�A�a�=�=�=�=�=�=r7))rc)rd)r:)rcrdr:)rIr1r�r�)r3r�r�r4s  @@r5�test_comprehension_specialsz(GrammarTests.test_comprehension_specials�s{������)�)��a���)�)�)��q�1�����T�!�W�W���r�*�*�*�
��E��O�O�O�O�O�u�Q�x�x�O�O�O�1�
��4�q����E�E��r���E�E�E�t�A�w�w�O�O�O�	
���C�C�e�B�i�i�C�C�C�Y�Y�Y�O�O�O�����E�E��r���E�E�E�E�E�y�y�y�Q�Q�Q�	
���9�9�&8�9�9�9�9�9�9�E�E�E�����=�=�*<�=�=�=�=�=�y�y�y�I�I�I�I�Ir7c��Gd�dt��}|��5	ddd��n#1swxYwY|��5}	ddd��n#1swxYwY|��5\}}	ddd��n#1swxYwY|��5|��5	ddd��n#1swxYwYddd��n#1swxYwY|��5}|��5}	ddd��n#1swxYwYddd��n#1swxYwY|��5}|��5	ddd��n#1swxYwYddd��n#1swxYwY|��5	ddd��n#1swxYwY|��5}	ddd��n#1swxYwY|��5\}}|��5}	ddd��n#1swxYwYddd��n#1swxYwY|��5|��5	ddd��n#1swxYwYddd��n#1swxYwY|��5}|��5}	ddd��n#1swxYwYddd��n#1swxYwY|��5}|��5	ddd��n#1swxYwYddd��n#1swxYwY|��5}|��5}|��5}	ddd��n#1swxYwYddd��n#1swxYwYddd��n#1swxYwY|��5}|��5}|��5	ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��eZdZd�Zd�ZdS)�1GrammarTests.test_with_statement.<locals>.managerc��dS�Nr�rQr\s r5�	__enter__z;GrammarTests.test_with_statement.<locals>.manager.__enter__	s���vr7c��dSr�rQ)r3rVs  r5�__exit__z:GrammarTests.test_with_statement.<locals>.manager.__exit__r�r7N)r�r�r�r�r�rQr7r5�managerr�s2������
�
�
�
�
�
�
�
r7r�)�object)r3r�r4r�r�s     r5�test_with_statementz GrammarTests.test_with_statements�	��	�	�	�	�	�f�	�	�	��W�Y�Y�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�W�Y�Y�	�!��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�W�Y�Y�	�&�1�a��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�W�Y�Y�	�	���	�	�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�W�Y�Y�	�!�W�W�Y�Y�	�!��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�W�Y�Y�	�!�W�W�Y�Y�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	�	�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	���	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	��!�Q��G�I�I�	���		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	�	��G�I�I�	�	�
�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	���G�I�I�	���		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	���G�I�I�	�	�
�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	���G�I�I�	���G�I�I�	���	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�I�I�	���G�I�I�	���G�I�I�	�	�

�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s��,�0�0�A�A�A�$A5�5A9�<A9�
B:�B#�B:�#B'	�'B:�*B'	�+B:�:B>�B>�C?�C(�C?�(C,	�,C?�/C,	�0C?�?D�D�E�D-�!E�-D1	�1E�4D1	�5E�E�E�E'�'E+�.E+�<F
�
F�F�G�-F;�/G�;F?	�?G�F?	�G�G�G�'H�2H�4H�H	�H�H	�H�H�H�,I�7I�9I�I		�	I�I		�
I�I �#I �1J!�<J
�>J!�
J	�J!�J	�J!�!J%�(J%�6L�K1�K�K1�K�K1�!K�"K1�%L�1K5	�5L�8K5	�9L�L�L�M0�(M�3M�5M�M�M�M�	M�M0�M	�M0�M	� M0�0M4�7M4c�4�d�}|�d�d�d�fD��dg��|�d�d�d�fD��dg��|�d
d
��|�d
d
��|�d	d	��|�d	d	��|�dd��|�dd��|�d	d	��|�d
d
��|�dd��|�d	d	��|�dd��|�d
d
��|�dd��|�dd��|�dd��dS)Nc�$�t|��|S)z@helper to check that evaluation of expressions is done correctlyr�)rN�rets  r5�
_checkevalz2GrammarTests.test_if_else_expr.<locals>._checkevalMs���#�J�J�J��Jr7c�6�g|]}|���|����SrQrQr�s  r5r�z2GrammarTests.test_if_else_expr.<locals>.<listcomp>Ts)��N�N�N�1�����N�1�1�3�3�N�N�Nr7c��dS)NTrQrQr7r5r�z0GrammarTests.test_if_else_expr.<locals>.<lambda>Ts���r7c��dS�NFrQrQr7r5r�z0GrammarTests.test_if_else_expr.<locals>.<lambda>Ts��u�r7Tc�:�g|]}|d���
|d����Sr�rQr�s  r5r�z2GrammarTests.test_if_else_expr.<locals>.<listcomp>Us2��{�{�{��qr�qr�sx�qy�qy�{�1�1�U�8�8�{�{�{r7c��|rdndS)NFTrQr�s r5r�z0GrammarTests.test_if_else_expr.<locals>.<lambda>Us���8L����r7c��|rdndS)NTFrQr�s r5r�z0GrammarTests.test_if_else_expr.<locals>.<lambda>Us��`a�Xl�X\�X\�gl�r7rWr�zcheck 1rzcheck 2rbzcheck 3r/r@zcheck 4zcheck 5zcheck 6Frcr�rAg@r0)r3r�s  r5�test_if_else_exprzGrammarTests.test_if_else_exprKs���	�	�	�	
���N�N���}�}�(E�N�N�N�QU�PV�W�W�W����{�{�.L�.L�Nl�Nl�-m�{�{�{�C�~D�	E�	E�	E����!��C�C�C����Q��C�C�C����A��2�2�2����a�!�4�4�4�����!�4�4�4����!�a�H�H�H����!�]^�_�_�_����q�a�H�H�H����%�e�4�4�4����!�a�0�0�0����%�a�0�0�0����%�a�0�0�0����%�b�1�1�1����%�a�0�0�0����!�a�0�0�0�0�0r7c�4�|�dd��|�dd��|�dd��d}d}|�d||uu��|�d|u|u��|�d|cxuo|unc��dS)Nrdr/r@F)r1rK�assertFalser�s   r5�test_paren_evaluationz"GrammarTests.test_paren_evaluationfs��������+�+�+������+�+�+�����q�)�)�)�
��
������!�q�&�)�*�*�*����%�1�*��*�+�+�+�����!�����q�����)�)�)�)�)r7c��Gd�d��}|��}|�||zd��|dz}|�|jd��dS)Nc��eZdZd�Zd�ZdS)�'GrammarTests.test_matrix_mul.<locals>.Mc��dS)NrArQ�r3rs  r5�
__matmul__z2GrammarTests.test_matrix_mul.<locals>.M.__matmul__ts���qr7c��||_|Sr�)�otherr�s  r5�__imatmul__z3GrammarTests.test_matrix_mul.<locals>.M.__imatmul__vs����
��r7N)r�r�r�r�r�rQr7r5rr�ss2������
�
�
�
�
�
�
�
r7rrAr�)r1r�)r3r�ms   r5�test_matrix_mulzGrammarTests.test_matrix_mulpsx��	�	�	�	�	�	�	�	�
�A�C�C������Q���"�"�"�	�R��������"�%�%�%�%�%r7c��d�}|�|jd��|�t|jjtjz����d�}|d���}|�|j��|�|jd��|�t|jjtjz����dS)Nc��:K�d�}	t���d{V��dS)Nc��dSr�rQrQr7r5r�z8GrammarTests.test_async_await.<locals>.test.<locals>.sum�r�r7)�someobj)r�s r5r�z+GrammarTests.test_async_await.<locals>.tests3����
�
�
�
 ��i�i���������r7r�c�(�t|dd��|S)N�_markedT)�setattr)�funcs r5�	decoratorz0GrammarTests.test_async_await.<locals>.decorator�s���D�)�T�*�*�*��Kr7c��
K�dS)N�rQrQr7r5�test2z,GrammarTests.test_async_await.<locals>.test2�s�����2r7r�)	r1r�rK�boolr��co_flags�inspect�CO_COROUTINEr�)r3r�r�r�s    r5�test_async_awaitzGrammarTests.test_async_await~s���	 �	 �	 �	
������/�/�/�����T�]�3�g�6J�J�K�K�L�L�L�	�	�	�
�	�	�
��	�����
�&�&�&�������1�1�1�����U�^�4�w�7K�K�L�L�M�M�M�M�Mr7c�����Gd�dt���Gd�d�����fd�}|����5|���d��ddd��dS#1swxYwYdS)Nc��eZdZdS)�)GrammarTests.test_async_for.<locals>.DoneNr�rQr7r5�Doner��r�r7r�c��eZdZd�Zd�ZdS)�*GrammarTests.test_async_for.<locals>.AIterc��|Sr�rQr\s r5�	__aiter__z4GrammarTests.test_async_for.<locals>.AIter.__aiter__�s���r7c��K�t�r�)�StopAsyncIterationr\s r5�	__anext__z4GrammarTests.test_async_for.<locals>.AIter.__anext__�s����(�(r7N)r�r�r�r�r�rQr7r5�AIterr��s2������
�
�
�
)�
)�
)�
)�
)r7r�c���K����23d{V��}�6���23d{V��\}}�6���23d{V��}�6	��r�rQ)r�r�r�r�s  ��r5r4z(GrammarTests.test_async_for.<locals>.foo�s������ �5�7�7�
�
�
�
�
�
�
�a��#�#�e�g�g�
�
�
�
�
�
�
�d�a���&� �5�7�7�
�
�
�
�
�
�
�a��#���Js��,�?�r�rG�send)r3r4r�r�s  @@r5�test_async_forzGrammarTests.test_async_for�s�����#�#�#�#�#�9�#�#�#�	)�	)�	)�	)�	)�	)�	)�	)�		�		�		�		�		�		��
�
�t�
$�
$�	�	��C�E�E�J�J�t����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	��A)�)A-�0A-c�����Gd�dt���Gd�d�����fd�}|����5|���d��ddd��dS#1swxYwYdS)Nc��eZdZdS)�*GrammarTests.test_async_with.<locals>.DoneNr�rQr7r5r�r��r�r7r�c��eZdZd�Zd�ZdS)�-GrammarTests.test_async_with.<locals>.managerc��
K�dSr�rQr\s r5�
__aenter__z8GrammarTests.test_async_with.<locals>.manager.__aenter__�s�����vr7c��
K�dSr�rQ)r3�excs  r5�	__aexit__z7GrammarTests.test_async_with.<locals>.manager.__aexit__�s�����ur7N)r�r�r�r�r�rQr7r5r�r��s2������
�
�
�
�
�
�
�
r7r�c����K����4�d{V��	ddd���d{V��n#1�d{V��swxYwY���4�d{V��}	ddd���d{V��n#1�d{V��swxYwY���4�d{V��\}}	ddd���d{V��n#1�d{V��swxYwY���4�d{V�����4�d{V��	ddd���d{V��n#1�d{V��swxYwYddd���d{V��n#1�d{V��swxYwY���4�d{V��}���4�d{V��}	ddd���d{V��n#1�d{V��swxYwYddd���d{V��n#1�d{V��swxYwY���4�d{V��}���4�d{V��	ddd���d{V��n#1�d{V��swxYwYddd���d{V��n#1�d{V��swxYwY��r�rQ)r4r�r�r�s  ��r5r4z)GrammarTests.test_async_with.<locals>.foo�s�������w�y�y�
�
�
�
�
�
�
�
��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��w�y�y�
�
�
�
�
�
�
�A��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��w�y�y�
�
�
�
�
�
�
�F�Q���
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��w�y�y�
�
�
�
�
�
�
�
�'�'�)�)�
�
�
�
�
�
�
�
��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��w�y�y�
�
�
�
�
�
�
�A�w�w�y�y�
�
�
�
�
�
�
�A��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��w�y�y�
�
�
�
�
�
�
�A�w�w�y�y�
�
�
�
�
�
�
�
��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��Js��(�
2�2�	A�
A'�*A'�>B�
B�"B�6C>�C�	C>�
C%	�%C>�(C%	�)C>�>
D�D�E'�0E�2E'�
E	�E'�E	�E'�'
E1�4E1�G�F-�G�-
F7	�7G�:F7	�;G�
G�Gr�)r3r4r�r�s  @@r5�test_async_withzGrammarTests.test_async_with�s�����#�#�#�#�#�9�#�#�#�	�	�	�	�	�	�	�	�
	�
	�
	�
	�
	�
	��
�
�t�
$�
$�	�	��C�E�E�J�J�t����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	r�N)Lr�r�r�r�rr�rr�r�r�r�r�rrr#r(r5r=rEr�r1r5r9rBrFrHrJrOrVr^rcrerkrsrxr�r�r�r�r�r�r��unittest�
skipUnlessr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r&r,rir�r�r�r�r�r�r�r�r�rQr7r5r�r�As�������/�/�/�/�/�/�A�A�A�A�A�A�>�>�>�>�>�>����
&�
&�
&�1�1�1�(,�,�,�\<�<�<�:�:�:�	%�	%�	%�#�#�#�A�A�A�*A�A�A�"3�3�3�v&�v&�v&�p!)�!)�!)�N���2�2�2�%�%�%�.W�W�W�4
�
�
�������4���47�7�7�2#�2#�2#�h3#�3#�3#�j"�"�"�,3�3�3�8/�/�/�4%;�%;�%;�N3�3�3�6'�'�'�&�&�&�I�I�I����2�2�2�&�X���$F�G�G�
E�
E�H�G�
E�A�A�A�@�@�@�*���
�
�
�(�(�(�BX�X�X�2G�G�G�0���	9�	9�	9�K�K�K�"6�6�6�"PB�PB�PB�d���
���
������"�"�"�A�A�A�<���F���BD�D�D�=>�=>�=>�~!C�!C�!C�FJ�J�J�&B�B�B�H1�1�1�6*�*�*�&�&�&�N�N�N�*���.����r7r��__main__)r�rrr�rr�r�rJrX�test.ann_modulerr�collectionsr	r�r
rbrd�TestCaser-r�r�r�r�r��mainrQr7r5�<module>rs���,�+�+�+�+�+�+�&�&�&�&�&�&�=�=�=�=�=�=���������
�
�
�
���������%�$�$�$�$�$�
�
�
�
� � � � � � ���������������.4�4�4��nJA�JA�JA�JA�JA��"�JA�JA�JA�X������������B�B�B�B�B�8�$�B�B�B�J4�z����H�M�O�O�O�O�O��r7