def optimization_if_jump(self): pivote = Quadruple() i = 0 while i < len(self.fuente): pivote = self.fuente[i] # if expBoll goto .label1 if !expBoll goto .label2 # goto .label2 instrucciones # label .label1 label .label2 # instrucciones # label .label2 if pivote.type == Quadruple.T_IF: pivote.Elem1.id = "not " + pivote.Elem1.id pivote.resultado = self.fuente[i + 1].resultado del self.fuente[i + 1] del self.fuente[i + 1] i += 1
def optimization_if_jump(self): pivote = Quadruple() i = 0 while i < len(self.fuente): pivote = self.fuente[i] # if expBoll goto .label1 if !expBoll goto .label2 # goto .label2 instrucciones # label .label1 label .label2 # instrucciones # label .label2 if pivote.type == Quadruple.T_IF: self.registro.append("Linea: " + str(pivote.line)) self.registro.append("Regla 3") self.registro.append(str(pivote)) self.registro.append(str(self.fuente[i + 1])) self.registro.append(str(self.fuente[i + 2])) pivote.Elem1.id = "not " + pivote.Elem1.id pivote.resultado = self.fuente[i + 1].resultado self.registro.append("->" + str(pivote)) del self.fuente[i + 1] del self.fuente[i + 1] i += 2