Exemplo n.º 1
0
from nfa import NFA
from regex import *
from pda_parser import *

if __name__ == '__main__':

    # Obtinem string-ul care defineste Regex-ul
    input_file = open(str(sys.argv[1]), "r")
    regex_string = input_file.readline()
    input_file.close()

    # Parsam sirul pentru a obtine o instanta Regex
    parser = PDAParser(regex_string)
    regex = parser.parse(regex_string)

    # Convertim Regex-ul la NFA folosind algoritmul lui Thompson
    nfa = regex.regex_to_nfa()

    # Se scrie NFA-ul in fisier sub formatul cerut
    output_file1 = open(str(sys.argv[2]), "w")
    nfa.write_nfa_in_file(output_file1)
    output_file1.close()

    # Construim DFA-ul pe baza NFA-ului primit
    dfa = DFA()
    dfa.compute_dfa(nfa)

    # Se scrie DFA-ul in fisier sub formatul cerut
    output_file2 = open(str(sys.argv[3]), "w")
    dfa.write_dfa_in_file(output_file2)
    output_file2.close()