]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Do not allow identifiers that start with a dash.
[bison.git] / ChangeLog
index ba91749bdff3a0c3a5ea035c6f3b923de6532cfe..32496351f75aef7b951f3258075978342f4bd052 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,50 +1,42 @@
+2011-01-29  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       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.
+
 2011-01-24  Joel E. Denny  <joeldenny@joeldenny.org>
 
        * data/yacc.c: Fix last apostrophe warning from xgettext.
 
 2011-01-09  Paul Eggert  <eggert@cs.ucla.edu>
 
-       Simplify handling of '.' and '-' after unbracketed named references.
-       * doc/bison.texinfo (Mid-Rule Actions): Mention that periods and
-       dashes make symbol names less convenient for named references.
-       * src/scan-code.l:
-       (handle_action_dollar): New arg textlen.  All callers changed.
-       (handle_action_at): Likewise.  Also, args are pointers to const.
-       (ref_tail_fields): Remove; no longer used.
-       (letter): Now includes '-' and '.', since this is for Bison
-       identifiers.
-       (id): Now the simpler traditional defn, since letters now include
-       '-' and '.'.
-       (c_letter, c_id): New defns.
-       (ref): Use c_id for unbracketed IDs.
-       (<SC_RULE_ACTION>): Simplify, now that the distinction between
-       Bison and unbracketed IDs are now in the regular expressions.
-       (VARIANT_BAD_BRACKETING): Remove.
-       (VARIANT_NOT_VISIBLE_FROM_MIDRULE): Renumber.
-       (find_prefix_end): Remove, replacing with ....
-       (identifier_matches): New function.
-       (variant_add): Use it.  Omit EXPLICIT_BRACKETING arg; no longer
-       needed.  CP arg is pointer to constant.  All callers changed.
-       (show_sub_messages): Remove args CP, EXPLICIT_BRACKETING, DOLLAR_OR_AT.
-       New arg TEXT.  All callers changed.  Do not worry about showing
-       trailing context.
-       (parse_ref): Args CP, RULE, TEXT are now pointers to const.  New
-       arg TEXTLEN.  Remove arg DOLLAR_OR_AT.  All callers changed.
-       Simplify code now that the regular expressions capture the
-       restrictions.
-       * src/scan-gram.l (letter, id): Adjust to match scan-code.l.
-       * src/symlist.c (symbol_list_null): Arg is now pointer to const.
-       * src/symlist.h: Likewise.
-       * tests/named-refs.at (Misleading references): These are now caught
-       by the C compiler, not by Bison; that's good enough.  Adjust test
-       to reflect this.
-       (Many kinds of errors, Unresolved references): Adjust expected
-       diagnostics to match new behavior.  The same errors are caught,
-       though the diagnostics are not quite as fancy.
-       ($ or @ followed by . or -): Likewise.  Also, Make the grammar
-       unambiguous, so that diagnostics are not complicated by ambiguity
-       warnings.
-
        Fix minor problems encountered by a fresh bootstrap.
        * data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments,
        as they confuse xgettext, which tries to parse them as C character