2 translator-ctors.cc -- implement Translator construction
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
11 #include "translator.hh"
12 #include "dictionary.hh"
15 Dictionary<Translator*> *global_translator_dict_p=0;
18 add_translator (Translator *t)
20 if (!global_translator_dict_p)
21 global_translator_dict_p = new Dictionary<Translator*>;
23 global_translator_dict_p->elem (t->name ()) = t;
27 get_translator_l (String s)
29 if (global_translator_dict_p->elt_b (s))
31 return (*global_translator_dict_p)[s];
34 error (_("Unknown translator `") + s +"\'");
38 Array<Translator_ctor> *ctor_global_static_arr_p_;
42 Very special greetings go out to Steve Jobs for creating a system
43 that doesn't handle global construction correctly.
46 add_constructor (Translator_ctor c)
48 if (!ctor_global_static_arr_p_)
49 ctor_global_static_arr_p_ = new Array<Translator_ctor>;
50 ctor_global_static_arr_p_->push (c);
56 for (int i=0; i < ctor_global_static_arr_p_->size (); i++)
57 add_translator (ctor_global_static_arr_p_->elem (i) ());