X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftranslator.cc;h=17c9ab38c250e6a30476b577b6e69c4e10905beb;hb=fe2ea684b9dcdd98146d608a43e27acc881ff3cd;hp=90cf7f7e34b7d172df156938e53fea2a590dc24f;hpb=3f4fd6fd3233834792fa9529028a5d75bd36e48c;p=lilypond.git diff --git a/lily/translator.cc b/lily/translator.cc index 90cf7f7e34..17c9ab38c2 100644 --- a/lily/translator.cc +++ b/lily/translator.cc @@ -3,16 +3,17 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2003 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ #include "translator.hh" #include "warn.hh" #include "translator-group.hh" -#include "translator-def.hh" - +#include "context-def.hh" +#include "global-context.hh" #include "moment.hh" +#include "context.hh" #include "ly-smobs.icc" @@ -23,34 +24,33 @@ Translator::~Translator () void Translator::init () { + must_be_last_ = false; + self_scm_ = SCM_EOL; simple_trans_list_ = SCM_BOOL_F; - trans_group_list_ = SCM_EOL; - properties_scm_ = SCM_EOL; - definition_ = SCM_EOL; - daddy_trans_ =0; + daddy_context_ =0; + smobify_self (); } -Translator::Translator () +void +Translator::do_announces () { - self_scm_ = SCM_EOL; - init (); - output_def_ = 0; - smobify_self (); } -Translator::Translator (Translator const &s) +void +Translator::process_music () { - self_scm_ = SCM_EOL; - init (); - output_def_ = s.output_def_; + +} - smobify_self (); +Translator::Translator () +{ + init (); } -bool -Translator::is_alias (SCM sym) const +Translator::Translator (Translator const &src) { - return unsmob_translator_def (definition_)->is_alias (sym); + init (); + must_be_last_ = src.must_be_last_; } bool @@ -63,35 +63,38 @@ Translator::try_music (Music *) Moment Translator::now_mom () const { - return daddy_trans_->now_mom (); + return daddy_context_->now_mom (); } -void -Translator::do_announces () +Output_def * +Translator::get_output_def () const { + return daddy_context_->get_output_def (); } -Music_output_def * -Translator::get_output_def () const + +Translator_group* +Translator::get_daddy_translator () const { - return output_def_; + return daddy_context_->implementation (); } + SCM Translator::internal_get_property (SCM sym) const { - return daddy_trans_->internal_get_property (sym); + return daddy_context_->internal_get_property (sym); } void -Translator:: stop_translation_timestep () +Translator::stop_translation_timestep () { } /* this function has 2 properties - - It is called before try_music() + - It is called before try_music () - It is called before any user information enters the translators. (i.e. any \property or event is not processed yet.) @@ -122,12 +125,7 @@ SCM Translator::mark_smob (SCM sm) { Translator * me = (Translator*) SCM_CELL_WORD_1 (sm); - scm_gc_mark (me->simple_trans_list_); - scm_gc_mark (me->trans_group_list_); - scm_gc_mark (me->definition_); - scm_gc_mark (me->properties_scm_); - - return me->properties_scm_; + return me->simple_trans_list_; } SCM @@ -136,6 +134,21 @@ Translator::translator_description () const return SCM_EOL; } + +Global_context * +Translator::get_global_context () const +{ + return daddy_context_ ->get_global_context (); +} + + +Score_context * +Translator::get_score_context () const +{ + return daddy_context_->get_score_context (); +} + + SCM Translator::static_translator_description ()const { @@ -145,10 +158,11 @@ Translator::static_translator_description ()const IMPLEMENT_SMOBS (Translator); IMPLEMENT_DEFAULT_EQUAL_P (Translator); -IMPLEMENT_TYPE_P(Translator,"ly:translator?"); +IMPLEMENT_TYPE_P (Translator,"ly:translator?"); -SCM -Translator::get_simple_trans_list() +bool +Translator::must_be_last () const { - return SCM_EOL; + return must_be_last_; } +