public void BuscarErroresGlobal(EjecutarSBS start) { if (!Directory.Exists(start.Global.RutaImagenes)) { MessageBox.Show("La carpeta de imagenes " + start.Global.RutaImagenes + " no existe, se utilizara por defecto " + Constante.DefaultDefineRuta, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); } foreach (Simbolo simbolo in start.Global.TablaSimbolo) { simbolo.RutaArchivo = start.Ruta; simbolo.Ambito.Incerteza = start.Global.Incerteza; if (Directory.Exists(start.Global.RutaImagenes)) { simbolo.Ambito.RutaImagenes = start.Global.RutaImagenes; } else { //MessageBox.Show("La carpeta de imagenes " + Inicio.Global.RutaImagenes + " no existe, se utilizara por defecto " + Constante.DefaultDefineRuta,"Alerta",MessageBoxButtons.OK,MessageBoxIcon.Warning); simbolo.Ambito.RutaImagenes = Constante.DefaultDefineRuta; } simbolo.Ambito.RutaArchivo = start.Ruta; if (simbolo.Ambito.TablaSimbolo.Count > 0) { foreach (Simbolo simbolo2 in simbolo.Ambito.TablaSimbolo) { BuscarErroresAmbitos(simbolo2, start.Ruta, start.Global.Incerteza, simbolo.Ambito.RutaImagenes); } } } }
public void LlenarIncluyes(EjecutarSBS arc) { foreach (EjecutarSBS archiv in arc.Archivos) { BuscarErroresGlobal(archiv); LlenarIncluyes(archiv); //metemos las variables globales a la tabla y los metodos del primer archivo foreach (Simbolo global in archiv.Global.TablaSimbolo) { switch (global.Rol) { case Constante.DECLARACION: if (!TablaVariables.BuscarNombre(global.Nombre)) { EjecutarDeclaracion(global); } else { TabError error = new TabError(); error.InsertarFila(Constante.ErroEjecucion, "Ya hay declarado un metodo o variable con el nombre " + global.Nombre, global.RutaArchivo, global.Fila.ToString(), global.Columna.ToString()); TitusNotifiaciones.setDatosErrores(error); } break; case Constante.FUNCION: if (TablaVariables.BuscarVariable(global.Nombre) == null) { if (TablaVariables.BuscarMetodo(global.Nombre, (FFuncion)global.Objeto) == false) { TablaVariables.Tabla.Add(new Variables(global.Tipo, global.Nombre, Constante.TMetodo, global.Objeto, global.Ambito, global.Fila, global.Columna)); } else { TabError error = new TabError(); error.InsertarFila(Constante.ErroEjecucion, "Ya hay declarado un metodo con el nombre " + global.Nombre + " y los mismos parametros", global.RutaArchivo, global.Fila.ToString(), global.Columna.ToString()); TitusNotifiaciones.setDatosErrores(error); } } else { TabError error = new TabError(); error.InsertarFila(Constante.ErroEjecucion, "Ya hay declarada una variable con el metodo " + global.Nombre, global.RutaArchivo, global.Fila.ToString(), global.Columna.ToString()); TitusNotifiaciones.setDatosErrores(error); } break; } } } }
public Ejecutar(EjecutarSBS inicio) { Inicio = inicio; if (TitusNotifiaciones.ContarErrores() == 0) { BuscarErroresGlobal(Inicio); if (TitusNotifiaciones.ContarErrores() == 0) { TablaVariables.Tabla.Add(new Variables());//asignamos el espacio para el principal LlenarGlobal(); } if (TitusNotifiaciones.ContarErrores() == 0) { LlenarIncluyes(Inicio); } if (TitusNotifiaciones.ContarErrores() == 0) { EjecutarPrincipal(); } if (TitusNotifiaciones.ContarErrores() == 0) { TitusNotifiaciones.MostrarImagen(); } } if (TitusNotifiaciones.ContarErrores() > 0) { MessageBox.Show("Se encontraron error, favor revisar las notifiaciones", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Ejecucion realizada con exito.", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information); } }