public override object ejecutarSinposicion(ZContenedor e)
        {
            //switch (2)
            //{

            // case 3:
            //case 2 : instruciones
            //.
            //defualt:
            //}
            ZContenedor local = new ZContenedor(e, null); //crear el entorno

            local.enFuncion       = e.enFuncion;
            local.enProcedimiento = e.enProcedimiento;

            foreach (NodoCase @case in cases)
            {
                //entorno local por caso

                NodoIgualQue aux       = new NodoIgualQue(exp, @case.Exp);
                ZBool        condicion = Utilidades.evaluarCondicion(aux, e); //--- boleando return


                if (condicion.obtenerValor())
                {
                    var result = @case.ejecutar(local);

                    if (result is NodoBreak)
                    {
                        return(null);
                    }

                    if (result is Retorno || result is RetornoProc)
                    {
                        return(result);
                    }
                }
            }

            var resultDefault = defult.ejecutar(local);

            if (resultDefault is NodoBreak)
            {
                return(null);
            }

            if (resultDefault is Retorno || resultDefault is RetornoProc)
            {
                return(resultDefault);
            }
            // si hay un continue se ignora

            return(null);
        }
Example #2
0
        public bool contains(ZContenedor zContenedor)
        {
            var find = Elementos.Find(c => NodoIgualQue.IgualIgual(c, zContenedor).obtenerValor());

            return(find != null);
        }