E_EQUAL
if (t2 == E_EQUAL || t2 == E_UNEQUAL)
case E_EQUAL:
case E_EQUAL:
case E_EQUAL:
if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT)
if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL)
if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT)
if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL)
if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
(e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod);
return expr_alloc_comp(E_EQUAL, sym1, &symbol_no);
return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
(e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) ||
case E_EQUAL:
case E_EQUAL:
case E_EQUAL:
e = expr_alloc_comp(e->left.expr->type == E_EQUAL ? E_UNEQUAL : E_EQUAL,
case E_EQUAL:
case E_EQUAL:
e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym);
case E_EQUAL:
if (type == E_EQUAL) {
case E_EQUAL:
case E_EQUAL:
expr_trans_compare(cond, E_EQUAL, &symbol_no));
| symbol T_EQUAL symbol { $$ = expr_alloc_comp(E_EQUAL, $1, $3); }
case E_EQUAL: