mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
Do not allow identifiers that start with a dash.
This cleans up our previous fixes for a bug whereby Bison
discarded `.field' in `$-1.field'. The previous fixes were less
restrictive about where a dash could appear in an identifier, but
the restrictions were hard to explain. That bug was reported and
this final fix was originally suggested by Paul Hilfinger. This
also fixes a remaining bug reported by Paul Eggert whereby Bison
parses `%token ID -123' as `%token ID - 123' and handles `-' as an
identifier. Now, `-' cannot be an identifier. Discussed in
threads beginning at
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>,
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00004.html>.
* NEWS (2.5): Update entry describing the dash extension to
grammar symbol names. Also, move that entry before the named
references entry because the latter mentions the former.
* doc/bison.texinfo (Symbol): Update documentation for symbol
names. As suggested by Paul Eggert, mention the effect of periods
and dashes on named references.
(Decl Summary): Update documentation for unquoted %define values,
which, as a side effect, can no longer start with dashes either.
* src/scan-code.l (id): Implement.
* src/scan-gram.l (id): Implement.
* tests/actions.at (Exotic Dollars): Extend test group to exercise
bug reported by Paul Hilfinger.
* tests/input.at (Symbols): Update test group, and extend to
exercise bug reported by Paul Eggert.
* tests/named-refs.at (Stray symbols in brackets): Update test
group.
($ or @ followed by . or -): Likewise.
* tests/regression.at (Invalid inputs): Likewise.
(cherry picked from commit 82f3355eaf)
This commit is contained in:
16
NEWS
16
NEWS
@@ -3,6 +3,14 @@ Bison News
|
||||
|
||||
* Changes in version 2.5 (????-??-??):
|
||||
|
||||
** Grammar symbol names can now contain non-initial dashes:
|
||||
|
||||
Consistently with directives (such as %error-verbose) and with
|
||||
%define variables (e.g. push-pull), grammar symbol names may contain
|
||||
dashes in any position except the beginning. This is a GNU
|
||||
extension over POSIX Yacc. Thus, use of this extension is reported
|
||||
by -Wyacc and rejected in Yacc mode (--yacc).
|
||||
|
||||
** Named references:
|
||||
|
||||
Historically, Yacc and Bison have supported positional references
|
||||
@@ -98,14 +106,6 @@ Bison News
|
||||
LAC is an experimental feature. More user feedback will help to
|
||||
stabilize it.
|
||||
|
||||
** Grammar symbol names can now contain dashes:
|
||||
|
||||
Consistently with directives (such as %error-verbose) and variables
|
||||
(e.g. push-pull), grammar symbol names may include dashes in any
|
||||
position, similarly to periods and underscores. This is GNU
|
||||
extension over POSIX Yacc whose use is reported by -Wyacc, and
|
||||
rejected in Yacc mode (--yacc).
|
||||
|
||||
** %define improvements:
|
||||
|
||||
*** Can now be invoked via the command line:
|
||||
|
||||
Reference in New Issue
Block a user