Пример #1
0
 private void match(Token.Tipo tipo)
 {
     if (actual.getTipoToken() != tipo)
     {
         Console.WriteLine("No se esperaba este caracter\"" + actual.getTipo() + "\", se esperaba" + tipo.ToString());
     }
     else if (actual.getTipoToken() != Token.Tipo.ULTIMO)
     {
         listaAnalizada.AddLast(actual);
         controlToken++;
         actual = salidaSintactico.ElementAt(controlToken);
     }
 }
Пример #2
0
 /**
  *  Parea:
  *  Compara si el token de preanalisis tiene el tipo que se indica, en caso de que no sean iguales marca error.
  **/
 public void Parea(Token.Tipo tipoToken)
 {
     //Si existe un error sintactico buscara al simbolo punto y coma para poder continuar con el analisis.
     if (errorSintactico)
     {
         if (controlToken < listaTokens.Count - 1)
         {
             controlToken++;
             tokenActual = listaTokens.ElementAt(controlToken);
             if (tokenActual.GetTipo() == Token.Tipo.S_PUNTO_Y_COMA)
             {
                 errorSintactico = false;
             }
             else
             {
                 Console.WriteLine("Ya no se pudo recuperar :c");
             }
         }
     }
     //Si no hay error previo se procede a comparar si cumple con Parea.
     else
     {
         //Parea se cumple bien
         if (tokenActual.GetTipo() == tipoToken)
         {
             if (controlToken < listaTokens.Count - 1)
             {
                 controlToken++;
                 tokenActual = listaTokens.ElementAt(controlToken);
                 while ((tokenActual.GetTipo() == Token.Tipo.COMENTARIO_INLINE || tokenActual.GetTipo() == Token.Tipo.COMENTARIO_MULTILINE) && controlToken < listaTokens.Count - 1)
                 {
                     controlToken++;
                     tokenActual = listaTokens.ElementAt(controlToken);
                 }
             }
         }
         //Error sintactico
         else
         {
             Console.WriteLine("Error Sintactico\nEn ID_Token: " + controlToken + "\nSe esperaba [" + tipoToken.ToString() + "] en lugar de [" + tokenActual.GetTipo() + ", " + tokenActual.GetValor() + "]");
             consola                  += "*Error Sintactico*\nEn ID_Token: " + controlToken + "\nSe esperaba [" + tipoToken.ToString() + "] en lugar de [" + tokenActual.GetTipo() + ", " + tokenActual.GetValor() + "]\n";
             errorSintactico           = true;
             existenciaErrorSintactico = true;
         }
     }
 }