+Global_context *
+Translator::get_global_context () const
+{
+ return daddy_context_->get_global_context ();
+}
+
+Context *
+Translator::get_score_context () const
+{
+ return daddy_context_->get_score_context ();
+}
+
+const char * const Translator::type_p_name_ = "ly:translator?";
+
+bool
+Translator::must_be_last () const
+{
+ return false;
+}
+
+void
+Translator::derived_mark () const
+{
+}
+
+int
+Translator::print_smob (SCM port, scm_print_state *) const
+{
+ scm_puts ("#<Translator ", port);
+ scm_puts (class_name (), port);
+ scm_puts (" >", port);
+ return 1;
+}
+
+void
+add_acknowledger (SCM ptr,
+ char const *func_name,
+ SCM &ack_hash)
+{
+ if (SCM_UNBNDP (ack_hash))
+ ack_hash = Scheme_hash_table::make_smob ();
+
+ string interface_name (func_name);
+
+ interface_name = replace_all (&interface_name, '_', '-');
+ interface_name += "-interface";
+
+ unsmob<Scheme_hash_table> (ack_hash)
+ ->set (ly_symbol2scm (interface_name.c_str ()), ptr);
+}
+