a
    kşhÚ^ ă                   @   sş  d dl mZ d dlmZmZ d dlmZ edddgidZerŽd 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d Z:dd Z;dd Z<dd Z=edd Z>edd Z?edd Z@dd ZAdd  ZBed!d" ZCd#d$ ZDd%d& ZEd'd( ZFed)d* ZGnd+d, ZHdS )-é    ŠÚSymPyExpression)ÚraisesÚXFAIL)Úimport_modulezclang.cindexÚfromlistZcindex)Z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               
   C   s  d} d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }|d tttdttdd	kspJ |d
 tttdttdd	ksJ |d tttdttdtdtdtddd	ksÔJ |d
 tttdttdtdtdtddd	ksJ |d tttdttdd	ks<J |d
 tttdttdtdtdtddd	kszJ |d tttdttdd	ks¤J |d tttdttdtd
dksÔJ |d
 tttdttdtddksJ |d tttdttdtdtdtddt	ddddksLJ |d tttdttdtdtdtddt	ddddksJ d S )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é    é   é   ŠÚnbitsZnmantZnexpé   ÚxŠr9   ÚvalueÚyé   Úpú2.0é5   ŠZ	precisioné   Úqz9.67)
r   Úreturn_exprr   r   r1   r   r	   r   r   r   ŠÚc_src1Úc_src2Úc_src3Úc_src4Úres1Úres2Úres3Úres4Š rX   úO/var/www/auris/lib/python3.9/site-packages/sympy/parsing/tests/test_c_parser.pyÚtest_variable   sÖ    ˙˙˙˙
ţ˙

ţ˙
üţ˙
üţ˙
ţ˙üţ˙
ţ˙
ý˙
ý˙ü
ř˙ü
ř˙rZ   c                  C   s	  d} d}d}d}d}d}d}d}d	}d
}	d}
d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }t |	d Ą }t |
d Ą }t |d Ą }t |d Ą }t |d Ą }|d tttdttdtddks,J |d tttdttdtddks\J |d tttdttdtddksJ |d tttdttdtddksźJ |d tttdttdtddksěJ |d tttdttdtddksJ |d tttdttdtddksLJ |d tttdttdtddks|J |d tttdttdtddksŹJ |d tttd ttdtddksÜJ |d tttd!ttdtddksJ |d tttdttd"td#d$tddksDJ |d tttdttd"td#d$tddks|J |d tttdttd%td&d$tddks´J |d tttdttd%td&d$tddksěJ |d tttdttd%td&d$tddks$J |d' tttd(ttd%td&d$tddks\J |d) tttd*ttd%td&d$tddksJ |d tttd+ttd%td&d$tddksĚJ |d tttd,ttd%td&d$tddksJ |d- tttd.ttd%td&d$tddks<J |d tttdttdtddkslJ |d tttdttdtddksJ |d tttdttdtddksĚJ |d' tttd(ttdtddksüJ |d tttdttd/td0d$tddks4J |d tttdttd/td0d$tddkslJ |d tttdttd/td0d$tddks¤J |d' tttd(ttd/td0d$tddksÜJ |d tttdt	td1td#d$tddksJ |d tttdt	td1td#d$tddksLJ |d tttdt	td2td&d$tddksJ |d tttdt	td2td&d$tddksźJ |d tttdt	td2td&d$tddksôJ |d' tttd(t	td2td&d$tddks,J |d tttdt	td3td4d$tddksdJ |d tttdt	td3td4d$tddksJ |d tttdt	td5td0d$tddksÔJ |d tttdt	td5td0d$tddk	sJ |d tttdt	td5td0d$tddk	sDJ |d' tttd(t	td5td0d$tddk	s|J d S )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;r5   r   r6   r7   r:   rD   r;   rB   é   rH   rG   rM   r>   rC   é0   rF   éa   ÚrÚsZint8r?   )rA   Úint16é   rL   Údé   ÚeÚfÚgé   ÚhÚint64é@   Zuint8Zuint16Zuint32r=   Zuint64)
r   rN   r   r   r1   r   r	   r   r   r   )rP   rQ   rR   rS   Úc_src5Úc_src6Úc_src_type1Úc_src_type2Úc_src_type3Zc_src_type4Zc_src_type5Zc_src_type6Zc_src_type7Zc_src_type8rT   rU   rV   rW   Úres5Úres6Ú	res_type1Ú	res_type2Ú	res_type3Z	res_type4Z	res_type5Z	res_type6Z	res_type7Z	res_type8rX   rX   rY   Útest_int   s   ˙˙˙	˙˙˙˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙
ý˙ţú˙ţú˙ţú˙ţú˙ţű˙
ţú˙ţú˙ţú˙ţú˙ţú˙
ý˙
ý˙
ý˙
ý˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ţú˙ru   c               
   C   sĘ  d} d}d}d}d}d}d}d}t | d	 Ą }t |d	 Ą }	t |d	 Ą }
