- Translator * g = get_translator (translator_group_type_);
- g = g->clone ();
-
- g->simple_trans_list_ = SCM_EOL;
-
- for (SCM s = trans_names; ly_c_pair_p (s) ; s = ly_cdr (s))
- {
- Translator * t = get_translator (ly_car (s));
- if (!t)
- warning (_f ("can't find: `%s'", s));
- else
- {
- Translator * tr = t->clone ();
- SCM str = tr->self_scm ();
- g->simple_trans_list_ = scm_cons (str, g->simple_trans_list_);
- tr->daddy_context_ = tg;
- scm_gc_unprotect_object (str);
- }
- }
-
-
-
- tg->implementation_ = g->self_scm ();
- if (dynamic_cast<Engraver*> (g))
- g->simple_trans_list_ = filter_performers (g->simple_trans_list_);
- else if (dynamic_cast<Performer*> (g))
- g->simple_trans_list_ = filter_engravers (g->simple_trans_list_);
-
- g->daddy_context_ = tg;
- tg->aliases_ = context_aliases_ ;
-
- scm_gc_unprotect_object (g->self_scm ());
-
- tg->accepts_list_ = get_accepted (ops);
-
- return tg;
-}
-
-
-SCM
-Context_def::clone_scm () const
-{
- Context_def * t = new Context_def (*this);
-
- SCM x = t->self_scm ();
- scm_gc_unprotect_object (x);
- return x;