arq = open(arquivo_descricao) lines = arq.readlines() arq.close() dados = {} dados['alfabeto_entrada'] = [x.strip() for x in lines[0].split(' ')] dados['simbolo_epsilon'] = lines[1].strip() dados['estados'] = [x.strip() for x in lines[2].split(' ')] dados['estado'] = lines[3].strip() dados['estados_finais'] = [x.strip() for x in lines[4].split(' ')] dados['transicoes'] = [] for line in lines[5:]: transition = {} tmp = line.split(' ') transition['estadoAtual'] = tmp[0].strip() transition['simboloCorrente'] = tmp[1].strip() transition['estadoDestino'] = tmp[2].strip() dados['transicoes'].append(transition) return dados if __name__ == "__main__": dados = readlines(sys.argv[1]) machine = Maquina( dados, sys.argv[2] ) ## cria uma Maquina passando os dados e a entrada fornecida machine.run() ## começa executar
spliteds = line.split(' ') transitions = { 'estado_atual': spliteds[0], 'simbolo_corrente': spliteds[1], 'pop_pilha': [sin for sin in spliteds[2] ], #lista com os caracteres no topo da pilha 'estado_destino': spliteds[3], 'push_pilha': [sin for sin in spliteds[4] ] # lista com os caracteres que serão colocados na pilha } dados['transicoes'].append(transitions) return dados if __name__ == "__main__": if len(sys.argv) < 3: ## verificacao de parametros print( "Chamada de execução:\n\t\t\t$ ./main.py config.txt \"entrada\"\n") exit(1) configuracoes = readlines(sys.argv[1]) ## leitura machine = Maquina(configuracoes, sys.argv[2].strip('"')) ## instanciacao de maquina exit(machine.run() ) ## executar metodo run que devolve o retorno do programa