コード例 #1
0
 private void generarThompson()
 {
     //recorro la lista de ER para generar sus AFN
     for (int i = 0; i < Expresiones.Count; i++)
     {
         ExpReg temp = (ExpReg)Expresiones[i];
         temp.generarT();
     }
 }
コード例 #2
0
        private void guardarER()
        {
            String name = "";
            //Bandera si encontro un id donde si esta la ER
            Boolean bandera = false;

            ExpReg temp = null;
            Token  salida;
            Token  temporal;
            Token  temporal1;
            Token  temporal2;

            for (int i = 0; i < simbolos.Count - 3; i++)
            {
                salida = (Token)simbolos[i];
                if (salida.getToken() == 5)
                {
                    temporal  = (Token)simbolos[i - 2];
                    temporal1 = (Token)simbolos[i + 2];
                    temporal2 = (Token)simbolos[i + 3];
                    if (temporal.getToken() != 20 && temporal1.getToken() != 11 && temporal2.getToken() != 10 && !bandera)
                    {
                        name    = salida.getLexema();
                        bandera = true;
                        i++;

                        temp = new ExpReg(name);
                    }
                }
                if (bandera)
                {
                    if (salida.getToken() == 10)
                    {
                        expresiones.Add(temp);

                        bandera = false;
                    }
                    else
                    {
                        if (salida.getToken() == 3 || salida.getToken() == 4)
                        {
                            //ignora
                        }
                        else
                        {
                            temp.addToken(salida);
                        }
                    }
                }
            }
        }
コード例 #3
0
 private void generarThompson()
 {
     try
     {
         for (int i = 0; i < expresiones.Count; i++)
         {
             ExpReg temp = (ExpReg)expresiones[i];
             temp.generarT();
         }
     }
     catch (InvalidCastException e)
     {
         Console.WriteLine("ERROR");
     }
 }
コード例 #4
0
 private void button1_Click(object sender, EventArgs e)
 {
     //Atras AFD
     if (imageAFD == 0)
     {
         imageAFD = Expresiones.Count - 1;
         ExpReg ex = (ExpReg)Expresiones[imageAFD];
         afd.Text     = ex.getNombre();
         picAFD.Image = Image.FromFile(ex.getNombre() + "_AFD.png");
     }
     else
     {
         imageAFD--;
         ExpReg ex = (ExpReg)Expresiones[imageAFD];
         afd.Text     = ex.getNombre();
         picAFD.Image = Image.FromFile(ex.getNombre() + "_AFD.png");
     }
 }
コード例 #5
0
 private void button3_Click(object sender, EventArgs e)
 {
     //Siguiente AFN
     if (imageAFN + 1 == Expresiones.Count)
     {
         imageAFN = 0;
         ExpReg ex = (ExpReg)Expresiones[imageAFN];
         afn.Text     = ex.getNombre();
         picAFN.Image = Image.FromFile(ex.getNombre() + "_AFN.png");
     }
     else
     {
         imageAFN++;
         ExpReg ex = (ExpReg)Expresiones[imageAFN];
         afn.Text     = ex.getNombre();
         picAFN.Image = Image.FromFile(ex.getNombre() + "_AFN.png");
     }
 }
コード例 #6
0
        private void button6_Click(object sender, EventArgs e)
        {
            //Siguiente tabla
            if (table + 1 == Expresiones.Count)
            {
                table = 0;
                ExpReg ex = (ExpReg)Expresiones[table];
                tabla.Text     = ex.getNombre();
                picTable.Image = Image.FromFile(ex.getNombre() + "_TABLE.png");
            }
            else
            {
                table++;

                ExpReg ex = (ExpReg)Expresiones[table];
                tabla.Text     = ex.getNombre();
                picTable.Image = Image.FromFile(ex.getNombre() + "_TABLE.png");
            }
        }
コード例 #7
0
        private void button5_Click(object sender, EventArgs e)
        {
            //Atras Tabla
            if (table == 0)
            {
                table = Expresiones.Count - 1;

                ExpReg ex = (ExpReg)Expresiones[table];
                tabla.Text     = ex.getNombre();
                picTable.Image = Image.FromFile(ex.getNombre() + "_TABLE.png");
            }
            else
            {
                table--;

                ExpReg ex = (ExpReg)Expresiones[table];
                tabla.Text     = ex.getNombre();
                picTable.Image = Image.FromFile(ex.getNombre() + "_TABLE.png");
            }
        }
コード例 #8
0
 public void prueba()
 {
     txtConsola.Clear();
     txtConsola.AppendText("--------------------------- \n");
     txtConsola.AppendText("-------- CONJUNTOS -------- \n");
     txtConsola.AppendText("--------------------------- \n");
     for (int i = 0; i < Conjuntos.Count; i++)
     {
         Conjunto temp = (Conjunto)Conjuntos[i];
         txtConsola.AppendText("Nombre: " + temp.getNombre() + " ");
         for (int j = 0; j < temp.getConjunt().Count; j++)
         {
             txtConsola.AppendText("" + temp.getConjunt()[j] + " ");
         }
         txtConsola.AppendText(" \n");
     }
     txtConsola.AppendText(" \n");
     txtConsola.AppendText("--------------------------------- \n");
     txtConsola.AppendText("----- Expresiones Regulares -------- \n");
     txtConsola.AppendText("---------------------------------- \n");
     for (int i = 0; i < Expresiones.Count; i++)
     {
         ExpReg temporal = (ExpReg)Expresiones[i];
         txtConsola.AppendText("Nombre: " + temporal.getNombre() + " ");
         for (int j = 0; j < temporal.getThompson().Count; j++)
         {
             Thompson t = (Thompson)temporal.getThompson()[j];
             txtConsola.AppendText("De " + t.getInicio() + " a " + t.getFinal() + " se traslada con " + t.getTransicion());
         }
         txtConsola.AppendText(" \n");
         for (int j = 1; j < temporal.getTokens().Count; j++)
         {
             Token tok = (Token)temporal.getTokens()[j];
             txtConsola.AppendText(tok.getLexema());
         }
         txtConsola.AppendText(" \n");
     }
 }