void exec_if() throws StopException, SyntaxError{
		var_type cond;
		return_state r;
		cond = evalOrCheckExpression(false); //evaluate the conditional statement
		
		if(cond.value.doubleValue()!=0){	// if any bit is not 0
			statementColor = trueHightlightColor;
			symbolTable.pushLocalScope();
			r = interp_block(block_type.CONDITIONAL, false);	// execute block
			symbolTable.popScope();
			if(r == return_state.FUNC_RETURN)
				return;

			token = lexer.get_token();
			if(token.key==keyword.ELSE){
				//find the end of the else
				token = lexer.get_token();
				if(!token.value.equals("{")){
					lexer.putback();
					findEndOfStatement();
				}
				else{
					find_eob();					
				}
			}
			else{
				lexer.putback();
			}
		}
		else{ //skip around block, check for else
			statementColor = falseHightlightColor;
			//find the end of the if
			token = lexer.get_token();
			if(!token.value.equals("{")){
				lexer.putback();
				findEndOfStatement();
			}
			else{
				find_eob();					
			}
			token = lexer.get_token();

			if(token.key != keyword.ELSE){
				lexer.putback();
			}
			else{
				symbolTable.pushLocalScope();
				r = interp_block(block_type.CONDITIONAL, false);
				symbolTable.popScope();
				if(r == return_state.FUNC_RETURN)
					return;
			}