-#define ADD_TRANSLATOR(classname, desc, grobs, read, write) \
- IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS (classname); \
- ADD_THIS_TRANSLATOR (classname); \
- DEFINE_TRANSLATOR_DOC(classname, desc, grobs, read, write) \
- DEFINE_ACKNOWLEDGERS(classname) \
- DEFINE_TRANSLATOR_LISTENER_LIST(classname) \
-
-#define IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(T) \
- void \
- T::fetch_precomputable_methods (Translator_void_method_ptr ptrs[]) \
- { \
- ptrs[START_TRANSLATION_TIMESTEP] = \
- ((Translator_void_method_ptr) & T::start_translation_timestep == \
- (Translator_void_method_ptr) & Translator::start_translation_timestep) \
- ? 0 \
- : (Translator_void_method_ptr) & T::start_translation_timestep; \
+#define ADD_TRANSLATOR(classname, desc, grobs, read, write) \
+ IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS (classname); \
+ DEFINE_ACKNOWLEDGERS(classname); \
+ ADD_THIS_TRANSLATOR (classname); \
+ DEFINE_TRANSLATOR_DOC(classname, desc, grobs, read, write); \
+ DEFINE_TRANSLATOR_LISTENER_LIST(classname);
+
+#define IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(T) \
+ void \
+ T::fetch_precomputable_methods (SCM ptrs[]) \
+ { \
+ ptrs[START_TRANSLATION_TIMESTEP] = \
+ method_finder <&T::start_translation_timestep> (); \