Don't let %prec take a nonterminal.

* src/reader.c (grammar_current_rule_prec_set): Make the %prec symbol a
token.
* tests/input.at (%prec takes a token): New test checking that %prec
won't take a nonterminal.
This commit is contained in:
Joel E. Denny
2006-11-17 20:07:08 +00:00
parent b0f4c4eaa1
commit 26b8a43805
3 changed files with 30 additions and 0 deletions

View File

@@ -680,3 +680,24 @@ start: false_start ;
AT_CHECK([bison -o input.c input.y])
AT_CLEANUP
## --------------------- ##
## %prec takes a token. ##
## --------------------- ##
AT_SETUP([%prec takes a token])
# Bison once allowed %prec sym where sym was a nonterminal.
AT_DATA([input.y],
[[%%
start: PREC %prec PREC ;
PREC: ;
]])
AT_CHECK([bison input.y], [1], [],
[[input.y:3.1-4: rule given for PREC, which is a token
]])
AT_CLEANUP