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); }
public bool contains(ZContenedor zContenedor) { var find = Elementos.Find(c => NodoIgualQue.IgualIgual(c, zContenedor).obtenerValor()); return(find != null); }