예제 #1
0
"""
Tests:
"""
fsm = Automata(states, alphabet, transitions, start, accept)
fsm1 = copy.deepcopy(fsm)
print("Original states:")
print_tst(states, alphabet, transitions, start, accept)
# simple_tst(states, alphabet, transitions, start, accept)

print("Automata to next tests: ")
# fsm1.addtransition({'q0' : ['b', 'q3']})
print_fsm(fsm1)
letter = "b"
walk_tst(fsm1, letter)
word = "aababcc"
fsm1.actual_state = fsm1.states[0]
detect_tst(fsm1, word)
print("Now we know that automata is not deterministic, we need detereminize it!")
fsm_original = copy.deepcopy(fsm)
fsm2 = fsm.determinize()
print("Non-deterministic automata:")
print_fsm(fsm_original)
print("Deterministic one equivalent:")
print_fsm(fsm2)

# test for RegEx
print("If we want a Regular Expression of the automata, here it is:")
regular_expression = fsm2.toRegEx()
print("RegEx:", regular_expression)
예제 #2
0
def print_fsm(fsm):
    print_tst(fsm.states,fsm.alphabet,fsm.transitions,fsm.start,fsm.accept)
        
"""
Tests:
"""
fsm = Automata(states, alphabet, transitions, start, accept)

print("Original states:")
print_fsm(fsm)

print("Is deterministic?",fsm.isdeterministic())
print("Now we know that automata is not deterministic, we need detereminize it!")

fsmD = fsm.determinize()

print("Here is the determinized automata:")
print_fsm(fsmD)

print("If we want a Regular Expression of the automata, here it is:")
regular_expression = fsmD.toRegEx()
print("RegEx:", regular_expression)

# test to RegGra
print("Regular Grammar test:")
regular_grammar = fsmD.toRegGra()
print("toRegGra:", regular_grammar)
print("And to a FSM again!")
new_automata = fsmD.fromRegGraToAutomata(regular_grammar, states[0])
print("Automata:")