-
- if (do_main_b_)
- {
- done_mom_ += mus->repeat_body_p_->length_mom ();
-
- if (!mus->volta_fold_b_)
- done_count_ ++;
-
- if (alternative_cons_l_)
- {
- current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
- do_main_b_ = false;
- }
- else if (done_count_ < mus->repeats_i_ && !mus->volta_fold_b_)
- {
- current_iter_p_ = get_iterator_p (mus->repeat_body_p_);
- do_main_b_ = true;
- }
- }
- else
- {
- /*
- we're not in the main part. So we're either in an alternative, or
- we just finished.
- */
- if (alternative_cons_l_)
- {
- done_mom_ += alternative_cons_l_->car_->length_mom ();
-
- if (mus->volta_fold_b_ ||
- mus->repeats_i_ - done_count_ < alternative_count_i_)
- alternative_cons_l_ = alternative_cons_l_->next_;
-
- /*
- we've done the main body as well, but didn't go over the other
- increment. */
- if (mus->volta_fold_b_)
- done_count_ ++;
- }
-
- if (done_count_ < mus->repeats_i_ && alternative_cons_l_)
- {
- if (mus->volta_fold_b_)
- current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
- else
- {
- current_iter_p_ = get_iterator_p (mus->repeat_body_p_);
- do_main_b_ = true;
- }
- }
- }
-}
-
-
-bool
-Unfolded_repeat_iterator::ok () const