public Expression getIncrVal() { if (incr instanceof StmtExpr) { StmtExpr se = (StmtExpr) incr; if (se.getExpression() instanceof ExprUnary) { ExprUnary eu = (ExprUnary) se.getExpression(); int op = eu.getOp(); if (op == ExprUnary.UNOP_POSTINC || op == ExprUnary.UNOP_PREINC) { return ExprConstInt.one; } if (op == ExprUnary.UNOP_POSTDEC || op == ExprUnary.UNOP_PREDEC) { return ExprConstInt.minusone; } } } if (incr instanceof StmtAssign) { StmtAssign sa = (StmtAssign) incr; if (sa.getOp() == 0) { if (sa.getRHS() instanceof ExprBinary) { ExprBinary eb = (ExprBinary) sa.getRHS(); if (eb.getLeft().equals(sa.getLHS())) { return eb.getRight(); } if (eb.getRight().equals(sa.getLHS())) { return eb.getLeft(); } } } if (sa.getOp() == ExprBinary.BINOP_ADD) { return sa.getRHS(); } if (sa.getOp() == ExprBinary.BINOP_SUB) { return new ExprUnary("-", sa.getRHS()); } } return null; }