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(); } } }