o
    Õjņ  ć                   @   sø   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	d
 edD ”Ze e” q+d e”Ze  G dd de jZedkrZe  ”  dS dS )é    N)ŚStringIOé   )ŚScanning)ŚModuleScope)ŚStringParseContext)Śinit_threadś c                 C   s   g | ]}d t |f qS )z%s%s)Śch)Ś.0Śn© r   śc/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/Cython/Compiler/Tests/TestScanning.pyŚ
<listcomp>   s    r   é
   Ś
c                   @   s$   e Zd Zdd Zdd Zdd ZdS )ŚTestScanningc                 C   s:   t  dt”}tt}td}tdd d }t j||||dS )Nz	fake codezfake contextZfake_module)ŚscopeŚcontext)r   ZStringSourceDescriptorŚcoder   r   r   ZPyrexScanner)ŚselfŚsourceŚbufr   r   r   r   r   Śmake_scanner   s
   zTestScanning.make_scannerc                 C   sŗ  |   ” }|  |jd” |  |jd” | ”  |  |jd” |  |jd” |j}|  |dd  d” | ” }|  ||j” | ”  |  ||j|jf” |jdkrX| ”  |jdksOg }g }g }| ”  |jdkr| |j” | |j” | |j” | ”  |jdksgt|d d d |d d d |d d d D ]\}}}	| 	|||	” qd}
|jdkrÓ|  |j||
 ” |  |j||
 ” |  |j||
 ” | ”  |
d7 }
|jdks«|  |
t
|” d S )	NZIDENTZa0Za1é   )r   é   ŚNEWLINEé’’’’r   )r   ŚassertEqualŚsyŚsystringŚnextŚlast_token_position_tupleŚpeekŚappendŚzipZput_backŚlen)r   ŚscannerZa1posZa2peekZline_syZline_systringZline_posr   r   Śposr   r   r   r   Śtest_put_back_positions   sL   

’

ü$’

ūz$TestScanning.test_put_back_positionsc              
   C   s6  |   ” }t |”}|jdkr| ”  |jdksW d    n1 s"w   Y  |  |” | ”  |  |jd” |j}t |”!}|jdkrY| ”  |jdkrT| 	d” n|jdksEW d    n1 scw   Y  |  
|” |  |jd” |  |j|” | ”  |  |jd” | ”  |  |jd” t |”}| 	d” W d    n1 s¦w   Y  |  |jd” | ”  |  |jd” |j|j}}|j}t |”k | ”  |j|j}}	|j}
t |”6 t |” | ”  | ”  | 	d	” W d    n1 sžw   Y  |  |j|jf||	f” W d    n	1 sw   Y  |  |j|jf||	f” | 	d
” W d    n	1 s;w   Y  |  |j|jf||f” t |”3 | ”  | ”  t |” | ”  W d    n	1 sow   Y  | ”  | 	d” W d    n	1 sw   Y  |  |j|jf||f” d S )Nr   Zb0Zb7zOh no not b7!Śb1Śb2z0Something has gone wrong with the current symbolZb3ZOoopsZeeeZOooops)r   r   Ztentatively_scanr   r    ZassertFalser   r   r!   ŚerrorZ
assertTrue)r   r&   Śerrorsr'   r+   Zsy1Z	systring1Zpos1Zsy2Z	systring2Śpos2r   r   r   Śtest_tentatively_scanJ   sz   

’’




ü’
’żūõ
’łz"TestScanning.test_tentatively_scanN)Ś__name__Ś
__module__Ś__qualname__r   r(   r.   r   r   r   r   r      s    -r   Ś__main__)ZunittestŚior   ŚstringŚ r   ZSymtabr   ZTreeFragmentr   ZErrorsr   r   Śascii_lowercaser	   ŚjoinŚrangeŚliner#   ZTestCaser   r/   Śmainr   r   r   r   Ś<module>   s"    

q’