public override void Mostrar(int nivel = 0)
 {
     Separar(nivel); Console.WriteLine("WHILE");
     Izquierda.Mostrar(nivel + 1);
     Separar(nivel); Console.WriteLine("DO");
     Derecha.Mostrar(nivel + 1);
     Separar(nivel); Console.WriteLine("END");
 }
 public override int Evaluar()
 {
     if (Izquierda is Variable v)
     {
         v.Valor = Derecha.Evaluar();
         return(v.Valor);
     }
     return(0);
 }
        public override int Evaluar()
        {
            var resultado = 0;

            while (Izquierda.Evaluar() != 0)
            {
                resultado = Derecha.Evaluar();
            }
            return(resultado);
        }
 public override void Mostrar(int nivel = 0)
 {
     Separar(nivel); Console.WriteLine("IF");
     Condicion.Mostrar(nivel + 1);
     Separar(nivel); Console.WriteLine("THEN");
     Izquierda.Mostrar(nivel + 1);
     if (Derecha != null)
     {
         Separar(nivel); Console.WriteLine("ELSE");
         Derecha.Mostrar(nivel + 1);
     }
     Separar(nivel); Console.WriteLine("END");
 }
 public override int Evaluar() => Izquierda.Evaluar() < Derecha.Evaluar() ? 1 : 0;
 public override int Evaluar() => Izquierda.Evaluar() *Derecha.Evaluar();
 public override void Mostrar(int nivel = 0)
 {
     Separar(nivel); Console.WriteLine(Operador);
     Izquierda.Mostrar(nivel + 1);
     Derecha.Mostrar(nivel + 1);
 }
 public override string NPI() => $"({Operador} {Izquierda.NPI()} {Derecha.NPI()})";
 public override int Evaluar() => Condicion.Evaluar() != 0 ? Izquierda.Evaluar() : Derecha?.Evaluar() ?? 0;