pexpr.c.3
上传用户:upcnvip
上传日期:2007-01-06
资源大小:474k
文件大小:8k
- setprec2(10);
- checkbreak(breakbeforerel);
- wrexpr(ex->args[0], incompat(ex, 0, subprec));
- outop(">");
- wrexpr(ex->args[1], incompat(ex, 0, subprec));
- break;
- case EK_LE:
- setprec2(10);
- checkbreak(breakbeforerel);
- wrexpr(ex->args[0], incompat(ex, 0, subprec));
- outop("<=");
- wrexpr(ex->args[1], incompat(ex, 0, subprec));
- break;
- case EK_GE:
- setprec2(10);
- checkbreak(breakbeforerel);
- wrexpr(ex->args[0], incompat(ex, 0, subprec));
- outop(">=");
- wrexpr(ex->args[1], incompat(ex, 0, subprec));
- break;
- case EK_EQ:
- setprec2(9);
- checkbreak(breakbeforerel);
- wrexpr(ex->args[0], incompat(ex, 0, subprec));
- outop("==");
- wrexpr(ex->args[1], incompat(ex, 0, subprec));
- break;
- case EK_NE:
- setprec2(9);
- checkbreak(breakbeforerel);
- wrexpr(ex->args[0], incompat(ex, 0, subprec));
- outop("!=");
- wrexpr(ex->args[1], incompat(ex, 0, subprec));
- break;
- case EK_BAND:
- setprec3(8);
- if (ex->val.type == tp_boolean)
- checkbreak(breakbeforelog);
- else
- checkbreak(breakbeforearith);
- wrexpr(ex->args[0], incompat(ex, 0, subprec-1));
- outop("&");
- wrexpr(ex->args[1], incompat(ex, 1, subprec-1));
- break;
- case EK_BXOR:
- setprec3(7);
- checkbreak(breakbeforearith);
- wrexpr(ex->args[0], incompat(ex, 0, subprec-1));
- outop("^");
- wrexpr(ex->args[1], incompat(ex, 1, subprec-1));
- break;
- case EK_BOR:
- setprec3(6);
- if (ex->val.type == tp_boolean)
- checkbreak(breakbeforelog);
- else
- checkbreak(breakbeforearith);
- wrexpr(ex->args[0], incompat(ex, 0, subprec-1));
- outop("|");
- wrexpr(ex->args[1], incompat(ex, 1, subprec-1));
- break;
- case EK_AND:
- setprec3(5);
- checkbreak(breakbeforelog);
- wrexpr(ex->args[0], incompat(ex, 0, subprec-1));
- outop("&&");
- wrexpr(ex->args[1], incompat(ex, 1, subprec-1));
- break;
- case EK_OR:
- setprec3(4);
- checkbreak(breakbeforelog);
- wrexpr(ex->args[0], incompat(ex, 0, subprec-1));
- outop("||");
- wrexpr(ex->args[1], incompat(ex, 1, subprec-1));
- break;
- case EK_COND:
- setprec3(3);
- i = 0;
- for (;;) {
- i++;
- if (extraparens != 0)
- wrexpr(ex->args[0], 15);
- else
- wrexpr(ex->args[0], subprec);
- NICESPACE();
- output("