if (IDDoLoops.getExpression(doInfo.incr) instanceof JIntLiteral && IDDoLoops.getExpression(doInfo.init) instanceof JIntLiteral) {
if (Util.passThruParens(doInfo.incr) instanceof JIntLiteral && Util.passThruParens(doInfo.init) instanceof JIntLiteral) {
    private int generateDoLoop(DoLoopInformation doInfo, JStatement body)     {	//make sure the init and the incr are integers	if (IDDoLoops.getExpression(doInfo.incr) instanceof JIntLiteral &&	    IDDoLoops.getExpression(doInfo.init) instanceof JIntLiteral) {	    JIntLiteral incr = (JIntLiteral)IDDoLoops.getExpression(doInfo.incr);	    JIntLiteral init = (JIntLiteral)IDDoLoops.getExpression(doInfo.init);	    JIntLiteral cond = null;	    //if the cond is a int literal we are set	    if (Util.passThruParens(doInfo.cond) instanceof JIntLiteral) {		cond = (JIntLiteral)Util.passThruParens(doInfo.cond);	    }	    		    	    //if the cond is a binary expression, try to fold it	    if (Util.passThruParens(doInfo.cond) instanceof JBinaryArithmeticExpression) {		JBinaryArithmeticExpression binExp = (JBinaryArithmeticExpression)Util.passThruParens(doInfo.cond);		if (Util.passThruParens(binExp.getLeft()) instanceof JIntLiteral && 		    Util.passThruParens(binExp.getRight()) instanceof JIntLiteral) {		    JIntLiteral right = (JIntLiteral)Util.passThruParens(binExp.getRight());		    JIntLiteral left = (JIntLiteral)Util.passThruParens(binExp.getLeft());		    		    //perform the folding		    if (Util.passThruParens(doInfo.cond) instanceof JAddExpression) {			cond = new JIntLiteral(left.intValue() + right.intValue());			doInfo.cond = cond;		    }		    else if (Util.passThruParens(doInfo.cond) instanceof JMinusExpression) {			cond = new JIntLiteral(left.intValue() - right.intValue());			doInfo.cond = cond;		    }		}	    }	    	    //couldn't fold the cond expression, so we must generate the loop or	    //if there are any side effects in the code or inrc or init, we must generate the loop	    if (cond == null || HasSideEffects.hasSideEffects(doInfo.init) ||		HasSideEffects.hasSideEffects(doInfo.cond) ||		HasSideEffects.hasSideEffects(doInfo.incr))		return 1;	    	    //System.out.println(init.intValue() + " " + 	    //		       cond.intValue() + " " + 	    //		       incr.intValue());	    //this loop with never execute...	    if ((init.intValue() > cond.intValue() && incr.intValue() > 0) ||		 (init.intValue() < cond.intValue() && incr.intValue() < 0))		return -1;		 	    //this loop will execute once, make sure the induction variable is not used 	    //in the body, we could still handle this case, but I am just punting for now	    if (init.intValue() == cond.intValue() &&				!(VariablesDefUse.getVars(body).contains(doInfo.induction)))		return 0;	}	return 1;    }