def _nao_terminal(self, estado, terminal, nao_term): flag = False tem_nao_term = False indice = 0 rotulo = 0 for est in self.estados: if est.rotuloGr != estado: indice += 1 if est.rotuloGr == nao_term: tem_nao_term = True rotulo = est.rotulo for prox_estado in self.estados[indice].transicoes: if prox_estado.rotulo == terminal: flag = True if tem_nao_term: if rotulo not in prox_estado.transicoes: prox_estado.transicoes.append(rotulo) else: prox_estado.transicoes.append(self._count_estado) self._add_estado(nao_term) break if not flag: transicao = Transicao() transicao.rotulo = terminal if tem_nao_term: transicao.transicoes.append(rotulo) else: transicao.transicoes.append(self._count_estado) self._add_estado(nao_term) self.estados[indice].transicoes.append(transicao)
def _terminal(self, estado, terminal): indice = 0 flag = False for est in self.estados: if est.rotuloGr == estado: break indice += 1 for prox_estado in self.estados[indice].transicoes: if prox_estado.rotulo == terminal: flag = True prox_estado.transicoes.append(self._count_estado) if not flag: transicao = Transicao() transicao.rotulo = terminal transicao.transicoes.append(self._count_estado) est = self._add_estado("") est.final = True