private void writeCompositeBody(Composite composite, TaskMonitor monitor)
			throws IOException, CancelledException {

		String compositeType = composite instanceof Structure ? "struct" : "union";

		StringBuilder sb = new StringBuilder();
		sb.append(compositeType + " " + composite.getDisplayName() + " {");

		String descrip = composite.getDescription();
		if (descrip != null && descrip.length() > 0) {
			sb.append(" " + comment(descrip));
		}
		sb.append(EOL);

		for (DataTypeComponent component : composite.getComponents()) {
			monitor.checkCancelled();
			writeComponent(component, composite, sb, monitor);
		}

		sb.append(annotator.getSuffix(composite, null));
		sb.append("};");

		writer.write(sb.toString());
		writer.write(EOL);
		writer.write(EOL);
	}
Writes the data type as ANSI-C using the underlying writer.
@param dt the data type to write as ANSI-C
@param monitor the task monitor
@throws IOException if there is an exception writing the output
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataTypeWriter.java