t |d	 Ą }t |d	 Ą }t |d	 Ą }t |d	 Ą }t |d	 Ą }|d
 tttdttdtdtdtddtddddksÖJ |	d
 tttdttdtdtdtddtddddksJ |	d tttdttdtdtdtddtddddksfJ |
d
 tttdttdtdtdtddtddddksŽJ |
d tttdttdtdtdtddtddddksöJ |d
 tttdttdtdtdtddtddddks>J |d tttdttdtdtdtddtddddksJ |d
 tttd ttdtdtdtddtddddksÎJ |d tttd!ttdtdtdtddtd"dddksJ |d
 tttdttdtdtdtddtddddks^J |d tttdttdtdtdtddtd#dddksŚJ |d
 tttdttd$td%td&td'dtddddksîJ |d tttdttd$td%td&td'dtd#dddks6J |d
 tttdttd(td)td*td+dtddddks~J |d tttdttd(td)td*td+dtd#dddksĆJ d S ),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;r5   r   r6   r<   r=   r>   r?   r@   z1.0rJ   rK   rD   ú1.25r:   r;   z2.3900000000000001rC   rF   rI   rH   z5.0rd   z7.89r^   r_   z0.0ú2.5Úfloat64rj   é4   é   Zfloat80éP   é?   é   )	r   rN   r   r   r1   r   r	   r   r   )rP   rQ   rR   rS   rk   rm   rn   ro   rT   rU   rV   rW   rp   rr   rs   rt   rX   rX   rY   Ú
test_floatw  s   ˙ü
ř˙
ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙ü
ř˙r~   c                  C   sĐ  d} d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }|d tttdttdtd	ksrJ |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sHJ |d tttdttdtd	kstJ |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 S )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;r5   r   r6   ÚboolrD   r:   r;   rB   )	r   rN   r   r   r1   r   r	   r3   r2   rO   rX   rX   rY   Ú	test_boolW  s    ˙˙˙˙
ţ˙

ţ˙

ţ˙

ţ˙

ţ˙
ţ˙
ţ˙
ţ˙
ţ˙r   c                  C   s  d} d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }|d tt tddttttd	t	td
ddksJ |d tt	td
tddttttd	t	td
dt
d	dksĐJ |d tttdtdtdtddtddttttdttdtdtdtdddt
ddksDJ |d tttdtdtdtddtdddksJ d S )Núvoid fun1()
{
int a;
}zint fun2()
{
int a;
return a;
}z#float fun3()
{
float b;
return b;
}zfloat fun4()
{}r5   r   Úfun1rX   r6   r7   r8   ŠÚnameÚ
parametersÚbodyÚfun2r<   r=   r>   r?   r@   Úfun3r;   Úfun4)r   r   )r   rN   r   r   r	   r   r   r   r1   r   r
   r   r   r   rO   rX   rX   rY   Útest_functionŞ  s    ˙˙˙˙
ţ˙˙ü

ţ˙ůüüüţ˙ô÷üřr   c                  C   sř  d} d}d}t | d Ą }t |d Ą }t |d Ą }|d tt tdttdttdd	ftt	ttd
ttdd	dksJ |d tttdtdttdt
tdtdtdtddd	ttdt
tdtdtdtddd	ftt	ttdttdd	tddks*J |d tt
tdtdtdtddtdttdttdd	ttdt
tdtdtdtddd	ttdttdd	ftt	ttdt
tdtdtdtddd	tddksôJ d S )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;
}r5   r   r   r6   r7   r8   Úir   r   rC   r<   r=   r>   r?   r@   rF   r   rH   rM   r^   r;   )r   rN   r   r   r	   r   r1   r   r   r   r   r   r
   )rP   rQ   rR   rT   rU   rV   rX   rX   rY   Útest_parameters  sĆ    ˙˙˙
ţ˙
ţ˙˙÷
üţ	üţö
ţ˙ůé"ü
ţüţ	
ţňüţ˙ôĺr   c            
      C   sŹ  d} d}d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }	|d tttdtd	ttd
