
    sg^                       d dl mZ d dlmZmZ d dlmZ  edddgi      Zerd dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d d	l m!Z!m"Z"m#Z#m$Z$ d d
l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 d dl5m6Z6 d dl1m7Z7m8Z8 d dl9Z9d Z:d Z;d Z<d Z=ed        Z>ed        Z?ed        Z@d ZAd ZBed        ZCd ZDd ZEd ZFed        ZGyd ZHy)    SymPyExpression)raisesXFAIL)import_modulezclang.cindexfromlistcindex)import_kwargs)VariableStringReturnFunctionDefinitionIntegerFloatDeclaration	CodeBlockFunctionPrototypeFunctionCall	NoneToken
AssignmentTypeIntBaseTypeSignedIntTypeUnsignedIntType	FloatTypeAddAugmentedAssignmentSubAugmentedAssignmentMulAugmentedAssignmentDivAugmentedAssignmentModAugmentedAssignmentWhile)PreDecrementPostDecrementPreIncrementPostIncrement)AddMulModPowRationalStrictLessThanLessThanStrictGreaterThanGreaterThanEquality
Unequality)AndNotOr)Symbol)falsetrueNc                  X   d} d}d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }|d   t        t        t	        d      t        t        d            	            k(  sJ |d
   t        t        t	        d      t        t        d            	            k(  sJ |d   t        t        t	        d      t        t        d      t        d      t        d      t        d            	            k(  sJ |d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            	            k(  sJ |d   t        t        t	        d      t        t        d            	            k(  sJ |d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            	            k(  sJ |d   t        t        t	        d      t        t        d            	            k(  sJ |d   t        t        t	        d      t        t        d            t        d
                  k(  sJ |d
   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |d   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ y )Nint a;
int b;
zfloat a;
float b;
zint a;
float b;
int c;z+int x = 1, y = 6.78;
float p = 2, q = 9.67;cr   aintctype   bfloat32          nbitsnmantnexp   xr=   valuey   p2.05   	precision   qz9.67)
r   return_exprr   r   r4   r   r   r   r   r   c_src1c_src2c_src3c_src4res1res2res3res4s           T/var/www/html/venv/lib/python3.12/site-packages/sympy/parsing/tests/test_c_parser.pytest_variabler`      s    	
  	
 	% 	
 vs+779vs+779vs+779vs+779Aw+s 0
 
 	
 
 Aw+s 0
 
 	
 
 Aw+s9%!"+!"+ 	

 

 
	
 

 Aw+s9%!"+!"+ 	

 

 
	
 

 Aw+s 0
 
 	
 
 Aw+s9%!"+!"+ 	

 

 
	
 

 Aw+s 0
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s9%!"+!"+ 	 ER0	
 
 	
 
 Aw+s9%!"+!"+ 	 Fb1	
 
 	
 
    c                     d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |	d      j                         }t        |
d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }|d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d       t        t        d            t        d                  k(  sJ |d   t        t        t	        d!      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d"      t        d#      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d"      t        d#      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d%      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d%      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d%      t        d&      $      t        d                  k(  sJ |d'   t        t        t	        d(      t        t        d%      t        d&      $      t        d                  k(  sJ |d)   t        t        t	        d*      t        t        d%      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d+      t        t        d%      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d,      t        t        d%      t        d&      $      t        d                  k(  sJ |d-   t        t        t	        d.      t        t        d%      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d'   t        t        t	        d(      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d/      t        d0      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d/      t        d0      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d/      t        d0      $      t        d                  k(  sJ |d'   t        t        t	        d(      t        t        d/      t        d0      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d1      t        d#      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d1      t        d#      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d2      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d2      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d2      t        d&      $      t        d                  k(  sJ |d'   t        t        t	        d(      t        t        d2      t        d&      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d3      t        d4      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d3      t        d4      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d5      t        d0      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d5      t        d0      $      t        d                  k(  sJ |d   t        t        t	        d      t        t        d5      t        d0      $      t        d                  k(  sJ |d'   t        t        t	        d(      t        t        d5      t        d0      $      t        d                  k(  sJ y )6Nz
int a = 1;zint a = 1;
int b = 2;
zint a = 2.345, b = 5.67;zint p = 6, q = 23.45;zint x = '0', y = 'a';zint r = true, s = false;zsigned char a = 1, b = 5.1;zjshort a = 1, b = 5.1;signed short c = 1, d = 5.1;short int e = 1, f = 5.1;signed short int g = 1, h = 5.1;z-signed int a = 1, b = 5.1;int c = 1, d = 5.1;z,long a = 1, b = 5.1;long int c = 1, d = 5.1;zunsigned char a = 1, b = 5.1;z@unsigned short a = 1, b = 5.1;unsigned short int c = 1, d = 5.1;zunsigned int a = 1, b = 5.1;z>unsigned long a = 1, b = 5.1;unsigned long int c = 1, d = 5.1;r9   r   r:   r;   r>   rJ   r?   rH      rN   rM   rT   rB   rI   0   rL   a   rsint8rC   )rE   int16   rS   d   efg   hint64@   uint8uint16uint32rA   uint64)
r   rU   r   r   r4   r   r   r   r   r   )rW   rX   rY   rZ   c_src5c_src6c_src_type1c_src_type2c_src_type3c_src_type4c_src_type5c_src_type6c_src_type7c_src_type8r[   r\   r]   r^   res5res6	res_type1	res_type2	res_type3	res_type4	res_type5	res_type6	res_type7	res_type8s                               r_   test_intr      sA     	 ,((+ * 	/ 	" 	' 	 61 	 50 	
 vs+779vs+779vs+779vs+779vs+779vs+779#K5AAC	#K5AAC	#K5AAC	#K5AAC	#K5AAC	#K5AAC	#K5AAC	#K5AAC	Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0bk
 
 	
 
 Aw+s 0bk
 
 	
 
 Aw+s 0bk
 
 	
 
 Aw+s 0aj
 
 	
 
 Aw+s 0aj
 
 	
 
 |{s"6N!!* aj	  	 		 	 |{s"6N!!* aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{VC["7O!"+ aj   	  |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s 0aj   	  |{s 0aj   	  |{s 0aj   	  |{s 0aj   	  |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s"7O!"+ aj	  	 		 	 |{s$7O!!* aj	  	 		 	 |{s$7O!!* aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	 |{s$8$!"+ aj	  	 		 	ra   c                  |   d} d}d}d}d}d}d}d}t        | d	      j                         }t        |d	      j                         }	t        |d	      j                         }
t        |d	      j                         }t        |d	      j                         }t        |d	      j                         }t        |d	      j                         }t        |d	      j                         }|d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |	d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |	d   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |
d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |
d   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |d   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |d
   t        t        t	        d       t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |d   t        t        t	        d!      t        t        d      t        d      t        d      t        d            t        d"d                  k(  sJ |d
   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        dd                  k(  sJ |d   t        t        t	        d      t        t        d      t        d      t        d      t        d            t        d#d                  k(  sJ |d
   t        t        t	        d      t        t        d$      t        d%      t        d&      t        d'            t        dd                  k(  sJ |d   t        t        t	        d      t        t        d$      t        d%      t        d&      t        d'            t        d#d                  k(  sJ |d
   t        t        t	        d      t        t        d(      t        d)      t        d*      t        d+            t        dd                  k(  sJ |d   t        t        t	        d      t        t        d(      t        d)      t        d*      t        d+            t        d#d                  k(  sJ y ),Nzfloat a = 1.0;z float a = 1.25;
float b = 2.39;
zfloat x = 1, y = 2;zfloat p = 5, e = 7.89;zfloat r = true, s = false;zfloat x = 1, y = 2.5;zdouble x = 1, y = 2.5;zlong double x = 1, y = 2.5;r9   r   r:   r@   rA   rB   rC   rD   z1.0rP   rQ   rJ   1.25r>   r?   z2.3900000000000001rI   rL   rO   rN   z5.0rm   z7.89rf   rg   z0.02.5float64rs   4      float80P   ?      )	r   rU   r   r   r4   r   r   r   r   )rW   rX   rY   rZ   rx   rz   r{   r|   r[   r\   r]   r^   r   r   r   r   s                   r_   
test_floatr   w  so   !% 	 ')- . / 4vs+779vs+779vs+779vs+779vs+779#K5AAC	#K5AAC	#K5AAC	Aw+s9%!"+!"+ 	 ER0	  	  Aw+s9%!"+!"+ 	 Fb1	
 
 	
 
 Aw+s9%!"+!"+ 	 0B?	
 
 	
 
 Aw+s9%!"+!"+ 	 ER0	
 
 	
 
 Aw+s9%!"+!"+ 	 ER0	
 
 	
 
 Aw+s9%!"+!"+ 	 ER0	
 
 	
 
 Aw+s9%!"+!"+ 	 Fb1	
 
 	
 
 Aw+s9%!"+!"+ 	 ER0	
 
 	
 
 Aw+s9%!"+!"+ 	 ER0	
 
 	
 
 |{s9%!"+!"+ 	 ER0	   	  |{s9%!"+!"+ 	 ER0	   	  |{s9%!"+!"+ 	 ER0	   	  |{s9%!"+!"+ 	 ER0	   	  |{s9%!"+!"+ 	 ER0	   	  |{s9%!"+!"+ 	 ER0	   	 ra   c                  @   d} d}d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }|d   t        t        t	        d      t        t        d            t        	            k(  sJ |d
   t        t        t	        d      t        t        d            t        	            k(  sJ |d   t        t        t	        d      t        t        d            t        	            k(  sJ |d
   t        t        t	        d      t        t        d            t        	            k(  sJ |d   t        t        t	        d      t        t        d            t        	            k(  sJ |d
   t        t        t	        d      t        t        d            t        	            k(  sJ |d   t        t        t	        d      t        t        d            t        	            k(  sJ |d
   t        t        t	        d      t        t        d            t        	            k(  sJ |d   t        t        t	        d      t        t        d            t        	            k(  sJ y )Nzbool a = true, b = false;zbool a = 1, b = 0;zbool a = 10, b = 20;z bool a = 19.1, b = 9.0, c = 0.0;r9   r   r:   boolrJ   r>   r?   rH   )	r   rU   r   r   r4   r   r   r6   r5   rV   s           r_   	test_boolr   W  s   ' 	
 ! 	
 # 	
 / 	 vs+779vs+779vs+779vs+779Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	  Aw+VC[&.)  	 ra   c                     d} d}d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }|d   t        t               t	        d      dt        t        t        t        d	      t        t	        d
                                    k(  sJ |d   t        t        t	        d
            t	        d      dt        t        t        t        d	      t        t	        d
                        t        d	                  k(  sJ |d   t        t        t	        d      t        d      t        d      t        d            t	        d      dt        t        t        t        d      t        t	        d      t        d      t        d      t        d                        t        d                  k(  sJ |d   t        t        t	        d      t        d      t        d      t        d            t	        d      d      k(  sJ y )Nvoid fun1()
{
int a;
}zint fun2()
{
int a;
return a;
}z#float fun3()
{
float b;
return b;
}zfloat fun4()
{}r9   r   fun1 r:   r;   r<   name
parametersbodyfun2r@   rA   rB   rC   rD   fun3r?   fun4)r   r   )r   rU   r   r   r   r   r   r   r4   r   r   r   r   r   rV   s           r_   test_functionr     s1    	 	 	 	
 vs+779vs+779vs+779vs+779Aw,Ks(8	
 
 	
 
 Aw,v's(8 s	
 
 	
 
 Aw,y!bkbkQZ	 s&"9-")"+")"+!(	
 s
 
 	
 
2 Aw+y!bkbkQZ	 	
 	
 		
 	
ra   c                  F   d} d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }|d   t        t               t	        d      t        t        d      t        t	        d            	      ft        t        t        t        d
      t        t	        d            	                        k(  sJ |d   t        t        t	        d            t	        d      t        t        d      t        t	        d      t        d      t        d      t        d            	      t        t        d      t        t	        d      t        d      t        d      t        d            	      ft        t        t        t        d      t        t	        d            	            t        d                  k(  sJ |d   t        t        t	        d      t        d      t        d      t        d            t	        d      t        t        d      t        t	        d            	      t        t        d      t        t	        d      t        d      t        d      t        d            	      t        t        d      t        t	        d            	      ft        t        t        t        d      t        t	        d      t        d      t        d      t        d            	            t        d                  k(  sJ y )Nzvoid fun1( int a)
{
int i;
}z/int fun2(float x, float y)
{
int a;
return a;
}z8float fun3(int p, float q, int r)
{
float b;
return b;
}r9   r   r   r:   r;   r<   ir   r   rI   r@   rA   rB   rC   rD   rL   r   rN   rT   rf   r?   )r   rU   r   r   r   r   r4   r   r   r   r   r   r   )rW   rX   rY   r[   r\   r]   s         r_   test_parametersr     s    	 	 	 vs+779vs+779vs+779Aw,K3K$VF^4 s(8
 
 	
 
& Aw,v'3K"y)%bk%bk$QZ	 3K"y)%bk%bk$QZ	( s(8 s/ 
  
  	
  
D Aw,y!bkbkQZ	 3K$VF^4 3K"y)%bk%bk$QZ	 3K$VF^4& s&"9-")"+")"+!(	
 s7)
 )
 )	
 )
ra   c                     d} d}d}d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }	|d   t        t        t	        d            t	        d	      t        t        d
      t        t	        d                  ft        t        d
                  k(  sJ |d   t        t               t	        d      dt        t        t        t        d
      t        t	        d	      t        d      f                              k(  sJ |d   t        t        t	        d            t	        d      t        t        d      t        t	        d                  t        t        d      t        t	        d                  t        t        d      t        t	        d                  ft        t        d                  k(  sJ |d   t        t               t	        d      dt        t        t        t        d      t        t	        d      t        d      t        d      t        d      f                              k(  sJ |d   t        t        t	        d            t	        d      t        t        d      t        t	        d                  t        t        d      t        t	        d                  t        t        d      t        t	        d                  ft        t        d                  k(  sJ |d   t        t               t	        d      dt        t        t        t        d      t        t	        d                        t        t        t        d      t        t	        d                        t        t        t        d      t        t	        d                        t        t        t        d      t        t	        d      t        d      t        d      t        d      f                              k(  sJ |d   t        t        t	        d            t	        d      t        t        d      t        t	        d      t        d       t        d!      t        d"      #            t        t        d      t        t	        d      t        d       t        d!      t        d"      #            t        t        d      t        t	        d                  ft        t        d                  k(  sJ |d   t        t               t	        d      dt        t        t        t        d
      t        t	        d      t        d       t        d!      t        d"      #                  t        t        t        d      t        t	        d      t        d       t        d!      t        d"      #                  t        t        t        d      t        t	        d                        t        t        t        d$      t        t	        d      t        d
      t        d      t        d      f                              k(  sJ |	d   t        t        t	        d            t	        d%      dt        t        d&                  k(  sJ |	d   t        t               t	        d      dt        t        t        t        d      t        t	        d%      d                              k(  sJ y )'Nz@int fun1(int x)
{
return x;
}
void caller()
{
int x = fun1(2);
}zTint fun2(int a, int b, int c)
{
return a;
}
void caller()
{
int y = fun2(2, 3, 4);
}ziint fun3(int a, int b, int c)
{
return b;
}
void caller()
{
int p;
int q;
int r;
int z = fun3(p, q, r);
}zpint fun4(float a, float b, int c)
{
return c;
}
void caller()
{
float x;
float y;
int z;
int i = fun4(x, y, z)
}z7int fun()
{
return 1;
}
void caller()
{
int a = fun()
}r9   r   r;   r   rI   r<   r   r>   callerr   rH   )function_args)rK   r   r:   r?   rL   rS   rl   r   rN   rT   rf   zr   r@   rA   rB   rC   rD   r   fun )r   rU   r   r   r   r   r4   r   r   r   r   r   r   r   
rW   rX   rY   rZ   rx   r[   r\   r]   r^   r   s
             r_   test_function_callr     s    	 	
 	
 	 	 vs+779vs+779vs+779vs+779vs+779 Aw,v'  0  s
 
 
	 
 Aw,K!VC[*6&> '
+"
	  	 " Aw,v'  0 VC[ 0 VC[ 0	 s  	 $ Aw,K!VC[*"6N '
 '
 '
+"		  	 ( Aw,v'$VF^4 $VF^4 $VF^4
 s  	 & Aw,K!VC[(8
 VC[(8
 VC[(8
 VC[*"6N &s &s &s+"	!	! ! !	 !F Aw,v' 9%!"+!"+ 	 VC[9%!"+!"+ 	 VC[ 0!( s/  	 8 Aw,K!VC[&"9-")"+")"+!(		 VC[&"9-")"+")"+!(		 VC[(8
 VC[*6&> &s &s &s+"
5%	* * *	 *X Aw,v'r
	  	  Aw,K!VC[*6%=*,	  	 ra   c                      d} d}t        dd      }t        dd      }|j                  |        |j                  |       |j                          |j                          t        dd      j	                         }t        dd      j	                         }t        j                  d       t        j                  d       |d   t        t        t        d      t        t        d	            
            k(  sJ |d   t        t        t        d      t        t        d	            
            k(  sJ |d   t        t               t        d      dt        t        t        t        d      t        t        d	            
                        k(  sJ y )Nr8   r   z..a.hwz..b.hr9   r   r:   r;   r<   r>   r?   r   r   r   )openwritecloser   rU   osremover   r   r4   r   r   r   r   r   )rW   rX   f1f2r[   r\   s         r_   
test_parser     sh    	
 	 '3'3

		&



w,88:w,88:
		'
		'Aw+s 0
 
 	
 
 Aw+s 0
 
 	
 
 Aw,Ks(8	
 
 	
 
ra   c            "      `  <=>?@ d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d<d =d!>d"?d#@t        | d$      j                         }t        |d$      j                         }t        |d$      j                         } t        |d$      j                         }!t        |d$      j                         }"t        |d$      j                         }#t        |d$      j                         }$t        |d$      j                         }%t        |d$      j                         }&t        |	d$      j                         }'t        |
d$      j                         }(t        |d$      j                         })t        |d$      j                         }*t        |d$      j                         }+t        |d$      j                         },t        |d$      j                         }-t        |d$      j                         }.t        |d$      j                         }/t        |d$      j                         }0t        |d$      j                         }1t        |d$      j                         }2t        |d$      j                         }3t        |d$      j                         }4t        |d$      j                         }5t        |d$      j                         }6t        |d$      j                         }7t        |d$      j                         }8t        |d$      j                         }9t        |d$      j                         }:t        |d$      j                         };|d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d(            t        d+                  ,      k(  sJ |d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d%      -            t        t        t        d(            t        t        d(      t        d+                  t        t        t        d(            t        t        t        d.      t        d(            t        d/                        ,      k(  sJ | d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d0      -            t        t        t        d(            t        t        d(      t        d1                        ,      k(  sJ |!d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d2      t        t	        d)            *            t        t        t        d(            t        d3            t        t        t        d2            t        t        t        d4      t        t        d(      t        d4                  t        t        d5      t        d(            t        d6                        ,      k(  sJ |"d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d2      t        t	        d)            *            t        t        t        d$      t        t	        d)            *            t        t        t        d7      t        t	        d)            *            t        t        t        d(            t        d+            t        t        t        d2            t        d4            t        t        t        d$            t        d2            t        t        t        d7            t        t        t        d(      t        d2            t        t        t        d(      t        d$            t        d4            t        t        d$      t        t        d8      t        d7                                    ,      k(  sJ |#d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d2      t        t	        d)            *            t        t        t        d$      t        t	        d)            *            t        t        t        d7      t        t	        d)            *            t        t        t        d(            t        d+            t        t        t        d2            t        d4            t        t        t        d$            t        d.            t        t        t        d7            t        t        t        d(      t        d9            t        t        d.      t        t        d2      t        d4                  t        t        d4      t        d2            t        t        d$      t        d7                              ,      k(  sJ |$d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d:      t        d;      t        d<      t        d=      >      *            t        t        t        d(            t!        d?d@A                  ,      k(  sJ |%d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d:      t        d;      t        d<      t        d=      >      *            t        t        t        d(            t!        dBd@A                  ,      k(  sJ |&d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d:      t        d;      t        d<      t        d=      >      *            t        t        t        d(            t!        dCd@A                  ,      k(  sJ |'d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d(            t        d6                  ,      k(  sJ |(d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d(            t        dD                  ,      k(  sJ |)d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d(            t        dE                  ,      k(  sJ |*d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d2      t        t	        d)            *            t        t        t        d$      t        t	        d:      t        d;      t        d<      t        d=      >      *            t        t        t        d$            t        t        t        d(      t        d8            t        d2                        ,      k(  sJ |+d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d4      -            t        t        t        d7      t        t	        d)            t        dF      -            t        t        t        dG      t        t	        d)            t        d0      -            t        t        t        dH      t        t	        d)            *            t        t        t        dH            t        t#        d+d4      t        d(      t        t        t        d4      t        d(            t        t        d7      t        t        dG      t        d8                                          ,      k(  sJ |,d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d(            t        d+                  ,      k(  sJ |-d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d4      -            t        t        t        d2      t        t	        d)            *            t        t        t        d2            t%        t        d(      t        d.                        ,      k(  sJ |.d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d3      -            t        t        t        d2      t        t	        d)            t        d.      -            t        t        t        d$      t        t	        d)            *            t        t        t        d$            t%        t        d(      t        d2                        ,      k(  sJ |/d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d3      -            t        t        t        d2      t        t	        d)            t        d.      -            t        t        t        dI      t        t	        d)            t        dJ      -            t        t        t        d$      t        t	        d)            *            t        t        t        d$            t%        t        t        d(      t        t        d3      t        t        d(      t        d8            t        d2                  t        dI                        ,      k(  sJ |0d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d3      -            t        t        t        d2      t        t	        d)            t        d.      -            t        t        t        dI      t        t	        d)            t        dJ      -            t        t        t        d$      t        t	        d)            *            t        t        t        d$            t%        t        t        t%        t        d(      t        dI            t        t        d8      t%        t        d2      t        dI                        t%        t        t        d(      t        d2            t        dI                  t        dI                        ,      k(  sJ |1d%   t        t               t	        d&      d't        t        t        t        d(      t'        t	        dK            *            t        t        t        d2      t'        t	        dK            *            t        t        t        d(            t(              t        t        t        d2            t*                    ,      k(  sJ |2d%   t        t               t	        d&      d't        t        t        t        d(      t'        t	        dK            *            t        t        t        d2      t'        t	        dK            *            t        t        t        d$      t'        t	        dK            *            t        t        t        d7      t'        t	        dK            *            t        t        t        d(            t(              t        t        t        d2            t*              t        t        t        d$            t(              t        t        t        d7            t(                    ,      k(  sJ |3d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d+      -            t        t        t        d2      t        t	        d)            t        d4      -            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dP      t'        t	        dK            *            t        t        t        dQ      t'        t	        dK            *            t        t        t        dR      t'        t	        dK            *            t        t        t        dS      t'        t	        dK            *            t        t        t        dL            t-        t        d(      t        d+                  t        t        t        dM            t-        t        d2      t        d4                  t        t        t        dN            t/        t        d+      t        d(                  t        t        t        dO            t/        t        d+      t        d2                  t        t        t        dP            t1        t        d(      t        d%                  t        t        t        dQ            t3        t        d2      t        d0                  t        t        t        dR            t5        t        d(      t        d%                  t        t        t        dS            t7        t        d2      t        dT                        ,      k(  sJ |4d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            t        d.      -            t        t        t        d2      t        t	        d)            t        d9      -            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dP      t'        t	        dK            *            t        t        t        dQ      t'        t	        dK            *            t        t        t        dL            t-        t        d(      t        d2                  t        t        t        dM            t/        t        d(      t        d2                  t        t        t        dN            t1        t        d(      t        d2                  t        t        t        dO            t3        t        d(      t        d2                  t        t        t        dP            t5        t        d(      t        d2                  t        t        t        dQ            t7        t        d(      t        d2                        ,      k(  sJ |5d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d:      t        d;      t        d<      t        d=      >      *            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dL            t-        t        d(      t!        dUd@A                  t        t        t        dN            t/        t!        dVd@A      t        d(                        ,      k(  sJ |6d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d:      t        d;      t        d<      t        d=      >      t!        dUd@A      -            t        t        t        d2      t        t	        d:      t        d;      t        d<      t        d=      >      t!        dWd@A      -            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dP      t'        t	        dK            *            t        t        t        dQ      t'        t	        dK            *            t        t        t        dL            t-        t        d(      t        d2                  t        t        t        dM            t/        t        d(      t        d2                  t        t        t        dN            t1        t        d(      t        d2                  t        t        t        dO            t3        t        d(      t        d2                  t        t        t        dP            t5        t        d(      t        d2                  t        t        t        dQ            t7        t        d(      t        d2                        ,      k(  sJ |7d%   t        t               t	        d&      d't        t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dP      t'        t	        dK            *            t        t        t        dQ      t'        t	        dK            *            t        t        t        dL            t*              t        t        t        dM            t(              t        t        t        dN            t*              t        t        t        dO            t(              t        t        t        dP            t*              t        t        t        dQ            t(                    ,      k(  sJ |8d%   t        t               t	        d&      d't        t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dP      t'        t	        dK            *            t        t        t        dQ      t'        t	        dK            *            t        t        t        dL            t*              t        t        t        dM            t(              t        t        t        dN            t(              t        t        t        dO            t*              t        t        t        dP            t*              t        t        t        dQ            t(                    ,      k(  sJ |9d%   t        t               t	        d&      d't        t        t        t        d(      t'        t	        dK            *            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dL            t        d(            t        t        t        dM            t(              t        t        t        dN            t*              t        t        t        dO            t        d(            	      ,      k(  sJ |:d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dL            t        d(            t        t        t        dM            t(              t        t        t        dN            t*              t        t        t        dO            t        d(            	      ,      k(  sJ |;d%   t        t               t	        d&      d't        t        t        t        d(      t        t	        d)            *            t        t        t        d2      t        t	        d)            *            t        t        t        d$      t'        t	        dK            *            t        t        t        d7      t'        t	        dK            *            t        t        t        dL      t'        t	        dK            *            t        t        t        dM      t'        t	        dK            *            t        t        t        dN      t'        t	        dK            *            t        t        t        dO      t'        t	        dK            *            t        t        t        dP      t'        t	        dK            *            t        t        t        dQ      t'        t	        dK            *            t        t        t        dL            t9        t        d(      t        d2                  t        t        t        dM            t9        t        d(      t        d$                  t        t        t        dN            t9        t        d$      t        d7                  t        t        t        dO            t;        t        d(      t        d2                  t        t        t        dP            t;        t        d(      t        d$                  t        t        t        dQ            t;        t        d$      t        d7                        ,      k(  sJ t=        t>        <fdX       t=        t>        =fdY       t=        t>        >fdZ       t=        t>        ?fd[       t=        t>        @fd\       y )]Nzvoid func(){
int a;
a = 1;
}z2void func(){
int a = 0;
a = a + 1;
a = 3*a - 10;
}z-void func(){
int a = 10;
a = 1 + a - 3 * 6;
}zHvoid func(){
int a;
int b;
a = 100;
b = a*a + a*a + a + 19*a + 1 + 24;
}z`void func(){
int a;
int b;
int c;
int d;
a = 1;
b = 2;
c = b;
d = ((a+b)*(a+c))*((c-d)*(a+c));
}zdvoid func(){
int a;
int b;
int c;
int d;
a = 1;
b = 2;
c = 3;
d = (a*a*a*a + 3*b*b + b + b + c*d);
}z!void func(){
float a;
a = 1.01;
}z'void func(){
float a;
a = 10.0 + 2.5;
}z'void func(){
float a;
a = 10.0 / 2.5;
}z"void func(){
int a;
a = 100 / 4;
}z0void func(){
int a;
a = 20 - 100 / 4 * 5 + 10;
}z4void func(){
int a;
a = (20 - 100) / 4 * (5 + 10);
}z.void func(){
int a;
int b;
float c;
c = b/a;
}zRvoid func(){
int a = 2;
int d = 5;
int n = 10;
int s;
s = (a/2)*(2*a + (n-1)*d);
}z void func(){
int a;
a = 1 % 2;
}z+void func(){
int a = 2;
int b;
b = a % 3;
}z8void func(){
int a = 100;
int b = 3;
int c;
c = a % b;
}z`void func(){
int a = 100;
int b = 3;
int mod = 1000000007;
int c;
c = (a + b * (100/a)) % mod;
}zvoid func(){
int a = 100;
int b = 3;
int mod = 1000000007;
int c;
c = ((a % mod + b % mod) % mod* (a % mod - b % mod) % mod) % mod;
}z5void func(){
bool a
bool b;
a = 1 == 2;
b = 1 != 2;
}z]void func(){
bool a;
bool b;
bool c;
bool d;
a = 1 == 2;
b = 1 <= 2;
c = 1 > 2;
d = 1 >= 2;
}zvoid func(){
int a = 1;
int b = 2;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
bool c7;
bool c8;
c1 = a == 1;
c2 = b == 2;
c3 = 1 != a;
c4 = 1 != b;
c5 = a < 0;
c6 = b <= 10;
c7 = a > 0;
c8 = b >= 11;
}zvoid func(){
int a = 3;
int b = 4;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = a == b;
c2 = a != b;
c3 = a < b;
c4 = a <= b;
c5 = a > b;
c6 = a >= b;
}zvoid func(){
float a = 1.25float b = 2.5;
bool c1;
bool c2;
bool c3;
bool c4;
c1 = a == 1.25;
c2 = b == 2.54;
c3 = 1.2 != a;
c4 = 1.5 != b;
}zvoid func(){
float a = 1.25
float b = 2.5;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = a == b;
c2 = a != b;
c3 = a < b;
c4 = a <= b;
c5 = a > b;
c6 = a >= b;
}zvoid func(){
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = true == true;
c2 = true == false;
c3 = false == false;
c4 = true != true;
c5 = true != false;
c6 = false != false;
}zvoid func(){
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = true && true;
c2 = true && false;
c3 = false && false;
c4 = true || true;
c5 = true || false;
c6 = false || false;
}z|void func(){
bool a;
bool c1;
bool c2;
bool c3;
bool c4;
c1 = a && true;
c2 = false && a;
c3 = true || a;
c4 = a || false;
}zmvoid func(){
int a;
bool c1;
bool c2;
bool c3;
bool c4;
c1 = a && 1;
c2 = a && 0;
c3 = a || 1;
c4 = 0 || a;
}zvoid func(){
int a;
int b;
bool c;
bool d;
bool c1;
bool c2;
bool c3;
bool c4;
bool c5;
bool c6;
c1 = a && b;
c2 = a && c;
c3 = c && d;
c4 = a || b;
c5 = a || c;
c6 = c || d;
}zvoid func(){
int a;
a = -1;
}zvoid func(){
int a;
a = -+1;
}zvoid func(){
int a;
a = 2*-2;
}z#void func(){
int a;
a = (int)2.0;
}z/void func(){
int a=100;
a = (a==100)?(1):(0);
}r9   r   funcr   r:   r;   r<   r>   r   rJ   rS   i
   ir?   d   rH         rk   rl   r@   rA   rB   rC   rD   z1.01rP   rQ   12.54.0rc   nrg   modʚ;r   c1c2c3c4c5c6c7c8r   r   1.2r   c                      t         d      S Nr9   r   c_src_raise1s   r_   <lambda>z'test_binary_operators.<locals>.<lambda>      OL#,N ra   c                      t         d      S r   r   c_src_raise2s   r_   r   z'test_binary_operators.<locals>.<lambda>  r   ra   c                      t         d      S r   r   )c_src_raise3s   r_   r   z'test_binary_operators.<locals>.<lambda>  r   ra   c                      t         d      S r   r   )c_src_raise4s   r_   r   z'test_binary_operators.<locals>.<lambda>  r   ra   c                      t         d      S r   r   )c_src_raise5s   r_   r   z'test_binary_operators.<locals>.<lambda>   r   ra   ) r   rU   r   r   r   r   r   r   r4   r   r   r   r&   r'   r)   r   r   r*   r(   r   r5   r6   r/   r0   r+   r,   r-   r.   r1   r3   r   NotImplementedError)ArW   rX   rY   rZ   rx   ry   c_src7c_src8c_src9c_src10c_src11c_src12c_src13c_src14c_src15c_src16c_src17c_src18c_src19c_src20c_src21c_src22c_src23c_src24c_src25c_src26c_src27c_src28c_src29c_src30r[   r\   r]   r^   r   r   res7res8res9res10res11res12res13res14res15res16res17res18res19res20res21res22res23res24res25res26res27res28res29res30r   r   r   r   r   sA                                                               @@@@@r_   test_binary_operatorsr    sO(    	 	 	 	
 	
 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	 	: 	. 	( 	. 	* 	* 	$ 	$ 	4 	 	 	 	 	 vs+779vs+779vs+779vs+779vs+779vs+779vs+779vs+779vs+779-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;Aw,KVC[(8
 8F3K0'!*=	  	  Aw,KVC[$VF^4!!*&' VC[)s
$
 8F3K0#AJ"3K)  		  	 2 Aw,KVC[(8%bk VC[)s	  	 * Aw,KVC[(8
 VC[(8
 VC[)CL" VC[)#AJ"3K#AJ( #BK"3K)  	" " "	 "H Aw,KVC[(8
 VC[(8
 VC[(8
 VC[(8
 VC[)AJ  VC[)AJ VC[)3K! VC[)"3K"3K)  &s &s" $AJ "3K ' &s"?5	: : :	 :x Aw,KVC[(8
 VC[(8
 VC[(8
 VC[(8
 VC[)AJ VC[)AJ VC[)AJ VC[)"3K#AJ #AJ &s '
" #AJ"3K "3K"3K!C9	> > >	 >@ Aw,KVC[&"9-")"+")"+!(		 VC[)&B/	  	 , Aw,KVC[&"9-")"+")"+!(		 VC[)&B/	  	 , Aw,KVC[&"9-")"+")"+!(		 VC[)%2.	  	 , Qx-KVC[(8
 VC[)BK
	  	 " Qx-KVC[(8
 VC[)CL
	  	 " Qx-KVC[(8
 VC[)DM
	  	 " Qx-KVC[(8
 VC[(8
 VC[&"9-")"+")"+!(		 VC[)"3K#BK s	+	$ $ $	 $L Qx-KVC[(8%aj VC[(8%aj VC[(8%bk VC[(8
 VC[) As '
 &s"   &s #$*3K$+BK!&"1,	1 1 1	 1f Qx-KVC[(8
 VC[)AJ
	  	 " Qx-KVC[(8%aj VC[(8
 VC[)s
	  	 4 Qx-KVC[(8%cl VC[(8%aj VC[(8
 VC[)ss%	  	 @ Qx-KVC[(8%cl VC[(8%aj VE](8%j1 VC[(8
 VC[)"3K ' #$*3K$+BK!& !'s"
 u1)	. . .	 .` Qx-KVC[(8%cl VC[(8%aj VE](8%j1 VC[(8
 VC[) #$*3K$*5M!& !$$+BK$'(.s(.u%*!&"   #$*3K$*3K!& !'u", u/14	9 9 9	 9v Qx-KVC[!&.1
 VC[!&.1
 VC[) VC[)	  	 4 Qx-KVC[!&.1
 VC[!&.1
 VC[!&.1
 VC[!&.1
 VC[) VC[) VC[) VC[)C%	* * *	 *X Qx-KVC[(8%aj VC[(8%aj VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*s
 VD\*s
 VD\*
s VD\*
s VD\*"s
 VD\*s VD\*%s
 VD\*sMm	r r r	 rh Qx-KVC[(8%aj VC[(8%aj VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*ss VD\*ss VD\*"ss VD\*ss VD\*%ss VD\*ss]U	Z Z Z	 Zx Qx-KVC[&"9-")"+")"+!(		 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*sf3 VD\*er2sM-	2 2 2	 2j Qx-KVC[&"9-")"+")"+!(	 $Fb9
 VC[&"9-")"+")"+!(	 $ER8
 VD\!&.1
 VD\!&.  VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*ss VD\*ss VD\*"ss VD\*ss VD\*%ss VD\*sss`	e e e	 eN Qx-K	VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\* VD\* VD\* VD\* VD\* VD\*g7!; ; ;	 ;z Qx-KVD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\* VD\* VD\* VD\* VD\* VD\*g6	; ; ;	 ;z Qx-KVC[!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*3K VD\* VD\* VD\*3KM*	/ / /	 /b Qx-KVC[(8
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*3K VD\* VD\* VD\*3KM*	/ / /	 /b Qx-KVC[(8
 VC[(8
 VC[!&.1
 VC[!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\!&.1
 VD\*ss VD\*ss VD\*ss VD\*ss VD\*ss VD\*ssm]	b b b	 bH 	"$NO"$NO"$NO"$NO"$NOra   c                  TV  @A d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d}d }d!@d"At        | d#      j                         } t        |d#      j                         }!t        |d#      j                         }"t        |d#      j                         }#t        |d#      j                         }$t        |d#      j                         }%t        |d#      j                         }&t        |d#      j                         }'t        |d#      j                         }(t        |	d#      j                         })t        |
d#      j                         }*t        |d#      j                         }+t        |d#      j                         },t        |d#      j                         }-t        |d#      j                         }.t        |d#      j                         }/t        |d#      j                         }0t        |d#      j                         }1t        |d#      j                         }2t        |d#      j                         }3t        |d#      j                         }4t        |d#      j                         }5t        |d#      j                         }6t        |d#      j                         }7t        |d#      j                         }8t        |d#      j                         }9t        |d#      j                         }:t        |d#      j                         };t        |d#      j                         }<t        |d#      j                         }=t        |d#      j                         }>t        |d#      j                         }?| d$   t        t        t	        d%      t        t        d&            t        d'      (            k(  sJ | d)   t        t        t	        d*      t        t        d&            t	        d%      (            k(  sJ |!d$   t        t        t	        d*      t        t        d&            t        d)      (            k(  sJ |!d)   t        t        t	        d%      t        t        d&            t        t	        d*      t        d)            (            k(  sJ |"d$   t        t        t	        d*      t        t        d+      t        d,      t        d-      t        d.      /      t        d0d12      (            k(  sJ |"d)   t        t        t	        d%      t        t        d+      t        d,      t        d-      t        d.      /      t        t        d3d12      t	        d*            (            k(  sJ |#d$   t        t        t	        d*      t        t        d&            t        d4      (            k(  sJ |$d$   t        t        t	        d*      t        t        d&            t        d5      (            k(  sJ |%d$   t        t        t	        d%      t        t        d&            t        d6      (            k(  sJ |%d)   t        t        t	        d#      t        t        d&            t        d7      (            k(  sJ |%d6   t        t        t	        d*      t        t        d&            t        t	        d%      t        t        d8      t	        d#                  (            k(  sJ |&d$   t        t        t	        d%      t        t        d&            t        d)      (            k(  sJ |&d)   t        t        t	        d#      t        t        d&            t        t	        d%      t        d6            (            k(  sJ |&d6   t        t        t	        d*      t        t        d&            t        t        d9      t        t	        d%      t        d6            t	        d#            (            k(  sJ |'d$   t        t               t        d:      d;t        t        t        t	        d*      t        t        d&            t        d)      (            t        t        t	        d%      t        t        d&            t        d6      (            t        t        t	        d<      t        t        d&            t	        d*      (            t!        t        t	        d*            t	        d%            t!        t        t	        d%            t	        d<                  =      k(  sJ |(d$   t        t        t	        d*      t        t        d&            t        d)      (            k(  sJ |(d)   t        t        t	        d%      t        t        d&            t        d6      (            k(  sJ |(d6   t        t        t	        d#      t        t        d&            t	        d*      (            k(  sJ |(d7   t        t        t	        d>      t        t        d&            t        t	        d*      t	        d%      t	        d#            (            k(  sJ |(d8   t        t        t	        d?      t        t        d&            t        t        t	        d*      t        d7            t        t        d7      t        t	        d*      t        d6            t	        d%            t        t        d7      t	        d*      t        t	        d%      t        d6                  t        t	        d%      t        d7                  (            k(  sJ |(d@   t        t        t	        dA      t        t        d&            t        t        t	        d*      t	        d%      t        t        dB      t	        d#                  t        t	        d*      t	        d%      t	        d#                  (            k(  sJ |(dC   t        t        t	        dD      t        t        d&            t        t	        d*      t        t	        d%      t        t        dB      t	        d#                  t        t        t	        d*      t	        d%      t	        d#      t	        d>            t        d6                  (            k(  sJ |)d$   t        t        t	        d*      t        t        d+      t        d,      t        d-      t        d.      /      t        dEd12      (            k(  sJ |)d)   t        t        t	        d%      t        t        d+      t        d,      t        d-      t        d.      /      t        dFd12      (            k(  sJ |)d6   t        t        t	        d#      t        t        d+      t        d,      t        d-      t        d.      /      t        t        t	        d*      t        d6            t        t        d6      t	        d*      t	        d%            t        t	        d%      t        d6                  (            k(  sJ |*d$   t        t        t	        d*      t        t        d+      t        d,      t        d-      t        d.      /      t        dGd12      (            k(  sJ |+d$   t        t        t	        d*      t        t        d&            t        dH      (            k(  sJ |,d$   t        t        t	        d*      t        t        d&            t        dI      (            k(  sJ |-d$   t        t        t	        d*      t        t        d&            t        dJ      (            k(  sJ |.d$   t        t        t	        d*      t        t        d&            t        d8      (            k(  sJ |.d)   t        t        t	        d%      t        t        d&            t        d6      (            k(  sJ |.d6   t        t        t	        d#      t        t        d+      t        d,      t        d-      t        d.      /      t        t        t	        d*      t        dB            t	        d%            (            k(  sJ |/d$   t        t        t	        d*      t        t        d&            t        d6      (            k(  sJ |/d)   t        t        t	        d>      t        t        d&            t        d@      (            k(  sJ |/d6   t        t        t	        dK      t        t        d&            t        d9      (            k(  sJ |/d7   t        t        t	        dL      t        t        d&            t        t#        d)d6      t	        d*      t        t        t        d6      t	        d*            t        t	        d>      t        t	        dK      t        dB                              (            k(  sJ |0d$   t        t        t	        d*      t        t        d&            t        d)      (            k(  sJ |1d$   t        t        t	        d*      t        t        d&            t        d6      (            k(  sJ |1d)   t        t        t	        d%      t        t        d&            t%        t	        d*      t        d7            (            k(  sJ |2d$   t        t        t	        d*      t        t        d&            t        d'      (            k(  sJ |2d)   t        t        t	        d%      t        t        d&            t        d7      (            k(  sJ |2d6   t        t        t	        d#      t        t        d&            t%        t	        d*      t	        d%            (            k(  sJ |3d$   t        t        t	        d*      t        t        d&            t        d'      (            k(  sJ |3d)   t        t        t	        d%      t        t        d&            t        d7      (            k(  sJ |3d6   t        t        t	        dM      t        t        d&            t        dN      (            k(  sJ |3d7   t        t        t	        d#      t        t        d&            t%        t        t	        d*      t        t        d'      t        t	        d*      t        dB            t	        d%                  t	        dM            (            k(  sJ |4d$   t        t        t	        d*      t        t        d&            t        d'      (            k(  sJ |4d)   t        t        t	        d%      t        t        d&            t        d7      (            k(  sJ |4d6   t        t        t	        dM      t        t        d&            t        dN      (            k(  sJ |4d7   t        t        t	        d#      t        t        d&            t%        t        t        t	        d*      t        t        dB      t	        d%                  t        t	        d*      t	        d%                  t	        dM            (            k(  sJ |5d$   t        t        t	        d*      t'        t        dO            t(        (            k(  sJ |5d)   t        t        t	        d%      t'        t        dO            t*        (            k(  sJ |6d$   t        t        t	        d*      t'        t        dO            t*        (            k(  sJ |6d)   t        t        t	        d%      t'        t        dO            t*        (            k(  sJ |6d6   t        t        t	        d#      t'        t        dO            t(        (            k(  sJ |6d7   t        t        t	        d>      t'        t        dO            t(        (            k(  sJ |7d$   t        t        t	        d*      t        t        d&            t        d)      (            k(  sJ |7d)   t        t        t	        d%      t        t        d&            t        d6      (            k(  sJ |7d6   t        t        t	        dP      t'        t        dO            t-        t	        d*      t        d)            (            k(  sJ |7d7   t        t        t	        dQ      t'        t        dO            t-        t	        d%      t        d6            (            k(  sJ |7d8   t        t        t	        dR      t'        t        dO            t/        t        d)      t	        d*            (            k(  sJ |7d@   t        t        t	        dS      t'        t        dO            t/        t        d)      t	        d%            (            k(  sJ |7dC   t        t        t	        dT      t'        t        dO            t1        t	        d*      t        d$            (            k(  sJ |7dU   t        t        t	        dV      t'        t        dO            t3        t	        d%      t        d9            (            k(  sJ |7d.   t        t        t	        dW      t'        t        dO            t5        t	        d*      t        d$            (            k(  sJ |7dX   t        t        t	        dY      t'        t        dO            t7        t	        d%      t        dZ            (            k(  sJ |8d$   t        t        t	        d*      t        t        d&            t        d7      (            k(  sJ |8d)   t        t        t	        d%      t        t        d&            t        d8      (            k(  sJ |8d6   t        t        t	        dP      t'        t        dO            t-        t	        d*      t	        d%            (            k(  sJ |8d7   t        t        t	        dQ      t'        t        dO            t/        t	        d*      t	        d%            (            k(  sJ |8d8   t        t        t	        dR      t'        t        dO            t1        t	        d*      t	        d%            (            k(  sJ |8d@   t        t        t	        dS      t'        t        dO            t3        t	        d*      t	        d%            (            k(  sJ |8dC   t        t        t	        dT      t'        t        dO            t5        t	        d*      t	        d%            (            k(  sJ |8dU   t        t        t	        dV      t'        t        dO            t7        t	        d*      t	        d%            (            k(  sJ |9d$   t        t        t	        d*      t        t        d+      t        d,      t        d-      t        d.      /      t        d[d12      (            k(  sJ |9d)   t        t        t	        d%      t        t        d+      t        d,      t        d-      t        d.      /      t        dFd12      (            k(  sJ |9d6   t        t        t	        dP      t'        t        dO            t-        t	        d*      t        d[d12            (            k(  sJ |9d7   t        t        t	        dQ      t'        t        dO            t-        t	        d%      t        d\d12            (            k(  sJ |9d8   t        t        t	        dR      t'        t        dO            t/        t        d]d12      t	        d*            (            k(  sJ |9d@   t        t        t	        dS      t'        t        dO            t/        t        d^d12      t	        d%            (            k(  sJ |:d$   t        t        t	        d*      t        t        d+      t        d,      t        d-      t        d.      /      t        d[d12      (            k(  sJ |:d)   t        t        t	        d%      t        t        d+      t        d,      t        d-      t        d.      /      t        dFd12      (            k(  sJ |:d6   t        t        t	        dP      t'        t        dO            t-        t	        d*      t	        d%            (            k(  sJ |:d7   t        t        t	        dQ      t'        t        dO            t/        t	        d*      t	        d%            (            k(  sJ |:d8   t        t        t	        dR      t'        t        dO            t1        t	        d*      t	        d%            (            k(  sJ |:d@   t        t        t	        dS      t'        t        dO            t3        t	        d*      t	        d%            (            k(  sJ |:dC   t        t        t	        dT      t'        t        dO            t5        t	        d*      t	        d%            (            k(  sJ |:dU   t        t        t	        dV      t'        t        dO            t7        t	        d*      t	        d%            (            k(  sJ |;d$   t        t        t	        dP      t'        t        dO            t*        (            k(  sJ |;d)   t        t        t	        dQ      t'        t        dO            t(        (            k(  sJ |;d6   t        t        t	        dR      t'        t        dO            t*        (            k(  sJ |;d7   t        t        t	        dS      t'        t        dO            t(        (            k(  sJ |;d8   t        t        t	        dT      t'        t        dO            t*        (            k(  sJ |;d@   t        t        t	        dV      t'        t        dO            t(        (            k(  sJ |<d$   t        t        t	        dP      t'        t        dO            t*        (            k(  sJ |<d)   t        t        t	        dQ      t'        t        dO            t(        (            k(  sJ |<d6   t        t        t	        dR      t'        t        dO            t(        (            k(  sJ |<d7   t        t        t	        dS      t'        t        dO            t*        (            k(  sJ |<d8   t        t        t	        dT      t'        t        dO            t*        (            k(  sJ |<d@   t        t        t	        dV      t'        t        dO            t(        (            k(  sJ |=d$   t        t        t	        d*      t'        t        dO            t(        (            k(  sJ |=d)   t        t        t	        dP      t'        t        dO            t	        d*      (            k(  sJ |=d6   t        t        t	        dQ      t'        t        dO            t(        (            k(  sJ |=d7   t        t        t	        dR      t'        t        dO            t*        (            k(  sJ |=d8   t        t        t	        dS      t'        t        dO            t	        d*      (            k(  sJ |>d$   t        t        t	        d*      t        t        d&            t        d)      (            k(  sJ |>d)   t        t        t	        dP      t'        t        dO            t	        d*      (            k(  sJ |>d6   t        t        t	        dQ      t'        t        dO            t(        (            k(  sJ |>d7   t        t        t	        dR      t'        t        dO            t*        (            k(  sJ |>d8   t        t        t	        dS      t'        t        dO            t	        d*      (            k(  sJ |?d$   t        t        t	        d*      t        t        d&            t        d)      (            k(  sJ |?d)   t        t        t	        d%      t        t        d&            t        d$      (            k(  sJ |?d6   t        t        t	        d#      t'        t        dO            t(        (            k(  sJ |?d7   t        t        t	        d>      t'        t        dO            t*        (            k(  sJ |?d8   t        t        t	        dP      t'        t        dO            t9        t	        d*      t	        d%            (            k(  sJ |?d@   t        t        t	        dQ      t'        t        dO            t9        t	        d*      t	        d#            (            k(  sJ |?dC   t        t        t	        dR      t'        t        dO            t9        t	        d#      t	        d>            (            k(  sJ |?dU   t        t        t	        dS      t'        t        dO            t;        t	        d*      t	        d%            (            k(  sJ |?d.   t        t        t	        dT      t'        t        dO            t;        t	        d*      t	        d#            (            k(  sJ |?dX   t        t        t	        dV      t'        t        dO            t;        t	        d#      t	        d>            (            k(  sJ t=        t>        @fd_       t=        t>        Afd`       y )aNzint b = 100;
int a = b;
zint a = 1;
int b = a + 1;
z*float a = 10.0 + 2.5;
float b = a * 20.0;
zint a = 1 + 100 - 3 * 6;
z+int a = (((1 + 100) * 12) - 3) * (6 - 10);
z)int b = 2;
int c = 3;
int a = b + c * 4;
z2int b = 1;
int c = b + 2;
int a = 10 * b * b * c;
zCvoid func(){
int a = 1;
int b = 2;
int temp = a;
a = b;
b = temp;
}zint a = 1;
int b = 2;
int c = a;
int d = a + b + c;
int e = a*a*a + 3*a*a*b + 3*a*b*b + b*b*b;
int f = (a + b + c) * (a + b - c);
int g = (a + b + c + d)*(a + b + c + d)*(a * (b - c));
z<float a = 10.0;
float b = 2.5;
float c = a*a + 2*a*b + b*b;
zfloat a = 10.0 / 2.5;
zint a = 100 / 4;
zint a = 20 - 100 / 4 * 5 + 10;
z#int a = (20 - 100) / 4 * (5 + 10);
z%int a = 4;
int b = 2;
float c = b/a;
zAint a = 2;
int d = 5;
int n = 10;
int s = (a/2)*(2*a + (n-1)*d);
zint a = 1 % 2;
zint a = 2;
int b = a % 3;
z'int a = 100;
int b = 3;
int c = a % b;
zOint a = 100;
int b = 3;
int mod = 1000000007;
int c = (a + b * (100/a)) % mod;
ztint a = 100;
int b = 3;
int mod = 1000000007;
int c = ((a % mod + b % mod) % mod *(a % mod - b % mod) % mod) % mod;
zbool a = 1 == 2, b = 1 != 2;z2bool a = 1 < 2, b = 1 <= 2, c = 1 > 2, d = 1 >= 2;zint a = 1, b = 2;
bool c1 = a == 1;
bool c2 = b == 2;
bool c3 = 1 != a;
bool c4 = 1 != b;
bool c5 = a < 0;
bool c6 = b <= 10;
bool c7 = a > 0;
bool c8 = b >= 11;z{int a = 3, b = 4;
bool c1 = a == b;
bool c2 = a != b;
bool c3 = a < b;
bool c4 = a <= b;
bool c5 = a > b;
bool c6 = a >= b;zjfloat a = 1.25, b = 2.5;
bool c1 = a == 1.25;
bool c2 = b == 2.54;
bool c3 = 1.2 != a;
bool c4 = 1.5 != b;zfloat a = 1.25, b = 2.5;
bool c1 = a == b;
bool c2 = a != b;
bool c3 = a < b;
bool c4 = a <= b;
bool c5 = a > b;
bool c6 = a >= b;zbool c1 = true == true;
bool c2 = true == false;
bool c3 = false == false;
bool c4 = true != true;
bool c5 = true != false;
bool c6 = false != false;zbool c1 = true && true;
bool c2 = true && false;
bool c3 = false && false;
bool c4 = true || true;
bool c5 = true || false;
bool c6 = false || false;zebool a = false;
bool c1 = a && true;
bool c2 = false && a;
bool c3 = true || a;
bool c4 = a || false;zRint a = 1;
bool c1 = a && 1;
bool c2 = a && 0;
bool c3 = a || 1;
bool c4 = 0 || a;zint a = 1, b = 0;
bool c = false, d = true;
bool c1 = a && b;
bool c2 = a && c;
bool c3 = c && d;
bool c4 = a || b;
bool c5 = a || c;
bool c6 = c || d;zchar a = 'b';zint a[] = {10, 20};r9   r   r?   r;   r   rJ   r>   r:   r@   rA   rB   rC   rD   r   rP   rQ   z20.0S   irH   rS   rl   r   r   r   tempr   rk   rm   rc   rn   r   rM   ro   z10.0r   r   r   r   r   r   rg   r   r   r   r   r   r   r   r   rp   r   r   	   r   r   r   z2.54r   z1.5c                      t         d      S r   r   r   s   r_   r   ztest_var_decl.<locals>.<lambda>  r   ra   c                      t         d      S r   r   r   s   r_   r   ztest_var_decl.<locals>.<lambda>  r   ra   ) r   rU   r   r   r4   r   r   r   r&   r   r   r'   r)   r   r   r   r   r*   r(   r   r5   r6   r/   r0   r+   r,   r-   r.   r1   r3   r   r   )BrW   rX   rY   rZ   rx   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c_src31c_src32r[   r\   r]   r^   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  res31res32r   r   sB                                                                   @@r_   test_var_declr    s(     	$ 	) 	 . 	
 @ 	
( 	- 	 	 	2 	 + 	
 & 	
 4 	
 8 	
$ 	4 	 $ 	
$ 	$ 	6 	7 	 + 	
 A 	
! 	"  	" 	  	( 	( 	$ 	  		  	  	
 " 	 vs+779vs+779vs+779vs+779vs+779vs+779vs+779vs+779vs+779-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;-99;Aw+VC[ 0cl  	  Aw+VC[ 0Sk  	  Aw+VC[ 0aj  	  Aw+hvc{VF^,s
' 
 
 	
 
 Aw+VC[9%!"+!"+ 	 Fb1
 
 
	 
 Aw+VC[9%!"+!"+ 	 &B/3K  	  Aw+VC[ 0bk  	  Aw+VC[ 0en  	  Aw+VC[ 0aj  	  Aw+VC[ 0aj  	  Aw+VC[ 03K
s	  	  Aw+VC[ 0aj  	  Aw+VC[ 03KAJ  	  Aw+VC[ 0BKs
 3K
  	  Aw,KVC[(8%aj VC[(8%aj VF^(8$Sk VC[)3K VC[)6N/	     	  D Aw+VC[ 0aj  	  Aw+VC[ 0aj  	  Aw+VC[ 0Sk  	  Aw+VC[ 03K3K3K	 	 		 	 Aw+VC[ 0s
 
"3K#AJ s 
s"3K#AJ s
+  	 @ Aw+VC[ 0ss#BK"3K sss  	 * Aw+VC[ 03Ks#BK"3K "3K"3K"3K"3K	  
  	 2 Qx;VC[9%!"+!"+ 	 Fb1
 
 
	 
 Qx;VC[9%!"+!"+ 	 ER0
 
 
	 
 Qx;VC[9%!"+!"+ 	 s
 
ss
 s
  	 4 Qx;VC[9%!"+!"+ 	 ER0
 
 
	 
 Qx;VC[ 0bk  	  Qx;VC[ 0cl  	  Qx;VC[ 0dm  	  Qx;VC[ 0aj  	  Qx;VC[ 0aj  	  Qx;VC[9%!"+!"+ 	 s 3K  	 $ Qx;VC[ 0aj  	  Qx;VC[ 0aj  	  Qx;VC[ 0bk  	  Qx;VC[ 0QN3K#AJ"3K "3K &s '"  	 . Qx;VC[ 0aj  	  Qx;VC[ 0aj  	  Qx;VC[ 03KAJ  	  Qx;VC[ 0cl  	  Qx;VC[ 0aj  	  Qx;VC[ 03K3K  	  Qx;VC[ 0cl  	  Qx;VC[ 0aj  	  Qx;VE] 0j)  	  Qx;VC[ 0s#CL &s '" #3K
 5M  	 ( Qx;VC[ 0cl  	  Qx;VC[ 0aj  	  Qx;VE] 0j)  	  Qx;VC[ 0"3K ' &s" "3K"3K 5M  	 , Qx;VC[&.)  	  Qx;VC[&.)  	  Qx;VC[&.)  	  Qx;VC[&.)  	  Qx;VC[&.)  	  Qx;VC[&.)  	  Qx;VC[ 0aj  	  Qx;VC[ 0aj  	  Qx;VD\&.)3KAJ  	  Qx;VD\&.)3KAJ  	  Qx;VD\&.) AJ3K  	  Qx;VD\&.) AJ3K  	  Qx;VD\&.)$VC[AJ  	  Qx;VD\&.)3KBK  	  Qx;VD\&.)'3KAJ  	  Qx;VD\&.)!3KBK  	  Qx;VC[ 0aj  	  Qx;VC[ 0aj  	  Qx;xtfVn%ss( 
 
 	
 
 Qx;VD\&.) 3K3K  	  Qx;VD\&.)$3K3K  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)'3K3K  	  Qx;VD\&.)!3K3K  	  Qx;VC[9%!"+!"+ 	 Fb1
 
 
	 
 Qx;VC[9%!"+!"+ 	 ER0
 
 
	 
 Qx;VD\&.)3K&B/  	  Qx;VD\&.)3K&B/  	  Qx;VD\&.) %2.3K  	  Qx;VD\&.) %2.3K  	  Qx;VC[9%!"+!"+ 	 Fb1
 
 
	 
 Qx;VC[9%!"+!"+ 	 ER0
 
 
	 
 Qx;VD\&.)3K3K  	  Qx;VD\&.) 3K3K  	  Qx;VD\&.)$3K3K  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)'3K3K  	  Qx;VD\&.)!3K3K  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VC[&.)  	  Qx;VD\&.)Sk  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)Sk  	  Qx;VC[ 0aj  	  Qx;VD\&.)Sk  	  Qx;VD\&.)  	  Qx;VD\&.)  	  Qx;VD\&.)Sk  	  Qx;VC[ 0aj  	  Qx;VC[ 0aj  	  Qx;VC[&.)  	  Qx;VC[&.)  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)3K3K  	  Qx;VD\&.)3K3K  	  	"$NO"$NOra   c                     d} d}t        | d      j                         }t        |d      j                         }|d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d	      t        t        d            t        d
                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d	      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        d                  k(  sJ |d   t        t        t	        d      t        t        d            t	        d                  k(  sJ |d   t        t        t	        d      t        t        d            t        t	        d      t        d                        k(  sJ |d   t        t        t	        d      t        t        d            t        t	        d      t        t	        d	      t	        d            t        t        d      t	        d      t        t	        d      t        d                                    k(  sJ y )Nz int a = (1);int b = (1 + 2 * 3);zPint a = 1, b = 2, c = 3;int d = (a);int e = (a + 1);int f = (a + b * c - d / e);r9   r   r:   r;   r>   rJ   r?   rp   rH   rS   rk   rl   rm   rc   rn   r   )r   rU   r   r   r4   r   r   r   r&   r'   r)   )rW   rX   r[   r\   s       r_   test_paren_exprr     s   # 	+ 	 vs+779vs+779Aw+VC[ 0aj  	  Aw+VC[ 0aj  	  Aw+VC[ 0aj  	  Aw+VC[ 0aj  	  Aw+VC[ 0aj  	  Aw+VC[ 0Sk  	  Aw+VC[ 03KAJ  	  Aw+VC[ 03Kss s"3K#BK  	 ra   c                  D   d} d}ddt        | d      j                         }t        |d      j                         }|d   t        t               t	        d      dt        t        t        t        d	      t        t	        d
            t        d                  t        t        t        d      t        t	        d
            t        d                  t        t        d	            t        t        d            t        t        d	            t        t        d                        k(  sJ |d   t        t               t	        d      dt        t        t        t        d	      t        t	        d
            t        d                  t        t        t        d      t        t	        d
            t        d                  t        t        t        d      t        t	        d
            t        d                  t        t        t        d      t        t	        d
            t        t        d	                        t        t        t        d      t        t	        d
            t        t        d                        t        t        t        d      t        t	        d
            t        t        d	                        t        t        t        d      t        t	        d
            t        t        d                        t        t        t        d      t        t	        d            t                     t        t        t        d      t        t	        d            t#        t        d                        t        t        t        d      t        t	        d            t                     t        t        t        d      t        t	        d            t$                                k(  sJ t'        t(        fd       t'        t(        fd       y )Nz:void func(){
int a = 10;
int b = 20;
++a;
--b;
a++;
b--;
}zvoid func(){
int a = 10;
int b = -100;
int c = +19;
int d = ++a;
int e = --b;
int f = a++;
int g = b--;
bool h = !false;
bool i = !d;
bool j = !0;
bool k = !10.0;
}z&void func(){
int a = 10;
int b = ~a;
}z'void func(){
int a = 10;
int b = *&a;
}r9   r   r   r   r:   r;   r   rJ   r?   r   r   i   rk   rm   rn   ro   rq   r   r   jkc                      t         d      S r   r   r   s   r_   r   z&test_unary_operators.<locals>.<lambda>  r   ra   c                      t         d      S r   r   r   s   r_   r   z&test_unary_operators.<locals>.<lambda>  r   ra   )r   rU   r   r   r   r   r   r   r4   r   r   r$   r"   r%   r#   r   r6   r2   r5   r   r   )rW   rX   r[   r\   r   r   s       @@r_   test_unary_operatorsr'    sN    	 	$ 	 	 vs+779vs+779Aw,KVC[(8%bk VC[(8%bk VC[)VC[)fSk*fSk*!	  	 0 Aw,KVC[(8%bk VC[(8%dm VC[(8%bk VC[(8*6#;7 VC[(8*6#;7 VC[(8+F3K8 VC[(8+F3K8 VC[!&.1" VC[!&.1!&+. VC[!&.1" VC[!&.1#{C	H H H	 HT 	"$NO"$NOra   c                     d} t        | d      j                         }|d   t        t               t	        d      dt        t        t        t        d      t        t	        d            t        d      	            t        t        t        d            t        d
            t        t        t        d            t        d
            t        t        t        d            t        d
            t        t        t        d            t        d
            t        t        t        d            t        d
                        k(  sJ y )NzHvoid func(){
int a = 100;
a += 10;
a -= 10;
a *= 10;
a /= 10;
a %= 10;
}r9   r   r   r   r:   r;   r   rJ   r   r   )r   rU   r   r   r   r   r   r   r4   r   r   r   r   r   r   r    )c_srcress     r_   !test_compound_assignment_operatorr+    s    	 eS)5571v+Ks(8%cl 'VC[)BK 'VC[)BK 'VC[)BK 'VC[)BK 'VC[)BK1	! ! !	 !ra   c                     d} d}d}d}d}t        | d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }t        |d      j                         }	|d   t        t               t	        d      d	t        t        t        t        d
      t        t	        d            t        d                  t        t        t        d
      t        d            t        t        t        d
                                    k(  sJ |d   |d   k(  sJ |d   t        t               t	        d      d	t        t        t        t        d
      t        t	        d            t        d                  t        t        t        d      t        t	        d            t        d                  t        t        t        d
      t        d            t        t        t        d
            t        t        d                                    k(  sJ |d   t        t        t	        d            t	        d      t        t        d      t        t	        d                  ft        t        t        t        d      t        t	        d            t        d                  t        t        t        d      t        d            t        t!        t        t        d            t#        t        d      t        d                  t%        t        t        d            t        d                        t'        d                  k(  sJ |	d   t        t               t	        d      d	t        t        t        d      t        t                                       k(  sJ y )Nz/void func(){
int i = 0;
while(i < 10)
{
i++;
}}z,void func(){
int i = 0;
while(i < 10)
i++;
}zDvoid func(){
int i = 10;
int cnt = 0;
while(i > 0)
{
i--;
cnt++;
}
}z[int digit_sum(int n){
int sum = 0;
while(n > 0)
{
sum += (n % 10);
n /= 10;
}
return sum;
}zvoid func(){
while(1);
}r9   r   r   r   r   r;   rJ   r   )r   r   cnt	digit_sumr   r<   sumr>   )r   rU   r   r   r   r   r   r   r4   r   r   r!   r+   r%   r-   r#   r   r(   r   r   r   s
             r_   test_while_stmtr0    s    	 		 		 	 	 vs+779vs+779vs+779vs+779vs+779Aw,KVC[(8%aj "s #%"3K
	  	 2 Aw$q'!!!Aw,Ks(8%bk u(8%aj %s
 #%"3K &"5M		" " "	 "H Aw,v'$3K$VF^4 u(8%aj %s
 #.$ &u"   &s '"	 /$ &s" $BK	. u? * * *	 *X Aw,KAJ"!	  	 ra   c                  Z     ddl m  t        t         fd       t        t        d        y )Nr   CCodeConverterc                               S )Nr   r2  s   r_   r   ztest_raise.<locals>.<lambda>  s
    N$4 ra   c                      t        dd      S )N r9   )moder   r   ra   r_   r   ztest_raise.<locals>.<lambda>  s    OC$D ra   )sympy.parsing.c.c_parserr3  r   ImportErrorr2  s   @r_   
test_raiser:  }  s    ;{45{DEra   )Isympy.parsing.sym_exprr   sympy.testing.pytestr   r   sympy.externalr   cinsympy.codegen.astr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   sympy.codegen.cnodesr"   r#   r$   r%   
sympy.corer&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   sympy.logic.boolalgr1   r2   r3   sympy.core.symbolr4   r5   r6   r   r`   r   r   r   r   r   r   r   r  r  r   r'  r+  r0  r:  r   ra   r_   <module>rD     s0   2 . (NZ(4LM' ' ' ' ' ' '% %    10(1
DYx]@Qf ^
 ^
@ x
 x
t \ \~3
ldPN9 [P [P|,WtTPn0d s snFra   