Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions svdmmap.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,27 @@
import sys
import copy
import xml.etree.ElementTree as ET
from xml.etree.ElementTree import Element

from typing import List

def iter_clusters(ptag):
def iter_clusters(ptag: Element) -> List[Element]:
registers = ptag.find('registers')
if registers is None:
return []
else:
return registers.findall('cluster')


def iter_registers(ptag):
def iter_registers(ptag: Element) -> List[Element]:
registers = ptag.find('registers')
if registers is None:
return []
else:
return registers.findall('register')


def iter_fields(rtag):
def iter_fields(rtag: Element) -> List[Element]:
fields = rtag.find('fields')
if fields is None:
return []
Expand Down Expand Up @@ -82,7 +84,7 @@ def get_int(node, tag, default=None):
return int(text, 10)


def expand_dim(node):
def expand_dim(node: Element):
"""
Given a node (a cluster or a register) which may have a `dim` child,
returns an expanded list of all such nodes with '%s' in the name replaced
Expand All @@ -95,16 +97,16 @@ def expand_dim(node):
inc = get_int(node, 'dimIncrement')
idxs = get_string(node, 'dimIndex')
if idxs is None:
idxs = list(range(dim))
idxs = range(int(dim))
else:
if "," in idxs:
idxs = idxs.split(",")
elif "-" in idxs:
li, ri = idxs.split("-")
idxs = list(range(int(li), int(ri)+1))
idxs = range(int(li), int(ri) + 1)
else:
raise ValueError("Unknown dimIndex: '{idxs}'".format(**locals()))
nodes = []
nodes: List[Element] = []
for cnt, idx in enumerate(idxs):
name = get_string(node, 'name').replace("%s", str(idx))
dim_node = copy.deepcopy(node)
Expand Down