private void button6_Click(object sender, EventArgs e) { if (numeroExpresion >= 0) { if (ExpresionRegular[numeroExpresion, 1] != null) { AFND automata = new AFND(ExpresionRegular[numeroExpresion, 1]); automata.convertidorPolacaSimplificada(); //GRaficar el AFD GraficarAFD gaficar = new GraficarAFD(AFD.getTablaAFD(), Transformador.getTablaAceptaciones()); gaficar.Graficar(); gaficar.abrirgrafo(); MostrarImagen(); mostrarEnTabla(AFD.getTablaAFD()); VerificadorDeLexemas vl = new VerificadorDeLexemas(); richTextBox1.Text = vl.validarLexema(Analisador_Lexico.getLexemas(), AFD.getTablaAFD(), Analisador_Lexico.getConjuntos(), Transformador.getTablaAceptaciones(), ExpresionRegular[numeroExpresion, 0]); AFD.setTablaAFD_Resetear(); AFND.setTablaDeS_Resetear(); Transformador.setTablaAceptacionBorrar(); } } numeroExpresion++; }
public void convertidorPolacaSimplificada() { int estadoInicio = 0; //Iniciamos en el estado 0 int estadoPrincipal = 0; //Estado en elque nos encontramos char caracter; //Caracter de concatenacion for (estadoInicio = 0; estadoInicio < ExpresionRegular.Length; estadoInicio++) { caracter = ExpresionRegular[estadoInicio]; switch (estadoPrincipal) { case 0: switch (caracter) { case '.': ExpresionR += "."; break; case '+': ExpresionR += "+"; break; case '?': ExpresionR += "?"; break; case '|': ExpresionR += "|"; break; case '*': ExpresionR += "*"; break; case '"': estadoPrincipal = 1; break; case '{': estadoPrincipal = 2; break; } break; case 1: if (caracter != '"') { ExpresionAux += caracter; } else { //estadoInicio = estadoInicio - 1; GuardarCadena(Convert.ToChar(numeroDeCadenayConjunto).ToString(), ExpresionAux); //Gaurdar en tabla ExpresionAux = ""; //Vaciar cadena estadoPrincipal = 0; //regresa al estado 0 } break; case 2: if (caracter != '}') { ExpresionAux += caracter; } else { //estadoInicio = estadoInicio - 1; GuardarCadena(Convert.ToChar(numeroDeCadenayConjunto).ToString(), ExpresionAux); //Guardar en tabla ExpresionAux = ""; //Vaciar cadena estadoPrincipal = 0; //regresa al estado 0 } break; } } RellenarMatriz(); Console.WriteLine(ExpresionR); do { CrearTablaAFND(ExpresionR); Console.WriteLine(ExpresionR); } while (ExpresionR.Length > 2); Console.WriteLine("--------------------------"); RecorrarArreglo <string>(TablaAFND); Console.WriteLine("----------ESSS-----"); RecorrarArreglo <string>(TabladeS); Transformador tranformarAFND = new Transformador(TablaAFND); tranformarAFND.CreacionDeTablas(); //Limpiador(); //Limpiamos todo }