コード例 #1
0
        private void ButtonAnalizar_Click(object sender, EventArgs e)
        {
            dataGridViewTokens.Rows.Clear();

            AnalizadorLexico anaLex      = new AnalizadorLexico();
            List <Token>     listaTokens = anaLex.escanear(textBoxEntrada.Text);

            foreach (Token t in listaTokens)
            {
                dataGridViewTokens.Rows.Add(t.getTipo().ToString(), t.getValor().ToString(), t.getValorEntero());
            }

            dataGridViewSintactico.Rows.Clear();
            AnalizadorSintactico anaSic = new AnalizadorSintactico();
            Stack <Dictionary <string, string> > arbol = anaSic.escanear(listaTokens, dataGridViewSintactico);

            List <Token> tablaSimbolos = anaLex.escanear(textBoxEntrada.Text);

            richTextBoxArbol.Text = "";
            mostrarArbol crearArbol = new mostrarArbol();
            string       semantico  = crearArbol.desplegar(arbol, richTextBoxArbol);


            AnalisisSemantico analisisSemantico = new AnalisisSemantico();

            analisisSemantico.analizar(semantico, listaTokens);

            textboxCodigoIntermedio.Text = "";
            CodigoIntermedio codigoIntermedio = new CodigoIntermedio();

            codigoIntermedio.generarCodigo(semantico, textboxCodigoIntermedio, tablaSimbolos);
        }
コード例 #2
0
 public Form1()
 {
     InitializeComponent();
     _analizadorLexico           = new AnalizadorLexico();
     _tablaSimbolos              = new TablaSimbolos();
     _analizadorSintactico       = new AnalizadorSintactico();
     _analizadorSemantico        = new AnalizadorSemantico();
     _generadorCodigo            = new GeneradorCodigo();
     cuadroResultados.ScrollBars = ScrollBars.Both;
     cuadroResultados.WordWrap   = false;
     cuadroTexto.ScrollBars      = ScrollBars.Both;
     cuadroTexto.WordWrap        = false;
     new ToolTip().SetToolTip(btnNuevo, "Nuevo");
     new ToolTip().SetToolTip(btnCompilar, "Compilar");
     new ToolTip().SetToolTip(btnOpen, "Abrir");
     new ToolTip().SetToolTip(btnSave, "Guardar");
     new ToolTip().SetToolTip(btnLexi, "Análisis léxico");
     new ToolTip().SetToolTip(btnSemantic, "Análisis semántico");
     new ToolTip().SetToolTip(btnSitax, "Análisis sintáctico");
     new ToolTip().SetToolTip(btnMachine, "Código máquina");
     new ToolTip().SetToolTip(btnIntermedio, "Código intermedio");
     new ToolTip().SetToolTip(btnEjecutar, "Ejecutar");
     openFile.Title            = "Abrir archivos C";
     openFile.Filter           = "Archivo C|*.c";
     openFile.InitialDirectory = @"C:\";
     saveFile.Title            = "Guarcar archivo";
     saveFile.Filter           = "Archivo C|*.c";
     saveFile.InitialDirectory = @"C:\";
 }
コード例 #3
0
        private void BtnCompilar_Click(object sender, EventArgs e)
        {
            TablaSimbolos.ObtenerTablaSimbolos().Limpiar();
            TablaDummys.ObtenerTablaDummys().Limpiar();
            TablaLiterales.ObtenerTablaLiterales().Limpiar();
            ManejadorErrores.ObtenerManejadorErrores().Limpiar();

            textBoxReader.Clear();
            LlenarTextBoxReader();

            AnalizadorSintactico anaSin = new AnalizadorSintactico();

            anaSin.Analizar();

            tablaSimbolos.DataSource  = TablaSimbolos.ObtenerTablaSimbolos().ObtenerSimbolos();
            tablaLiterales.DataSource = TablaLiterales.ObtenerTablaLiterales().ObtenerLiterales();
            tablaDummys.DataSource    = TablaDummys.ObtenerTablaDummys().ObtenerDummys();
            tablaErrores.DataSource   = ManejadorErrores.ObtenerManejadorErrores().ObtenerErrores();
        }
コード例 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //AnalizadorLexico anaLex = new AnalizadorLexico();
                //ComponenteLexico componete = anaLex.Analizar();
                TablaPalabrasReservadas.inicializar();
                AnalizadorSintactico anaSin = new AnalizadorSintactico();
                anaSin.analizar();

                CrearPestañaDeComponentes();
                CrearPestañaDeErrores();
                CrearPestañaDePalabrasReservadas();
                CrearPestañaDeLiterales();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            /*BorrarPestañas();
             * try
             * {
             *  TablaPalabrasReservadas.inicializar();
             *  AnalizadorLexico anaLex = new AnalizadorLexico();
             *  anaLex.Analizar();
             * }
             * catch (Exception ex)
             * {
             *  MessageBox.Show(ex.Message);
             * }
             * CrearPestañaDeComponentes();
             * CrearPestañaDeErrores();
             * CrearPestañaDePalabrasReservadas();
             * CrearPestañaDeLiterales();
             * Entrada.LimpiarLineas();*/

            /*BorrarPestañas();
             * TablaPalabrasReservadas.inicializar();
             * AnalizadorSintactico anaSin = new AnalizadorSintactico();
             * anaSin.Analizar();
             * CrearPestañaDeComponentes();
             * CrearPestañaDeErrores();
             * CrearPestañaDePalabrasReservadas();
             * CrearPestañaDeLiterales();
             * Entrada.LimpiarLineas();*/


            /*try
             * {
             *  BorrarPestañas();
             *  TablaPalabrasReservadas.inicializar();
             *  AnalizadorLexico anaLex = new AnalizadorLexico();
             *  ComponenteLexico componente = anaLex.Analizar();
             *
             *  while (componente.Lexema != "@EOF@")
             *  {
             *      componente = anaLex.Analizar();
             *  }
             *
             *  CrearPestañaDeComponentes();
             *  CrearPestañaDeErrores();
             *  CrearPestañaDePalabrasReservadas();
             *  CrearPestañaDeLiterales();
             *  Entrada.LimpiarLineas();
             * }
             * catch(Exception error)
             * {
             *  MessageBox.Show(error.Message);
             * }*/

            try
            {
                BorrarPestañas();
                TablaPalabrasReservadas.inicializar();
                AnalizadorSintactico anaSin = new AnalizadorSintactico();
                anaSin.Analizar();

                CrearPestañaDeComponentes();
                CrearPestañaDeErrores();
                CrearPestañaDePalabrasReservadas();
                CrearPestañaDeLiterales();
                Entrada.LimpiarLineas();
            }
            catch (Exception ex)
            {
                CrearPestañaDeComponentes();
                CrearPestañaDeErrores();
                CrearPestañaDePalabrasReservadas();
                CrearPestañaDeLiterales();
                Entrada.LimpiarLineas();
                MessageBox.Show(ex.Message);
            }
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: AngelUrq/Compilador
        private void IniciarAnalizadorSintactico()
        {
            AnalizadorSintactico analizadorSintactico = new AnalizadorSintactico(new List <Token>(listaPalabras));

            programaCorrecto = analizadorSintactico.ProbarCadena();
        }