- ext_factory(ext_elem.attrib['name'],
- number=int(ext_elem.attrib['number']))
+ extension = ext_factory(ext_elem.attrib['name'],
+ number=int(ext_elem.attrib['number']))
+
+ for value in ext_elem.findall('./require/enum[@extends]'):
+ enum = enum_factory.get(value.attrib['extends'])
+ if enum is None:
+ continue
+ if 'value' in value.attrib:
+ enum.add_value(value.attrib['name'],
+ value=int(value.attrib['value']))
+ else:
+ error = 'dir' in value.attrib and value.attrib['dir'] == '-'
+ enum.add_value(value.attrib['name'],
+ extension=extension,
+ offset=int(value.attrib['offset']),
+ error=error)
+