示例#1
0
    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
示例#2
0
        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