mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-22 10:43:02 +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:
5
NEWS
5
NEWS
@@ -15,6 +15,11 @@ GNU Bison NEWS
|
|||||||
leaves "foo" diagnostics as warnings. Similarly, with "-Werror=foo
|
leaves "foo" diagnostics as warnings. Similarly, with "-Werror=foo
|
||||||
-Wno-error", "foo" diagnostics are now errors.
|
-Wno-error", "foo" diagnostics are now errors.
|
||||||
|
|
||||||
|
*** GLR Predicates
|
||||||
|
|
||||||
|
As demonstrated in the documentation, one can now leave spaces between
|
||||||
|
"%?" and its "{".
|
||||||
|
|
||||||
* Noteworthy changes in release 3.0 (2013-07-25) [stable]
|
* Noteworthy changes in release 3.0 (2013-07-25) [stable]
|
||||||
|
|
||||||
** WARNING: Future backward-incompatibilities!
|
** WARNING: Future backward-incompatibilities!
|
||||||
|
|||||||
1
THANKS
1
THANKS
@@ -110,6 +110,7 @@ R Blake blakers@mac.com
|
|||||||
Raja R Harinath harinath@cs.umn.edu
|
Raja R Harinath harinath@cs.umn.edu
|
||||||
Ralf Wildenhues Ralf.Wildenhues@gmx.de
|
Ralf Wildenhues Ralf.Wildenhues@gmx.de
|
||||||
Richard Stallman rms@gnu.org
|
Richard Stallman rms@gnu.org
|
||||||
|
Rici Lake ricilake@gmail.com
|
||||||
Rob Vermaas rob.vermaas@gmail.com
|
Rob Vermaas rob.vermaas@gmail.com
|
||||||
Robert Anisko anisko_r@epita.fr
|
Robert Anisko anisko_r@epita.fr
|
||||||
Rob Conde rob.conde@ai-solutions.com
|
Rob Conde rob.conde@ai-solutions.com
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ eqopt ([[:space:]]*=)?
|
|||||||
"%pure"[-_]"parser" DEPRECATED("%pure-parser");
|
"%pure"[-_]"parser" DEPRECATED("%pure-parser");
|
||||||
"%token"[-_]"table" DEPRECATED("%token-table");
|
"%token"[-_]"table" DEPRECATED("%token-table");
|
||||||
|
|
||||||
"%"{id}|"%"{notletter}([[:graph:]])+ {
|
"%"{id} {
|
||||||
complain (loc, complaint, _("invalid directive: %s"), quote (yytext));
|
complain (loc, complaint, _("invalid directive: %s"), quote (yytext));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1749,3 +1749,33 @@ Cleanup: popping token 'a' ()
|
|||||||
])
|
])
|
||||||
|
|
||||||
AT_CLEANUP
|
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