public boolean equalsWithComments(Object o) {
   ASTNoptrabstractpackdeclaratorList comp;
   if ((o instanceof ASTNoptrabstractpackdeclaratorList)) {
     comp = (ASTNoptrabstractpackdeclaratorList) o;
   } else {
     return false;
   }
   if (this.size() == comp.size()) {
     java.util.Iterator<ASTNoptrabstractpackdeclarator> one = this.iterator();
     java.util.Iterator<ASTNoptrabstractpackdeclarator> two = comp.iterator();
     while (one.hasNext()) {
       if (!one.next().equalsWithComments(two.next())) {
         return false;
       }
     }
   } else {
     return false;
   }
   return true;
 }
 public boolean deepEqualsWithComments(Object o, boolean forceSameOrder) {
   ASTNoptrabstractpackdeclaratorList comp;
   if ((o instanceof ASTNoptrabstractpackdeclaratorList)) {
     comp = (ASTNoptrabstractpackdeclaratorList) o;
   } else {
     return false;
   }
   if (this.size() == comp.size()) {
     if (forceSameOrder) {
       java.util.Iterator<ASTNoptrabstractpackdeclarator> one = this.iterator();
       while (one.hasNext()) {
         ASTNoptrabstractpackdeclarator oneNext = one.next();
         boolean matchFound = false;
         java.util.Iterator<ASTNoptrabstractpackdeclarator> two = comp.iterator();
         while (two.hasNext()) {
           if (oneNext.deepEqualsWithComments(two.next(), forceSameOrder)) {
             matchFound = true;
             break;
           }
         }
         if (!matchFound) {
           return false;
         }
       }
     } else {
       java.util.Iterator<ASTNoptrabstractpackdeclarator> one = this.iterator();
       java.util.Iterator<ASTNoptrabstractpackdeclarator> two = comp.iterator();
       while (one.hasNext()) {
         if (!one.next().deepEqualsWithComments(two.next(), forceSameOrder)) {
           return false;
         }
       }
     }
   } else {
     return false;
   }
   return true;
 }