public override object Ejecutar(Entorno e, bool funcion, bool ciclo, bool sw, bool tc, LinkedList <Salida> log, LinkedList <Error> errores) { //string archivo = "baseDatos.chison"; string archivo = BaseDatos.PathDatos.MapPath("/Files/baseDatos.chison"); StreamReader reader = null; try { if (File.Exists(archivo)) { reader = new StreamReader(archivo); string entrada = reader.ReadToEnd(); AnalizadorCHISON chison = new AnalizadorCHISON(); if (chison.AnalizarEntrada(entrada)) { object obj = chison.GenerarArbol(chison.Raiz.Root); if (obj != null) { if (obj is ASTCHISON ast) { if (ast.IsPrincipal()) { e.MasterRollback = new MasterBD(); e.MasterRollback.AddUsuario("admin", "admin"); //e.MasterRollback.UsuarioActual = e.Master.UsuarioActual; ast.Ejecutar(e, log, errores); BaseDatos.Master = e.MasterRollback; e.Master = e.MasterRollback; e.Master.Actual = null; } } } } else { Console.WriteLine("Errores leyendo Chison."); } } else { Console.WriteLine("no existe"); } } catch (Exception ex) { Console.WriteLine("Rollback: " + ex.Message); } finally { if (reader != null) { reader.Close(); } } return(null); }
public void LeerArchivo(Lista lista, Entorno e, LinkedList <Salida> log, LinkedList <Error> errores) { if (lista.Valores.Count() > 0) { Expresion val = lista.Valores.ElementAt(0); if (val.Tipo.IsVoid()) { string nombre = val.GetValor(e, log, errores).ToString().Replace("$", "").Replace("{", "").Replace("}", "").Trim(); string archivo = BaseDatos.PathDatos.MapPath("/Files/" + nombre); StreamReader reader = null; try { if (File.Exists(archivo)) { reader = new StreamReader(archivo); string cadena = reader.ReadToEnd(); AnalizadorCHISON chison = new AnalizadorCHISON(); if (chison.AnalizarEntrada(cadena)) { object obj = chison.GenerarArbol(chison.Raiz.Root); if (obj != null) { if (obj is ASTCHISON ast) { if (ast.Bloques != null) { lista.Valores = new LinkedList <Expresion>(); foreach (BloqueChison b in ast.Bloques) { lista.Valores.AddLast((Expresion)b); } } } } } } } catch (Exception ex) { Console.WriteLine("Excepción BloqueChison: " + ex.Message); } finally { if (reader != null) { reader.Close(); } } } } }
private void Button4_Click(object sender, EventArgs e) { if (!fastColoredTextBox3.Text.Equals(String.Empty)) { AnalizadorCHISON analizador = new AnalizadorCHISON(); if (analizador.AnalizarEntrada(fastColoredTextBox3.Text)) { MessageBox.Show("Documento ok.", "Mensaje"); ReporteErrores(analizador.Raiz); } else { MessageBox.Show("El archivo contiene errores.", "Error"); tabBottom.SelectedTab = tabPage3; ReporteErrores(analizador.Raiz); } } }
public void Rollback(Entorno e, LinkedList <Salida> log, LinkedList <Error> errores) { string archivo = BaseDatos.PathDatos.MapPath("/Files/backup.chison"); StreamReader reader = null; try { if (File.Exists(archivo)) { reader = new StreamReader(archivo); string entrada = reader.ReadToEnd(); AnalizadorCHISON chison = new AnalizadorCHISON(); if (chison.AnalizarEntrada(entrada)) { object obj = chison.GenerarArbol(chison.Raiz.Root); if (obj != null) { if (obj is ASTCHISON ast) { if (ast.IsPrincipal()) { e.MasterRollback = new MasterBD(); e.MasterRollback.AddUsuario("admin", "admin"); e.MasterRollback.EntornoActual = e.Master.EntornoActual; string user = null; if (e.Master.UsuarioActual != null) { user = e.Master.UsuarioActual.Id; } string bd = null; if (e.Master.Actual != null) { bd = e.Master.Actual.Id; } //e.MasterRollback.UsuarioActual = e.Master.UsuarioActual; ast.Ejecutar(e, log, errores); BaseDatos.Master = e.MasterRollback; e.Master = e.MasterRollback; e.Master.UsuarioActual = null; e.Master.Actual = null; if (user != null) { e.Master.UsuarioActual = e.Master.GetUsuario(user); } if (bd != null) { e.Master.Actual = e.Master.Get(bd); } } } } } else { //Console.WriteLine("Errores leyendo Chison."); } } else { //Console.WriteLine("no existe"); } } catch (Exception ex) { Console.WriteLine("Rollback: " + ex.Message); } finally { if (reader != null) { reader.Close(); } } }