Beispiel #1
0
        private void toolStripButton6_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            RecorridoLienzos.listaLienzos.Clear();
            RecorridoLienzos.listaVariables.Clear();
            RecorridoLienzos.listaPintar.Clear();

            foreach (Control a in this.tabControl1.TabPages)
            {
                foreach (Control c in a.Controls)
                {
                    Initializer(c);



                    lenguaje = new LanguageData(gramatica);

                    Parser        parser    = new Parser(lenguaje);
                    ParseTree     arbol     = parser.Parse(c.Text);
                    ParseTreeNode raiz      = arbol.Root;
                    ParseTreeNode resultado = arbol.Root;

                    if (resultado != null)
                    {
                        most = resultado;
                        RecorridoLienzos.IniciarRecorrido(resultado);
                    }
                    else
                    {
                    }
                    Errores       errores = new Errores();
                    String        er      = errores.GraficarTabla(gramatica.lista);
                    TablaSimbolos Tabla   = new TablaSimbolos();
                    Tabla.GraficarTabla(RecorridoLienzos.listaLienzos, RecorridoLienzos.listaVariables, RecorridoLienzos.listaArreglo);
                    String[] partes = er.Split(',');

                    foreach (String err in partes)
                    {
                        richTextBox1.Text += err + "\n";
                    }

                    List <Pintar> ListaProc = RecorridoLienzos.listaPintar;


                    System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#000000");
                    papel = pictureBox2.CreateGraphics();
                    Brush brush = new SolidBrush(col);
                    papel.FillRectangle(brush, 0, 0, 5, 5);

                    foreach (Pintar item in ListaProc)
                    {
                        switch (item.tipo)
                        {
                        case "p":

                            Circulo(item.posx, item.posy, item.color, item.diam);
                            break;

                        case "o":
                            Ovalo(item.posx, item.posy, item.color, item.ancho, item.alto);
                            break;

                        case "r":
                            Rectangulo(item.posx, item.posy, item.color, item.ancho, item.alto);
                            Console.WriteLine("Pintar_OR(" + item.posx + "," + item.posy + "," + item.color + "," + item.ancho + "," + item.alto + "," + item.tipo);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
        }