- if (dynamic_cast<Request_chord const *> (m))
- p = new Request_chord_iterator;
- else if (dynamic_cast<Simultaneous_music const *> (m))
- p = new Simultaneous_music_iterator;
- else if (dynamic_cast<Sequential_music const *> (m))
- p = new Sequential_music_iterator;
- else if (dynamic_cast<Translation_property const *> (m))
- p = new Property_iterator;
- else if (dynamic_cast<Change_translator const *> (m))
- p = new Change_iterator;
- else if (dynamic_cast<Time_scaled_music const *> (m))
- p = new Time_scaled_music_iterator;
- else if (dynamic_cast<Music_wrapper const *> (m))
- p = new Music_wrapper_iterator;
- else if (New_repeated_music const * n = dynamic_cast<New_repeated_music const *> (m))
- {
- if (n->fold_b_)
- p = new Folded_repeat_iterator;
- else
- p = new Unfolded_repeat_iterator;
- }
- else
- assert (0);