- { \
- return static_get_acknowledger (sym); \
- } \
- static Engraver_void_function_engraver_grob_info static_get_acknowledger (SCM sym);
+ { \
+ return static_get_acknowledger (sym); \
+ } \
+ virtual Engraver_void_function_engraver_grob_info get_end_acknowledger (SCM sym) \
+ { \
+ return static_get_end_acknowledger (sym); \
+ } \
+ /* end #define */
+
+#define TRANSLATOR_DECLARATIONS(NAME) \
+ TRANSLATOR_DECLARATIONS_NO_LISTENER(NAME) \
+private: \
+ static translator_listener_record *listener_list_; \
+public: \
+ virtual translator_listener_record *get_listener_list () const \
+ { \
+ return listener_list_; \
+ } \
+ /* end #define */
+
+#define DECLARE_TRANSLATOR_LISTENER(m) \
+public: \
+inline void listen_ ## m (Stream_event *); \
+/* Should be private */ \
+static void _internal_declare_ ## m (); \
+private: \
+ static Listener _get_ ## m ## _listener (void *, SCM); \
+DECLARE_LISTENER (_listen_scm_ ## m);