+typedef void (Translator:: *Translator_method) (void);
+typedef void (Translator_group:: *Translator_group_method) (void);
+typedef void (*Translator_group_void_method) (Translator_group *);
+
+struct Translator_method_binding
+{
+ Translator *translator_;
+ Translator_void_method_ptr method_;
+
+ Translator_method_binding ()
+ {
+ }
+ Translator_method_binding (Translator *tr, Translator_void_method_ptr ptr)
+ {
+ translator_ = tr;
+ method_ = ptr;
+ }
+ void invoke ()
+ {
+ if (method_)
+ (*method_) (translator_);
+ }
+};
+
+class Translator_group
+{
+private:
+ void precompute_method_bindings ();
+ Array<Translator_method_binding>
+ precomputed_method_bindings_[TRANSLATOR_METHOD_PRECOMPUTE_COUNT];
+
+ Translator_group_void_method
+ precomputed_self_method_bindings_[TRANSLATOR_METHOD_PRECOMPUTE_COUNT];