Beispiel #1
0
    #display(Image(filename=#imagename))

    # Incrementa o contador de grafos
    graph_counter = graph_counter + 1

    # ----- PASSO III: Verifica se existem concatenações de linguagens -----

    # Vetores para armazenar as novas transições a serem inseridas e as transições existentes a serem deletadas
    new_transitions = []
    to_delete_transitions = []

    # Para cada transição, verifica se ela não é concatenação de linguagens
    for transition in Machine.transitions:

        # Verifica se uma transição é concatenação de linguagens
        parsed_label = Machine.concatenation_parser(transition.label)

        # Se for, seleciona os novos estados e transições à serem adicionados
        if len(parsed_label) > 1:

            # Pega o número de nós na NFA atualmente (para saber nomear os novos nós)
            node_count = Machine.get_node_count()

            # Para cada linguagem, adiciona um novo estado (nó)
            for i in range(len(parsed_label) - 1):

                # Cria o novo estado
                number = node_count + i
                label = 'S' + str(number)
                new_state = State(label)