Lines Matching refs:sym
15 struct expr *expr_alloc_symbol(struct symbol *sym)
20 e->left.sym = sym;
48 e->left.sym = s1;
49 e->right.sym = s2;
85 e->left.sym = org->left.sym;
86 e->right.sym = org->right.sym;
148 e1->left.sym == e2->left.sym &&
149 (e1->left.sym == &symbol_yes || e1->left.sym == &symbol_no))
203 return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym;
205 return e1->left.sym == e2->left.sym;
215 e1->left.sym == e2->left.sym);
245 if (e->left.expr->left.sym == &symbol_no) {
249 e->left.sym = &symbol_no;
252 } else if (e->left.expr->left.sym == &symbol_yes) {
261 if (e->right.expr->left.sym == &symbol_no) {
265 e->left.sym = &symbol_no;
268 } else if (e->right.expr->left.sym == &symbol_yes) {
281 if (e->left.expr->left.sym == &symbol_no) {
287 } else if (e->left.expr->left.sym == &symbol_yes) {
291 e->left.sym = &symbol_yes;
297 if (e->right.expr->left.sym == &symbol_no) {
303 } else if (e->right.expr->left.sym == &symbol_yes) {
307 e->left.sym = &symbol_yes;
335 if (e->left.sym->type == S_TRISTATE) {
336 if (e->right.sym == &symbol_no) {
338 e->right.sym = NULL;
366 sym1 = tmp->left.sym;
368 sym1 = e1->left.sym;
372 sym2 = e2->left.expr->left.sym;
374 sym2 = e2->left.sym;
381 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
382 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) {
387 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
388 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) {
393 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
394 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) {
430 sym1 = tmp->left.sym;
432 sym1 = e1->left.sym;
436 sym2 = e2->left.expr->left.sym;
438 sym2 = e2->left.sym;
444 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
445 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
449 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) ||
450 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no))
454 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) ||
455 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod))
462 sym2 = e1->right.sym;
463 if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
464 return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
469 sym2 = e2->right.sym;
470 if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
471 return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
475 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
476 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes)))
481 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
482 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes)))
487 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
488 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod)))
492 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
493 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) ||
494 (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) ||
495 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes))
660 if (e->left.sym->type != S_BOOLEAN)
662 if (e->right.sym == &symbol_no) {
664 e->left.expr = expr_alloc_symbol(e->left.sym);
665 e->right.sym = NULL;
668 if (e->right.sym == &symbol_mod) {
669 printf("boolean symbol %s tested for 'm'? test forced to 'n'\n", e->left.sym->name);
671 e->left.sym = &symbol_no;
672 e->right.sym = NULL;
675 if (e->right.sym == &symbol_yes) {
677 e->right.sym = NULL;
682 if (e->left.sym->type != S_BOOLEAN)
684 if (e->right.sym == &symbol_no) {
686 e->right.sym = NULL;
689 if (e->right.sym == &symbol_mod) {
690 printf("boolean symbol %s tested for 'm'? test forced to 'y'\n", e->left.sym->name);
692 e->left.sym = &symbol_yes;
693 e->right.sym = NULL;
696 if (e->right.sym == &symbol_yes) {
698 e->left.expr = expr_alloc_symbol(e->left.sym);
699 e->right.sym = NULL;
740 if (e->left.expr->left.sym == &symbol_yes) {
746 e->left.sym = &symbol_no;
749 if (e->left.expr->left.sym == &symbol_mod) {
755 e->left.sym = &symbol_mod;
758 if (e->left.expr->left.sym == &symbol_no) {
764 e->left.sym = &symbol_yes;
778 int expr_contains_symbol(struct expr *dep, struct symbol *sym)
786 return expr_contains_symbol(dep->left.expr, sym) ||
787 expr_contains_symbol(dep->right.expr, sym);
789 return dep->left.sym == sym;
792 return dep->left.sym == sym ||
793 dep->right.sym == sym;
795 return expr_contains_symbol(dep->left.expr, sym);
802 bool expr_depends_symbol(struct expr *dep, struct symbol *sym)
809 return expr_depends_symbol(dep->left.expr, sym) ||
810 expr_depends_symbol(dep->right.expr, sym);
812 return dep->left.sym == sym;
814 if (dep->left.sym == sym) {
815 if (dep->right.sym == &symbol_yes || dep->right.sym == &symbol_mod)
820 if (dep->left.sym == sym) {
821 if (dep->right.sym == &symbol_no)
882 struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym)
887 e = expr_alloc_symbol(sym);
894 e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
895 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
896 if (sym == &symbol_yes)
898 if (sym == &symbol_no)
904 e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
905 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
906 if (sym == &symbol_yes)
908 if (sym == &symbol_no)
914 return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym);
918 if (sym == &symbol_yes)
920 if (sym == &symbol_mod)
922 if (sym == &symbol_no)
925 if (sym == &symbol_yes)
927 if (sym == &symbol_mod)
929 if (sym == &symbol_no)
934 return expr_alloc_comp(type, e->left.sym, sym);
953 sym_calc_value(e->left.sym);
954 return e->left.sym->curr.tri;
967 sym_calc_value(e->left.sym);
968 sym_calc_value(e->right.sym);
969 str1 = sym_get_string_value(e->left.sym);
970 str2 = sym_get_string_value(e->right.sym);
973 sym_calc_value(e->left.sym);
974 sym_calc_value(e->right.sym);
975 str1 = sym_get_string_value(e->left.sym);
976 str2 = sym_get_string_value(e->right.sym);
1027 if (e->left.sym->name)
1028 fn(data, e->left.sym, e->left.sym->name);
1037 fn(data, e->left.sym, e->left.sym->name);
1039 fn(data, e->right.sym, e->right.sym->name);
1042 fn(data, e->left.sym, e->left.sym->name);
1044 fn(data, e->right.sym, e->right.sym->name);
1057 fn(data, e->right.sym, e->right.sym->name);
1065 fn(data, e->left.sym, e->left.sym->name);
1067 fn(data, e->right.sym, e->right.sym->name);
1082 static void expr_print_file_helper(void *data, struct symbol *sym, const char *str)
1092 static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str)