
    -Ph                     v   d dl Z d dlmZ d dlZddlmZ ddlmZ ddlm	Z	 ddl
mZ g Zej        D ]?Zd                    d	  ed
          D                       Ze                    e           @d                    e          Z e              G d de j                  Zedk    r e j                     dS dS )    N)StringIO   )Scanning)ModuleScope)StringParseContext)init_thread c                 $    g | ]}t           |S  )ch).0ns     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Compiler/Tests/TestScanning.py
<listcomp>r      s!    999!rr11%999    
   
c                        e Zd Zd Zd Zd ZdS )TestScanningc                     t          j        dt                    }t          t                    }t	          d          }t          dd d           }t          j        ||||          S )Nz	fake codezfake contextfake_module)scopecontext)r   StringSourceDescriptorcoder   r   r   PyrexScanner)selfsourcebufr   r   s        r   make_scannerzTestScanning.make_scanner   sW    0dCCtnn$^44M466$S&wOOOOr   c                    |                                  }|                     |j        d           |                     |j        d           |                                 |                     |j        d           |                     |j        d           |j        }|                     |dd          d           |                                }|                     ||j                   |                                 |                     ||j        |j        f           |j        dk    r|                                 |j        dk    g }g }g }|                                 |j        dk    rm|                    |j                   |                    |j                   |                    |j                   |                                 |j        dk    mt          |d d d         |d d d         |d d d                   D ]\  }}}	|	                    |||	           d}
|j        dk    r|                     |j        ||
                    |                     |j        ||
                    |                     |j        ||
                    |                                 |
dz  }
|j        dk    |                     |
t          |                     d S )	NIDENTa0a1   )r%      NEWLINEr   )r    assertEqualsysystringnextlast_token_position_tuplepeekappendzipput_backlen)r   scannera1posa2peekline_syline_systringline_posr*   r+   posr   s              r   test_put_back_positionsz$TestScanning.test_put_back_positions   s   ##%%W---)4000W---)40001qrrF+++ ABBB'*g.>!?@@@ jI%%LLNNN jI%% jI%%NN7:&&&  !1222OOG=>>>LLNNN	 jI%% "%DDbDM=2.2"
 "
 	0 	0B# R3////jI%%WZ444W-}Q/?@@@W>LLLLLNNNFA jI%% 	CMM*****r   c                 	   |                                  }t          j        |          5 }|j        dk    r|                                 |j        dk    d d d            n# 1 swxY w Y   |                     |           |                                 |                     |j        d           |j        }t          j        |          5 }|j        dk    r@|                                 |j        dk    r|	                    d           n|j        dk    @d d d            n# 1 swxY w Y   | 
                    |           |                     |j        d           |                     |j        |           |                                 |                     |j        d           |                                 |                     |j        d           t          j        |          5 }|	                    d           d d d            n# 1 swxY w Y   |                     |j        d           |                                 |                     |j        d           |j        |j        }}|j        }t          j        |          5  |                                 |j        |j        }	}|j        }
t          j        |          5  t          j        |          5  |                                 |                                 |	                    d	           d d d            n# 1 swxY w Y   |                     |j        |j        f||	f           d d d            n# 1 swxY w Y   |                     |j        |j        f||	f           |	                    d
           d d d            n# 1 swxY w Y   |                     |j        |j        f||f           t          j        |          5  |                                 |                                 t          j        |          5  |                                 d d d            n# 1 swxY w Y   |                                 |	                    d           d d d            n# 1 swxY w Y   |                     |j        |j        f||f           d S )Nr'   b0b7zOh no not b7!b1b2z0Something has gone wrong with the current symbolb3OoopseeeOooops)r    r   tentatively_scanr*   r,   assertFalser)   r+   r-   error
assertTrue)r   r3   errorsr9   rF   sy1	systring1pos1sy2	systring2pos2s              r   test_tentatively_scanz"TestScanning.test_tentatively_scanJ   s[   ##%%&w// 	6*	)) *	))	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   )4000/&w// 	6*	))#t++MM/222	 *	))	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)4000:C@@@)4000)4000&w// 	N5MMLMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N)4000)4000 !W%5Y0&w// 	! 	!LLNNN$Z)9C4D*733 S S.w77 + +LLNNNLLNNNMM'***+ + + + + + + + + + + + + + +   '*g.>!?#yAQRRRS S S S S S S S S S S S S S S gj'*:;c9=MNNNMM%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	'*g&67#y9IJJJ&w// 	$ 	$LLNNNLLNNN*733                 LLNNNMM(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	'*g&67#y9IJJJJJs   +A  A$'A$
AD""D&)D&*HHH
>N2M">L'M"'L++M".L+/'M"N2"M&	&N2)M&	*<N22N69N65=R2QRQ	RQ	,RRRN)__name__
__module____qualname__r    r:   rO   r   r   r   r   r      sJ        P P P++ ++ ++Z6K 6K 6K 6K 6Kr   r   __main__)unittestior   string r   Symtabr   TreeFragmentr   Errorsr   r   ascii_lowercaser   joinrangeliner/   TestCaser   rP   mainr   r   r   <module>ra      sE                             - - - - - -             


   B8899uuRyy999::DKKyy lK lK lK lK lK8$ lK lK lKb zHMOOOOO r   