
    -Ph                         d Z ddlZddlZddlmZ ddlmZ ddlmZ g dZ	g d	Z
g d
Z G d de          Zedk    rddlZ ej                     dS dS )z+
Uses TreeFragment to test invalid syntax.
    N   )
CythonTest   )	ExprNodes)CompileError)0_0_04_21_0000_00000b1001_01000xffff_ffff0o5_7_7z	1_00_00.5
1_00_00.5jz1_00_00.5e51_00_00j1_00_00e5_11e1_0z.1_4z.1_4e10b_00x_f0o_5r   r   1_00_00e5_1jz.1_4jz(1_2.5+3_3j)z(.5_6j))/0_42_z1.4j_0x_0b1_0xf_0o5_z0 if 1_Else 10_b00_xf0_o50_709_99	4_______2z0.1__4z0.1__4j0b1001__01000xffff__ffff0x___0o5__771e1__01e1__0jz1_.4z1_.4jz1._4z1._4jz._5z._5jz1.0e+_1z1.0e+_1jz1.4_jz1.4e5_j1_e1z1.4_e1z1.4_e1j1e_1z1.4e_1z1.4e_1jz
(1+1.5_j_)z	(1+1.5_j)z1_ 2z1 _2z1_2.2_ 1z1_2.2 _1z1_2e _1z1_2e2 _1z1_2e 2_1)
)z. . .r   r   )z. ..r   r   )z.. .r   r   )z. ...r   r   )z. ... .r   r   )z.. ... .r   r   )z. ... ..r   r   )z&
    (
        .
        ..
    )
    r      )z4
    [
        ..
        .,
        None
    ]
    r   r*   )z>
    {
        None,
        .
        .

        .
    }
    r*   r*   c                        e Zd Zd Zd Zd ZdS )TestGrammarc                 4   t           D ]}dD ]}d||z  z   }	 |                     d|z              J d|z              # t          $ rN}|d t          |                                          D             v sJ t          |                      Y d }~d }~ww xY wd S )Nz%sz1 + %sz%s + 1z2 * %sz%s * 2x = C                    # cython: language_level=3
                    F5Invalid Cython code '%s' failed to raise an exceptionc                 6    g | ]}|                                 S  )strip).0ss     a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Compiler/Tests/TestGrammar.py
<listcomp>z<TestGrammar.test_invalid_number_literals.<locals>.<listcomp>   s     #M#M#M!AGGII#M#M#M    )INVALID_UNDERSCORE_LITERALSfragmentr   str
splitlines)selfliteral
expressioncodeexcs        r7   test_invalid_number_literalsz(TestGrammar.test_invalid_number_literals   s    2 
	a 
	aGL 	a 	a

W 44aMM ##       a"Y\`"```` $ X X X#M#Ms3xx7J7J7L7L#M#M#MMMMsSVxxMMMMMMMMX	a
	a 
	as   <
BABBc                 n   t           D ]+}t          g d          D ]\  }}d||z  z   }|                     d|z             j        }|J |j        d         j        }|dk    r|dz  r|j        n|j        }d|v sd|v rRd|v r't          |t          j
                  sJ ||f            t          |t          j                  sJ ||f            d	|v sd
|v sd|v r/d|v s+d|v s't          |t          j                  sJ ||f            t          |t          j                  sJ ||f            -d S )Nr.   r/   r0   r   r   jJ+.eE0x0X)VALID_UNDERSCORE_LITERALS	enumerater;   rootstatsrhsoperand2operand1
isinstancer   AddNodeImagNode	FloatNodeIntNode)r>   r?   ir@   rA   nodeliteral_nodes          r7   test_valid_number_literalsz&TestGrammar.test_valid_number_literals   s   0 	` 	`G!*+Y+Y+Y!Z!Z ` `:
W 44}} &&     $  '''#z!}0q55<=E#\<#8#8|G\L'>>SG^^g~~),	8IJJccWVbLccccc),	8JKKddgWcMdddddG^^sg~~QUY`Q`Q`dhlsdsds%lI4GHHaa7T`Jaaaaa%lI4EFF__R^H_____)`	` 	`r9   c                    d}t           D ]\  }}}	 t          j        t          j        |                     J d|z              # t
          $ r
}Y d }~nd }~ww xY w	 |                     d|z              J d|z              # t          $ rF}|                    ||          t          |          v sJ t          |                      Y d }~d }~ww xY wd S )Nz+:{0}:{1}: Expected an identifier or literalFz5Invalid Python code '%s' failed to raise an exceptionTz;                # cython: language_level=3
                r1   )
INVALID_ELLIPSISastparsetextwrapdedentSyntaxErrorr;   r   formatr<   )r>   ERRrA   linecolrB   s         r7   test_invalid_ellipsisz!TestGrammar.test_invalid_ellipsis   s6   ;/ 	] 	]OD$]	(/$//000 ]UX\\\\\    
]     ]UX\\\\\   C C Czz$,,C888#c((88888888C	] 	]s)   &A
AAB
C<CCN)__name__
__module____qualname__rC   r\   rh   r3   r9   r7   r,   r,      sL        a a a` ` `0] ] ] ] ]r9   r,   __main__)__doc__r_   ra   	TestUtilsr    r   Errorsr   rM   r:   r^   r,   ri   unittestmainr3   r9   r7   <module>rs      s    
 


  # # # # # #       ! ! ! ! ! !   6= = = @   B8] 8] 8] 8] 8]* 8] 8] 8]v zOOOHMOOOOO r9   