public Object visitStmtAtomicBlock(StmtAtomicBlock stmt) {
   if (stmt.isCond()) {
     Expression ie = stmt.getCond();
     ie.accept(new UpgradeStarToInt(this, TypePrimitive.bittype, nres));
   }
   return super.visitStmtAtomicBlock(stmt);
 }
 @Override
 public Object visitTypeArray(TypeArray ta) {
   Expression ie = ta.getLength();
   ie.accept(new UpgradeStarToInt(this, TypePrimitive.inttype, nres));
   return super.visitTypeArray(ta);
 }
 public void upgradeStarToInt(Expression exp, Type ftype) {
   exp.accept(new UpgradeStarToInt(this, ftype, nres));
 }
 public Object visitStmtLoop(StmtLoop stmt) {
   Expression ie = stmt.getIter();
   ie.accept(new UpgradeStarToInt(this, TypePrimitive.inttype, nres));
   return super.visitStmtLoop(stmt);
 }
 public Object visitStmtDoWhile(StmtDoWhile stmt) {
   Expression ie = stmt.getCond();
   ie.accept(new UpgradeStarToInt(this, TypePrimitive.bittype, nres));
   return super.visitStmtDoWhile(stmt);
 }