void SelfTranslator::generate(Generator& generator, const std::string& name) const { generator.handle_function_definition_parameter_type_begin(); generator.handle_type(Constants::objref); generator.handle_function_definition_parameter_type_end(); generator.handle_function_definition_parameter_name_begin(); generator.handle_identifier("self"); generator.handle_function_definition_parameter_name_end(); std::map<std::string, ParameterList>::const_iterator parameters(m_parameters.find(name)); if (parameters == m_parameters.end()) return; for (ParameterList::const_iterator param = parameters->second.begin(); param != parameters->second.end(); ++param) { generator.handle_function_definition_parameter_type_begin(); generator.handle_type(param->first); generator.handle_function_definition_parameter_type_end(); generator.handle_function_definition_parameter_name_begin(); generator.handle_identifier(param->second); generator.handle_function_definition_parameter_name_end(); } }