• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/router/config/

Lines Matching refs:e2

31 struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2)
37 e->right.expr = e2;
51 struct expr *expr_alloc_and(struct expr *e1, struct expr *e2)
54 return e2;
55 return e2 ? expr_alloc_two(E_AND, e1, e2) : e1;
124 #define e2 (*ep2)
129 __expr_eliminate_eq(type, &e1->left.expr, &e2);
130 __expr_eliminate_eq(type, &e1->right.expr, &e2);
133 if (e2->type == type) {
134 __expr_eliminate_eq(type, &e1, &e2->left.expr);
135 __expr_eliminate_eq(type, &e1, &e2->right.expr);
138 if (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
139 e1->left.sym == e2->left.sym && (e1->left.sym->flags & (SYMBOL_YES|SYMBOL_NO)))
141 if (!expr_eq(e1, e2))
144 expr_free(e1); expr_free(e2);
148 e2 = expr_alloc_symbol(&symbol_no);
152 e2 = expr_alloc_symbol(&symbol_yes);
161 if (!e1 || !e2 || e1->type != e2->type)
165 e2 = expr_eliminate_yn(e2);
169 #undef e2
171 int expr_eq(struct expr *e1, struct expr *e2)
175 if (e1->type != e2->type)
180 return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym;
182 return e1->left.sym == e2->left.sym;
184 return expr_eq(e1->left.expr, e2->left.expr);
188 e2 = expr_copy(e2);
190 expr_eliminate_eq(&e1, &e2);
191 res = (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
192 e1->left.sym == e2->left.sym);
194 expr_free(e2);
204 print_expr(0, e2, 0);
323 * e1 || e2 -> ?
325 struct expr *expr_join_or(struct expr *e1, struct expr *e2)
330 if (expr_eq(e1, e2))
334 if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
343 if (e2->type == E_NOT) {
344 if (e2->left.expr->type != E_SYMBOL)
346 sym2 = e2->left.expr->left.sym;
348 sym2 = e2->left.sym;
354 if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
355 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
356 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) {
360 if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
361 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
362 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) {
366 if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
367 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
368 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) {
374 if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) ||
375 (e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL))
382 print_expr(0, e2, 0);
387 struct expr *expr_join_and(struct expr *e1, struct expr *e2)
392 if (expr_eq(e1, e2))
396 if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
405 if (e2->type == E_NOT) {
406 if (e2->left.expr->type != E_SYMBOL)
408 sym2 = e2->left.expr->left.sym;
410 sym2 = e2->left.sym;
416 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
417 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
421 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) ||
422 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no))
427 if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
430 if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
431 return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
434 if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
436 sym2 = e2->right.sym;
441 if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
442 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
443 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes)))
447 if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
448 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
449 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes)))
453 if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
454 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
455 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod)))
459 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
460 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) ||
461 (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) ||
462 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes))
468 print_expr(0, e2, 0);
476 #define e2 (*ep2)
480 expr_eliminate_dups1(type, &e1->left.expr, &e2);
481 expr_eliminate_dups1(type, &e1->right.expr, &e2);
484 if (e2->type == type) {
485 expr_eliminate_dups1(type, &e1, &e2->left.expr);
486 expr_eliminate_dups1(type, &e1, &e2->right.expr);
489 if (e1 == e2)
501 tmp = expr_join_or(e1, e2);
503 expr_free(e1); expr_free(e2);
505 e2 = tmp;
510 tmp = expr_join_and(e1, e2);
512 expr_free(e1); expr_free(e2);
514 e2 = tmp;
522 #undef e2
528 #define e2 (*ep2)
532 expr_eliminate_dups2(type, &e1->left.expr, &e2);
533 expr_eliminate_dups2(type, &e1->right.expr, &e2);
536 if (e2->type == type) {
537 expr_eliminate_dups2(type, &e1, &e2->left.expr);
538 expr_eliminate_dups2(type, &e1, &e2->right.expr);
540 if (e1 == e2)
548 tmp2 = expr_copy(e2);
563 tmp2 = expr_copy(e2);
578 #undef e2
820 #define e2 (*ep2)
822 expr_extract_eq(type, ep, &e1->left.expr, &e2);
823 expr_extract_eq(type, ep, &e1->right.expr, &e2);
826 if (e2->type == type) {
827 expr_extract_eq(type, ep, ep1, &e2->left.expr);
828 expr_extract_eq(type, ep, ep1, &e2->right.expr);
831 if (expr_eq(e1, e2)) {
833 expr_free(e2);
836 e2 = expr_alloc_symbol(&symbol_yes);
839 e2 = expr_alloc_symbol(&symbol_no);
843 #undef e2
848 struct expr *e1, *e2;
859 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
861 e = expr_alloc_two(E_AND, e1, e2);
863 e = expr_alloc_two(E_OR, e1, e2);
869 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
871 e = expr_alloc_two(E_OR, e1, e2);
873 e = expr_alloc_two(E_AND, e1, e2);