示例#1
0
        private void button5_Click(object sender, EventArgs e)
        {
            // Compilar
            // Reiniciar TS
            TablaSimbolos.reiniciar();
            int actual = paginas.SelectedIndex;

            if (actual >= 0)
            {
                Compilador compilador = new Compilador();
                txtC3D.Text = "";
                Pagina pag = (Pagina)paginas.SelectedTab;
                Compilador.rutaEjecutada = pag.ruta;
                List <C3D> codigo3d = compilador.compilar(pag.cuerpo.Text, txtConsola, pag.tipo, pag.nombre);
                if (codigo3d == null)
                {
                    return;
                }
                instrucciones = codigo3d;
                foreach (C3D codigo in codigo3d)
                {
                    txtC3D.AppendText(codigo.getInstruccion() + "\n");
                }
            }
            else
            {
                MessageBox.Show("Seleccione un archivo antes para compilar!");
            }
        }
示例#2
0
        public static void getReporteTS(TablaSimbolos ts, ref DataGridView tabla)
        {
            /*public String nombre, padre, clase;
             * public int ambito, tipo, rol, pos, tam;
             * //public int fila, columna;
             * public List<int> dimensiones;*/

            tabla.Columns.Add(crearColumna("#"));
            tabla.Columns.Add(crearColumna("Rol"));
            tabla.Columns.Add(crearColumna("Nombre"));
            tabla.Columns.Add(crearColumna("Padre"));
            tabla.Columns.Add(crearColumna("Tipo"));
            tabla.Columns.Add(crearColumna("Clase"));
            tabla.Columns.Add(crearColumna("Ambito"));
            tabla.Columns.Add(crearColumna("Visibilidad"));
            tabla.Columns.Add(crearColumna("Posicion"));
            tabla.Columns.Add(crearColumna("Tamaño"));
            tabla.Columns.Add(crearColumna("Dimensiones"));
            int id = 1;

            foreach (Simbolo simbolo in ts)
            {
                object[] fila = new object[11];
                fila[0] = id;
                fila[1] = Simbolo.getValor(simbolo.rol);
                fila[2] = simbolo.nombre;
                fila[3] = simbolo.padre;
                fila[4] = Simbolo.getValor(simbolo.tipo);
                fila[5] = simbolo.clase;
                if (simbolo.clase == null)
                {
                    fila[5] = "--------";
                }
                fila[6]  = Simbolo.getValor(simbolo.ambito);
                fila[7]  = Simbolo.getVisibilidad(simbolo.visibilidad);
                fila[8]  = simbolo.pos;
                fila[9]  = simbolo.tam;
                fila[10] = "--------";
                if (simbolo.dimensiones != null)
                {
                    fila[10] = "";
                    foreach (int v in simbolo.dimensiones)
                    {
                        fila[10] += v + " ";
                    }
                }
                tabla.Rows.Add(fila);
                id++;
            }
        }
 public Compilador()
 {
     clases        = new List <Clase>();
     tablaSimbolos = TablaSimbolos.getInstance;
 }
示例#4
0
 public static void reiniciar()
 {
     instance = null;
 }
 public void setReporteTS(TablaSimbolos ts)
 {
     this.txtNombre.Text = "Reporte de Tabla de Simbolos";
     Reporte.getReporteTS(ts, ref this.tablaReporte);
 }