Commit Graph

1979 Commits

Author SHA1 Message Date
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
Paul Eggert 4c04c52a9d * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for putsym. 2005-02-24 17:24:23 +00:00
Paul Eggert a61e1620e7 * doc/bison.texinfo: minor typo fixes 2005-02-23 09:15:27 +00:00
Paul Eggert 9ec93868c1 Fix $ in test names. 2005-02-08 00:37:43 +00:00
Paul Eggert 73ce7e7e63 * src/vcg.c (output_graph): G_VIEW -> normal_view. 2005-01-28 22:07:09 +00:00
Paul Eggert 2e72b98ed8 * src/vcg.c (get_view_str): Remove case for normal_view. 2005-01-27 22:03:21 +00:00
Paul Eggert ccf830a458 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug. 2005-01-24 23:48:11 +00:00
Paul Eggert e0d634e5c3 * doc/bison.texinfo: Change @dircategory from "GNU programming
tools" to "Software development".
2005-01-24 23:26:33 +00:00
Paul Eggert 7bbc8cb035 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands. 2005-01-23 08:38:33 +00:00
Paul Eggert 08b770bc1b * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register". 2005-01-21 19:12:51 +00:00
Paul Eggert 95f22ad2a7 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
gcc -Wswitch-default.
* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
* data/yacc.c (yyparse): Likewise.
2005-01-17 09:33:57 +00:00
Paul Eggert d229d15c76 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
already.  Let config.h define any nonstandard values.
2005-01-13 00:13:37 +00:00
Paul Eggert ecadd90f94 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10). 2005-01-10 18:22:30 +00:00
Paul Eggert 213744b51e * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
being defined and not used.
* data/lalr1.cc (yyparse): Likewise.
Use "if (false)" rather than "if (0)".
2005-01-08 05:22:36 +00:00
Paul Eggert 249d3236d0 TODO: Mention that we should allow NUL bytes in tokens. 2005-01-05 21:35:46 +00:00
Paul Eggert 987cc1fb28 * src/scan-skel.l (<<EOF>>): Don't close standard output. 2005-01-03 07:52:46 +00:00
Paul Eggert 08fe02d9fc Fix bug when stdout is closed. Update copyright to 2005. 2005-01-01 09:28:00 +00:00
Paul Eggert 010c0266ef * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
to fix an oversight in the Bison 2.0 manual.
2004-12-26 07:26:32 +00:00
Paul Eggert 3a4734aa97 Fix changelog entry for configure.ac. 2004-12-26 06:22:17 +00:00
Paul Eggert c935d93471 * tests/torture.at (Exploding the Stack Size with Alloca): Set
YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
otherwise, we're not testing alloca.  Unfortunately there's no
simple way to consult HAVE_ALLOCA here.

(This made it into 2.0.)
2004-12-26 06:13:31 +00:00
Paul Eggert da12206a7c Version 2.0. 2004-12-26 05:50:28 +00:00
Paul Eggert d7e14fc000 * NEWS: Bison-generated parsers no longer default to using the
alloca function (when available) to extend the parser stack, due
to widespread problems in unchecked stack-overflow detection.
* data/glr.c (YYMAXDEPTH): Remove undef when zero.  It's the user's
responsibility to set it to a positive value.  This lets the user
specify a value that is not a preprocessor constant.
* data/yacc.c (YYMAXDEPTH): Likewise.
(YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
* doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
to be a compile-time constant.  However, explain the constraints on it.
Also, explain the constraints on YYINITDEPTH.
(Table of Symbols): Explain that alloca is no longer the default.
Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
to 1.
2004-12-22 21:19:47 +00:00
Paul Eggert 0a2c51373a * doc/bison.texinfo (Location Default Action): Mention that n must be zero when k is. 2004-12-22 18:28:26 +00:00
Akim Demaille e019c24779 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
(parser::state_type, parser::semantic_type, parser::location_type):
Private, not public.
(parser::parse): Return ints, not bool.
Returning a bool introduces a problem: 0 corresponds to false, and
it seems weird to return false on success.  Returning true changes
the conventions for yyparse.
Alternatively we could return void and send an exception.
There is no clear consensus (yet?).
(state_stack, semantic_stack, location_stack): Rename as...
(state_stack_type, semantic_stack_type, location_stack_type): these.
Private, not public.
* tests/c++.at: New.
* tests/testsuite.at, tests/Makefile.am: Adjust.
2004-12-22 10:06:15 +00:00
Akim Demaille 72731bb70b * data/lalr1.cc (parser::parse): Return a bool instead of an int. 2004-12-21 12:49:39 +00:00
Akim Demaille 9a0d8becd8 Don't impose std::string for filenames.
* data/lalr1.cc (b4_filename_type): New.
(position::filename): Use it.
(parser.hh): Move the inclusion of stack.hh and location.hh below
the user code, so that needed headers for the filename type can be
included first.
2004-12-21 12:03:47 +00:00
Akim Demaille 99880de508 Use more STL like names: my_class instead of MyClass.
* data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
(SemanticStack, SemanticType, StateStack, StateType)
(TokenNumberType, Stack, Slice, Traits, Parser::location)
(Parser::value): Rename as...
(location_stack, location_type, rhs_number_type, semantic_stack)
(semantic_type, state_stack, state_type, token_number_type, stack)
(slice, traits, parser::yylloc, parser::yylval): these.
* tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
2004-12-20 13:56:38 +00:00
Paul Eggert 9bec482e39 (YYLLOC_DEFAULT): Use GNU spacing conventions. 2004-12-20 03:44:10 +00:00
Paul Eggert f6fbd3da9d Remove uses of 'short int' and 'unsigned short int' in the parser generators.
* src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
Use size_t, not int or short int, to count objects.
* src/closure.c (nritemset, closure): Likewise.
* src/closure.h (nritemset, closure): Likewise.
* src/nullable.c (nullable_compute): Likewise.
* src/print.c (print_core): Likewise.
* src/print_graph.c (print_core): Likewise.
* src/state.c (state_compare, state_hash): Likewise.
* src/state.h (struct state): Likewise.
* src/tables.c (default_goto, goto_actions): Likewise.

* src/gram.h (rule_number, rule): Use int, not short int.
* src/output.c (prepare_rules): Likewise.
* src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
errs, reductions): Likewise.
* src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
Likewise.
* src/tables.c (vector_number, tally, action_number,
ACTION_NUMBER_MINIMUM): Likewise.
* src/output.c (muscle_insert_short_int_table): Remove.
2004-12-17 20:29:19 +00:00
Akim Demaille efeed02327 * data/lalr1.cc: Extensive Doxygenation.
(error_): Rename as...
(error): this, since it is visible to the user.
Adjust callers.
(Parser::message): Now an automatic variable from...
(Parser::yyreport_syntax_error_): here.
* tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
Parser::error.
* tests/input.at: Escape $.
2004-12-17 15:24:32 +00:00
Paul Eggert bc82c5a593 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
Parenthesize rhs to avoid obscure problems with mistakes like
"foo$$bar = foo$1bar;".  Problem reported by twlevo at xs4all.
* data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
b4_rhs_location): Likewise.
* data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
b4_rhs_location): Likewise.
2004-12-16 20:41:54 +00:00