source file of the GNU LilyPond music typesetter
- (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
*/
class Unfolded_repeat_iterator : public Music_iterator
{
+ void add_repeat_command (SCM);
+
public:
+ VIRTUAL_COPY_CONS (Music_iterator);
/**
How often have we done the body (assuming bodies are interspersed.)?
*/
int done_count_;
-
- /// are we busy doing the body?
+ /*
+ are we now busy doing the body?
+
+ */
bool do_main_b_;
/** How far have we progressed into the repeat.
This excludes the elt currently being iterated.
*/
- Moment done_mom_;
+ Moment here_mom_;
int alternative_count_i_;
Music_iterator * current_iter_p_;
/// pointer to the alternative that will be processed next.
- Cons<Music> *alternative_cons_l_;
+ SCM alternative_cons_;
~Unfolded_repeat_iterator();
Unfolded_repeat_iterator ();
-
protected:
virtual void construct_children ();
- virtual Moment next_moment () const;
- virtual void do_process_and_next (Moment);
- virtual Music_iterator *try_music_in_children (Music const*) const;
-
+ virtual Moment pending_moment () const;
+ virtual void process (Moment);
+ virtual Music_iterator *try_music_in_children (Music *) const;
+ virtual void skip (Moment);
+ virtual SCM get_music (Moment) const;
+
virtual bool ok () const;
- virtual void next_element ();
- virtual void do_print () const;
+ virtual void next_element (bool side_effect);
};
#endif /* UNFOLDED_REPEAT_ITERATOR_HH */