void display_error(struct error err) { fprintf(stderr, "ERROR: "); switch (err.code) { case 0: break; case 1: fprintf(stderr, "not in scope: %s\n", err.symbol); break; case 2: fprintf( stderr , "wrong number of arguments to %s (expected %d, got %d)\n" , err.numargs.to , err.numargs.expected , err.numargs.actual ); break; case 3: fprintf(stderr, "malformed expression: "); fdisplay(stderr, err.malformed); fprintf(stderr, "\n"); break; case 4: fprintf(stderr, "wrong type to %s: ", err.wrong_type.to); fdisplay(stderr, err.wrong_type.val); fprintf(stderr, "\n"); break; } }
void fresult(FILE *fp, const TURN stone[SIZE_Y][SIZE_X]){ int score[EMPTY + 1]; int i; for(i = FIRST;i <= EMPTY;i++) score[i] = countStone(stone, i); fprintf(fp,"\n\n"); fdisplay(fp,stone); fprintf(fp,"\n"); fprintf(fp,"FIRST:%d\n",score[FIRST]); fprintf(fp,"SECOND:%d\n",score[SECOND]); fprintf(fp,"EMPTY:%d\n",score[EMPTY]); fprintf(fp,"\n"); fprintf(fp,"%s turn won!\n",score[FIRST] >= score[SECOND] ? "First" : "Second"); }
int main(void) { GC_INIT(); struct env* env = new_env(); insert(env, "define", SCMPRIM(scm_define)); insert(env, "quote", SCMPRIM(scm_quote)); insert(env, "eval", SCMPRIM(scm_eval)); insert(env, "lambda", SCMPRIM(scm_lambda)); insert(env, "cons", SCMPRIM(scm_cons)); insert(env, "car", SCMPRIM(scm_car)); insert(env, "cdr", SCMPRIM(scm_cdr)); // A read-eval loop! char* buff; size_t bufflen = 0; while (true) { printf("> "); fflush(stdout); if (getline(&buff, &bufflen, stdin) == -1) break; /* int len; fdisplay(stdout, eval(parse(buff, &len)[0], &env)); printf("\n"); */ struct parse_error parse_err; struct value* vals; int len; if (PARSED(parse_err = parse(buff, &vals, &len))) { struct value ret; struct error err = eval(vals[0], &env, &ret); if (!SUCCEEDED(err)) { display_error(err); } else { fdisplay(stdout, ret); printf("\n"); } } else { display_parse_error(parse_err); printf("\n"); } } return 0; }
void main() { int n,num,num1,flag=0; while(1) { clrscr(); printf("\n\t\t****** DOUBLY LINKED LIST OPERATION ******\n"); printf("\t\t......______________________________......\n"); printf("\nWELCOME,WHAT YOU WANT TO DO ?::"); printf("\n_____________________________\n\n"); printf("\nINSERTION --PRESS 1\n"); printf("\nDELETION --PRESS 2\n"); printf("\nSEARCH --PRESS 3\n"); printf("\nCOUNT --PRESS 4\n"); printf("\nDISPLAY(F) --PRESS 5\n"); printf("\nDISPLAY(R) --PRESS 6\n"); printf("\nEXIT --PRESS 7\n"); printf("\n\nENTER YOUR CHOICE::\n"); scanf("%d",&n); switch(n) { case 1: while(1) { flag=0; clrscr(); printf("INSERT A NODE ::\n"); printf("\t\tAT FIRST -PRESS 1.\n"); printf("\t\tAFTER A NODE -PRESS 2.\n"); printf("\t\tBEFORE A NODE -PRESS 3.\n"); printf("\t\tAT LAST -PRESS 4.\n"); printf("\t\tEXIT FROM HERE-PRESS 5.\n"); printf("\n\nENTER YOUR CHOICE::\n"); scanf("%d",&n); switch(n) { case 1: printf("\nENTER A ELEMENT FOR INSERTION\n"); scanf("%d",&num); finsert(num); printf("\n%d IS INSERT AT FIRST PROPERLY\n",num); break; case 2: printf("\nENTER A ELEMENT FOR INSERTION\n"); scanf("%d",&num); printf("AFTER WHICH ELEMENT YOU WANT TO INSERT\n"); scanf("%d",&num1); ainsert(num,num1); break; case 3: printf("ENTER A ELEMENT FOR INSERTION\n"); scanf("%d",&num); printf("BEFORE WHICH ELEMENT YOU WANT TO INSERT\n"); scanf("%d",&num1); binsert(num,num1); break; case 4: printf("ENTER AN ELEMENT FOR INSERT IN LAST\n"); scanf("%d",&num); linsert(num); break; case 5: printf("\nTHANK YOU FOR USING INSERT OPERETION\n"); flag=1; break; } getch(); if(flag==1) break; } break; case 2: while(1) { flag=0; clrscr(); printf("DELETE A NODE ::\n"); printf("\t\tAT FIRST -PRESS 1.\n"); printf("\t\tAFTER A NODE -PRESS 2.\n"); printf("\t\tBEFORE A NODE -PRESS 3.\n"); printf("\t\tAT LAST -PRESS 4.\n"); printf("\t\tEXACT A NODE -PRESS 5.\n"); printf("\t\tEXIT FROM HERE-PRESS 6.\n"); printf("\n\nENTER YOUR CHOICE::\n"); scanf("%d",&n); switch(n) { case 1: fdelete(); break; case 2: printf("\nENTER AFTER WHICH ELEMENT YOU WANT TO DELETE A NODE\n"); scanf("%d",&num); adelete(num); break; case 3: printf("\nENTER BEFORE WHICH ELEMENT YOU WANT TO DELETE A NODE\n"); scanf("%d",&num); bdelete(num); break; case 4: ldelete(); break; case 5: printf("WHICH ELEMENT CONTAIN NODE YOU WANT TO DELETE:\n"); scanf("%d",&num); edelete(num); break; case 6: printf("THANK YOU FOR USING DELETE OPERETION"); flag=1; break; } getch(); if(flag==1) break; } break; case 3: printf("WHICH ELEMENT YOU WANT TO SEARCH ?"); scanf("%d",&num); search(num); break; case 4: num=count(); printf("AT PRESENT LINKLIST CONTAIN %d NODES\n",num); break; case 5: fdisplay(); break; case 6: rdisplay(); break; case 7: printf("\n\nTHANK YOU FOR USING THIS PROGRAM\n"); getch(); exit(0); } getch(); } }
void display(const TURN stone[SIZE_Y][SIZE_X]){ clearDisplay(); fdisplay(stdout, stone); }