//#isut
// the the correct evaluation of conditions using the genCond(...);
// only 1 should be produced on terminal
class A {
Int a;
}
{
// booolean
printInt(if(true) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(false) {return 0} else {return 1});
printChar(10);
printChar(13);
// binary operators (arithmetic)
printInt(if(1 + 1) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(0 + 0) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(2 - 1) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(2 - 2) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(1 * 1) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(0 * 1) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(2 / 2) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(0 / 2) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(17 % 2) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(16 % 2) {return 0} else {return 1});
printChar(10);
printChar(13);
// binary operators (logical)
printInt(if(1 == 1) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(1 == 0) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(0 != 1) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(1 != 1) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(0 < 1) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(1 < 1) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(1 > 0) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(1 > 1) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(1 <= 2) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(1 <= 0) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(2 >= 0) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(0 >= 2) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(true && true) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(true && false) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(true || false) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(false || false) {return 0} else {return 1});
printChar(10);
printChar(13);
// unary operators
printInt(if(-true) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(-false) {return 0} else {return 1});
printChar(10);
printChar(13);
printInt(if(!false) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(!true) {return 0} else {return 1});
printChar(10);
printChar(13);
A aa = new A(true);
// condition with variable
printInt(if(aa.a) {return 1} else {return 0});
printChar(10);
printChar(13);
printInt(if(!aa.a) {return 0} else {return 1});
printChar(10);
printChar(13);
}