diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index eeb449bd58691891d23e9dfbc0d003a99c7dce3b..7cc824454e5429ebd17bab6fb463a49b611b19e6 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -341,7 +341,7 @@ menu: T_MENU prompt T_EOL
 	printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
 };
 
-menu_entry: menu visibility_list depends_list
+menu_entry: menu menu_option_list
 {
 	$$ = menu_add_menu();
 };
@@ -357,6 +357,12 @@ menu_end: end
 menu_stmt: menu_entry stmt_list menu_end
 ;
 
+menu_option_list:
+	  /* empty */
+	| menu_option_list visible
+	| menu_option_list depends
+;
+
 source_stmt: T_SOURCE prompt T_EOL
 {
 	printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), $2);
@@ -414,12 +420,6 @@ depends: T_DEPENDS T_ON expr T_EOL
 };
 
 /* visibility option */
-
-visibility_list:
-	  /* empty */
-	| visibility_list visible
-;
-
 visible: T_VISIBLE if_expr T_EOL
 {
 	menu_add_visibility($2);