public boolean equalsWithComments(Object o) {

    /* generated by template ast.ErrorIfNull*/
    Log.errorIfNull(o, "0xA7006_335 Parameter 'o' must not be null.");

    /* generated by template ast.additionalmethods.EqualsWithComments*/

    ASTPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary comp;
    if ((o instanceof ASTPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary)) {
      comp = (ASTPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary) o;
    } else {
      return false;
    }
    if (!equalAttributes(comp)) {
      return false;
    }
    // comparing comments
    if (get_PreComments().size() == comp.get_PreComments().size()) {
      java.util.Iterator<de.monticore.ast.Comment> one = get_PreComments().iterator();
      java.util.Iterator<de.monticore.ast.Comment> two = comp.get_PreComments().iterator();
      while (one.hasNext()) {
        if (!one.next().equals(two.next())) {
          return false;
        }
      }
    } else {
      return false;
    }

    if (get_PostComments().size() == comp.get_PostComments().size()) {
      java.util.Iterator<de.monticore.ast.Comment> one = get_PostComments().iterator();
      java.util.Iterator<de.monticore.ast.Comment> two = comp.get_PostComments().iterator();
      while (one.hasNext()) {
        if (!one.next().equals(two.next())) {
          return false;
        }
      }
    } else {
      return false;
    }
    return true;
  }