
    h                         S r SSKrSSKrSSKJr  SSKJr  SSKJr  / SQr	/ S	Qr
/ S
Qr " S S\5      r\S:X  a  SSKr\R                  " 5         gg)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                   &    \ rS rSrS rS rS rSrg)TestGrammar   c           	      J   [          H0  nS H'  nSX!-  -   n U R                  SU-   5         SU-  5       e   M2     g ! [         a\  nU[        U5      R	                  5        Vs/ s H  oUR                  5       PM     Os  snf sn;   d   [        U5      5       e S nAM  S nAff = f)Nz%sz1 + %sz%s + 1z2 * %sz%s * 2x = C                    # cython: language_level=3
                    5Invalid Cython code '%s' failed to raise an exception)INVALID_UNDERSCORE_LITERALSfragmentr   str
splitlinesstrip)selfliteral
expressioncodeexcss         [/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/Tests/TestGrammar.pytest_invalid_number_literals(TestGrammar.test_invalid_number_literals   s    2GL

 44aMM ##   a"Y\`"``5 M 3 $ Xs3x7J7J7L#M7L!GGI7L#MMWsSVxWMXs!   <
B"B"A<;BB"c                    [          GHZ  n[        / SQ5       GHD  u  p#SX1-  -   nU R                  SU-   5      R                  nUc   eUR                  S   R
                  nUS:  a"  US-  (       a  UR                  OUR                  nSU;   d  SU;   aX  SU;   a)  [        U[        R                  5      (       d   X45       eM  [        U[        R                  5      (       d   X45       eM  S	U;   d  S
U;   d  SU;   a6  SU;   d0  SU;   d*  [        U[        R                  5      (       d   X45       eGM  [        U[        R                  5      (       a  GM?   X45       e   GM]     g )Nr/   r0   r1   r   r   jJ+.eE0x0X)VALID_UNDERSCORE_LITERALS	enumerater4   rootstatsrhsoperand2operand1
isinstancer   AddNodeImagNode	FloatNodeIntNode)r8   r9   ir:   r;   nodeliteral_nodes          r>   test_valid_number_literals&TestGrammar.test_valid_number_literals   sP   00G!*+Y!Z
 44}} &&   $  '''#zz!}00q5<=E<#8#8|G\G\L'>SG^g~),	8I8IJJcWLccJ),	8J8JKKdgMddKG^sg~QUY`Q`dhlsds%lI4G4GHHa7JaaH%lI4E4EFF_H__F) "[ 1    c                    Sn[          H9  u  p#n [        R                  " [        R                  " U5      5         SU-  5       e   g ! [
         a
  n S nAOS nAff = f U R                  SU-   5         SU-  5       e! [         a9  nUR                  X45      [        U5      ;   d   [        U5      5       e S nAM  S nAff = f)Nz+:{0}:{1}: Expected an identifier or literalz5Invalid Python code '%s' failed to raise an exceptionz;                # cython: language_level=3
                r2   )
INVALID_ELLIPSISastparsetextwrapdedentSyntaxErrorr4   r   formatr5   )r8   ERRr;   linecolr<   s         r>   test_invalid_ellipsis!TestGrammar.test_invalid_ellipsis   s    ;/OD]		(//$/0 ]UX\\\u  0  
]   ]UX\\\u   Czz$,C8B#c(B8Cs)   *A
AAA==
C .B;;C  N)__name__
__module____qualname____firstlineno__r?   rY   rg   __static_attributes__ri   r[   r>   r,   r,      s    a`0]r[   r,   __main__)__doc__r^   r`   	TestUtilsr    r   Errorsr   rJ   r3   r]   r,   rj   unittestmainri   r[   r>   <module>rv      s_   
   #  ! 6= @ B8]* 8]v zMMO r[   