Lines Matching refs:sym
17 struct expr *expr_alloc_symbol(struct symbol *sym) in expr_alloc_symbol() argument
21 e->left.sym = sym; in expr_alloc_symbol()
46 e->left.sym = s1; in expr_alloc_comp()
47 e->right.sym = s2; in expr_alloc_comp()
87 e->left.sym = org->left.sym; in expr_copy()
88 e->right.sym = org->right.sym; in expr_copy()
154 e1->left.sym == e2->left.sym && in __expr_eliminate_eq()
155 (e1->left.sym == &symbol_yes || e1->left.sym == &symbol_no)) in __expr_eliminate_eq()
220 return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym; in expr_eq()
222 return e1->left.sym == e2->left.sym; in expr_eq()
232 e1->left.sym == e2->left.sym); in expr_eq()
262 if (e->left.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
266 e->left.sym = &symbol_no; in expr_eliminate_yn()
269 } else if (e->left.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
278 if (e->right.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
282 e->left.sym = &symbol_no; in expr_eliminate_yn()
285 } else if (e->right.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
298 if (e->left.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
304 } else if (e->left.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
308 e->left.sym = &symbol_yes; in expr_eliminate_yn()
314 if (e->right.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
320 } else if (e->right.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
324 e->left.sym = &symbol_yes; in expr_eliminate_yn()
352 if (e->left.sym->type == S_TRISTATE) { in expr_trans_bool()
353 if (e->right.sym == &symbol_no) { in expr_trans_bool()
355 e->right.sym = NULL; in expr_trans_bool()
383 sym1 = tmp->left.sym; in expr_join_or()
385 sym1 = e1->left.sym; in expr_join_or()
389 sym2 = e2->left.expr->left.sym; in expr_join_or()
391 sym2 = e2->left.sym; in expr_join_or()
398 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || in expr_join_or()
399 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { in expr_join_or()
404 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || in expr_join_or()
405 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { in expr_join_or()
410 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || in expr_join_or()
411 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { in expr_join_or()
447 sym1 = tmp->left.sym; in expr_join_and()
449 sym1 = e1->left.sym; in expr_join_and()
453 sym2 = e2->left.expr->left.sym; in expr_join_and()
455 sym2 = e2->left.sym; in expr_join_and()
461 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || in expr_join_and()
462 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) in expr_join_and()
466 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || in expr_join_and()
467 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) in expr_join_and()
471 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || in expr_join_and()
472 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) in expr_join_and()
479 sym2 = e1->right.sym; in expr_join_and()
480 if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) in expr_join_and()
481 return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) in expr_join_and()
486 sym2 = e2->right.sym; in expr_join_and()
487 if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) in expr_join_and()
488 return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) in expr_join_and()
492 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || in expr_join_and()
493 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) in expr_join_and()
498 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || in expr_join_and()
499 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) in expr_join_and()
504 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || in expr_join_and()
505 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) in expr_join_and()
509 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || in expr_join_and()
510 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) || in expr_join_and()
511 (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) || in expr_join_and()
512 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes)) in expr_join_and()
624 if (e->left.sym->type != S_BOOLEAN) in expr_transform()
626 if (e->right.sym == &symbol_no) { in expr_transform()
628 e->left.expr = expr_alloc_symbol(e->left.sym); in expr_transform()
629 e->right.sym = NULL; in expr_transform()
632 if (e->right.sym == &symbol_mod) { in expr_transform()
633 printf("boolean symbol %s tested for 'm'? test forced to 'n'\n", e->left.sym->name); in expr_transform()
635 e->left.sym = &symbol_no; in expr_transform()
636 e->right.sym = NULL; in expr_transform()
639 if (e->right.sym == &symbol_yes) { in expr_transform()
641 e->right.sym = NULL; in expr_transform()
646 if (e->left.sym->type != S_BOOLEAN) in expr_transform()
648 if (e->right.sym == &symbol_no) { in expr_transform()
650 e->right.sym = NULL; in expr_transform()
653 if (e->right.sym == &symbol_mod) { in expr_transform()
654 printf("boolean symbol %s tested for 'm'? test forced to 'y'\n", e->left.sym->name); in expr_transform()
656 e->left.sym = &symbol_yes; in expr_transform()
657 e->right.sym = NULL; in expr_transform()
660 if (e->right.sym == &symbol_yes) { in expr_transform()
662 e->left.expr = expr_alloc_symbol(e->left.sym); in expr_transform()
663 e->right.sym = NULL; in expr_transform()
720 if (e->left.expr->left.sym == &symbol_yes) { in expr_transform()
726 e->left.sym = &symbol_no; in expr_transform()
729 if (e->left.expr->left.sym == &symbol_mod) { in expr_transform()
735 e->left.sym = &symbol_mod; in expr_transform()
738 if (e->left.expr->left.sym == &symbol_no) { in expr_transform()
744 e->left.sym = &symbol_yes; in expr_transform()
758 int expr_contains_symbol(struct expr *dep, struct symbol *sym) in expr_contains_symbol() argument
766 return expr_contains_symbol(dep->left.expr, sym) || in expr_contains_symbol()
767 expr_contains_symbol(dep->right.expr, sym); in expr_contains_symbol()
769 return dep->left.sym == sym; in expr_contains_symbol()
776 return dep->left.sym == sym || in expr_contains_symbol()
777 dep->right.sym == sym; in expr_contains_symbol()
779 return expr_contains_symbol(dep->left.expr, sym); in expr_contains_symbol()
786 bool expr_depends_symbol(struct expr *dep, struct symbol *sym) in expr_depends_symbol() argument
793 return expr_depends_symbol(dep->left.expr, sym) || in expr_depends_symbol()
794 expr_depends_symbol(dep->right.expr, sym); in expr_depends_symbol()
796 return dep->left.sym == sym; in expr_depends_symbol()
798 if (dep->left.sym == sym) { in expr_depends_symbol()
799 if (dep->right.sym == &symbol_yes || dep->right.sym == &symbol_mod) in expr_depends_symbol()
804 if (dep->left.sym == sym) { in expr_depends_symbol()
805 if (dep->right.sym == &symbol_no) in expr_depends_symbol()
815 struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym) in expr_trans_compare() argument
820 e = expr_alloc_symbol(sym); in expr_trans_compare()
827 e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); in expr_trans_compare()
828 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym); in expr_trans_compare()
829 if (sym == &symbol_yes) in expr_trans_compare()
831 if (sym == &symbol_no) in expr_trans_compare()
837 e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); in expr_trans_compare()
838 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym); in expr_trans_compare()
839 if (sym == &symbol_yes) in expr_trans_compare()
841 if (sym == &symbol_no) in expr_trans_compare()
847 return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym); in expr_trans_compare()
855 if (sym == &symbol_yes) in expr_trans_compare()
857 if (sym == &symbol_mod) in expr_trans_compare()
859 if (sym == &symbol_no) in expr_trans_compare()
862 if (sym == &symbol_yes) in expr_trans_compare()
864 if (sym == &symbol_mod) in expr_trans_compare()
866 if (sym == &symbol_no) in expr_trans_compare()
871 return expr_alloc_comp(type, e->left.sym, sym); in expr_trans_compare()
937 sym_calc_value(e->left.sym); in expr_calc_value()
938 return e->left.sym->curr.tri; in expr_calc_value()
962 sym_calc_value(e->left.sym); in expr_calc_value()
963 sym_calc_value(e->right.sym); in expr_calc_value()
964 str1 = sym_get_string_value(e->left.sym); in expr_calc_value()
965 str2 = sym_get_string_value(e->right.sym); in expr_calc_value()
967 if (e->left.sym->type != S_STRING || e->right.sym->type != S_STRING) { in expr_calc_value()
968 k1 = expr_parse_string(str1, e->left.sym->type, &lval); in expr_calc_value()
969 k2 = expr_parse_string(str2, e->right.sym->type, &rval); in expr_calc_value()
1091 if (e->left.sym->name) in expr_print()
1092 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1101 if (e->left.sym->name) in expr_print()
1102 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1106 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1110 if (e->left.sym->name) in expr_print()
1111 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1115 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1119 if (e->left.sym->name) in expr_print()
1120 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1124 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1127 if (e->left.sym->name) in expr_print()
1128 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1132 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1145 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1153 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1155 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1170 static void expr_print_file_helper(void *data, struct symbol *sym, const char *str) in expr_print_file_helper() argument
1180 static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str) in expr_print_gstr_helper() argument
1185 if (sym) in expr_print_gstr_helper()
1186 sym_str = sym_get_string_value(sym); in expr_print_gstr_helper()
1206 if (sym && sym->type != S_UNKNOWN) in expr_print_gstr_helper()