| <?xml version="1.0"?> |
| |
| <!-- |
| |
| Copyright 2008 Tungsten Graphics, Inc. |
| |
| This program is free software: you can redistribute it and/or modify it |
| under the terms of the GNU Lesser General Public License as published |
| by the Free Software Foundation, either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public License |
| along with this program. If not, see <http://www.gnu.org/licenses/>. |
| |
| !--> |
| |
| <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
| |
| <xsl:output method="html" /> |
| |
| <xsl:strip-space elements="*" /> |
| |
| <xsl:template match="/trace"> |
| <html> |
| <head> |
| <title>Gallium Trace</title> |
| </head> |
| <style> |
| body { |
| font-family: verdana, sans-serif; |
| font-size: 11px; |
| font-weight: normal; |
| text-align : left; |
| } |
| |
| .fun { |
| font-weight: bold; |
| } |
| |
| .var { |
| font-style: italic; |
| } |
| |
| .typ { |
| display: none; |
| } |
| |
| .lit { |
| color: #0000ff; |
| } |
| |
| .ptr { |
| color: #008000; |
| } |
| </style> |
| <body> |
| <ol class="calls"> |
| <xsl:apply-templates/> |
| </ol> |
| </body> |
| </html> |
| </xsl:template> |
| |
| <xsl:template match="call"> |
| <li> |
| <xsl:attribute name="value"> |
| <xsl:apply-templates select="@no"/> |
| </xsl:attribute> |
| <span class="fun"> |
| <xsl:value-of select="@class"/> |
| <xsl:text>::</xsl:text> |
| <xsl:value-of select="@method"/> |
| </span> |
| <xsl:text>(</xsl:text> |
| <xsl:apply-templates select="arg"/> |
| <xsl:text>)</xsl:text> |
| <xsl:apply-templates select="ret"/> |
| </li> |
| </xsl:template> |
| |
| <xsl:template match="arg|member"> |
| <xsl:apply-templates select="@name"/> |
| <xsl:text> = </xsl:text> |
| <xsl:apply-templates /> |
| <xsl:if test="position() != last()"> |
| <xsl:text>, </xsl:text> |
| </xsl:if> |
| </xsl:template> |
| |
| <xsl:template match="ret"> |
| <xsl:text> = </xsl:text> |
| <xsl:apply-templates /> |
| </xsl:template> |
| |
| <xsl:template match="bool|int|uint|float|enum"> |
| <span class="lit"> |
| <xsl:value-of select="text()"/> |
| </span> |
| </xsl:template> |
| |
| <xsl:template match="bytes"> |
| <span class="lit"> |
| <xsl:text>...</xsl:text> |
| </span> |
| </xsl:template> |
| |
| <xsl:template match="string"> |
| <span class="lit"> |
| <xsl:text>"</xsl:text> |
| <xsl:call-template name="break"> |
| <xsl:with-param name="text" select="text()"/> |
| </xsl:call-template> |
| <xsl:text>"</xsl:text> |
| </span> |
| </xsl:template> |
| |
| <xsl:template match="array|struct"> |
| <xsl:text>{</xsl:text> |
| <xsl:apply-templates /> |
| <xsl:text>}</xsl:text> |
| </xsl:template> |
| |
| <xsl:template match="elem"> |
| <xsl:apply-templates /> |
| <xsl:if test="position() != last()"> |
| <xsl:text>, </xsl:text> |
| </xsl:if> |
| </xsl:template> |
| |
| <xsl:template match="null"> |
| <span class="ptr"> |
| <xsl:text>NULL</xsl:text> |
| </span> |
| </xsl:template> |
| |
| <xsl:template match="ptr"> |
| <span class="ptr"> |
| <xsl:value-of select="text()"/> |
| </span> |
| </xsl:template> |
| |
| <xsl:template match="@name"> |
| <span class="var"> |
| <xsl:value-of select="."/> |
| </span> |
| </xsl:template> |
| |
| <xsl:template name="break"> |
| <xsl:param name="text" select="."/> |
| <xsl:choose> |
| <xsl:when test="contains($text, '
')"> |
| <xsl:value-of select="substring-before($text, '
')"/> |
| <br/> |
| <xsl:call-template name="break"> |
| <xsl:with-param name="text" select="substring-after($text, '
')"/> |
| </xsl:call-template> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:value-of select="$text"/> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:template> |
| |
| <xsl:template name="replace"> |
| <xsl:param name="text"/> |
| <xsl:param name="from"/> |
| <xsl:param name="to"/> |
| <xsl:choose> |
| <xsl:when test="contains($text,$from)"> |
| <xsl:value-of select="concat(substring-before($text,$from),$to)"/> |
| <xsl:call-template name="replace"> |
| <xsl:with-param name="text" select="substring-after($text,$from)"/> |
| <xsl:with-param name="from" select="$from"/> |
| <xsl:with-param name="to" select="$to"/> |
| </xsl:call-template> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:value-of select="$text"/> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:template> |
| |
| </xsl:transform> |