Lines Matching refs:sym
44 void menu_add_entry(struct symbol *sym)
50 menu->sym = sym;
93 if (e->left.sym == &symbol_mod)
109 struct symbol *sym = current_entry->sym;
111 if (sym->type == type)
113 if (sym->type == S_UNKNOWN) {
114 sym->type = type;
118 sym->name ? sym->name : "<choice>",
119 sym_type_name(sym->type), sym_type_name(type));
124 struct property *prop = prop_alloc(type, current_entry->sym);
155 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
157 menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep);
167 prop->expr = expr_alloc_symbol(current_entry->sym);
171 sym_defconfig_list = current_entry->sym;
172 else if (sym_defconfig_list != current_entry->sym)
178 static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2)
181 (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name));
184 void sym_check_prop(struct symbol *sym)
188 for (prop = sym->prop; prop; prop = prop->next) {
191 if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&
195 " must be a single symbol", sym->name);
199 if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
202 "not boolean or tristate", sym->name);
207 sym->name, sym2->name);
215 if (sym->type != S_INT && sym->type != S_HEX)
218 if (!menu_range_valid_sym(sym, prop->expr->left.sym) ||
219 !menu_range_valid_sym(sym, prop->expr->right.sym))
231 struct symbol *sym;
235 sym = parent->sym;
237 if (sym && sym_is_choice(sym)) {
240 if (menu->sym) {
242 menu_set_type(menu->sym->type);
244 menu_set_type(sym->type);
248 parentdep = expr_alloc_symbol(sym);
259 if (menu->sym)
260 prop = menu->sym->prop;
269 if (menu->sym && menu->sym->type != S_TRISTATE)
275 expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
281 } else if (sym) {
288 if (!expr_contains_symbol(dep, sym))
290 if (expr_depends_symbol(dep, sym))
314 if (sym && sym_is_choice(sym) && menu->sym) {
315 menu->sym->flags |= SYMBOL_CHOICEVAL;
318 for (prop = menu->sym->prop; prop; prop = prop->next) {
329 menu_set_type(sym->type);
330 menu_add_symbol(P_CHOICE, sym, NULL);
331 prop = sym_get_choice_prop(sym);
335 (*ep)->right.sym = menu->sym;
349 if (sym && !(sym->flags & SYMBOL_WARNED)) {
350 if (sym->type == S_UNKNOWN)
353 if (sym_is_choice(sym) && !parent->prompt)
357 sym_check_prop(sym);
358 sym->flags |= SYMBOL_WARNED;
361 if (sym && !sym_is_optional(sym) && parent->prompt) {
362 sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
371 struct symbol *sym;
376 sym = menu->sym;
377 if (sym) {
378 sym_calc_value(sym);
385 if (!sym || sym_get_tristate_value(menu->sym) == no)
398 else if (menu->sym)
399 return _(menu->sym->name);