Lines Matching refs:expr
77 struct expr *menu_check_dep(struct expr *e)
84 e->left.expr = menu_check_dep(e->left.expr);
88 e->left.expr = menu_check_dep(e->left.expr);
89 e->right.expr = menu_check_dep(e->right.expr);
102 void menu_add_dep(struct expr *dep)
122 struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep)
128 prop->expr = expr;
129 prop->visible.expr = menu_check_dep(dep);
140 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep)
145 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
147 menu_add_prop(type, NULL, expr, dep);
150 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
169 prop->expr->type != E_SYMBOL)
195 if (!menu_range_valid_sym(sym, prop->expr->left.sym) ||
196 !menu_range_valid_sym(sym, prop->expr->right.sym))
210 struct expr *parentdep, *basedep, *dep, *dep2, **ep;
227 parentdep = parent->prompt->visible.expr;
243 dep = expr_transform(prop->visible.expr);
248 prop->visible.expr = dep;
251 es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
259 basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
264 dep = menu->prompt ? menu->prompt->visible.expr : menu->dep;
309 for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
340 sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
341 expr_alloc_and(parent->prompt->visible.expr,
359 visible = menu->prompt->visible.tri = expr_calc_value(menu->prompt->visible.expr);