linux/scripts/kconfig
Masahiro Yamada 2f60e46e60 kconfig: remove grammatically ambiguous option_error
This commit decreases 6 shift/reduce conflicts, and finally achieves
conflict-free parser.

Since Kconfig has no terminator for a config block, detecting the end
of config_stmt is not easy.

For example, there are two ways for handling the error in the following
code:

  1 config FOO
  2         =

 [A] Print "unknown option" error, assuming the line 2 is a part of
     config_option_list

 [B] Print "invalid statement", assuming the line 1 is reduced into
     a config_stmt by itself

Bison actually chooses [A] because it performs the shift rather than
the reduction where both are possible.

However, there is no reason to choose one over the other.

Let's remove the option_error, and let it fall back to [B].

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-12-15 17:45:20 +09:00
..
lxdialog kconfig: drop localization support 2018-05-28 18:25:21 +09:00
tests kconfig: improve the recursive dependency report 2018-08-22 23:21:39 +09:00
.gitignore kconfig: drop localization support 2018-05-28 18:25:21 +09:00
conf.c kconfig: remove oldnoconfig target 2018-11-02 00:15:25 +09:00
confdata.c kconfig: remove S_OTHER symbol type and correct dependency tracking 2018-12-08 10:42:41 +09:00
expr.c kconfig: remove k_invalid from expr_parse_string() return type 2018-12-08 10:42:42 +09:00
expr.h kconfig: remove S_OTHER symbol type and correct dependency tracking 2018-12-08 10:42:41 +09:00
gconf-cfg.sh kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
gconf.c kconfig: allow all config targets to write auto.conf if missing 2018-07-25 23:25:30 +09:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
images.c
kconf_id.c kconfig: reference environment variables directly and remove 'option env=' 2018-05-29 03:28:58 +09:00
list.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
lkc_proto.h kconfig: allow all config targets to write auto.conf if missing 2018-07-25 23:25:30 +09:00
lkc.h kconfig: remove unused sym_get_env_prop() function 2018-08-14 08:59:57 +09:00
Makefile kconfig: remove silentoldconfig target 2018-11-02 00:15:25 +09:00
mconf-cfg.sh kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
mconf.c kconfig: remove a spurious self-assignment 2018-09-01 01:21:42 +09:00
menu.c kconfig: rename SYMBOL_AUTO to SYMBOL_NO_WRITE 2018-07-18 01:18:09 +09:00
merge_config.sh scripts/kconfig/merge_config: don't redefine 'y' to 'm' 2018-11-15 23:49:35 +09:00
nconf-cfg.sh kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
nconf.c kconfig: allow all config targets to write auto.conf if missing 2018-07-25 23:25:30 +09:00
nconf.gui.c kconfig: add xrealloc() helper 2018-02-10 11:26:04 +09:00
nconf.h kconfig: drop localization support 2018-05-28 18:25:21 +09:00
preprocess.c kconfig: loop boundary condition fix 2018-06-28 22:48:08 +09:00
qconf-cfg.sh kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
qconf.cc kconfig: remove P_ENV property type 2018-08-14 09:01:47 +09:00
qconf.h Port xconfig to Qt5 - Source format. 2015-10-14 14:59:03 +02:00
streamline_config.pl kconfig: fix localmodconfig 2018-06-11 09:16:30 +09:00
symbol.c kconfig: remove S_OTHER symbol type and correct dependency tracking 2018-12-08 10:42:41 +09:00
util.c kconfig: rename file_write_dep and move it to confdata.c 2018-07-25 23:25:28 +09:00
zconf.l kconfig: warn no new line at end of file 2018-12-15 17:44:35 +09:00
zconf.y kconfig: remove grammatically ambiguous option_error 2018-12-15 17:45:20 +09:00