Esempio n. 1
0
 def action_n1(self, event):
     '''Passo 1 - Conversão dos programas para o formato composto'''
     self.line_p1 = self.ltb.get('1.0', 'end-1c')
     self.line_p2 = self.rtb.get('1.0', 'end-1c')
     if (len(self.line_p1) == 0 or len(self.line_p2) == 0):
         messagebox.showinfo(icon="error",
                             title='Erro',
                             message="Um dos programas está vazio.")
     else:
         try:
             self.line_p1c = logic.translation(self.line_p1)
             self.line_p2c = logic.translation(self.line_p2)
             if (len(self.line_p1c) != 0 or len(self.line_p2c) != 0
                 ):  #corrige os números dos rótulos do segundo programa
                 self.line_p2c = logic.numCorrection(
                     self.line_p2c, len(self.line_p1c))
             self.btn.unbind_all
             self.btn.bind("<Button-1>", self.action_n2)
             self.ltb.delete('1.0', 'end')
             self.ltb.insert('1.0', logic.textFormat(self.line_p1c))
             self.ltb.configure(state=DISABLED)
             self.rtb.delete('1.0', 'end')
             self.rtb.insert('1.0', logic.textFormat(self.line_p2c))
             self.rtb.configure(state=DISABLED)
             self.retbtn.configure(state=NORMAL)
             self.retbtn.bind("<Button-1>", self.retaction_n1)
             self.lbl.configure(text=self.ltxt[1])
         except:
             messagebox.showinfo(
                 icon="warning",
                 title='Aviso',
                 message="Por favor, preencha os campos corretamente.")
Esempio n. 2
0
 def retaction_n2(self, event):
     '''Retrocede o estado do programa para o passo 1'''
     self.btn.unbind_all
     self.btn.bind("<Button-1>", self.action_n2)
     self.ltb.configure(state=NORMAL)
     self.ltb.delete('1.0', 'end')
     self.ltb.insert('1.0', logic.textFormat(self.line_p1c))
     self.ltb.configure(state=DISABLED)
     self.rtb.configure(state=NORMAL)
     self.rtb.delete('1.0', 'end')
     self.rtb.insert('1.0', logic.textFormat(self.line_p2c))
     self.rtb.configure(state=DISABLED)
     self.retbtn.unbind_all
     self.retbtn.bind("<Button-1>", self.retaction_n1)
     self.lbl.configure(text=self.ltxt[1])
Esempio n. 3
0
 def action_n4(self, event):
     '''Passo 4 - Comparação dos Programas'''
     result, works = logic.comparison(self.line_p1c, self.line_p2c)
     self.ltb.configure(state=NORMAL)
     self.ltb.delete('1.0', 'end')
     line = []
     line.extend(self.line_p1cs)
     line.extend(self.line_p2cs)
     self.ltb.insert('1.0', logic.textFormat(line))
     self.rtb.configure(state=NORMAL)
     self.rtb.delete('1.0', 'end')
     self.rtb.insert('1.0', result)
     self.ltb.insert('end', "\n# Os Programas:")
     if (works):
         self.ltb.insert('end', "\n# São fortemente equivalentes!")
         messagebox.showinfo(
             icon="info",
             title='Sucesso',
             message="Os Programas são fortemente equivalentes!")
     else:
         self.ltb.insert('end', "\n# Não são fortemente equivalentes!")
         messagebox.showinfo(
             icon="warning",
             title='Falha',
             message="Os Programas não são fortemente equivalentes!")
     self.ltb.configure(state=DISABLED)
     self.rtb.configure(state=DISABLED)
     self.btn.unbind_all
     self.btn.configure(state=DISABLED)
     self.retbtn.unbind_all
     self.retbtn.bind("<Button-1>", self.retaction_n4)
     self.lbl.configure(text=self.ltxt[4])
Esempio n. 4
0
 def action_n3(self, event):
     '''Passo 3 - Simplificação de Ciclos (se necessário)'''
     self.line_p1cs = logic.cycleSimplify(self.line_p1c, self.limit_p1, 0)
     self.line_p2cs = logic.cycleSimplify(self.line_p2c, self.limit_p2,
                                          int(len(self.line_p1c) / 5))
     self.ltb.configure(state=NORMAL)
     self.ltb.delete('1.0', 'end')
     self.ltb.insert('1.0', logic.textFormat(self.line_p1cs))
     self.ltb.configure(state=DISABLED)
     self.rtb.configure(state=NORMAL)
     self.rtb.delete('1.0', 'end')
     self.rtb.insert('1.0', logic.textFormat(self.line_p2cs))
     self.rtb.configure(state=DISABLED)
     self.btn.unbind_all
     self.btn.bind("<Button-1>", self.action_n4)
     self.retbtn.unbind_all
     self.retbtn.bind("<Button-1>", self.retaction_n3)
     self.lbl.configure(text=self.ltxt[3])