Example #1
0
        public void Determina_Lexema()
        {
            //guarda la posicion del cursor antes de pintar
            int pos = rTxtCodigo.SelectionStart;

            string[] Reservadas = new string[] { ";", "=" };

            try
            {
                //PONE TODO EL TEXTO EN EL COLOR POR DEFECTO(FORECOLOR)

                rTxtCodigo.SelectionStart  = 0;
                rTxtCodigo.SelectionLength = rTxtCodigo.TextLength;
                rTxtCodigo.SelectionColor  = rTxtCodigo.ForeColor;

                foreach (string CLAVE in Reservadas)
                {                                                                                                    //COMPRUEBA CADA UNA DE LAS PALABRAS CLAVE
                    int INDEX = 0;                                                                                   //'INICIA LA BUSQUEDA DE LA CLAVE DESDE LA POSICION 0 DEL TEXTO

                    while (INDEX <= rTxtCodigo.Text.LastIndexOf(CLAVE.ToString()))                                   //'RECORRE TODO EL TEXTO BUSCANDO LA PALABRA CLAVE
                    {
                        rTxtCodigo.Find(CLAVE.ToString(), INDEX, rTxtCodigo.TextLength, RichTextBoxFinds.WholeWord); //'CUANDO LA ENCUENTRA LA SELECCIONA Y....
                        rTxtCodigo.SelectionColor = Color.Pink;                                                      //'... LE PONE EL COLOR INDICADO
                        INDEX = rTxtCodigo.Text.IndexOf(CLAVE, INDEX) + 1;                                           //'AVANZA A LA SIGUIENTE UBICACION DE LA PALABRA CLAVE
                    }
                }

                //CUANDO HA TERMINADO DE BUSCAR TODAS LAS PALABRAS VUELVE A LA SITUACION NORMAL (AL FINAL DEL TEXTO)
                rTxtCodigo.SelectionStart = rTxtCodigo.TextLength;
                rTxtCodigo.SelectionColor = rTxtCodigo.ForeColor;

                // establece el valor del cursor donde se encontraba antes de pintar la palabra con color
                rTxtCodigo.SelectionStart  = pos;
                rTxtCodigo.SelectionLength = 0;
            }
            catch (Exception ex)
            {
            }

            try
            {
                //agrega las linea
                for (int i = 0; i < rTxtCodigo.Lines.Length; i++)
                {
                    enteroo.Inicial(rTxtCodigo.Lines[i], rTxtCodigo);
                    Booleano.Inicio(rTxtCodigo.Lines[i], rTxtCodigo);
                    operadorAritmetico1.Inicial(rTxtCodigo.Lines[i], rTxtCodigo);
                    reservadas.Inicio(rTxtCodigo.Lines[i], rTxtCodigo);
                    Datocadena.Inicial(rTxtCodigo.Lines[i], rTxtCodigo);
                    logico.Inicial(rTxtCodigo.Lines[i], rTxtCodigo);
                    opeRelacion.Inicial(rTxtCodigo.Lines[i], rTxtCodigo);
                    comentario.Inicial(rTxtCodigo.Lines[i], rTxtCodigo, rTxtErrores, i + 1);
                }
            }
            catch
            {
            }
        }