
    Ng                        d dl mZ 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 )    )unicode_literalsN)StringIO   )Scanning)ModuleScope)StringParseContext)init_thread c                 $    g | ]}t           |S  )ch).0ns     ^/var/www/html/ai-engine/env/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           |                                }|                     |dd          d           |                                }|                     ||                                           |                                 |                     ||j        |j        f           |j        dk    r|                                 |j        dk    g }g }g }|                                 |j        dk    rz|                    |j                   |                    |j                   |                    |                                           |                                 |j        dk    zt          |d d d         |d d d         |d d d                   D ]\  }}}	|	                    |||	           d}
|j        dk    r|                     |j        ||
                    |                     |j        ||
                    |                     |                                ||
                    |                                 |
dz  }
|j        dk    |                     |
t          |                     d S )	NIDENTa0a1   )r&      NEWLINEr   )r!   assertEqualsysystringnextposition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  ""qrrF+++ 0 0 2 2333'*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--//!===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           |                                }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        d           |                                 |                     |j        d           t          j        |          5 }|	                    d           d d d            n# 1 swxY w Y   |                     |j        d           |                                 |                     |j        d           |j        |j        }}|                                }t          j        |          5  |                                 |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   r4   errorsr:   rG   sy1	systring1pos1sy2	systring2pos2s              r   test_tentatively_scanz"TestScanning.test_tentatively_scanL   s   ##%%&w// 	6*	)) *	))	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   )4000  &w// 	6*	))#t++MM/222	 *	))	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)4000))++S111)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!!&w// 	! 	!LLNNN$Z)9C##%%D*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//D36D3H&&H*-H*1AO&<N>MNMN"M#'N
O&N	O&N	<O&&O*-O*)=S&R;SR	SR	,SSSN)__name__
__module____qualname__r!   r;   rP   r   r   r   r   r      sJ        P P P++ ++ ++Z6K 6K 6K 6K 6Kr   r   __main__)
__future__r   unittestior   string r   Symtabr   TreeFragmentr   Errorsr	   r   ascii_lowercaser   joinrangeliner0   TestCaser   rQ   mainr   r   r   <module>rc      sW   ' ' ' ' ' '                           - - - - - -             


   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   