]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/acceptor.hh
release: 0.0.74pre
[lilypond.git] / lily / include / acceptor.hh
1 /*
2   acceptor.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 ACCEPTOR_HH
11 #define ACCEPTOR_HH
12 #error
13
14 #include "string.hh"
15 #include "lily-proto.hh"
16 #include "interpreter.hh"
17 #include "virtual-methods.hh"
18
19 class Translator {
20 public:
21     String id_str_;
22     
23     int iterator_count_;
24     
25     virtual Interpreter * interpreter_l() { return 0; }
26
27     /// Score_engraver = 0, Staff_engravers = 1, etc)
28     virtual int depth_i()const=0;
29     virtual Translator *find_get_translator_l(String name, String id)=0;
30     virtual Translator *ancestor_l(int l=1)=0;
31     virtual ~Translator(){}
32     NAME_MEMBERS();
33     Translator();
34     virtual Translator *get_default_interpreter()=0;
35 };
36
37 class Interpreter : public virtual Translator {
38 public:
39     virtual bool interpret_request_b(Request*) { return false;}
40 };
41 #endif // ACCEPTOR_HH