2 music-iterator.hh -- declare Music_iterator
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #ifndef MUSIC_ITERATOR_HH
11 #define MUSIC_ITERATOR_HH
13 #include "lily-proto.hh"
17 #include "virtual-methods.hh"
19 class Music_iterator {
20 Array<Translator_group*>report_to_l_arr_;
21 void push_translator (Translator_group*);
22 void pop_translator();
24 Music const * music_l_;
26 virtual void do_print() const;
28 virtual Translator_group* get_req_translator_l();
29 Music_iterator* get_iterator_p (Music const*) const;
30 void set_translator (Translator_group*);
31 virtual void do_process_and_next (Moment until);
32 void inherit_info (Music_iterator const *parent);
34 Translator_group*report_to_l() const;
35 DECLARE_MY_RUNTIME_TYPEINFO;
37 static Music_iterator* static_get_iterator_p (Music const*,Translator_group*);
40 virtual Moment next_moment() const;
41 virtual bool ok() const;
42 virtual ~Music_iterator();
43 void process_and_next (Moment until);
46 Construct sub-iterators, and set the translator to
49 virtual void construct_children();
53 #endif // MUSIC_ITERATOR_HH