+2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ Destructor cleanups and regularization among the three skeletons.
+ * NEWS: Document the behavior changes.
+ * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
+ stack before failing, as the cleanup code will do it for us now.
+ * data/lalr1.cc (yyerrlab): Likewise.
+ * data/glr.c (yyparse): Pop everything off the stack before
+ freeing it, so that destructors get called properly.
+ * data/lalr1.cc (yyreturn): Likewise.
+ * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
+ This is more consistent.
+ * doc/bison.texinfo (Destructor Decl): Mention more reasons
+ why destructors might be called. 1.875 -> 2.1.
+ (Destructor Decl, Decl Summary, Table of Symbols):
+ Some English-language cleanups for %destructor.
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
+ Add output line for destructor of start symbol.
+ * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
+ because of that same extra output line.
+
+ * NEWS: Document minor wording changes in diagnostics of
+ Bison-generated parsers.
+ * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
+ Remove unused formals. All uses changed.
+ (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
+ (yyparse): Rename yyoverflowlab to yyexhaustedlab.
+ * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
+ Rename yyoverflowab to yyexhaustedlab.
+ When memory exhaustion occurs during syntax-error reporting,
+ report it separately rather than in a single diagnostic; this
+ eases translation.
+ * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
+ (Memory Exhausted): Renamed from Parser Stack Overflow.
+ Revamp wording slightly to prefer "memory exhaustion".
+ * tests/actions.at: "parser stack overflow" -> "memory exhausted".
+
+ * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
+
+ Add i18n support to the GLR skeleton. Partially fix the C++
+ skeleton; a C++ expert needs to finish this. Remove debugging
+ msgids; there's little point to having them translated, since they
+ can be understood only by someone who can read the
+ (English-language) source code.
+
+ Generate runtime-po/bison-runtime.pot automatically, so that we
+ don't have to worry about garbage getting in that file. We'll
+ make sure after the next official release that old msgids don't
+ get lost. See
+ <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
+
+ * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
+ Now auto-generated.
+ * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
+ Fix typos in explanations of the runtime file.
+ * bootstrap: Change gettext keyword from YYI18N to YY_.
+ Use standard Makefile.in.in in runtime-po, since we'll arrange
+ for backward-compatible bison-runtime.po files in a different way.
+ * data/glr.c (YY_): New macro, from yacc.c.
+ (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
+ Translate messages intended for users.
+ (yyreportSyntaxError): Change "virtual memory" to "memory" to match
+ the wording in the other skeletons. We don't know that the memory
+ is virtual.
+ * data/lalr1.cc (YY_): Renamed from _. All uses changed.
+ Use same method that yacc.c uses.
+ Don't translate debugging messages.
+ (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
+ it doesn't work (yet), and requires C++ expertise to fix.
+ * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
+ Move defn to a more logical place, to be consistent with other
+ skeletons.
+ Don't translate debugging messages.
+ Don't assume line numbers fit in unsigned int; use unsigned long fmts.
+ * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
+ to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
+ * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
+
+ Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
+ void, not int.
+ * tests/glr-regression.at (Badly Collapsed GLR States):
+ Likewise.
+ (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+ yylex should return 0 at EOF rather than aborting.
+
+ Improve tests for stack overflow in GLR parser.
+ Problem reported by twlevo@xs4all.nl.
+ * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
+ All uses removed.
+ (yyStackOverflow): Just longjmp, but with value 2 so that caller
+ can handle the problem.
+ (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
+ (yyparse): New local variable yyresult to record the result.
+ Use result of setjmp to set it, rather than storing itinto
+ struct.
+ (yyDone): Remove label.
+ (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
+ to mimic yacc.c. Do not discard lookahead if it's EOF (possible
+ if YYABORT is used).
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
+ yyparse status; put status > 1 into diagnostic.
+ Check that status==2 works.
+ * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
+ Use exit status 3 for failure to open (which shouldn't happen).
+
+2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/conflicts.at (%nonassoc and eof): Don't exit with status
+ 1 on syntax error; just let yyparse do its thing.
+ * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
+ * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
+ (Exploding the Stack Size with Alloca):
+ (Exploding the Stack Size with Malloc):
+ Expect exit status 2, not 1, since the parser is supposed to blow
+ its stack. Problem reported by twlevo@xs4all.nl.
+
+ * data/glr.c (yyparse): Don't assume that the initial calls
+ to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
+ Print a stack-overflow message and fail instead.
+ Initialize the line-number information before creating the stack,
+ so that the stack-overflow message can report line zero safely.
+
+2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix problems reported by twlevo@xs4all.nl.
+ * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
+ (yyuserMerge): Provide a default case if b4_mergers is empty.
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
+ * tests/glr-regression.at
+ (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+ Add casts to pacify C++ compilers.
+ * tests/glr-regression.at (Improper merging of GLR delayed action
+ sets): Declare yylex before using it.
+ * tests/Makefile.am (maintainer-check-g++): Fix a stray
+ $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
+ test for valgrind; valgrind is independent of g++.
+ (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
+ for compatibility with POSIX 1003.1-2001 (if running coreutils).
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
+ Use a destructor, so that we can expand the stack. Change
+ YYSTYPE to char * so that we can free it. Cast result of malloc.
+
2005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
* data/glr.c (yyuserAction): Fix uninitialized variable that caused