-*- outline -*-
+* Coding system independence
+Paul notes:
+
+ Currently Bison assumes 8-bit bytes (i.e. that UCHAR_MAX is
+ 255). It also assumes that the 8-bit character encoding is
+ the same for the invocation of 'bison' as it is for the
+ invocation of 'cc', but this is not necessarily true when
+ people run bison on an ASCII host and then use cc on an EBCDIC
+ host. I don't think these topics are worth our time
+ addressing (unless we find a gung-ho volunteer for EBCDIC or
+ PDP-10 ports :-) but they should probably be documented
+ somewhere.
+
+* Using enums instead of int for tokens.
+Paul suggests:
+
+ #ifndef YYTOKENTYPE
+ # if defined (__STDC__) || defined (__cplusplus)
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ FOO = 256,
+ BAR,
+ ...
+ };
+ /* POSIX requires `int' for tokens in interfaces. */
+ # define YYTOKENTYPE int
+ # endif
+ #endif
+ #define FOO 256
+ #define BAR 257
+ ...
+
* Unit rules
Maybe we could expand unit rules, i.e., transform
when there are no actions. This can significantly speed up some
grammars.
-* Huge Grammars
-Currently, not only is Bison unable to handle huge grammars because of
-internal limitations, but the test `big triangle' also demonstrates
-that it can produce SEGVing executables! Push the limit beyond 124,
-and have a core dump. Be my guest: fix this!
+* Stupid error messages
+An example shows it easily:
+
+src/bison/tests % ./testsuite -k calc,location,error-verbose -l
+GNU Bison 1.49a test suite test groups:
+
+ NUM: FILENAME:LINE TEST-GROUP-NAME
+ KEYWORDS
+
+ 51: calc.at:440 Calculator --locations --yyerror-verbose
+ 52: calc.at:442 Calculator --defines --locations --name-prefix=calc --verbose --yacc --yyerror-verbose
+ 54: calc.at:445 Calculator --debug --defines --locations --name-prefix=calc --verbose --yacc --yyerror-verbose
+src/bison/tests % ./testsuite 51 -d
+## --------------------------- ##
+## GNU Bison 1.49a test suite. ##
+## --------------------------- ##
+ 51: calc.at:440 ok
+## ---------------------------- ##
+## All 1 tests were successful. ##
+## ---------------------------- ##
+src/bison/tests % cd ./testsuite.dir/51
+tests/testsuite.dir/51 % echo "()" | ./calc
+1.2-1.3: parse error, unexpected ')', expecting error or "number" or '-' or '('
* read_pipe.c
This is not portable to DOS for instance. Implement a more portable
scheme. Sources of inspiration include GNU diff, and Free Recode.
+* Memory leaks in the generator
+A round of memory leak clean ups would be most welcome. Dmalloc,
+Checker GCC, Electric Fence, or Valgrind: you chose your tool.
+
+* Memory leaks in the parser
+The same applies to the generated parsers. In particular, this is
+critical for user data: when aborting a parsing, when handling the
+error token etc., we often throw away yylval without giving a chance
+of cleaning it up to the user.
+
* NEWS
Sort from 1.31 NEWS.
* input synclines
Some users create their foo.y files, and equip them with #line. Bison
should recognize these, and preserve them.
+
+* BTYacc
+See if we can integrate backtracking in Bison. Contact the BTYacc
+maintainers.
+
+* Automaton report
+Display more clearly the lookaheads for each item.
+
+* RR conflicts
+See if we can use precedence between rules to solve RR conflicts. See
+what POSIX says.
+
+* Precedence
+It is unfortunate that there is a total order for precedence. It
+makes it impossible to have modular precedence information. We should
+move to partial orders.
+
+* Parsing grammars
+Rewrite the reader in Bison.