| 406 | return struct |
| 407 | |
| 408 | def parse_enum(self, child): |
| 409 | tag = child.tag[40:] |
| 410 | enum = Enum() |
| 411 | for k, v in child.items(): |
| 412 | if k == 'Name': |
| 413 | enum.name = v |
| 414 | elif k == 'LengthInBits': |
| 415 | enum.uatype = f'UIntv{v}' |
| 416 | else: |
| 417 | print(f'Unknown attr for enum: {k}') |
| 418 | for el in child: |
| 419 | tag = el.tag[40:] |
| 420 | if tag == 'EnumeratedValue': |
| 421 | ev = EnumValue() |
| 422 | for k, v in el.attrib.items(): |
| 423 | if k == 'Name': |
| 424 | ev.name = v |
| 425 | elif k == 'Value': |
| 426 | ev.value = v |
| 427 | else: |
| 428 | print(f'Unknown field attrib: {k}') |
| 429 | enum.values.append(ev) |
| 430 | elif tag == 'Documentation': |
| 431 | enum.doc = el.text |
| 432 | else: |
| 433 | print(f'Unknown enum tag: {tag}') |
| 434 | return enum |
| 435 | |
| 436 | |
| 437 | # "def reorder_extobjects(model): |