]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/input-translator.hh
b2883a30cf87afa0212a34f8a71b5b529b2693fd
[lilypond.git] / lily / include / input-translator.hh
1 /*
2   input-translator.hh -- declare Input_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 INPUT_TRANSLATOR_HH
11 #define INPUT_TRANSLATOR_HH
12
13 #include "plist.hh"
14 #include "string.hh"
15 #include "lily-proto.hh"
16 #include "input.hh"
17 #include "string.hh"
18 #include "varray.hh"
19
20 struct Input_translator_list : public Pointer_list<Input_translator*> 
21 {
22     Input_translator_list(Input_translator_list const &);
23     Input_translator_list(){}
24     ~Input_translator_list(){}
25 };
26
27 struct Input_translator : Input { 
28     Input_translator_list contains_itrans_p_list_;
29     Array<String> consists_str_arr_;
30     Array<String> alias_str_arr_;
31     String base_str_;
32     String type_str_;
33     String default_id_str_;
34
35     void add(Input_translator *);
36     bool is_name_b(String);
37     bool accept_req_b();
38     bool accepts_b(String);
39     void print() const;
40     Engraver_group_engraver * get_group_engraver_p();
41     Performer_group_performer * get_group_performer_p();
42     Input_translator * get_default_itrans_l();
43     Input_translator * recursive_find(String nm);
44     Input_translator * find_itrans_l(String nm);    
45 };
46 Engraver* get_engraver_p(String);
47 Performer* get_performer_p(String);
48
49 #endif // Input_translator_HH