Exemple #1
0
        public void crearTablaLexemas()
        {
            char cActual;
            indice = 0;
            f = "";
            TabTokens.Clear();
            codigo = richTextBox1.Text;
            codigo += "#";
            bool error=false;
            while (indice < codigo.Length)
            {
                cActual = GetCaracter();
                //DESCARGARTAMOS SALTOS DE LINEA
                if (cActual == (Convert.ToChar("\n")) | cActual == (Convert.ToChar("\t"))) { f = ""; }
                else
                {
                    if ( cActual != (Convert.ToChar(" ")) & cActual != (Convert.ToChar("\r")) & cActual != (Convert.ToChar("\n")) & cActual != (Convert.ToChar("\t")))
                    {
                        //el caracter es numero
                        if (digito.Contains(cActual))
                        {
                            while (indice < codigo.Length & cActual != ' ' & cActual != ')' & cActual != ';' & cActual != ':' & cActual != (Convert.ToChar("\r")) & cActual != (Convert.ToChar("\n")) & cActual != (Convert.ToChar("\t")))
                            {
                                if (digito.Contains(cActual))
                                {
                                    //no hay error :)
                                    f = f + cActual;
                                    cActual = GetCaracter();
                                }
                                else
                                {
                                    Token t = new Token(f, "ENTERO"); TabTokens.Add(t);
                                    f = "";
                                    break;
                                }

                            }
                        }
                        //El caracter es alfabeto
                        if (caracter.Contains(cActual))
                        {
                            while (indice < codigo.Length & cActual != ' ' & cActual != ')' & cActual != ';' & cActual != ':' & cActual != (Convert.ToChar("\r")) & cActual != (Convert.ToChar("\n")) & cActual != (Convert.ToChar("\t")))
                            {
                                if (caracter.Contains(cActual) | digito.Contains(cActual))
                                {
                                    //no hay error :)

                                    f = f + cActual;
                                    cActual = GetCaracter();
                                }
                            }

                                if (f == "comienza")
                                {
                                    //listBox1.Items.Add(f + "\t INIT" + "\t" + indice);
                                    Token t = new Token(f, "INIT"); TabTokens.Add(t);
                                    f = "";
                                }
                                else if (f == "termina")
                                {
                                    //listBox1.Items.Add(f + "\t END" + "\t" + indice);
                                    Token t = new Token(f, "END"); TabTokens.Add(t);
                                    f = "";
                                }
                                else if (f == "mod")
                                {
                                    //listBox1.Items.Add(f + "\t OPMULT" + "\t" + indice);
                                    Token t = new Token(f, "OPMULT"); TabTokens.Add(t);
                                    f = "";
                                }
                                else if (f == "rem")
                                {
                                    //listBox1.Items.Add(f + "\t OPMULT" + "\t" + indice);
                                    Token t = new Token(f, "OPMULT"); TabTokens.Add(t);
                                    f = "";
                                }
                                else
                                {
                                    Token t = new Token(f, "IDENTIFICADOR"); TabTokens.Add(t);
                                    f = "";
                                }

                        }

                            if (cActual == '+')
                            {
                                //listBox1.Items.Add(cActual + "\t OPSUMA" + "\t" + indice);
                                Token t = new Token(Convert.ToString(cActual), "OPSUMA"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == '-')
                            {
                                //listBox1.Items.Add(cActual + "\t OPSUMA" + "\t" + indice);
                                Token t = new Token(Convert.ToString(cActual), "OPSUMA"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == '*')
                            {
                                //listBox1.Items.Add(cActual + "\t OPMULT" + "\t" + indice);
                                Token t = new Token(Convert.ToString(cActual), "OPMULT"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == '/')
                            {
                                //listBox1.Items.Add(cActual + "\t OPMULT" + indice);
                                Token t = new Token(Convert.ToString(cActual), "OPMULT"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == '(')
                            {
                                //listBox1.Items.Add(cActual + "\t PAREIZQ" + "\t" + indice);
                                Token t = new Token(Convert.ToString(cActual), "PAREIZQ"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == ')')
                            {
                                //listBox1.Items.Add(cActual + "\t PAREDER" + "\t" + indice);
                                Token t = new Token(Convert.ToString(cActual), "PAREDER"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == ';')
                            {
                                //listBox1.Items.Add(cActual + "\t FINLINEA" + "\t" + indice);
                                Token t = new Token(Convert.ToString(cActual), "FINLINEA"); TabTokens.Add(t); f = "";
                            }
                            else if (cActual == ':' & f == "")
                            {
                                f = Convert.ToString(cActual);
                                cActual = GetCaracter();
                                if (cActual == '=')
                                {
                                    //listBox1.Items.Add(f + cActual + "\t ASIGNACION" + "\t" + indice); f = " ";
                                    Token t = new Token(":" + cActual, "ASIGNACION"); TabTokens.Add(t);
                                    f = "";
                                }
                            }
                            //SINO ES PALABRA VALIDAR CUAL DE LOS SIMBOLOS PUEDE SER

                    }///
                }
            }
        }
 public ArrayList populationControl(Juklas j, Mood møg, Tegneserie k, Token q, Movement t)
 {
     møg.affectMood(4, j);
     møg.affectMood(4, j);
     return(new ArrayList());
 }