mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-15 23:33:03 +00:00
glr: allow spaces between "%?" and "{" in predicates
Reported by Rici Lake. http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00004.html http://stackoverflow.com/questions/19330171/ * src/scan-gram.l: Do not try to be too smart when diagnosing invalid directives. * tests/glr-regression.at (Predicates): New test.
This commit is contained in:
@@ -1749,3 +1749,33 @@ Cleanup: popping token 'a' ()
|
||||
])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
|
||||
## ----------------------------------------------------------------- ##
|
||||
## Predicates. ##
|
||||
## ##
|
||||
## http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00004.html ##
|
||||
## ----------------------------------------------------------------- ##
|
||||
|
||||
AT_SETUP([Predicates])
|
||||
|
||||
# FIXME: We need genuine test cases with uses of %?.
|
||||
|
||||
AT_DATA_GRAMMAR([input.y],
|
||||
[[%glr-parser
|
||||
%expect-rr 1
|
||||
%%
|
||||
// Exercise "%?{...}" and "%? {...}".
|
||||
widget:
|
||||
%? {new_syntax} "widget" id new_args { $$ = f($3, $4); }
|
||||
| %?{!new_syntax} "widget" id old_args { $$ = f($3, $4); }
|
||||
;
|
||||
id:;
|
||||
new_args:;
|
||||
old_args:;
|
||||
%%
|
||||
]])
|
||||
|
||||
AT_BISON_CHECK([[input.y]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
Reference in New Issue
Block a user