(c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-
#include "translator.hh"
+
#include "warn.hh"
#include "translator-group.hh"
#include "context-def.hh"
#include "global-context.hh"
-#include "moment.hh"
-#include "context.hh"
-#include "ly-smobs.icc"
+#include "ly-smobs.icc"
Translator::~Translator ()
{
void
Translator::init ()
{
+ must_be_last_ = false;
self_scm_ = SCM_EOL;
- simple_trans_list_ = SCM_BOOL_F;
- daddy_context_ =0;
+ daddy_context_ = 0;
smobify_self ();
}
init ();
}
-Translator::Translator (Translator const &)
+Translator::Translator (Translator const &src)
{
init ();
+ must_be_last_ = src.must_be_last_;
}
bool
return daddy_context_->now_mom ();
}
-Music_output_def *
+Output_def *
Translator::get_output_def () const
{
return daddy_context_->get_output_def ();
Translator_group*
Translator::get_daddy_translator () const
{
- Translator *t
- = unsmob_translator (daddy_context_->implementation_);
- return dynamic_cast<Translator_group*> (t);
+ return daddy_context_->implementation ();
}
/*
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.)
Translator::mark_smob (SCM sm)
{
Translator * me = (Translator*) SCM_CELL_WORD_1 (sm);
- return me->simple_trans_list_;
+ me->derived_mark ();
+ return SCM_EOL;
}
SCM
IMPLEMENT_SMOBS (Translator);
IMPLEMENT_DEFAULT_EQUAL_P (Translator);
-IMPLEMENT_TYPE_P(Translator,"ly:translator?");
+IMPLEMENT_TYPE_P (Translator,"ly:translator?");
+
+bool
+Translator::must_be_last () const
+{
+ return must_be_last_;
+}
+
+void
+Translator::derived_mark () const
+{
+
+}