Exemplo n.º 1
0
void insPrint(Inst inst)
{
    switch (inst.type) {
    case INST_ASSIGN:
	printf("  (assign ");
	regPrint(inst.u.assign.target);
	printf(" ");
	srcPrint(inst.u.assign.source);
	printf(")\n");
	break;
    case INST_PERFORM:
	printf("  (perform ");
	opPrint(inst.u.oper.op);
	printf(")\n");
	break;
    case INST_TEST:
	printf("  (test ");
	opPrint(inst.u.oper.op);
	printf(")\n");
	break;
    case INST_LABEL:
	lblPrint(inst.u.label.lbl);
	printf("\n");
	break;
    case INST_BRANCH:
	printf("  (branch ");
	trgPrint(inst.u.jump.target);
	printf(")\n");
	break;
    case INST_GOTO:
	printf("  (goto ");
	trgPrint(inst.u.jump.target);
	printf(")\n");
	break;
    case INST_SAVE:
	printf("  (save ");
	regPrint(inst.u.stackOp.reg);
	printf(")\n");
	break;
    case INST_RESTORE:
	printf("  (restore ");
	regPrint(inst.u.stackOp.reg);
	printf(")\n");
	break;
    default:
	printf("Unknown instruction type\n");
	break;
    }
}
Exemplo n.º 2
0
int main()
{
    printf("This program performs some basic operations with polynomials.\n"
           "Type help (or h) for more information\n");

    Polynomial space['z' - 'a' + 1];

    char command[20];
    for (;;)
    {
        printf("> ");
        scanf("%s", command);
        switch (command[0])
        {
        case 'a':
            opAdd(space);
            break;
        case 'p':
            opPrint(space);
            break;
        case 'r':
            opRemove(space);
            break;
        case 'e':
            opIsEqual(space);
            break;
        case 's':
            opSumm(space);
            break;
        case 'v':
            opValue(space);
            break;
        case 'h':
            opHelp();
            break;
        case 'q':
            return 0;
        }
    }
}
Exemplo n.º 3
0
void srcPrint(Source src)
{
    switch (src.type) {
    case SRC_REG:
	printf("(reg ");
	regPrint(src.u.reg);
	printf(")");
	break;
    case SRC_CONST:
	conPrint(src.u.con);
	break;
    case SRC_OP:
	opPrint(src.u.op);
	break;
    case SRC_LABEL:
	printf("(label ");
	lblPrint(src.u.lbl);
	printf(")");
	break;
    default:
	printf("Unknown source type\n");
	break;
    }
}