[#73220] fix handling closing brackets in SAIF parsing

This commit is contained in:
Mateusz Gancarz 2025-02-21 11:31:52 +01:00
parent 98a6e9be18
commit 249d8dadc6
1 changed files with 9 additions and 1 deletions

View File

@ -113,6 +113,7 @@ class SAIFParser:
def __init__(self):
self.top_instances = {}
self.current_instance = None
self.traversing_nets = False
def parse(self, saif_filename):
with open(saif_filename, 'r') as saif_file:
@ -135,6 +136,10 @@ class SAIFParser:
instance.parent_instance = self.current_instance
self.current_instance = instance
match = re.search(r'NET', line)
if match:
self.traversing_nets = True
match = re.search(r'((?:[\w\[\]])+)(?:\\\[(\d+)\\\])*\s+(\(T.+\))+', line)
if match:
signal_name, bit_index, bit_values = match.groups()
@ -173,7 +178,10 @@ class SAIFParser:
match = re.match(r'\s+\)\s+', line)
if match:
self.current_instance = self.current_instance.parent_instance
if self.traversing_nets:
self.traversing_nets = False
else:
self.current_instance = self.current_instance.parent_instance
#######################################################################