self.modulename_file(id.header)))
if id.info is not None:
info = id.info
+ valhex = ""
if info[0] is not None and info[0] != '':
try:
val = eval(info[0])
+ valhex = hex(val)
except:
val = info[0]
output.write(" value='%s'" % (val))
+
+ if valhex != "":
+ output.write(" value_hex='%s'" % (valhex))
+
+ m = re.match("\(?1<<(\d+)\)?", info[0])
+ if m:
+ output.write(" value_bitshift='%s'" % (m.group(1)))
+
if info[2] is not None and info[2] != '':
output.write(" type='%s'" % info[2])
if info[1] is not None and info[1] != '':
</xsl:choose>
</xsl:template>
+ <xsl:template name="enumvalue">
+ <xsl:param name="value" select="@value"/>
+ <xsl:param name="valuehex" select="@value_hex"/>
+ <xsl:param name="valuebitshift" select="@value_bitshift"/>
+ <xsl:value-of select="@value"/>
+ <xsl:if test="$valuehex != '' or $valuebitshift != ''">
+ <xsl:text> (</xsl:text>
+ <xsl:if test="$valuehex != ''">
+ <xsl:value-of select="@value_hex"/>
+ </xsl:if>
+ <xsl:if test="$valuebitshift != ''">
+ <xsl:text>; 1 << </xsl:text>
+ <xsl:value-of select="@value_bitshift"/>
+ </xsl:if>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
<xsl:template match="typedef[@type = 'enum']">
<xsl:variable name="name" select="string(@name)"/>
<h3><a name="{$name}"><code><xsl:value-of select="$name"/></code></a></h3>
<td><xsl:text> = </xsl:text></td>
<xsl:choose>
<xsl:when test="@info != ''">
- <td><xsl:value-of select="@value"/></td>
+ <td class="enumvalue"><xsl:call-template name="enumvalue"/></td>
<td>
<div class="comment">
<xsl:call-template name="dumptext">
</td>
</xsl:when>
<xsl:otherwise>
- <td colspan="2"><xsl:value-of select="@value"/></td>
+ <td colspan="2" class="enumvalue"><xsl:call-template name="enumvalue"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>