Пример #1
0
        private void Sintactico()
        {
            int turn = 0;

            Tokens.FindAll(token => {
                switch (token)
                {
                case "identificador":
                    if (turn == 0 || turn == 2)
                    {
                        Analizadorxd.AppendText(token + " ");
                        turn++;
                    }
                    else
                    {
                        Analizadorxd.AppendText("Error ");
                    }
                    break;

                case "asignar":
                    if (turn == 1)
                    {
                        Analizadorxd.AppendText(token + " ");
                        turn++;
                    }
                    else
                    {
                        Analizadorxd.AppendText("Error ");
                    }
                    break;

                case "Num":
                    if (turn == 2)
                    {
                        Analizadorxd.AppendText(token + " ");
                        turn++;
                    }
                    else
                    {
                        Analizadorxd.AppendText("Error ");
                    }
                    break;

                case "Cierre":
                    Analizadorxd.AppendText(token + "\n");
                    turn = 0;
                    break;
                }
                return(true);
            });
        }
Пример #2
0
        public void PaintText(List <string> err, List <Memory> mem)
        {
            compilderdat.Rows.Clear();
            Analizadorxd.Text = null;

            mem.FindAll(i => {
                if (string.IsNullOrEmpty(i.ID) && string.IsNullOrEmpty(i.TOKEN) && string.IsNullOrEmpty(i.VALUE))
                {
                    mem.Remove(i);
                }
                return(true);
            });

            foreach (var dat in mem)
            {
                compilderdat.Rows.Add(dat.TOKEN, dat.ID, dat.VALUE);
            }
            foreach (var e in err)
            {
                Analizadorxd.AppendText(e + "\n");
            }

            lblComp.Text = $"Tiempo de compilación: {_Time}";
        }
Пример #3
0
        private void validator()
        {
            // Variables para declarar.
            string asd = "", asd1 = "", asd2 = "";
            bool   valid = false, dec = true, sent = false;
            // Variables para asignar.
            string jkl = "", jkl1 = "", jkl2 = "", jkl3 = "";
            bool   fin = false, fin2 = false, fin3 = false, fin4 = false;

            Tokens.FindAll(i => {
                Analizadorxd.AppendText(i + " ");
                if (jkl == "" && sent == true && i == "identificador")
                {
                    dec = false;
                }
                if (sent)
                {
                    if (jkl2 != "")
                    {
                        fin  = sentencia(jkl, jkl1, jkl2) && i == "Cierre" ? true : false;
                        fin2 = Si(jkl, jkl1, jkl2) && i == "cerrarLlave" ? true : false;
                        fin3 = tonsq(jkl) && i == "cerrarLlave" ? true : false;
                        fin4 = Imp(jkl) && i == "comilla" ? true : false;
                        jkl  = "";
                        jkl1 = "";
                        jkl2 = "";
                        Analizadorxd.AppendText(fin + "\n\n");
                    }
                    jkl2 = jkl2 == "" && jkl1 != "" ? i : jkl2;
                    jkl1 = jkl1 == "" && jkl != "" ? i : jkl1;
                    if (i == "identificador" && jkl == "")
                    {
                        jkl = i;
                    }
                }
                if (dec)
                {
                    asd2 = asd2 == "" && asd1 != "" ? i : asd2;
                    asd1 = asd1 == "" && asd != "" ? i : asd1;
                    if (i == "int" || i == "string")
                    {
                        asd  = i;
                        asd1 = "";
                        asd2 = "";
                    }
                    else if (asd == "")
                    {
                        Analizadorxd.AppendText(" Error en la linea" + "\n");
                    }
                    if (asd2 != "")
                    {
                        valid = declaraciones(asd, asd1, asd2);
                        asd   = "";
                        asd1  = "";
                        asd2  = "";
                        Analizadorxd.AppendText("\n");
                        if (valid == false)
                        {
                            Analizadorxd.AppendText(" Error en la linea" + "\n");
                        }
                        else
                        {
                            sent = true;
                        }
                    }
                }
                return(true);
            });
            if (valid == false)
            {
                Analizadorxd.AppendText(" Error en la linea" + "\n");
            }

            bool declaraciones(string tipo, string ident, string cierre)
            {
                bool _tipo, _ident, _cierre;

                _tipo   = tipo == "int" || tipo == "string" ? true : false;
                _ident  = ident == "identificador" && _tipo ? true : false;
                _cierre = cierre == "Cierre" && _ident == true ? true : false;
                return(_cierre);
            }

            bool sentencia(string ide, string asig, string var)
            {
                bool _ide, _asig, _var;

                _ide  = ide == "identificador" ? true : false;
                _asig = asig == "asignar" && _ide ? true : false;
                _var  = ide == "identificador" && _asig ? true : false;
                return(_var == true ? true : false);
            }

            bool Imp(string bodi)
            {
                bool _bodi;

                _bodi = bodi == "identificador" ? true : false;
                if (_bodi)
                {
                    inputMessage.AppendText("bodi");
                }
                return(_bodi);
            }

            bool Si(string ide, string asig, string var)
            {
                bool _ide, _asig, _var;

                _ide  = ide == "identificador" ? true : false;
                _asig = asig == "igualacion" && _ide ? true : false;
                _var  = ide == "identificador" && _asig ? true : false;
                return(_var == true ? true : false);
            }

            bool tonsq(string tipo)
            {
                bool _tipo;

                _tipo = tipo == "int" ? true : false;
                return(_tipo);
            }
        }