JSFiddle - React, Tailwind, and code Playground

by Klawztro

JavaScript

function AfndToAfd() {
    this.state_ident = '__constructor__';
    this.final_signal = '_final';
    this.init_signal = '_initial';
    this.state_base_name = 'q';
};

/**
    Algoritmo para converção:
        Recebe estado inicial.
        Gera os testes para este estado (Estado x funcao_1 , estado x funcao_2, etc
        Enquanto houverem testes:
            Executa teste, e verifica o estado resultante.
            O conjunto de estados resultante não existe na máquina? Sim:
                Cria um novo estado.
                Adiciona estado na lista de estados.
                Armazene seu índice.
                Cria testes para este novo estado.
                Adiciona testes na lista de testes.
                
            Não:
                Identifique o indice do estado
            Define resultado do teste como sendo o índice.
        Fim Enquanto.
            
        Estrutura do estado:
        {
            state_ident : String,
            estado : [ ] //Lista de estados que ele representa.
        }
            
*/
AfndToAfd.prototype.convert = function(lista_letras,estado_inicial) {
    var nova_maquina = [],
        state_name_counter = 0,
        ident = this.state_ident,
        final_signal = this.final_signal,//'final',
        init_signal = this.init_signal,// 'initial',
        addTests = this.addTests,
        getStateIndex = this.getStateIndex,  
        stateGenerate = this.stateGenerate,
        state_base_name = this.state_base_name,
        test_list = [];

    nova_maquina[0] = { estado :  [estado_inicial], nome : state_base_name + state_name_counter };   
    nova_maquina[0][init_signal] = true;
    test_list = addTests(test_list,nova_maquina[0].estado,lista_letras);
    state_name_counter++;
    
    for (var cont = 0; cont < test_list.length; cont++) {
        var test = test_list[cont],
            result_state_index = 0,
            index_estado_testado = 0,
            estado = test.estado,
            letra =...