コード例 #1
0
 private void cadenas(string cad)
 {
     linea = 1;
     foreach (Match num in Regex.Matches(cad, cadena, RegexOptions.IgnoreCase))
     {
         if (num.Value == "\n")
         {
             linea++;
         }
         else
         {
             objts = new TablaDesimbolos(100, num.Value, "Cadena de texto", linea);
             PalabrasAnalizadas.Add(objts);
         }
     }
 }
コード例 #2
0
 private void comentarioB(string cad)
 {
     linea = 1;
     foreach (Match com in Regex.Matches(cad, comentario2, RegexOptions.IgnoreCase))
     {
         if (com.Value == "\n")
         {
             linea++;
         }
         else if (com.Value != "\n")
         {
             objts = new TablaDesimbolos(105, com.Value, "Comentario de bloque", linea);
             PalabrasAnalizadas.Add(objts);
         }
     }
 }
コード例 #3
0
 private void Operador(string cad)
 {
     linea = 1;
     foreach (Match operador in Regex.Matches(cad, operador, RegexOptions.IgnoreCase))
     {
         if (operador.Value == "\n")
         {
             linea++;
         }
         int indice = operadores.FindIndex(x => x.Lexema == operador.Value);
         if (indice >= 0)
         {
             objts = new TablaDesimbolos(operadores[indice].Token, operadores[indice].Lexema, operadores[indice].Descripcion, linea);
             PalabrasAnalizadas.Add(objts);
         }
     }
 }
コード例 #4
0
 private void numeros(string cad)
 {
     linea = 1;
     foreach (Match num in Regex.Matches(cad, numero, RegexOptions.IgnoreCase))
     {
         string n = num.Value.Replace('.', ',');
         if (num.Value == "\n")
         {
             linea++;
         }
         else if (tieneParteDecimal(double.Parse(n)))
         {
             objts = new TablaDesimbolos(102, num.Value, "Numero double", linea);
             PalabrasAnalizadas.Add(objts);
         }
         else
         {
             objts = new TablaDesimbolos(101, num.Value, "Numero entero", linea);
             PalabrasAnalizadas.Add(objts);
         }
     }
 }
コード例 #5
0
        private void Reservada(string cad)
        {
            linea = 1;
            foreach (Match identificador in Regex.Matches(cad, ident, RegexOptions.IgnoreCase))
            {
                if (identificador.Value == "\n")
                {
                    linea++;
                }

                int indice = Reservadas.FindIndex(x => x.Lexema == identificador.Value);

                if (indice >= 0)
                {
                    objts = new TablaDesimbolos(Reservadas[indice].Token, Reservadas[indice].Lexema, Reservadas[indice].Descripcion, linea);
                    PalabrasAnalizadas.Add(objts);
                }
                else if (identificador.Value != " " && identificador.Value != "\n")
                {
                    objts = new TablaDesimbolos(303, identificador.Value, "Identificador , varibles", linea);
                    PalabrasAnalizadas.Add(objts);
                }
            }
        }