All pastes #554140 Raw Edit

Miscellany

public c v1 · immutable
·published 2007-06-10 00:40 UTC
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.}