def testMinimizeAndMatch(self): for pattern, test_case in self._getCases().items(): tree = SyntaxTree(RPN(pattern)) root_tree = tree.buildTree() followpos = root_tree.getFollowpos() drtan, nodes, start, term = root_tree.build( followpos, tree.dies_positions) dfa = DFA(drtan, nodes, start, term, root_tree.alphabet) dfa.minimize() min_dfa, min_start, min_end = dfa.build_minimized(dfa.get_equal()) for t, accepts in test_case.items(): self.assertEqual(dfa.match(min_start, min_end, min_dfa, t), accepts)
from dfa import DFA # Nome do arquivo contendo o AFD a ser lido filename = 'exemplo2.txt' # Nome do arquivo contendo a lista de palavras listname = "lista_exemplo.txt" # Cria o DFA baseado no arquivo dfa = DFA(filename) print(dfa) # Minimiza o dfa dfa.minimize() print(dfa) # Pede uma palavra para verificar se ela faz parte do AFD minimizado word = input( "Insira uma palavra para verificar se ela faz parte de ACEITA(M min): ") # Verifica se a plavra é aceita ou rejeitada dfa.verify_word(word) # Verifica uma lista de palavras dfa.verify_list(listname)
from dfa import DFA with open("input1.txt") as f: tmp = DFA() sample = f.read() tmp.constructNFA(sample) tmp.minimize() print(tmp)