private void toolStripButton4_Click(object sender, EventArgs e) { if (Estatico.NumeroErroes() > 0 || Estatico.NumeroAdvertencias() > 0) { ErrorReport errorRep = new ErrorReport(Estatico.errores); bool aux = errorRep.writeReport(); if (aux) { errorRep.openReport(); } else { MessageBox.Show("No se Pudo generar el Reporte!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("No Existen Errores o Advertencias", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void CapturarInformacion(Analizador an, Hashtable clasesPreanalizadas) { List <ClasePreAnalizada> clases = an.clases; Progreso.Value = 80; System.Threading.Thread.Sleep(200); foreach (ClasePreAnalizada a in clases) { if (!clasesPreanalizadas.Contains(a.id)) { Clase aux = a.obtenerClase(); clasesPreanalizadas.Add(a.id, a);//METO LAS CLASES AL HASHTABLE PARA LUEGO LAS PREANALIZADAS LLEVARLAS A ANALIZARLAS Estatico.clasesDisponibles.addClass(aux); } else { Estatico.errores.Add(new TError("Advertencia", "Se encontro una nueva definicion de la clase: " + a.id + " En el archivo: " + a.archivoOringen + ", Por lo que Se descarto", 0, 0, true)); } } if (Estatico.NumeroErroes() > 0)//SI HAY ERRORES REVISAR { MessageBox.Show("Existen: " + Estatico.NumeroErroes() + " en La cadena! Revisalos en el reporte", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //EN ESTE PUNTO YA TENGO LAS CLASES CON SU AST..... AHORA DEBERIA DE EMPEZAR LA EJECUCION DEL PROGRAMA Clase inicio = Estatico.clasesDisponibles.getFirstClassWithMain(); if (inicio != null) { Ambito am = new Ambito(null, inicio.idClase.ToLower(), inicio.ArchivoOrigen); am = (Ambito)inicio.Ejecutar(am); inicio.ejecutaMain(am); //am.ImprimeAmbito(); } } }
//PERMITE LA GENERACION DEL FORMULARIO private void toolStripButton2_Click(object sender, EventArgs e) { StatusControl.Text = "Estatus"; Estatico.setUp(Consola); Hashtable clasesPreanalizadas = new Hashtable(); if (Editor.TabCount > 0) { //RichTextBox principal = (RichTextBox)Editor.TabPages[Editor.SelectedIndex].Controls[0].Controls[1]; this.archivo = Editor.TabPages[Editor.SelectedIndex].Name; FastColoredTextBox principal = (FastColoredTextBox)Editor.TabPages[Editor.SelectedIndex].Controls[0].Controls[0]; String cadena = principal.Text;//PARA QUE TODO ESTE EN MINUSCULAS Y NO TENGA CLAVOS CON LA COMPROBACION DE NOMBRES Progreso.Value = 40; StatusControl.Text = "Iniciando Proceso..."; System.Threading.Thread.Sleep(200); Analizador an = new Analizador(cadena, this.ProyectoPath, archivo); if (an.analizar())//SI SE ANALIZA LA CADENA... { // PROCEDE A INTENTAR CAPTURAR LA INFO... if (Estatico.NumeroErroes() > 0) //SO EXISTEN ERRORES ANTES DE CAPTURAR LA INFO... { //REVISAR... Progreso.Value = 0; StatusControl.Text = "Proceso Interrumpido!"; Estatico.consolaSalida.AppendText("\n>> Proceso detenido, Errores detectados..."); MessageBox.Show("Existen: " + Estatico.NumeroErroes() + " en La cadena! Revisalos en el reporte", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else//SINO PROCEDER A CAPTURA LA INFORMACION { CapturarInformacion(an, clasesPreanalizadas); /////////////////////////////////////////////////////// Progreso.Value = 100; StatusControl.Text = "Proceso Terminado!"; System.Threading.Thread.Sleep(200); Progreso.Value = 0; /////////////////////////////////////////////////////// if (Estatico.resps.Count > 0) { String nombre = Microsoft.VisualBasic.Interaction.InputBox("Nombre Del Formulario A Guardar: ", "Nuevo Form", "", 100, 100); if (!nombre.Equals("")) { SavedForm s = new SavedForm(nombre, Estatico.resps); if (s.writeForm()) { MessageBox.Show("Formulario: " + nombre + " Almacenado!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No se almaceno el formulario!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } //AQUI DEBO DE PREGUNTAR SI EN CASO HAY UN PROBLEMA CON LAS ADVERTENCIAS } } else//SI NO SE PUEDE, ENTONCES EL ERROR ES FATAL... REVISAR { MessageBox.Show("No se logro Analizar la cadena de entrada", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } errorLabel.Text = Convert.ToString(Estatico.NumeroErroes()); warningsLabel.Text = Convert.ToString(Estatico.NumeroAdvertencias()); } }