diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-06-06 12:07:28 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-06-06 12:07:28 -0700 |
| commit | b170290c2836c40ab565736ba37681eb3dfd79b8 (patch) | |
| tree | 4c98213b0fdd0726dc5223f7556c3f64facbb933 /scripts/kconfig/parser.y | |
| parent | Merge tag 'kbuild-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masa... (diff) | |
| parent | kconfig: announce removal of 'kvmconfig' and 'xenconfig' shorthands (diff) | |
| download | linux-b170290c2836c40ab565736ba37681eb3dfd79b8.tar.gz linux-b170290c2836c40ab565736ba37681eb3dfd79b8.zip | |
Merge tag 'kconfig-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kconfig updates from Masahiro Yamada:
- allow only 'config', 'comment', 'if' statements inside 'choice' since
the other statements are not sensible inside 'choice' and should be
grammatical error
- support LMC_KEEP env variable for 'make local{yes,mod}config' to
preserve some CONFIG options
- deprecate 'make kvmconfig' and 'make xenconfig' in favor of
'make kvm_guest.config' and 'make xen.config'
- code cleanups
* tag 'kconfig-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
kconfig: announce removal of 'kvmconfig' and 'xenconfig' shorthands
streamline_config.pl: add LMC_KEEP to preserve some kconfigs
kconfig: allow only 'config', 'comment', and 'if' inside 'choice'
kconfig: tests: remove randconfig test for choice in choice
kconfig: do not assign a variable in the return statement
kconfig: do not use OR-assignment for zero-cleared structure
Diffstat (limited to 'scripts/kconfig/parser.y')
| -rw-r--r-- | scripts/kconfig/parser.y | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y index 708b6c4b13ca..190f1117f35a 100644 --- a/scripts/kconfig/parser.y +++ b/scripts/kconfig/parser.y @@ -119,20 +119,24 @@ mainmenu_stmt: T_MAINMENU T_WORD_QUOTE T_EOL stmt_list: /* empty */ - | stmt_list common_stmt + | stmt_list assignment_stmt | stmt_list choice_stmt + | stmt_list comment_stmt + | stmt_list config_stmt + | stmt_list if_stmt | stmt_list menu_stmt + | stmt_list menuconfig_stmt + | stmt_list source_stmt | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } | stmt_list error T_EOL { zconf_error("invalid statement"); } ; -common_stmt: - if_stmt - | comment_stmt - | config_stmt - | menuconfig_stmt - | source_stmt - | assignment_stmt +stmt_list_in_choice: + /* empty */ + | stmt_list_in_choice comment_stmt + | stmt_list_in_choice config_stmt + | stmt_list_in_choice if_stmt_in_choice + | stmt_list_in_choice error T_EOL { zconf_error("invalid statement"); } ; /* config/menuconfig entry */ @@ -254,7 +258,7 @@ choice_end: end } }; -choice_stmt: choice_entry choice_block choice_end +choice_stmt: choice_entry stmt_list_in_choice choice_end ; choice_option_list: @@ -305,11 +309,6 @@ default: | T_DEF_BOOL { $$ = S_BOOLEAN; } | T_DEF_TRISTATE { $$ = S_TRISTATE; } -choice_block: - /* empty */ - | choice_block common_stmt -; - /* if entry */ if_entry: T_IF expr T_EOL @@ -331,6 +330,9 @@ if_end: end if_stmt: if_entry stmt_list if_end ; +if_stmt_in_choice: if_entry stmt_list_in_choice if_end +; + /* menu entry */ menu: T_MENU T_WORD_QUOTE T_EOL |
