println(" if (" + buildIsAltName(type, alt) + "(arg)) {");
print(" return " + cons_name + "(");
Iterator<Field> fields = type.altFieldIterator(alt.getId());
while (fields.hasNext()) {
Field field = fields.next();
println("");
print(" ");
String getter_name = buildGetterName(type, field);
if (field.getType().equals(type.getId())) {
String visitor_name = prefix + "visit" + type_id;
print(visitor_name + "(" + getter_name + "(arg)");
Iterator<Field> params = type.fieldIterator();
while (params.hasNext()) {
Field param = params.next();
if (!param.getType().equals(type.getId())) {
print(", ");
print("accept"
+ StringConversions
.makeCapitalizedIdentifier(param
.getId()));
}
}
print(")");
} else {