X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fcontext-def.cc;h=f4ee43b1608fbfda98e673b9f648601ada5d3795;hb=b3cf2199183a184c7eef9a9f8f3c9a691db1f0ad;hp=d77b075322ed0433ac17a367f4ffcde327a8f5e1;hpb=6c6ae92410f087d0318a3c302eb6877cfc7fae45;p=lilypond.git diff --git a/lily/context-def.cc b/lily/context-def.cc index d77b075322..f4ee43b160 100644 --- a/lily/context-def.cc +++ b/lily/context-def.cc @@ -11,14 +11,10 @@ #include "context-def.hh" -#include "engraver-group.hh" -#include "engraver.hh" #include "international.hh" #include "output-def.hh" -#include "performer-group.hh" -#include "performer.hh" #include "score-context.hh" -#include "translator-group.hh" +#include "translator.hh" #include "warn.hh" Context_def::Context_def () @@ -143,12 +139,6 @@ Context_def::add_context_mod (SCM mod) programming_error ("unknown context mod tag"); } -SCM -Context_def::get_context_name () const -{ - return context_name_; -} - SCM Context_def::get_accepted (SCM user_mod) const { @@ -259,34 +249,6 @@ Context_def::get_translator_names (SCM user_mod) const return l1; } -SCM -filter_performers (SCM ell) -{ - SCM *tail = ℓ - for (SCM p = ell; scm_is_pair (p); p = scm_cdr (p)) - { - if (dynamic_cast (unsmob_translator (scm_car (*tail)))) - *tail = scm_cdr (*tail); - else - tail = SCM_CDRLOC (*tail); - } - return ell; -} - -SCM -filter_engravers (SCM ell) -{ - SCM *tail = ℓ - for (SCM p = ell; scm_is_pair (p); p = scm_cdr (p)) - { - if (dynamic_cast (unsmob_translator (scm_car (*tail)))) - *tail = scm_cdr (*tail); - else - tail = SCM_CDRLOC (*tail); - } - return ell; -} - Context * Context_def::instantiate (SCM ops, Object_key const *key) { @@ -298,56 +260,8 @@ Context_def::instantiate (SCM ops, Object_key const *key) context = new Context (key); context->definition_ = self_scm (); - - SCM trans_names = get_translator_names (ops); - - Translator_group *g = get_translator_group (translator_group_type_); - SCM trans_list = SCM_EOL; - - for (SCM s = trans_names; scm_is_pair (s); s = scm_cdr (s)) - { - Translator *t = get_translator (scm_car (s)); - if (!t) - warning (_f ("can't find: `%s'", ly_symbol2string (scm_car (s)).c_str ())); - else - { - Translator *tr = t->clone (); - SCM str = tr->self_scm (); - - if (tr->must_be_last ()) - { - SCM cons = scm_cons (str, SCM_EOL); - if (scm_is_pair (trans_list)) - scm_set_cdr_x (scm_last_pair (trans_list), cons); - else - trans_list = cons; - } - else - trans_list = scm_cons (str, trans_list); - - tr->daddy_context_ = context; - tr->unprotect (); - } - } - - /* - Ugh, todo: should just make a private - copy of Context_def with the user mods. - */ - - g->simple_trans_list_ = trans_list; - - context->implementation_ = g; - if (dynamic_cast (g)) - g->simple_trans_list_ = filter_performers (g->simple_trans_list_); - else if (dynamic_cast (g)) - g->simple_trans_list_ = filter_engravers (g->simple_trans_list_); - - g->context_ = context; + context->definition_mods_ = ops; context->aliases_ = context_aliases_; - - g->unprotect (); - context->accepts_list_ = get_accepted (ops); return context;