2 type-swallow-engraver.hh -- declare Type_swallow_translator
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #ifndef TYPESWALLOW_GRAV_HH
11 #define TYPESWALLOW_GRAV_HH
13 #include "translator.hh"
15 /// eat a certain type of request
16 class Type_swallow_translator : public virtual Translator
19 const type_info * type_;
20 bool do_try_request (Request*);
22 DECLARE_MY_RUNTIME_TYPEINFO;
23 TRANSLATOR_CLONE(Type_swallow_translator);
24 Type_swallow_translator ();
27 #define DECLARE_REQUEST_SWALLOWER(TYPE) \
28 struct TYPE ## _swallow_translator : public Type_swallow_translator {\
29 TYPE ## _swallow_translator() { \
30 type_ = &typeid (TYPE);\
32 DECLARE_MY_RUNTIME_TYPEINFO;\
33 TRANSLATOR_CLONE(TYPE ## _swallow_translator);\
35 IMPLEMENT_IS_TYPE_B1(TYPE ## _swallow_translator, Type_swallow_translator);\
36 ADD_THIS_TRANSLATOR(TYPE ## _swallow_translator);\
38 #endif // TYPESWALLOW_GRAV_HH