fields = type.altFieldIterator(alt.getId()); while (fields.hasNext()) { Field field = (Field) fields.next(); String field_id = StringConversions.makeIdentifier(field.getId()); println("  get_slot(" + field_id + ",t) { " + impl.OperatorGetSlot("t", class_name, field_id) + "}"); }
if (!tomConverter.isReserved(type.getId())) { fields = type.altFieldIterator(alt.getId()); while (fields.hasNext()) { Field field = (Field) fields.next(); String field_id = StringConversions.makeIdentifier(field.getId()); println("  get_slot(" + field_id + ",t) { " + impl.OperatorGetSlot("t", class_name, field_id) + "}"); } }
	private void genTomAltOperator(Type type, Alternative alt) {		String class_name = impl.TypeName(type.getId());		String operator_name = impl.OperatorName(type.getId(), alt.getId());		print("%op " + impl.TypeName(type.getId()) + " " + operator_name);		Iterator fields = type.altFieldIterator(alt.getId());		if (fields.hasNext()) {			print("(");			while (fields.hasNext()) {				Field field = (Field) fields.next();				String field_id = impl.FieldName(field.getId());				String field_class = impl.FieldType(field.getType());				String field_type = field_class;				print(field_id + ":" + field_type);				if (fields.hasNext()) {					print(", ");				}			}			print(")");		}		println(" {");		println("  is_fsym(t) { " + prefix + impl.OperatorIsFSym("t", class_name, operator_name) + "}");		fields = type.altFieldIterator(alt.getId());		while (fields.hasNext()) {			Field field = (Field) fields.next();			String field_id = StringConversions.makeIdentifier(field.getId());			println("  get_slot(" + field_id + ",t) { " + impl.OperatorGetSlot("t", class_name, field_id) + "}");		}		String arg = "(";		int arity = type.getAltArity(alt);		for (int i = 0; i < arity; i++) {			arg += ("t" + i);			if (i < arity - 1) {				arg += ", ";			}		}		arg += ")";		println("  make" + arg + " { " + impl.OperatorMake(class_name, operator_name, arg) + "}");		println("}");		println();	}