Lines Matching defs:exp

91 stack_push(struct stack *stk, struct expr *exp)
95 printf(" type: %s\n", type_name[GETTYPE(exp->op)]);
96 printf(" flag: %s\n", type_name[GETTYPE(exp->flag)]);
99 stk->ptr[stk->index++] = exp;
102 freeexpr(exp);
107 return (exp);
246 reduce(struct expr **nexp, unsigned int n, struct expr *exp, struct stack *stk)
260 exp1 = exp;
274 exp2 = exp;
291 exp3 = exp;
459 struct expr *exp, *nexp, *exp_op, *ret;
503 exp = setop1(op, 0, stk, flag);
504 if (!exp)
506 ret = stack_push(stk, exp);
524 exp = setop1(op, 0, stk, flag);
525 if (!exp)
527 ret = stack_push(stk, exp);
544 exp = setop1(op, 0, stk, flag);
545 if (!exp)
547 ret = stack_push(stk, exp);
565 exp = setop1(op, 0, stk, flag);
566 if (!exp)
568 ret = stack_push(stk, exp);
595 exp = stack_pop(stk, NULL, NULL);
596 if (!exp)
603 ptype = GETTYPE(exp->flag);
604 popnum = GETOPNUM(exp->flag);
607 printf("=========== exp->flag: %s\n",
611 exp_op = stack_pop(stk, exp, NULL);
618 exp->flag = tmp_flag;
627 exp, stk);
630 exp = nexp;
634 freeexpr(exp);
643 * Needs to check if exp can be reduced or not
658 exp = setop1(op, 0, stk, flag);
659 if (!exp)
661 ret = stack_push(stk, exp);
668 exp = setop1(op, type == T_NUM ? num : 0, stk, flag);
669 if (!exp)
678 exp->flag = flag;
679 ret = stack_push(stk, exp);
691 freeexpr(exp);
717 exp->flag = flag;
718 ret = stack_push(stk, exp);
727 result = reduce(&nexp, UNARY, exp, stk);
730 exp = nexp;
745 exp, stk);
748 exp = nexp;
753 exp->flag = flag;
754 ret = stack_push(stk, exp);
766 exp->flag = flag;
767 ret = stack_push(stk, exp);
777 exp, stk);
780 exp = nexp;
785 exp->flag = flag;
786 ret = stack_push(stk, exp);
793 freeexpr(exp);
817 exp = stack_pop(stk, NULL, NULL);
818 if (!exp)
821 if (GETTYPE(exp->flag) != T_INIT) {
826 type_name[GETTYPE(exp->flag)]);
828 freeexpr(exp);
834 * exp still remains in stack.
839 freeexpr(exp);
844 *e = exp;
851 plural_eval(struct expr *exp, unsigned int n)
857 exp, n);
858 printexpr(exp, 0);
861 type = GETTYPE(exp->op);
862 opnum = GETOPNUM(exp->op);
867 return (exp->num);
874 e1 = plural_eval(exp->nodes[0], n);
877 e1 = plural_eval(exp->nodes[0], n);
880 return (e1 || plural_eval(exp->nodes[1], n));
882 return (e1 && plural_eval(exp->nodes[1], n));
884 e2 = plural_eval(exp->nodes[1], n);
916 e1 = plural_eval(exp->nodes[0], n);
918 return (plural_eval(exp->nodes[1], n));
920 return (plural_eval(exp->nodes[2], n));