Lines Matching refs:sym
19 struct expr *expr_alloc_symbol(struct symbol *sym) in expr_alloc_symbol() argument
23 e->left.sym = sym; in expr_alloc_symbol()
48 e->left.sym = s1; in expr_alloc_comp()
49 e->right.sym = s2; in expr_alloc_comp()
89 e->left.sym = org->left.sym; in expr_copy()
90 e->right.sym = org->right.sym; in expr_copy()
169 e1->left.sym == e2->left.sym && in __expr_eliminate_eq()
170 (e1->left.sym == &symbol_yes || e1->left.sym == &symbol_no)) in __expr_eliminate_eq()
273 return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym; in expr_eq()
275 return e1->left.sym == e2->left.sym; in expr_eq()
285 e1->left.sym == e2->left.sym); in expr_eq()
326 if (e->left.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
330 e->left.sym = &symbol_no; in expr_eliminate_yn()
333 } else if (e->left.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
342 if (e->right.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
346 e->left.sym = &symbol_no; in expr_eliminate_yn()
349 } else if (e->right.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
362 if (e->left.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
368 } else if (e->left.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
372 e->left.sym = &symbol_yes; in expr_eliminate_yn()
378 if (e->right.expr->left.sym == &symbol_no) { in expr_eliminate_yn()
384 } else if (e->right.expr->left.sym == &symbol_yes) { in expr_eliminate_yn()
388 e->left.sym = &symbol_yes; in expr_eliminate_yn()
416 if (e->left.sym->type == S_TRISTATE) { in expr_trans_bool()
417 if (e->right.sym == &symbol_no) { in expr_trans_bool()
419 e->right.sym = NULL; in expr_trans_bool()
447 sym1 = tmp->left.sym; in expr_join_or()
449 sym1 = e1->left.sym; in expr_join_or()
453 sym2 = e2->left.expr->left.sym; in expr_join_or()
455 sym2 = e2->left.sym; in expr_join_or()
462 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || in expr_join_or()
463 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { in expr_join_or()
468 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || in expr_join_or()
469 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { in expr_join_or()
474 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || in expr_join_or()
475 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { in expr_join_or()
511 sym1 = tmp->left.sym; in expr_join_and()
513 sym1 = e1->left.sym; in expr_join_and()
517 sym2 = e2->left.expr->left.sym; in expr_join_and()
519 sym2 = e2->left.sym; in expr_join_and()
525 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || in expr_join_and()
526 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) in expr_join_and()
530 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || in expr_join_and()
531 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) in expr_join_and()
535 if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || in expr_join_and()
536 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) in expr_join_and()
543 sym2 = e1->right.sym; in expr_join_and()
544 if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) in expr_join_and()
545 return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) in expr_join_and()
550 sym2 = e2->right.sym; in expr_join_and()
551 if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) in expr_join_and()
552 return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) in expr_join_and()
556 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || in expr_join_and()
557 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) in expr_join_and()
562 ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || in expr_join_and()
563 (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) in expr_join_and()
568 ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || in expr_join_and()
569 (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) in expr_join_and()
573 if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || in expr_join_and()
574 (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) || in expr_join_and()
575 (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) || in expr_join_and()
576 (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes)) in expr_join_and()
718 if (e->left.sym->type != S_BOOLEAN) in expr_transform()
720 if (e->right.sym == &symbol_no) { in expr_transform()
722 e->left.expr = expr_alloc_symbol(e->left.sym); in expr_transform()
723 e->right.sym = NULL; in expr_transform()
726 if (e->right.sym == &symbol_mod) { in expr_transform()
727 printf("boolean symbol %s tested for 'm'? test forced to 'n'\n", e->left.sym->name); in expr_transform()
729 e->left.sym = &symbol_no; in expr_transform()
730 e->right.sym = NULL; in expr_transform()
733 if (e->right.sym == &symbol_yes) { in expr_transform()
735 e->right.sym = NULL; in expr_transform()
740 if (e->left.sym->type != S_BOOLEAN) in expr_transform()
742 if (e->right.sym == &symbol_no) { in expr_transform()
744 e->right.sym = NULL; in expr_transform()
747 if (e->right.sym == &symbol_mod) { in expr_transform()
748 printf("boolean symbol %s tested for 'm'? test forced to 'y'\n", e->left.sym->name); in expr_transform()
750 e->left.sym = &symbol_yes; in expr_transform()
751 e->right.sym = NULL; in expr_transform()
754 if (e->right.sym == &symbol_yes) { in expr_transform()
756 e->left.expr = expr_alloc_symbol(e->left.sym); in expr_transform()
757 e->right.sym = NULL; in expr_transform()
814 if (e->left.expr->left.sym == &symbol_yes) { in expr_transform()
820 e->left.sym = &symbol_no; in expr_transform()
823 if (e->left.expr->left.sym == &symbol_mod) { in expr_transform()
829 e->left.sym = &symbol_mod; in expr_transform()
832 if (e->left.expr->left.sym == &symbol_no) { in expr_transform()
838 e->left.sym = &symbol_yes; in expr_transform()
852 int expr_contains_symbol(struct expr *dep, struct symbol *sym) in expr_contains_symbol() argument
860 return expr_contains_symbol(dep->left.expr, sym) || in expr_contains_symbol()
861 expr_contains_symbol(dep->right.expr, sym); in expr_contains_symbol()
863 return dep->left.sym == sym; in expr_contains_symbol()
870 return dep->left.sym == sym || in expr_contains_symbol()
871 dep->right.sym == sym; in expr_contains_symbol()
873 return expr_contains_symbol(dep->left.expr, sym); in expr_contains_symbol()
880 bool expr_depends_symbol(struct expr *dep, struct symbol *sym) in expr_depends_symbol() argument
887 return expr_depends_symbol(dep->left.expr, sym) || in expr_depends_symbol()
888 expr_depends_symbol(dep->right.expr, sym); in expr_depends_symbol()
890 return dep->left.sym == sym; in expr_depends_symbol()
892 if (dep->left.sym == sym) { in expr_depends_symbol()
893 if (dep->right.sym == &symbol_yes || dep->right.sym == &symbol_mod) in expr_depends_symbol()
898 if (dep->left.sym == sym) { in expr_depends_symbol()
899 if (dep->right.sym == &symbol_no) in expr_depends_symbol()
923 struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym) in expr_trans_compare() argument
928 e = expr_alloc_symbol(sym); in expr_trans_compare()
935 e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); in expr_trans_compare()
936 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym); in expr_trans_compare()
937 if (sym == &symbol_yes) in expr_trans_compare()
939 if (sym == &symbol_no) in expr_trans_compare()
945 e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); in expr_trans_compare()
946 e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym); in expr_trans_compare()
947 if (sym == &symbol_yes) in expr_trans_compare()
949 if (sym == &symbol_no) in expr_trans_compare()
955 return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym); in expr_trans_compare()
963 if (sym == &symbol_yes) in expr_trans_compare()
965 if (sym == &symbol_mod) in expr_trans_compare()
967 if (sym == &symbol_no) in expr_trans_compare()
970 if (sym == &symbol_yes) in expr_trans_compare()
972 if (sym == &symbol_mod) in expr_trans_compare()
974 if (sym == &symbol_no) in expr_trans_compare()
979 return expr_alloc_comp(type, e->left.sym, sym); in expr_trans_compare()
1044 sym_calc_value(e->left.sym); in expr_calc_value()
1045 return e->left.sym->curr.tri; in expr_calc_value()
1069 sym_calc_value(e->left.sym); in expr_calc_value()
1070 sym_calc_value(e->right.sym); in expr_calc_value()
1071 str1 = sym_get_string_value(e->left.sym); in expr_calc_value()
1072 str2 = sym_get_string_value(e->right.sym); in expr_calc_value()
1074 if (e->left.sym->type != S_STRING || e->right.sym->type != S_STRING) { in expr_calc_value()
1075 k1 = expr_parse_string(str1, e->left.sym->type, &lval); in expr_calc_value()
1076 k2 = expr_parse_string(str2, e->right.sym->type, &rval); in expr_calc_value()
1152 if (e->left.sym->name) in expr_print()
1153 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1162 if (e->left.sym->name) in expr_print()
1163 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1167 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1171 if (e->left.sym->name) in expr_print()
1172 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1176 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1180 if (e->left.sym->name) in expr_print()
1181 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1185 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1188 if (e->left.sym->name) in expr_print()
1189 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1193 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1206 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1214 fn(data, e->left.sym, e->left.sym->name); in expr_print()
1216 fn(data, e->right.sym, e->right.sym->name); in expr_print()
1231 static void expr_print_file_helper(void *data, struct symbol *sym, const char *str) in expr_print_file_helper() argument
1241 static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str) in expr_print_gstr_helper() argument
1246 if (sym) in expr_print_gstr_helper()
1247 sym_str = sym_get_string_value(sym); in expr_print_gstr_helper()
1267 if (sym && sym->type != S_UNKNOWN) in expr_print_gstr_helper()