Masahiro Yamada 6900ae9eee kconfig: remove grammatically ambiguous "unexpected option" diagnostic
This commit decreases 15 shift/reduce conflicts.

The location of this error recovery is ambiguous.

For example, there are two ways to interpret the following code:

  1 config FOO
  2         bool "foo"

 [A] Both lines are reduced together into a config_stmt.

 [B] The only line 1 is reduced into a config_stmt, and the line 2
     matches to "option_name error T_EOL"

Of course, we expect [A], but [B] could be grammatically possible.

Kconfig has no terminator for a config block. So, we cannot detect its
end until we see a non-property keyword. People often insert a blank
line between two config blocks, but it is just a coding convention.
Blank lines are actually allowed anywhere in Kconfig files.

The real error is when a property keyword appears right after "endif",
"endchoice", "endmenu",  "source", "comment", or variable assignment.

Instead of fixing the grammatical ambiguity, I chose to simply remove
this error recovery.

The difference is

  unexpected option "bool"

... is turned into a more generic message:

  invalid statement

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-12-15 17:45:20 +09:00
..
2018-10-04 14:16:15 -05:00
2017-03-28 16:16:52 +02:00
2018-10-28 13:22:35 -07:00
2012-06-27 12:44:29 -07:00
2018-11-02 22:49:01 +09:00
2017-11-17 17:45:29 -08:00
2018-10-28 13:22:35 -07:00
2017-11-14 18:25:40 -08:00
2017-11-17 17:45:29 -08:00
2018-02-06 18:32:47 -08:00
2017-11-17 17:45:29 -08:00
2014-08-20 16:03:45 +02:00