Public fields added:
values contains a list of (name, value) tuples. value is empty, or a number.
+ bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number.
'''
def __init__(self, name, elt):
SimpleType.__init__(self, name, 4)
self.values = []
+ self.bits = []
for item in list(elt):
# First check if we're using a default value
if len(list(item)) == 0:
if value.tag == 'value':
self.values.append((item.get('name'), value.text))
elif value.tag == 'bit':
- # XXX replace this with a simple number, please.
- self.values.append((item.get('name'), '(1 << %s)' % value.text))
+ self.values.append((item.get('name'), '%u' % (1 << int(value.text, 0))))
+ self.bits.append((item.get('name'), value.text))
def resolve(self, module):
self.resolved = True
Type.__init__(self, tcard8.name)
self.is_pad = True
self.size = 1
- self.nmemb = 1 if (elt == None) else int(elt.get('bytes'))
+ self.nmemb = 1 if (elt == None) else int(elt.get('bytes'), 0)
def resolve(self, module):
self.resolved = True