Example #1
0
        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            string[] codigo;
            switch (e.ClickedItem.AccessibleName)
            {
            case "Abrir":
                #region Abrir
                if (openFileProgram.ShowDialog().Equals(DialogResult.OK))
                {
                    this.limpiaDataGrids();
                    if (extendida)
                    {
                        this.ensamblador = new EnsambladorSICExtendida(openFileProgram.FileName);
                    }
                    else
                    {
                        this.ensamblador = new EnsambladorSICEstandar(openFileProgram.FileName);
                    }
                    for (int i = 0; i < this.ensamblador.Archivo.Count; i++)
                    {
                        codigo = this.ensamblador.Archivo[i].Split('\t');
                        if (codigo.Length == 3)
                        {
                            this.dataGridViewFuente.Rows.Add(i + 1, codigo[0], codigo[1], codigo[2]);
                        }
                        else if (codigo.Length == 2)
                        {
                            this.dataGridViewFuente.Rows.Add(i + 1, codigo[0], codigo[1], "");
                        }
                        else
                        {
                            this.dataGridViewFuente.Rows.Add(i + 1, "", "", "");
                        }
                    }
                }
                #endregion
                break;

            case "Analizar":
                #region Analizar
                if (this.ensamblador != null)
                {
                    this.dataGridViewIntermedio.Rows.Clear();
                    this.ensamblador.paso1(this.dataGridViewIntermedio);
                    this.ensamblador.Tamaño = MetodosAuxiliares.calculaTamaño(this.ensamblador.Intermedio.First(), this.ensamblador.Intermedio.Last());
                    this.llenaTabSimYErrores();
                    MetodosAuxiliares.grabaTabSim(this.ensamblador.Nombre, this.ensamblador.TabSim);
                    MetodosAuxiliares.grabaIntermedio(this.ensamblador.Nombre, this.ensamblador.Intermedio);
                    if (this.ensamblador.Errores.Count != 0)
                    {
                        MetodosAuxiliares.grabaErrores(this.ensamblador.Nombre, this.ensamblador.Errores);
                    }
                }
                else
                {
                    MessageBox.Show("Por favor abra un archivo primero", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                #endregion
                break;

            case "ArchivoObj":
                #region Archivo Obj
                if (this.ensamblador != null)
                {
                    if (this.ensamblador.Paso1Logrado)
                    {
                        this.ensamblador.paso2(this.dataGridViewIntermedio);
                        this.richTextBoxObj.Text += "\n";
                        foreach (string linea in this.ensamblador.ArchivoObj)
                        {
                            this.richTextBoxObj.Text += linea + "\n";
                        }
                        MetodosAuxiliares.grabaObj(this.ensamblador.Nombre, this.ensamblador.ArchivoObj);
                    }
                }
                else
                {
                    MessageBox.Show("Por favor abra un archivo primero", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                #endregion
                break;

            case "Texto":
                EditorDeCodigo editor;
                editor = new EditorDeCodigo(this.extendida);
                editor.ShowDialog();
                break;

            case "EjecutaObj":
                Ejecucion ejecucion;
                ejecucion = new Ejecucion();
                ejecucion.ShowDialog();
                break;

            case "Cambio":
                this.seleccionaArquitectura();
                break;
            }
        }