public void dumpInstruction(TabbedPrintWriter writer)
			throws java.io.IOException {
		boolean needBrace = thenBlock.needsBraces();
		writer.print("if (");
		cond.dumpExpression(writer.EXPL_PAREN, writer);
		writer.print(")");
		if (needBrace)
			writer.openBrace();
		else
			writer.println();
		writer.tab();
		thenBlock.dumpSource(writer);
		writer.untab();
		if (elseBlock != null) {
			if (needBrace)
				writer.closeBraceContinue();

			if (elseBlock instanceof IfThenElseBlock
					&& (elseBlock.declare == null || elseBlock.declare
							.isEmpty())) {
				needBrace = false;
				writer.print("else ");
				elseBlock.dumpSource(writer);
			} else {
				needBrace = elseBlock.needsBraces();
				writer.print("else");
				if (needBrace)
					writer.openBrace();
				else
					writer.println();
				writer.tab();
				elseBlock.dumpSource(writer);
				writer.untab();
			}
		}
		if (needBrace)
			writer.closeBrace();
	}