Exemplo n.º 1
0
        private void guardarComoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Pestania selectTab = Contenedor.SelectedTab as Pestania;
            string   texto     = selectTab.Codigo.Text;

            guardarComo(Text);
        }
Exemplo n.º 2
0
        public string guardarComo(string texto)
        {
            Pestania selectTab = Contenedor.SelectedTab as Pestania;

            SaveFileDialog sFD = new SaveFileDialog();

            sFD.Title  = "Guardar proyecto " + selectTab.Text;
            sFD.Filter = "Cualquier proyecto (*.*) |*.txt";

            sFD.DefaultExt       = "txt";
            sFD.AddExtension     = true;
            sFD.RestoreDirectory = true;
            sFD.InitialDirectory = @"H:\LO DEL ESCRITORIO";

            if (sFD.ShowDialog() == DialogResult.OK)
            {
                selectTab.rutaArchivo = sFD.FileName;

                StreamWriter fichero = new StreamWriter(selectTab.rutaArchivo);
                fichero.Write(texto);
                fichero.Close();
                selectTab.Text = sFD.FileName.Substring(sFD.FileName.LastIndexOf("\\") + 1);
                return(selectTab.rutaArchivo);
            }
            else
            {
                sFD.Dispose();
                sFD = null;
                return(null);
            }
        }
Exemplo n.º 3
0
        private void agregarError(string caracter, int fila, int columna)
        {
            Pestania selectTab = Contenedor.SelectedTab as Pestania;

            selectTab.tablaDeErrores.Add(new error()
            {
                id = numError, caracter = caracter, fila = fila, columna = columna
            });
            numError++;
        }
Exemplo n.º 4
0
        private void agregarLexema(string idToken, string lexema, int fila, int columna, string token)
        {
            Pestania selectTab = Contenedor.SelectedTab as Pestania;

            selectTab.tablaDeSimbolos.Add(new lexema()
            {
                id = num, idToken = idToken, nombre = lexema, fila = fila, columna = columna, token = token
            });
            num++;
        }
Exemplo n.º 5
0
        public void analizadorLecxico(Pestania selectTab)
        {
            selectTab.tablaDeSimbolos.Clear();
            selectTab.tablaDeErrores.Clear();
            string cadena = selectTab.Codigo.Text + "\n";

            analizarLenguaje(cadena);
            selectTab.generarTablaDeSimbolos();
            selectTab.generarTablaDeErrores();
        }
Exemplo n.º 6
0
        private void guardarArchivoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Pestania selectTab = Contenedor.SelectedTab as Pestania;
            string   texto     = selectTab.Codigo.Text;

            if (selectTab.rutaArchivo == null)
            {
                selectTab.rutaArchivo = guardarComo(texto);
            }
            else
            {
                StreamWriter fichero = new StreamWriter(selectTab.rutaArchivo);
                fichero.WriteLine(texto);
                fichero.Close();
            }
        }
Exemplo n.º 7
0
        public Pestania nuevaPestania()
        {
            int      NewTabCount = Contenedor.TabCount;
            Pestania NewTab;

            NewTab          = new Pestania(this.Contenedor);
            NewTab.Name     = "Nuevo proyecto " + NewTabCount;
            NewTab.Padding  = new System.Windows.Forms.Padding(3);
            NewTab.TabIndex = NewTabCount;
            NewTab.Text     = "Nuevo proyecto " + NewTabCount;
            NewTab.UseVisualStyleBackColor = true;
            Contenedor.Controls.Add(NewTab);
            Contenedor.SelectedIndex = NewTab.TabIndex;

            return(NewTab);
        }
Exemplo n.º 8
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            String rutaAux = "";

            for (int i = 0; i < listaRuta.Count; i++)
            {
                Pestania p = (Pestania)listaRuta[i];
                if (p.nombre == tabControl1.SelectedTab.ToString())
                {
                    rutaAux = p.ruta;
                }
            }

            if (rutaAux != "")
            {
                System.IO.FileInfo fi = new System.IO.FileInfo(ruta);
                try
                {
                    fi.Delete();
                }
                catch (System.IO.IOException ex)
                {
                    Console.WriteLine(ex.Message);
                }

                System.IO.StreamWriter streamWriter = new StreamWriter(ruta, true);
                var rich = (RichTextBox)tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0];
                streamWriter.WriteLine(rich.Text);
                streamWriter.Close();
                txtConsola.Text += ">> Archivo guardado correctamente.\n";
            }
            else
            {
                SaveFileDialog saveFileDialog1 = new SaveFileDialog();

                saveFileDialog1.DefaultExt       = "*.sbs";
                saveFileDialog1.Filter           = "sbs Files|*.sbs";
                saveFileDialog1.RestoreDirectory = true;

                if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK && saveFileDialog1.FileName.Length > 0)
                {
                    var rich = (RichTextBox)tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0];
                    rich.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
                txtConsola.Text += ">> Archivo guardado correctamente.\n";
            }
        }
