
    ڏDjx                     |   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j                   ed	      D  cg c]  } e| 
 c}       Zej%                  e       > d
j                  e      Z e         G d de j&                        Zedk(  r e j,                          yyc c} w )    N)StringIO   )Scanning)ModuleScope)StringParseContext)init_thread 
   
c                       e Zd Zd Zd Zd Zy)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        fC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\Cython/Compiler/Tests/TestScanning.pymake_scannerzTestScanning.make_scanner   sL    00dCtn$^4M46$$S&wOO    c                    | j                         }| j                  |j                  d       | j                  |j                  d       |j	                          | j                  |j                  d       | j                  |j                  d       |j
                  }| j                  |dd  d       |j                         }| j                  ||j
                         |j	                          | j                  ||j                  |j                  f       |j                  dk7  r |j	                          |j                  dk7  r g }g }g }|j	                          |j                  dk7  rq|j                  |j                         |j                  |j                         |j                  |j
                         |j	                          |j                  dk7  rqt        |d d d   |d d d   |d d d         D ]  \  }}}	|j                  |||	        d}
|j                  dk7  r| j                  |j                  ||
          | j                  |j                  ||
          | j                  |j
                  ||
          |j	                          |
dz  }
|j                  dk7  r| j                  |
t        |             y )	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%   posns              r   test_put_back_positionsz$TestScanning.test_put_back_positions   sV   ##%W-))40W-))4011qrF+ A AB'**g.>.>!?@ jjI%LLN jjI% jjI%NN7::&  !1!12OOG==>LLN	 jjI% "%DbDM=2.2"
 	0B# R3/	0
 jjI%WZZ4W--}Q/?@W>>LLLNFA jjI% 	CM*r   c                 z	   | j                         }t        j                  |      5 }|j                  dk7  r |j	                          |j                  dk7  r d d d        | j                         |j	                          | j                  |j                  d       |j                  }t        j                  |      5 }|j                  dk7  rA|j	                          |j                  dk(  r|j                  d       n|j                  dk7  rAd d d        | j                  |       | j                  |j                  d       | j                  |j                  |       |j	                          | j                  |j                  d       |j	                          | j                  |j                  d       t        j                  |      5 }|j                  d       d d d        | j                  |j                  d       |j	                          | j                  |j                  d       |j                  |j                  }}|j                  }t        j                  |      5  |j	                          |j                  |j                  }	}|j                  }
t        j                  |      5  t        j                  |      5  |j	                          |j	                          |j                  d	       d d d        | j                  |j                  |j                  f||	f       d d d        | j                  |j                  |j                  f||	f       |j                  d
       d d d        | j                  |j                  |j                  f||f       t        j                  |      5  |j	                          |j	                          t        j                  |      5  |j	                          d d d        |j	                          |j                  d       d d d        | j                  |j                  |j                  f||f       y # 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w)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   r-   errorsr3   rA   sy1	systring1pos1sy2	systring2pos2s              r   test_tentatively_scanz"TestScanning.test_tentatively_scanJ   s   ##%&&w/ 	6**	) **	)	 	 ))40//&&w/ 	6**	)##t+MM/2	 **	)	 	))40::C@))40))40&&w/ 	N5MMLM	N))40))40 !W%5%5Y00&&w/ 	!LLN$ZZ)9)9C44D**73 S..w7 +LLNLLNMM'*+   '**g.>.>!?#yAQRS gjj'*:*:;c9=MNMM% 	! 	'**g&6&67#y9IJ&&w/ 	$LLNLLN**73  LLNMM(#	$ 	'**g&6&67#y9IJi	 		 		N 	N+ +S S		! 	!  	$ 	$s   /Q<AQ$Q1&A
R0R2Q>82R*AR46R1*R%;)R1Q!$Q.1Q;>RRR	RR"%R.	*R11R:N)__name__
__module____qualname__r   r5   rJ    r   r   r   r      s    P++Z6Kr   r   __main__)unittestior   string r   Symtabr   TreeFragmentr   Errorsr   r   ascii_lowercasechjoinrangeliner)   TestCaser   rK   main)r4   s   0r   <module>r^      s          -   


 
  B88uRy9!r1%9:DKK yy lK8$$ lKb zHMMO q :s   B9
