예제 #1
0
 private void AgregarProduccionPila(int[] produccion)
 {
     Console.WriteLine("AGREGANDO PRODUCCION A LA PILA");
     if (produccion != null)
     {
         pila.EliminarUltimoElemento();
         if (produccion.Length == 0)
         {
             pila.AgregarElemento(Lexema.VACIO);
             ReduceVacio();
             VerificarAnulabilidad();
         }
         else
         {
             for (int i = produccion.Length; i > 0; i--)
             {
                 pila.AgregarElemento(produccion[i - 1]);
             }
         }
     }
     else
     {
         //PUEDE GENERAR ERRORES EN ESTE BLOQUE
         Console.WriteLine("NO HAY PRODUCCION DISPONIBLE");
         throw new Exception();
     }
 }
예제 #2
0
        private void AgregarProduccionPila(int[] produccion)
        {
            if (produccion != null)
            {
                string valorNodoPadre = pila.RecuperarValorProduccionLexemaUltimoElemento();

                pila.EliminarUltimoElemento();
                if (produccion.Length == 0)
                {
                    pila.AgregarElemento(Lexema.VACIO, arbol, valorNodoPadre);
                    ReduceVacio();
                    VerificarAnulabilidad();
                }
                else
                {
                    pila.LimpiarCodigos();

                    for (int i = produccion.Length; i > 0; i--)
                    {
                        pila.AgregarElemento(produccion[i - 1]);
                    }

                    //AGREGANDO VALORES
                    pila.AgregarCodigos(arbol, valorNodoPadre);
                }
            }
            else
            {
                throw new Exception();
            }
        }