}
List<OpenCLPolymorphicMethod> poly_methods = m_methodHierarchies.getPolyMorphicMethods();
for(OpenCLPolymorphicMethod poly_method : poly_methods){
bodies.addAll(poly_method.getMethodBodies());
}
FieldTypeSwitch type_switch = new FieldTypeSwitch();
String field_bodies = m_fieldCodeGeneration.bodies(m_classes, type_switch);
bodies.add(field_bodies);
for(OpenCLArrayType array_type : m_arrayTypes){
bodies.add(array_type.getBodies());
}
for(OpenCLInstanceof type : m_instanceOfs){
bodies.add(type.getBody());
}
Iterator<String> iter = bodies.iterator();
ret.append(type_switch.getFunctions());
while(iter.hasNext()){
ret.append(iter.next());
}
return ret.toString();
}