Exemple #1
0
    protected void OnCombobox2Changed(object sender, EventArgs e)
    {
        string[]  indice = combobox2.ActiveText.Split(' ');
        Gramatica temp   = gramaticas[Int32.Parse(indice[1])];
        string    texto  = "";

        foreach (var t in temp.Producoes)
        {
            Gramatica.Regular producao = t.Value;
            string            parte    = "";
            for (int j = 0; j < producao.Proximos.Count; j++)
            {
                if (producao.Proximos.Count > 1)
                {
                    if (j == producao.Proximos.Count - 1)
                    {
                        parte += producao.Proximos[j];
                    }
                    else
                    {
                        parte += producao.Proximos[j] + "|";
                    }
                }
                else
                {
                    parte += producao.Proximos[j];
                }
            }
            //if ((producao.Atual != "" && parte != "") && (producao.Atual != "" || parte != "")) {
            texto += producao.Atual + "->" + parte + "\r\n";
            //}
        }
        textview2.Buffer.Text = texto;
    }
Exemple #2
0
    public void coverterAFDGR(int indice)
    {
        Automato  temp  = automatos [indice];
        Gramatica GR    = new Gramatica(temp);
        string    texto = "";

        foreach (var t in GR.Producoes)
        {
            Gramatica.Regular producao = t.Value;
            string            parte    = "";
            for (int j = 0; j < producao.Proximos.Count; j++)
            {
                if (producao.Proximos.Count > 1)
                {
                    if (j == producao.Proximos.Count - 1)
                    {
                        parte += producao.Proximos[j];
                    }
                    else
                    {
                        parte += producao.Proximos[j] + "|";
                    }
                }
                else
                {
                    parte += producao.Proximos[j];
                }
            }
            //if ((producao.Atual != "" && parte != "") && (producao.Atual != "" || parte != "")) {
            texto += producao.Atual + "->" + parte + "\r\n";
            //}
        }
        textview2.Buffer.Text = texto;
    }
Exemple #3
0
    protected void OnButton230Clicked(object sender, EventArgs e)
    {
        string[]  temp      = textview2.Buffer.Text.Split(new [] { '\r', '\n' });
        Gramatica gramatica = new Gramatica();

        for (int i = 0; i < temp.Length; i++)
        {
            Gramatica.Regular regular = new Gramatica.Regular();
            string[]          temp2   = temp [i].Split(new string[] { "->" }, StringSplitOptions.None);
            if (temp2 [0] != "")
            {
                string a = temp2 [0];
                regular.Atual = a[0];
                List <string> proximos = new List <string> ();
                for (int j = 1; j < temp2.Length; j++)
                {
                    if (!temp2 [j].Contains("|"))
                    {
                        if (!proximos.Contains(temp2 [j]))
                        {
                            if (temp2 [j] != "")
                            {
                                proximos.Add(temp2 [j]);
                            }
                        }
                    }
                    else
                    {
                        string[] temp3 = temp2 [j].Split('|');
                        for (int k = 0; k < temp3.Length; k++)
                        {
                            if (!proximos.Contains(temp3 [k]))
                            {
                                if (temp3 [k] != "")
                                {
                                    proximos.Add(temp3 [k]);
                                }
                            }
                        }
                    }
                }
                regular.Proximos = proximos;
                gramatica.AddProducao(regular);
            }
        }
        gramaticas.Add(gramatica);
        atualizarListaGramaticas();
    }