private void SegundoAvanzar(List <Token> tokens) { try { errores.Add(new ErrorSintactico(lexemaActual.getFila(), pila.RecuperarUltimoElemento())); produccionActual = Produccion.INICIAL; vuelta++; Avanzar(tokens); } catch { SegundoAvanzar(tokens); } }
private void SolicitarProduccion() { if (lexemaActual != null) { Console.WriteLine("SOLICITANDO PRODUCCION"); produccionActual = pila.RecuperarUltimoElemento(); Console.WriteLine("PRODUCCION ACTUAL: " + produccionActual); Console.WriteLine("LEXEMA ACTUAL: " + lexemaActual.getTipo()); produccion = tablaAnalisisSintactico.recuperarProduccion(produccionActual, lexemaActual); //ANTES ELIMINAMOS LA PRODUCCION ANCTUAL PARA REALIZAR EL SHIFT //pila.EliminarUltimoElemento(); AgregarProduccionPila(produccion); VerificarAnulabilidad(); } }