Commit Graph

1259 Commits

Author SHA1 Message Date
Akim Demaille
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.
2005-07-12 15:58:49 +00:00
Akim Demaille
82b248ada6 * src/parse-gram.y: Use %printer instead of YYPRINT. 2005-07-12 13:54:41 +00:00
Akim Demaille
867a3e0085 * src/symtab.h, src/symtab.c (symbol_print): New.
* src/symlist.h, src/symlist.c (symbol_list_print): New.
* src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
2005-07-12 13:41:58 +00:00
Akim Demaille
fa0e93148c * data/glr.c (b4_syncline): Fix (swap) the definition of
b4_at_dollar and b4_dollar_dollar.
2005-07-12 13:39:38 +00:00
Paul Eggert
e054b19038 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
and Pennello's paper.
2005-07-11 22:29:55 +00:00
Paul Eggert
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.
2005-07-09 08:26:29 +00:00
Paul Eggert
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.
2005-07-09 07:14:18 +00:00
Paul Eggert
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.
2005-07-07 23:16:46 +00:00
Paul Eggert
c3d5a4a783 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
implied by the other modules.
2005-07-07 16:06:50 +00:00
Akim Demaille
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.
2005-07-06 07:49:25 +00:00
Paul Eggert
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.
2005-07-06 04:12:23 +00:00
Paul Eggert
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.
2005-07-05 21:58:37 +00:00
Akim Demaille
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.
2005-07-05 07:21:30 +00:00
Akim Demaille
8a0adb0183 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
class typedefs.
2005-06-24 14:56:11 +00:00
Akim Demaille
12545799f9 * doc/bison.texinfo (C++ Language Interface): First stab.
(C++ Parsers): Remove.
2005-06-22 16:49:19 +00:00
Akim Demaille
99be023555 * data/lalr1.cc (yylex_): Honor %lex-param. 2005-06-22 15:37:22 +00:00
Akim Demaille
0ffd4fd1a2 Start a set of simple examples.
* examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
* examples/calc++/calc++-driver.hh,
* examples/calc++/calc++-parser.yy,
* examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
* examples/calc++/compile, examples/calc++/test: New.
2005-06-22 15:32:10 +00:00
Paul Eggert
0925ebb4fa * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside extern "C" {}. 2005-06-09 20:44:28 +00:00
Paul Hilfinger
43d3b66471 data/glr.c: Modify treatment of unused parameters to permit use
of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
2005-06-07 02:47:12 +00:00
Paul Eggert
3062864d2c Fix infringement on user name space reported by Janos Zoltan Szabo. 2005-05-30 17:23:52 +00:00
Akim Demaille
989b5b8e3d * data/lalr1.cc (_): New.
Translate the various messages.
2005-05-30 07:02:40 +00:00
Paul Eggert
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.
2005-05-27 23:22:10 +00:00
Paul Eggert
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.
2005-05-25 19:48:00 +00:00
Paul Eggert
85ac3861e7 * README: Mention m4 1.4.3. Remove obsolete advice about
Sun Forte Developer 6 update 2, VMS, and MS-DOS.
2005-05-23 23:19:55 +00:00
Paul Eggert
b94a9e1ed1 * bootstrap: Remove workaround for problem I encountered with
gettext 0.14.1; it seems to be fixed now.
2005-05-23 18:43:08 +00:00
Paul Eggert
009ce67dbe Version 2.0a. 2005-05-23 06:48:08 +00:00
Paul Eggert
f2a97c6294 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
the previous change.
2005-05-22 17:52:12 +00:00
Paul Eggert
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.
2005-05-22 17:45:28 +00:00
Paul Eggert
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.
2005-05-22 08:04:06 +00:00
Paul Eggert
51c30d2144 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
yesterday's yacc.c fix.
2005-05-22 07:31:41 +00:00
Paul Eggert
cea1469d47 Fix a destructor bug reported by Wolfgang Spraul in
<http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
* data/yacc.c (yyabortlab): Don't call destructor, and
don't set yychar to EMPTY.
(yyoverflowlab): Don't call destructor.
(yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
* tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
since we no longer output the message "discarding lookahead token
end of input ()".
2005-05-22 05:20:01 +00:00
Paul Hilfinger
5e6f62f2f1 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
fix a small glitch in debugging output.
(yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
after YY_SYMBOL_PRINT where needed.

(struct yyGLRState): Add some comments.
(struct yySemanticOption): Add some comments.
(union yyGLRStackItem): Add comment.

(yymergeOptionSets): Correct this to properly perform the union,
avoiding infinite reported by Michael Rosien.
Update comment.

* tests/glr-regression.at: Add test for GLR merging error reported
by M. Rosien.
2005-05-21 08:35:51 +00:00
Paul Eggert
0fb669f9d6 Update FSF postal mail address. 2005-05-14 06:49:48 +00:00
Paul Eggert
51f4735e22 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
Problem reported by Ralf Menzel.
2005-05-11 19:38:24 +00:00
Paul Eggert
80ce3401e9 * tests/actions.at: Test that stack overflow invokes destructors.
From Marcus Holland-Moritz.
* data/yacc.c (yyerrlab): Move the code that destroys the stack
from here....
(yyreturn): to here.  That way, destructors are called properly
even if the stack overflows, or the user calls YYACCEPT or
YYABORT.  Stack-overflow problem reported by Marcus Holland-Moritz.
(yyoverflowlab): Destroy the lookahead.
2005-05-02 04:52:33 +00:00
Paul Eggert
c19683bb19 * tests/input.at (Torturing the Scanner): Adjust to lack of quotes
in diagnostics.
2005-04-17 08:13:37 +00:00
Paul Eggert
72f000b088 * NEWS: Bison-generated C parsers no longer quote literal strings
associated with tokens.
* src/output.c (prepare_symbols): Don't escape strings,
since users don't want to see C escapes.
* tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
in diagnostics.
* tests/regression.at (Token definitions, Web2c Actions): Likewise.
2005-04-17 08:07:15 +00:00
Paul Eggert
1094323fe4 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
the data size is known to be too small and we can't increase it.
2005-04-16 08:11:52 +00:00
Paul Eggert
ca407bdf9d * src/parse-gram.y: Include quotearg.h.
(string_as_id): Quote $1 before using it as a key, since the
lexer no longer quotes it for us.
(string_content): Don't strip quotes, since lexer no longer
quotes it for us.
* src/scan-gram.l: Include quotearg.h.
("\""): Omit quote.
("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
a key, since the rest of the lexer doesn't quote it.
* src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
* tests/regression.at (Token definitions): Check for backslashes
in token strings.
2005-04-16 06:32:51 +00:00
Paul Eggert
1ce590705a * NEWS: Bison-generated C parsers now use the _ macro to
translate strings.
* data/yacc.c (_) [!defined _]: New macro.
All English strings wrapped inside this macro.
* doc/bison.texinfo (Bison Parser): Document _.
* po/POTFILES.in: Include src/parse-gram.c, since it now
includes translateable strings that parse-gram.y doesn't.
2005-04-14 00:08:56 +00:00
Paul Eggert
a749a69501 Fix aliases bug reported by Tim Van Holder. 2005-04-12 22:38:43 +00:00
Paul Eggert
8fb1053bfe * tests/regression.at (Token definitions): Don't use a token named c. 2005-03-26 01:13:13 +00:00
Paul Eggert
ff498c4aed * bootstrap: Change translation URL. 2005-03-21 22:36:41 +00:00
Paul Eggert
65211d70bc * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
after operands; POSIX says this isn't portable for the c99 command.
2005-03-21 06:58:31 +00:00
Paul Eggert
9577fb1f47 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
immediately if a data overrun has occurred.
2005-03-18 20:57:37 +00:00
Paul Eggert
a2599d0fc2 Respond to problems reported by twlevo@xs4all.nl. 2005-03-17 23:42:57 +00:00
Paul Eggert
78b178f716 * src/vcg.h: Comment fix.
* src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
(G_CMAX): Change to -1 instead of INT_MAX.
2005-03-17 19:20:15 +00:00
Paul Eggert
7296e729ce * src/tables.c (state_number_to_vector_number): Put it inside an
"#if 0".
2005-03-15 23:53:47 +00:00
Paul Eggert
05ac60f348 * src/output.c (escaped_output): Renamed from
escaped_file_name_output, since we now use it for symbol tags as
well.  All uses changed.
(symbol_destructors_output, symbol_printers_output):
Escape symbol tags too.
Problem reported by Matyas Forstner in
<http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.

* src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
not needed.
* src/output.c (user_actions_output, token_definitions_output,
symbol_destructors_output, symbol_printers_output): Likewise.
* src/reader.c (prologue_augment): Likewise.
* src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
2005-03-07 06:41:39 +00:00
Paul Eggert
7eb453acd5 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
example, reported by Derek M Jones.
2005-03-01 00:41:58 +00:00