rendered paste body// -------------------------------------------------------------------------------------------------------------------------------------// Funcion: AllenVM_CPU_COND_MUL();// Proposito: Define multiples condiciones.// Devuelve: 0 si sus sentencias no se ejecutan. 1 si alguna es ejecutada.// -------------------------------------------------------------------------------------------------------------------------------------static int AllenVM_CPU_COND_MUL(struct AllenInterp *i, int argc, char **argv, void *pd) { if(argc < 3) return AllenVM_CPU_Error(i,argv[0]); // Comprobamos parametros. if(argc % 2 == 0) return AllenVM_CPU_Error(i,argv[0]); // Comprobamos parametros impares. register int c,p; float r=0; // Declaramos variables. for(p=1;p<argc;p+=2) { // Buscamos resultados. if((c = AllenVM_InterpEval(i,argv[p])) != Allen_VM_OK) return c; // Comprobamos la condicion. if(atoi(i->result)) { // Si el resultado es cierto... if((c = AllenVM_InterpEval(i,argv[p+1])) != Allen_VM_OK) return c; r=1; // Evaluamos las sentencias, } // y definimos que se han ejecutado, } // para devolver resultado correcto. char buf[TCOND_BSIZE]; // Creamos buffer. snprintf(buf,TCOND_BSIZE,"%f",r); // Copiamos al buffer. AllenVM_InterpSetResult(i,buf); // Devolvemos 0/1 segun sentencias ejecutadas. return Allen_VM_OK; // Devolvemos resultado.}