Lines Matching refs:expr

83 static struct expr *rewrite_m(struct expr *e)
90 e->left.expr = rewrite_m(e->left.expr);
94 e->left.expr = rewrite_m(e->left.expr);
95 e->right.expr = rewrite_m(e->right.expr);
108 void menu_add_dep(struct expr *dep)
129 static struct property *menu_add_prop(enum prop_type type, struct expr *expr,
130 struct expr *dep)
140 prop->expr = expr;
141 prop->visible.expr = dep;
158 struct expr *dep)
175 struct expr *dup_expr;
188 prop->visible.expr = expr_alloc_and(prop->visible.expr,
199 void menu_add_visibility(struct expr *expr)
202 expr);
205 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
207 menu_add_prop(type, expr, dep);
210 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
231 prop->expr->type != E_SYMBOL)
235 if (prop->expr->type != E_SYMBOL)
275 if (!menu_validate_number(sym, prop->expr->left.sym) ||
276 !menu_validate_number(sym, prop->expr->right.sym))
290 struct expr *parentdep, *basedep, *dep, *dep2, **ep;
379 dep = rewrite_m(prop->visible.expr);
385 prop->visible.expr = dep;
393 es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
397 es->implied.expr = expr_alloc_or(es->implied.expr,
435 basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
442 dep = menu->prompt ? menu->prompt->visible.expr : menu->dep;
483 sym->dir_dep.expr = expr_alloc_or(sym->dir_dep.expr, parent->dep);
514 prop->visible.expr = expr_alloc_and(expr_copy(basedep),
515 prop->visible.expr);
520 for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
588 sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
589 expr_alloc_and(parent->prompt->visible.expr,
636 visible = menu->prompt->visible.tri = expr_calc_value(menu->prompt->visible.expr);
695 static void get_dep_str(struct gstr *r, struct expr *expr, const char *prefix)
697 if (!expr_is_yes(expr)) {
699 expr_gstr_print(expr, r);
727 if (!expr_eq(prop->menu->dep, prop->visible.expr))
728 get_dep_str(r, prop->visible.expr, " Visible if: ");
780 expr_gstr_print(prop->expr, r);
802 expr_gstr_print(prop->expr, r);
824 if (sym->rev_dep.expr) {
825 expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, "Selected by [y]:\n");
826 expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, "Selected by [m]:\n");
827 expr_gstr_print_revdep(sym->rev_dep.expr, r, no, "Selected by [n]:\n");
831 if (sym->implied.expr) {
832 expr_gstr_print_revdep(sym->implied.expr, r, yes, "Implied by [y]:\n");
833 expr_gstr_print_revdep(sym->implied.expr, r, mod, "Implied by [m]:\n");
834 expr_gstr_print_revdep(sym->implied.expr, r, no, "Implied by [n]:\n");