aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/zconf.y
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kconfig/zconf.y')
-rw-r--r--scripts/kconfig/zconf.y18
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 23dfd3baa7a1..2abd3c7ff15d 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -36,7 +36,7 @@ static struct menu *current_menu, *current_entry;
36#define YYERROR_VERBOSE 36#define YYERROR_VERBOSE
37#endif 37#endif
38%} 38%}
39%expect 26 39%expect 28
40 40
41%union 41%union
42{ 42{
@@ -104,14 +104,15 @@ static struct menu *current_menu, *current_entry;
104%} 104%}
105 105
106%% 106%%
107input: stmt_list; 107input: nl start | start;
108
109start: mainmenu_stmt stmt_list | stmt_list;
108 110
109stmt_list: 111stmt_list:
110 /* empty */ 112 /* empty */
111 | stmt_list common_stmt 113 | stmt_list common_stmt
112 | stmt_list choice_stmt 114 | stmt_list choice_stmt
113 | stmt_list menu_stmt 115 | stmt_list menu_stmt
114 | stmt_list T_MAINMENU prompt nl
115 | stmt_list end { zconf_error("unexpected end statement"); } 116 | stmt_list end { zconf_error("unexpected end statement"); }
116 | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } 117 | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); }
117 | stmt_list option_name error T_EOL 118 | stmt_list option_name error T_EOL
@@ -342,6 +343,13 @@ if_block:
342 | if_block choice_stmt 343 | if_block choice_stmt
343; 344;
344 345
346/* mainmenu entry */
347
348mainmenu_stmt: T_MAINMENU prompt nl
349{
350 menu_add_prompt(P_MENU, $2, NULL);
351};
352
345/* menu entry */ 353/* menu entry */
346 354
347menu: T_MENU prompt T_EOL 355menu: T_MENU prompt T_EOL
@@ -494,6 +502,10 @@ void conf_parse(const char *name)
494 prop = prop_alloc(P_DEFAULT, modules_sym); 502 prop = prop_alloc(P_DEFAULT, modules_sym);
495 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0)); 503 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
496 } 504 }
505
506 rootmenu.prompt->text = _(rootmenu.prompt->text);
507 rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
508
497 menu_finalize(&rootmenu); 509 menu_finalize(&rootmenu);
498 for_all_symbols(i, sym) { 510 for_all_symbols(i, sym) {
499 if (sym_check_deps(sym)) 511 if (sym_check_deps(sym))