3d54b57635
* tests/regression.at (Token definitions): Don't rely on AT_PARSER_CHECK for data that contains backslashes. It currently uses 'echo', and 'echo' isn't portable if its argument contains backslashes. Problem found on OpenBSD 3.4. Also, do not assume that the byte '\0xff' is not printable in the C locale; it is, under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are not printable, so use '\0x81' to test.
Paul Eggert2005-07-25 06:36:13 +00:00
d53ae497dc
* data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent version of GCC, since the macro is used with non-GCC compilers.
Paul Eggert2005-07-25 04:20:55 +00:00
3bc00d6c4b
(YYOPTIONAL_LOC): Define even if it's not a recent version of GCC, since the macro is used with non-GCC compilers.
Paul Eggert2005-07-25 04:20:39 +00:00
135bc829bd
(ATTRIBUTE_UNUSED): Remove, since it infringes on the user's name space. All uses changed to __attribute__ ((__unused__)). (yyFail, yyMemoryExhausted, yyreportAmbiguity): Add __attribute__ ((__noreturn__)).
Paul Eggert2005-07-24 07:17:06 +00:00
f938a7e7b8
(message): Don't print a message more than once, and omit line-number decoration that makes Emacs compile think that informative messages are worth worrying about.
Paul Eggert2005-07-23 17:06:41 +00:00
f38b17c9bf
(SUBDIRS): Add examples; somehow this got removed accidentally.
Paul Eggert2005-07-22 23:02:50 +00:00
26a69b31fa
(relation_transpose): Rewrite to avoid bogus complaint from maintainer-distcheck about casting the argument of 'free'.
Paul Eggert2005-07-22 21:56:20 +00:00
4ff8b7f7c9
For translations that have not yet been upgraded to the new runtime-po domain, prime the pump by extracting the relevant strings from the obsolete translations. This code can be removed once the bison-runtime domain has been translated by each team.
Paul Eggert2005-07-22 18:35:27 +00:00
6d07bacfc0
(<SC_PRE_CODE>.): Don't double-quote token names, now that token names are already quoted.
Paul Eggert2005-07-22 17:58:51 +00:00
141f57937b
* data/glr.c (YYTOKEN_TABLE): New macro. (yytname): Define if YYTOKEN_TABLE. * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise. * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise. (YYERROR_VERBOSE): Define the same way the other skeletons do. * src/output.c (prepare_symbols): Output token_table_flag.
Paul Eggert2005-07-22 17:07:31 +00:00
0ffda36340
Catch up to last couple of days' checkins.
Paul Eggert2005-07-22 04:56:35 +00:00
3922956abd
(yyinitGLRStack, yyreturn): Don't call malloc again if the first call fails.
Paul Eggert2005-07-22 04:56:14 +00:00
9e0876fb0c
* data/glr.c (yytnamerr): New function. (yyreportSyntaxError): Use it to dequote most string literals. * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility with other skeletons. All uses changed. (yytnameerr_): New function. (yyreport_syntax_error): Use it to dequote most string literals. * data/yacc.c (yytnamerr): New function. (yyerrlab): Use it to decode most string literals. * doc/bison.texinfo (Decl Summary, Calling Convention): Clarify quoting convention of yytname. * src/output.c (prepare_symbols): Quote all names. This undoes the 2005-04-17 change, which is now accomplished (mostly) via changes in the parsers as described above. * tests/regression.at (Token definitions, Web2c Actions): Undo most 2005-04-17 change here, too.
Paul Eggert2005-07-21 20:53:03 +00:00
49b1cf794d
Don't pipe output of ./types through sed to remove trailing spaces. This loses the exit status of ./types, and isn't needed since ./types shouldn't be emitting trailing spaces.
Paul Eggert2005-07-20 22:01:47 +00:00
6fdb09caac
(yyreturn): Don't pop stack if yyinitStateSet failed, as the stack isn't valid in that case.
Paul Eggert2005-07-20 21:43:32 +00:00
258b75caaa
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.
Paul Eggert2005-07-19 06:56:44 +00:00
4cf31ef8e7
(_AT_TEST_GLR_CXXTYPES): Don't try to have yyerror return 0, now that it returns void.
Paul Eggert2005-07-19 03:32:40 +00:00
1a05945136
* 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".
Paul Eggert2005-07-19 00:05:57 +00:00
a778f668a1
Add bison-runtime.pot; remove bison-runtime.old.pot.
Paul Eggert2005-07-18 22:25:54 +00:00
30757c8c93
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.
Paul Eggert2005-07-18 22:10:15 +00:00
ac8c5689f8
Fix yyerror / yylex test glitches noted by [email protected]. * 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.
Paul Eggert2005-07-18 18:39:01 +00:00
6100a9aa2e
Improve tests for stack overflow in GLR parser. Problem reported by [email protected]. * 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).
Paul Eggert2005-07-18 18:09:40 +00:00
67fd79c427
* 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 [email protected].
Paul Eggert2005-07-18 06:14:16 +00:00
15f40952f7
* 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.
Paul Eggert2005-07-17 07:30:38 +00:00
c70fdfcd20
More changes to pacify C++ compilers.
Paul Eggert2005-07-14 23:57:45 +00:00
e2688cd96e
* 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): YYSTYPE is char *, not char const *, so that strcpy ($$, ...) works.
Paul Eggert2005-07-14 23:15:47 +00:00
1beb0b24f3
* tests/glr-regression.at (Improper merging of GLR delayed action sets): Declare yylex before using it.
Paul Eggert2005-07-14 21:42:40 +00:00
a22ff96f32
* tests/Makefile.am (maintainer-check-g++): 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.
Paul Eggert2005-07-14 17:27:01 +00:00
71206cce8e
(maintainer-check-g++): Fix a stray $(GXX) that escaped the renaming of GXX to CXX.
Paul Eggert2005-07-14 16:33:28 +00:00
d741bd1bfd
* data/glr.c (yyuserAction): Fix uninitialized variable that caused a valgrind failure. Problem reported by [email protected].
Paul Eggert2005-07-14 05:08:03 +00:00
0410a6e0cc
* PACKAGING: New file, suggested by Bruno Haible and taken from similar wording in gettext's PACKAGING file. * NEWS: Mention PACKAGING. * Makefile.am (EXTRA_DIST): Add PACKAGING.
Paul Eggert2005-07-13 18:16:30 +00:00
a7db4add01
Bison-generated C parser -> Bison-generated parser
Paul Eggert2005-07-13 17:35:34 +00:00
f7ab6a5010
* bootstrap: Get runtime translations into runtime-po. Create runtime-po files automatically, if possible. * configure.ac: Invoke BISON_I18N, so that we eat our own dog food. * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS does not infringe on the user's name space. (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS. * doc/bison.texinfo (Internationalization): Revamp the English and Texinfo syntax a bit, to try to make it clearer. (Bison Options, Option Cross Key): Mention --print-localedir. * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to YYENABLE_NLS. Quote a bit more. * runtime-po/.cvsignore: New file. * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot. * runtime-po/Rules-quot: Remove; now created by bootstrap. * runtime-po/quot.sed: Likewise. * runtime-po/boldquot.sed: Likewise. * runtime-po/[email protected]: Likewise. * runtime-po/[email protected]: Likewise. * runtime-po/insert-header.sin: Likewise. * runtime-po/remove-potcdate.sin: Likewise. * runtime-po/Makevars: Likewise. * runtime-po/LINGUAS: Likewise. * runtime-po/de.po: Likewise; we will rely on the translation project to maintain this, so "bootstrap" should get it. * src/getarg.s (PRINT_LOCALEDIR_OPTION): Let the C compiler determine its value. * src/main.c (main): Bind the bison-runtime domain, too.
Paul Eggert2005-07-12 23:28:54 +00:00
22dda0f004
* src/symtab.h, src/symtab.c (symbol_print): Swap the arguments, for consistency with the rest of the code. * src/symlist.h, src/symlist.c (symbol_list_print): Ditto. Add separators.
Akim Demaille2005-07-12 15:58:49 +00:00
82b248ada6
* src/parse-gram.y: Use %printer instead of YYPRINT.
Akim Demaille2005-07-12 13:54:41 +00:00
407d4a75bb
* data/yacc.c (yyparse): Undo previous patch. Instead, set yylsp[0] and yyvsp[0] only if the initial action sets yylloc and yylval, respectively.
Paul Eggert2005-07-09 08:26:29 +00:00
34160ec4ec
* data/yacc.c (yyparse): In the initial action, set yylsp[0] and yyvsp[0] rather than yylloc and yylval. This avoids the use of undefined variables if the initial action does not set yylloc and/or yylval.
Paul Eggert2005-07-09 07:14:18 +00:00
b34d96c1c3
* examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh: * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc: Remove from CVS. These files are automatically generated. * examples/extexi: Clarify that this file is now part of Bison, not GNU M4, and that it works with any POSIX-compatible Awk. * examples/calc++/Makefile.am (run_extexi): Remove; not used. ($(calc_extracted)): Renamed from $(calc_sources_extracted), so that we also get calc++-parser.yy. Geneate it. Use $(AWK), not gawk, since any conforming Awk will do. Put comment before action, since older 'make' can't handle comment in action. $(BUILT_SOURCES): List all built sources, not just some of them. $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources. $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT. $($(calc_sources_generated)): Remove unnecessary test for existence of target. (This had a shell syntax error anyway; a stray "x".) (calc_extracted): List $(srcdir)/calc++-parser.yy, not calc++-parser.yy. * examples/.cvsignore, examples/calc++/.cvsignore: New files.
Paul Eggert2005-07-07 23:16:46 +00:00
c3d5a4a783
* bootstrap (gnulib_modules): Add gettext, now that it's no longer implied by the other modules.
Paul Eggert2005-07-07 16:06:50 +00:00
828c373b6d
Bind examples/calc++ to the package. * examples/calc++/Makefile: Remove, replaced by... * examples/calc++/Makefile.am: ... this new file. * examples/calc++/test: Remove input. * examples/calc++/compile: Remove. * examples/Makefile.am: New. * configure.ac, Makefile.am: Adjust. * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
Akim Demaille2005-07-06 07:49:25 +00:00
fd2df2ede4
* data/glr.c (yyFail): Drastically simplify; since the format argument never had any % directives, we can simply pass it to yyerror. (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will be modified later, as that is the usual style in glr.c.
Paul Eggert2005-07-06 04:12:23 +00:00
63cb01d656
Rewrite GLR parser to catch more buffer overrun, storage exhaustion, and size overflow errors. * data/glr.c: Include <stdio.h> etc. after user prolog, not before, in case the user prolog sets feature-test macros like _GNU_SOURCE. (YYSIZEMAX): New macro. (yystpcpy): New function, taken from yacc.c. (struct yyGLRStack.yyspaceLeft): Now size_t, not int. (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls, so that we don't have to maintain their signatures. (yyFail): Check for buffer overflow, by using vsnprintf rather than vsprintf. Allocate a bigger buffer if possible. Report an error if buffer allocation fails. (yyStackOverflow): New function. (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether the initialization was successful. It might fail if storage was exhausted. (yyexpandGLRStack): Add more checks for storage allocation failure. Use yyStackOverflow to report failures. (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction): (yysplitStack, yyprocessOneStack, yyparse, yypstack): Don't assume stack number fits in int. (yysplitStack): Check for storage allocation failure. (yysplitStack, yyprocessOneStack): Add pure_formals, so that we can print diagnostics on storage allocation failure. All callers changed. (yyresolveValue): Use yybool for boolean. (yyreportSyntaxError): Check for size-calculation overflow. This code is taken from yacc.c. (yyparse): Check for storage allocation errors when allocating the initial stack.
Paul Eggert2005-07-05 21:58:37 +00:00
1c59e0a121
Extract calc++ from the documentation. * doc/bison.texinfo (Calc++): Add the extraction marks. * examples/extexi: New, from the aborted GNU Programming 2E. Separate the different paragraph of a file with empty lines. * examples/Makefile: Use it to extract the whole calc++ example.
Akim Demaille2005-07-05 07:21:30 +00:00
8a0adb0183
* doc/bison.texinfo (C++ Parser Interface): Use defcv to define class typedefs.
Akim Demaille2005-06-24 14:56:11 +00:00
12545799f9
* doc/bison.texinfo (C++ Language Interface): First stab. (C++ Parsers): Remove.
Akim Demaille2005-06-22 16:49:19 +00:00
43d3b66471
data/glr.c: Modify treatment of unused parameters to permit use of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
Paul Hilfinger2005-06-07 02:47:12 +00:00
bedf57f515
Fix infringement on user name space reported by Bruno Haible. * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it. Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on the user's name space. (alloca): Include <stdlib.h> to get it, if it's not built in. (YYMALLOC, YYFREE): Define only if needed. (malloc, free): Declare, but only if needed, as this infringes on the user name space.
Paul Eggert2005-05-27 23:22:10 +00:00
4d1801f1a8
Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible. * lib/bitset.c (bitset_print): Don't assume size_t can be printed with %d format. * lib/ebitset.c (min, max): Undef before defining. * lib/vbitset.c (min, max): Likewise. * lib/subpipe.c (create_subpipe): Save local variables in case vfork clobbers them. * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the error message syntax used by gcc-4.0.
Paul Eggert2005-05-25 19:48:00 +00:00
85ac3861e7
* README: Mention m4 1.4.3. Remove obsolete advice about Sun Forte Developer 6 update 2, VMS, and MS-DOS.
Paul Eggert2005-05-23 23:19:55 +00:00
b94a9e1ed1
* bootstrap: Remove workaround for problem I encountered with gettext 0.14.1; it seems to be fixed now.
Paul Eggert2005-05-23 18:43:08 +00:00
f2a97c6294
* src/files.c: Include "stdio-safer.h"; this fixes a typo in the previous change.
Paul Eggert2005-05-22 17:52:12 +00:00
c8775f9398
Various maintainer cleanups. * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*, conftest*, for benefit of CVS commands run at the same time as "configure". Add build-aux, since "bootstrap" now creates it and its subfiles. * Makefile.cfg (move_if_change): Remove. * Makefile.maint: Remove the update stuff; we now use "bootstrap". (ftp-gnu, www-gnu, move_if_change, local_updates, update): (po_repo, do-po-update, po-update, wget_files, get-targets): (config.guess-url_prefix, config.sub-url_prefix): (ansi2knr.c-url_prefix, texinfo.tex-url_prefix): (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url): ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update): Remove. * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux; this is now the recommended name. * config/.cvsignore: Remove config.guess, config.rpath, config.sub, depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex, ylwrap. These files now go into build-aux. * config/move-if-change: Remove. * config/prev-version.txt: Bump from 1.75 to 2.0.
Paul Eggert2005-05-22 17:45:28 +00:00
3ea5f0ec81
* bootstrap: Add stdio-safer, unistd-safer modules. Remove m4/glibc2.m4 (introduced by latest gnulib, but we don't need it). * lib/.cvsignore: Add dup-safer.c, fd-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h. * lib/subpipe.c: Include "unistd-safer.h". (create_subpipe): Make sure all the newly-created file descriptors are > 2, so that diagnostics don't get sent down them (which might cause Bison to hang, in theory). * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4. * src/files.c (xfopen): Use fopen_safer, not fopen.
Paul Eggert2005-05-22 08:04:06 +00:00
51c30d2144
* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port yesterday's yacc.c fix.
Paul Eggert2005-05-22 07:31:41 +00:00
ad7458633d
(yy::]b4_parser_class_name[::parse): Port yesterday's yacc.c fix.
Paul Eggert2005-05-22 07:31:24 +00:00