void (TableRenderer table, StringBuilder result) { if (table.rows.isEmpty()) return; RenderingContext context = computeRenderingContext(table); int rowsNumber = countColumnNumber(table); result.append("<table>"); for (TableRow row : table.rows) { result.append("<tr>"); if (row instanceof TextRenderer) { StringBuilder rowText = new StringBuilder(); renderText((TextRenderer) row, rowText); tdColspan(result, rowText.toString(), rowsNumber); } if (row instanceof DescriptorRow) { tdSpace(result); tdRightBoldColspan(result, 2, DESCRIPTOR_IN_TABLE.render(((DescriptorRow) row).descriptor, context)); } if (row instanceof FunctionArgumentsRow functionArgumentsRow) { renderFunctionArguments(functionArgumentsRow.receiverType, functionArgumentsRow.argumentTypes, functionArgumentsRow.isErrorPosition, result, context); } result.append("</tr>"); } result.append("</table>"); }