Commit Graph

1479 Commits

Author SHA1 Message Date
Paul Eggert
d664514801 * data/glr.c (yyreportSyntaxError): Fix off-by-one error in
checking against YYLAST that caused the parser to miss a potential
alternative in its diagnostic.
Problem reported by Maria Jose Moron Fernandez in
<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
* data/lalr1.cc (yysyntax_error_): Likewise.
* data/yacc.c (yysyntax_error): Likewise.
* tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
tokens, in case we run into an older C compiler.
(_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
Use them to check for the off-by-one error fixed above.
2006-05-15 06:13:53 +00:00
Paul Eggert
276f48df88 * data/yacc.c (yytnamerr): Fix typo: local var should be of type
YYSIZE_T, not size_t.
* tests/regression.at (Trivial grammars): New test, to catch
the error fixed by the above patch.
2006-05-15 05:10:06 +00:00
Akim Demaille
cd8b579166 * doc/bison.texinfo (C++ Bison Interface): Clarify the naming
scheme.
Reported by Steve Murphy.
2006-05-14 21:00:37 +00:00
Akim Demaille
34376418e2 * data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
* data/glr.cc: b4_location_flag is now b4_locations_flag.
2006-05-14 20:48:24 +00:00
Akim Demaille
327afc7c84 Implement --trace=m4.
* src/getargs.c (trace_types, trace_args): Accept trace_m4.
* src/output.c (output_skeleton): When set, pass -dV to m4.
Factor the handling of flags in m4.
* src/output.c (prepare): Rename the muscle names debug, defines,
error_verbose to debug_flag, defines_flag, error_verbose_flag.
* data/c.m4: Adjust.
(_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
Use b4_define_flag_if to define other b4_FLAG_if macros.
(b4_location_if): As a consequence, rename as...
(b4_locations_if): this, for consistency.
Adjust all the skeletons.
2006-05-14 20:40:35 +00:00
Akim Demaille
ba9ecd1910 * etc/bench.pm: Shorten bench names. 2006-05-14 20:39:18 +00:00
Akim Demaille
4e83ea15f7 * src/output.h, src/output.c (error_verbose): Move to...
* src/getargs.h, src/getargs.c: here.
Sort the flags.
Adjust dependencies.
2006-05-14 19:14:10 +00:00
Akim Demaille
0a9f1c7d45 Fix. 2006-05-14 07:23:21 +00:00
Paul Eggert
b15296ff31 Give credit to Akim for suggestion. 2006-05-14 07:04:09 +00:00
Paul Eggert
6e93d810ca * data/c.m4 (b4_copyright): Put the special exception for Bison
skeletons here, so we don't have to put it in each skeleton.  All
uses changed.  Wrap the copyright notice, in case it is longer
than 80 columns.  Replace comma by newline after title.
2006-05-14 07:00:18 +00:00
Paul Eggert
eaea13f59f * doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
incompatibility, not a bug.  Mention that it wasn't fixed as of
flex 2.5.33.
2006-05-11 16:54:01 +00:00
Akim Demaille
3cf084ecae * examples/extexi: Enforce the precedence of concatenation over
>>.
Reported by   tommy.nordgren@chello.se
2006-05-11 11:35:13 +00:00
Akim Demaille
f94705b204 Complete ChangeLog. 2006-05-11 06:21:18 +00:00
Akim Demaille
32c96bd755 * data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
with the member "token".
2006-05-11 06:18:34 +00:00
Akim Demaille
6e2d1146f2 * data/glr.cc: Remove dead code. 2006-04-27 10:43:02 +00:00
Paul Eggert
4767105543 * bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
that variable and the line breaks the bootstrap.
2006-04-25 21:02:36 +00:00
Akim Demaille
ed2e6384ed * doc/bison.texinfo (Multiple start-symbols): New. 2006-04-24 09:45:57 +00:00
Akim Demaille
3cedc2dc0d * etc/README, etc/bench.pl: New. 2006-04-24 08:35:44 +00:00
Akim Demaille
b2ddc3f337 * src/scan-gram.l: Be robust to BRACED_CODE appearing before any
rule.
Reported by Mickael Labau.
* tests/input.at (Torturing the Scanner): Test it.
2006-04-03 13:50:10 +00:00
Paul Eggert
91e3ac9ab0 * doc/bison.texinfo (Decl Summary): Don't mention yylloc twice. 2006-03-17 07:59:20 +00:00
Akim Demaille
5cf61e933d * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
of AT_NAME_PREFIX when %name-prefix is not used.
2006-03-12 15:26:05 +00:00
Akim Demaille
aa08666d72 Apply --prefix to C++ skeletons too: they change the namespace.
The test suite already exercize these cases.
* data/c++.m4 (b4_namespace): New.
* data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
* data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
* data/yacc.c, data/glr.c: Remove a useless `[]'.
* doc/bison.texinfo: Document it.
(Option Cross Key): Use @multitable in all formats.  It looks
nicer, even in TeX outputs.
(Rules): Use the same code whatever the output type is.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
(_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
* tests/calc.at: Use it, instead of hard coding `yy'.
2006-03-12 14:45:27 +00:00
Akim Demaille
455671735e * TODO: Remove dead items. 2006-03-10 13:56:47 +00:00
Akim Demaille
e9d8f881ce Fix ChangeLog. 2006-03-10 13:53:48 +00:00
Akim Demaille
55ba27be34 * doc/FAQ: Remove, merged into...
* doc/bison.texinfo (FAQ): this.
* doc/Makefile.am (EXTRA_DIST): Adjust.
2006-03-10 13:45:03 +00:00
Akim Demaille
c095d689c3 * data/c.m4 (b4_token_enum): Always define the enum of tokens,
even if empty.
* data/lalrl1.cc, data/glr.cc (parser::token_type): New.
* doc/bison.texinfo (Calc++ Scanner): Use it.
2006-03-10 13:30:19 +00:00
Paul Eggert
6e0f828781 Fix two nits reported by twlevo, plus one more that I discovered.
* src/assoc.h (assoc_to_string): Give a name to the arg, as
this is the usual Bison style.
* src/location.h (location_print): Likewise.

* src/reader.h (token_name): Likewise.
2006-03-09 23:23:11 +00:00
Paul Eggert
d6b771c345 Fix some nits reported by twlevo.
* doc/FAQ: Remove ancient Y2K FAQ, replacing it with "secure"
and "POSIX".  Use more-modern syntax for URLs.  Mention C++
and ask for Java.  Don't hardwire OS version numbers.  Add
copyright notice.
* m4/.cvsignore: Add unistd_h.m4, for latest gnulib.
* src/conflicts.c (solved_conflicts_obstack): Now static.
2006-03-08 19:45:10 +00:00
Joel E. Denny
1e137b710b * doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
page.  Say "you can use it" not "you may use it" as on the web page;
we're describing capabilities not granting permission.
2006-03-08 19:34:56 +00:00
Paul Eggert
6d05403db4 * data/glr.c (yyresolveLocations): Rename local variables to avoid
shadowing warnings.  Use usual patter for iterating through RHS.
* tests/glr-regression.at
(Uninitialized location when reporting ambiguity):
Modify yylex so that it uses its argument, rather than trying
to rely on ARGSUSED (which doesn't work for gcc with warnings).
const char -> char const.
2006-03-07 06:42:23 +00:00
Paul Eggert
73f2e47e51 * tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
Don't use tabs inside commands; it messes up 'ps'.
2006-03-06 08:29:22 +00:00
Joel E. Denny
8710fc41aa * tests/glr-regression.at (Uninitialized location when reporting
ambiguity): New test case.
* data/glr.c (yyresolveLocations): New function, which uses
YYLLOC_DEFAULT.
(yyresolveValue): Invoke yyresolveLocations before reporting an
ambiguity.
* doc/bison.texinfo (Default Action for Locations): Note
YYLLOC_DEFAULT's usage for ambiguity locations.
(GLR Semantic Actions): Cross-reference those notes.
2006-03-06 07:39:11 +00:00
Joel E. Denny
ae952af227 * tests/glr-regression.at (Leaked semantic values when reporting
ambiguity): Remove unnecessary union and type declarations.
(Leaked lookahead after nondeterministic parse syntax error): New test
case.
* data/glr.c (yyparse): Check for zero stacks remaining before
attempting to shift the lookahead so that you don't lose it.
2006-03-04 03:29:03 +00:00
Joel E. Denny
35ee866a32 Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
* tests/glr-regression.at (Leaked semantic values when reporting
ambiguity): New test case.
* data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
yyabort rather than invoking yyFail, which invokes longjmp.  Remove the
now unnecessary yystackp parameter.
(yyresolveValue): Return yyreportAmbiguity's result.  Now the necessary
destructors can be called.

* tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
in existing testcases.
2006-03-02 06:18:09 +00:00
Joel E. Denny
520181ab91 Don't leak semantic values for parent RHS when a user action cuts the
parser, and clean up related code a bit.
* tests/glr-regression.at (Leaked merged semantic value if user action
cuts parse) Rename to...
(Leaked semantic values if user action cuts parse) ... this.  Add check
for leaked parent RHS values.
* data/glr.c (yydestroyGLRState): In debugging output, distinguish
between an unresolved state (non-empty chain of semantic options) and
an incomplete one (signaled by an empty chain).
(yyresolveStates): Document the interface.  Move all manipulation of an
successfully or unsuccessfully resolved yyGLRState to...
(yyresolveValue): ... here so that yyresolveValue always leaves a
yyGLRState with consistent data and thus is easier to understand.
Remove the yyvalp and yylocp parameters since they are always just
taken from the yys parameter.  When reporting a discarded merged value
in debugging output, note that it is incompletely merged.  Document the
interface.
(yyresolveAction): If resolving any of the RHS states fails, destroy
them all rather than leaking them.  Thus, as long as user actions are
written to clean up the RHS correctly, yyresolveAction always cleans up
the RHS of a semantic option.  Document the interface.
2006-03-02 01:35:15 +00:00
Paul Eggert
18d9185cae * data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
led to a segmentation fault in GNU Pascal.  Problem reported
by Waldek Hebisch.
2006-02-27 19:50:59 +00:00
Joel E. Denny
841a773708 * doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
mid-rule action inside a nonterminal symbol in order to declare a
destructor for its semantic value.
2006-02-21 21:01:57 +00:00
Paul Eggert
fc3f467ff1 * data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
__cplusplus && ! defined _STDLIB_H && !
((defined YYMALLOC || defined malloc) && (defined YYFREE ||
defined free))]: Include <stdlib.h> rather than rolling our own
declarations of malloc and free, to avoid problems with
incompatible declarations (using 'throw') C++'s stdlib.h.  This
should fix Debian bug 340012
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
reported by Guillaume Melquiond.
2006-02-17 00:08:17 +00:00
Paul Eggert
4d7bc38cdc * NEWS: Clarify symbols versus types in unused-value warnings. 2006-02-14 00:26:58 +00:00
Paul Eggert
a3af26dd7e Bump version number. 2006-02-13 19:23:26 +00:00
Paul Eggert
4e26c69eb6 * NEWS: Version 2.1a.
* tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
since C99 requires this.
2006-02-13 19:07:04 +00:00
Paul Eggert
498e897c67 * m4/c-working.m4: New file.
* configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
2006-02-12 02:14:38 +00:00
Paul Eggert
57bb17ca85 * Makefile.maint: Merge from coreutils. 2006-02-11 00:42:27 +00:00
Paul Eggert
0be105dc42 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
messes up because C++ code is compiled in 32-bit mode but linked
in 64-bit mode.
2006-02-10 08:00:30 +00:00
Paul Eggert
7870f699e4 * doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
2.5.31.  This resembles the 2005-10-10 patch to src/scan-skel.l.
2006-02-08 19:25:38 +00:00
Paul Eggert
6fc0c02473 * examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
nodist_PROGRAMS, since we don't need to actually compile the
example if we're just doing a plain 'make'.  This avoids bothering
the installer unnecessarily about problems due to weird C++
compilers.
2006-02-08 18:56:01 +00:00
Paul Eggert
fe6c2fdef2 * tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
than #include "...", and compile with -I'.'.
2006-02-06 23:49:52 +00:00
Juan Manuel Guerrero
927b425baa Various DJGGP specific issues in /djgpp. 2006-02-06 22:34:51 +00:00
Paul Eggert
d9735e9e3e * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
'#include <map>' works and that you can apply ++ to iterators.
2006-02-02 23:53:07 +00:00
Paul Eggert
8c86f0ef98 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
that '#include <string>' works.
2006-02-02 07:33:13 +00:00