ttddfttd
dks J |d tt	 tddtt
ttd
ttd	tdfdddksčJ |d tttdtdttdttddttdttddttdttddfttd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dddks˛J |d tttdtdttdttddttdttddttdttddfttddks&J |d tt	 tddtt
ttdttddt
ttdttddt
ttdttddt
ttdttdtdtdtdfdddksĘJ |d tttdtdttdttdtd td!td"d#dttdttdtd td!td"d#dttdttddfttddksfJ |d tt	 tddtt
ttd
ttdtd td!td"d#dt
ttdttdtd td!td"d#dt
ttdttddt
ttd$ttdtd
tdtdfdddks2J |	d tttdtd%dttd&dksdJ |	d tt	 tddtt
ttdttd%ddddks¨J d S )'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()
}r5   r   r7   r   rC   r8   r   r:   ZcallerrX   rB   )Zfunction_args)rE   r   r6   r;   rF   rL   rc   r   rH   rM   r^   Úzr   r<   r=   r>   r?   r@   r   ZfunÚ )r   rN   r   r   r	   r   r1   r   r
   r   r   r   r   r   Š
rP   rQ   rR   rS   rk   rT   rU   rV   rW   rp   rX   rX   rY   Útest_function_call  s°   ˙˙˙˙˙

˙˙ů˙˙˙˙˙ü

˙
˙
˙ú
˙óýţ˙˙˙ü

˙
˙
˙ů˙ň
˙˙
˙˙
˙˙ýţ˙˙đü#
ü˙ü˙
˙đ˙éü˙˙
ü˙˙

˙˙ý˙˙˙ćü,
˙ü	˙˙˙˙ür   c                  C   s  d} d}t dd}t dd}| | Ą | |Ą | Ą  | Ą  tdd Ą }tdd Ą }t dĄ t dĄ |d ttt	dt
td	d
ksJ |d ttt	dt
td	d
ksŔJ |d tt tddtttt	dt
td	d
dksţJ d S )Nr4   r   z..a.hÚwz..b.hr5   r   r6   r7   r8   r:   r;   r   rX   r   )ÚopenÚwriteÚcloser   rN   ÚosÚremover   r   r1   r   r	   r   r   r   )rP   rQ   Úf1Úf2rT   rU   rX   rX   rY   Ú
test_parseŚ  sN    ˙˙






ţ˙

ţ˙

