Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
                        }
                    }
                }
            }
        }
Beispiel #3
0
        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);
                }
            }
        }
Beispiel #4
0
        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();
                }
            }
        }