-*- 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
+ ...
+
+> I'm in favor of
+>
+> %token FOO 256
+> %token BAR 257
+>
+> and Bison moves error into 258.
+
+Yes, I think that's a valid extension too, if the user doesn't define
+the token number for error.
+
+* Output directory
+Akim:
+
+| I consider this to be a bug in bison:
+|
+| /tmp % mkdir src
+| /tmp % cp ~/src/bison/tests/calc.y src
+| /tmp % mkdir build && cd build
+| /tmp/build % bison ../src/calc.y
+| /tmp/build % cd ..
+| /tmp % ls -l build src
+| build:
+| total 0
+|
+| src:
+| total 32
+| -rw-r--r-- 1 akim lrde 27553 oct 2 16:31 calc.tab.c
+| -rw-r--r-- 1 akim lrde 3335 oct 2 16:31 calc.y
+|
+|
+| Would it be safe to change this behavior to something more reasonable?
+| Do you think some people depend upon this?
+
+Jim:
+
+Is it that behavior documented?
+If so, then it's probably not reasonable to change it.
+I've Cc'd the automake list, because some of automake's
+rules use bison through $(YACC) -- though I'll bet they
+all use it in yacc-compatible mode.
+
+Pavel:
+
+Hello, Jim and others!
+
+> Is it that behavior documented?
+> If so, then it's probably not reasonable to change it.
+> I've Cc'd the automake list, because some of automake's
+> rules use bison through $(YACC) -- though I'll bet they
+> all use it in yacc-compatible mode.
+
+Yes, Automake currently used bison in Automake-compatible mode, but it
+would be fair for Automake to switch to the native mode as long as the
+processed files are distributed and "missing" emulates bison.
+
+In any case, the makefiles should specify the output file explicitly
+instead of relying on weird defaults.
+
+> | src:
+> | total 32
+> | -rw-r--r-- 1 akim lrde 27553 oct 2 16:31 calc.tab.c
+> | -rw-r--r-- 1 akim lrde 3335 oct 2 16:31 calc.y
+
+This is not _that_ ugly as it seems - with Automake you want to put
+sources where they belong - to the source directory.
+
+> | This is not _that_ ugly as it seems - with Automake you want to put
+> | sources where they belong - to the source directory.
+>
+> The difference source/build you are referring to is based on Automake
+> concepts. They have no sense at all for tools such as bison or gcc
+> etc. They have input and output. I do not want them to try to grasp
+> source/build. I want them to behave uniformly: output *here*.
+
+I realize that.
+
+It's unfortunate that the native mode of Bison behaves in a less uniform
+way than the yacc mode. I agree with your point. Bison maintainters may
+want to fix it along with the documentation.
+
+
* Unit rules
Maybe we could expand unit rules, i.e., transform
tests/testsuite.dir/51 % echo "()" | ./calc
1.2-1.3: parse error, unexpected ')', expecting error or "number" or '-' or '('
+* yyerror, yyprint interface
+It should be improved, in particular when using Bison features such as
+locations, and YYPARSE_PARAMS. For the time being, it is recommended
+to #define yyerror and yyprint to steal internal variables...
+
* 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.
Where the first part defines struct expression, the second uses it to
define YYSTYPE, and the last uses YYSTYPE. Only this order is valid.
+Note that we have the same problem with GCC.
+
* --graph
Show reductions. []
* Parsing grammars
Rewrite the reader in Bison.
+
+* Problems with aliases
+From: "Baum, Nathan I" <s0009525@chelt.ac.uk>
+Subject: Token Alias Bug
+To: "'bug-bison@gnu.org'" <bug-bison@gnu.org>
+
+I've noticed a bug in bison. Sadly, our eternally wise sysadmins won't let
+us use CVS, so I can't find out if it's been fixed already...
+
+Basically, I made a program (in flex) that went through a .y file looking
+for "..."-tokens, and then outputed a %token
+line for it. For single-character ""-tokens, I reasoned, I could just use
+[%token 'A' "A"]. However, this causes Bison to output a [#define 'A' 65],
+which cppp chokes on, not unreasonably. (And even if cppp didn't choke, I
+obviously wouldn't want (char)'A' to be replaced with (int)65 throughout my
+code.
+
+Bison normally forgoes outputing a #define for a character token. However,
+it always outputs an aliased token -- even if the token is an alias for a
+character token. We don't want that. The problem is in /output.c/, as I
+recall. When it outputs the token definitions, it checks for a character
+token, and then checks for an alias token. If the character token check is
+placed after the alias check, then it works correctly.
+
+Alias tokens seem to be something of a kludge. What about an [%alias "..."]
+command...
+
+ %alias T_IF "IF"
+
+Hmm. I can't help thinking... What about a --generate-lex option that
+creates an .l file for the alias tokens used... (Or an option to make a
+gperf file, etc...)
+
+* Presentation of the report file
+From: "Baum, Nathan I" <s0009525@chelt.ac.uk>
+Subject: Token Alias Bug
+To: "'bug-bison@gnu.org'" <bug-bison@gnu.org>
+
+I've also noticed something, that whilst not *wrong*, is inconvienient: I
+use the verbose mode to help find the causes of unresolved shift/reduce
+conflicts. However, this mode insists on starting the .output file with a
+list of *resolved* conflicts, something I find quite useless. Might it be
+possible to define a -v mode, and a -vv mode -- Where the -vv mode shows
+everything, but the -v mode only tells you what you need for examining
+conflicts? (Or, perhaps, a "*** This state has N conflicts ***" marker above
+each state with conflicts.)
+
+
+-----
+
+Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Autoconf.
+
+GNU Autoconf is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Autoconf is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with autoconf; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.