]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/translator.hh
release: 0.0.76
[lilypond.git] / lily / include / translator.hh
1 /*
2   translator.hh -- declare Translator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef TRANSLATOR_HH
11 #define TRANSLATOR_HH
12
13 #include "string.hh"
14 #include "lily-proto.hh"
15 #include "virtual-methods.hh"
16
17 class Translator {
18 public:
19     String id_str_;
20     
21     int iterator_count_;
22     
23     virtual Global_translator *global_l() { return 0; }
24
25     /// Score_register = 0, Staff_registers = 1, etc)
26     virtual void print()const;
27     virtual int depth_i()const=0;
28     virtual bool is_bottom_engraver_b() const { return false; }
29     virtual bool try_request(Request*);
30     virtual Translator *find_get_translator_l(String name, String id)=0;
31     virtual Translator *ancestor_l(int l=1)=0;
32     virtual ~Translator(){}
33     NAME_MEMBERS();
34     Translator();
35     virtual Translator *get_default_interpreter()=0;
36 };
37
38 #endif // TRANSLATOR_HH