Example #1
0
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;
    }
}
Example #2
0
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");
}
Example #3
0
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;
}
Example #4
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();
	}
}
Example #5
0
void display(const TURN stone[SIZE_Y][SIZE_X]){
    clearDisplay();
    fdisplay(stdout, stone);
}