private void Cargar(Decimal ID_SUB_PROGRAMA)
    {
        HiddenField_ID_SUB_PROGRAMA.Value = ID_SUB_PROGRAMA.ToString();

        Programa.Areas AREA = (Programa.Areas)Enum.Parse(typeof(Programa.Areas), HiddenField_ID_AREA.Value);

        SubPrograma _subPrograma     = new  SubPrograma(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable   tablaSubprograma = _subPrograma.ObtenerSubProgramasPorId(ID_SUB_PROGRAMA, AREA);

        if (tablaSubprograma.Rows.Count <= 0)
        {
            if (String.IsNullOrEmpty(_subPrograma.MensajeError) == false)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _subPrograma.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información del Sub Programa seleccionado", Proceso.Error);
            }
        }
        else
        {
            Ocultar(Acciones.Inicio);
            Desactivar(Acciones.Inicio);
            Mostrar(Acciones.Cargar);
            Cargar(Acciones.Cargar);

            DataRow filaSubprograma = tablaSubprograma.Rows[0];

            CargarControlRegistro(filaSubprograma);

            CargarInformacionSubprograma(filaSubprograma);
        }
    }
    private void Actualizar()
    {
        Decimal ID_SUB_PROGRAMA = Convert.ToDecimal(HiddenField_ID_SUB_PROGRAMA.Value);

        String NOMBRE      = TextBox_Nombre.Text.Trim();
        String DESCRIPCION = TextBox_Descripcion.Text.Trim();

        Boolean ACTIVO = true;

        if (DropDownList_EstadoSubPrograma.SelectedValue == "False")
        {
            ACTIVO = false;
        }

        SubPrograma _subprograma = new SubPrograma(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean verificado = _subprograma.Actualizar(ID_SUB_PROGRAMA, NOMBRE, DESCRIPCION, ACTIVO);

        if (verificado == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _subprograma.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(ID_SUB_PROGRAMA);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El Sub Programa " + NOMBRE + " fue creado Actualizado correctamente.", Proceso.Correcto);
        }
    }
    private void cargar_GridView_RESULTADOS_BUSQUEDA()
    {
        tools             _tools = new tools();
        SecureQueryString QueryStringSeguro;

        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Programa.Areas AREA = (Programa.Areas)Enum.Parse(typeof(Programa.Areas), HiddenField_ID_AREA.Value);

        SubPrograma _subPrograma      = new SubPrograma(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable   tablaSubProgramas = _subPrograma.ObtenerSubProgramasPorArea(AREA);

        if (tablaSubProgramas.Rows.Count <= 0)
        {
            if (_subPrograma.MensajeError == null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron registros de Sub Programas.", Proceso.Advertencia);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _subPrograma.MensajeError, Proceso.Error);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaSubProgramas;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    private void Buscar()
    {
        Ocultar(Acciones.Inicio);
        Desactivar(Acciones.Inicio);
        Mostrar(Acciones.Inicio);

        String datosCapturados = HiddenField_FILTRO_DATO.Value;
        String campo           = HiddenField_FILTRO_DROP.Value;

        Programa.Areas AREA = (Programa.Areas)Enum.Parse(typeof(Programa.Areas), HiddenField_ID_AREA.Value);

        SubPrograma _SubPrograma = new SubPrograma(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaResultadosBusqueda = new DataTable();

        if (campo == "ID_SUB_PROGRAMA")
        {
            tablaResultadosBusqueda = _SubPrograma.ObtenerSubProgramasPorId(Convert.ToDecimal(datosCapturados), AREA);
        }
        else
        {
            if (DropDownList_BUSCAR.SelectedValue == "NOMBRE")
            {
                tablaResultadosBusqueda = _SubPrograma.ObtenerSubProgramasPorNombre(datosCapturados, AREA);
            }
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_SubPrograma.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _SubPrograma.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron registros que cumplieran los datos de busqueda.", Proceso.Advertencia);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            Panel_RESULTADOS_GRID.Visible = true;

            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    private void Guardar()
    {
        String NOMBRE      = TextBox_Nombre.Text.Trim();
        String DESCRIPCION = TextBox_Descripcion.Text.Trim();

        Programa.Areas AREA = (Programa.Areas)Enum.Parse(typeof(Programa.Areas), HiddenField_ID_AREA.Value);

        SubPrograma _subprograma = new SubPrograma(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal ID_SUB_PROGRAMA = _subprograma.Adicionar(NOMBRE, DESCRIPCION, AREA);

        if (ID_SUB_PROGRAMA <= 0)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _subprograma.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(ID_SUB_PROGRAMA);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El Sub Programa " + NOMBRE + " fue creado correctamente y se le asignó el ID: " + ID_SUB_PROGRAMA.ToString(), Proceso.Correcto);
        }
    }
Пример #6
0
        private void runButton_Click(object sender, EventArgs e)
        {
            resultadoAnalisis = null;
            resultadoAnalisis = SintacticoInterprete.Analizar(code_textbox.Text);
            error_table.Rows.Clear();
            symbol_table.Rows.Clear();
            console_textbox.Text = "";

            if (resultadoAnalisis != null)
            {
                if (resultadoAnalisis.ParserMessages.Count == 0)
                {
                    SemanticoInterprete semanticoInterprete = new SemanticoInterprete();
                    semanticoInterprete.iniciarAnalisisSintactico(resultadoAnalisis.Root);
                    Simbolo sim;
                    String  valorTabla = "";
                    if (semanticoInterprete.errores.Count != 0)
                    {
                        table_label.Text     = "Error Table";
                        symbol_table.Visible = false;
                        error_table.Visible  = true;
                        foreach (Error error in semanticoInterprete.errores)
                        {
                            error_table.Rows.Add("Semantico", error.error, error.fila + 1, error.columna + 1);
                        }
                    }
                    else
                    {
                        table_label.Text     = "Symbol Table";
                        symbol_table.Visible = true;
                        error_table.Visible  = false;
                        foreach (Entorno entorno in semanticoInterprete.entornos)
                        {
                            foreach (KeyValuePair <string, Simbolo> variable in entorno.tabla)
                            {
                                if (typeof(Objeto).IsInstanceOfType(variable.Value.valor))
                                {
                                    string valor = "";
                                    if (((Objeto)variable.Value.valor).arreglo is null)
                                    {
                                        foreach (KeyValuePair <string, Simbolo> parametro in ((Objeto)variable.Value.valor).parametros)
                                        {
                                            sim = parametro.Value;
                                            if (sim.valor.ToString().Contains("Proyecto1_Compiladores2"))
                                            {
                                                valorTabla = ((Objeto)sim.valor).nombre;
                                                if (valor == "")
                                                {
                                                    valor = parametro.Key + ": " + valorTabla;
                                                }
                                                else
                                                {
                                                    valor += ", " + parametro.Key + ": " + valorTabla;
                                                }
                                            }
                                            else
                                            {
                                                if (valor == "")
                                                {
                                                    valor = parametro.Key + ": " + sim.valor;
                                                }
                                                else
                                                {
                                                    valor += ", " + parametro.Key + ": " + sim.valor;
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        Objeto tmp = (Objeto)variable.Value.valor;
                                        if (tmp.tipo != Simbolo.EnumTipo.objeto)
                                        {
                                            valor = tmp.tipo + "[" + tmp.arreglo.GetLength(0);
                                        }
                                        else
                                        {
                                            valor = tmp.nombreTipo + "[" + tmp.arreglo.GetLength(0);
                                        }
                                        for (int i = 1; i < tmp.arreglo.Rank; i++)
                                        {
                                            valor += ", " + tmp.arreglo.GetLength(i);
                                        }
                                        valor += "]";
                                    }
                                    symbol_table.Rows.Add(variable.Key, variable.Value.tipo, entorno.nombreEntorno, variable.Value.fila, variable.Value.columna, valor);
                                }
                                else
                                {
                                    if (variable.Value.tipo == Simbolo.EnumTipo.funcion || variable.Value.tipo == Simbolo.EnumTipo.procedimiento)
                                    {
                                        SubPrograma sp    = (SubPrograma)variable.Value.valor;
                                        string      valor = "";
                                        if (sp.ordenParametros.Count != 0)
                                        {
                                            foreach (string cadena in sp.ordenParametros)
                                            {
                                                if (valor == "")
                                                {
                                                    valor = "; {" + cadena;
                                                }
                                                else
                                                {
                                                    valor += ", " + cadena;
                                                }
                                            }
                                            valor += "}";
                                        }
                                        symbol_table.Rows.Add(variable.Key, variable.Value.tipo, entorno.nombreEntorno, variable.Value.fila, variable.Value.columna, sp.tipo + valor);
                                    }
                                    else
                                    {
                                        symbol_table.Rows.Add(variable.Key, variable.Value.tipo, entorno.nombreEntorno, variable.Value.fila, variable.Value.columna, variable.Value.valor.ToString());
                                    }
                                }
                            }
                        }
                    }
                    foreach (string texto in semanticoInterprete.consola)
                    {
                        if (texto.Contains("\n"))
                        {
                            console_textbox.Text += texto.Replace("\n", "") + Environment.NewLine;
                        }
                        else
                        {
                            console_textbox.Text += texto;
                        }
                    }

                    //Graficar Arbol Irony
                    SintacticoInterprete.crearImagen(resultadoAnalisis.Root, null, 0);

                    /*Thread.Sleep(1000);
                     * var p = new Process();
                     *
                     * //Abrir imagen Irony
                     * p.StartInfo = new ProcessStartInfo(@"C:\compiladores2\ArbolIrony.png")
                     * {
                     *  UseShellExecute = true
                     * };
                     * p.Start();*/
                }
                else
                {
                    table_label.Text     = "Error Table";
                    symbol_table.Visible = false;
                    error_table.Visible  = true;

                    string mensajeTraducido = "";

                    foreach (Irony.LogMessage error in resultadoAnalisis.ParserMessages)
                    {
                        if (error.Message.Contains("expected"))
                        {
                            mensajeTraducido = error.Message.Replace("Syntax error, expected: ", "Se esperaba el token: ");
                        }
                        else
                        {
                            mensajeTraducido = "No se encontro simbolo para finalizar la cadena";
                        }
                        error_table.Rows.Add("Sintactico", mensajeTraducido, error.Location.Line + 1, error.Location.Column + 1);
                    }
                }
            }
            else
            {
            }
        }