--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\r
+ <xsl:output method="text" />\r
+ <xsl:template match='/chapter'>\r
+ <xsl:variable name="ap"><xsl:text>'</xsl:text></xsl:variable>\r
+ <xsl:for-each select='sect1/refentry'>\r
+ <xsl:variable name='plaincomment'>\r
+ <xsl:value-of select="refnamediv/refpurpose" />\r
+ </xsl:variable>\r
+ \r
+ <xsl:variable name='comment'>\r
+ <xsl:call-template name="globalReplace">\r
+ <xsl:with-param name="outputString" select="$plaincomment"/>\r
+ <xsl:with-param name="target" select="$ap"/>\r
+ <xsl:with-param name="replacement" select="''"/>\r
+ </xsl:call-template>\r
+ </xsl:variable>\r
+\r
+ <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\r
+COMMENT ON <xsl:choose><xsl:when test="contains(paramdef/type,'geometry set')">AGGREGATE</xsl:when><xsl:otherwise>FUNCTION</xsl:otherwise></xsl:choose><xsl:text> </xsl:text> <xsl:value-of select="funcdef/function" />(<xsl:for-each select="paramdef"><xsl:choose><xsl:when test="count(parameter) > 0"> \r
+<xsl:choose><xsl:when test="contains(type,'geometry set')">geometry</xsl:when><xsl:otherwise><xsl:value-of select="type" /></xsl:otherwise></xsl:choose><xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if></xsl:when>\r
+</xsl:choose></xsl:for-each>) IS '<xsl:call-template name="listparams"><xsl:with-param name="func" select="." /></xsl:call-template> <xsl:value-of select='$comment' />';\r
+ </xsl:for-each>\r
+ </xsl:for-each>\r
+ </xsl:template>\r
+ \r
+<xsl:template name="globalReplace">\r
+ <xsl:param name="outputString"/>\r
+ <xsl:param name="target"/>\r
+ <xsl:param name="replacement"/>\r
+ <xsl:choose>\r
+ <xsl:when test="contains($outputString,$target)">\r
+ <xsl:value-of select=\r
+ "concat(substring-before($outputString,$target),\r
+ $replacement)"/>\r
+ <xsl:call-template name="globalReplace">\r
+ <xsl:with-param name="outputString" \r
+ select="substring-after($outputString,$target)"/>\r
+ <xsl:with-param name="target" select="$target"/>\r
+ <xsl:with-param name="replacement" \r
+ select="$replacement"/>\r
+ </xsl:call-template>\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ <xsl:value-of select="$outputString"/>\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="listparams">\r
+ <xsl:param name="func" />\r
+ <xsl:for-each select="$func">\r
+ <xsl:if test="count(paramdef/parameter) > 0">args: </xsl:if>\r
+ <xsl:for-each select="paramdef">\r
+ <xsl:choose>\r
+ <xsl:when test="count(parameter) > 0"> \r
+ <xsl:value-of select="parameter" />\r
+ </xsl:when>\r
+ </xsl:choose>\r
+ <xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if>\r
+ </xsl:for-each>\r
+ <xsl:if test="count(paramdef/parameter) > 0"> - </xsl:if>\r
+ </xsl:for-each> \r
+</xsl:template>\r
+\r
+\r
+</xsl:stylesheet>\r
+\r