Пример #1
0
    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
Пример #2
0
 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