Lines Matching defs:op
48 #define IS_BINOP(op) (((int)op) >= (int)O_EQ && ((int)op) <= (int)O_COMMA)
49 #define IS_ASSIGNOP(op) ((int)(op) >= (int)O_ASN && (int)(op) <= (int)O_BORASN)
141 static struct tbl *do_ppmm ARGS((Expr_state *es, enum token op,
143 static void assign_check ARGS((Expr_state *es, enum token op,
290 enum token op;
294 op = es->tok;
295 if (op == O_BNOT || op == O_LNOT || op == O_MINUS
296 || op == O_PLUS)
300 if (op == O_BNOT)
302 else if (op == O_LNOT)
304 else if (op == O_MINUS)
306 /* op == O_PLUS is a no-op */
307 } else if (op == OPEN_PAREN) {
313 } else if (op == O_PLUSPLUS || op == O_MINUSMINUS) {
315 vl = do_ppmm(es, op, es->val, TRUE);
317 } else if (op == VAR || op == LIT) {
331 for (op = es->tok; IS_BINOP(op) && opinfo[(int) op].prec == prec;
332 op = es->tok)
336 if (op != O_ASN) /* vl may not have a value yet */
338 if (IS_ASSIGNOP(op)) {
339 assign_check(es, op, vasn);
341 } else if (op != O_TERN && op != O_LAND && op != O_LOR)
343 if ((op == O_DIV || op == O_MOD || op == O_DIVASN
344 || op == O_MODASN) && vr->val.i == 0)
351 switch ((int) op) {
452 if (IS_ASSIGNOP(op)) {
459 } else if (op != O_TERN)
540 do_ppmm(es, op, vasn, is_prefix)
542 enum token op;
549 assign_check(es, op, vasn);
552 oval = op == O_PLUSPLUS ? vl->val.i++ : vl->val.i--;
564 assign_check(es, op, vasn)
566 enum token op;
570 evalerr(es, ET_LVALUE, opinfo[(int) op].name);
572 evalerr(es, ET_RDONLY, opinfo[(int) op].name);