void fread_id_handler( ID_HANDLER *handler, FILE *fp ) { char *word; bool found, done = FALSE; word = ( feof( fp ) ? "#END" : fread_word( fp ) ); while( !done ) { found = FALSE; switch( word[0] ) { case '#': if( !strcasecmp( word, "#END" ) ) { done = TRUE; found = TRUE; break; } case 'T': IREAD( "TopID", handler->top_id ); break; } if( !found ) { bug( "%s: bad file format %s.", __FUNCTION__, word ); return; } if( !done ) word = ( feof( fp ) ? "#END" : fread_word( fp ) ); } return; }
void FMAATOMREAD(Word Q, Word V, Word *F_, Word *t_) { Word F,P,P1,P2,R,a,r,s,t,k,pi; char c; /* hide r,s,t; */ Step1: /* Read the left polynomial. */ t = 1; r = LENGTH(V); IPEXPREAD(r,V,&P1,&t); if (t == 0) goto Return; Step2: /* Read the relational operator. */ RLOPRDR(&R,&t); if (t == 0) goto Return; Step2p: /* Read Root expression (if it's there). */ k = 0; do { c = CREAD(); } while (c == ' ' || c == '\n'); if (c == '_') if (CREAD() == 'r' && CREAD() == 'o' && CREAD() == 'o' && CREAD() == 't' && CREAD() == '_') k = IREAD(); else { t = 0; goto Return; } else BKSP(); Step3: /* Read the right polynomial. */ IPEXPREAD(r,V,&P2,&t); if (t == 0) goto Return; Setp4: /* Tarski Atom. */ if (k == 0) { if (P2 != 0) { t = 0; goto Return; } pi = POLYINDEX(Q,P1,r,&t); F = LIST2(pi,R); goto Return; } Step5: /* Extended Atom. */ pi = POLYINDEX(Q,P2,r,&t); /* should do an error check here! */ F = LIST2(pi,LIST2(R,k)); goto Return; Step6: /* Error exit. */ DIELOC(); t = 0; goto Return; Return: /* Prepare for return. */ *F_ = F; *t_ = t; return; }
Word RNREAD() { Word C,R,R1,R2; /* hide C,R; */ Step1: /* Read. */ R1 = IREAD(); C = CREAD(); if (C == '/') R2 = IREAD(); else { R2 = 1; BKSP(); } if (R1 == 0) R = 0; else R = LIST2(R1,R2); Return: /* Prepare for return. */ return(R); }
I_ID *fread_i_id( FILE *fp ) { I_ID *id = NULL; char *word; bool found, done = FALSE; CREATE( id, I_ID, 1 ); word = ( feof( fp ) ? "#END" : fread_word( fp ) ); while( ! done ) { found = FALSE; switch( word[0] ) { case '#': if( !strcasecmp( word, "#END" ) ){done = TRUE; found = TRUE; break;} case 'C': SREAD( "CreatedBy", id->created_by ); SREAD( "CreatedOn", id->created_on ); break; case 'I': IREAD( "ID", id->id ); break; case 'M': SREAD( "ModifiedBy", id->modified_by ); SREAD( "ModifiedLast", id->last_modified ); break; } if( !found ) { bug( "%s: bad file format %s.", __FUNCTION__, word ); free_i_id( id ); return NULL; } if( !done ) word = ( feof( fp ) ? "#END" : fread_word( fp ) ); } return id; }
int sacMain() { Word V,B,t,Vx,M,L,Lp,i,k = 20; Word wii, p, J, *I , *Bp; /* Read bivariate polynomial */ V = LIST2(LFS("x"),LFS("y")); SWRITE("Enter B, a polynomial in x and y : "); IPEXPREADR(2,V,&B,&t); if (!t) { SWRITE("Polynomial read unsuccessfull!\n"); return 1; } else { SWRITE("Polynomial read in is: "); IPDWRITE(2,B,V); SWRITE("\n"); } /* Get precision */ SWRITE("Enter precision: "); p = IREAD(); SWRITE("Precision read is: "); IWRITE(p); SWRITE("\n"); /* Read Interval */ SWRITE("Enter binary rational interval: "); J = LBRIREAD(); /* Sub! */ Bp = GETARRAY(1 + (PDEG(B) + 1)*2*(p + 3)); IBPELBRISIPR(B,J,p,Bp); SWRITE("Evaluation result is : "); SIPWRITE(Bp,p,k); SWRITE("\n"); return 0; }
D_MOBILE *load_player(char *player) { FILE *fp; D_MOBILE *dMob = NULL; char pfile[MAX_BUFFER]; char pName[MAX_BUFFER]; char *word; bool done = FALSE, found; int i, size; pName[0] = toupper(player[0]); size = strlen(player); for (i = 1; i < size && i < MAX_BUFFER - 1; i++) pName[i] = tolower(player[i]); pName[i] = '\0'; /* open the pfile so we can write to it */ snprintf(pfile, MAX_BUFFER, "players/%s.pfile", pName); if ((fp = fopen(pfile, "r")) == NULL) return NULL; /* create new mobile data */ if (StackSize(dmobile_free) <= 0) { if ((dMob = malloc(sizeof(*dMob))) == NULL) { bug("Load_player: Cannot allocate memory."); abort(); } } else { dMob = (D_MOBILE *) PopStack(dmobile_free); } clear_mobile(dMob); /* load data */ word = fread_word(fp); while (!done) { found = FALSE; switch (word[0]) { case 'E': if (!strcasecmp(word, "EOF")) {done = TRUE; found = TRUE; break;} break; case 'L': IREAD( "Level", dMob->level ); break; case 'N': SREAD( "Name", dMob->name ); break; case 'P': SREAD( "Password", dMob->password ); break; } if (!found) { bug("Load_player: unexpected '%s' in %s's pfile.", word, player); free_mobile(dMob); return NULL; } /* read one more */ if (!done) word = fread_word(fp); } fclose(fp); return dMob; }
D_MOBILE *load_player(char *player) { FILE *fp; D_MOBILE *dMob = NULL; char pfile[256]; char pName[20]; char *word; bool done = FALSE, found; int i, size; pName[0] = toupper(player[0]); size = strlen(player); for (i = 1; i < size; i++) pName[i] = tolower(player[i]); pName[i] = '\0'; /* open the pfile so we can write to it */ sprintf(pfile, "../players/%s.pfile", pName); if ((fp = fopen(pfile, "r")) == NULL) return NULL; /* create new mobile data */ if (StackSize(dmobile_free) <= 0) { if ((dMob = malloc(sizeof(*dMob))) == NULL) { bug("Load_player: Cannot allocate memory."); abort(); } } else { dMob = (D_MOBILE *) PopStack(dmobile_free); } clear_mobile(dMob); #ifdef IMC imc_initchar( dMob ); #endif /* load data */ word = fread_word(fp); while (!done) { found = FALSE; switch (word[0]) { case 'C': if (compares(word, "Coordx")) { IREAD( "Coordx", dMob->coordx ); } if (compares(word, "Coordy")) { IREAD( "Coordy", dMob->coordy ); } if (compares(word, "Coordz")) { IREAD( "Coordz", dMob->coordz ); } break; case 'E': if (!strcasecmp(word, "EOF")) {done = TRUE; found = TRUE; break;} break; case 'I': #ifdef IMC if( ( found = imc_loadchar( dMob, fp, word ) ) ) break; #endif break; case 'L': IREAD( "Level", dMob->level ); break; case 'N': SREAD( "Name", dMob->name ); break; case 'P': SREAD( "Password", dMob->password ); break; case 'T': SREAD( "Title", dMob->title ); break; } if (!found) { bug("Load_player: unexpected '%s' in %s's pfile.", word, player); free_mobile(dMob); return NULL; } /* read one more */ if (!done) word = fread_word(fp); } fclose(fp); return dMob; }