Ejemplo n.º 1
0
def main():
    parser = argparse.ArgumentParser(
        description='Argumentos para entrada de arquivo e palavra')
    parser.add_argument('-f',
                        '--filename',
                        help='Input filename',
                        required=False)
    parser.add_argument('-w', '--word', help='Input word', required=False)
    args = parser.parse_args()

    if args.filename:
        grammar_path = args.filename
    else:
        grammar_path = 'gramatica_exemplos/gramatica_exemplo_loop.txt'
    with open(grammar_path, 'r') as gf:
        grammar = gf.readline().rstrip()
    g = Grammar(grammar)
    ehValido = g.validateGrammar()

    if args.word:
        word = args.word
    else:
        word = input('Digite a palavra a ser validada: ')

    g.recognize(word)

    if ehValido:
        dfa = Automata(start_state=g.startSymbol)
        dfa.convertGrammar(g)
        dfa.convertER()
        print('A ER gerada é: ')
        print(dfa.ER)