
    0hh                    (   % S SK Jr  S SK Jr  S SKrS SKrS SKrS SKrS SK7  S SKJs  J	r	  S SK
r
S SKJr  S SKrS SKJrJr   " S S\R"                  5      r\\S	'    " S
 S5      r " S S\R"                  5      r\S:X  a  \R0                  " 5         gg)    check_syntax_error)import_helperN)*)ann_module2)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALSc                   n    \ rS rSrSSKJr  SSKJr  S rS r	S r
S rS	 rS
 rS rS rS rS rS rSrg)
TokenTests   r   r   check_syntax_warningc                 X    SnU R                  USS5        SnU R                  USS5        g )N   zbackslash for line continuationr   zbackslash ending commentassertEqualselfxs     :/opt/python-3.13.8/usr/lib/python3.13/test/test_grammar.pytest_backslashTokenTests.test_backslash   s6    A@A A9:    c                    U R                  [        S5      [        S5      5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  [        [        S5        SSKJn  US:X  ad  U R                  SS5        U R                  SS:  5        U R                  SS:  5        U R                  SS:  5        S	 H  n [	        U5      nM     g US:X  ad  U R                  SS5        U R                  SS:  5        U R                  SS:  5        U R                  SS:  5        S H  n [	        U5      nM     g U R                  SU-  5        g ! [         a    U R                  S
U-  5         M  f = f! [         a    U R                  S
U-  5         Mo  f = f)Nr      i	   0x)maxsizei   l    )
21474836480o400000000000x100000000"0b10000000000000000000000000000000z(OverflowError on huge integer literal %rl    l             l    )92233720368547758080o20000000000000000000000x10000000000000000A0b100000000000000000000000000000000000000000000000000000000000000zWeird maxsize value %r)
r   typeassertRaisesSyntaxErrorevalsysr   
assertTrueOverflowErrorfail)r   r   sr   s       r   test_plain_integersTokenTests.test_plain_integers'   s   cDG,s#$]3#+tT2j ]N;OOMA-.OOJN+OO=AB<NQA< ++35NOOO4q89OO.23OO\_``aYNQA	Y II.89 % NIIH1LMN % NIIH1LMNs$   (E7F7FFF>=F>c                 $    SnSnSnSnSnSnSnSng )Nr   r#   l   ? l   
~l!]c l            l    r   s     r   test_long_integersTokenTests.test_long_integersK   s*    *SSr   c                 4    SnSnSnSnSnSnSnSnSnSnSnSng )NgQ	@g     s@gjt?g  Bgt =g  WHBg     F@r4   r   s     r   test_floatsTokenTests.test_floatsU   s>    r   c                 :   [         R                  " 5          [         R                  " S[        5        U R	                  [        S5      S5        U R	                  [        S5      S5        S S S 5        U R                  [        [
        S5        g ! , (       d  f       N*= f)Nignorez1 if 1else 0   z1 if 0else 0r   z0 if 1Else 0)warningscatch_warningssimplefilterSyntaxWarningr   r+   r)   r*   r   s    r    test_float_exponent_tokenization+TokenTests.test_float_exponent_tokenizationc   sj    $$&!!(M:T.115T.115 ' 	+t^<	 '&s   AB
Bc           
         [          H7  nU R                  [        U5      [        UR                  SS5      5      5        M9     [         H  nU R                  [        [        U5        M      U R                  [        [        S5        g )N_ _0)r   r   r+   replacer	   r)   r*   	NameError)r   lits     r   test_underscore_literals#TokenTests.test_underscore_literalsk   s`    ,CT#YS[[b-A(BC -.Ck45 / 	)T40r   c                 N   U R                   nU" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS	5        U" S
S	5        U" SS	5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        g )N0b12z#invalid digit '2' in binary literal0b1_20b20b1_zinvalid binary literal0b0o18z"invalid digit '8' in octal literal0o1_80o80o1_zinvalid octal literal0o0x1_zinvalid hexadecimal literalr   1_zinvalid decimal literal012z`leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integersz1.2_1e2_z1e+r   r   checks     r   test_bad_numerical_literals&TokenTests.test_bad_numerical_literalss   s    ''f;<g<=e:;f./d,-f:;g;<e9:f-.d+,f34d12d-.e4	5 	f/0f/0e./r   c                 L  ^  SU 4S jjnS GH6  n[        USS5        U" U S3US:H  S9  U" U S3US	:H  S9  U" U S
35        U" U S35        U" U S35        U" SU S3US:H  S9  U" SU S35        U" U S3SS9  T R                  [        S5         [        U S3SS5        S S S 5        T R                  [        S5         [        U S3SS5        S S S 5        [
        R                  " 5          [
        R                  " S[        5        T R                  [        S5         [        U S3SS5        S S S 5        S S S 5        GM9     U" S5        U" S5        U" S5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NV= f! , (       d  f       GM  = f)Nc                   > TR                  U S9   U(       a\  [        R                  " SS9 nTR                  [        S5         [        U SS5        S S S 5        S S S 5        TR                  W/ 5        OTR                  U SS9  S S S 5        g ! , (       d  f       NB= f! , (       d  f       NK= f! , (       d  f       g = f)N)exprT)recordinvalid \w+ literal
<testcase>r+   )errtext)subTestr=   r>   assertRaisesRegexr*   compiler   r   )testerrorwr   s      r   r]   8TokenTests.test_end_of_numerical_literals.<locals>.check   s    4(!00=!33K$:<#D,?< > $$Q,--d$: . < )(< < >= )(s:   B0BBB+B0
BB
B-	)B00
B>)0xf0o70b190z1.1e31jre   r+   zand xrn   )rk   zor xrr   zin xznot in xzif x else yzx if zelse y[zfor x in ()]spamTu#   invalid character '⁄' \(U\+2044\)u   ⁄7rd   zis xrk   z[0x1ffor x in ()]z[0x1for x in ()]z[0xfor x in ()])F)ri   rh   r*   assertWarnsRegexr@   r=   r>   r?   )r   r]   nums   `  r   test_end_of_numerical_literals)TokenTests.test_end_of_numerical_literals   s   
	< DCCv.SE-u6SE,scz3SE,SE"#SE%&E#f%cUl<AcU,'(SE,d+ ''5[\3%tlF; ] &&}6LM3%tlF; N((*%%g}=++K24se4L,?4 +*# D. 	!" !  ]\ NM4 4 +*s<   E E1/2F!F2F 
E.	1
E?	
FF
F#	c                    SnSo R                  [        U5      S:H  =(       a    X:H  5        SnSo R                  [        U5      S:H  =(       a    X:H  =(       a    [        U5      S:H  5        SnSo R                  [        U5      S:H  =(       a    X:H  =(       a    [        U5      S:H  5        SnSnU R                  [        U5      S	:H  =(       a    X:H  5        S
nS
nU R                  [        U5      S	:H  =(       a    X:H  5        SnSnU R                  X5        SnU R                  X5        SnU R                  X5        SnU R                  X5        g )NrF   r   'r<   '   ""   zdoesn't "shrink" does itr   zdoes "shrink" doesn't itz2
The "quick"
brown fox
jumps over
the 'lazy' dog.
)r-   lenordr   r   r   ys      r   test_string_literalsTokenTests.test_string_literals   s-   BA!(>?c!??3q6Q;+R16+Rc!fPRlST??3q6Q;+R16+Rc!fPRlS('A"/0('A"/0 H 	 	 	r   c                 l    SnU R                  U[        L 5        U R                  [        [        S5        g )N.z.. .)r-   Ellipsisr)   r*   r+   r   s     r   test_ellipsisTokenTests.test_ellipsis   s)    X&+tV4r   c                     SnU HS  nU R                  [        5       n[        USS5        S S S 5        U R                  S[	        WR
                  5      5        MU     g ! , (       d  f       N8= f)N)zdef foo(z	
def foo(z	def foo(
z<test>execzwas never closed)r)   r*   ri   assertInstr	exception)r   samplesr0   cms       r   test_eof_errorTokenTests.test_eof_error   sQ    :A"";/28V, 0MM,c",,.?@ //s   A
A+	r4   N)__name__
__module____qualname____firstlineno__test.supportr   test.support.warnings_helperr   r   r1   r5   r8   rB   rK   r^   ry   r   r   r   __static_attributes__r4   r   r   r   r      sD    /A;":HT=10,&!P&P5
Ar   r   var_annot_globalc                   &    \ rS rSrS rS rS rSrg)CNS   c                     0 U l         g N_dctrA   s    r   __init__CNS.__init__   s	    	r   c                 <    X R                   UR                  5       '   g r   )r   lower)r   itemvalues      r   __setitem__CNS.__setitem__   s    "'		$**,r   c                      U R                   U   $ r   r   r   r   s     r   __getitem__CNS.__getitem__   s    yyr   r   Nr   r   r   r   r   r   r   r   r4   r   r   r   r      s    (r   r   c                      \ rS rSrSSKJr  SSKJr  SSKJr  S r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+\,RZ                  " S)S*5      S+ 5       r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSA rDSB rESC rFSD rGSE rHSF rISG rJSH rKSI rLSJ rMSK rNSLrOgM)NGrammarTests   r   r   r   )check_no_warningsc                     [        S5      ng )Nz	1, 0 or 1)r+   r   s     r   test_eval_inputGrammarTests.test_eval_input  s    r   c                 l    SnS/nS n[           [        /  SX#" 5       S-
  '   U R                  US/5        g )N   *   c                      gNr<   r4   r4   r   r   one/GrammarTests.test_var_annot_basics.<locals>.one
  s    r   r<   )intlistr   )r   var1my_lstr   s       r   test_var_annot_basics"GrammarTests.test_var_annot_basics  s<    		 suQw!%r   c                 l   [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S	5        [        U S
5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        g )Nz
def f: intzx: int: strzdef f():
    nonlocal x: int
zdef f():
    global x: int
zx: int = y = 1zz = w: int = 1zx: int = y: int = 1z[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
z#def f():
    x: int
    nonlocal x
z#def f():
    nonlocal x
    x: int
r   rA   s    r   test_var_annot_syntax_errors)GrammarTests.test_var_annot_syntax_errors  s    4.4/4 "9 	:4 "7 	84!124!124!67414.4-4 "> 	? 	4 "2 	3 	4 "0 	1 	4 "4 	5 	4 "0 	1r   c                    U R                  [        5         SS-  [        [        '   S S S 5        U R                  [        5         S[        [        '   S S S 5        S nU R                  UR                  0 5        S nU" 5         S nU R                  [        5         U" 5         S S S 5        S n U" 5          " S S5      nU R                  UR                  [        [        S	.5        U R                  [        5          " S
 S5      nS S S 5        U R                  [        5          " S SU5      nS S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! [         a)  nU R                  [        U5      [        5         S nANS nAff = f! , (       d  f       N= f! , (       d  f       g = f)Nr<   r   c                       Sn S[         l        U $ )NHellor<   r   ab)sts    r   f6GrammarTests.test_var_annot_basic_semantics.<locals>.f9  s    BACIr   c                      g r   r4   r4   r   r   f_OK9GrammarTests.test_var_annot_basic_semantics.<locals>.f_OK>      r   c                      [        W 5        g r   printr   s    r   fbad9GrammarTests.test_var_annot_basic_semantics.<locals>.fbadA  s	    !Hr   c                  "    [        [        5        g r   )r   no_such_globalr4   r   r   f2bad:GrammarTests.test_var_annot_basic_semantics.<locals>.f2badF  s
    .!r   c                   8    \ rS rSr% \\S'   Sr\\S'   SrS r	Sr
g)	6GrammarTests.test_var_annot_basic_semantics.<locals>.CiO  _C__fooattrr0   r   c                     Xl         g r   r   r   s     r   r   ?GrammarTests.test_var_annot_basic_semantics.<locals>.C.__init__S  s    r   r   N)r   r   r   r   r   __annotations__r0   r   zr   r   r4   r   r   Cr   O  s    JAsOA r   r   )r   r0   c                   (    \ rS rSr% S\l        \  Srg)9GrammarTests.test_var_annot_basic_semantics.<locals>.CBadiW  r   r4   N)r   r   r   r   no_such_name_definedr   r   r   r4   r   r   CBadr   W  s    12$)3r   r   c                   2    \ rS rSr% \\S'   / \l        \  Sr	g):GrammarTests.test_var_annot_basic_semantics.<locals>.Cbad2iZ  r   r4   N)
r   r   r   r   r   r   r   r   r   r   r4   r   r   Cbad2r   Z  s    Tr   r   )r)   ZeroDivisionErrorno_namedoes_not_existrI   r   r   UnboundLocalError	ExceptionassertIsr(   r   r   )	r   r   r   r   r   er   r   r   s	            r   test_var_annot_basic_semantics+GrammarTests.test_var_annot_basic_semantics0  sQ   0156qSGN# 2y)+,GN# *
	 	**B/		 01F 2	"	.G
	  	  	**#,FGy)3 3 * y)  *)O 21))  21  	.MM$q'9--	. *) *)sS   D9EE/E- <F#$F49
E
E
E*-
F 7FF #
F14
Gc                     " S S5      n " S SU5      n " S SU5      n " S S5      n " S	 S
X5      n " S SX15      nU R                  UR                  S[        05        U R                  UR                  0 5        U R                  UR                  S[        05        U R                  UR                  S[        05        U R                  UR                  0 5        U R                  UR                  0 5        g )Nc                        \ rS rSr% \\S'   Srg)4GrammarTests.test_annotations_inheritance.<locals>.Ai`  r   r4   Nr   r   r   r   r   r   r   r4   r   r   Ar   `      Ir   r   c                       \ rS rSrSrg)4GrammarTests.test_annotations_inheritance.<locals>.Bib  r4   Nr   r   r   r   r   r4   r   r   Br   b      r   r   c                        \ rS rSr% \\S'   Srg)4GrammarTests.test_annotations_inheritance.<locals>.Cid  r   r4   N)r   r   r   r   r   r   r   r4   r   r   r   r  d  r   r   r   c                        \ rS rSr% \\S'   Srg)4GrammarTests.test_annotations_inheritance.<locals>.Dif  attr2r4   Nr   r4   r   r   Dr  f  s    Jr   r  c                       \ rS rSrSrg)4GrammarTests.test_annotations_inheritance.<locals>.Eih  r4   Nr   r4   r   r   Er	  h  r  r   r
  c                       \ rS rSrSrg)4GrammarTests.test_annotations_inheritance.<locals>.Fij  r4   Nr   r4   r   r   Fr  j  r  r   r  r   r  )r   r   r   r   )r   r   r   r   r  r
  r  s          r   test_annotations_inheritance)GrammarTests.test_annotations_inheritance^  s    	 		 		 		 		 		 	**VSM:**B/**VcN;**WsO<**B/**B/r   c                 r     " S S[         5      n " S SUS9nU R                  UR                  S   S5        g )Nc                   $    \ rS rSr\S 5       rSrg)>GrammarTests.test_var_annot_metaclass_semantics.<locals>.CMetaiu  c                     S[        5       0$ Nr   )r   )metaclsnamebaseskwdss       r   __prepare__JGrammarTests.test_var_annot_metaclass_semantics.<locals>.CMeta.__prepare__v  s    )3511r   r4   N)r   r   r   r   classmethodr  r   r4   r   r   CMetar  u  s    2 2r   r  c                        \ rS rSr% S\S'   Srg);GrammarTests.test_var_annot_metaclass_semantics.<locals>.CCiy  ANNOTXXr4   N)r   r   r   r   r   r   r4   r   r   CCr  y  s    Kr   r!  )	metaclassxxr  )r(   r   r   )r   r  r!  s      r   "test_var_annot_metaclass_semantics/GrammarTests.test_var_annot_metaclass_semanticst  s5    	2D 	2	5 	++D17;r   c           	         U R                  [        R                  0 5        U R                  [        R                  S[        [
        [        R                  [        [        4   [        [        -  S.5        U R                  [        R                  R                  S[        S.5        U R                  [        R                  0 5        g )Nr   )r<   r   r   r   u{   )123o)r   rj   r   
ann_moduler   r   typingTuplefloatMr(   r   rA   s    r   test_var_annot_module_semantics,GrammarTests.test_var_annot_module_semantics}  s    --r2333V\\#s(5KRUX]R]^	`55&)5	744b9r   c                    [         R                  " S5      nU R                  [        5         UR	                  5         S S S 5        U R                  [        5         UR                  5         S S S 5        U R                  [        5         UR                  S5        S S S 5        g ! , (       d  f       Nl= f! , (       d  f       NO= f! , (       d  f       g = f)Nztest.typinganndata.ann_module3r   )r   import_fresh_moduler)   rI   	f_bad_ann	g_bad_ann	D_bad_ann)r   ann_module3s     r   test_var_annot_in_module%GrammarTests.test_var_annot_in_module  s     $778XYy)!!# *y)!!# *y)!!!$ *)	 *)))))s#   B#B4C#
B14
C
Cc                     0 n0 n[        SX5        U R                  US   S[        S.5        U R                  [        5         US     S S S 5        g ! , (       d  f       g = f)Nz.'docstring'
__annotations__[1] = 2
x: int = 5
r   r   )r<   r   )r   r   r   r)   KeyError)r   gnslnss      r   test_var_annot_simple_exec'GrammarTests.test_var_annot_simple_exec  s[    r#  	' 	./QS1ABx(!" )((s   A
Ac                   ^ S[        5       0n[        SU5        U R                  US   S   [        5        U R                  US   S   [        5        U R                  [        5         US   S     S S S 5        0 m " U4S jS5      n[        S0 U" 5       5        U R                  TS   S   [        5        g ! , (       d  f       NL= f)	Nr   z'X: int; Z: str = "Z"; (w): complex = 1jr   r   rl   c                   .   > \ rS rSrS rU 4S jrS rSrg)5GrammarTests.test_var_annot_custom_maps.<locals>.CNS2i  c                     0 U l         g r   r   rA   s    r   r   >GrammarTests.test_var_annot_custom_maps.<locals>.CNS2.__init__  s	    	r   c                 ,   > X R                   U'   UTU'   g r   r   r   r   r   	nonloc_nss      r   r   AGrammarTests.test_var_annot_custom_maps.<locals>.CNS2.__setitem__      "'		$"'	$r   c                      U R                   U   $ r   r   r   s     r   r   AGrammarTests.test_var_annot_custom_maps.<locals>.CNS2.__getitem__      yy&r   r   Nr   )rG  s   r   CNS2rB    s    ('r   rM  z
x: int = 1)r   r   r   r   r   r)   r;  )r   nsrM  rG  s      @r   test_var_annot_custom_maps'GrammarTests.test_var_annot_custom_maps  s    '6;-.s3S9-.s3S9x( !#& )		' 	' 	\2tv&#45c:C@ )(s   '	B66
Cc                    ^^ [        5       mST0m " UU4S jS5      n[        S0 U" 5       5        U R                  TS   S   [        5        g )Nr   c                   4   > \ rS rSrU 4S jrU4S jrS rSrg)1GrammarTests.test_var_annot_refleak.<locals>.CNS2i  c                    > ST0U l         g r  r   )r   cnss    r   r   :GrammarTests.test_var_annot_refleak.<locals>.CNS2.__init__  s    .4	r   c                 ,   > X R                   U'   UTU'   g r   r   rF  s      r   r   =GrammarTests.test_var_annot_refleak.<locals>.CNS2.__setitem__  rI  r   c                      U R                   U   $ r   r   r   s     r   r   =GrammarTests.test_var_annot_refleak.<locals>.CNS2.__getitem__  rL  r   r   Nr   )rU  rG  s   r   rM  rS    s    5('r   rM  zX: strr   )r   r   r   r   )r   rM  rU  rG  s     @@r   test_var_annot_refleak#GrammarTests.test_var_annot_refleak  sK     e&,		' 	' 	Xr46"#45c:C@r   c                    0 n[        SU5        U R                  US   S5        Sn[        X!5        U R                  [        US   " 5       5      S /5        SSS[        R                  S	.n[        S
U5        U R                  US   S5        g )Nzx: tuple = 1, 2r   r   zdef f():
    x: int = yieldr   r<   r         r   )r   r   cr-  zx: Tuple[int, ...] = a,*b,cr<   r   r_  r`  r   )r   r   r   r,  r-  )r   rN  stmts      r   test_var_annot_rhsGrammarTests.test_var_annot_rhs  s    #C&)%Tbgi4&19!fllC*B/C/2r   c                 B  ^^ S nU" 5         U" S6   U" S0 0 D6  S nS nU R                  UR                  R                  S5        U R                  UR                  R                  S5        S nS nS	 nS
 nS nU" 5         U" S5        U" S5        U" SS5        U" SS5        U" 5         U" S5        U" S5        U" SS5        U" SSSSSSSSSS5
        U" S5        U" S5        U" SS5        U" SSS5        U" SSSSSSSSSS5
        U" SS5        U" SSS5        U" SSSS5        U" SSSSSSSSSS5
        SS jn	U	" 5         U	" S5        U	" S6   U	" / =(       d    S/6   U	" / SQ0 =(       a    SQ70 0 D6  U	" S0 SS0D6  U	" S0 SS0=(       d    0 D6  SS jn
U
" S5        U
" SS5        U
" S0 SS0D6  SS jnU" SS5        U" SSS5        U" S6   U" S/SQ76   U" SS/SQ76   U" S!0 SS0D6  S!S  jnU" 5         U" S5        U" SS5        U" S!6   U" S/S"Q76   U" S0 SS0D6  U" S0 SSS#.D6  S!S$ jnU" S5        U" SS5        U" SSS5        S!S% jnU" SS5        U" SSS5        U" SSSS5        SS& jnU" 5         U" S5        U" SS5        U" S'6   U" S6   U" S0 SS0D6  SS( jnU" S5        U" SS5        U" SSS5        SS) jnU" SS5        U" SSS5        U" SSSS5        U" S'6   U" S!0 SS0D6  S!S* jnU" 5         U" S5        U" SS5        U" SSS5        U" S/S+Q76   U" S0 SSS#.D6  S!S, jnU" S5        U" SS5        U" SSS5        U" SSSS5        U" S'6   U" SS/S-Q76   U" S/S"Q70 SS0D6  S!S. jnU" SS5        U" SSS5        U" SSSS5        U" SSSSS5        U" S'6   U" SS/S-Q76   U" S/SQ70 S/S0D6  [        R                  " 5          [        R
                  " S0[        5         [        S0 S2S0D6  U R                  S35        S S S 5        S4 nU" S5S69  S5S7.S8 jnU" SSS5S99  U" SSS5S:S;9  U" SSS5S:S<9  S5S9.S= jnU" SSS5S5S:S>9  U" SSS5S:S5S?9  U R                  [        [        S@5        U R                  [        [        SA5        U R                  [        [        SB5        SC nU R                  U" S/SS/Q7SSSD.6SESSSD.45        U R                  U" S/SQSP76 S'0 45        U R                  [        [        SF5        U R                  U" S0 SGSHSI.D6SSGSHSI.45        U R                  U" SSJSH0SKSG0D6SSGSHSI.45        [        U SL5        [        U SM5        SN[        4SO jnU R                  UR                  SN[        05        S1[         4SP jnU R                  UR                  S1[         05        S1[         4SQ jnU R                  UR                  S1[         05        SS1[         4SR jjnU R                  UR                  S1[         05        S1[        4SS jnU R                  UR                  S1[        05        S1["        4ST jnU R                  UR                  S1["        05        SSV jnU R                  UR                  SUS05        SSW jnU R                  UR                  SUS05        SSX jnU R                  UR                  SSSY.5        SSZ jnU R                  UR                  SSSY.5        SSS] jjnU R                  UR                  SSSSS^.5        SSS_S`.   SSf jjjnU R                  UR                  SSSSSSSdSeSg.5        SSS_S`.SSSSS[SSh[         S\SSaSSbSScSdSNSe4Si jjjnU R                  UR                  SSS[         SSSSdSeSj.	5         " Sk Sl5      n " Sm SnU5      nU R                  UR$                  R                  SoS05        U R                  UR$                  R                  SoS05        Sp mTSN[        4Sq j5       nU R                  UR                  SN[        05        TSr 5       nT=nSs 5       nU4St jSu 5       nSvTSv/S   Sw 5       nT" T5      " T5      Sx 5       nT/S   R&                  R&                  Sy 5       nSmU4Sz jnSU4S{ jjnSS|.U4S} jjnSN[         4U4S~ jjnS nS nS nS nS nS nS nS nS nS nS nS nS nS nS ng ! [         a     GNf = f! , (       d  f       GN= f)Nc                      g r   r4   r4   r   r   f1%GrammarTests.test_funcdef.<locals>.f1  s    $r   r4   c                     g r   r4   one_arguments    r   f2%GrammarTests.test_funcdef.<locals>.f2      dr   c                     g r   r4   two	argumentss     r   f3%GrammarTests.test_funcdef.<locals>.f3  s    r   rk  rq  c                     g r   r4   )one_args    r   a1%GrammarTests.test_funcdef.<locals>.a1      $r   c                     g r   r4   )rr  argss     r   a2%GrammarTests.test_funcdef.<locals>.a2      Dr   c                      g r   r4   rests    r   v0%GrammarTests.test_funcdef.<locals>.v0      tr   c                     g r   r4   r   r  s     r   v1%GrammarTests.test_funcdef.<locals>.v1  rz  r   c                     g r   r4   r   r   r  s      r   v2%GrammarTests.test_funcdef.<locals>.v2      Tr   r<   r   r_  r`  r            r   r   c                     g r   r4   r   s    r   d01&GrammarTests.test_funcdef.<locals>.d01      dr   r<   r   c                     g r   r4   r   s     r   d11&GrammarTests.test_funcdef.<locals>.d11      r   r   c                     g r   r4   r   r   ra  s      r   d21&GrammarTests.test_funcdef.<locals>.d21  r  r   r<   r   r_  )r   r_  r_  ra  c                     g r   r4   r   s     r   d02&GrammarTests.test_funcdef.<locals>.d02      4r   r   r   r   c                     g r   r4   r  s      r   d12&GrammarTests.test_funcdef.<locals>.d12  ro  r   c                     g r   r4   r   r   ra  ds       r   d22&GrammarTests.test_funcdef.<locals>.d22      r   c                     g r   r4   r  s     r   d01v'GrammarTests.test_funcdef.<locals>.d01v  ro  r   )r<   r   r_  r`  c                     g r   r4   r  s      r   d11v'GrammarTests.test_funcdef.<locals>.d11v%  r  r   c                     g r   r4   r   r   ra  r  s       r   d21v'GrammarTests.test_funcdef.<locals>.d21v)      Dr   c                     g r   r4   r  s      r   d02v'GrammarTests.test_funcdef.<locals>.d02v/  s    4r   r^  c                     g r   r4   r  s       r   d12v'GrammarTests.test_funcdef.<locals>.d12v6  s    dr   r_  r`  r   c                     g r   r4   )r   r   ra  r  r  s        r   d22v'GrammarTests.test_funcdef.<locals>.d22v>  s    r   r  r;   r   s   fooz/Bytes should not work as keyword argument namesc                     U $ r   r4   keys    r   pos0key1+GrammarTests.test_funcdef.<locals>.pos0key1Q  s    Sjr   d   r  )k2c                
    XX#4$ r   r4   )p1p2k1r  s       r   pos2key2+GrammarTests.test_funcdef.<locals>.pos2key2S  s    B"K-?r   )r     )r  r  )r  r  c                    XX#U4$ r   r4   )r  r  r  r  kwargs        r   pos2key2dict/GrammarTests.test_funcdef.<locals>.pos2key2dictW  s    rUAR:Rr   )r  tokwarg1tokwarg2)r  r  r  zdef f(*): passzdef f(*,): passzdef f(*, **kwds): passc                      X4$ r   r4   )r|  kwargss     r   r   $GrammarTests.test_funcdef.<locals>.f`  s
    <r   r   r   )r<   r_  r`  zf(1, x=2, *(3,4), x=5)	scrambledfried)eggsrv   rv   r  z
f(*g(1=2))zf(**g(1=2))returnc                     g r   r4   r   s    r   r   r  p  rz  r   c                     g r   r4   r   s    r   r   r  r  r  r   c                    g r   r4   r   s    r   r   r  t  rz  r   c                    g r   r4   r   s    r   r   r  v      tr   c                      g r   r4   r   s    r   r   r  x      r   c                      g r   r4   r   s    r   r   r  z  r  r   r   c                     g r   r4   r  s     r   r   r  |  rz  r   c                    g r   r4   r  s     r   r   r  ~  r  r   c                     g r   r4   r  s       r   r   r    r  r   )r   ra  c                    g r   r4   r  s       r   r   r    r  r   r   gc                     g r   r4   )r   r   ra  r  r   r   r  s          r   r   r    s    tr   )r   ra  r   r  
   )ijhr  k      c                    g r   r4   r   r   ra  r  r   r   r  r  r  r  r  s              r   r   r        "r   )r   ra  r   r  r  r  r  r  r   c                   g r   r4   r  s              r   r   r    r  r   )	r   ra  r   r   r  r  r  r  r  c                       \ rS rSrSS jrSrg)'GrammarTests.test_funcdef.<locals>.Spami  c                    g r   r4   )r   	_Spam__kws     r   r   )GrammarTests.test_funcdef.<locals>.Spam.f      r   r4   N)r  r<   )r   r   r   r   r   r   r4   r   r   Spamr    s    r   r   c                       \ rS rSrSrg)&GrammarTests.test_funcdef.<locals>.Hami  r4   Nr   r4   r   r   Hamr    s    r   r  r  c                     U $ r   r4   r   s    r   null'GrammarTests.test_funcdef.<locals>.null  s    AXr   c                     g r   r4   r   s    r   r   r    s    r   c                     g r   r4   r   s    r   r   r        r   c                     g r   r4   r   s    r   r   r    r	  r   c                    > T" U 5      $ r   r4   )r   r  s    r   <lambda>+GrammarTests.test_funcdef.<locals>.<lambda>  s	    47r   c                     g r   r4   r   s    r   r   r    r	  r   .c                     g r   r4   r   s    r   r   r    r	  r   c                     g r   r4   r   s    r   r   r    r	  r   c                     g r   r4   r   s    r   r   r    r	  r   c                     > T $ r   r4   closures   r   r   r    s    r   c                    > T$ r   r4   )r   r  s    r   r   r    s    7Nr   r  c                    > T$ r   r4   )r  r  s    r   r   r    s    g~r   c                     > T $ r   r4   r  s   r   r   r    s    wr   c                     g r   r4   r  s    r   r   r    s    4r   c                      g r   r4   r|  s    r   r   r    r  r   c                      g r   r4   r  s    r   r   r    r  r   c                     g r   r4   r   r|  s     r   r   r    rz  r   c                     g r   r4   r   r  s     r   r   r    r  r   c                     g r   r4   r   r|  s     r   r   r    rz  r   c                     g r   r4   r   s    r   r   r    r  r   c                      g r   r4   r|  r  s     r   r   r    r  r   c                    g r   r4   r   r   r|  s      r   r   r    r  r   c                    g r   r4   r   s     r   r   r    r  r   c                     g r   r4   r   r|  r  s      r   r   r        $r   c                     g r   r4   r   r|  r  s      r   r   r    r-  r   c                     g r   r4   r   r  s     r   r   r    ro  r   c                    g r   r4   r   r   r|  r  s       r   r   r        Tr   c                    g r   r4   r   r   r  s      r   r   r    r  r   r   )r   )r   r_  )r   r<   ra  r   )ra  r   r   r<   )r`  r   )r   r<   ra  r   r   r_  r  r  )r   r<   ra  r   r   r_  r  r  r  r  r  r   r  r  r  r  )r   __code__co_varnamesr=   r>   r?   BytesWarningr   r/   	TypeErrorr)   r*   r+   r   r   r   r   r.  r   __call__)r   rh  rm  rt  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  s                               @@r   test_funcdefGrammarTests.test_funcdef  sy	    	

B
B""$002CD002FG !

1
1
1a
1a	

1
1
1Q
1Qq1Qq1Q
1
1
1Q
1Qq	
1Qq1Qq1Q
1Q
1Qq	
1Qq
1Qq1Qq1QAT
RYA3.2.	r.2.s1gs1gmAAq	#a Aq	Aq!YAAq4SGAAq	VA#aAA"AAq	Aq!%Aq	Aq!Aq!Q"QQ
ldAw%QQ
Q1(Q
Q1Q1alc1X'QQ
Q1Q QQ *QQ
Q1Q1alQIQ""#q"-Q
Q1Q1aQ1alQIQ$$C8$ $$&!!(L9M'F1;' 		KL ' 	)S'*?A#A##&A##&'*RQqCc:Qq#ss;+t-=>+t->?+t-EF	 10QF0a099:N3D 	E1ua<*<=+t-EFB[ABk'BC	E@@F;+?@k'BC	E 	4.4/ 	D**Xt,<=**S#J7**S#J7##**S#J7#**S#J75**S%L9**S!H5!**S!H5%**!!,<=(**!!,<=;** qqq9	;	#a 	#	#	#** qqqqq!R1	2	#RT 	#A 	#! 	#1 	#S 	#Q 	#1 	#a 	#	#	#** !!!RS "b2	3	 	 	$//+q1AB..a0@A	D 
**Xt,<=  
 
	 

tS	!	 
	dD	 

			$	$ 
% "%%&3& 	#!&&")%m  	 '&s0   d4c>d>
dddd
dc                 (   S nU R                  U" 5       S5        S nS nU R                  U" 5       / SQ5        S&S j4S j4S	 jnU R                  U" 5       S5        S'S jnU R                  U" SS
5      S5        U R                  U" SS
S5      S5        [        U S5        [        U S5        SS.S jnU R                  U" SS
5      S5        U R                  U" SS
SS9S5        S nS nS n	S n
S nS nS nS nS nS  nS! nS" nS# nS$ nS% ng )(Nc                      gNr   r4   r4   r   r   r  +GrammarTests.test_lambdef.<locals>.<lambda>  s    ar   r   c                      [         [           $ r   )r   r  r4   r   r   r  rA    s    adr   c                  8    S V s/ s H  n SU :  PM
     sn $ s  sn f )N)r_  r   r   r4   r   s    r   r  rA    s    j1jq1uj11s   )r   r<   r   r<   c                     U $ r   r4   r   s    r   r  rA    s    r   c                     U " 5       $ r   r4   )r   s    r   r  rA    s    ACr   c                     U " 5       $ r   r4   r   s    r   r  rA    s    !#r   r   c                     X-   U-   $ r   r4   )r   r   r   s      r   r  rA    s
    quqyr   r   r_  r  zlambda x: x = 2zlambda (None,): None   r  c                    X-   U-   $ r   r4   )r   r   r  s      r   r  rA    s
    13q5r      r     c                     gr@  r4   r  s    r   r  rA        r   c                      gr@  r4   r  s    r   r  rA    s    Qr   c                      gr@  r4   r  s    r   r  rA    s    ar   c                     gr@  r4   r  s     r   r  rA        r   c                     gr@  r4   r!  s     r   r  rA    s    r   c                     gr@  r4   r#  s     r   r  rA    rS  r   c                     gr@  r4   r%  s    r   r  rA    s    Ar   c                      gr@  r4   r'  s     r   r  rA    s    Qr   c                    gr@  r4   r)  s      r   r  rA    s    1r   c                    gr@  r4   r   s     r   r  rA    s    qr   c                     gr@  r4   r,  s      r   r  rA        r   c                     gr@  r4   r/  s      r   r  rA    r[  r   c                     gr@  r4   r1  s     r   r  rA    s    Ar   c                    gr@  r4   r3  s       r   r  rA    s    1r   c                    gr@  r4   r6  s      r   r  rA    s    qr   r  r  r   r   )r   l1l2l3l4l5l6l10l11l12l13l14l15l16l17l18l19l20l21l22l23l24s                         r   test_lambdefGrammarTests.test_lambdef  s   q!1y)#17=q!(Aq1%Aq!a(4!234!78!(Aa&)Aa"v. !"!&$ ))%,(r   c                     SnAS nU" 5         g )Nr<   c                  
    Sn A g r   r4   r   s    r   foo*GrammarTests.test_simple_stmt.<locals>.foo  s	    AQr   r4   )r   r   rz  s      r   test_simple_stmtGrammarTests.test_simple_stmt  s    	  	r   c                 n      SnSnS=n=p#Su  pnS=n=u  pVn=u  pp8[        U S5        [        U S5        g )Nr<   r  )r<   r   )r_  r`  z	x + 1 = 1za + 1 = b + 2r   )	r   r   r   r   abcr   r   ra  xyzs	            r   test_expr_stmtGrammarTests.test_expr_stmt  sV    	Aa(444gaA4a4-41r   c           	      .   Sn/ SQnU H  nSR                  U5      nU H  nUR                  U5      nU R                  US9   U R                  [        U5         [	        U5        S S S 5        S S S 5        UR                  SS5      nU R                  US9   U R                  [        S5         [	        U5        S S S 5        S S S 5        M     M     g ! , (       d  f       Ns= f! , (       d  f       N|= f! , (       d  f       NA= f! , (       d  f       M  = f)N)r   r   )z{} fooz{} {{1:foo}}zif 1: {} foozif 1: {} {{1:foo}}zif 1:
    {} foozif 1:
    {} {{1:foo}}zcall to '{}')sourcerz  z(foo.)zinvalid syntax)formatrg   rh   r*   r   rH   )r   keywordscaseskeyword
custom_msgcaser  s          r   (test_former_statements_refer_to_builtins5GrammarTests.test_former_statements_refer_to_builtins  s    "
  G'..w7JW-\\\0//ZHV I 1  x8\\\0//=MNV O 10   
 IH 10
 ON 10sH   C#C	%C#D-C4	9D
C C##
C14
D>D
Dc                     / SQnUu  p#nX#U4nAAAAASu  p#nAAASu  pgppnAAAA	A
ASu  pgppnAAAA	A
A[        S5      nUSS2	 [        SSS	5        g )
Nr  r  abcdefgabcdr<   r   z-del a, (b[0].c, (d.e, f.g[1:2])), [h.i.j], ()re   r   )r   ri   )r   r  r   r   r   r  r   r   ra  r  r   r   r  r  s                 r   test_del_stmtGrammarTests.test_del_stmt  s    aAgq1ca (aA!1Aq'aA!1AqF|1I?vVr   c                     g r   r4   rA   s    r   test_pass_stmtGrammarTests.test_pass_stmt6  s    r   c                     g r   r4   rA   s    r   test_break_stmtGrammarTests.test_break_stmt=  s    r   c                     SnU(       a  SnM  SnU(       d  Sn M  US:w  a  U R                  U5        SnU(       d  Sn  SnM  US:w  a  U R                  U5        g g !   Sn O= fU(       d  MX  NT! Snf = f)Nr<   r   rF   okz'continue inside try called except blockzfinally block not calledr/   )r   r  msgs      r   test_continue_stmtGrammarTests.test_continue_stmtA  s    QC@ $;IIcN,C$;IIcN @? #  s   A#0A4c                 $   ^  SU 4S jjnU" 5         g )Nc                    > SnU(       a   US-  n U (       a  US:X  a  U S-  n OUS-  nM'  US:  d  US:w  a  TR                  S5        g g !   e = f)Nr   r<   z1continue then break in try/except in loop broken!r  )extra_burning_oilcount	big_hippor   s      r   
test_inner9GrammarTests.test_break_continue_loop.<locals>.test_innere  sg    I
(Y!^)Q.)NI qyIN		MN +s   A
 A
 
A)r<   r   r4   )r   r  s   ` r   test_break_continue_loop%GrammarTests.test_break_continue_loop[  s    	O 	r   c                 ~    S nS nS nU" 5         U" 5       nU" 5       nU R                  USS5        [        U S5        g )Nc                      g r   r4   r4   r   r   g1$GrammarTests.test_return.<locals>.g1w  s    &r   c                      gr   r4   r4   r   r   g2$GrammarTests.test_return.<locals>.g2x  rO  r   c                      SS/n S/U Q7$ )Nr   r_  r<   r4   rF  s    r   g3$GrammarTests.test_return.<locals>.g3y  s    AA5q5Lr   r  z unparenthesized star expr returnzclass foo:return 1r`  )r   r  r  r  r   r   s         r   test_returnGrammarTests.test_returnu  s@    	 	DDI'IJ4!56r   c                 `   SnUS:  a  US-  n   U R                  US5        SnUS:  a  US-  n   U R                  US5        SnUS:  a  US-  n SS-     U R                  US5        S H  nU R                  US5            O   U R                  US5        S H  nU R                  US5            O   U R                  US5        S H  nU R                  US5         SS-      O   U R                  US5        g !    M  = f!    M  = f!    M  = f!      M  = f!      Mm  = f!      MC  = fNr   r   r<   r   r<   r   r   r  s     r   test_break_in_finally"GrammarTests.test_break_in_finally  se   aiQJE"aiQJE"aiQJE!"EUA&  	"EUA&  	"EUA&!  	"W      s0   D !D'=DD
DDD$'D-c                    SnUS:  a	  US-  n  M  U R                  US5        SnUS:  a	  US-  n  M  U R                  US5        SnUS:  a  US-  n SS-    M  U R                  US5        S H  n  M     U R                  US5        S H  n  M     U R                  US5        S H	  n SS-    M     U R                  US5        g !    M  = f!    M  = f!    M  = f!    Mw  = f!    Mb  = f!    MM  = fr  r   r  s     r   test_continue_in_finally%GrammarTests.test_continue_in_finally  s5   aiQJE"aiQJE"aiQJE!"E	  	"E	 
 	"E!	  	"Y      s0   C .C2
CCC"C'*C/2C7c                     S nU R                  U" 5       S5        S nU R                  U" 5       S5        S nU R                  U" 5       S5        g )Nc                        g!    g= fr   r4   r4   r   r   r  /GrammarTests.test_return_in_finally.<locals>.g1  s    q   r<   c                        g!    g= f)Nr_  r4   r4   r   r   r  /GrammarTests.test_return_in_finally.<locals>.g2  s    qr  r_  c                       SS-    g!    g= f)Nr<   r   r`  r4   r4   r   r   r  /GrammarTests.test_return_in_finally.<locals>.g3  s    !qs    r`  r   )r   r  r  r  s       r   test_return_in_finally#GrammarTests.test_return_in_finally  sM    	
 	q!	
 	q!	
 	q!r   c                     S nU R                  U" S5      S5        U R                  U" S5      S5        S nU R                  U" S5      S5        U R                  U" S5      S5        g )Nc                 z    S H!  nSnUS:  d  M  US-  n X-   U (       a    M   s  $    SWW4$ ! U (       a     M6  f = f)Nr  r   rJ  r  endr4   r   r  count2s      r   r  ;GrammarTests.test_break_in_finally_after_return.<locals>.g1  sT    rkbLF"$~!    %'' ! s   -	::Fr  T)r  r<   r  c                 v    S H  nS H  n X-   U (       a      M  s  s  $    M      SWW4$ ! U (       a       M4  f = f)Nr  )r  rJ  r  r4   r  s      r   r  ;GrammarTests.test_break_in_finally_after_return.<locals>.g2  sI    &F"$~! 	 '   %'' ! s   *	88r   r   r  r  s      r   "test_break_in_finally_after_return/GrammarTests.test_break_in_finally_after_return  s`    
	( 	EB'D>2	( 	EB'D>2r   c                     S nU R                  U" S5      S5        U R                  U" S5      S5        S nU R                  U" S5      S5        U R                  U" S5      S5        g )	Nc                 ^    SnUS:  a  US-  n UU (       a    M  $ SU4$ ! U (       a     M(  f = f)Nr   r  r<   r  r4   r   r  s     r   r  >GrammarTests.test_continue_in_finally_after_return.<locals>.g1   sC    E#+
!   %<   s    	,,Fr<   T)r  r  c                 V    S H  n UU (       a    M  s  $    SW4$ ! U (       a     M$  f = f)Nr  r  r4   r  s     r   r  >GrammarTests.test_continue_in_finally_after_return.<locals>.g2-  s:    !   	   %<   s   	((r   )r  r<   r   r  s      r   %test_continue_in_finally_after_return2GrammarTests.test_continue_in_finally_after_return  s`    		  	EA&D<0	  	EA&D:.r   c                    S nS nS nS nS nS n[        U S5        [        U S5        S	 nS
 n[        U S5        [        U S5        S nS nS nS nS nU R                  [        U" 5       5      S/5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        [        U S5        g )Nc               3      #    Sv   g 7fr   r4   r4   r   r   r  "GrammarTests.test_yield.<locals>.g:  s	     q   c               3   $   #    S S h  vN   g  N7fNr4   r4   r4   r   r   r  r  ;  s     B   c               3      #    Sv n g 7fr   r4   r   s    r   r  r  =  s     1Wr  c               3   $   #    S S h  vN n g  N7fr  r4   r   s    r   r  r  >  s     ]]r  c               3      #    Sv   g 7fN)r<   r<   r4   r4   r   r   r  r  @  s	     tr  c               3      #    Sv n g 7fr  r4   r   s    r   r  r  A  s     4Zr  zdef g(): yield from (), 1zdef g(): x = yield from (), 1c               3      #    SSv 4  g 7fr   r4   r4   r   r   r  r  F  s     1Ws   
c               3   (   #    SS S h  vN 4  g  N7fNr<   r4   r4   r4   r   r   r  r  G  s     ]#]s   zdef g(): 1, yield 1zdef g(): 1, yield from ()c               3   &   #    [        Sv 5        g 7fr   r   r4   r   r   r  r  K  s     !G   c               3   (   #    [        Sv S5        g 7fr   r  r4   r   r   r  r  L  s     !Ga   c               3   6   #    [        S S h  vN 5        g  N	7fr  r  r4   r   r   r  r  M  s     rM#Ms   
c               3   8   #    [        S S h  vN S5        g  N
7f)Nr4   r<   r  r4   r   r   r  r  N  s     rMA&Ms   c               3   $   #    Sn SSS/U Q7v   g 7f)Nr`  r   r  r<   r   r_  r4   r  s    r   r  r  P  s     q!Q~~!5   )r<   r   r_  r`  r   r  zdef g(): f(yield 1)zdef g(): f(yield 1, 1)zdef g(): f(yield from ())zdef g(): f(yield from (), 1)yieldz
yield fromzclass foo:yield 1zclass foo:yield from ()zdef g(a:(yield)): pass)r   r   r   )r   r  s     r   
test_yieldGrammarTests.test_yield8  s    "4!<=4!@A#4!674!<= #&5ac%7$894!674!9:4!<=4!?@4)4.4!454!:;4!9:r   c                     S nS nU R                   nU" SS5        U" SS5        U" SS5        U" SS5        U" S	S
5        U" SS
5        U" SS5        U" SS5        U" SS5        U" SS5        g )Nc               3   >   #    Sv 4 V s/ s H  o PM       n g s  sn f 7fr   r4   r   s    r   r  4GrammarTests.test_yield_in_comprehensions.<locals>.ga  s     Qw[)[![))s   c               3   N   #    S S h  vN 4 V s/ s H  o PM       n g  Ns  sn f 7fr  r4   r   s    r   r  r  b  s"     "}./.!./}/s   %% %%z 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   )r   r  r]   s      r   test_yield_in_comprehensions)GrammarTests.test_yield_in_comprehensions_  s    )/''01	391	3=1	300	231	331	303	551	301	3'1	3r   c                 b    [        S5      e! [          a     [        ef = f! [         a     g f = f)Nzjust testing)RuntimeErrorKeyboardInterruptrA   s    r   
test_raiseGrammarTests.test_raisez  s.    //!T$$ 	" &$&s    
! 
..c                 d    SS K nSS KnSS K nSSKJn  SSKJn  SSK JnJn  SSK JnJn  SSK JnJn  g )Nr   )time)pathargv)r,   r  r  r  )r   r,   r  r  r  s        r   test_importGrammarTests.test_import  s     	#$%%r   c                     g r   r4   rA   s    r   test_globalGrammarTests.test_global  r   r   c                    ^^ SmSmUU4S jng )Nr   c                     > g r   r4   r  s   r   r   %GrammarTests.test_nonlocal.<locals>.f  s    r   r4   )r   r   r   r   s     @@r   test_nonlocalGrammarTests.test_nonlocal  s    	r   c                       S (       d   e    g ! [          a  nU R                  S5         S nAN"S nAff = f! [          a  nU R                  S5         S nAg S nAff = f)Nc                     U $ r   r4   r   s    r   r  *GrammarTests.test_assert.<locals>.<lambda>  s    r   z6'assert True' should not have raised an AssertionErrorz;'assert True, msg' should not have raised an AssertionError)AssertionErrorr/   r   r   s     r   test_assertGrammarTests.test_assert  so    z	P	2	  	PIINOO	P
  	2II 1 2 2	2s   
727
AAATz Won't work if __debug__ is Falsec                       S5       e! [         a)  nU R                  UR                  S   S5         S nAOS nAff = f  e! [         a/  nU R                  [	        UR                  5      S5         S nAg S nAff = f)Nr   r  )r/   r  r   r|  r   r  s     r   test_assert_failures!GrammarTests.test_assert_failures  sq    	?eO1 	/QVVAY..	/
	E5 	-S[!,,	-s(   	 
<7< A 
A;%A66A;c                     U R                  SS5        U R                  SS5        U R                  SS5        U R                  [        S9   [        SSS5        [        S	SS5        S S S 5        g ! , (       d  f       g = f)
Nassert(x, "msg")zassertion is always trueassert(False, "msg")assert(False,))categoryzassert x, "msg"re   r   zassert False, "msg")r   r   r@   ri   rA   s    r   test_assert_syntax_warnings(GrammarTests.test_assert_syntax_warnings  sy     	!!"4"<	>!!"8"<	>!!"2"<	> ##]#;%|V<)<@ <;;s   
A..
A<c                 ^   [         R                  " 5          [         R                  " S[        5         [	        SSS5        U R                  [
        5         [	        SSS5        S S S 5        U R                  [
        5         [	        SSS5        S S S 5        U R                  [
        5         [	        SSS5        S S S 5        S S S 5        g ! [
         a    U R                  S5         Nf = f! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       NZ= f! , (       d  f       g = f)	Nrk   zassert x, "msg" re   r   z4SyntaxError incorrectly raised for 'assert x, "msg"'r  r  r  )r=   r>   r?   r@   ri   r*   r/   r)   rA   s    r   ,test_assert_warning_promotes_to_syntax_error9GrammarTests.test_assert_warning_promotes_to_syntax_error  s     $$&!!'=9T*L&A "";/*L&A 0"";/.fE 0"";/(,? 0 '&  T		RST////// '&sv   DC
 DC+#D C<D+D9D
C(%D'C((D+
C9	5D<
D
	D
D	D
D,c                             g r   r4   rA   s    r   test_ifGrammarTests.test_if  s    r   c                 8       Sn SnU R                  US5        g )Nr   r   r   r   s     r   
test_whileGrammarTests.test_while  s,      AAr   c                 ~   S H  nM     S H  u  pnM       " S S5      nSnU" S5       H  oeU-   nM	     US:w  a  U R                  S5        / nS	 H  u  nUR                  U5        M     U R                  U/ SQ5        / n/ SQ=n=p/ UQU	QU
Q7 H  nUR                  U5        M     U R                  US
U-  5        g )Nr  r4   c                   &    \ rS rSrS rS rS rSrg)&GrammarTests.test_for.<locals>.Squaresi  c                     Xl         / U l        g r   maxsofar)r   r-  s     r   r   /GrammarTests.test_for.<locals>.Squares.__init__  s    
r   c                 ,    [        U R                  5      $ r   )r   r.  rA   s    r   __len__.GrammarTests.test_for.<locals>.Squares.__len__  s    c$**o5r   c                     SUs=::  a  U R                   :  d  [        e  [        e[        U R                  5      nX!::  a)  U R                  R	                  X"-  5        US-   nX!::  a  M)  U R                  U   $ )Nr   r<   )r-  
IndexErrorr   r.  append)r   r  ns      r   r   2GrammarTests.test_for.<locals>.Squares.__getitem__  sf    A((
*:(
*:

OfJJ%%ac*!A f zz!}$r   r,  N)r   r   r   r   r   r1  r   r   r4   r   r   Squaresr*    s      6%r   r8  r   r  i  zfor over growing sequence)r  r  r  r_  )r/   r5  r   )r   r  r  r  r8  r6  r   resultr   r   ra  s              r   test_forGrammarTests.test_for  s    A$GA!4r	% 	% AA#a8II12$BAMM! %+A!a!AMM! Q'r   c                     SS-     SS-     SS-    SS-      U R                  [        5         [        SSS5        [        SSS5        S S S 5        g ! [          a     NWf = f! [         a     Na[         a
  n S nANoS nAf   Nv= f! [        [        [         4 a     Nf = f! [        [        [         4 a
  n S nANS nAff = f! f = f! , (       d  f       g = f)Nr<   r   z/try:
    pass
except Exception as a.b:
    pass?r   z0try:
    pass
except Exception as a[b]:
    passr   EOFErrorr:  r)   r*   ri   r   r  s     r   test_tryGrammarTests.test_try  s    	aC qS qSqS	{+H#vVI3PVW ,+ ! 		
 % )%67==)%67DD++s[   A A# B B" C	
A A #
B/	B=BBB"C<CC	
Cc                 ^    SS-     SS-     SS-    SS-      U R                  [        5         [        SSS5        [        SSS5        [        SSS5        S S S 5        g ! / =[          =b    POP  PO  P8=c     Nts f = f! / =[         =b    OP  O  [          =b  nS nAPO	S nAP  PO  P8=c     Ns f = f! / =[        [        [         4 =b    POP  PO  P8=c     Ns f = f! / =[        [        [         4 =b  nS nAPO	S nAP  PO  P8=c     Ns f = f! f = f! , (       d  f       g = f)Nr<   r   z0try:
    pass
except* Exception as a.b:
    passr=  r   z1try:
    pass
except* Exception as a[b]:
    passztry:
    pass
except*:
    passr>  r@  s     r   test_try_starGrammarTests.test_try_star8  s    	aC qS qSqS	{+I3PVWJCQWX8#vF ,+	! 		
 	$!.$. 	?9&78>$>E9&78EE++s=   A  B B9 C& (D A?/B69%C#&+DD
D,c                           g r   r4   rA   s    r   
test_suiteGrammarTests.test_suiteP  s     r   c                          g r   r4   rA   s    r   	test_testGrammarTests.test_test_  s     48r   c                 "    SS:H  nSS:X  a   SS:w  a   SS:  a   SS:  a   SS::  a   SS:  a   XL a   XLa   SS;   a   SS;  a   SSs=:  a<  Ss=:  a5  Ss=:X  a.  Ss=:  a'  Ss=::  a   Ss=:w  a  Ss=;   a  Us=;  a  Us=L a  ULa  O  g g g r  r4   r   s     r   test_comparisonGrammarTests.test_comparisonj  s     !V6464q5$q5$646464:t7DB;qD1DDQD!DqDADQD!D1DdDr   c                 <  ^  U 4S jnU" SS5        U" SS5        U" SS5        U" SS5        U" SS	5        U" S
S5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        [         R                  " 5          [         R                  " S[        5        [	        SSS5        [	        SSS5        [	        SSS5        [	        SSS5        [	        SSS5        [	        SSS5        [	        SSS5        [	        SSS5        S S S 5        g ! , (       d  f       g = f)Nc                 (   > TR                  X5        g r   r   rj   r  r   s     r   r]   6GrammarTests.test_comparison_is_literal.<locals>.check|  s    %%d0r   zx is 1z"is" with 'int' literalzx is "thing"z"is" with 'str' literalz1 is xzx is y is 1z
x is not 1z"is not" with 'int' literalzx is not (1, 2)z"is not" with 'tuple' literalz(1, 2) is not xz	None is 1z	1 is Nonezx == 3 is yzx == "thing" is yrk   z	x is Nonere   r   z
x is Falsez	x is Truezx is ...z	None is xz
False is xz	True is xz... is xr=   r>   r?   r@   ri   r\   s   ` r   test_comparison_is_literal'GrammarTests.test_comparison_is_literal{  s   	1 	h34n9:h34m89l;<!BC!BCk67k67m89!#>?$$&!!'=9Kv6L,7Kv6Jf5Kv6L,7Kv6Jf5 '&&s    BD
Dc                   ^ ^ UU 4S jnSmU" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S	5        U" S
5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        SmU" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S 5        S!mU" S"5        U" S#5        U" S$5        U" S%5        U" S&5        U" S'5        U" S(5        U" S)5        S*mU" S+5        S,mU" S-5        U" S.5        S/mU" S05        U" S15        S2mU" S35        U" S45        S5mU" S65        S7mU" S85        S9mU" S:5        U" S;5        U" S<5        S=mU" S>5        U" S?5        U" S@5        U" SA5        U" SB5        [         R                  " 5          [         R                  " SC[        5        [	        SDSESF5        [	        SGSESF5        [	        SHSESF5        [	        SISESF5        [	        SJSESF5        [	        SKSESF5        S S S 5        g ! , (       d  f       g = f)LNc                 *   > TR                  U T5        g r   r   rQ  s    r   r]   2GrammarTests.test_warn_missed_comma.<locals>.check  s    %%dC0r   z-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] [...]]rk   z[(lambda x, y: x) (3, 4)]re   r   z[[1, 2] [i]]z[[1, 2] [0]]z[[1, 2] [True]]z[[1, 2] [1:2]]z[{(1, 2): 3} [i, j]]rS  )r   r]   r  s   ` @r   test_warn_missed_comma#GrammarTests.test_warn_missed_comma  s   	1 =     ./././12 !" nooonA ././)*nooonZ   ./ !" = <!"01;!"01<!"34A01@+,;!"#$ !6!"  ! $$&!!'=9/vFNL&9NL&9%|V<$lF;*L&A '&&s   %A*I
I&c                     SnSnSng )Nr<   r   r4   r   s     r   test_binary_mask_ops!GrammarTests.test_binary_mask_ops  s    r   c                     SnSnSng )Nr   r   r<   r4   r   s     r   test_shift_opsGrammarTests.test_shift_ops  s    r   c                     SnSnSnSng )Nr<   r   rD  r4   r   s     r   test_additive_opsGrammarTests.test_additive_ops  s    r   c                     SnSnSnSng )Nr<         ?r   g        r4   r   s     r   test_multiplicative_ops$GrammarTests.test_multiplicative_ops  s    r   c                     SnSnSnSnSng )Nr<   rD  re  r4   r   s     r   test_unary_opsGrammarTests.test_unary_ops   s    #!r   c                    SS K nSS KnUR                  S   nUR                  5       nUR                  S   R                  5       nSnUS   nUS   nUSS nUS S nUSS  nUS S  nUSS  nUS S nUSS n0 nS	US	'   S
US'   SUS'   SUS'   [	        U5      nUR                  S S9  U R                  [        U5      S5        g )Nr   r  01234rD  r   r<   r   r  r_  r   r`  r  c                 0    [        U 5      R                  U 4$ r   )r(   r   r   s    r   r  -GrammarTests.test_selectors.<locals>.<lambda>"  s    d1g..2r   r  z[1, (1,), (1, 2), (1, 2, 3)])r,   r  r  modulesr   sortr   r   )	r   r,   r  ra  r   r   r0   r  Ls	            r   test_selectorsGrammarTests.test_selectors  s     	HHQKIIKKK$$&aDbEaFbqEabEaDbcFcrFbH !"#%G	23Q!?@r   c                     SnSnSSS4n/ nS/nS/nSSS/n/ n0 nSS0nSS0nSS0nSSS.nSSS.nSSSSSSS	.nS1nSS1n1 S
kn1 SknUnSnSng )Nr<   r   r_  r   )r   rr  r`  r   r  )r   rr  threefourfivesix>   r   rr  ry  >   r   r_  r`  r   r(  r4   r   s     r   
test_atomsGrammarTests.test_atoms%  s     !QCM!QAJAKQ$a a!a!Q!LGAK#r   c                   ^  " S S5      n " S S5      n " S SU5      n " S SU5      n " S	 S
X4U5      n " S S5      nS mT " S S5      5       nT " S S5      5       nT=n	 " S S5      5       n
U4S j " S S5      5       nSTS/S    " S S5      5       nT" T5      " T5       " S S5      5       nT/S   R                   R                    " S S5      5       ng ) Nc                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.BiJ  r4   Nr   r4   r   r   r   r  J  s    r   r   c                       \ rS rSrSrg)&GrammarTests.test_classdef.<locals>.B2iK  r4   Nr   r4   r   r   B2r  K  s    Dr   r  c                       \ rS rSrSrg)&GrammarTests.test_classdef.<locals>.C1iL  r4   Nr   r4   r   r   C1r  L      Tr   r  c                       \ rS rSrSrg)&GrammarTests.test_classdef.<locals>.C2iM  r4   Nr   r4   r   r   C2r  M  r  r   r  c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.DiN  r4   Nr   r4   r   r   r  r  N  s    Dr   r  c                   &    \ rS rSrS rS rS rSrg)%GrammarTests.test_classdef.<locals>.CiO  c                     g r   r4   rA   s    r   meth1+GrammarTests.test_classdef.<locals>.C.meth1P  r  r   c                     g r   r4   )r   args     r   meth2+GrammarTests.test_classdef.<locals>.C.meth2Q  r-  r   c                     g r   r4   )r   rx  r}  s      r   meth3+GrammarTests.test_classdef.<locals>.C.meth3R  r4  r   r4   N)r   r   r   r   r  r  r  r   r4   r   r   r   r  O  s    !&)r   r   c                     U $ r   r4   r   s    r   class_decorator3GrammarTests.test_classdef.<locals>.class_decoratorW  s    qr   c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.GiX  r4   Nr   r4   r   r   Gr  X      r   r  c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.Hi\  r4   Nr   r4   r   r   Hr  \  r  r   r  c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.Ii^  r4   Nr   r4   r   r   Ir  ^  r  r   r  c                    > T" U 5      $ r   r4   )ra  r  s    r   r  ,GrammarTests.test_classdef.<locals>.<lambda>`  s
    ?1%r   c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.Ji`  r4   Nr   r4   r   r   Jr  `  r  r   r  .r<   c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.Kib  r4   Nr   r4   r   r   Kr  b  r  r   r  c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.Lid  r4   Nr   r4   r   r   ru  r  d  r  r   ru  r   c                       \ rS rSrSrg)%GrammarTests.test_classdef.<locals>.Mif  r4   Nr   r4   r   r   r/  r  f  r  r   r/  )r;  )r   r   r  r  r  r  r   r  r  r  r  r  r  ru  r/  r  s                  @r   test_classdefGrammarTests.test_classdefH  s      	* 	* 	)	 
 " 
"	 
	% 
&
	$Q	' 
(		)/	: 
;
	1		&	&	/	/ 
0r   c                 j    / SQnU R                  U Vs0 s H  o"US-   _M
     snSSSS.5        g s  snf )Nr  r<   r   r_  r`  r   )r   numsr  s      r   test_dictcompsGrammarTests.test_dictcompsi  s8     .AAaC%.A!0BC.s   0c                 ^  ^  / SQn/ SQn/ SQnT R                  U Vs/ s H  oDR                  5       PM     sn/ SQ5        T R                  U Vs/ s H  nSU-  PM
     sn/ SQ5        T R                  U Vs/ s H  oUS:  d  M
  UPM     sn/ SQ5        T R                  U VVs/ s H  ob  H  oFU4PM     M     snn/ S	Q5        T R                  U VVVs/ s H(  ob Vs/ s H  nS
U;   d  M  UPM     sn  H  oFU4PM     M*     snnn/ SQ5        T R                  [        S5       Vs/ s H  nS " U5      PM     snS/SS// SQ/ SQ/ SQ/5        S n	T R                  U	" U5      / SQ5        U 4S jn
U
" 5         [        T S5        [        T S5        / SQn/ SQn/ SQnU VVVVVVs/ s H3  u  pU  H'  u  nnU  H  u  nnUU:X  d  M  UU:X  d  M  UU4PM     M)     M5     nnnnnnnT R                  U/ SQ5        g s  snf s  snf s  snf s  snnf s  snf s  snnnf s  snf s  snnnnnnf )Nrb  )AppleBananaCoconut)z  Applez Banana zCoco  nut  )r  r  z	Coco  nutr_  )r_  r  r   r     r   r  ))r<   r  r<   r  r<   r  )r   r  r   r  r   r  )r_  r  r_  r  r_  r  )r`  r  r`  r  r`  r  )r   r  r   r  r   r  r6  )
r  r  r  r  r  r  r  r  r  r  r   c                 N    [        U S-   5       Vs/ s H  oU-  PM	     sn$ s  snf r   range)r   r  s     r   r  -GrammarTests.test_listcomps.<locals>.<lambda>  s     51:$>:aT:$>$>s   "r<   )r<   r   r`  )r<   r_  r      )r<   r`     @      c                 f    U  Vs/ s H  oS:  d  M
  SUs=:  =(       a    S:  Os  PM!     sn$ s  snf )Nr   r   r_  r4   )lr   s     r   test_in_func1GrammarTests.test_listcomps.<locals>.test_in_func  s*    '(2q!EIAIIAIq222s   	..)FFFc            
         > TR                  S V Vs/ s H  o U S-   4 Vs/ s H  oPM     snPM     snn SS/SS/SS//5        g s  snf s  snn f )N)r<   r_  r   r<   r   r_  r`  r   r  r   )r   r   r   s     r   test_nested_front6GrammarTests.test_listcomps.<locals>.test_nested_front  sS    wGw!a!e*5*Qq*5wG !fq!fq!f575Gs   A

AA

A

z"[i, s for i in nums for s in strs]z[x if y]))r<   Boeing)r   Ford)r_  
Macdonalds))r  Airliner)rJ  Engine)   Cheeseburger))r<   r  )r<   rJ  )r   rJ  )r_  r  ))r  r  )r  r  )r  r  )r  r  )r   stripr  r   )r   r  strsspcsr0   r   r  r   r  r  r  	supplierspartssuppartsnosnamepnopnamesp_snosp_pnos   `                   r   test_listcompsGrammarTests.test_listcompsp  s.   -5T2T'')T24TU.A!a%.0ABT3TU!T3Y?$=$Q1a&&$=G	H 	$V$QD8UDqCSTHD8U1a&8U&$V9	: 	ERSHUHq>BHU#1vy-ATU	W	3 	d+-BC	7 	4!EF4,
	

 !*
 
 )"',3(/$VVF]	  (+f}	 5%. )0 "'  ) 	
 
 	 = 	>m 3.3= 9VV VB
sS   G?H7	H	H	$H
	H
H-H3H)H )H%H%H%Hc           
        ^ S [        S5       5       nU R                  [        U5      [        S5       Vs/ s H  o"PM     sn5         [        U5        U R                  S5        Sm U4S jT 5       n[        U5        U R                  S5        U R                  [        S S 5       5      S VVs/ s H  nS  H  o2U4PM     M     snn5        U R                  [        S	 S
 5       5      S
 VVs/ s H  nS  H  o2U4PM     M     snn5        [        S5       Vs/ s H  o"PM     snmS S T 5        5       nU R                  [        U5      [        [        S5       Vs/ s H  o"PM     sn5      5        U R                  [        S [        S5       5       5      [        [        S5       Vs/ s H  o"S-  PM	     sn5      5        U R                  [        S [        S5       5       5      [        [        S5       Vs/ s H  o"S-  (       d  M  X"-  PM     sn5      5        U R                  [        S S [        S5       5        5       5      [        [        S5       Vs/ s H  o"PM     sn5      5        U R                  [        S S S [        S5       5        5        5       5      [        [        S5       Vs/ s H  o"PM     sn5      5        U R                  [        S S [        S5       5        Vs/ s H  o3PM     sn 5       5      [        [        S5       Vs/ s H  o"PM     sn5      5        U R                  [        S S S [        S5       5        5        5       5      [        [        S5       Vs/ s H  o"PM     sn5      5        U R                  [        S S S [        S5       5        5        5       5      S5        [        U S5        [        U S 5        g s  snf ! [         a     GNf = f! [
         a     GNvf = fs  snnf s  snnf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )!Nc              3   b   #    U  H   n[        S 5       Vs/ s H  oPM     snv   M"     gs  snf 7f)r  Nr  .0r   s     r   	<genexpr>,GrammarTests.test_genexps.<locals>.<genexpr>  s&     6Xr#Aa#X#s   /*/r<   r  z&should produce StopIteration exceptionc              3   (   >#    U  H  nTv   M	     g 7fr   r4   )r  r  r   s     r   r  r    s     AqAs   zshould produce TypeErrorc              3   <   #    U  H  nS   H  o!U4v   M
     M     g7f)r  Nr4   r  r   r   s      r   r  r    s     Eff!ffff   r  c              3   <   #    U  H  nS   H  o!U4v   M
     M     g7f)xyNr4   r  s      r   r  r    s     AdDq!fDfdr  abr  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    s     '1Qr  c              3   $   #    U  H  ov   M     g 7fr   r4   r  r   s     r   r  r    s     AqAr  c              3   *   #    U  H	  oS -  v   M     g7fr   Nr4   r  s     r   r  r    s     59aT9s   r   c              3   @   #    U  H  oS -  (       d  M  X-  v   M     g7fr  r4   r  s     r   r  r    s     ;)QsSQS)s   c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    s     ?(>1Q(>r  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    s     (>IqIr  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r         L(K1Q(Kr  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    s     (K4Jq4Jr  c              3   $   #    U  H  ov   M     g 7fr   r4   r  r   s     r   r  r         4J	1Q	r  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    r  r  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    r  r  c              3   &   #    U  H  nUv   M	     g7fTNr4   r  s     r   r  r    s     \(S1Q(Sr  c              3   $   #    U  H  ov   M     g 7fr   r4   r  s     r   r  r    s     (S4Rq4Rr  c              3   &   #    U  H  nUv   M	     g7fr
  r4   r  s     r   r  r         4R	1Q	r  c              3   &   #    U  H  nUv   M	     g7fr
  r4   r  s     r   r  r    s     e(\1Q(\r  c              3      #    U  H  nM     g7f)FNr4   r  s     r   r  r    s     (\4Rq4Rs   c              3   &   #    U  H  nUv   M	     g7fr
  r4   r  s     r   r  r    r  r  r   zfoo(x for x in range(10), 100)zfoo(100, x for x in range(10)))	r  r   nextr/   StopIterationr:  r   sumr   )r   r  r   r   r   r   s        @r   test_genexpsGrammarTests.test_genexps  s}   6U1X6aeBi"8i1i"89	GII>? 	AAGII01 	EfEEX^GoX^SThncdAhnX^GopAdAATXCgTXqbf]^FbfFTXCghb	"	1Q	"'A'Qr%;Aa%;!<=55955s%PR);T)QqD);T7UV;%);;SuUWyA`y!^_\_#!#yA`=ab?(>E"I(>??QVWYQZE[QZAaQZE[A\]L(K4Jb	4J(KLLc^cdf^gRh^gYZST^gRhNijL4Jb	4J(K4Jq4J(KLLc^cdf^gRh^gYZST^gRhNij\(S4Rb	4R(S\\^anstvnwbxnwijcdnwbx^yze(\4Rb	4R(\eeghi4!AB4!AB= #9  		  		 HpCg"%;;TA`E[Rh(KRhbxsq   O#
	O( ((O9 1P
1PP"P/P ?P%P%!P*<P/8P4 P9;P>(
O65O69
PPc           	        ^^ SmS [        T5       5       nSmU R                  [        [        U5      5      S5        SmSmUU4S j[        T5       5       nSmSmU R                  [        S5       VVs/ s H  n[        S5        H  o2U4PM     M     snn[        U5      5        U R                  [        S5       Vs/ s H  oDS-  (       d  M  US-  (       d  M  UPM     sn/ S	Q5        U R                  [        S
 [        S5       5       5      / S	Q5        U R                  S Vs/ s H  u  oDPM     sn/ SQ5        U R                  [        S S 5       5      / SQ5        g s  snnf s  snf s  snf )Nr  c              3   $   #    U  H  ov   M     g 7fr   r4   )r  r  s     r   r  ;GrammarTests.test_comprehension_specials.<locals>.<genexpr>  s     )1Qr  r   Fc              3   b   >#    U  H$  nT(       d  M  [        T5        H  o!U4v   M
     M&     g 7fr   r  )r  r  r  tr   s      r   r  r    s#     Ox!1eAh1hxs   //Tr   r_  )r<   r   r  c              3   T   #    U  H  oS -  (       d  M  US-  (       d  M  Uv   M      g7f)r   r_  Nr4   r  s     r   r  r    s     EA!eaq1uaas   ((	())r`  )r   )r  r  c              3   (   #    U  H  u  ov   M
     g 7fr   r4   r  s     r   r  r    s     =*<BAa*<r  ))r  )r  )r   )r  r  r   )r  r   r   r   )r   r  r  r  r   r  s       `@r   test_comprehension_specials(GrammarTests.test_comprehension_specials  s,   )a)q1T!Wr* EOuQxO14qrEAE!HqQ%H%EtAwO 	eBiCiq51AE1iCYOErEEyQ 	&89&8!&899E=*<==yI F D :s   4 E#
>E)E)E)'E.c                     " S S[         5      nU" 5           S S S 5        U" 5        n S S S 5        U" 5        u  p# S S S 5        U" 5          U" 5           S S S 5        S S S 5        U" 5        o!" 5        n S S S 5        S S S 5        U" 5        o!" 5           S S S 5        S S S 5        U" 5           S S S 5        U" 5        n S S S 5        U" 5        u  p#U" 5        n S S S 5        S S S 5        U" 5          U" 5           S S S 5        S S S 5        U" 5        nU" 5        n S S S 5        S S S 5        U" 5        nU" 5           S S S 5        S S S 5        U" 5        nU" 5        nU" 5        n S S S 5        S S S 5        S S S 5        U" 5        nU" 5        nU" 5           S S S 5        S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nc                        \ rS rSrS rS rSrg)1GrammarTests.test_with_statement.<locals>.manageri  c                     gNr   r4   rA   s    r   	__enter__;GrammarTests.test_with_statement.<locals>.manager.__enter__  s    r   c                     g r   r4   )r   r|  s     r   __exit__:GrammarTests.test_with_statement.<locals>.manager.__exit__  r  r   r4   N)r   r   r   r   r$  r'  r   r4   r   r   managerr!    s    r   r)  )object)r   r)  r   r   r   s        r   test_with_statement GrammarTests.test_with_statement  s   	f 	 Y Y! Y&1 Y	 "YY!WY! 'YY!WY 'Y I 
 I 
 I!I   II   II   II   III    III   Io YYY!	YY&YYY&YYY I
 I I I I I I I I I I I I I I Is  F1GGG9G'G9-H4H6HIH/I-I>I%
J	I7J	2J-:J<J-KJ?K4K5<K#>K5L+L%L'L/L+M!ML=M M!1
G 
G
G$'
G6	1G99
H
H	H
H,/
H>	9I
I
I"%
I47
J	J		
J
J*	%J--
J<?
K		K
K #
K2	-K55
L
LL
L(	#L++
L:=
MM
M	M!!
M/c                 &   S nU R                  S S 4 Vs/ s H  o"" 5       (       d  M  U" 5       PM     snS/5        U R                  S S 4 Vs/ s H  o"" S5      (       d  M  U" S5      PM     snS/5        U R                  S	S	5        U R                  S	S	5        U R                  SS5        U R                  SS5        U R                  S
S
5        U R                  SS5        U R                  SS5        U R                  S	S	5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  S	S	5        U R                  SS5        U R                  SS5        U R                  SS5        g s  snf s  snf )Nc                     [        U 5        U$ )z@helper to check that evaluation of expressions is done correctlyr   )r  rets     r   
_checkeval2GrammarTests.test_if_else_expr.<locals>._checkeval+  s    #JJr   c                      g)NTr4   r4   r   r   r  0GrammarTests.test_if_else_expr.<locals>.<lambda>2  s    r   c                      gNFr4   r4   r   r   r  r3  2  s    ur   Tc                     U (       a  S$ S$ )NFTr4   r   s    r   r  r3  3  s    8L8Lr   c                     U (       a  S$ S$ )NTFr4   r   s    r   r  r3  3  s    `aX\XlglXlr   Fr<   r   r  r   r_  r  r  g      @r   )r   r0  r   s      r   test_if_else_exprGrammarTests.test_if_else_expr)  s{   	 	}(EN(E1313(ENQUPVW.LNl-m{-mqrsxqy81U8-m{  C  ~D  	E!CQCA2a!4!4!aH!]^_qaH%e4!a0%a0%a0%b1%a0!a0! O{s   F	F	F%Fc                    U R                  SS5        U R                  SS5        U R                  SS5        SnSnU R                  SXL L 5        U R                  SUL UL 5        U R                  SUs=L =(       a	    UL 5        g s  5        g )Nr  r   r_  F)r   r-   assertFalser   s      r   test_paren_evaluation"GrammarTests.test_paren_evaluationD  s    ++q)!&)*%1**+!q))r   c                      " S S5      nU" 5       nU R                  X"-  S5        US-  nU R                  UR                  S5        g )Nc                        \ rS rSrS rS rSrg)'GrammarTests.test_matrix_mul.<locals>.MiQ  c                     g)Nr`  r4   r   r*  s     r   
__matmul__2GrammarTests.test_matrix_mul.<locals>.M.__matmul__R  s    r   c                     Xl         U $ r   otherrB  s     r   __imatmul__3GrammarTests.test_matrix_mul.<locals>.M.__imatmul__T  s    
r   rF  N)r   r   r   r   rC  rH  r   r4   r   r   r/  r@  Q  s    r   r/  r`  r   )r   rG  )r   r/  ms      r   test_matrix_mulGrammarTests.test_matrix_mulN  sD    	 	 C"	R"%r   c                    S nU R                  UR                  S5        U R                  [        UR                  R
                  [        R                  -  5      5        S nUS 5       nU R                  UR                  5        U R                  UR                  S5        U R                  [        UR                  R
                  [        R                  -  5      5        g )Nc                  <   #    S n  [        5       I S h  vN   g  N7f)Nc                      g r   r4   r4   r   r   r  8GrammarTests.test_async_await.<locals>.test.<locals>.sum^  r  r   )someobj)r  s    r   rj   +GrammarTests.test_async_await.<locals>.test]  s     is   rj   c                      [        U SS5        U $ )N_markedT)setattr)funcs    r   	decorator0GrammarTests.test_async_await.<locals>.decoratorf  s    D)T*Kr   c                     #    g7f)N   r4   r4   r   r   test2,GrammarTests.test_async_await.<locals>.test2j  s        r[  )	r   r   r-   boolr7  co_flagsinspectCO_COROUTINErT  )r   rj   rW  r[  s       r   test_async_awaitGrammarTests.test_async_await\  s    	  	/T]]33g6J6JJKL	 
	 
	&1U^^44w7K7KKLMr   c                    ^^  " S S[         5      m " S S5      mUU4S jnU R                  T5         U" 5       R                  S 5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg))GrammarTests.test_async_for.<locals>.Doneir  r4   Nr   r4   r   r   Donerf  r      tr   rg  c                        \ rS rSrS rS rSrg)*GrammarTests.test_async_for.<locals>.AIterit  c                     U $ r   r4   rA   s    r   	__aiter__4GrammarTests.test_async_for.<locals>.AIter.__aiter__u  s    r   c                    #    [         e7fr   )StopAsyncIterationrA   s    r   	__anext__4GrammarTests.test_async_for.<locals>.AIter.__anext__w  s     ((s   	r4   N)r   r   r   r   rl  rp  r   r4   r   r   AIterrj  t  s    )r   rr  c                     >#    T" 5         S h  vN n M   N
 T" 5         S h  vN  u  pM  
 T" 5         S h  vN  n M  
  Te7fr   r4   )r  r  rr  rg  s     r   rz  (GrammarTests.test_async_for.<locals>.fooz  sZ      7 a7#g  da & 7  a # JsC   AAA.'.AA=AAr   r)   send)r   rz  rr  rg  s     @@r   test_async_forGrammarTests.test_async_forq  sD    #9#	) 	)		 t$EJJt %$$   A
A"c                    ^^  " S S[         5      m " S S5      mUU4S jnU R                  T5         U" 5       R                  S 5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)*GrammarTests.test_async_with.<locals>.Donei  r4   Nr   r4   r   r   rg  r|    rh  r   rg  c                        \ rS rSrS rS rSrg)-GrammarTests.test_async_with.<locals>.manageri  c                    #    g7fr#  r4   rA   s    r   
__aenter__8GrammarTests.test_async_with.<locals>.manager.__aenter__  s     r]  c                    #    g7fr5  r4   )r   excs     r   	__aexit__7GrammarTests.test_async_with.<locals>.manager.__aexit__  s     r]  r4   N)r   r   r   r   r  r  r   r4   r   r   r)  r~    s    r   r)  c                    >#    T" 5        IS h  vN    S S S 5      IS h  vN   T" 5        IS h  vN n  S S S 5      IS h  vN   T" 5        IS h  vN u  p S S S 5      IS h  vN   T" 5        IS h  vN   T" 5        IS h  vN    S S S 5      IS h  vN   S S S 5      IS h  vN   T" 5        IS h  vN n T" 5        IS h  vN n S S S 5      IS h  vN   S S S 5      IS h  vN   T" 5        IS h  vN n T" 5        IS h  vN    S S S 5      IS h  vN   S S S 5      IS h  vN   Te GN GN! , IS h  vN  (       d  f       GN'= f GN GN! , IS h  vN  (       d  f       GN'= f GN GN! , IS h  vN  (       d  f       GN%= f GN GN GN! , IS h  vN  (       d  f       GN= f GN! , IS h  vN  (       d  f       GN&= f GN GN GN! , IS h  vN  (       d  f       GN= f GN! , IS h  vN  (       d  f       GN'= f GN GN GN! , IS h  vN  (       d  f       GN= f GN! , IS h  vN  (       d  f       Te= f7fr   r4   )r   r   rg  r)  s     r   rz  )GrammarTests.test_async_with.<locals>.foo  s     yy !yyyA !yyyFQ !yyy')) #,)yyyyAwyyA (1yyyyyAwyy (1yyyJ !yyy yyy yyy ))))yyyy yyyyyyyy yyyyyyyyJs_  ID.ID4ID1IEIEIEIE0IE6I$E3%I4F5I8F8FF8F
F8FF8I%F5&I5G6I9G:GG:	GG:GG:I&G7'I6H7I:H<HH<
HH<HH<I'H9(I1I4E:D=;E	IIE-EE-(	I3I6F<E?=F		IF8F8F2	 F#!F2	-F85I8G>G?G	IG:G:G4	"G%#G4	/G:7I:H HH	IH<H<H6	$H'%H6	1H<9I<IIIIru  )r   rz  rg  r)  s     @@r   test_async_withGrammarTests.test_async_with  sD    #9#	 		 t$EJJt %$$ry  c                 F   ^ S mU4S jnU R                  U" 5       S5        g )Nc                     g)NrF   r4   rz  bars     r   test1/GrammarTests.test_complex_lambda.<locals>.test1  s    r   c                     > T " S S S9 $ )Nc                      g)Nu3   、、、、、、、、、、、、、、、、、r4   r4   r   r   r  AGrammarTests.test_complex_lambda.<locals>.test2.<locals>.<lambda>  s    Qr   c                      g)Nz.abcdefghijklmnopqrstuvwxyz 123456789 123456789r4   r4   r   r   r  r    s    Lr   r  r4   )r  s   r   r[  /GrammarTests.test_complex_lambda.<locals>.test2  s    QL  r   rF   r   )r   r[  r  s     @r   test_complex_lambda GrammarTests.test_complex_lambda  s!    		 	"%r   r4   N)Pr   r   r   r   r   r   r   r   r   r   r   r   r   r  r$  r0  r8  r>  rO  r[  rd  r<  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr  r  r   r#  r&  r:  rA  rD  rG  rJ  rM  rT  rY  r\  r_  rb  rf  rj  rv  r}  r  r  r  r  r  r+  r8  r<  rK  rb  rw  r  r  r   r4   r   r   r   r      s   /A>
&1>,\0,<:	%#A*A"3v&p!)N2%.W44472#h3#j",38/4%;N36'&I2& $FGE HEA@*(BX2G0	9K"6:PBd

"A<FBD=>~!CFJ&BH16*&N*.6
&r   r   __main__)r   r   r   r`  r  r,   r=   test.typinganndata.ann_moduletypinganndatar+  r,  test.typinganndatar   rj   test.support.numbersr   r	   TestCaser   r   r   r   r   r   mainr4   r   r   <module>r     s    , &   
   3 2  * 
KA"" KAZ   {&8$$ {&|5 zMMO r   