Example #1
0
    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)
Example #2
0
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)