Newer
Older
zweic / tests / 5 / antoineyersion / conditions(7).zwei
@glproj03 glproj03 on 6 Feb 2006 3 KB compiler working!
//#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);
	
	
}