]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/input-translator.hh
release: 0.1.7
[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 /** Define a intereter for music. This is an runtime interface to the
28  typesystem */
29 class Input_translator : public Input { 
30 public:
31     Input_translator_list contains_itrans_p_list_;
32     Array<String> consists_str_arr_;
33     Array<String> alias_str_arr_;
34     String base_str_;
35     String type_str_;
36     String default_id_str_;
37
38     void add(Input_translator *);
39     bool is_name_b(String);
40     bool accept_req_b();
41     bool accepts_b(String);
42     void print() const;
43     Engraver_group_engraver * get_group_engraver_p();
44     Performer_group_performer * get_group_performer_p();
45     Input_translator * get_default_itrans_l();
46     Input_translator * recursive_find(String nm);
47     Input_translator * find_itrans_l(String nm);    
48 };
49 Engraver* get_engraver_p(String);
50 Performer* get_performer_p(String);
51
52 #endif // Input_translator_HH