示例#1
0
        private void __BtnCompilar_Click(object sender, EventArgs e)
        {
            Console.Clear();
            __TxtRConsola.Text = "";
            _TablaTokens.Clear();
            _TablaAtributos.Clear();
            //FileStream(_PathProyect, FileMode.Open, FileAccess.Read)
            using (var writeStrm = new StreamWriter(_PathProyect, false, Encoding.ASCII))
                writeStrm.Write(__TxtRCsFile.Text);
            using (var readStrm = new StreamReader(_PathProyect)) {
                try {
                    Lenguaje test = new Lenguaje(readStrm);
                    test.Compilar(_InitPath + @"\ASM.asm");

                    foreach (var item in test.OutPut)
                    {
                        __TxtRConsola.Text += item;
                    }

                    foreach (var token in test.LogTokens)
                    {
                        _TablaTokens.Rows.Add(token.ID, token.Valor);
                    }

                    foreach (var atrib in test.LogAtributos)
                    {
                        _TablaAtributos.Rows.Add(atrib.Nombre, "" + atrib.Valor,
                                                 atrib.TipoDato, atrib.Acceso);
                    }

                    using (var streamRd = new StreamReader(_InitPath + @"\ASM.asm"))
                        __TxtRASM.Text = streamRd.ReadToEnd();
                } catch (InvalidDataException exc) {
                    __TxtRConsola.Text = "!!! " + exc.Message + "\n";
                } catch (NullReferenceException exc) {
                    __TxtRConsola.Text = "!!! " + exc.Message + "\n";
                } catch (Exception exc) {
                    __TxtRConsola.Text = "!!! " + exc.Message + "\n";
                }
            }
        }