l = [ "=,10,_,t1", "=,20,_,t1", "+,t1,t1,t2" ] class FourTuple: cnt =0 def __init__(self, a='_',b='_',c='_',d='_'): self.a = a self.b = b self.c = c self.d = d self.cnt = FourTuple.cnt FourTuple.cnt += 1 self.block_sign = set(['if','jmp','jmpf','el','ifend','while','fun','return','while','we','goto']) def is_block_sign(self): return self.a in self.block_sign def __str__(self): return f"({self.a} , {self.b} , {self.c} , {self.d})" class BlockDivider: def __init__(self,lst): self.ans = [] self.l =[] for i in lst: k = i.split(',') obj = FourTuple(k[0].strip(),k[1].strip(),k[2].strip(),k[3].strip()) self.l.append(obj) # print(obj) def run(self): lst = [] for i in self.l: lst.append(i) if i.is_block_sign(): self.ans.append(lst) lst = [] if lst: self.ans.append(lst) return self.ans if __name__ == '__main__': divider = BlockDivider(l) ans = divider.run() for i in ans: for j in i: print(j,end='\t') print()