-void
-Translator_group::start_translation_timestep ()
-{
- each (&Translator::post_move_processing);
-}
-
-void
-Translator_group::do_announces ()
-{
- each (&Translator::announces);
-}
-
-void
-Translator_group::initialize ()
-{
- each (&Translator::initialize);
-}
-
-void
-Translator_group::finalize ()
-{
- each (&Translator::removal_processing);
-}
-
-
-bool
-type_check_assignment (SCM val, SCM sym, SCM type_symbol)
-{
- bool ok = true;
- SCM type_p = SCM_EOL;
-
- if (gh_symbol_p(sym))
- type_p = scm_object_property (sym, type_symbol);
-
- if (type_p != SCM_EOL && !gh_procedure_p (type_p))
- {
- warning (_f ("Can't find property type-check for `%s'. Perhaps you made a typing error?",
- ly_symbol2string (sym).ch_C ()));
- }
- else
- {
- if (val != SCM_EOL
- && gh_procedure_p (type_p)
- && gh_call1 (type_p, val) == SCM_BOOL_F)
- {
- ok = false;
- SCM typefunc = scm_eval2 (ly_symbol2scm ("type-name"), SCM_EOL);
- SCM type_name = gh_call1 (typefunc, type_p);
- warning (_f ("Failed typecheck for `%s', value `%s' must be of type `%s'",
- ly_symbol2string (sym).ch_C (),
- ly_scm2string (ly_write2scm( val)).ch_C (),
- ly_scm2string (type_name).ch_C ()));
- }