]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
The location tracking mechanism is precious for parse error
[bison.git] / ChangeLog
index cda73b7a862b0c1cbd09da8d2cf7fb1d6435853c..4ddc4903de5fbba6ac4708135c49077162603c14 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,74 @@
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+       The location tracking mechanism is precious for parse error
+       messages.  Nevertheless, it is enabled only when `@n' is used in
+       the grammar, which is a different issue (you can use it in error
+       message, but not in the grammar per se).  Therefore, there should
+       be another means to enable it.
+
+       * src/getargs.c (getargs): Support `--locations'.
+       (usage): Report it.
+       * src/getargs.h (locationsflag): Export it.
+       * src/lex.c (percent_table): Support `%locations'.
+       * src/reader.c (yylsp_needed): Remove this variable, now replaced
+       with `locationsflag'.
+       * doc/bison.texinfo: Document `--locations' and `%locations'.
+       Sort the options.
+       * tests/calc.m4: Test it.
+
+       For regularity of the names, replace each
+       (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
+       (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
+       In addition replace each `flag' with `_flag'.
+
+       
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+       Also test parse error messages, including with YYERROR_VERBOSE.
+
+       * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
+       associative).
+       Use it to check the computations.
+       Use it to check `nonassoc' is honored.
+       (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
+       `--yyerror-verbose'.
+       (_AT_CHECK_CALC): Adjust to this option.
+       (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
+
+       
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+       Test also `--verbose', `--defines' and `--name-prefix'.  Testing
+       the latter demonstrates a flaw in the handling of non debugging
+       parsers introduced by myself on 2000-03-16: `#define yydebug 0'
+       was used in order to simplify:
+
+       #if YYDEBUG
+       if (yydebug)
+       {
+       ...
+       }
+       #endif
+
+       into
+
+       if (yydebug)
+       {
+       ...
+       }
+
+       unfortunately this leads to a CPP conflict when
+       `--name-prefix=foo' is used since it produces `#define yydebug
+       foodebug'.
+
+       * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
+       (YYDPRINTF): New macro.
+       Spread its use.
+       * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
+       the bison options.
+       Also test `--verbose', `--defines' and `--name-prefix'.
+
+       
 2000-10-02  Akim Demaille  <akim@epita.fr>
 
        Improve the readability of the produced parsers.
 2000-10-02  Akim Demaille  <akim@epita.fr>
 
        Improve the readability of the produced parsers.