public Object visitStmtFor(StmtFor stmt) { // Only recurse into the body. Statement newBody = (Statement) stmt.getBody().accept(this); if (newBody == stmt.getBody()) return stmt; return new StmtFor( stmt, stmt.getInit(), stmt.getCond(), stmt.getIncr(), newBody, stmt.isCanonical()); }
public Object visitStmtFor(StmtFor stmt) { Statement newInit = null; if (stmt.getInit() != null) { newInit = (Statement) stmt.getInit().accept(this); } if (stmt.getCond() != null) { stmt.getCond().accept(new UpgradeStarToInt(this, TypePrimitive.bittype, nres)); } Expression newCond = stmt.getCond(); Statement newIncr = null; if (stmt.getIncr() != null) { newIncr = (Statement) stmt.getIncr().accept(this); } Statement tmp = stmt.getBody(); Statement newBody = StmtEmpty.EMPTY; if (tmp != null) { newBody = (Statement) tmp.accept(this); } if (newInit == stmt.getInit() && newCond == stmt.getCond() && newIncr == stmt.getIncr() && newBody == stmt.getBody()) return stmt; return new StmtFor(stmt, newInit, newCond, newIncr, newBody, stmt.isCanonical()); }