Beispiel #1
0
        public async Task <string> Compilar()
        {
            await Task.Yield();

            this.ResultadosCompilacion.Clear();
            //try
            //{
            //Fase 1 Analisis Lexico
            Analizador analizador
                = new AnalizadorLexico(this.Document, this.ResultadosCompilacion);

            analizador.Analizar();
            if (analizador.EsValido)
            {
                //Fase 2 Analisis Sintactico
                analizador =
                    new AnalizadorSintactico((AnalizadorLexico)analizador, this.Document, this.ResultadosCompilacion);
                analizador.Analizar();
                if (analizador.EsValido)
                {
                    //        //Fase 4 Sintetizador
                    analizador =
                        new Sintesis((AnalizadorSintactico)analizador, this.Document, this.ResultadosCompilacion);
                    analizador.Analizar();
                    if (analizador.EsValido)
                    {
                        CodigoMaquina maquina = new CodigoMaquina((Sintesis)analizador);
                        maquina.Generar();
                        this.CodigoMaquina = maquina.Codigo;
                        this.Compilado     = true;
                        this.CodeSegment   = maquina.CodeSegment;
                        return("Compilación exitosa");
                    }
                }
            }
            this.Compilado = false;
            return("Se encontrarón errores previos a la compilación\n");
        }
Beispiel #2
0
 public CodigoMaquina(Sintesis sintetizado)
 {
     this.Codigo      = new StringBuilder();
     this.CodeSegment = sintetizado.CodeSegment;
 }
 private void btngrabarSintesis_Click(object sender, RoutedEventArgs e)
 {
     if (txtSintesis.Text == "" && txtRuraArchivo.Text == "")
     {
         MessageBox.Show("Los Campos no deben estar Vacios");
     }
     else
     {
         Table<Sintesis> sinte = miBD.GetTable<Sintesis>();
         Sintesis tbSintesis = new Sintesis();
         tbSintesis.idSintesis = 0;
         tbSintesis.comisionado = lblComiSinte.Content.ToString();
         tbSintesis.nomArchivo = fileName;
         tbSintesis.ruta = RutaSintesis;
         tbSintesis.sintesis1 = txtSintesis.Text;
         tbSintesis.idOficiosComi = idOfiComi;
         sinte.InsertOnSubmit(tbSintesis);
         sinte.Context.SubmitChanges();
         MessageBox.Show("Seguardo Correctamente");
         lblComiSinte.Content = "--";
         txtRuraArchivo.Text = "";
         txtSintesis.Text = "";
         sintesisVentana.IsOpen = false;
     }
 }