from curses.ascii import isdigit from zeroconf import instance_name_from_service_info file_list = [('ectrl.txt', '.ECtrl'), ('exc.txt', ''), ('global.txt', ''), ('mctrl0.txt', '.MCtrl0'), ('mctrl1.txt', '.MCtrl1'), ('pcs.txt', ''), ('privilege.txt', ''), ('trap.txt', '.Trap'), ('wctrl.txt', '.WCtrl')] mp = {} inst_name = {} for fi, subname in file_list: with open(fi) as f: lines = f.readlines() title = lines[0].split() items = [item.split() for item in lines[1:]] for item in items: for i in range(1, len(title)): if title[i][-1].isdigit() and title[i] not in ['RS0', 'DP0', 'DP1']: continue if item[i] == '?': continue inst = item[0] inst_name[inst] = ' '.join(item[len(title)+1:]) signal_name = 'ctrl' + subname + '.' + title[i] if inst not in mp: mp[inst] = [(signal_name, item[i])] else: mp[inst].append((signal_name, item[i])) for inst in mp: print(f'case {inst}: begin /* {inst_name[inst]} */') for sig in mp[inst]: print(f' {sig[0]} = {sig[1]}') print('end')