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.")
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])
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])
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])