Exemplo n.º 9
0
        private void btnAbrir_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory = "C:\\Users\\Aylin\\Documents";
            openFileDialog1.Filter           = "txt files (*.txt)|*.txt| SBS files (*.*)|*.sbs";
            openFileDialog1.FilterIndex      = 2;
            openFileDialog1.RestoreDirectory = true;
            String texto   = "";
            String nombre  = "";
            String carpeta = "";

            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog1.FileName);
                String[] dato             = openFileDialog1.FileName.Split('\\');
                nombre = dato[dato.Length - 1];
                ruta   = openFileDialog1.FileName;
                for (int i = 0; i < dato.Length - 1; i++)
                {
                    carpeta += dato[i] + "\\";
                }
                texto = sr.ReadToEnd();
                sr.Close();
            }

            txtConsola.Text += ">> Archivo abierto correctamente.\n";
            Pestania p = new Pestania();

            p.nombre  = nombre;
            p.ruta    = ruta;
            p.carpeta = carpeta;
            listaRuta.Add(p);
            tabControl1.TabPages.Add(nombre);
            foreach (TabPage tab in tabControl1.TabPages)
            {
                RichTextBox rich = new RichTextBox();
                rich.Name   = "Tab";
                rich.Width  = 450;
                rich.Height = 350;
                tab.Controls.Add(rich);
                rich.Text = texto;
            }
            var richt = (RichTextBox)tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0];
        }
Exemplo n.º 10
0
        private void cargarPestanaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog oFD = new OpenFileDialog();

            oFD.Title  = "Abrir proyecto";
            oFD.Filter = "Todos los archivos (*.*)|*.*";

            if (oFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Pestania NewTab = nuevaPestania();
                NewTab.rutaArchivo = oFD.FileName;
                NewTab.Codigo.Text = System.IO.File.ReadAllText(NewTab.rutaArchivo);

                NewTab.Text = oFD.SafeFileName;

                NewTab.Linealizar();
            }
        }
Exemplo n.º 11
0
        private void compilarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Contenedor.TabCount == 2)
            {
                Contenedor.SelectedIndex = 0;
                tabA = Contenedor.SelectedTab as Pestania;
                analizadorLecxico(tabA);

                Contenedor.SelectedIndex = 1;
                tabB = Contenedor.SelectedTab as Pestania;
                analizadorLecxico(tabB);

                compilado = true;
            }
            else if (Contenedor.TabCount > 2)
            {
                List <tab> Tabs = new List <tab>();
                for (int i = 0; i < Contenedor.TabCount; i++)
                {
                    Contenedor.SelectedIndex = i;
                    Tabs.Add(new tab()
                    {
                        numTab = i, nomTab = Contenedor.SelectedTab.Text
                    });
                }
                Seleccion Seleccionar = new Seleccion(Tabs);
                Seleccionar.Visible      = true;
                Contenedor.SelectedIndex = Seleccionar.Sel("a");
                tabA = Contenedor.SelectedTab as Pestania;
                analizadorLecxico(tabA);
                Contenedor.SelectedIndex = Seleccionar.Sel("b");
                tabB = Contenedor.SelectedTab as Pestania;
                analizadorLecxico(tabB);
                compilado = true;
            }
            else
            {
                MessageBox.Show("Solo existe una pestania", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            }
        }
Exemplo n.º 12
0
        public void incluirArchivo(String archivo)
        {
            int    i       = 0;
            String carpeta = "";

            if (listaRuta.Count == 0)
            {
                Reporte.agregarMensajeError("No se ha podido incluir el archivo ya que no esta guardado", "Error Semantico", Listas.nodoActual.Token.Location.Line, Listas.nodoActual.Token.Location.Column);
                return;
            }

            for (i = 0; i < listaRuta.Count; i++) //Si la ruta esta vacia
            {
                Pestania p = (Pestania)listaRuta[i];
                if (p.nombre == nombreTab)
                {
                    carpeta = p.carpeta;
                }
            }

            if (carpeta == "")
            {
                Reporte.agregarMensajeError("No se ha podido incluir el archivo ya que no esta guardado", "Error Semantico", Listas.nodoActual.Token.Location.Line, Listas.nodoActual.Token.Location.Column);
                return;
            }
            else
            {
                String ruta  = carpeta + archivo;
                String texto = "";
                try
                {
                    System.IO.StreamReader sr = new System.IO.StreamReader(ruta);
                    ruta  = openFileDialog1.FileName;
                    texto = sr.ReadToEnd();
                    sr.Close();

                    Pestania p = new Pestania();
                    p.nombre  = archivo;
                    p.ruta    = ruta;
                    p.carpeta = carpeta;
                    listaRuta.Add(p);

                    MessageBox.Show(archivo);
                    txtConsola.Text += "\n* * * * * * * * " + archivo + " * * * * * * * ";
                    ParseTreeNode resultado = Analizador.analizar(texto);

                    if (resultado != null)
                    {
                        Listas.archivo.Push(archivo);
                        MessageBox.Show("El arbol fue construido correctamente");
                        PrimerRecorrido.action(resultado);
                        imprimirVariables();
                        imprimir();
                        Listas.archivo.Pop();
                    }
                    else
                    {
                        MessageBox.Show("ERROR: Deberia de revisar la cadena de entrada");
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("Error;");
                }
            }
        }