Ejemplo n.º 1
0
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();
  }
}