ţ˙˙ür   c            <         s  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$ Ą }t |d$ Ą }t |d$ Ą } t |d$ Ą }!t |d$ Ą }"t |d$ Ą }#t |d$ Ą }$t |d$ Ą }%t |d$ Ą }&t |	d$ Ą }'t |
d$ Ą }(t |d$ Ą })t |d$ Ą }*t |d$ Ą }+t |d$ Ą },t |d$ Ą }-t |d$ Ą }.t |d$ Ą }/t |d$ Ą }0t |d$ Ą }1t |d$ Ą }2t |d$ Ą }3t |d$ Ą }4t |d$ Ą }5t |d$ Ą }6t |d$ Ą }7t |d$ Ą }8t |d$ Ą }9t |d$ Ą }:t |d$ Ą };|d% tt td&d'ttttd(t	td)d*t
ttd(td+d,ksJ |d% tt td&d'ttttd(t	td)td%d-t
ttd(ttd(td+t
ttd(tttd.td(td/d,ksJ | d% tt td&d'ttttd(t	td)td0d-t
ttd(ttd(td1d,kstJ |!d% tt td&d'ttttd(t	td)d*tttd2t	td)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d,ks$J |"d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$t	td)d*tttd7t	td)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d,ksDJ |#d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$t	td)d*tttd7t	td)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d,ksjJ |$d% tt td&d'ttttd(ttd:td;td<td=d>d*t
ttd(td?d@dAd,ksÖJ |%d% tt td&d'ttttd(ttd:td;td<td=d>d*t
ttd(tdBd@dAd,ksBJ |&d% tt td&d'ttttd(ttd:td;td<td=d>d*t
ttd(tdCd@dAd,ksŽJ |'d% tt td&d'ttttd(t	td)d*t
ttd(td6d,ksJ |(d% tt td&d'ttttd(t	td)d*t
ttd(tdDd,ksVJ |)d% tt td&d'ttttd(t	td)d*t
ttd(tdEd,ksŞJ |*d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$ttd:td;td<td=d>d*t
ttd$tttd(td8td2d,k	sZJ |+d% tt td&d'ttttd(t	td)td4d-tttd7t	td)tdFd-tttdGt	td)td0d-tttdHt	td)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d,k
sHJ |,d% tt td&d'ttttd(t	td)d*t
ttd(td+d,k
sJ |-d% tt td&d'ttttd(t	td)td4d-tttd2t	td)d*t
ttd2ttd(td.d,ksJ |.d% tt td&d'ttttd(t	td)td3d-tttd2t	td)td.d-tttd$t	td)d*t
ttd$ttd(td2d,ks¸J |/d% tt td&d'ttttd(t	td)td3d-tttd2t	td)td.d-tttdIt	td)tdJd-tttd$t	td)d*t
ttd$tttd(ttd3ttd(td8td2tdId,ksJ |0d% tt td&d'ttttd(t	td)td3d-tttd2t	td)td.d-tttdIt	td)tdJd-tttd$t	td)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d,ksJ |1d% tt td&d'ttttd(ttdKd*tttd2ttdKd*t
ttd(tt
ttd2td,ksJ |2d% tt td&d'ttttd(ttdKd*tttd2ttdKd*tttd$ttdKd*tttd7ttdKd*t
ttd(tt
ttd2tt
ttd$tt
ttd7td,ksćJ |3d% tt td&d'ttttd(t	td)td+d-tttd2t	td)td4d-tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*tttdRttdKd*tttdSttdKd*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ttd(td%t
ttdQttd2td0t
ttdRttd(td%t
ttdSttd2tdTd,ksJ |4d% tt td&d'ttttd(t	td)td.d-tttd2t	td)td9d-tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLttd(td2t
ttdMttd(td2t
ttdNttd(td2t
ttdOttd(td2t
ttdPttd(td2t
ttdQttd(td2d,ksÂJ |5d% tt td&d'ttttd(ttd:td;td<td=d>d*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*t
ttdLttd(tdUd@dAt
ttdNttdVd@dAtd(d,ksÂJ |6d% tt td&d'ttttd(ttd:td;td<td=d>tdUd@dAd-tttd2ttd:td;td<td=d>tdWd@dAd-tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLttd(td2t
ttdMttd(td2t
ttdNttd(td2t
ttdOttd(td2t
ttdPttd(td2t
ttdQttd(td2d,ks¨J |7d% tt td&d'ttttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*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d,ksĘJ |8d% tt td&d'ttttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*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d,ksěJ |9d% tt td&d'ttttd(ttdKd*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*t
ttdLtd(t
ttdMtt
ttdNtt
ttdOtd(	d,ksÜJ |:d% tt td&d'ttttd(t	td)d*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*t
ttdLtd(t
ttdMtt
ttdNtt
ttdOtd(	d,ksĚJ |;d% tt td&d'ttttd(t	td)d*tttd2t	td)d*tttd$ttdKd*tttd7ttdKd*tttdLttdKd*tttdMttdKd*tttdNttdKd*tttdOttdKd*tttdPttdKd*tttdQttdKd*t
ttdLttd(td2t
ttdMttd(td$t
ttdNt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d,ksŞJ tt fdXdY ttfdZdY ttfd[dY ttfd\dY ttfd]dY d S )^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;
}zvoid 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;
}zÔvoid 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;
}zŚvoid 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;
}zvoid 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;
}zŽvoid 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;
}zźvoid 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 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;
}z°void 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);
}r5   r   ÚfuncrX   r6   r7   r8   r:   r   rD   rL   iö˙˙˙é
   iď˙˙˙r;   éd   rB   é   é   rb   é˙˙˙˙rc   r<   r=   r>   r?   r@   z1.01rJ   rK   ú12.5ú4.0éĄ˙˙˙éÔţ˙˙r[   Únr_   ÚmodéĘ;r   Úc1Úc2Úc3Úc4Úc5Úc6Úc7Úc8rz   rv   ú1.2rw   c                      s
   t  dS ŠNr5   r   rX   ŠÚc_src_raise1rX   rY   Ú<lambda>ü  ó    z'test_binary_operators.<locals>.<lambda>c                      s
   t  dS r°   r   rX   ŠÚc_src_raise2rX   rY   rł   ý  r´   c                      s
   t  dS r°   r   rX   )Úc_src_raise3rX   rY   rł   ţ  r´   c                      s
   t  dS r°   r   rX   )Úc_src_raise4rX   rY   rł   ˙  r´   c                      s
   t  dS r°   r   rX   )Úc_src_raise5rX   rY   rł      r´   ) r   rN   r   r   r	   r   r   r   r1   r   r   r   r#   r$   r&   r   r   r'   r%   r   r2   r3   r,   r-   r(   r)   r*   r+   r.   r0   r   ÚNotImplementedError)<rP   rQ   rR   rS   rk   rl   Ú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_src30rT   rU   rV   rW   rp   rq   Úres7Úres8Úres9Úres10Úres11Úres12Úres13Úres14Úres15Úres16Úres17Úres18Úres19Úres20Úres21Úres22Úres23Úres24Úres25Úres26Úres27Úres28Úres29Úres30rX   )r˛   rś   rˇ   r¸   rš   rY   Útest_binary_operatorsÜ  sL   ˙˙	˙˙
˙˙˙	˙	˙	˙	˙	˙	˙˙˙	˙
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙	˙	˙	˙	˙
˙˙úü
ţ˙
˙ţţü˙öü
ţ˙
ţţůü
˙˙
˙˙
ţ
ţţţöţňü$
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţţűţţőţáü<
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţţţţţđţßü@ü˙˙


ţőüü˙˙


ţőüü˙˙


ţőü
˙˙
ţúü
˙˙
ţúü
˙˙
ţúü
˙˙
˙˙ü˙˙

ţűţëü&
ţ˙
ţ˙
ţ˙
˙˙
ţţţűýţčü3
˙˙
ţúü
ţ˙
˙˙
ţţôü
ţ˙
ţ˙
˙˙
ţţîü 
ţ˙
ţ˙
ţ˙
˙˙
ţúţôţčü0
ţ˙
ţ˙
ţ˙
˙˙
ţţţűţűňéţčü;
˙˙
˙˙
ţ
ţńü
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţßü,
ţ˙
ţ˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ
ţţüt
ţ˙
ţ˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ˛ü\ü˙˙

˙˙
˙˙
˙˙
˙˙

ţţ

ţţÚü5ü
ů˙ü
ů˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţ§üg
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţ
ţ
ţÍý=
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţ
ţ
ţÍü=
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţÚü1
˙˙
˙˙
˙˙
˙˙
˙˙
ţ
ţ
ţ
ţÚü1
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
˙˙
ţţ
ţţ
ţţ
ţţ
ţţ
ţţŞüdrë   c            @         sn  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# Ą } t |d# Ą }!t |d# Ą }"t |d# Ą }#t |d# Ą }$t |d# Ą }%t |d# Ą }&t |d# Ą }'t |d# Ą }(t |	d# Ą })t |
d# Ą }*t |d# Ą }+t |d# Ą },t |d# Ą }-t |d# Ą }.t |d# Ą }/t |d# Ą }0t |d# Ą }1t |d# Ą }2t |d# Ą }3t |d# Ą }4t |d# Ą }5t |d# Ą }6t |d# Ą }7t |d# Ą }8t |d# Ą }9t |d# Ą }:t |d# Ą };t |d# Ą }<t |d# Ą }=t |d# Ą }>t |d# Ą }?| d$ tttd%ttd&td'd(ksxJ | d) tttd*ttd&td%d(ks¨J |!d$ tttd*ttd&td)d(ksŘJ |!d) tttd%ttd&ttd*td)d(ksJ |"d$ tttd*t	td+td,td-td.d/t
d0d1d2d(ksZJ |"d) tttd%t	td+td,td-td.d/tt
d3d1d2td*d(ksŹJ |#d$ tttd*ttd&td4d(ksÜJ |$d$ tttd*ttd&td5d(ksJ |%d$ tttd%ttd&td6d(ks<J |%d) tttd#ttd&td7d(kslJ |%d6 tttd*ttd&ttd%ttd8td#d(ks°J |&d$ tttd%ttd&td)d(ksŕJ |&d) tttd#ttd&ttd%td6d(ksJ |&d6 tttd*ttd&ttd9ttd%td6td#d(ksdJ |'d$ tt td:d;ttttd*ttd&td)d(tttd%ttd&td6d(tttd<ttd&td*d(tttd*td%tttd%td<d=ksJ |(d$ tttd*ttd&td)d(ksBJ |(d) tttd%ttd&td6d(ksrJ |(d6 tttd#ttd&td*d(ks˘J |(d7 tttd>ttd&ttd*td%td#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d(kspJ |(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#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d(ksHJ |)d$ tttd*t	td+td,td-td.d/t
dEd1d2d(ksJ |)d) tttd%t	td+td,td-td.d/t
dFd1d2d(ksŘJ |)d6 tttd#t	td+td,td-td.d/tttd*td6ttd6td*td%ttd%td6d(k	sPJ |*d$ tttd*t	td+td,td-td.d/t
dGd1d2d(k	sJ |+d$ tttd*ttd&tdHd(k	sČJ |,d$ tttd*ttd&tdId(k	sřJ |-d$ tttd*ttd&tdJd(k
s(J |.d$ tttd*ttd&td8d(k
sXJ |.d) tttd%ttd&td6d(k
sJ |.d6 tttd#t	td+td,td-td.d/tttd*tdBtd%d(k
sŕJ |/d$ tttd*ttd&td6d(ksJ |/d) tttd>ttd&td@d(ks@J |/d6 tttdKttd&td9d(kspJ |/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d(ksÚJ |0d$ tttd*ttd&td)d(ks
J |1d$ tttd*ttd&td6d(ks:J |1d) tttd%ttd&ttd*td7d(kstJ |2d$ tttd*ttd&td'd(ks¤J |2d) tttd%ttd&td7d(ksÔJ |2d6 tttd#ttd&ttd*td%d(ksJ |3d$ tttd*ttd&td'd(ks>J |3d) tttd%ttd&td7d(ksnJ |3d6 tttdMttd&tdNd(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d(ksüJ |4d$ tttd*ttd&td'd(ks,J |4d) tttd%ttd&td7d(ks\J |4d6 tttdMttd&tdNd(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d(ksîJ |5d$ tttd*ttdOtd(ksJ |5d) tttd%ttdOtd(ksFJ |6d$ tttd*ttdOtd(ksrJ |6d) tttd%ttdOtd(ksJ |6d6 tttd#ttdOtd(ksĘJ |6d7 tttd>ttdOtd(ksöJ |7d$ tttd*ttd&td)d(ks&J |7d) tttd%ttd&td6d(ksVJ |7d6 tttdPttdOttd*td)d(ksJ |7d7 tttdQttdOttd%td6d(ksĘJ |7d8 tttdRttdOttd)td*d(ksJ |7d@ tttdSttdOttd)td%d(ks>J |7dC tttdTttdOttd*td$d(ksxJ |7dU tttdVttdOttd%td9d(ks˛J |7d. tttdWttdOttd*td$d(ksěJ |7dX tttdYttdOttd%tdZd(ks&J |8d$ tttd*ttd&td7d(ksVJ |8d) tttd%ttd&td8d(ksJ |8d6 tttdPttdOttd*td%d(ksŔJ |8d7 tttdQttdOttd*td%d(ksúJ |8d8 tttdRttdOttd*td%d(ks4J |8d@ tttdSttdOttd*td%d(ksnJ |8dC tttdTttdOttd*td%d(ks¨J |8dU tttdVttdOttd*td%d(ksâJ |9d$ tttd*t	td+td,td-td.d/t
d[d1d2d(ks*J |9d) tttd%t	td+td,td-td.d/t
dFd1d2d(ksrJ |9d6 tttdPttdOttd*t
d[d1d2d(ks°J |9d7 tttdQttdOttd%t
d\d1d2d(ksîJ |9d8 tttdRttdOtt
d]d1d2td*d(ks,J |9d@ tttdSttdOtt
d^d1d2td%d(ksjJ |:d$ tttd*t	td+td,td-td.d/t
d[d1d2d(ks˛J |:d) tttd%t	td+td,td-td.d/t
dFd1d2d(ksúJ |:d6 tttdPttdOttd*td%d(ks4J |:d7 tttdQttdOttd*td%d(ksnJ |:d8 tttdRttdOttd*td%d(ks¨J |:d@ tttdSttdOttd*td%d(ksâJ |:dC tttdTttdOttd*td%d(ksJ |:dU tttdVttdOttd*td%d(ksVJ |;d$ tttdPttdOtd(ksJ |;d) tttdQttdOtd(ksŽJ |;d6 tttdRttdOtd(ksÚJ |;d7 tttdSttdOtd(ksJ |;d8 tttdTttdOtd(ks2J |;d@ tttdVttdOtd(ks^J |<d$ tttdPttdOtd(ksJ |<d) tttdQttdOtd(ksśJ |<d6 tttdRttdOtd(ksâJ |<d7 tttdSttdOtd(ksJ |<d8 tttdTttdOtd(ks:J |<d@ tttdVttdOtd(ksfJ |=d$ tttd*ttdOtd(ksJ |=d) tttdPttdOtd*d(ksÂJ |=d6 tttdQttdOtd(ksîJ |=d7 tttdRttdOtd(ksJ |=d8 tttdSttdOtd*d(ksJJ |>d$ tttd*ttd&td)d(kszJ |>d) tttdPttdOtd*d(ksŞJ |>d6 tttdQttdOtd(ksÖJ |>d7 tttdRttdOtd(ksJ |>d8 tttdSttdOtd*d(ks2J |?d$ tttd*ttd&td)d(ksbJ |?d) tttd%ttd&td$d(ksJ |?d6 tttd#ttdOtd(ksžJ |?d7 tttd>ttdOtd(ksęJ |?d8 tttdPttdOttd*td%d(ks$J |?d@ tttdQttdOttd*td#d(ks^J |?dC tttdRttdOttd#td>d(ksJ |?dU tttdSttdOttd*td%d(ksŇJ |?d. tttdTttdOttd*td#d(ksJ |?dX tttdVttdOttd#td>d(ksFJ tt fd_d` ttfdad` d S )bNz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;
}zšint 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;zĄint 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;zfloat 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;zbool c1 = true == true;
bool c2 = true == false;
bool c3 = false == false;
bool c4 = true != true;
bool c5 = true != false;
bool c6 = false != false;zbool 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;zint 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};r5   r   r;   r7   r   rD   r:   r6   r<   r=   r>   r?   r@   r    rJ   rK   z20.0éS   ií˙˙rB   rL   rc   r   r   rX   Útempr   rb   rd   r[   re   r   rG   rf   z10.0rw   rĄ   r   r˘   rŁ   r¤   r_   rĽ   rŚ   r   r§   r¨   rŠ   rŞ   rŤ   rg   rŹ   r­   é	   rŽ   rz   rv   z2.54rŻ   z1.5c                      s
   t  dS r°   r   rX   rą   rX   rY   rł     r´   ztest_var_decl.<locals>.<lambda>c                      s
   t  dS r°   r   rX   rľ   rX   rY   rł     r´   ) r   rN   r   r   r1   r   r	   r   r#   r   r   r$   r&   r   r   r   r   r'   r%   r   r2   r3   r,   r-   r(   r)   r*   r+   r.   r0   r   rş   )@rP   rQ   rR   rS   rk   rl   rť   rź   r˝   rž   rż   rŔ   rÁ   rÂ   rĂ   rÄ   rĹ   rĆ   rÇ   rČ   rÉ   rĘ   rË   rĚ   rÍ   rÎ   rĎ   rĐ   rŃ   rŇ   Zc_src31Zc_src32rT   rU   rV   rW   rp   rq   rÓ   rÔ   rŐ   rÖ   r×   rŘ   rŮ   rÚ   rŰ   rÜ   rÝ   rŢ   rß   rŕ   rá   râ   ră   rä   rĺ   rć   rç   rč   ré   rę   Zres31Zres32rX   Šr˛   rś   rY   Útest_var_decl  sě   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙	˙˙˙˙˙˙˙˙˙˙˙˙˙
ţ˙
ţ˙
ţ˙
ţţ	ü
ů˙ü
ţů˙
ţ˙
ţ˙
ţ˙
ţ˙
ţţţ˙
ţ˙
ţţ˙

ţúţ˙
ţ˙
ţ˙
ţ˙
ţ
ţéü"
ţ˙
ţ˙
ţ˙
ýţ˙
ţţúţýţëţ˙ 
ţýý÷ţ˙
ţţüů÷ţ˙ü
ů˙ü
ů˙üţýţöů˙ü
ů˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙üţűů˙
ţ˙
ţ˙
ţ˙
ţţţűýţ˙
ţ˙
ţ˙
ţţ˙

ţ˙
ţ˙
ţţ˙

ţ˙
ţ˙
ţ˙
ţúţôţ˙
ţ˙
ţ˙
ţ˙
ţţţřňţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţţ˙

ţţ˙

ţţ˙

ţţ˙

˙ţ˙	
ţţ˙

ţţ˙

ţţ˙

ţ˙
ţ˙
ţţ	
ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙
ü
ů˙ü
ů˙

ţţ˙


ţţ˙


ţţ˙


ţţ˙
ü
ů˙ü
ů˙
ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţ˙
ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙

ţţ˙
rđ   c                  C   sŢ  d} d}t | d Ą }t |d Ą }|d tttdttdtddksRJ |d tttd	ttdtd
dksJ |d tttdttdtddksŽJ |d tttd	ttdtddksÜJ |d tttdttdtddksJ |d tttdttdtddks<J |d tttdttdttdtddksvJ |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dksÚJ d S )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);r5   r   r6   r7   r:   rD   r;   rg   rB   rL   rb   rc   rd   r[   re   r   )r   rN   r   r   r1   r   r	   r   r#   r$   r&   ŠrP   rQ   rT   rU   rX   rX   rY   Útest_paren_expr˘  s    ˙˙
ţ˙

ţ˙

ţ˙

ţ˙

ţ˙
ţ˙
ţţ˙

ţţýúţ˙rň   c                     sn  d} d}d dt | d Ą }t |d Ą }|d tt tddttttd	t	td
t
ddtttdt	td
t
ddttd	ttdttd	ttddks¸J |d tt tddttttd	t	td
t
ddtttdt	td
t
ddtttdt	td
t
ddtttdt	td
ttd	dtttdt	td
ttddtttdt	td
ttd	dtttdt	td
ttddtttdttdtdtttdttdttddtttdttdtdtttdttdtddksFJ tt fdd ttfdd d S )Nz:void func(){
int a = 10;
int b = 20;
++a;
--b;
a++;
b--;
}z¤void 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;
}r5   r   r   rX   r6   r7   r   rD   r;   r   r   i˙˙˙é   rb   rd   re   rf   rh   r   r   ÚjÚkc                      s
   t  dS r°   r   rX   rą   rX   rY   rł     r´   z&test_unary_operators.<locals>.<lambda>c                      s
   t  dS r°   r   rX   rľ   rX   rY   rł     r´   )r   rN   r   r   r	   r   r   r   r1   r   r   r!   r   r"   r    r   r3   r/   r2   r   rş   rń   rX   rď   rY   Útest_unary_operatorsü  sŘ    ˙˙˙	˙
ţ˙
ţ˙



đü
ţ˙
ţ˙
ţ˙

ţ˙

ţ˙

ţ˙

ţ˙
ţ˙

ţ˙
ţ˙
ţ˙ĂüJrö   c                  C   sž   d} t | d Ą }|d tt tddttttdt	tdt
d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
dksşJ d S )NzHvoid func(){
int a = 100;
a += 10;
a -= 10;
a *= 10;
a /= 10;
a %= 10;
}r5   r   r   rX   r6   r7   r   rD   r   r   )r   rN   r   r   r	   r   r   r   r1   r   r   r   r   r   r   r   )Zc_srcÚresrX   rX   rY   Ú!test_compound_assignment_operator  sJ    ˙
ý˙
ţ
ţ
ţ
ţ
ţčürř   c            
      C   s\  d} d}d}d}d}t | d Ą }t |d Ą }t |d Ą }t |d Ą }t |d Ą }	|d tt tdd	ttttd
t	tdt
ddtttd
t
dtttd
d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dtttdt	tdt
ddtttd
t
dtttd
ttdddksjJ |d tt	tdtdttdt	tddfttttdt	tdt
ddtttdt
dttttdttdt
dtttdt
ddtddksJ |	d tt tdd	ttt
dtt ddksXJ d S )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);
}r5   r   r   rX   r   r7   rD   r   )r   r   ZcntZ	digit_sumr¤   r8   Úsumr:   )r   rN   r   r   r	   r   r   r   r1   r   r   r   r(   r"   r*   r    r   r%   r   r
   r   rX   rX   rY   Útest_while_stmtĹ  s   ˙˙
˙˙˙
ţ˙ţ˙˙űůü
ý˙
ý˙ţ˙˙üűńü$

ţ˙
ý˙ţ˙ţü	˙üöűá÷,˙ţ˙ürú   c                      s0   ddl m  tt fdd ttdd  d S )Nr   ŠÚCCodeConverterc                      s     S )NrX   rX   rű   rX   rY   rł     r´   ztest_raise.<locals>.<lambda>c                   S   s   t dddS )Nú r5   )Úmoder   rX   rX   rX   rY   rł     r´   )Zsympy.parsing.c.c_parserrü   r   ÚImportErrorrX   rX   rű   rY   Ú
test_raise}  s    r   )IZsympy.parsing.sym_exprr   Zsympy.testing.pytestr   r   Zsympy.externalr   ZcinZ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   Zsympy.codegen.cnodesr   r    r!   r"   Z
sympy.corer#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   Zsympy.logic.boolalgr.   r/   r0   Zsympy.core.symbolr1   r2   r3   r   rZ   ru   r~   r   r   r   r   r   rë   rđ   rň   rö   rř   rú   r   rX   rX   rX   rY   Ú<module>   s   d4    _ aS
`
z
  !6              5
           )Z 2 8