diff options
Diffstat (limited to 'scripts/kconfig/zconf.y')
| -rw-r--r-- | scripts/kconfig/zconf.y | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 2abd3c7ff15d..49fb4ab664c3 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 28 | 39 | %expect 30 |
| 40 | 40 | ||
| 41 | %union | 41 | %union |
| 42 | { | 42 | { |
| @@ -68,6 +68,7 @@ static struct menu *current_menu, *current_entry; | |||
| 68 | %token <id>T_DEFAULT | 68 | %token <id>T_DEFAULT |
| 69 | %token <id>T_SELECT | 69 | %token <id>T_SELECT |
| 70 | %token <id>T_RANGE | 70 | %token <id>T_RANGE |
| 71 | %token <id>T_VISIBLE | ||
| 71 | %token <id>T_OPTION | 72 | %token <id>T_OPTION |
| 72 | %token <id>T_ON | 73 | %token <id>T_ON |
| 73 | %token <string> T_WORD | 74 | %token <string> T_WORD |
| @@ -123,7 +124,7 @@ stmt_list: | |||
| 123 | ; | 124 | ; |
| 124 | 125 | ||
| 125 | option_name: | 126 | option_name: |
| 126 | T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | 127 | T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE |
| 127 | ; | 128 | ; |
| 128 | 129 | ||
| 129 | common_stmt: | 130 | common_stmt: |
| @@ -359,7 +360,7 @@ menu: T_MENU prompt T_EOL | |||
| 359 | printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); | 360 | printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); |
| 360 | }; | 361 | }; |
| 361 | 362 | ||
| 362 | menu_entry: menu depends_list | 363 | menu_entry: menu visibility_list depends_list |
| 363 | { | 364 | { |
| 364 | $$ = menu_add_menu(); | 365 | $$ = menu_add_menu(); |
| 365 | }; | 366 | }; |
| @@ -430,6 +431,19 @@ depends: T_DEPENDS T_ON expr T_EOL | |||
| 430 | printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); | 431 | printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); |
| 431 | }; | 432 | }; |
| 432 | 433 | ||
| 434 | /* visibility option */ | ||
| 435 | |||
| 436 | visibility_list: | ||
| 437 | /* empty */ | ||
| 438 | | visibility_list visible | ||
| 439 | | visibility_list T_EOL | ||
| 440 | ; | ||
| 441 | |||
| 442 | visible: T_VISIBLE if_expr | ||
| 443 | { | ||
| 444 | menu_add_visibility($2); | ||
| 445 | }; | ||
| 446 | |||
| 433 | /* prompt statement */ | 447 | /* prompt statement */ |
| 434 | 448 | ||
| 435 | prompt_stmt_opt: | 449 | prompt_stmt_opt: |
| @@ -526,6 +540,7 @@ static const char *zconf_tokenname(int token) | |||
| 526 | case T_IF: return "if"; | 540 | case T_IF: return "if"; |
| 527 | case T_ENDIF: return "endif"; | 541 | case T_ENDIF: return "endif"; |
| 528 | case T_DEPENDS: return "depends"; | 542 | case T_DEPENDS: return "depends"; |
| 543 | case T_VISIBLE: return "visible"; | ||
| 529 | } | 544 | } |
| 530 | return "<token>"; | 545 | return "<token>"; |
| 531 | } | 546 | } |
