mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
%expect-rr is for GLR only
* src/conflicts.c (conflicts_print): Complain about %expect-rr if not in GLR mode, regardless of the number of reduce/reduce conflicts. * tests/conflicts.at (%expect-rr non GLR): New test. * NEWS: Update.
This commit is contained in:
5
NEWS
5
NEWS
@@ -145,6 +145,11 @@ GNU Bison NEWS
|
||||
the programmer to prune possible parses based on the values of run-time
|
||||
expressions.
|
||||
|
||||
** The directive %expect-rr is now an error in non GLR mode
|
||||
|
||||
It used to be an error only if used in non GLR mode, _and_ if there are
|
||||
reduce/reduce conflicts.
|
||||
|
||||
* Noteworthy changes in release ?.? (????-??-??) [?]
|
||||
|
||||
|
||||
|
||||
@@ -576,7 +576,7 @@ conflicts_print (void)
|
||||
}
|
||||
}
|
||||
|
||||
if (! glr_parser && rrc_total > 0 && expected_rr_conflicts != -1)
|
||||
if (! glr_parser && expected_rr_conflicts != -1)
|
||||
{
|
||||
complain (Wother, _("%%expect-rr applies only to GLR parsers"));
|
||||
expected_rr_conflicts = -1;
|
||||
|
||||
@@ -1459,9 +1459,40 @@ state 1
|
||||
AT_CLEANUP
|
||||
|
||||
|
||||
## --------------------------------- ##
|
||||
## -W versus %expect and %expect-rr ##
|
||||
## --------------------------------- ##
|
||||
## -------------------- ##
|
||||
## %expect-rr non GLR. ##
|
||||
## -------------------- ##
|
||||
|
||||
AT_SETUP([[%expect-rr non GLR]])
|
||||
|
||||
AT_DATA([[1.y]],
|
||||
[[%expect-rr 0
|
||||
%%
|
||||
exp: 'a'
|
||||
]])
|
||||
|
||||
AT_BISON_CHECK([[1.y]], [[0]], [],
|
||||
[[1.y: warning: %expect-rr applies only to GLR parsers [-Wother]
|
||||
]])
|
||||
|
||||
AT_DATA([[2.y]],
|
||||
[[%expect-rr 1
|
||||
%%
|
||||
exp: 'a' | 'a';
|
||||
]])
|
||||
|
||||
AT_BISON_CHECK([[2.y]], [[0]], [],
|
||||
[[2.y: warning: %expect-rr applies only to GLR parsers [-Wother]
|
||||
2.y: conflicts: 1 reduce/reduce
|
||||
2.y:3.12-14: warning: rule useless in parser due to conflicts: exp: 'a' [-Wother]
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
|
||||
## ---------------------------------- ##
|
||||
## -W versus %expect and %expect-rr. ##
|
||||
## ---------------------------------- ##
|
||||
|
||||
AT_SETUP([[-W versus %expect and %expect-rr]])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user