]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
(vbitset_copy): Now static, to avoid a GCC warning.
[bison.git] / ChangeLog
... / ...
CommitLineData
12003-06-17 Paul Eggert <eggert@twinsun.com>
2
3 Version 1.875b.
4
5 * NEWS: Document 1.875b.
6
7 * lib/bbitset.h: Do not include config.h; that's the includer's job.
8 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
9 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
10 Don't use 'index' in comments, as it's a builtin fn on some hosts.
11 * lib/bitset_stats.c: Include gettext.h unconditionally, as
12 per recent gettext manual's suggestion.
13 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
14 Use prototypes, not old-style definitions.
15 * lib/lbitset.c (lbitset_unused_clear): Likewise.
16 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
17 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
18 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
19 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
20 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
21 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
22 vbitset_or_and_cmp, vbitset_copy): Likewise.
23
24 * lib/libiberty.h: Do not include config.h; that's the includer's job.
25 Do not include <stdlib.h>.
26 (PARAMS): Define unconditionally for C89.
27 (ATTRIBUTE_NORETURN): Remove.
28 (ATTRIBUTE_UNUSED): Define unconditionally.
29
30 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
31 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
32 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
33 * lib/vbitset.c, lib/vbitset.h: New files.
34 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
35 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
36 from libbitset.
37
38 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
39 `How Can I Reset @code{yyparse}', since texinfo does not allow
40 arbitrary @ in node names.
41
42 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
43 shouldn't be needed according to the gettext 0.12.1 documentation
44 but which seem to be needed anyway: codeset.m4 glibc21.m4
45 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4
46 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
47
48 * lib/.cvsignore: Add stdbool.h.
49 * m4/.cvsignore: Add nls.m4, po.m4.
50
51 Upgrade to CVS gnulib.
52 * stdbool_.h: File renamed from stdbool.h.in.
53 * configure.ac (AM_STDBOOL_H): Invoke this instead of
54 AC_HEADER_STDBOOL.
55 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
56 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
57 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
58 (MOSTLYCLEANFILES): New var.
59 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
60 (stdbool.h): New rule.
61 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
62 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
63 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
64 m4/quote.m4: Upgrade to today's gnulib.
65
66 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
67 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
68 the tests right now.
69 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
70 yyerror are declared before use; C99 requires this.
71
722003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
73
74 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
75 first.
76 (yyrecoverSyntaxError): Correct the logic for setting and testing
77 yyerrState.
78 Correct comment on handling EOF.
79 Allow states with only a default reduction, rather than failing
80 (I can't quite reconstruct why these were not allowed before).
81
82 Fixes to avoid problem that $-N rules in GLR parsers can cause
83 buffer overruns, corrupting state.
84
85 * src/output.c (prepare_rules): Output max_left_semantic_context
86 definition.
87 * src/reader.h (max_left_semantic_context): New variable declaration.
88 * src/scan-gram.l (max_left_semantic_context): Define.
89 (handle_action_dollar): Update max_left_semantic_context.
90 * data/glr.c (YYMAXLEFT): New definition.
91 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
92 (yyresolveAction): Ditto.
93
94 Fixes to problems with location handling in GLR parsers reported by
95 Frank Heckenbach (2003/06/05).
96
97 * data/glr.c (YYLTYPE): Make trivial if locations not used.
98 (YYRHSLOC): Add parentheses, and define only if locations used.
99 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
100 locations not used.
101 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
102 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
103
104 * tests/cxx-type.at: Exercise location information; update tests
105 to differentiate output with and without locations.
106 Remove forward declarations of yylex and yyerror---caused errors
107 because default YYLTYPE not yet defined.
108 Change semantic actions to compute strings, rather than printing
109 them directly (to test proper passing of semantics values). Change
110 output to prefix notation and update test data and expected results.
111 (yylex): Track locations.
112 (stmtMerge): Return value rather than printing, and include arguments
113 in value.
114
1152003-06-03 Paul Eggert <eggert@twinsun.com>
116
117 Avoid warnings generated by GCC 2.95.4 when Bison is
118 configured with --enable-gcc-warnings.
119 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
120 yy::]b4_parser_class_name[::translate_,
121 yy::Stack::operator[] (unsigned),
122 yy::Stack::operator[] (unsigned) const,
123 yy::Slice::operator[] (unsigned),
124 yy::Slice::operator[] (unsigned) const):
125 Rename local vars to avoid warnings.
126 * tests/glr-regression.at (Improper handling of embedded actions
127 and $-N in GLR parsers): Remove unused local variable from yylex.
128 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
129 (void) as arg when not pure, since we now assume C89 when building
130 Bison. Pacify GCC by using parameter.
131
1322003-06-02 Paul Eggert <eggert@twinsun.com>
133
134 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
135 yy::Location::lines, yy::Location::columns): Rename arguments
136 to avoid shadowing; this removes a warning generated by GCC 3.3.
137
1382003-06-01 Paul Eggert <eggert@twinsun.com>
139
140 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
141 to g++, as GCC 3.3 complains if you do it.
142 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
143 everything that WARNING_CFLAGS has, except omit warnings
144 not suitable for C++.
145 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
146 * tests/atlocal.in (CXXFLAGS): New var.
147 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
148
149 Fix a GLR parser bug I reported in February; see
150 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
151 The problem was that GLR parsers did not conform to the C standard,
152 because actions like { $1 = $2 + $3; } expanded to expressions
153 that invoked YYFILL in separate subexpressions, and YYFILL assigned
154 to a local variable. The C standard says that expressions
155 like (var = f ()) + (var = f ()) have undefined behavior.
156 Another problem was that GCC sometimes issues warnings that
157 yyfill and its parameters are unused.
158
159 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
160 as possibly unused.
161 (yyfill): New function.
162 (YYFILL): Use it.
163 (yyuserAction): Change type of yynormal to bool, so that it matches
164 the new yyfill signature. Mark it as possibly unused.
165
166
167 Follow up on a bug I reported in February, where a Bison-generated
168 parser can loop. Provide a test case and a fix for yacc.c. I
169 don't have a fix for lalr1.cc or for glr.c, unfortunately.
170 The original bug report is in:
171 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
172
173 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
174 macro's size was becoming unwieldy.
175 (yyerrlab): Do not discard an empty lookahead symbol, as this
176 might destroy garbage.
177 (yyerrorlab): New label, with the old contents of YYERROR,
178 plus the following change: pop the stack of rhs corresponding
179 to the production that invoked YYERROR. That is how Yacc
180 behaves, and POSIX requires this behavior.
181 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
182 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
183 Define 'alarm' to do nothing if unistd.h is not available.
184 Add a new rule "exp: '-' error;" to test the above change to
185 data/yacc.c. Use 'alarm' to abort any test taking longer than
186 10 seconds, as it's probably looping.
187 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
188 Also, the new yacc.c generates two fewer diagnostics for an
189 existing test.
190
1912003-05-24 Paul Eggert <eggert@twinsun.com>
192
193 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
194 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
195 This fixes a problem reported by John Bowman when the Compaq/HP
196 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
197 -ansi -Wall -gall).
198 * data/yacc.c (union yyalloc): Likewise.
199 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
200
201 Switch from 'int' to 'bool' where that makes sense.
202
203 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
204 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
205 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
206 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
207 Return or accept bool, not int. All callers changed.
208 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
209 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
210 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
211 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
212 bitset_or_and_cmp_): Likewise.
213 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
214 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
215 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
216 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
217 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
218 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
219 bitset_stats_or_and_cmp): Likewise.
220 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
221 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
222 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
223 ebitset_xor_cmp): Likewise.
224 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
225 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
226 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
227 lbitset_xor_cmp): Likewise.
228 * lib/bbitset.h: Include <stdbool.h>.
229 (struct bitset_vtable): The following members now return bool, not
230 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
231 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
232 or_and_cmp).
233 * src/conflicts.c (count_rr_conflicts): Likewise.
234 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
235 All uses changed.
236 * lib/ebitset.c (ebitset_obstack_init): Likewise.
237 * lib/lbitset.c (lbitset_obstack_init): Likewise.
238 * src/getargs.c (debug_flag, defines_flag, locations_flag,
239 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
240 graph_flag): Likewise.
241 * src/getargs.h (debug_flag, defines_flag, locations_flag,
242 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
243 graph_flag): Likewise.
244 * src/output.c (error_verbose): Likewise.
245 * src/output.h (error_verbose): Likewise.
246 * src/reader.c (start_flag, typed): Likewise.
247 * src/reader.h (typed): Likewise.
248 * src/getargs.c (LOCATIONS_OPTION): New constant.
249 (long_options, getargs): Use it.
250 * src/lalr.c (build_relations): Use bool, not int.
251 * src/nullable.c (nullable_compute): Likewise.
252 * src/print.c (print_reductions): Likewise.
253 * src/tables.c (action_row, pack_vector): Likewise.
254 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
255 * src/output.c (prepare): Use it.
256 * src/output.c (token_definitions_output,
257 symbol_destructors_output, symbol_destructors_output): Use string,
258 not boolean integer, to keep track of whether to output separator.
259 * src/print_graph.c (print_core): Likewise.
260 * src/state.c (state_rule_lookaheads_print): Likewise.
261
262 * config/install-sh: Sync from automake 1.7.5.
263
2642003-05-14 Paul Eggert <eggert@twinsun.com>
265
266 * src/parse-gram.y (rules_or_grammar_declaration): Require a
267 semicolon after a grammar declaration, in the interest of possible
268 future changes to the Bison input language.
269 Do not allow a stray semicolon at the start of the grammar.
270 (rhses.1): Allow one or more semicolons after any rule, including
271 just before "|" as required by POSIX.
272 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
273 grammar.
274
2752003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
276
277 %parse-param support for lalr1.cc.
278
279 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
280 b4_cc_constructor_calls, b4_cc_constructor_call,
281 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
282 definitions.
283 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
284 parse-param arguments.
285 (yy::b4_parser_class_name): Declare instance variables to
286 hold parse-param arguments.
287 * tests/calc.at: s/value/semantic_value/ because value clashes
288 with a member of yy::b4_parser_class_name. Adjust C++ code
289 to handle %parse-param. Enable %parse-param test in C++.
290
2912003-05-12 Paul Eggert <eggert@twinsun.com>
292
293 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
294 English a bit. Fix fclose typo. Change "const char" to "char
295 const", and use ANSI C rather than K&R for "main". Suggest
296 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
297 and suggest yy_switch_to_buffer.
298
2992003-05-05 Paul Eggert <eggert@twinsun.com>
300
301 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
302 C89. This avoids a diagnostic on compilers that define __STDC__
303 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
304 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
305
3062003-05-03 Paul Eggert <eggert@twinsun.com>
307
308 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
309 Do not overrun array bounds.
310 This should fix a bug reported today by Olatunji Oluwabukunmi in
311 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
312
3132003-04-29 Akim Demaille <akim@epita.fr>
314
315 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
316 * src/getargs.c, src/getargs.h: here, as bool, not int.
317 (nondeterministic_parser): New.
318 * src/parse-gram.y, src/scan-gram.l: Support
319 %nondeterministic-parser.
320 * src/output.c (prepare): Use nondeterministic_parser instead
321 of glr_parser where appropriate.
322 * src/tables.c (conflict_row, action_row, save_row)
323 (token_actions, token_actions, pack_vector): Ditto.
324
3252003-04-29 Akim Demaille <akim@epita.fr>
326
327 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
328
3292003-04-29 Akim Demaille <akim@epita.fr>
330
331 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
332 with %pure-parser and %locations to exercise the patch from Yakov
333 Markovitch below.
334
3352003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
336
337 * data/yacc.c: (b4_lex_param): Corrected for the case where
338 %lex-param is provided and %pure-parser isn't.
339
3402003-04-27 Paul Eggert <eggert@twinsun.com>
341
342 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
343 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
344 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
345 if it is not defined.
346 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
347
3482003-04-26 Paul Eggert <eggert@twinsun.com>
349
350 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
351 Declare to be of type suitable for the ninf value itself, not of
352 type suitable for the corresponding table, since the latter might
353 be unsigned but the ninf value might be negative. This fixes a
354 bug reported by Alexandre Duret-Lutz in
355 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
356
357 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
358 invokes it. We shouldn't invoke it twice because it will attempt
359 to put error.o in the archive twice. This fixes a glitch reported
360 by Martin Mokrejs in
361 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
362
3632003-04-21 Paul Eggert <eggert@twinsun.com>
364
365 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
366 to gnulib.
367
3682003-04-21 Yakov Markovitch <Markovitch@iso.ru>
369
370 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
371 Fix obvious typo that results in uncompilable GLR parsers
372 when both %pure-parser and %locations are used. (trivial change)
373
3742003-04-17 Paul Eggert <eggert@twinsun.com>
375
376 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
377 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
378 Do not insert the expected token via unput, as this runs afoul
379 of a POSIX-compatibility bug in flex 2.5.31.
380 All uses changed to BEGIN the parent state,
381 since we no longer insert the expected token via unput.
382 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
383 that is no longer emitted after the above change.
384
385 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
386 the first one. This change is from Paul Hilfinger, and it fixes
387 regression reported by Werner Lemberg in
388 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
389
390 (resolve_sr_conflict): Don't invoke state_errs_set
391 unless one or more tokens have been explicitly made errors.
392 Otherwise, the above change causes Bison to abort.
393
394 * tests/existing.at (GNU pic Grammar): New test case, taken from
395 Lemberg's email.
396
3972003-03-31 Akim Demaille <akim@epita.fr>
398
399 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
400
4012003-03-31 Akim Demaille <akim@epita.fr>
402
403 * src/output.c (prepare_symbols): Avoid trailing spaces in the
404 output.
405
4062003-03-31 Akim Demaille <akim@epita.fr>
407
408 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
409 From Paul Hilfinger.
410
4112003-03-29 Akim Demaille <akim@epita.fr>
412
413 * m4/error.m4: Do not put under dynamic conditions some code which
414 expansion is under static control.
415
4162003-03-29 Akim Demaille <akim@epita.fr>
417
418 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
419
4202003-03-29 Akim Demaille <akim@epita.fr>
421
422 * doc/bison.texinfo (Strings are Destroyed): New.
423
4242003-03-13 Paul Eggert <eggert@twinsun.com>
425
426 * .cvsignore: Add configure.lineno.
427 * src/.cvsignore: Add yacc.
428 * tests/.cvsignore: Add testsuite.log.
429 * doc/fdl.texi: Sync with latest FSF version.
430
4312003-03-12 Paul Eggert <eggert@twinsun.com>
432
433 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
434 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
435 cursor, instead of leaving it undefined. This fixes a bug
436 reported by Tim Van Holder in
437 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
438 * tests/input.at (Torturing the Scanner): Test the scanner on
439 an empty input file, which was Tim Van Holder's test case.
440
441 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
442 <sys/resource.h> can be included, include sys/time.h and
443 sys/times.h first, if available. This works around the SunOS
444 4.1.4 porting bug reported by Bruce Becker in
445 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
446
447 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
448 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
449 AC_HEADER_SYS_WAIT.
450
451 Merge changes from gnulib. This was prompted because the CVS
452 snapshot didn't build on Solaris 7 due to strnlen problems.
453
454 These changes need to be merged back into gnulib:
455 * lib/hash.c: Include <stdbool.h> unconditionally.
456 * m4/onceonly.m4 (m4_quote): New macro.
457 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
458 Quote AC_FOREACH variable-expansions properly.
459 The 2003-01-03 obstack.h change also needs merging.
460 {end of changes requiring merging}
461
462 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
463 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
464 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
465 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
466 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
467 New files, imported from gnulib.
468 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
469 above.
470
471 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
472 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
473 gnulib sources.
474
475 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
476 Add.
477 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
478 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
479 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
480 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
481 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
482 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
483 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
484 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
485 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
486 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
487 (jm_PREREQ_ARGMATCH): Remove.
488 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
489 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
490
491 * src/system.h: Include <stdbool.h> unconditionally.
492
493 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
494 assuming at least C89 in the bitset code for some time now.
495
4962003-03-03 Akim Demaille <akim@epita.fr>
497
498 * ro.po: New.
499
5002003-03-02 Akim Demaille <akim@epita.fr>
501
502 * doc/bison.texinfo (Table of Symbols): Reactivate the
503 documentation for %lex-param, and %parse-param.
504
5052003-03-02 Akim Demaille <akim@epita.fr>
506
507 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
508 generate verbose error messages.
509 Use the number of tokens as an upper bound in yytname, as it
510 cannot be a non terminal.
511
5122003-03-02 Akim Demaille <akim@epita.fr>
513
514 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
515 message.
516
5172003-03-02 Akim Demaille <akim@epita.fr>
518
519 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
520 Use them to exercise yycheck overrun.
521 Based on Andrew Suffield's grammar.
522
5232003-03-02 Akim Demaille <akim@epita.fr>
524
525 Create tests/local.at for Bison generic testing macros.
526
527 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
528 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
529 This new file.
530 * tests/calc.at (AT_CHECK_CALC): Adjust.
531 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
532 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
533 * tests/local.at: here.
534 (AT_COMPILE_CXX): Tags the tests using it as c++.
535 Ignore the test if CXX is not functional.
536
5372003-03-01 Paul Eggert <eggert@twinsun.com>
538
539 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
540 not loc->end, since loc->end might contain garbage and this leads
541 to undefined behavior on some platforms.
542 (id_loc, token_start): Use (IF_LINTed) initial values that do not
543 depend on *loc, so that the reader doesn't give the the false
544 impression that *loc is initialized.
545 (<INITIAL>"%%"): Do not bother setting code_start, since its value
546 does not survive the return.
547
5482003-03-01 Akim Demaille <akim@epita.fr>
549
550 * src/scan-gram.l (code_start): Always initialize it when entering
551 into yylex, as SC_EPILOGUE is activated *before* the corresponding
552 yylex invocation. An alternative would be making it static, but
553 then it starts with the second %%'s beginning, instead of its end.
554
5552003-02-28 Paul Eggert <eggert@twinsun.com>
556
557 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
558 around a UnixWare 7.1.1 porting bug reported by John Hughes in
559 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
560
5612003-02-26 Paul Eggert <eggert@twinsun.com>
562
563 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
564 Remove Sequent/Pyramid discussion (nobody uses them any more).
565 Merge VMS and MS-DOS discussion; these ports may well be dead
566 but let's keep mentioning them for now. Put <> around email
567 addresses. Add copyright notice.
568
5692003-02-24 Paul Eggert <eggert@twinsun.com>
570
571 * data/glr.c (yy_reduce_print): yylineno -> yylno,
572 to avoid collision with flex use of yylineno.
573 Problem reported by Bruce Lilly in
574 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
575 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
576 * data/yacc.c (yy_reduce_print): Likewise.
577
578 * config/depcomp: Sync with Automake 1.7.3.
579
5802003-02-21 Akim Demaille <akim@epita.fr>
581
582 * data/lalr1.cc: Use temporary variables instead of casts to
583 change integer types.
584 Suggested by Paul Eggert.
585
5862003-02-21 Akim Demaille <akim@epita.fr>
587
588 * doc/bison.texinfo: Use "location" consistently to refer to @n,
589 to avoid confusions with lalr1.cc's notion of Position.
590 Suggested by Paul Eggert.
591
5922003-02-20 Akim Demaille <akim@epita.fr>
593
594 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
595 before initial_columns.
596 (location.hh): Use consistent variable names when defining the
597 operator<<.
598 Use "last" so that we subtract from Positions, not from unsigned.
599
6002003-02-20 Akim Demaille <akim@epita.fr>
601
602 * data/lalr1.cc (position.hh): New subfile, including the extended
603 and Doxygen'ed documentation of class Position.
604 (location.hh): Use it.
605 Document a` la Doxygen.
606 With the help of Benoit Perrot.
607
6082003-02-20 Akim Demaille <akim@epita.fr>
609
610 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
611 AT_YACC_IF.
612 Redefine AT_YYERROR_SEES_LOC_IF using it.
613 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
614 not defined.
615 Don't use the location in yy::Parser::error_ and
616 yy::Parser::print_ when not %locations.
617 Activate more lalr1.cc tests.
618
6192003-02-19 Akim Demaille <akim@epita.fr>
620
621 * data/lalr1.cc: When displaying a line number, be sure to make it
622 an int.
623
6242003-02-19 Akim Demaille <akim@epita.fr>
625
626 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
627 Remove, useless.
628 (YYABORT, YYACCEPT, YYERROR): New.
629 * tests/calc.at: Renable the lalr1.cc test.
630
6312003-02-19 Akim Demaille <akim@epita.fr>
632
633 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
634 error recovery, mixing with/without pops and discarding of the
635 lookahead.
636 Exercise YYERROR.
637 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
638
6392003-02-17 Paul Eggert <eggert@twinsun.com>
640
641 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
642 * tests/testsuite.at (AT_COMPILE): Use them.
643 This fixes the testsuite problem reported by Robert Lentz in
644 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
645
6462003-02-12 Paul Eggert <eggert@twinsun.com>
647
648 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
649 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
650 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
651 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
652 Check for malloc failure, for consistency with yacc.c.
653 (yytname_size): Remove, for consistency with yacc.c.
654
655 The bug still remains in data/lalr1.cc, as I didn't have time
656 to fix it there.
657
6582003-02-06 Akim Demaille <akim@epita.fr>
659
660 * configure.ac (GXX): Rename as...
661 (CXX): this, to keep the original Autoconf semantics.
662 Require 2.57.
663 * data/lalr1.cc: Fix b4_copyright invocations.
664 If YYDEBUG is not defined, don't depend upon name_ being defined.
665 (location.hh): Include string and iostream.
666 (Position::filename): New member.
667 (Position::Position ()): New.
668 (operator<< (Position)): New.
669 (operator- (Position, int)): New.
670 (Location::first, Location::last): Rename as...
671 (Location::begin, Location::end): these, to mock the conventional
672 iterator names.
673 (operator<< (Location)): New.
674 * tests/atlocal.in (CXX): New.
675 * tests/testsuite.at (AT_COMPILE_CXX): New.
676 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
677 locations in a more synthetic way.
678 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
679 lalr1.cc is used.
680 Adjust the C locations to match those from Emacs: first column is
681 column 0.
682 Change all the expected results.
683 Conform to the GCS: simplify the locations when applicable.
684 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
685 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
686 these CPP macros with the m4 macros new defined by...
687 (AT_CHECK_PUSHDEFS): this, i.e.:
688 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
689 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
690 New macros.
691 (AT_CHECK_POPDEFS): Undefine them.
692 (AT_CHECK_CALC_LALR1_CC): New.
693 Use it for the first lalr1.cc test.
694
6952003-02-04 Akim Demaille <akim@epita.fr>
696
697 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
698 Location as is defined.
699
7002003-02-04 Akim Demaille <akim@epita.fr>
701
702 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
703 name_ being defined.
704
7052003-02-03 Paul Eggert <eggert@twinsun.com>
706
707 * src/gram.h (start_symbol): Remove unused decl.
708
709 Use more-consistent naming conventions for local vars.
710
711 * src/derives.c (derives_compute): Change type of local var from
712 int to rule_number.
713 * src/gram.c (grammar_rules_partial_print): Likewise.
714 * src/print.c (print_core): Likewise.
715 * src/reduce.c (reduce_grammar_tables): Likewise.
716
717 * src/gram.c (grammar_dump): Change name of item_number *
718 local var from r to rp.
719 * src/nullable.c (nullable_compute): Likewise.
720
721 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
722
723 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
724 for symbol or symbol_number var.
725 * src/reader.c (grammar_start_symbol_set): Likewise.
726 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
727 Likewise.
728 * src/state.c (transitions_to): Likewise.
729 * src/state.h: Likewise.
730 * src/tables.c (symbol_number_to_vector_number): Likewise.
731
732 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
733 char * var.
734
735 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
736 var.
737
738 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
739 var.
740
741 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
742 Use str, not s, for char * var. Use ch, not c, for character var.
743 Use size for size var.
744
745 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
746 char * var.
747 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
748 uniqstr var.
749 * src/uniqstr.h: Likewise.
750
751 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
752 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
753 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
754 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
755 param to have same name as that of enum, so that we don't use
756 "s" to stand for a non-state.
757
7582003-02-02 Akim Demaille <akim@epita.fr>
759
760 * src/scan-skel.l: Scan more than one inert character per yylex
761 invocation.
762
7632003-02-01 Paul Eggert <eggert@twinsun.com>
764
765 Version 1.875a.
766
767 * po/LINGUAS: Add ms.
768
7692003-01-30 Akim Demaille <akim@epita.fr>
770
771 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
772
7732003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
774
775 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
776 of $1.
777
778 Changes in response to error report by S. Eken: GLR mode does not
779 handle negative $ indices or $ indices in embedded rules correctly.
780 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
781
782 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
783 (b4_rhs_location): Ditto.
784 (yyfill): New function to copy from stack tree into array
785 incrementally.
786 (yyuserAction): Modify to allow incremental move of semantic values
787 to rhs array when in GLR mode.
788 Define YYFILL to use in user-defined actions to fill semantic array
789 as needed.
790 Remove dummy use of yystack, as there is now a guaranteed use.
791 (yydoAction): Modify to allow incremental move of semantic values
792 to rhs array when in GLR mode.
793 (yyresolveAction): Ditto.
794 (yyglrShiftDefer): Update comment.
795 (yyresolveStates): Use X == NULL for pointers, not !X.
796 (yyglrReduce): Ditto.
797 (yydoAction): Ditto
798
799 * tests/glr-regr1.at: Rename to ...
800 * tests/glr-regression.at: Add new regression test for the problems
801 described above (adapted from S. Eken).
802 Update copyright notice.
803 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
804 * tests/Makefile.am: Ditto.
805
8062003-01-28 Paul Eggert <eggert@twinsun.com>
807
808 * data/lalr1.cc: Do not use @output_header_name@ unless
809 b4_defines_flag is set. This fixes two bugs reported by
810 Tim Van Holder in
811 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
812 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
813
8142003-01-21 Paul Eggert <eggert@twinsun.com>
815
816 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
817 we don't need to worry about yyerrlab1 being reported as an
818 "unused label" by non-GCC C compilers. The downside is that if
819 locations are used then a couple of statements are duplicated each
820 time YYERROR is invoked, but the upside is that the warnings
821 should vanish.
822 (yyerrlab1): Move code to YERROR.
823 (yyerrlab2): Remove. Change uses back to yyerrlab1.
824 This reverts some of the 2002-12-27 change.
825
8262003-01-17 Paul Eggert <eggert@twinsun.com>
827
828 * src/output.c (symbol_printers_output): Fix typo that led
829 to core dump. Problem reported by Antonio Rus in
830 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
831
8322003-01-13 Akim Demaille <akim@epita.fr>,
833 Quoc Peyrot <chojin@lrde.epita.fr>,
834 Robert Anisko <anisko_r@lrde.epita.fr>
835
836 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
837 when the stacks contain one element, as the loop would otherwise
838 free the last state, and then use the top state (the one we just
839 popped). This means that the initial elements will not be freed
840 explicitly, as is the case in yacc.c; it is not a problem, as
841 these elements have fake values.
842
8432003-01-11 Paul Eggert <eggert@twinsun.com>
844
845 * NEWS: %expect-violations are now just warnings, reverting
846 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
847 bootstrapping problem reported by Matthias Klose; see
848 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
849 * src/conflicts.c (conflicts_print): Likewise.
850 * tests/conflicts.at (%expect not enough, %expect too much,
851 %expect with reduce conflicts): Likewise.
852 * doc/bison.texinfo (Expect Decl): Document this. Also mention
853 that the warning is enabled if the number of conflicts changes
854 (not necessarily increases).
855
856 * src/getargs.c (version): Update copyright year.
857
8582003-01-09 Akim Demaille <akim@epita.fr>
859
860 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
861
8622003-01-08 Paul Eggert <eggert@twinsun.com>
863
864 * Makefile.maint (WGETFLAGS):
865 New macro, containing "-C off" to disable proxy caches.
866 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
867 (rel-check): Use $(WGET) instead of wget.
868
8692003-01-06 Paul Eggert <eggert@twinsun.com>
870
871 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
872 the GLR paper of Scott, Johnstone and Hussain.
873
8742003-01-04 Paul Eggert <eggert@twinsun.com>
875
876 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
877 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
878 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
879 (EXTRA_LIBRARIES): New var, for liby.a.
880 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
881 (EXTRA_SCRIPTS): New var, for yacc.
882
883 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
884 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
885 Problem reported by Nelson H. F. Beebe.
886
8872003-01-03 Paul Eggert <eggert@twinsun.com>
888
889 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
890 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
891 when compiling Bison 1.875's `bitset bset = obstack_alloc
892 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
893
894 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
895 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
896 grow to a huge size with typical invocation.
897
898 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
899 Use the pattern recommended by Autoconf 2.57, except also protect
900 against double-definition.
901 * src/system.h: Likewise.
902 Portability issues reported by Nelson H. F. Beebe.
903
904 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
905 All uses changed. Provide a definition in both C and C++.
906 (yytrue, yyfalse): Define even if defined (__cplusplus).
907
908 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
909 Reported by Nelson H. F. Beebe.
910
911 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
912
9132003-01-02 Paul Eggert <eggert@twinsun.com>
914
915 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
916 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
917 Bug reported by Nelson H. F. Beebe.
918
9192003-01-01 Paul Eggert <eggert@twinsun.com>
920
921 * Version 1.875.
922
9232002-12-30 Paul Eggert <eggert@twinsun.com>
924
925 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
926 Moved here from...
927 (<INITIAL>","): Here. This causes stray "," to be treated
928 more uniformly.
929
930 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
931 last brace in braced code when not in Yacc mode, for compatibility
932 with Bison 1.35. This resurrects the 2001-12-15 patch to
933 src/reader.c.
934
935 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
936 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
937
9382002-12-28 Paul Eggert <eggert@twinsun.com>
939
940 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
941 that of SYM's type. This fixes Debian bug 168069, reported by
942 Thomas Olsson.
943
9442002-12-28 Paul Eggert <eggert@twinsun.com>
945
946 Version 1.75f.
947
948 Switch back to the Yacc style of conflict reports, undoing some
949 of the 2002-07-30 change.
950 * doc/bison.texinfo (Understanding): Use Yacc style for
951 conflict reports. Also, use new way of locating rules.
952 * src/conflicts.c (conflict_report):
953 Renamed from conflict_report_yacc, removing the old
954 'conflict_report'. Translate the entire conflict report at once,
955 so that we don't assume that "," has the same interpretation in
956 all languages.
957 (conflicts_output): Use Yacc-style conflict report for each state,
958 instead of our more-complicated style.
959 (conflicts_print): Use Yacc-style conflict report, except print
960 the input file name when not emulating Yacc.
961 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
962 Conflicted Reduction, %expect not enough, %expect too much,
963 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
964 * tests/existing.at (GNU Cim Grammar): Likewise.
965 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
966
967 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
968 fatal): Don't invoke fflush; it's not needed and it might even be
969 harmful for stdout, as stdout might not be open.
970 * src/reduce.c (reduce_print): Likewise.
971
9722002-12-27 Paul Eggert <eggert@twinsun.com>
973
974 Fix a bug where error locations were not being recorded correctly.
975 This problem was originally reported by Paul Hilfinger in
976 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
977
978 * data/yacc.c (yyparse): New local var yylerrsp, to record the
979 top of the location stack's error locations.
980 (yyerrlab): Set it. When discarding a token, push its location
981 onto yylerrsp so that we don't lose track of the error's end.
982 (yyerrlab1): Now is only the target of YYERROR, so that we can
983 properly record the location of the action that failed. For GCC
984 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
985 GCC warning about yyerrlab1 being unused if YYERROR is unused.
986 (yyerrlab2): New label, which yyerrlab now falls through to.
987 Compute the error's location by applying YYLLOC_DEFAULT to
988 the locations of all the symbols that went into the error.
989 * doc/bison.texinfo (Location Default Action): Mention that
990 YYLLOC_DEFAULT is also invoked for syntax errors.
991 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
992 Error locations include the locations of all the tokens that were
993 discarded, not just the last token.
994
9952002-12-26 Paul Eggert <eggert@twinsun.com>
996
997 * src/files.c: Include quote.h.
998 (compute_output_file_names): Warn if we detect conflicting
999 outputs to the same file. This should catch the misunderstanding
1000 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1001
1002 * src/conflicts.c (conflicts_print): If the user specifies
1003 "%expect N", report an error if there are any reduce/reduce
1004 conflicts. This is what the manual says should happen.
1005 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1006 * tests/conflicts.at (%expect with reduce conflicts): New test.
1007
1008 Don't use m4_include on relative file names, as it doesn't work as
1009 desired if there happens to be a file with that name under ".".
1010
1011 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1012 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1013 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1014 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
1015 * src/output.c (output_skeleton): Use full path names when
1016 specifying a file to include; don't rely on include path, as
1017 it's unreliable when the working file contains a file with
1018 that name.
1019
10202002-12-25 Paul Eggert <eggert@twinsun.com>
1021
1022 Remove obsolete references to bison.simple and bison.hairy.
1023 Problem mentioned by Aubin Mahe in
1024 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
1025 * data/glr.c: Comment fix.
1026 * doc/bison.1: Remove references. Also, mention "yacc".
1027
1028 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
1029 with -g option.
1030
1031 * src/parse-gram.y (declaration): Use enum "report_states" rather
1032 than its numeric value 1.
1033
1034 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
1035 opening a new one. This fixes Debian bug 165349, reported by
1036 Bruce Stephens.
1037
10382002-12-24 Paul Eggert <eggert@twinsun.com>
1039
1040 Version 1.75e.
1041
1042 * Makefile.maint (cvs-update): Don't assume that the shell
1043 supports $(...), as Solaris sh doesn't.
1044
1045 * src/parse-gram.y (lloc_default): Remove test for empty
1046 nonterminals at the end, since it didn't change the result.
1047
10482002-12-24 Paul Eggert <eggert@twinsun.com>
1049
1050 If the user does not define YYSTYPE as a macro, Bison now declares it
1051 using typedef instead of defining it as a macro. POSIX requires this.
1052 For consistency, YYLTYPE is also declared instead of defined.
1053
1054 %union directives can now have a tag before the `{', e.g., the
1055 directive `%union foo {...}' now generates the C code
1056 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
1057 The default union tag is `YYSTYPE', for compatibility with Solaris 9
1058 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
1059 instead of `yyltype'.
1060
1061 `yystype' and `yyltype' are now obsolescent macros instead of being
1062 typedefs or tags; they are no longer documented and will be
1063 withdrawn in a future release.
1064
1065 * data/glr.c (b4_location_type): Remove.
1066 (YYSTYPE): Renamed from yystype.
1067 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
1068 (struct YYLTYPE): Renamed from struct yyltype.
1069 (YYLTYPE): Renamed from yyltype.
1070 (yyltype, yystype): New (and obsolescent) macros,
1071 for backward compatibility.
1072 * data/yacc.c: Likewise.
1073
1074 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
1075 does not specify a union tag. This is for compatibility with
1076 Solaris 9 yacc.
1077
1078 * src/parse-gram.y (add_param): 2nd arg is now char * not char
1079 const *, since it is now modified by stripping surrounding { }.
1080 (current_braced_code): Remove.
1081 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
1082 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
1083 trailing " {...}". Now of type <chars>.
1084 (grammar_declaration): Adjust to bundled tokens.
1085 (code_content): Remove; stripping is now done by add_param.
1086 (print_token_value): Print contents of bundled tokens.
1087 (token_name): New function.
1088
1089 * src/reader.h (braced_code, current_braced_code): Remove.
1090 (token_name): New decl.
1091
1092 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
1093 token_type, not braced_code code_kind. All uses changed.
1094 (SC_PRE_CODE): New state, for scanning after a keyword that
1095 has (or usually has) an immediately-following braced code.
1096 (token_type): New local var, to keep track of which token type
1097 to return when scanning braced code.
1098 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
1099 <INITIAL>"%parse-param", <INITIAL>"%printer",
1100 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
1101 instead of returning a token type immediately.
1102 (<INITIAL>"{"): Set token type.
1103 (<SC_BRACED_CODE>"}"): Use it.
1104 (handle_action_dollar, handle_action_at): Now returns bool
1105 indicating success. Fail if ! current_rule; this prevents a core dump.
1106 (handle_symbol_code_dollar, handle_symbol_code_at):
1107 Remove; merge body into caller.
1108 (handle_dollar, handle_at): Complain in invalid contexts.
1109
1110 * NEWS, doc/bison.texinfo: Document the above.
1111 * NEWS: Fix years and program names in copyright notice.
1112
11132002-12-17 Paul Eggert <eggert@twinsun.com>
1114
1115 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
1116 Reporting, Table of Symbols): Omit mentions of %lex-param and
1117 %parse-param from the documentation for now.
1118
11192002-12-15 Paul Eggert <eggert@twinsun.com>
1120
1121 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
1122 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
1123 lookahead symbol, and which sets yychar in parser actions) and it
1124 disagreed with the Bison documentation. Bug
1125 reported by Andrew Walrond.
1126
1127 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
1128 as the caller now does that.
1129 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
1130 (YYEMPTY): Parenthesize right hand side, since others use it.
1131 (yyparse): Don't assume that our generated code is the only code
1132 that sets yychar.
1133
11342002-12-13 Paul Eggert <eggert@twinsun.com>
1135
1136 Version 1.75d.
1137
1138 POSIX requires a "yacc" command.
1139 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
1140 (MOSTLYCLEANFILES): Add yacc.
1141 (yacc): New rule.
1142 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
1143 as an alias for bison y.
1144
1145 * po/LINGUAS: Add da.
1146
1147 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
1148 problem with latest <getopt.h>.
1149 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
1150
1151 * doc/fdl.texi: Upgrade to 1.2.
1152 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
1153 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
1154 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
1155 gnulib.
1156 * config/install-sh: Sync with autotools.
1157
1158 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
1159 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1160 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
1161 locations are requested.
1162 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
1163 locations are requested.
1164
11652002-12-12 Paul Eggert <eggert@twinsun.com>
1166
1167 Remove unportable casts and storage allocation tricks.
1168 While we're at it, remove almost all casts, since they
1169 usually aren't needed and are a sign of trouble.
1170
1171 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
1172
1173 * src/derives.c (derives_compute): Do not subtract NTOKENS from
1174 the pointer DSET returned by malloc; this isn't portable.
1175 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
1176 Similarly for DERIVES.
1177 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
1178 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
1179 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
1180
1181 * src/derives.c (derives_compute): Do not bother invoking
1182 int_of_rule_number, since rule numbers are integers.
1183
1184 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
1185 rather than XMALLOC (char, N).
1186
1187 * src/files.c (filename_split): Rewrite to avoid cast.
1188
1189 * src/gram.h (symbol_number_as_item_number,
1190 item_number_as_symbol_number, rule_number_as_item_number,
1191 item_number_as_rule_number):
1192 Now inline functions rather than macros, to avoid casts.
1193 * src/state.h (state_number_as_int): Likewise.
1194 * src/tables.c (state_number_to_vector_number,
1195 symbol_number_to_vector_number): Likewise.
1196
1197 * src/gram.h (int_of_rule_number): Remove; no longer used.
1198
1199 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
1200 since the resulting storage is always stored into.
1201
1202 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
1203 where it's needed.
1204
1205 * src/muscle_tab.c (muscle_m4_output):
1206 Now inline. Return bool, not int.
1207 * src/state.c (state_compare): Likewise.
1208 * src/symtab.c (symbol_check_defined,
1209 symbol_check_alias_consistency, symbol_pack, symbol_translation,
1210 hash_compare_symbol, hash_symbol):
1211 Likewise.
1212 * src/uniqstr.c (uniqstr_print): Likewise.
1213 * src/muscle_tab.c (muscle_m4_output_processor):
1214 New function, to avoid casts.
1215 * src/state.c (state_comparator, stage_hasher): Likewise.
1216 * src/symtab.c (symbol_check_defined_processor,
1217 symbol_check_alias_consistency_processor, symbol_pack_processor,
1218 symbol_translation_processor, hash_symbol_comparator,
1219 hash_symbol_hasher): Likewise.
1220 * src/uniqstr.c (uniqstr_print_processor): Likewise.
1221 * src/muscle_tab.c (muscles_m4_output):
1222 Use new functions instead of casting old functions unportably.
1223 * src/state.c (state_hash_new): Likewise.
1224 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
1225 symbols_token_translations_init):
1226 Likewise.
1227 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
1228
1229 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
1230 var instead of casting to long, to avoid casts.
1231 (prepare_states): Use MALLOC rather than alloca, so that we don't
1232 have to worry about alloca.
1233 * src/state.c (state_hash_lookup): Likewise.
1234
1235 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
1236 local var instead of casting to unsigned char, to avoid casts.
1237
1238 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
1239 STATE_ALLOC): Remove.
1240 (transitions_new, errs_new, reductions_new, state_new): Use malloc
1241 rather than calloc, and use offsetof to avoid allocating slightly
1242 too much storage.
1243 (state_new): Initialize all members.
1244
1245 * src/state.c (state_hash): Use unsigned accumulator, not signed.
1246
1247 * src/symtab.c (symbol_free): Remove; unused.
1248 (symbol_get): Remove cast in lhs of assignment.
1249 (symbols_do): Now static. Accept generic arguments, not
1250 hashing-related ones.
1251
1252 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
1253 (symbol_processor): Remove.
1254 (symbols_do): Remove decl; now static.
1255
1256 * src/system.h (alloca): Remove; decl no longer needed.
1257 (<stddef.h>): Include, for offsetof.
1258 (<inttypes.>, <stdint.h>): Include if available.
1259 (uintptr_t): New type, if system lacks it.
1260 (CALLOC, MALLOC, REALLOC): New macros.
1261 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
1262 new macros.
1263
1264 * src/tables.c (table_size): Now int, to pacify GCC.
1265 (table_grow, table_ninf_remap): Use signed table size.
1266 (save_row): Don't bother initializing locals when not needed.
1267 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
1268 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
1269
1270 * src/vcg.h: Correct misspellings.
1271
1272 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
1273
1274
1275 * src/getargs.c (getargs): Don't assume EOF == -1.
1276
12772002-12-09 Paul Eggert <eggert@twinsun.com>
1278
1279 Change identifier spellings to avoid collisions with names
1280 that are reserved by POSIX.
1281
1282 Don't use names ending in _t, since POSIX reserves them.
1283 For consistency, remove _e and _s endings -- they're weren't
1284 needed to remove ambiguity. All uses changed.
1285 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
1286 turn was just renamed from struniq_t.
1287 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
1288 which in turn was just renamed from struniq_processor_t.
1289 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
1290 in turn was renamed from hash_compare_struniq_t.
1291 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
1292 (state_list): Renamed from state_list_t.
1293 * src/assoc.h (assoc): Renamed from assoc_t.
1294 * src/conflicts.c (enum conflict_resolution): Renamed from
1295 enum conflict_resolution_e.
1296 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
1297 (rule_list): Renamed from rule_list_t.
1298 * src/getargs.h (enum trace): Renamed from enum trace_e.
1299 (enum report): Renamed from enum report_e.
1300 * src/gram.h (item_number): Renamed from item_number_t.
1301 (rule_number): Renamed from rule_number_t.
1302 (struct rule_s): Remove the "rule_s" part; not used.
1303 (rule): Renamed from rule_t.
1304 (rule_filter): Renamed from rule_filter_t.
1305 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
1306 (goto_list): Renamed from goto_list_t.
1307 * src/lalr.h (goto_number): Renamed from goto_number_t.
1308 * src/location.h (location): Renamed from location_t.
1309 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
1310 and moved here from:
1311 * src/muscle_tab.h (muscle_entry_t): here.
1312 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
1313 (rule_list): Renamed from rule_list_t.
1314 * src/print_graph.c (static_graph): Renamed from graph.
1315 * src/reader.h (braced_code): Renamed from braced_code_t.
1316 Remove brace_code_e tag.
1317 * src/relation.h (relation_node): Renamed from relation_node_t.
1318 (relation_nodes): Renamed from relation_nodes_t.
1319 (relation): Renamed from relation_t.
1320 * src/state.h (state_number): Renamed from state_number_t.
1321 (struct state): Renamed from struct state_s.
1322 (state): Renamed from state_t.
1323 (transitions): Renamed from transitions_t. Unused (and
1324 misspelled) transtion_s tag removed.
1325 (errs): Renamed from errs_t. Unused errs_s tag removed.
1326 (reductions): Renamed from reductions_t. Unused tag
1327 reductions_s removed.
1328 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
1329 (struct symbol_list): Renamed from struct symbol_list_s.
1330 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
1331 (struct symbol): Renamed from struct symbol_s.
1332 (symbol): Renamed from symbol_t.
1333 * src/tables.c (vector_number): Renamed from vector_number_t.
1334 (action_number): Renamed from action_t.
1335 * src/tables.h (base_number): Renamed from base_t.
1336 * src/vcg.h (enum color): Renamed from enum color_e.
1337 (enum textmode): Renamed from enum textmode_e.
1338 (enum shape): Renamed from enum shape_e.
1339 (struct colorentry): Renamed from struct colorentry_s.
1340 (struct classname): Renamed from struct classname_s.
1341 (struct infoname): Renamed from struct infoname_s.
1342 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
1343 (enum decision): Renamed from enum decision_e.
1344 (enum orientation): Renamed from enum orientation_e.
1345 (enum alignment): Renamed from enum alignment_e.
1346 (enum arrow_mode): Renamed from enum arrow_mode_e.
1347 (enum crossing_type): Renamed from enum crossing_type_e.
1348 (enum view): Renamed from enum view_e.
1349 (struct node): Renamed from struct node_s.
1350 (node): Renamed from node_t.
1351 (enum linestyle): Renamed from enum linestyle_e.
1352 (enum arrowstyle): Renamed from enum arrowstyle_e.
1353 (struct edge): Renamed from struct edge.
1354 (edge): Renamed from edge_t.
1355 (struct graph): Renamed from struct graph_s.
1356 (graph): Renamed from graph_t.
1357 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
1358 Rename value_t -> value.
1359 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
1360 value_t_as_yystype -> value_as_yystype.
1361
1362 Don't include <errno.h> in the mainstream code, since it
1363 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
1364 * lib/get-errno.c, lib/get-errno.h: New files.
1365 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
1366 get-errno.c.
1367 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
1368 * src/output.c (output_skeleton): Likewise.
1369 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
1370 instead of errno.
1371 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
1372 Likewise.
1373 (handle_action_dollar, handle_action_at): Likewise.
1374 * src/system.h: Do not include <errno.h>.
1375 (TAB_EXT): Renamed from EXT_TAB.
1376 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
1377
1378 Avoid str[a-z]*, since <string.h> reserves that name space.
1379 Change all instances of "struniq" in names to "uniqstr", and
1380 likewise for "STRUNIQ" and "UNIQSTR".
1381 * src/uniqstr.c: Renamed from src/struniq.c.
1382 * src/uniqstr.h: Renamed from src/struniq.h.
1383 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
1384 * src/files.c (strsuffix): Remove; unused.
1385 (concat2): Renamed from stringappend. Now static.
1386 * src/files.h (strsuffix, stringappend): Remove; unused.
1387 * src/parse-gram.y (<chars>): Renamed from <string>.
1388 (<uniqstr>): Renamed from <struniq>.
1389 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
1390 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
1391 (struct graph_s.expand): Renamed from struct graph_s.stretch.
1392 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
1393 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
1394 (N_EXPAND): Renamed from N_STRETCH.
1395
1396 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
1397 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
1398 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
1399 Remove; unused.
1400 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
1401 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
1402 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
1403 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
1404 (BASE_MAXIMUM): Renamed from BASE_MAX.
1405 (BASE_MINIMUM): Renamed from BASE_MIN.
1406 (ACTION_MAX): Remove; unused.
1407 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
1408 Unnecessary casts removed from above defines.
1409
1410
1411 Fix misspelling in names.
1412 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
1413 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
1414 G_NODE_ALIGNEMENT.
1415
1416
1417 * lib/timevar.c (timevar_report): Renamed from time_report,
1418 for consistency with other names.
1419 * lib/timevar.h (timevar_report): New decl.
1420 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
1421
1422
1423 Sort include-file uses.
1424
1425 Reorder all include files under src to be in the order "system.h".
1426 then the ../lib include files in angle brackets (alphabetized),
1427 then the . include files in double-quotes (alphabetized). Fix
1428 dependency breakages encountered in this process, as follows:
1429 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
1430 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
1431 * src/state.h: Include "symtab.h".
1432
14332002-12-08 Paul Eggert <eggert@twinsun.com>
1434
1435 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
1436 since this causes problems when __file__ contains character
1437 sequences like "@" that are treated specially by src/scan-skel.l.
1438 Instead, just use the file's basename. This fixes the bug
1439 reported by Martin Mokrejs in
1440 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
1441
14422002-12-06 Paul Eggert <eggert@twinsun.com>
1443
1444 Add support for rules that do not have trailing semicolons, as
1445 POSIX requires. Improve the quality of locations in Bison
1446 diagnostics.
1447
1448 * src/location.c: Include <quotearg.h>.
1449 (empty_location): Now const.
1450 (location_print): New function. Follow the recommendation of the
1451 GNU Coding Standards for locations that span file boundaries.
1452 * src/location.h: Do not include <quotearg.h>; no longer needed.
1453 (boundary): New type.
1454 (location_t): Use it. This allows locations to span file boundaries.
1455 All member uses changed: file -> start.file or end.file (as needed),
1456 first_line -> start.line, first_column -> start.column,
1457 last_line -> end.line, last_column -> end.column.
1458 (equal_boundaries): New function.
1459 (LOCATION_RESET, LOCATION_STEP): Remove.
1460 (LOCATION_PRINT): Remove. All callers changed to use location_print.
1461 (empty_location): Now const.
1462 (location_print): New decl.
1463 * src/parse-gram.y (lloc_default): New function, which handles
1464 empty locations more accurately.
1465 (YYLLOC_DEFAULT): Use it.
1466 (%token COLON): Remove.
1467 (%token ID_COLON): New token.
1468 (rules): Use it.
1469 (declarations, rules): Remove trailing semicolon.
1470 (declaration, rules_or_grammar_declaration):
1471 Allow empty (";") declaration.
1472 (symbol_def): Remove empty actions; no longer needed.
1473 (rules_or_grammar_declaration): Remove trailing semicolon.
1474 (semi_colon.opt): Remove.
1475 * src/reader.h: Include location.h.
1476 (scanner_cursor): New decl.
1477 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
1478 rolling our own.
1479 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
1480 of *loc.
1481 (STEP): Remove. No longer needed, now that adjust_location does
1482 the work. All uses removed.
1483 (scanner_cursor): New var.
1484 (adjust_location): Renamed from extend_location. It now sets
1485 *loc and adjusts the scanner cursor. All uses changed.
1486 Don't bother testing for CR.
1487 (handle_syncline): Remove location arg; now updates scanner cursor.
1488 All callers changed.
1489 (unexpected_end_of_file): Now accepts start boundary of token or
1490 comment, not location. All callers changed. Update scanner cursor,
1491 not the location.
1492 (SC_AFTER_IDENTIFIER): New state.
1493 (context_state): Renamed from c_context. All uses changed.
1494 (id_loc, code_start, token_start): New local vars.
1495 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
1496 processing of Yacc white space and equivalents here.
1497 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
1498 instead of returning ID immediately, since we need to search for
1499 a subsequent colon.
1500 (<INITIAL>"'", "\""): Save token_start.
1501 (<INITIAL>"%{", "{", "%%"): Save code_start.
1502 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
1503 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
1504 BEGIN context_state at end, not INITIAL.
1505 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
1506 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
1507 Return correct token start.
1508 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
1509 the start of a character, string or multiline comment is found.
1510 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
1511 Reduction): Adjust reported locations to match the more-precise
1512 results now expected.
1513 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
1514 * tests/reduce.at (Useless Rules, Reduced Automaton,
1515 Underivable Rules): Likewise.
1516 * tests/regression.at (Invalid inputs): No longer `expecting ";"
1517 or "|"' now that so many other tokens are allowed by the new grammar.
1518
1519 * src/complain.h (current_file): Remove duplicate decl;
1520 current_file is now owned by files.h.
1521 * src/complain.c, src/scan-gram.l: Include files.h.
1522
15232002-12-06 Paul Eggert <eggert@twinsun.com>
1524
1525 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
1526 promotes to int; it might be unsigned int.
1527 * data/yacc.c (yy_reduce_print): Likewise.
1528
1529 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
1530 be #defined in the prologue, not in the Bison declarations.
1531 This fixes Debian Bug 102878, reported by Shaul Karl.
1532
15332002-12-02 Paul Eggert <eggert@twinsun.com>
1534
1535 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
1536 * lib/strtoul.c: New file, from gnulib.
1537 This fixes a porting bug reported by Peter Klein in
1538 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
1539
15402002-11-30 Paul Eggert <eggert@twinsun.com>
1541
1542 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
1543 and put only a forward declaration in the prologue. This is for
1544 consistency with the other scanner helper functions.
1545
1546 Type clashes now generate warnings, not errors, since it
1547 appears that POSIX may allow some grammars with type clashes.
1548 * src/reader.c (grammar_current_rule_check): Warn about
1549 type clashes instead of complaining.
1550 * tests/input.at (Type Clashes): Expect warnings, not complaints.
1551
1552 Add Yacc library, since POSIX requires it.
1553 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
1554 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
1555 * lib/main.c, lib/yyerror.c: New files.
1556
1557 gram_error can be static; it need not be extern.
1558 * src/reader.h (gram_error): Remove decl.
1559 * src/parse-gram.y (gram_error): Now static. Add static decl.
1560 (print_token_value): Omit parameter names from forward decl,
1561 for consistency.
1562
15632002-11-29 Paul Eggert <eggert@twinsun.com>
1564
1565 * doc/bison.texinfo: Emphasize that yylex and yyerror must
1566 be declared before being used. E.g., one should typically
1567 declare them in the prologue. Use GNU coding style in examples.
1568 Put "const" consistently after the type it modifies. Mention
1569 that C99 supports "inline". Mention that yyerror traditionally
1570 returns "int".
1571
1572 %parse-param and %lex-param now take just one argument, the
1573 declaration; the argument name is deduced from the declaration.
1574
1575 * doc/bison.texinfo (Parser Function, Pure Calling, Error
1576 Reporting, Table of Symbols): Document this.
1577 * src/parse-gram.y (add_param): New function.
1578 (COMMA): Remove.
1579 (declaration): Implement new rule for %parse-param and %lex-param.
1580 * src/scan-gram.l: "," now elicits a warning, rather than being
1581 a token; this is more compatible with byacc.
1582 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1583
15842002-11-27 Paul Eggert <eggert@twinsun.com>
1585
1586 Rename identifiers to avoid real and potential collisions.
1587
1588 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1589 to avoid collision with lex macro described by Bruce Lilly in
1590 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1591 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1592 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1593 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1594 All uses changed.
1595 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1596 The name "yycontrol" violates the name space rules, and this stuff
1597 wasn't being used anyway.
1598 (input): Remove action; this stuff wasn't being used.
1599 (gram_error): Rename local variable yylloc -> loc.
1600 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1601 (YY_DECL): Don't use "yy" at start of local variables.
1602 All uses changed, e.g., yylloc -> loc.
1603 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1604 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1605 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1606 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1607
1608 * src/parse-gram.y (gram_error): loc is now const *.
1609 * src/reader.h (gram_error): Likewise.
1610
16112002-11-24 Paul Eggert <eggert@twinsun.com>
1612
1613 Version 1.75c.
1614
1615 * tests/actions.at (Actions after errors): Use an output format
1616 more similar to that of the Printers and Destructors test.
1617 Test the position of the ';' token too.
1618 (Printers and Destructors): Likewise.
1619 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1620 unnecessarily alarming people when the test fails.
1621
1622 * data/yacc.c (yyerrlab1): Move this label down, so that the
1623 parser does not discard the lookahead token if the user code
1624 invokes YYERROR. This change is required for POSIX conformance.
1625
1626 * lib/error.c: Sync with gnulib.
1627
16282002-11-22 Paul Eggert <eggert@twinsun.com>
1629
1630 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1631 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1632 * lib/xmalloc.c: Likewise.
1633
16342002-11-20 Paul Eggert <eggert@twinsun.com>
1635
1636 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1637
16382002-11-20 Paul Eggert <eggert@twinsun.com>
1639
1640 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1641 should use `if (! x) abort ();' rather than `assert (x);', and
1642 anyway it's one less thing to worry about configuring.
1643
1644 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1645 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1646 and replace all instances of assert with abort.
1647 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1648 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1649
1650 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1651 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1652 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1653 hash_find_entry, hash_rehash, hash_insert): Likewise.
1654 * src/conflicts.c (resolve_sr_conflict): Likewise.
1655 * src/lalr.c (set_goto_map, map_goto): Likewise.
1656 * src/nullable.c (nullable_compute): Likewise.
1657 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1658 * src/reader.c (packgram, reader): Likewise.
1659 * src/state.c (state_new, state_free, state_transitions_set,
1660 state_reduction_find): Likewise.
1661 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1662 symbol_pack): Likewise.
1663 * src/tables.c (conflict_row, pack_vector): Likewise.
1664 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1665 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1666 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1667 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1668
1669 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1670 (ARGMATCH_CONSTRAINT): New macro.
1671 (ARGMATCH_ASSERT): Use it.
1672
1673 * src/system.h (verify): New macro.
1674 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1675 rather than assert.
1676 * src/tables.c (tables_generate): Likewise.
1677
1678 * src/struniq.c (struniq_assert): Now returns void, and aborts
1679 if the assertion is false.
1680 (struniq_assert_p): Remove.
1681 * src/struniq.h: Likewise.
1682
16832002-11-18 Paul Eggert <eggert@twinsun.com>
1684
1685 * data/glr.c (yygetLRActions): Replace `yyindex' with
1686 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1687 This fixes the regression with Sun ONE Studio 7 cc that I reported in
1688 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
1689
16902002-11-18 Akim Demaille <akim@epita.fr>
1691
1692 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1693 space.
1694 From Tim Van Holder.
1695
16962002-11-17 Paul Eggert <eggert@twinsun.com>
1697
1698 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1699 to "SyntaxError" for consistency with my 2002-11-15 change.
1700
1701 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1702 not define to {}, since this breaks the common use of `YYDPRINTF
1703 ((...));' if a single statement is desired (e.g. before `else').
1704 Work around GCC warnings by surrounding corresponding calls with
1705 {} if needed.
1706 (yyhasResolvedValue): Remove unused function.
1707 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1708 loop body.
1709 (yyreportSyntaxError): Renamed from yyreportParseError.
1710 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1711 All uses changed.
1712 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1713 extern when possible. Remove unused initializations.
1714
17152002-11-16 Akim Demaille <akim@epita.fr>
1716
1717 Augment the similarity between GLR and LALR traces.
1718
1719 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1720 (YY_REDUCE_PRINT): New.
1721 (yyparse): Use them.
1722 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1723 YYDPRINT here.
1724 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1725 state reached after the reduction/recovery, since...
1726 (yyparse, yyprocessOneStack): Report the state we are entering in.
1727
17282002-11-16 Akim Demaille <akim@epita.fr>
1729
1730 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1731 Add support for --trace=skeleton.
1732 * src/scan-skel.l: %option debug.
1733 Scan strings of non-@ or \n instead of character by character.
1734 (scan_skel): Handle trace_skeleton.
1735 (QPUTS): New.
1736 (@output_parser_name@, @output_header_name@): ``Restore'' their
1737 support (used to be M4 macros).
1738 * data/yacc.c: Quote larger chunks, a la glr.c.
1739 * data/lalr1.cc: Likewise.
1740 The header guards are no longer available, so use some other
1741 string than `YYLSP_NEEDED'.
1742
17432002-11-16 Akim Demaille <akim@epita.fr>
1744
1745 Make the ``Printers and Destructors'' test more verbose, taking
1746 `yacc.c''s behavior as (possibly wrong) reference.
1747
1748 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1749 instead of fprint on stdout.
1750 Set and report the last_line of the symbols.
1751 Consistently display values and locations.
1752
17532002-11-16 Paul Eggert <eggert@twinsun.com>
1754
1755 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1756
17572002-11-15 Paul Eggert <eggert@twinsun.com>
1758
1759 * tests/actions.at (Actions after errors): New test case.
1760
1761 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1762 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1763 tests/action.at, tests/calc.at, tests/conflicts.at,
1764 tests/cxx-type.at, tests/regression.at:
1765 "parse error" -> "syntax error" for POSIX compatibility.
1766 "parsing stack overflow..." -> "parser stack overflow" so
1767 that code matches Bison documentation.
1768
17692002-11-15 Akim Demaille <akim@epita.fr>
1770
1771 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1772 take two BRACED_CODE, not two string_content.
1773 Free the scanner's obstack when we are done.
1774 (code_content): New.
1775 * tests/calc.at: Adjust.
1776 * doc/bison.texinfo: Adjust.
1777 Also, make sure to include the `,' for these declarations.
1778
17792002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1780
1781 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1782 definition; avoids potential autoreconf problems.
1783
17842002-11-15 Akim Demaille <akim@epita.fr>
1785
1786 Always check the value returned by yyparse.
1787
1788 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1789 returned by yyparse.
1790 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1791 Adjust calls.
1792 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1793 returned by yyparse.
1794
17952002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1796
1797 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1798 on input.at test.
1799
18002002-11-14 Paul Eggert <eggert@twinsun.com>
1801
1802 * src/output.c (output_skeleton): Call xfopen instead of
1803 duplicating xfopen's body.
1804
1805 Fix bugs reported by Nelson H. F. Beebe in
1806 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1807
1808 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1809 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1810 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1811 file twice in the grammar, as an extra check.
1812
1813 * tests/input.at (Torturing the Scanner): Surround the
1814 backslash-newline tests with "#if 0", to make it less likely that
1815 we'll run into compiler bugs. Bring back solitary \ inside
1816 comment, but add a closing comment to work around HP C bug. Don't
1817 test backslash-newline in C character constant.
1818
18192002-11-14 Akim Demaille <akim@epita.fr>
1820
1821 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1822 status of the compiler.
1823 Calling `exit 1' is no longer needed.
1824 Reported by Nelson H. F. Beebe.
1825
18262002-11-14 Akim Demaille <akim@epita.fr>
1827
1828 * tests/atlocal.in (CPPFLAGS): We have config.h.
1829 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1830 New.
1831 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1832 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1833 * tests/regression.at, tests/torture.at: Use them for all the
1834 grammars that are to be compiled.
1835 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1836 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1837 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1838
18392002-11-14 Akim Demaille <akim@epita.fr>
1840
1841 * doc/bison.texinfo: Various formatting changes (alignments in
1842 samples, additional @group/@end group, GCS in samples.
1843 Use @deffn instead of simple @table to define the directives,
1844 macros, variables etc.
1845
18462002-11-13 Paul Eggert <eggert@twinsun.com>
1847
1848 Fix some bugs reported by Albert Chin-A-Young in
1849 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1850
1851 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1852 -o c"; the HP C compiler chatters during compilation.
1853 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1854 * tests/headers.at (export YYLTYPE): Likewise.
1855
1856 * tests/input.at (Torturing the Scanner): Remove lines containing
1857 solitary backslashes, as they tickle a bug in the HP C compiler.
1858
1859 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1860 comments, since they're not portable. Use GNU coding style.
1861
18622002-11-13 Akim Demaille <akim@epita.fr>
1863
1864 * data/yacc.c: Leave bigger chunks of quoted text.
1865 (YYDSYMPRINTF): New.
1866 Use it to report symbol activities.
1867 * data/glr.c (YYDSYMPRINTF): New.
1868 Use it.
1869
18702002-11-12 Paul Eggert <eggert@twinsun.com>
1871
1872 Version 1.75b.
1873
1874 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1875 (yyglrReduce): Return yyok, not 0.
1876 This should avoid the enumerated-type warnings reported
1877 by Nelson H. F. Beebe in
1878 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1879
1880 * lib/bbitset.h (BITSET_INLINE): Remove.
1881 * lib/bitset.h [! BITSET_INLINE]: Remove.
1882 (bitset_set, bitset_reset, bitset_test): Rename local vars
1883 to avoid shadowing warnings by GCC.
1884
1885 * data/glr.c (inline): Remove #define. It's the user's
1886 responsibility to #define it away, just like 'const'.
1887 This fixes one of the bugs reported by Nelson H. F. Beebe in
1888 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1889
1890 * Makefile.maint (po-check): Scan .l and .y files instead of the
1891 .c and the .h files that they generate. This fixes the bug
1892 reported by Tim Van Holder in:
1893 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1894 Look for N_ as well as for _. Try to avoid matching #define for
1895 N_ and _.
1896 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1897 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1898 * src/scan-gram.l: Revamp regular expressions so that " and '
1899 do not confuse xgettext.
1900
1901 * src/struniq.h (struniq_new): Do not declare the return type
1902 to be 'const'; this violates the C standard.
1903 * src/struniq.c (struniq_new): Likewise.
1904
19052002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1906
1907 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1908 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1909 linker.
1910
19112002-11-12 Akim Demaille <akim@epita.fr>
1912
1913 * Makefile.maint: Sync with Autoconf:
1914 (local_updates): New.
1915
19162002-11-12 Akim Demaille <akim@epita.fr>
1917
1918 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1919
19202002-11-12 Akim Demaille <akim@epita.fr>
1921
1922 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1923 locations.
1924
19252002-11-12 Akim Demaille <akim@epita.fr>
1926
1927 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1928 not yyvalue.
1929
19302002-11-12 Akim Demaille <akim@epita.fr>
1931
1932 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1933 Use it to test the GLR parser.
1934
19352002-11-12 Akim Demaille <akim@epita.fr>
1936
1937 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1938 defines it.
1939 * data/glr.c (yystos): New.
1940 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1941 (YYDSYMPRINT): New.
1942 (yyval): Don't define it, it is handled via M4.
1943 (yyrecoverParseError): Free verbosely the discarded symbols.
1944 * data/yacc.c (yysymprint): Remove, rather...
1945 (b4_yysymprint_generate): invoke.
1946 * data/c.m4 (b4_yysymprint_generate): New.
1947 Accept pointers as arguments, as opposed to the version from
1948 yacc.c.
1949 (b4_yydestruct_generate): Likewise.
1950 * tests/cations.at (Printers and Destructors): Use Bison directives
1951 instead of CPP macros.
1952 Don't rely on internal details.
1953
19542002-11-12 Akim Demaille <akim@epita.fr>
1955
1956 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1957 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1958 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1959 it against YYEMPTY and so forth), work on yytoken (i.e., set
1960 it to YYEMPTY etc.).
1961 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1962 (b4_symbol_actions): Remove.
1963 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1964 for 0, end-of-input.
1965
19662002-11-12 Akim Demaille <akim@epita.fr>
1967
1968 * doc/bison.texinfo (Destructor Decl): New.
1969
19702002-11-12 Akim Demaille <akim@epita.fr>
1971
1972 * src/tables.c (tables_generate): Use free for pointers that
1973 cannot be NULL, not XFREE.
1974 (pack_vector): Use assert, not fatal, for bound violations.
1975 * src/state.c (state_new): Likewise.
1976 * src/reader.c (reader): Likewise.
1977 * src/lalr.c (set_goto_map): Likewise.
1978 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1979 the file name.
1980
19812002-11-12 Akim Demaille <akim@epita.fr>
1982
1983 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1984 Restore.
1985 * src/scan-gram.l (last_string): Is global to the file, not to
1986 yylex.
1987 * src/parse-gram.y (input): Don't append the epilogue here,
1988 (epilogue.opt): do it here, and free the scanner's obstack.
1989 * src/reader.c (epilogue_set): Rename as...
1990 (epilogue_augment): this.
1991 * data/c.m4 (b4_epilogue): Defaults to empty.
1992
19932002-11-12 Akim Demaille <akim@epita.fr>
1994
1995 * src/getargs.c (long_options): Remove duplicates.
1996 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1997 Remove.
1998 * doc/bison.rnh: Remove.
1999 * doc/bison.texinfo (VMS Invocation): Remove.
2000
20012002-11-12 Akim Demaille <akim@epita.fr>
2002
2003 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2004 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2005
2006 Use struniq for symbols.
2007
2008 * src/symtab.h (symbol_t): The tag member is a struniq.
2009 (symbol_type_set): Adjust.
2010 * src/symtab.c (symbol_new): Takes a struniq.
2011 (symbol_free): Don't free the tag member.
2012 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2013 (hash_compare_symbol, hash_symbol): these.
2014 Use the fact that tags as struniqs.
2015 (symbol_get): Use struniq_new.
2016 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
2017 Returns a strniq.
2018 * src/reader.h (merger_list, grammar_currentmerge_set): The name
2019 and type members are struniqs.
2020 * src/reader.c (get_merge_function)
2021 (grammar_current_rule_merge_set): Adjust.
2022 (TYPE, current_type): Are struniq.
2023
2024 Use struniq for file names.
2025
2026 * src/files.h, src/files.c (infile): Split into...
2027 (grammar_file, current_file): these.
2028 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
2029 * src/reduce.c (reduce_print): Likewise.
2030 * src/getargs.c (getargs): Likewise.
2031 * src/complain.h, src/complain.c: Likewise.
2032 * src/main.c (main): Call struniqs_new early enough to use it for
2033 file names.
2034 Don't free the input file name.
2035
20362002-11-12 Akim Demaille <akim@epita.fr>
2037
2038 * src/symtab.c (symbol_free): Remove dead deactivated code:
2039 type_name are properly removed.
2040 Don't use XFREE to free items that cannot be NULL.
2041 * src/struniq.h, src/struniq.c: New.
2042 * src/main.c (main): Initialize/free struniqs.
2043 * src/parse-gram.y (%union): Add astruniq member.
2044 (yyprint): Adjust.
2045 * src/scan-gram.l (<{tag}>): Return a struniq.
2046 Free the obstack bit that used to store it.
2047 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
2048
20492002-11-11 Paul Eggert <eggert@twinsun.com>
2050
2051 Revamp to fix many (but not all) of the C- and M4-related quoting
2052 problems. Among other things, this fixes the Bison bug reported
2053 by Jan Hubicka when processing the Bash grammar; see:
2054 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
2055
2056 Use new @ escapes consistently. Represent brackets with @{ and @}
2057 rather than @<:@ and @:>@, since this works a bit better with dumb
2058 editors like vi. Represent @ with @@, since @ is now consistently
2059 an escape. Use @oline@ and @ofile@ rather than __oline__ and
2060 __ofile__, to avoid unexpected expansions. Similarly, use @output
2061 rather than #output.
2062
2063 * data/c.m4 (b4_copyright): Omit file name from comment, since
2064 the file name could contain "*/".
2065 (b4_synclines_flag): Don't quote the 2nd argument; it should already
2066 be quoted. All uses changed.
2067
2068 * data/glr.c: Use new @ escapes consistently.
2069 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
2070 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
2071 Remove, since they couldn't handle arbitrary characters in file
2072 names.
2073 * data/lalr1.cc: Likewise.
2074 * data/yacc.c: Likewise.
2075
2076 * src/files.c (output_infix): Remove; all uses removed.
2077 * src/files.h: Likewise.
2078
2079 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
2080 mishandled funny characters in file names, and anyway it isn't
2081 needed any more.
2082 * data/yacc.c: Likewise.
2083 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
2084
2085 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
2086 * data/yacc.c: Likewise.
2087
2088 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
2089 strings now.
2090 (muscle_init): Quote filename as a C string.
2091 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
2092 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
2093 * src/output.c (escaped_file_name_output): New function.
2094 (prepare_symbols): Quote tokens for M4.
2095 (prepare): Don't insert output_infix, output_prefix,
2096 output_parser_name, output_header_name; this is now down by scan-skel.
2097 Insert skeleton as a C string.
2098
2099 * src/output.c (user_actions_output, symbol_destructors_output,
2100 symbol_printers_output): Quote filenames for C and M4.
2101 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2102
2103 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
2104 escapes other than \\ and \'; this simplifies the code.
2105 (<SC_STRING>): Likewise, for \\ and \".
2106 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
2107 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
2108 Use new escapes @{ and @} for [ and ].
2109
2110 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
2111 them with auto vars.
2112 Switch to new escape scheme, where @ is the escape character uniformly.
2113 Abort if a stray escape character is found. Avoid unbounded input
2114 buffer when parsing non-escaped text.
2115
2116 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
2117 __oline__, #output, $@, and @{ do not have unintended meanings.
2118
21192002-11-09 Paul Eggert <eggert@twinsun.com>
2120
2121 Fix the test failure due to GCC warnings described in
2122 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
2123 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
2124 evaluate to 0 if it's impossible for NINF to be in the respective
2125 table.
2126 (yygetLRActions, yyrecoverParseError): Use them.
2127
2128 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
2129 counted in the token inserted at end of file. Now takes
2130 location_t *, not location_t, so that the location can be
2131 adjusted. All uses changed.
2132
2133 * tests/regression.at (Invalid inputs): Adjust wording in
2134 diagnostic to match the new behavior.
2135
2136 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
2137 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
2138 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
2139 abort ();'. This reduces the runtime of the "Many lookaheads"
2140 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
2141 GCC 3.2.
2142
21432002-11-07 Paul Eggert <eggert@twinsun.com>
2144
2145 * src/parse-gram.y (CHARACTER): Remove unused token.
2146 All uses removed.
2147
2148 * src/scan-gram.l: Remove stack option. We no longer use the
2149 stack, since the stack was never deeper than 1; instead, use the
2150 new auto var c_context to record the stacked value.
2151
2152 Remove nounput option. At an unexpected end of file, we now unput
2153 the minimal input necessary to end cleanly; this simplifies the
2154 code.
2155
2156 Avoid unbounded token sizes where this is easy.
2157
2158 (unexpected_end_of_file): New function.
2159 Use it to systematize the error message on unexpected EOF.
2160 (last-string): Now auto, not static.
2161 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
2162 (scanner_last_string_free): Remove; not used.
2163 (percent_percent_count): Move decl to just before use.
2164 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
2165 not the (never otherwised-used) CHARACTER.
2166
21672002-11-07 Akim Demaille <akim@epita.fr>
2168
2169 Let yyerror always receive the msg as last argument, so that
2170 yyerror can be variadic.
2171
2172 * data/yacc.c (b4_yyerror_args): New.
2173 Use it when calling yyerror.
2174 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
2175 Use it when calling yyerror.
2176 * doc/bison.texinfo (Error Reporting): Adjust.
2177 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
2178 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
2179
21802002-11-06 Akim Demaille <akim@epita.fr>
2181
2182 #line should have quoted strings.
2183 Ideally, this should be done by m4_quotearg.
2184
2185 * src/scan-skel.l: Include quotearg.h.
2186 Quote __ofile__.
2187 * src/output.c (symbol_printers_output)
2188 (symbol_destructors_output): Quote the file name.
2189
21902002-11-06 Akim Demaille <akim@epita.fr>
2191
2192 * tests/regression.at (Invalid inputs): Adjust to the recent
2193 messages.
2194
21952002-11-06 Akim Demaille <akim@epita.fr>
2196
2197 Restore --no-lines.
2198 Reported by Jim Kent.
2199
2200 * data/c.m4 (b4_syncline): New.
2201 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
2202 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
2203 * src/output.c (user_actions_output): Likewise.
2204 (prepare): Define 'b4_synclines_flag'.
2205 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
2206
22072002-11-06 Akim Demaille <akim@epita.fr>
2208
2209 * src/main.c (main): Free `infile'.
2210 * src/scan-gram.l (handle_syncline): New.
2211 Recognize `#line'.
2212 * src/output.c (user_actions_output, symbol_destructors_output)
2213 (symbol_printers_output): Use the location's file name, not
2214 infile.
2215 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2216
22172002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2218
2219 * src/tables.c (matching_state): Don't allow states to match if
2220 either has GLR conflict entries.
2221
22222002-11-05 Paul Eggert <eggert@twinsun.com>
2223
2224 * src/scan-gram.l: Use more accurate diagnostics, e.g.
2225 "integer out of range" rather than "invalid value".
2226 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
2227 accordingly.
2228
2229 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
2230 Also, remove one static variable in the scanner.
2231
2232 * src/scan-gram.l (braces_level): Now auto, not static.
2233 Initialize to zero if the compiler is being picky.
2234 (INITIAL): Clear braces_level instead of incrementing it.
2235 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
2236 as POSIX 1003.1-2001 requires.
2237 * src/system.h (IF_LINT): New macro, taken from coreutils.
2238 * configure.ac: Define "lint" if --enable-gcc-warnings.
2239
22402002-11-05 Akim Demaille <akim@epita.fr>
2241
2242 * src/scan-gram.l: When it starts with `%', complain about the
2243 whole directive, not just that `invalid character: %'.
2244
22452002-11-04 Akim Demaille <akim@epita.fr>
2246
2247 * Makefile.maint: Update from Autoconf.
2248 (update, cvs-update, po-update, do-po-update): New.
2249
22502002-11-04 Akim Demaille <akim@epita.fr>
2251
2252 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
2253 and yyerror.
2254 Have yyerror `use' its arguments.
2255 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
2256 returns true when location & yacc & pure & parse-param.
2257 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
2258
22592002-11-04 Akim Demaille <akim@epita.fr>
2260
2261 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
2262 clashes.
2263 * src/scan-gram.l: Use [\'] instead of ['] to pacify
2264 font-lock-mode.
2265 Use complain_at.
2266 Use quote, not quote_n since LOCATION_PRINT no longer uses the
2267 slot 0.
2268
22692002-11-03 Paul Eggert <eggert@twinsun.com>
2270
2271 * src/reader.c (get_merge_function, grammar_current_rule_check):
2272 Use consistent diagnostics for reporting type name clashes.
2273 Quote the types with <>, for consistency with Yacc.
2274 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
2275
22762002-11-03 Akim Demaille <akim@epita.fr>
2277
2278 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
2279 New.
2280 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
2281 (b4_parse_param): Remove.
2282 Use b4_identification.
2283 Propagate b4_pure_args where needed to pass them to yyerror.
2284 * data/glr.m4 (b4_parse_param): Remove.
2285 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
2286 (b4_lpure_formals): New.
2287 Use b4_identification.
2288 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
2289 b4_user_formals and b4_user_args.
2290 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
2291 (yyreportAmbiguity): When using a pure parser, also need
2292 the location, and the parse-params.
2293 Adjust callers.
2294 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
2295 When using a pure parser, also need the parse-params.
2296 Adjust callers.
2297 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
2298 (%pure-parser + %parse-param) LALR and GLR parsers.
2299 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
2300 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
2301 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
2302 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
2303 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
2304 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
2305 * doc/bison.texinfo: Untabify the whole file.
2306 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
2307 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
2308 (Error Reporting): Adjust to these new directives.
2309 Document %error-verbose, deprecate YYERROR_VERBOSE.
2310
23112002-11-03 Akim Demaille <akim@epita.fr>
2312
2313 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
2314 AT_CHECK_CALC_GLR invocations to use % directives, instead of
2315 command line options.
2316 * tests/cxx-type.at: Formatting changes.
2317
23182002-11-03 Paul Eggert <eggert@twinsun.com>
2319
2320 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
2321 to count columns correctly, and to check for invalid inputs.
2322
2323 Use mbsnwidth to count columns correctly. Account for tabs, too.
2324 Include mbswidth.h.
2325 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
2326 (extend_location): New function.
2327 (YY_LINES): Remove.
2328
2329 Handle CRLF in C code rather than in Lex code.
2330 (YY_INPUT): New macro.
2331 (no_cr_read): New function.
2332
2333 Scan UCNs, even though we don't fully handle them yet.
2334 (convert_ucn_to_byte): New function.
2335
2336 Handle backslash-newline correctly in C code.
2337 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
2338 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
2339 all uses changed.
2340 (tag, splice): New EREs. Do not allow NUL or newline in tags.
2341 Use {splice} wherever C allows backslash-newline.
2342 YY_STEP after space, newline, vertical-tab.
2343 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
2344
2345 (letter, id): Don't assume ASCII; e.g., spell out a-z.
2346
2347 ({int}, handle_action_dollar, handle_action_at): Check for integer
2348 overflow.
2349
2350 (YY_STEP): Omit trailing semicolon, so that it's more like C.
2351
2352 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
2353 as well as \000. Check for UCHAR_MAX, not 255.
2354 Allow \x with an arbitrary positive number of digits, as in C.
2355 Check for overflow here.
2356 Allow \? and UCNs, for compatibility with C.
2357
2358 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
2359 with quote slot used by complain_at.
2360
2361 * tests/input.at: Add tests for backslash-newline, m4 quotes
2362 in symbols, long literals, and funny escapes in strings.
2363
2364 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
2365 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
2366 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
2367 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
2368 * m4/mbswidth.m4: New file, from GNU coreutils.
2369
2370 * doc/bison.texinfo (Grammar Outline): Document // comments.
2371 (Symbols): Document that trigraphs have no special meaning in Bison,
2372 nor is backslash-newline allowed.
2373 (Actions): Document that trigraphs have no special meaning.
2374
2375 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
2376 no longer used.
2377
23782002-11-02 Paul Eggert <eggert@twinsun.com>
2379
2380 * src/reader.c: Don't include quote.h; not needed.
2381 (get_merge_function): Reword warning to be consistent with
2382 type clash diagnostic in grammar_current_rule_check.
2383
2384 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
2385 bug in trigraph handling.
2386
2387 * src/output.c (prepare_symbols): When printing token names,
2388 escape "[" as "@<:@" and likewise for "]".
2389
2390 * src/system.h (errno): Remove declaration, as we are now
2391 assuming C89 or better, and C89 guarantees errno.
2392
23932002-10-30 Paul Eggert <eggert@twinsun.com>
2394
2395 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
2396 Check for close failures.
2397 * src/files.h (xfclose): Return void, not int, since it always
2398 returned zero.
2399 * src/files.c (xfclose): Likewise. Report I/O error if ferror
2400 indicates one.
2401 * src/output.c (output_skeleton): Use xfclose rather than fclose
2402 and ferror. xfclose now checks ferror.
2403
2404 * data/glr.c (YYLEFTMOST_STATE): Remove.
2405 (yyreportTree): Use a stack-based leftmost state. This avoids
2406 our continuing battles with bogus warnings about initializers.
2407
24082002-10-30 Akim Demaille <akim@epita.fr>
2409
2410 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
2411 #if.
2412
24132002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2414
2415 * tests/glr-regr1.at: New test for reported regressions.
2416 * tests/testsuite.at: Add glr-regr1.at test.
2417 * tests/Makefile.am: Add glr-regr1.at test.
2418
24192002-10-24 Paul Eggert <eggert@twinsun.com>
2420
2421 Version 1.75a.
2422
2423 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
2424 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
2425 we use malloc. Don't assume 'A' through 'Z' are contiguous.
2426 Don't assume strdup exists; POSIX says its an XSI extension.
2427 Check for buffer overflow on input.
2428
24292002-10-24 Akim Demaille <akim@epita.fr>
2430
2431 * src/output.c (output_skeleton): Don't disable M4sugar comments
2432 too soon: it results in comments being expanded.
2433 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
2434 first output.
2435
24362002-10-24 Akim Demaille <akim@epita.fr>
2437
2438 * data/yacc.c (m4_int_type): New.
2439 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
2440 char' as only yacc.c wants K&R portability.
2441 * data/glr.c (yysigned_char): Remove.
2442 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
2443 Reported by Quoc Peyrot.
2444
24452002-10-23 Paul Eggert <eggert@twinsun.com>
2446
2447 * src/main.c (main): With --trace=time, report times even if a
2448 non-fatal error occurs. Formerly, the times were reported in some
2449 such cases but not in others.
2450 * src/reader.c (reader): Just return if a complaint has been issued,
2451 instead of exiting, so that 'main' can report times.
2452
24532002-10-22 Akim Demaille <akim@epita.fr>
2454
2455 * src/system.h: Include sys/types.
2456 Reported by Bert Deknuydt.
2457
24582002-10-23 Paul Eggert <eggert@twinsun.com>
2459
2460 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
2461 Suggested by Art Haas.
2462
24632002-10-22 Paul Eggert <eggert@twinsun.com>
2464
2465 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
2466 decl; not needed any more.
2467 * src/main.c (main): Use return to exit, undoing yesterday's change.
2468 The last OS that we could find where this wouldn't work is
2469 SunOS 3.5, and that's too old to worry about now.
2470
2471 * data/glr.c (struct yyltype): Define members even when not
2472 doing locations. This is more consistent with yacc.c, and it
2473 works around the following bug reports:
2474 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
2475 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
2476
2477 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
2478 @acronym consistently. Standardize on "Yacc" instead of "YACC",
2479 "Algol" instead of "ALGOL". Give a bit more history about BNF.
2480
24812002-10-22 Akim Demaille <akim@epita.fr>
2482
2483 * data/README: New.
2484
24852002-10-21 Paul Eggert <eggert@twinsun.com>
2486
2487 Be consistent about 'bool'; the old code used an enum in one
2488 module and an int in another, and this violates the C standard.
2489 * m4/stdbool.m4: New file, from coreutils 4.5.3.
2490 * configure.ac (AC_HEADER_STDBOOL): Add.
2491 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
2492 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
2493 * src/symtab.c (hash_compare_symbol_t): Likewise.
2494 * src/system.h (bool, false, true): Use a definition consistent
2495 with ../lib/hash.c. All uses changed.
2496
2497 * src/complain.c (warning_issued): Renamed from warn_message_count,
2498 so that we needn't worry about integer overflow (!).
2499 Now of type bool. All uses changed.
2500 (complaint_issued): Renamed from complain_message_count; likewise.
2501
2502 * src/main.c (main): Use exit to exit with failure.
2503
2504 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
2505 rather than 1 and 0.
2506 * src/main.c (main): Likewise.
2507 * src/getargs.c (getargs): Likewise.
2508 * src/reader.c (reader): Likewise.
2509
2510 * src/getarg.c (getargs): Remove duplicate code for
2511 "Try `bison --help'".
2512
2513 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
2514 What was that "2" for?
2515
2516 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
2517 * src/getargs.c (usage): Likewise.
2518
2519 * src/getargs.c (getargs): When there are too few operands, report
2520 the last one. When there are too many, report the first extra
2521 one. This is how diffutils does it.
2522
25232002-10-20 Paul Eggert <eggert@twinsun.com>
2524
2525 Remove K&R vestiges.
2526 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
2527 * src/complain.c (VA_START): Remove. Assume prototypes.
2528 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
2529 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
2530 fatal): Assume prototypes.
2531 * src/complain.h: Assume prototypes.
2532 * src/system.h (PARAMS): Remove.
2533 Include <limits.h> unconditionally, since it's guaranteeed even
2534 for a freestanding C89 compiler.
2535 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
2536 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
2537
25382002-10-20 Akim Demaille <akim@epita.fr>
2539
2540 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
2541 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
2542 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
2543 (yyresolveStates, yyresolveAction, yyresolveStack)
2544 (yyprocessOneStack): Use them.
2545 (yy_reduce_print): New.
2546 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
2547
25482002-10-20 Akim Demaille <akim@epita.fr>
2549
2550 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
2551 arguments and output `void'.
2552 (b4_c_function): Rename as...
2553 (b4_c_function_def): this.
2554 (b4_c_function_decl, b4_c_ansi_function_def)
2555 (b4_c_ansi_function_decl): New.
2556 Change the interpretation of the arguments: before `int, foo', now
2557 `int foo, foo'.
2558 * data/yacc.c (yyparse): Prototype and define thanks to these.
2559 Adjust b4_c_function_def uses.
2560 * data/glr.c (yyparse): Likewise, but ANSI only.
2561
25622002-10-20 Akim Demaille <akim@epita.fr>
2563
2564 * src/output.c (prepare): Move the definition of `tokens_number',
2565 `nterms_number', `undef_token_number', `user_token_number_max'
2566 to...
2567 (prepare_tokens): Here.
2568 (prepare_tokens): Rename as...
2569 (prepare_symbols): this.
2570 (prepare): Move the definition of `rules_number' to...
2571 (prepare_rules): here.
2572 (prepare): Move the definition of `last', `final_state_number',
2573 `states_number' to...
2574 (prepare_states): here.
2575 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
2576
25772002-10-20 Akim Demaille <akim@epita.fr>
2578
2579 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2580
25812002-10-20 Akim Demaille <akim@epita.fr>
2582
2583 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2584 * data/c.m4: here.
2585
25862002-10-20 Akim Demaille <akim@epita.fr>
2587
2588 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2589 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2590 `pair'.
2591 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2592 `name' to...
2593 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2594 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2595 These.
2596
25972002-10-19 Paul Eggert <eggert@twinsun.com>
2598
2599 Do not create a temporary file, as that involves security and
2600 cleanup headaches. Instead, use a pair of pipes.
2601 Derived from a suggestion by Florian Krohm.
2602 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2603 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2604 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2605 (BISON_PREREQ_SUBPIPE): Add.
2606 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2607 Add subpipe.h, subpipe.c.
2608 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2609 * po/POTFILES.in: Add lib/subpipe.c.
2610 * src/output.c: Include "subpipe.h".
2611 (m4_invoke): Remove decl.
2612 (scan_skel): New decl.
2613 (output_skeleton): Use pipe rather than temporary file for m4 input.
2614 Check that m4sugar.m4 is readable, to avoid deadlock.
2615 Check for pipe I/O error.
2616 * src/scan-skel.l (readpipe): Remove decl.
2617 (scan_skel): New function, to be used in place of m4_invoke.
2618 Read from stream rather than file.
2619
2620 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2621 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2622 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2623 this generates a more-accurate value anyway.
2624
2625 * lib/timevar.c (timervar_accumulate): Rename locals to
2626 avoid confusion with similarly-named more-global.
2627 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2628
2629 * src/output.c (prepare): Use xstrdup to convert char const *
2630 to char *, to avoid GCC warning.
2631
26322002-10-19 Akim Demaille <akim@epita.fr>
2633
2634 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2635 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2636 Use them to have `calc.y' ready for %pure-parser.
2637 * data/yacc.c (YYLEX): Pass a yylex return type to
2638 b4_c_function_call.
2639
26402002-10-19 Akim Demaille <akim@epita.fr>
2641
2642 Prototype support of %lex-param and %parse-param.
2643
2644 * src/parse-gram.y: Add the definition of the %lex-param and
2645 %parse-param tokens, plus their rules.
2646 Drop the `_' version of %glr-parser.
2647 Add the "," token.
2648 * src/scan-gram.l (INITIAL): Scan them.
2649 * src/muscle_tab.c: Comment changes.
2650 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2651 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2652 (muscle_entry_s): The `value' member is no longer const.
2653 Adjust all dependencies.
2654 * src/muscle_tab.c (muscle_init): Adjust: use
2655 MUSCLE_INSERT_STRING.
2656 Initialize the obstack earlier.
2657 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2658 (muscle_pair_list_grow): New.
2659 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2660 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2661 * tests/calc.at: Use %locations, not --locations.
2662 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2663
26642002-10-19 Akim Demaille <akim@epita.fr>
2665
2666 * src/getargs.c (usage): Take status as argument and exit
2667 accordingly.
2668 Report the traditional `Try ... --help' message when status != 0.
2669 (usage, version): Don't take a FILE * as arg, it is pointless.
2670 (getargs): When there is an incorrect number of arguments, make it
2671 an error, and report it GNUlically thanks to `usage ()'.
2672
26732002-10-18 Paul Eggert <eggert@twinsun.com>
2674
2675 * data/glr.c (yyreportParseError): Don't assume that sprintf
2676 yields the length of the printed string, as this is not true
2677 on SunOS 4.1.4. Reported by Peter Klein.
2678
2679 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2680 * tests/conflicts.at (%nonassoc and eof): Likewise.
2681 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2682
26832002-10-17 Akim Demaille <akim@epita.fr>
2684
2685 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2686 * src/getargs.c (trace_types, trace_args): Adjust.
2687 * src/reader.c (grammar_current_rule_prec_set)
2688 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2689 Standardize error messages.
2690 And s/@prec/%prec/!
2691 (reader): Use trace_flag to enable scanner/parser debugging,
2692 instead of an adhoc scheme.
2693 * src/scan-gram.l: Remove trailing debugging code.
2694
26952002-10-16 Paul Eggert <eggert@twinsun.com>
2696
2697 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2698 MUSCLE_TAB_H.
2699
2700 * NEWS: Officially drop support for building Bison with K&R C,
2701 since it didn't work anyway and it's not worth worrying about.
2702 * Makefile.maint (wget_files): Remove ansi2knr.c.
2703 (ansi2knr.c-url_prefix): Remove.
2704 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2705 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2706 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2707
27082002-10-15 Paul Eggert <eggert@twinsun.com>
2709
2710 Stop using the "enum_" trick for K&R-style function definitions;
2711 it confused me, and I was the author! Instead, assume that people
2712 who want to use K&R C compilers (when using these modules in GCC,
2713 perhaps?) will run ansi2knr.
2714
2715 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2716 All uses of "enum_" changed to "enum ".
2717 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2718 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2719
2720 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2721 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2722 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2723 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2724 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2725 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2726 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2727 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2728 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2729 Use function prototypes; this removes the need for declaring
2730 static functions simply to provide their prototypes.
2731 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2732 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2733 bitset_count_, bitset_create, bitset_dump, bitset_first,
2734 bitset_free, bitset_init, bitset_last, bitset_next,
2735 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2736 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2737 bitset_print, bitset_release_memory, bitset_toggle_,
2738 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2739 debug_bitset): Likewise.
2740 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2741 * lib/bitset_stats.c (bitset_log_histogram_print,
2742 bitset_percent_histogram_print, bitset_stats_and,
2743 bitset_stats_and_cmp, bitset_stats_and_or,
2744 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2745 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2746 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2747 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2748 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2749 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2750 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2751 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2752 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2753 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2754 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2755 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2756 bitset_stats_zero): Likewise.
2757 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2758 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2759 bitsetv_dump, debug_bitsetv): Likewise.
2760 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2761 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2762 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2763 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2764 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2765 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2766 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2767 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2768 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2769 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2770 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2771 Likewise.
2772 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2773 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2774 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2775 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2776 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2777 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2778 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2779 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2780 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2781 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2782 lbitset_xor_cmp, lbitset_zero): Likewise.
2783
27842002-10-14 Akim Demaille <akim@epita.fr>
2785
2786 Version 1.75.
2787
27882002-10-14 Akim Demaille <akim@epita.fr>
2789
2790 * tests/Makefile.am (maintainer-check-posix): New.
2791
27922002-10-14 Akim Demaille <akim@epita.fr>
2793
2794 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2795 member.
2796
27972002-10-14 Akim Demaille <akim@epita.fr>
2798
2799 * src/tables.c (table_ninf_remap): base -> tab.
2800 Reported by Matt Rosing.
2801
28022002-10-14 Paul Eggert <eggert@twinsun.com>
2803
2804 * tests/action.at, tests/calc.at, tests/conflicts.at,
2805 tests/cxx-type.at, tests/headers.at, tests/input.at,
2806 tests/regression.at, tests/synclines.at, tests/torture.at:
2807 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2808 so that the tests still work even if POSIXLY_CORRECT is set.
2809 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2810
2811 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2812 for portability to K&R hosts. Fix typo: signed char is guaranteed
2813 only to 127, not to 128.
2814 * data/glr.c (yysigned_char): New type.
2815 * data/yacc.c (yysigned_char): Likewise.
2816 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2817
28182002-10-13 Paul Eggert <eggert@twinsun.com>
2819
2820 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2821 true due to limited range of data type" warning from GCC.
2822
2823 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2824 by wrapping enum yytokentype's definition inside #ifndef
2825 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2826
28272002-10-13 Akim Demaille <akim@epita.fr>
2828
2829 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2830 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2831
28322002-10-13 Akim Demaille <akim@epita.fr>
2833
2834 * Makefile.maint: Update from Autoconf 2.54.
2835 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2836
28372002-10-13 Akim Demaille <akim@epita.fr>
2838
2839 * src/print.c (print_state): Separate the list of solved conflicts
2840 from the other items.
2841 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2842
28432002-10-13 Akim Demaille <akim@epita.fr>
2844
2845 Let nondeterministic skeletons be usable with deterministic
2846 tables.
2847
2848 With the patch, GAWK compiled by GCC without -O2 passes its test
2849 suite using a GLR parser driven by LALR tables. It fails with -O2
2850 because `struct stat' gives two different answers on my machine:
2851 88 (definition of an auto var) and later 96 (memset on this var).
2852 Hence the stack is badly corrumpted. The headers inclusion is to
2853 blame: if I move the awk.h inclusion before GLR's system header
2854 inclusion, the two struct stat have the same size.
2855
2856 * src/tables.c (pack_table): Always create conflict_table.
2857 (token_actions): Always create conflict_list.
2858 * data/glr.c (YYFLAG): Remove, unused.
2859
28602002-10-13 Akim Demaille <akim@epita.fr>
2861
2862 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2863 (O0FLAGS): New.
2864 (VALGRIND, GXX): New.
2865 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2866 * tests/bison.in: Run $PREBISON a pre-command.
2867 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2868 (maintainer-check-g++): New.
2869 * Makefile.am (maintainer-check): New.
2870
28712002-10-13 Akim Demaille <akim@epita.fr>
2872
2873 * data/glr.c: Formatting changes.
2874 Tweak some trace messages to match yacc.c's.
2875
28762002-10-13 Akim Demaille <akim@epita.fr>
2877
2878 GLR parsers sometimes raise parse errors instead of performing the
2879 default reduction.
2880 Reported by Charles-Henry de Boysson.
2881
2882 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2883 check the length of the traces when %glr.
2884 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2885 GLR's traces.
2886 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2887 Test GLR parsers.
2888 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2889 (yyltype): Remove the yy prefix from the member names.
2890 (yytable): Complete its comment.
2891 (yygetLRActions): Map error action number from YYTABLE from
2892 YYTABLE_NINF to 0.
2893 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2894 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2895 not satisfying as we could compare an YYACTION computed from
2896 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2897 only value for error actions.
2898 (yyreportParseError): In verbose parse error messages, don't issue
2899 `error' in the list of expected tokens.
2900 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2901 next action to perform to match glr.c's decoding.
2902 (yytable): Complete its comment.
2903
29042002-10-13 Paul Eggert <eggert@twinsun.com>
2905
2906 Fix problem reported by Henrik Grubbstroem in
2907 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2908 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2909 because the Bison parser reads the second action before reducing
2910 the first one.
2911 * src/scan-gram.l (rule_length): New static var.
2912 Use it to keep track of the rule length in the scanner, since
2913 we can't expect the parser to be in lock-step sync with the scanner.
2914 (handle_action_dollar, handle_action_at): Use this var.
2915 * tests/actions.at (Exotic Dollars): Test for the problem.
2916
29172002-10-12 Paul Eggert <eggert@twinsun.com>
2918
2919 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2920 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2921 Include <sys/time.h> when checking for clock_t and struct tms.
2922 Use same include order as source.
2923 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2924 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2925
2926 * lib/timevar.c: Update copyright date and clarify comments.
2927 (get_time) [IN_GCC]: Keep the GCC version for reference.
2928
2929 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2930 GCC version as of today, then merge Bison's changes.
2931 Change "GCC" to "Bison" in copyright notice. timevar.def's
2932 author is Akim, so change that too.
2933
2934 * src/reader.c (grammar_current_rule_check):
2935 Don't worry about the default action if $$ is untyped.
2936 Prevents bogus warnings reported by Jim Gifford in
2937 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2938
2939 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2940 * data/glr.c, data/lalr1.cc, data/yacc.c:
2941 Output token definitions before the first part of user declarations.
2942 Fixes compatibility problem reported by Jim Gifford for kbd in
2943 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2944
29452002-10-11 Paul Eggert <eggert@twinsun.com>
2946
2947 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2948 (yyparse): here. This undoes some of the 2002-07-25 change.
2949 Compatibility problem reported by Ralf S. Engelschall with
2950 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2951
29522002-10-11 Akim Demaille <akim@epita.fr>
2953
2954 * tests/regression.at Characters Escapes): New.
2955 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2956 characters.
2957 Reported by Jan Nieuwenhuizen.
2958
29592002-10-11 Akim Demaille <akim@epita.fr>
2960
2961 * po/id.po: New.
2962
29632002-10-10 Paul Eggert <eggert@twinsun.com>
2964
2965 Portability fixes for bitsets; this also avoids several GCC
2966 warnings.
2967
2968 * lib/abitset.c: Include <stddef.h>, for offsetof.
2969 * lib/lbitset.c: Likewise.
2970
2971 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2972 properly for vectors of objects. Do not assume that adding a
2973 header size to a multiple of a word size yields a value that is
2974 properly aligned for the whole union.
2975 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2976
2977 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2978 unique names for structures.
2979 * lib/ebitset.c (ebitset_bytes): Likewise.
2980 * lib/lbitset.c (lbitset_bytes): Likewise.
2981
2982 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2983 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2984 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2985 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2986 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2987 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2988 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2989 to improve the type-checking that GCC can do.
2990 * lib/bitset.c (bitset_op4_cmp): Likewise.
2991 * lib/bitset_stats.c (bitset_stats_count,
2992 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2993 bitset_stats_copy, bitset_stats_disjoint_p,
2994 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2995 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2996 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2997 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2998 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2999 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3000 bitset_stats_or_and_cmp): Likewise.
3001 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3002 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3003 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3004 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3005
3006 * lib/abitset.h: Include bitset.h, not bbitset.h.
3007 * lib/ebitset.h: Likewise.
3008 * lib/lbitset.h: Likewise.
3009
3010 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3011 All instances of parameters of type enum bitset_opts are now of
3012 type enum_bitset_opts, to conform to the C Standard, and similarly
3013 for enum_bitset_type.
3014 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3015 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3016
3017 Do not use "struct bitset_struct" to mean different things in
3018 different modules. Not only is this confusing, it violates
3019 the C Standard, which requires that structure types in different
3020 modules must be compatible if one is to be passed to the other.
3021 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
3022 All instances of "struct bitset_struct *" replaced with "bitset".
3023 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
3024 (union bitset_union, struct abitset_struct, struct ebitset_struct,
3025 struct lbitset_struct, struct bitset_stats_struct): New types.
3026 All uses of struct bitset_struct changed to union bitset_union,
3027 etc.
3028 * lib/abitset.c (struct abitset_struct, abitset,
3029 struct bitset_struct): Remove.
3030 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
3031 struct bitset_struct): Remove.
3032 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
3033 bitset_struct): Remove.
3034 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
3035 Likewise.
3036
3037 Do not call a function of type T using a call that assumes the
3038 function is of a different type U. Standard C requires that a
3039 function must be called with a type that is compatible with its
3040 definition.
3041 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3042 New decls.
3043 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3044 New functions.
3045 * lib/ebitset.c (PFV): Remove.
3046 * lib/lbitset.c (PFV): Likewise.
3047 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
3048 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
3049 decls.
3050 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
3051 (ebitset_vtable): Use them.
3052 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
3053 lbitset_xor): New functions.
3054 (lbitset_vtable): Use them.
3055
3056 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
3057 Declare.
3058
3059 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
3060 GCC warning.
3061 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
3062 Use offsetof, for simplicity.
3063
30642002-10-06 Paul Eggert <eggert@twinsun.com>
3065
3066 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
3067 the same width as int. This reapplies a hunk of the 2002-08-12 patch
3068 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
3069 which was inadvertently undone by the 2002-09-30 patch.
3070 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
3071 the same width as int.
3072
30732002-10-04 Paul Eggert <eggert@twinsun.com>
3074
3075 Version 1.50.
3076
3077 * configure.ac (AC_INIT), NEWS: Increment version number.
3078
3079 * doc/bison.texinfo: Minor spelling, grammar, and white space
3080 fixes.
3081 (Symbols): Mention that any negative value returned from yylex
3082 signifies end-of-input. Warn about negative chars. Mention
3083 the portable Standard C character set.
3084
3085 The GNU coding standard says CFLAGS and YFLAGS are reserved
3086 for the installer to set.
3087 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
3088 * src/Makefile.am (AM_CFLAGS): Likewise.
3089 (AM_YFLAGS): Renamed from YFLAGS.
3090
3091 Fix some MAX and MIN problems.
3092 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
3093 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
3094 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
3095 * src/reader.c (reader): Use it.
3096
3097 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
3098 POSIX 1003.1-2001 has removed fgrep.
3099
31002002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3101
3102 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
3103 interpreted as signed.
3104 * lib/ebitset.c (ebitset_list): Fix bug.
3105
31062002-10-01 Paul Eggert <eggert@twinsun.com>
3107
3108 More fixes for 64-bit hosts and large bitsets.
3109
3110 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
3111 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
3112 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
3113 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
3114 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
3115 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
3116 bitset_count_): Likewise.
3117 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
3118 bitset_first, bitset_last): Likewise.
3119 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
3120 bitset_stats_list_reverse, bitset_stats_size,
3121 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
3122 Likewise.
3123 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3124 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3125 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3126 bitsetv_reflexive_transitive_closure): Likewise.
3127 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
3128 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
3129 Likewise.
3130 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
3131 Likewise.
3132
3133 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
3134 Use size_t, not unsigned int, to count bytes.
3135 * lib/abitset.h (abitset_bytes): Likewise.
3136 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
3137 Likewise.
3138 * lib/bitset.h (bitset_bytes): Likewise.
3139 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
3140 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
3141 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3142 * lib/ebitset.c (ebitset_bytes): Likewise.
3143 * lib/ebitset.h (ebitset_bytes): Likewise.
3144 * lib/lbitset.c (lbitset_bytes): Likewise.
3145 * lib/lbitset.h (lbitset_bytes): Likewise.
3146
3147 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
3148 abitset_subset_p, abitset_disjoint_p, abitset_and,
3149 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
3150 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
3151 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
3152 abitset_or_and, abitset_or_and_cmp):
3153 Use bitset_windex instead of unsigned int.
3154 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
3155 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
3156 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
3157 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
3158 Likewise.
3159 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
3160
3161 * lib/bitset.c (bitset_print):
3162 Use proper printf formats for widths of integer types.
3163 * lib/bitset_stats.c (bitset_percent_histogram_print,
3164 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
3165 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3166 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
3167 * lib/lbitset.c (lbitset_bytes): Likewise.
3168
3169 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
3170 BITSET_SIZE_MAX): New macros.
3171 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
3172 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
3173 to BITSET_WINDEX_MAX.
3174
3175 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
3176 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
3177 since we now return the bitset_bindex type (not int).
3178
3179 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
3180 when computing sizes.
3181 * lib/ebitset.c (ebitset_elts_grow): Likewise.
3182
3183 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
3184 and avoid cast to unsigned.
3185
31862002-09-30 Akim Demaille <akim@epita.fr>
3187
3188 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
3189 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
3190 Updates from Michael Hayes.
3191
31922002-09-30 Art Haas <ahaas@neosoft.com>
3193
3194 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
3195 invocations.
3196 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
3197 defined.
3198
31992002-09-27 Akim Demaille <akim@epita.fr>
3200
3201 Version 1.49c.
3202
32032002-09-27 Akim Demaille <akim@epita.fr>
3204
3205 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
3206 (Because of AC_LIBSOURCE).
3207
32082002-09-27 Akim Demaille <akim@epita.fr>
3209
3210 Playing with Autoscan.
3211
3212 * configure.ac: Remove the old LIBOBJ tweaks.
3213 (AC_REPLACE_FUNCS): Add strrchr and strtol.
3214 * lib/strrchr.c: New.
3215 * lib/strtol.c: New, from the Coreutils 4.5.1.
3216
32172002-09-27 Akim Demaille <akim@epita.fr>
3218
3219 Playing with Autoscan.
3220
3221 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
3222 * lib/Makefile.am (libbison_a_SOURCES): No longer include
3223 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
3224 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
3225 Coreutils 4.5.1.
3226
32272002-09-24 Akim Demaille <akim@epita.fr>
3228
3229 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
3230 (Frequently Asked Questions, Parser Stack Overflow): New.
3231
32322002-09-13 Akim Demaille <akim@epita.fr>
3233
3234 Playing with autoscan.
3235
3236 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
3237 * src/files.c (skeleton_find): Remove, unused.
3238 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
3239 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
3240
32412002-09-13 Akim Demaille <akim@epita.fr>
3242
3243 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
3244 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
3245
32462002-09-13 Akim Demaille <akim@epita.fr>
3247
3248 * configure.ac: Require 2.54.
3249 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
3250 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
3251 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
3252 Remove, provided by Autoconf macros.
3253
32542002-09-12 Akim Demaille <akim@epita.fr>
3255
3256 * m4/prereq.m4: Update, from Coreutils 4.5.1.
3257
32582002-09-12 Akim Demaille <akim@epita.fr>
3259
3260 * m4/prereq.m4: Update, from Fileutils 4.1.5.
3261 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
3262 Reported by Martin Mokrejs.
3263
32642002-09-10 Akim Demaille <akim@epita.fr>
3265
3266 * src/parse-gram.y: Associate a human readable string to each
3267 token type.
3268 * tests/regression.at (Invalid inputs): Adjust.
3269
32702002-09-10 Gary V. Vaughan <gary@gnu.org>
3271
3272 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
3273 with an Autoconf-2.5x style configure.ac.
3274
32752002-09-06 Paul Eggert <eggert@twinsun.com>
3276
3277 * doc/bison.texinfo (Conditions): Make explicit that the GPL
3278 exception applies only to yacc.c. This is a modification of a
3279 patch originally suggested by Akim Demaille.
3280
32812002-09-06 Akim Demaille <akim@epita.fr>
3282
3283 * data/c.m4 (b4_copyright): Move the GPL exception comment from
3284 here to...
3285 * data/yacc.c: here.
3286
3287 * data/lalr1.cc (struct yyltype): Don't define it, since we use
3288 LocationType.
3289 (b4_ltype): Default to yy::Location from location.hh.
3290
32912002-09-04 Jim Meyering <jim@meyering.net>
3292
3293 * data/yacc.c: Guard the declaration of yytoknum also with
3294 `#ifdef YYPRINT', so it is declared only when used.
3295
32962002-09-04 Akim Demaille <akim@epita.fr>
3297
3298 * configure.in: Rename as...
3299 * configure.ac: this.
3300 Bump to 1.49c.
3301
33022002-09-04 Akim Demaille <akim@epita.fr>
3303
3304 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
3305 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
3306 translate maintainer only messages.
3307
33082002-08-12 Paul Eggert <eggert@twinsun.com>
3309
3310 Version 1.49b.
3311
3312 * Makefile.am (SUBDIRS): Remove intl.
3313 (DISTCLEANFILES): Remove.
3314 * NEWS: Mention that GNU M4 is now required. Clarify what is
3315 meant by "larger grammars". Mention the pt_BR translation.
3316 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
3317 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
3318 Bump version from 0.11.2 to 0.11.5.
3319 (BISON_PREREQ_STAGE): Remove.
3320 (AM_GNU_GETTEXT): Use external gettext.
3321 (AC_OUTPUT): Remove intl/Makefile.
3322
3323 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
3324
3325 * data/glr.c: Include string.h, for strlen.
3326 (yyreportParseError): Use size_t for yysize.
3327 (yy_yypstack): No longer nested inside yypstates, as nested
3328 functions are not portable. Do not assume size_t is the
3329 same width as int.
3330 (yypstates): Do not assume that ptrdiff_t is the same width
3331 as int, and similarly for yyposn and YYINDEX.
3332
3333 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
3334
3335 * lib/Makefile.am (INCLUDES): Do not include from the intl
3336 directory, which has been removed.
3337 * src/Makefile.am (INCLUDES): Likewise.
3338
3339 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
3340 (bitsets_sources, additional_bitsets_sources, timevars_sources):
3341 New vars.
3342
3343 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
3344 * tests/Makefile.am (EXTRA_DIST): Likewise.
3345
3346 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
3347 Do not assume that bitset_windex is the same width as unsigned.
3348
3349 * lib/abitset.c (abitset_unused_clear): Do not assume that
3350 bitset_word is the same width as int.
3351 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
3352 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
3353 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
3354 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
3355 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
3356
3357 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
3358 portability to one's complement hosts!).
3359 * lib/ebitset.c (ebitset_op1): Likewise.
3360 * lib/lbitset.c (lbitset_op1): Likewise.
3361
3362 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
3363 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
3364 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
3365 Sync with fileutils.
3366 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
3367 lib/gettext.h: Sync with diffutils.
3368
3369 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
3370 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
3371
3372 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
3373 PROTOTYPES to check for prototypes, and "defined __STDC__" to
3374 check for void *.
3375
3376 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
3377 size_t; the old version tried to do this but casted improperly.
3378 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
3379 (bitset_test): Now returns int, not unsigned long.
3380
3381 * lib/bitset_stats.c: Include "gettext.h".
3382 (_): New macro.
3383 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
3384 name locals "index", as it generates unnecessary warnings on some
3385 hosts that have an "index" function.
3386
3387 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
3388 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
3389 they need translation.
3390 * src/LR0.c (state_list_append, new_itemsets, get_state,
3391 append_states, generate_states): Likewise.
3392 * src/assoc.c (assoc_to_string): Likewise.
3393 * src/closure.c (print_closure, set_firsts, closure): Likewise.
3394 * src/gram.c (grammar_dump): Likewise.
3395 * src/injections.c (injections_compute): Likewise.
3396 * src/lalr.c (lookaheads_print): Likewise.
3397 * src/relation.c (relation_transpose): Likewise.
3398 * src/scan-gram.l: Likewise.
3399 * src/tables.c (table_grow, pack_vector): Likewise.
3400
3401 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
3402 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
3403 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
3404 * m4/mbstate_t.m4: Sync with fileutils.
3405 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
3406
3407 * po/LINGUAS: Add pt_BR.
3408 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
3409 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
3410 lib/timevar.c.
3411 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
3412 manual recommends.
3413 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
3414
3415 * src/complain.c (strerror_r): Remove decl; not needed.
3416 (strerror): Use same pattern as ../lib/error.c.
3417
3418 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
3419
3420 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
3421
3422 * src/main.c (main): Cast result of bindtextdomain and textdomain
3423 to void, to avoid a GCC warning when --disable-nls is in effect.
3424
3425 * src/scan-gram.l: Use strings rather than escapes when possible,
3426 to minimize the number of warnings from xgettext.
3427 (handle_action_dollar, handle_action_at): Don't use isdigit,
3428 as it mishandles negative chars and it may not work as expected
3429 outside the C locale.
3430
3431 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
3432 this is a GCC extension and is not portable to other compilers.
3433
3434 * src/system.h (alloca): Use same pattern as ../lib/error.c.
3435 Do not include <ctype.h>; no longer needed.
3436 Do not include <malloc.h>; no longer needed (and generates
3437 warnings on OpenBSD 3.0).
3438
3439 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
3440 it's not portable.
3441
3442 * tests/regression.at: Do not use 'cc -c input.c -o input';
3443 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
3444
3445 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
3446 exit status as failure, not just exit status 1. Sun C exits
3447 with status 2 sometimes.
3448
3449 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
3450 Use it for the two large tests.
3451
34522002-08-02 Akim Demaille <akim@epita.fr>
3453
3454 * src/conflicts.c (conflicts_output): Don't output rules never
3455 reduced here, since anyway that computation doesn't work.
3456 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
3457 (rule_useless_p, rule_never_reduced_p): New.
3458 (grammar_rules_partial_print): Use a filter instead of a range.
3459 Display the title only if needed.
3460 (grammar_rules_print): Adjust.
3461 (grammar_rules_never_reduced_report): New.
3462 * src/tables.c (action_row): Move the computation of rules never
3463 reduced to...
3464 (token_actions): here.
3465 * src/main.c (main): Make the parser before making the report, so
3466 that rules never reduced are computed.
3467 Call grammar_rules_never_reduced_report.
3468 * src/print.c (print_results): Report rules never reduced.
3469 * tests/conflicts.at, tests/reduce.at: Adjust.
3470
34712002-08-01 Akim Demaille <akim@epita.fr>
3472
3473 Instead of attaching lookaheads and duplicating the rules being
3474 reduced by a state, attach the lookaheads to the reductions.
3475
3476 * src/state.h (state_t): Remove the `lookaheads',
3477 `lookaheads_rule' member.
3478 (reductions_t): Add a `lookaheads' member.
3479 Use a regular array for the `rules'.
3480 * src/state.c (reductions_new): Initialize the lookaheads member
3481 to 0.
3482 (state_rule_lookaheads_print): Adjust.
3483 * src/state.h, src/state.c (state_reductions_find): New.
3484 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
3485 (count_rr_conflicts): Adjust.
3486 * src/lalr.c (LArule): Remove.
3487 (add_lookback_edge): Adjust.
3488 (state_lookaheads_count): New.
3489 (states_lookaheads_initialize): Merge into...
3490 (initialize_LA): this.
3491 (lalr_free): Adjust.
3492 * src/main.c (main): Don't free nullable and derives too early: it
3493 is used by --verbose.
3494 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
3495
34962002-08-01 Akim Demaille <akim@epita.fr>
3497
3498 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
3499 `rule_number_t**'.
3500 (set_derives, free_derives): Rename as...
3501 (derives_compute, derives_free): this.
3502 Adjust all dependencies.
3503 * src/nullable.c (set_nullable, free_nullable): Rename as...
3504 (nullable_compute, nullable_free): these.
3505 (rule_list_t): Store rule_t *, not rule_number_t.
3506 * src/state.c (state_rule_lookaheads_print): Directly compare rule
3507 pointers, instead of their numbers.
3508 * src/main.c (main): Call nullable_free, and derives_free earlier,
3509 as they were lo longer used.
3510
35112002-08-01 Akim Demaille <akim@epita.fr>
3512
3513 * lib/timevar.c (get_time): Include children time.
3514 * src/lalr.h (LA, LArule): Don't export them: used with the
3515 state_t.
3516 * src/lalr.c (LA, LArule): Static.
3517 * src/lalr.h, src/lalr.c (lalr_free): New.
3518 * src/main.c (main): Call it.
3519 * src/tables.c (pack_vector): Check whether loc is >= to the
3520 table_size, not >.
3521 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
3522 (tables_generate): do it, since that's also it which allocates
3523 them.
3524 Don't free LA and LArule, main does.
3525
35262002-07-31 Akim Demaille <akim@epita.fr>
3527
3528 Separate parser tables computation and output.
3529
3530 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
3531 (conflict_list, conflict_list_cnt, table, check, table_ninf)
3532 (yydefgoto, yydefact, high): Move to...
3533 * src/tables.h, src/tables.c: here.
3534 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3535 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3536 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
3537 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
3538 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
3539 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
3540 (action_row, save_row, token_actions, save_column, default_goto)
3541 (goto_actions, sort_actions, matching_state, pack_vector)
3542 (table_ninf_remap, pack_table, prepare_actions): Move to...
3543 * src/tables.c: here.
3544 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
3545 * src/output.c (token_actions, output_base, output_conflicts)
3546 (output_check): Merge into...
3547 (prepare_actions): this.
3548 (actions_output): Rename as...
3549 (user_actions_output): this.
3550 * src/main.c (main): Call tables_generate and tables_free.
3551
35522002-07-31 Akim Demaille <akim@epita.fr>
3553
3554 Steal GCC's --time-report support.
3555
3556 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
3557 stolen/adjusted from GCC.
3558 * m4/stage.m4: Remove time related checks.
3559 * m4/timevar.m4: New.
3560 * configure.in: Adjust.
3561 * src/system.h: Adjust to using timevar.h.
3562 * src/getargs.h, src/getargs.c: Support trace_time for
3563 --trace=time.
3564 * src/main.c (stage): Remove.
3565 (main): Replace `stage' invocations with timevar calls.
3566 * src/output.c: Insert pertinent timevar calls.
3567
35682002-07-31 Akim Demaille <akim@epita.fr>
3569
3570 Let --trace have arguments.
3571
3572 * src/getargs.h (enum trace_e): New.
3573 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
3574 (long_options, short_options): --trace/-T takes an optional
3575 argument.
3576 Change all the uses of trace_flag to reflect the new flags.
3577 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
3578
3579 Strengthen `stage' portability.
3580
3581 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3582 * configure.in: Use it.
3583 Don't check for malloc.h and sys/times.h.
3584 * src/system.h: Include them when appropriate.
3585 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3586 times and struct tms are available.
3587
35882002-07-30 Akim Demaille <akim@epita.fr>
3589
3590 In verbose parse error message, don't report `error' as an
3591 expected token.
3592 * tests/actions.at (Printers and Destructors): Adjust.
3593 * tests/calc.at (Calculator $1): Adjust.
3594 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3595 error message, do not report the parser accepts the error token in
3596 that state.
3597
35982002-07-30 Akim Demaille <akim@epita.fr>
3599
3600 Normalize conflict related messages.
3601
3602 * src/complain.h, src/complain.c (warn, complain): New.
3603 * src/conflicts.c (conflicts_print): Use them.
3604 (conflict_report_yacc): New, extracted from...
3605 (conflicts_print): here.
3606 * tests/conflicts.at, tests/existing.at: Adjust.
3607
36082002-07-30 Akim Demaille <akim@epita.fr>
3609
3610 Report rules which are never reduced by the parser: those hidden
3611 by conflicts.
3612
3613 * src/LR0.c (save_reductions): Don't make the final state too
3614 different: save its reduction (accept) instead of having a state
3615 without any action (no shift or goto, no reduce).
3616 Note: the final state is now a ``regular'' state, i.e., the
3617 parsers now contain `reduce 0' as default reduction.
3618 Nevertheless, since they decide to `accept' when yystate =
3619 final_state, they still will not reduce rule 0.
3620 * src/print.c (print_actions, print_reduction): Adjust.
3621 * src/output.c (action_row): Track reduced rules.
3622 (token_actions): Report rules never reduced.
3623 * tests/conflicts.at, tests/regression.at: Adjust.
3624
36252002-07-30 Akim Demaille <akim@epita.fr>
3626
3627 `stage' was accidently included in a previous patch.
3628 Initiate its autoconfiscation.
3629
3630 * configure.in: Look for malloc.h and sys/times.h.
3631 * src/main.c (stage): Adjust.
3632 Report only when trace_flag.
3633
36342002-07-29 Akim Demaille <akim@epita.fr>
3635
3636 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3637 state_number_t.
3638 (errs_t): symbol_t*, not symbol_number_t.
3639 (reductions_t): rule_t*, not rule_number_t.
3640 (FOR_EACH_SHIFT): New.
3641 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3642 * src/print.c, src/print_graph.c: Adjust.
3643
36442002-07-29 Akim Demaille <akim@epita.fr>
3645
3646 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3647
3648 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3649 (endtoken, accept): these.
3650 * src/reader.c (reader): Set endtoken's default tag to "$end".
3651 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3652 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3653 Adjust.
3654
36552002-07-29 Akim Demaille <akim@epita.fr>
3656
3657 * src/reduce.c (reduce_grammar): When the language is empty,
3658 complain about the start symbol, not the axiom.
3659 Use its location.
3660 * tests/reduce.at (Empty Language): New.
3661
36622002-07-26 Akim Demaille <akim@epita.fr>
3663
3664 * src/reader.h, src/reader.c (gram_error): ... can't get
3665 yycontrol without making too strong assumptions on the parser
3666 itself.
3667 * src/output.c (prepare_tokens): Use the real 0th value of
3668 token_translations instead of `0'.
3669 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3670 visible here.
3671 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3672 for the time being: %locations ought to provide it to yyerror.
3673
36742002-07-25 Akim Demaille <akim@epita.fr>
3675
3676 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3677 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3678 * tests/regression.at (Web2c Actions): Adjust.
3679
36802002-07-25 Akim Demaille <akim@epita.fr>
3681
3682 Stop storing rules from 1 to nrules + 1.
3683
3684 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3685 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3686 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3687 Iterate from 0 to nrules.
3688 Use rule_number_as_item_number and item_number_as_rule_number.
3689 Adjust to `derive' now containing possibly 0.
3690 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3691 Handle the `- 1' part in rule numbers from/to item numbers.
3692 * src/conflicts.c (log_resolution): Fix the message which reversed
3693 shift and reduce.
3694 * src/output.c (action_row): Initialize default_rule to -1.
3695 (token_actions): Adjust.
3696 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3697 expected output.
3698 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3699
37002002-07-25 Akim Demaille <akim@epita.fr>
3701
3702 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3703 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3704 (b4_c_knr_arg_decl): New.
3705 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3706 yyreport_parse_error.
3707
37082002-07-25 Akim Demaille <akim@epita.fr>
3709
3710 * data/yacc.c (yyreport_parse_error): New, extracted from...
3711 (yyparse): here.
3712 (yydestruct, yysymprint): Move above yyparse.
3713 Be K&R compliant.
3714
37152002-07-25 Akim Demaille <akim@epita.fr>
3716
3717 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3718 replace...
3719 (b4_sint_type, b4_uint_type): these.
3720 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3721 * tests/regression.at (Web2c Actions): Adjust.
3722
37232002-07-25 Akim Demaille <akim@epita.fr>
3724
3725 * src/gram.h (TIEM_NUMBER_MAX): New.
3726 (item_number_of_rule_number, rule_number_of_item_number): Rename
3727 as...
3728 (rule_number_as_item_number, item_number_as_rule_number): these.
3729 Adjust dependencies.
3730 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3731 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3732 (symbol_number_to_vector_number): New.
3733 (order): Of vector_number_t* type.
3734 (base_t, BASE_MAX, BASE_MIN): New.
3735 (froms, tos, width, pos, check): Of base_t type.
3736 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3737 (actrow): Of action_number_t type.
3738 (conflrow): Of unsigned int type.
3739 (table_ninf, base_ninf): New.
3740 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3741 (muscle_insert_int_table, muscle_insert_base_table)
3742 (muscle_insert_rule_number_table): New.
3743 (prepare_tokens): Output `toknum' as int_table.
3744 (action_row): Returns a rule_number_t.
3745 Use ACTION_MIN, not SHRT_MIN.
3746 (token_actions): yydefact is rule_number_t*.
3747 (table_ninf_remap): New.
3748 (pack_table): Use it for `base' and `table'.
3749 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3750 replaced with...
3751 (YYPACT_NINF, YYTABLE_NINF): these.
3752 (yypact, yytable): Compute their types instead of hard-coded
3753 `short'.
3754 * tests/regression.at (Web2c Actions): Adjust.
3755
37562002-07-19 Akim Demaille <akim@epita.fr>
3757
3758 * src/scan-gram.l (id): Can start with an underscore.
3759
37602002-07-16 Akim Demaille <akim@epita.fr>
3761
3762 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3763 Adjust all former `associativity' dependencies.
3764 * src/symtab.c (symbol_new): Default associativity is `undef', not
3765 `right'.
3766 (symbol_check_alias_consistence): Adjust.
3767
37682002-07-09 Akim Demaille <akim@epita.fr>
3769
3770 * doc/bison.texinfo: Properly set the ``header'' part.
3771 Use @dircategory ``GNU programming tools'' as per Texinfo's
3772 documentation.
3773 Use @copying.
3774
37752002-07-09 Akim Demaille <akim@epita.fr>
3776
3777 * lib/quotearg.h: Protect against multiple inclusions.
3778 * src/location.h (location_t): Add a `file' member.
3779 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3780 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3781 `error_one_per_line' support.
3782
37832002-07-09 Akim Demaille <akim@epita.fr>
3784
3785 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3786 * src/reader.c (lineno): Remove.
3787 Adjust all dependencies.
3788 (get_merge_function): Take a location and use complain_at.
3789 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3790 * tests/regression.at (Invalid inputs, Mixing %token styles):
3791 Adjust.
3792
37932002-07-09 Akim Demaille <akim@epita.fr>
3794
3795 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3796 recovery rule, and forbid extensions when --yacc.
3797 (gram_error): Use complain_at.
3798 * src/reader.c (reader): Exit if there were parse errors.
3799
38002002-07-09 Akim Demaille <akim@epita.fr>
3801
3802 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3803 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3804 Reported by R Blake <blakers@mac.com>.
3805
38062002-07-09 Akim Demaille <akim@epita.fr>
3807
3808 * data/yacc.c: Output the copyright notive in the header.
3809
38102002-07-03 Akim Demaille <akim@epita.fr>
3811
3812 * src/output.c (froms, tos): Are state_number_t.
3813 (save_column): sp, sp1, and sp2 are state_number_t.
3814 (prepare): Rename `final' as `final_state_number', `nnts' as
3815 `nterms_number', `nrules' as `rules_number', `nstates' as
3816 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3817 unused.
3818 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3819 * data/lalr1.cc (nsym_): Remove, unused.
3820
38212002-07-03 Akim Demaille <akim@epita.fr>
3822
3823 * src/lalr.h, src/lalr.c (goto_number_t): New.
3824 * src/lalr.c (goto_list_t): New.
3825 Propagate them.
3826 * src/nullable.c (rule_list_t): New.
3827 Propagate.
3828 * src/types.h: Remove.
3829
38302002-07-03 Akim Demaille <akim@epita.fr>
3831
3832 * src/closure.c (print_fderives): Use rule_rhs_print.
3833 * src/derives.c (print_derives): Use rule_rhs_print.
3834 (rule_list_t): New, replaces `shorts'.
3835 (set_derives): Add comments.
3836 * tests/sets.at (Nullable, Firsts): Adjust.
3837
38382002-07-03 Akim Demaille <akim@epita.fr>
3839
3840 * src/output.c (prepare_actions): Free `tally' and `width'.
3841 (prepare_actions): Allocate and free `order'.
3842 * src/symtab.c (symbols_free): Free `symbols'.
3843 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3844 * src/output.c (m4_invoke): Move to...
3845 * src/scan-skel.l: here.
3846 (<<EOF>>): Close yyout, and free its name.
3847
38482002-07-03 Akim Demaille <akim@epita.fr>
3849
3850 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3851
3852 * src/LR0.c (new_state): Merge into...
3853 (state_list_append): this.
3854 (new_states): Merge into...
3855 (generate_states): here.
3856 (set_states): Don't ensure a proper `errs' state member here, do it...
3857 * src/conflicts.c (conflicts_solve): here.
3858 * src/state.h, src/state.c: Comment changes.
3859 (state_t): Rename member `shifts' as `transitions'.
3860 Adjust all dependencies.
3861 (errs_new): For consistency, also take the values as argument.
3862 (errs_dup): Remove.
3863 (state_errs_set): New.
3864 (state_reductions_set, state_transitions_set): Assert that no
3865 previous value was assigned.
3866 (state_free): New.
3867 (states_free): Use it.
3868 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3869 temporary storage: use `errs' and `nerrs' as elsewhere.
3870 (set_conflicts): Allocate and free this `errs'.
3871
38722002-07-02 Akim Demaille <akim@epita.fr>
3873
3874 * lib/libiberty.h: New.
3875 * lib: Update the bitset implementation from upstream.
3876 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3877 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3878 * src/main.c: Adjust bitset stats calls.
3879
38802002-07-01 Paul Eggert <eggert@twinsun.com>
3881
3882 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3883 char, so that negative chars don't collide with $.
3884
38852002-06-30 Akim Demaille <akim@epita.fr>
3886
3887 Have the GLR tests be `warning' checked, and fix the warnings.
3888
3889 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3890 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3891 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3892 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3893 (yyaddDeferredAction): static.
3894 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3895 (yyreportParseError): yyprefix is const.
3896 yytokenp is used only when verbose.
3897 (yy__GNUC__): Replace with __GNUC__.
3898 (yypdumpstack): yyi is size_t.
3899 (yypreference): Un-yy local variables and arguments, to avoid
3900 clashes with `yyr1'. Anyway, we are not in the user name space.
3901 (yytname_size): be an int, as is compared with ints.
3902 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3903 Use them.
3904 * tests/cxx-gram.at: Use quotation to protect $1.
3905 Use AT_COMPILE to enable warnings hunts.
3906 Prototype yylex and yyerror.
3907 `Use' argc.
3908 Include `string.h', not `strings.h'.
3909 Produce and prototype stmtMerge only when used.
3910 yylex takes a location.
3911
39122002-06-30 Akim Demaille <akim@epita.fr>
3913
3914 We spend a lot of time in quotearg, in particular when --verbose.
3915
3916 * src/symtab.c (symbol_get): Store a quoted version of the key.
3917 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3918 Adjust all callers.
3919
39202002-06-30 Akim Demaille <akim@epita.fr>
3921
3922 * src/state.h (reductions_t): Rename member `nreds' as num.
3923 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3924 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3925
39262002-06-30 Akim Demaille <akim@epita.fr>
3927
3928 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3929 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3930 (shifts_to): Rename as...
3931 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3932 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3933 (TRANSITION_IS_DISABLED, transitions_to): these.
3934
39352002-06-30 Akim Demaille <akim@epita.fr>
3936
3937 * src/print.c (print_shifts, print_gotos): Merge into...
3938 (print_transitions): this.
3939 (print_transitions, print_errs, print_reductions): Align the
3940 lookaheads columns.
3941 (print_core, print_transitions, print_errs, print_state,
3942 print_grammar): Output empty lines separator before, not after.
3943 (state_default_rule_compute): Rename as...
3944 (state_default_rule): this.
3945 * tests/conflicts.at (Defaulted Conflicted Reduction),
3946 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3947 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3948
39492002-06-30 Akim Demaille <akim@epita.fr>
3950
3951 Display items as we display rules.
3952
3953 * src/gram.h, src/gram.c (rule_lhs_print): New.
3954 * src/gram.c (grammar_rules_partial_print): Use it.
3955 * src/print.c (print_core): Likewise.
3956 * tests/conflicts.at (Defaulted Conflicted Reduction),
3957 (Unresolved SR Conflicts): Adjust.
3958 (Unresolved SR Conflicts): Adjust and rename as...
3959 (Resolved SR Conflicts): this, as was meant.
3960 * tests/regression.at (Web2c Report): Adjust.
3961
39622002-06-30 Akim Demaille <akim@epita.fr>
3963
3964 * src/print.c (state_default_rule_compute): New, extracted from...
3965 (print_reductions): here.
3966 Pessimize, but clarify the code.
3967 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3968
39692002-06-30 Akim Demaille <akim@epita.fr>
3970
3971 * src/output.c (action_row): Let default_rule be always a rule
3972 number.
3973
39742002-06-30 Akim Demaille <akim@epita.fr>
3975
3976 * src/closure.c (print_firsts, print_fderives, closure):
3977 Use BITSET_EXECUTE.
3978 * src/lalr.c (lookaheads_print): Likewise.
3979 * src/state.c (state_rule_lookaheads_print): Likewise.
3980 * src/print_graph.c (print_core): Likewise.
3981 * src/print.c (print_reductions): Likewise.
3982 * src/output.c (action_row): Likewise.
3983 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3984
39852002-06-30 Akim Demaille <akim@epita.fr>
3986
3987 * src/print_graph.c: Use report_flag.
3988
39892002-06-30 Akim Demaille <akim@epita.fr>
3990
3991 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3992 to...
3993 * src/relation.h, src/relation.c (traverse, relation_digraph)
3994 (relation_print, relation_transpose): New.
3995
39962002-06-30 Akim Demaille <akim@epita.fr>
3997
3998 * src/state.h, src/state.c (shifts_to): New.
3999 * src/lalr.c (build_relations): Use it.
4000
40012002-06-30 Akim Demaille <akim@epita.fr>
4002
4003 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4004 (item_number_of_rule_number, rule_number_of_item_number): New.
4005 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4006 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4007 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4008 Propagate their use.
4009 Much remains to be done, in particular wrt `shorts' from types.h.
4010
40112002-06-30 Akim Demaille <akim@epita.fr>
4012
4013 * src/symtab.c (symbol_new): Initialize the `printer' member.
4014
40152002-06-30 Akim Demaille <akim@epita.fr>
4016
4017 * src/LR0.c (save_reductions): Remove, replaced by...
4018 * src/state.h, src/state.c (state_reductions_set): New.
4019 (reductions, errs): Rename as...
4020 (reductions_t, errs_t): these.
4021 Adjust all dependencies.
4022
40232002-06-30 Akim Demaille <akim@epita.fr>
4024
4025 * src/LR0.c (state_list_t, state_list_append): New.
4026 (first_state, last_state): Now symbol_list_t.
4027 (this_state): Remove.
4028 (new_itemsets, append_states, save_reductions): Take a state_t as
4029 argument.
4030 (set_states, generate_states): Adjust.
4031 (save_shifts): Remove, replaced by...
4032 * src/state.h, src/state.c (state_shifts_set): New.
4033 (shifts): Rename as...
4034 (shifts_t): this.
4035 Adjust all dependencies.
4036 * src/state.h (state_t): Remove the `next' member.
4037
40382002-06-30 Akim Demaille <akim@epita.fr>
4039
4040 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
4041 escaped in slot 0.
4042
40432002-06-30 Akim Demaille <akim@epita.fr>
4044
4045 Use hash.h for the state hash table.
4046
4047 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
4048 (allocate_storage): Use state_hash_new.
4049 (free_storage): Use state_hash_free.
4050 (new_state, get_state): Adjust.
4051 * src/lalr.h, src/lalr.c (states): Move to...
4052 * src/states.h (state_t): Remove the `link' member, no longer
4053 used.
4054 * src/states.h, src/states.c: here.
4055 (state_hash_new, state_hash_free, state_hash_lookup)
4056 (state_hash_insert, states_free): New.
4057 * src/states.c (state_table, state_compare, state_hash): New.
4058 * src/output.c (output_actions): Do not free states now, since we
4059 still need to know the final_state number in `prepare', called
4060 afterwards. Do it...
4061 * src/main.c (main): here: call states_free after `output'.
4062
40632002-06-30 Akim Demaille <akim@epita.fr>
4064
4065 * src/state.h, src/state.c (state_new): New, extracted from...
4066 * src/LR0.c (new_state): here.
4067 * src/state.h (STATE_ALLOC): Move to...
4068 * src/state.c: here.
4069 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
4070 * src/state.h, src/state.c: here.
4071
40722002-06-30 Akim Demaille <akim@epita.fr>
4073
4074 * src/reader.c (gensym): Rename as...
4075 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
4076 (getsym): Rename as...
4077 (symbol_get): this.
4078
40792002-06-30 Akim Demaille <akim@epita.fr>
4080
4081 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
4082 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
4083 * src/output.c, src/print.c, src/print_graph.c: Propagate.
4084 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
4085
40862002-06-30 Akim Demaille <akim@epita.fr>
4087
4088 Make the test suite pass with warnings checked.
4089
4090 * tests/actions.at (Printers and Destructors): Improve.
4091 Avoid unsigned vs. signed issues.
4092 * tests/calc.at: Don't exercise the scanner here, do it...
4093 * tests/input.at (Torturing the Scanner): here.
4094
40952002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4096
4097 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
4098 reorganize first lines parallel to yacc.c.
4099
41002002-06-28 Akim Demaille <akim@epita.fr>
4101
4102 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
4103 (b4_token_enum, b4_token_defines): New, factored from...
4104 * data/lalr1.cc, data/yacc.c, glr.c: here.
4105
41062002-06-28 Akim Demaille <akim@epita.fr>
4107
4108 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
4109 unused variables.
4110 * src/output.c (merger_output): static.
4111
41122002-06-28 Akim Demaille <akim@epita.fr>
4113
4114 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
4115 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
4116 pacify GCC.
4117 * src/output.c (save_row): Initialize all the variables to pacify GCC.
4118
41192002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4120
4121 Accumulated changelog for new GLR parsing features.
4122
4123 * src/conflicts.c (count_total_conflicts): Change name to
4124 conflicts_total_count.
4125 * src/conflicts.h: Ditto.
4126 * src/output.c (token_actions): Use the new name.
4127 (output_conflicts): Change conflp => conflict_list_heads, and
4128 confl => conflict_list for better readability.
4129 * data/glr.c: Use the new names.
4130 * NEWS: Add self to GLR announcement.
4131
4132 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
4133
4134 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
4135 Akim Demaille.
4136
4137 * data/bison.glr: Change name to glr.c
4138 * data/glr.c: Renamed from bison.glr.
4139 * data/Makefile.am: Add glr.c
4140
4141 * src/getargs.c:
4142
4143 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
4144 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
4145
4146 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4147
4148 * data/bison.glr: Be sure to restore the
4149 current #line when returning to the skeleton contents after having
4150 exposed the input file's #line.
4151
4152 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4153
4154 * data/bison.glr: Bring up to date with changes to bison.simple.
4155
4156 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4157
4158 * data/bison.glr: Correct definitions that use b4_prefix.
4159 Various reformatting.
4160 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
4161 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
4162 yytokenp argument; now part of stack.
4163 (yychar): Define to behave as documented.
4164 (yyclearin): Ditto.
4165
4166 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4167
4168 * src/reader.h: Add declaration for free_merger_functions.
4169
4170 * src/reader.c (merge_functions): New variable.
4171 (get_merge_function): New function.
4172 (free_merger_functions): New function.
4173 (readgram): Check for %prec that is not followed by a symbol.
4174 Handle %dprec and %merge declarations.
4175 (packgram): Initialize dprec and merger fields in rules array.
4176
4177 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
4178 conflict_list_cnt, conflict_list_free): New variables.
4179 (table_grow): Also grow conflict_table.
4180 (prepare_rules): Output dprec and merger tables.
4181 (conflict_row): New function.
4182 (action_row): Output conflict lists for GLR parser. Don't use
4183 default reduction in conflicted states for GLR parser so that there
4184 are spaces for the conflict lists.
4185 (save_row): Also save conflict information.
4186 (token_actions): Allocate conflict list.
4187 (merger_output): New function.
4188 (pack_vector): Pack conflict table, too.
4189 (output_conflicts): New function to output yyconflp and yyconfl.
4190 (output_check): Allocate conflict_tos.
4191 (output_actions): Output conflict tables, also.
4192 (output_skeleton): Output b4_mergers definition.
4193 (prepare): Output b4_max_rhs_length definition.
4194 Use 'bison.glr' as default skeleton for GLR parsers.
4195
4196 * src/gram.c (glr_parser): New flag.
4197 (grammar_free): Call free_merger_functions.
4198
4199 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
4200 all pairs of conflicting reductions, rather than just all tokens
4201 causing conflicts. Needed to size conflict tables.
4202 (conflicts_output): Modify call to count_rr_conflicts for new
4203 interface.
4204 (conflicts_print): Ditto.
4205 (count_total_conflicts): New function.
4206
4207 * src/reader.h (merger_list): New type.
4208 (merge_functions): New variable.
4209
4210 * src/lex.h (tok_dprec, tok_merge): New token types.
4211
4212 * src/gram.h (rule_s): Add dprec and merger fields.
4213 (glr_parser): New flag.
4214
4215 * src/conflicts.h (count_total_conflicts): New function.
4216
4217 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
4218
4219 * doc/bison.texinfo (Generalized LR Parsing): New section.
4220 (GLR Parsers): New section.
4221 (Language and Grammar): Mention GLR parsing.
4222 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
4223 Correct typo ("tge" -> "the").
4224
4225 * data/bison.glr: New skeleton for GLR parsing.
4226
4227 * tests/cxx-gram.at: New tests for GLR parsing.
4228
4229 * tests/testsuite.at: Include cxx-gram.at.
4230
4231 * tests/Makefile.am: Add cxx-gram.at.
4232
4233 * src/parse-gram.y:
4234
4235 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
4236
4237 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
4238
42392002-06-27 Akim Demaille <akim@epita.fr>
4240
4241 * src/options.h, src/options.c: Remove.
4242 * src/getargs.c (short_options, long_options): New.
4243
42442002-06-27 Akim Demaille <akim@epita.fr>
4245
4246 * data/bison.simple, data/bison.c++: Rename as...
4247 * data/yacc.c, data/lalr1.cc: these.
4248 * doc/bison.texinfo (Environment Variables): Remove.
4249
42502002-06-25 Raja R Harinath <harinath@cs.umn.edu>
4251
4252 * src/getargs.c (report_argmatch): Initialize strtok().
4253
42542002-06-20 Akim Demaille <akim@epita.fr>
4255
4256 * data/bison.simple (b4_symbol_actions): New, replaces...
4257 (b4_symbol_destructor, b4_symbol_printer): these.
4258 (yysymprint): Be sure to call YYPRINT only for tokens, and using
4259 user token numbers.
4260
42612002-06-20 Akim Demaille <akim@epita.fr>
4262
4263 * data/bison.simple (yydestructor): Rename as...
4264 (yydestruct): this.
4265
42662002-06-20 Akim Demaille <akim@epita.fr>
4267
4268 * src/symtab.h, src/symtab.c (symbol_type_set)
4269 (symbol_destructor_set, symbol_precedence_set): The location is
4270 the last argument.
4271 Adjust all callers.
4272
42732002-06-20 Akim Demaille <akim@epita.fr>
4274
4275 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
4276 internals.
4277 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
4278 Takes a location.
4279 * src/symtab.h, src/symtab.c (symbol_class_set)
4280 (symbol_user_token_number_set): Likewise.
4281 Adjust all callers.
4282 Promote complain_at.
4283 * tests/input.at (Type Clashes): Adjust.
4284
42852002-06-20 Akim Demaille <akim@epita.fr>
4286
4287 * data/bison.simple (YYLEX): Fix the declaration when
4288 %pure-parser.
4289
42902002-06-20 Akim Demaille <akim@epita.fr>
4291
4292 * data/bison.simple (yysymprint): Don't print the token number,
4293 just its name.
4294 * tests/actions.at (Destructors): Rename as...
4295 (Printers and Destructors): this.
4296 Also exercise %printer.
4297
42982002-06-20 Akim Demaille <akim@epita.fr>
4299
4300 * data/bison.simple (YYDSYMPRINT): New.
4301 Use it to remove many of the #if YYDEBUG/if (yydebug).
4302
43032002-06-20 Akim Demaille <akim@epita.fr>
4304
4305 * src/symtab.h, src/symtab.c (symbol_t): printer and
4306 printer_location are new members.
4307 (symbol_printer_set): New.
4308 * src/parse-gram.y (PERCENT_PRINTER): New token.
4309 Handle its associated rule.
4310 * src/scan-gram.l: Adjust.
4311 (handle_destructor_at, handle_destructor_dollar): Rename as...
4312 (handle_symbol_code_at, handle_symbol_code_dollar): these.
4313 * src/output.c (symbol_printers_output): New.
4314 (output_skeleton): Call it.
4315 * data/bison.simple (yysymprint): New. Cannot be named yyprint
4316 since there are already many grammar files with a user `yyprint'.
4317 Replace the calls to YYPRINT to calls to yysymprint.
4318 * tests/calc.at: Adjust.
4319 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
4320 taking advantage of parser very internal details (stack size!).
4321
43222002-06-20 Akim Demaille <akim@epita.fr>
4323
4324 * src/scan-gram.l: Complete the scanner with the missing patterns
4325 to pacify Flex.
4326 Use `quote' and `symbol_tag_get' where appropriate.
4327
43282002-06-19 Akim Demaille <akim@epita.fr>
4329
4330 * tests/actions.at (Destructors): Augment to test locations.
4331 * data/bison.simple (yydestructor): Pass it the current location
4332 if locations are enabled.
4333 Prototype only when __STDC__ or C++.
4334 Change the argument names to move into the yy name space: there is
4335 user code here.
4336
43372002-06-19 Akim Demaille <akim@epita.fr>
4338
4339 * data/bison.simple (b4_pure_if): New.
4340 Use it instead of #ifdef YYPURE.
4341
43422002-06-19 Akim Demaille <akim@epita.fr>
4343
4344 * data/bison.simple (b4_location_if): New.
4345 Use it instead of #ifdef YYLSP_NEEDED.
4346
43472002-06-19 Akim Demaille <akim@epita.fr>
4348
4349 Prepare @$ in %destructor, but currently don't bind it in the
4350 skeleton, as %location use is not cleaned up yet.
4351
4352 * src/scan-gram.l (handle_dollar, handle_destructor_at)
4353 (handle_action_at): New.
4354 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
4355 a braced_code_t and a location as additional arguments.
4356 (handle_destructor_dollar): Instead of requiring `b4_eval', just
4357 unquote one when outputting `b4_dollar_dollar'.
4358 Adjust callers.
4359 * data/bison.simple (b4_eval): Remove.
4360 (b4_symbol_destructor): Adjust.
4361 * tests/input.at (Invalid @n): Adjust.
4362
43632002-06-19 Zack Weinberg <zack@codesourcery.com>
4364
4365 * doc/bison.texinfo: Document ability to have multiple
4366 prologue sections.
4367
43682002-06-18 Akim Demaille <akim@epita.fr>
4369
4370 * src/files.c (compute_base_names): When computing the output file
4371 names from the input file name, strip the directory part.
4372
43732002-06-18 Akim Demaille <akim@epita.fr>
4374
4375 * data/bison.simple.new: Comment changes.
4376 Reported by Andreas Schwab.
4377
43782002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
4379
4380 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
4381 there are no `label `yyoverflowlab' defined but not used' warnings
4382 when yyoverflow is defined.
4383
43842002-06-18 Akim Demaille <akim@epita.fr>
4385
4386 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
4387 new member.
4388 (symbol_destructor_set): Adjust.
4389 * src/output.c (symbol_destructors_output): Output the destructor
4390 locations.
4391 Output the symbol name.
4392 * data/bison.simple (b4_symbol_destructor): Adjust.
4393
43942002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
4395 and Akim Demaille <akim@epita.fr>
4396
4397 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
4398 what's left on the stack when the error recovery hits EOF.
4399 * tests/actions.at (Destructors): Complete to exercise this case.
4400
44012002-06-17 Akim Demaille <akim@epita.fr>
4402
4403 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
4404 arguments is really empty, not only equal to `[]'.
4405 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
4406 member.
4407 (symbol_destructor_set): New.
4408 * src/output.c (symbol_destructors_output): New.
4409 * src/reader.h (brace_code_t, current_braced_code): New.
4410 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
4411 (handle_dollar): Rename as...
4412 (handle_action_dollar): this.
4413 (handle_destructor_dollar): New.
4414 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
4415 (grammar_declaration): Use it.
4416 * data/bison.simple (yystos): Is always defined.
4417 (yydestructor): New.
4418 * tests/actions.at (Destructors): New.
4419 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
4420
44212002-06-17 Akim Demaille <akim@epita.fr>
4422
4423 * src/symlist.h, src/symlist.c (symbol_list_length): New.
4424 * src/scan-gram.l (handle_dollar, handle_at): Compute the
4425 rule_length only when needed.
4426 * src/output.c (actions_output, token_definitions_output): Output
4427 the full M4 block.
4428 * src/symtab.c: Don't access directly to the symbol tag, use
4429 symbol_tag_get.
4430 * src/parse-gram.y: Use symbol_list_free.
4431
44322002-06-17 Akim Demaille <akim@epita.fr>
4433
4434 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
4435 (symbol_list_prepend, get_type_name): Move to...
4436 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
4437 (symbol_list_prepend, symbol_list_n_type_name_get): here.
4438 Adjust all callers.
4439 (symbol_list_free): New.
4440 * src/scan-gram.l (handle_dollar): Takes a location.
4441 * tests/input.at (Invalid $n): Adjust.
4442
44432002-06-17 Akim Demaille <akim@epita.fr>
4444
4445 * src/reader.h, src/reader.c (symbol_list_new): Export it.
4446 (symbol_list_prepend): New.
4447 * src/parse-gram.y (%union): `list' is a new member.
4448 (symbols.1): New, replaces...
4449 (terms_to_prec.1, nterms_to_type.1): these.
4450 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
4451 Take a location as additional argument.
4452 Adjust all callers.
4453
44542002-06-15 Akim Demaille <akim@epita.fr>
4455
4456 * src/parse-gram.y: Move %token in the declaration section so that
4457 we don't depend upon CVS Bison.
4458
44592002-06-15 Akim Demaille <akim@epita.fr>
4460
4461 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
4462 * src/print.c (print_core): Use it.
4463
44642002-06-15 Akim Demaille <akim@epita.fr>
4465
4466 * src/conflicts.c (log_resolution): Accept the rule involved in
4467 the sr conflicts instead of the lookahead number that points to
4468 that rule.
4469 (flush_reduce): Accept the current lookahead vector as argument,
4470 instead of the index in LA.
4471 (resolve_sr_conflict): Accept the current number of lookahead
4472 bitset to consider for the STATE, instead of the index in LA.
4473 (set_conflicts): Adjust.
4474 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
4475
44762002-06-15 Akim Demaille <akim@epita.fr>
4477
4478 * src/state.h (state_t): Replace the `lookaheadsp' member, a
4479 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
4480 Adjust all dependencies.
4481 * src/lalr.c (initialize_lookaheads): Split into...
4482 (states_lookaheads_count, states_lookaheads_initialize): these.
4483 (lalr): Adjust.
4484
44852002-06-15 Akim Demaille <akim@epita.fr>
4486
4487 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
4488 out of...
4489 (grammar_rules_print): here.
4490 * src/reduce.c (reduce_output): Use it.
4491 * tests/reduce.at (Useless Rules, Reduced Automaton)
4492 (Underivable Rules): Adjust.
4493
44942002-06-15 Akim Demaille <akim@epita.fr>
4495
4496 Copy BYacc's nice way to report the grammar.
4497
4498 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
4499 New.
4500 Don't print the rules' location, it is confusing and useless.
4501 (rule_print): Use grammar_rhs_print.
4502 * src/print.c (print_grammar): Use grammar_rules_print.
4503
45042002-06-15 Akim Demaille <akim@epita.fr>
4505
4506 Complete and rationalize `useless thing' warnings.
4507
4508 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
4509 (symbol_tag_print): New.
4510 Use them everywhere in place of accessing directly the tag member.
4511 * src/gram.h, src/gram.c (rule_print): New.
4512 Use it where a rule used to be printed `by hand'.
4513 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
4514 (reduce_grammar_tables): Report the useless rules.
4515 (reduce_print): Useless things are a warning, not an error.
4516 Report it as such.
4517 * tests/reduce.at (Useless Nonterminals, Useless Rules):
4518 (Reduced Automaton, Underivable Rules): Adjust.
4519 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
4520 * tests/conflicts.at (Unresolved SR Conflicts)
4521 (Solved SR Conflicts): Adjust.
4522
45232002-06-15 Akim Demaille <akim@epita.fr>
4524
4525 Let symbols have a location.
4526
4527 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
4528 (getsym): Adjust.
4529 Adjust all callers.
4530 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
4531 Use location_t, not int.
4532 * src/symtab.c (symbol_check_defined): Take advantage of the
4533 location.
4534 * tests/regression.at (Invalid inputs): Adjust.
4535
45362002-06-15 Akim Demaille <akim@epita.fr>
4537
4538 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
4539 (input): Don't try to initialize yylloc here, do it in the
4540 scanner.
4541 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
4542 * src/gram.h (rule_t): Change line and action_line into location
4543 and action_location, of location_t type.
4544 Adjust all dependencies.
4545 * src/location.h, src/location.c (empty_location): New.
4546 * src/reader.h, src/reader.c (grammar_start_symbol_set)
4547 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
4548 (grammar_current_rule_symbol_append)
4549 (grammar_current_rule_action_append): Expect a location as argument.
4550 * src/reader.c (grammar_midrule_action): Adjust to attach an
4551 action's location as dummy symbol location.
4552 * src/symtab.h, src/symtab.c (startsymbol_location): New.
4553 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
4554 the line numbers.
4555
45562002-06-14 Akim Demaille <akim@epita.fr>
4557
4558 Grammar declarations may be found in the grammar section.
4559
4560 * src/parse-gram.y (rules_or_grammar_declaration): New.
4561 (declarations): Each declaration may end with a semicolon, not
4562 just...
4563 (grammar_declaration): `"%union"'.
4564 (grammar): Branch to rules_or_grammar_declaration.
4565
45662002-06-14 Akim Demaille <akim@epita.fr>
4567
4568 * src/main.c (main): Invoke scanner_free.
4569
45702002-06-14 Akim Demaille <akim@epita.fr>
4571
4572 * src/output.c (m4_invoke): Extracted from...
4573 (output_skeleton): here.
4574 Free tempfile.
4575
45762002-06-14 Akim Demaille <akim@epita.fr>
4577
4578 * src/parse-gram.y (directives, directive, gram)
4579 (grammar_directives, precedence_directives, precedence_directive):
4580 Rename as...
4581 (declarations, declaration, grammar, grammar_declaration)
4582 (precedence_declaration, precedence_declarator): these.
4583 (symbol_declaration): New.
4584
45852002-06-14 Akim Demaille <akim@epita.fr>
4586
4587 * src/files.c (action_obstack): Remove, unused.
4588 (output_obstack): Remove it, and all its dependencies, as it is no
4589 longer needed.
4590 * src/reader.c (epilogue_set): Build the epilogue in the
4591 muscle_obstack.
4592 * src/output.h, src/output.c (muscle_obstack): Move to...
4593 * src/muscle_tab.h, src/muscle_tab.h: here.
4594 (muscle_init): Initialize muscle_obstack.
4595 (muscle_free): New.
4596 * src/main.c (main): Call it.
4597
45982002-06-14 Akim Demaille <akim@epita.fr>
4599
4600 * src/location.h: New, extracted from...
4601 * src/reader.h: here.
4602 * src/Makefile.am (noinst_HEADERS): Merge into
4603 (bison_SOURCES): this.
4604 Add location.h.
4605 * src/parse-gram.y: Use location_t instead of Bison's.
4606 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4607 Use location_t instead of ints.
4608
46092002-06-14 Akim Demaille <akim@epita.fr>
4610
4611 * data/bison.simple, data/bison.c++: Be sure to restore the
4612 current #line when returning to the skeleton contents after having
4613 exposed the input file's #line.
4614
46152002-06-12 Akim Demaille <akim@epita.fr>
4616
4617 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4618 eager.
4619 * tests/actions.at (Exotic Dollars): New.
4620
46212002-06-12 Akim Demaille <akim@epita.fr>
4622
4623 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4624 ['"/] too eagerly.
4625 * tests/input.at (Torturing the Scanner): New.
4626
46272002-06-11 Akim Demaille <akim@epita.fr>
4628
4629 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4630 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4631 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4632 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4633 * src/reader.c (reader): Use it.
4634
46352002-06-11 Akim Demaille <akim@epita.fr>
4636
4637 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4638 Adjust all callers.
4639 (scanner_last_string_free): New.
4640
46412002-06-11 Akim Demaille <akim@epita.fr>
4642
4643 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4644 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4645 (last_string, YY_OBS_FREE): New.
4646 Use them when returning an ID.
4647
46482002-06-11 Akim Demaille <akim@epita.fr>
4649
4650 Have Bison grammars parsed by a Bison grammar.
4651
4652 * src/reader.c, src/reader.h (prologue_augment): New.
4653 * src/reader.c (copy_definition): Remove.
4654
4655 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4656 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4657 (grammar_current_rule_prec_set, grammar_current_rule_check)
4658 (grammar_current_rule_symbol_append)
4659 (grammar_current_rule_action_append): Export.
4660 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4661 (symbol_list_action_append): Remove.
4662 Hook the routines from reader.
4663 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4664 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4665
4666 * src/reader.c (read_declarations): Remove, unused.
4667
4668 * src/parse-gram.y: Handle the epilogue.
4669 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4670 (grammar_start_symbol_set): this.
4671 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4672 * src/reader.c (readgram): Remove, unused.
4673 (reader): Adjust to insert eoftoken and axiom where appropriate.
4674
4675 * src/reader.c (copy_dollar): Replace with...
4676 * src/scan-gram.h (handle_dollar): this.
4677 * src/parse-gram.y: Remove `%thong'.
4678
4679 * src/reader.c (copy_at): Replace with...
4680 * src/scan-gram.h (handle_at): this.
4681
4682 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4683 New.
4684
4685 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4686 time being.
4687
4688 * src/reader.h, src/reader.c (grammar_rule_end): New.
4689
4690 * src/parse.y (current_type, current_class): New.
4691 Implement `%nterm', `%token' support.
4692 Merge `%term' into `%token'.
4693 (string_as_id): New.
4694 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4695 type name.
4696
4697 * src/parse-gram.y: Be sure to handle properly the beginning of
4698 rules.
4699
4700 * src/parse-gram.y: Handle %type.
4701 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4702
4703 * src/parse-gram.y: More directives support.
4704 * src/options.c: No longer handle source directives.
4705
4706 * src/parse-gram.y: Fix %output.
4707
4708 * src/parse-gram.y: Handle %union.
4709 Use the prologue locations.
4710 * src/reader.c (parse_union_decl): Remove.
4711
4712 * src/reader.h, src/reader.c (epilogue_set): New.
4713 * src/parse-gram.y: Use it.
4714
4715 * data/bison.simple, data/bison.c++: b4_stype is now either not
4716 defined, then default to int, or to the contents of %union,
4717 without `union' itself.
4718 Adjust.
4719 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4720
4721 * src/output.c (actions_output): Don't output braces, as they are
4722 already handled by the scanner.
4723
4724 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4725 characters to themselves.
4726
4727 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4728 that the epilogue has a proper #line.
4729
4730 * src/parse-gram.y: Handle precedence/associativity.
4731
4732 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4733 a terminal.
4734 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4735 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4736 at all to define terminals that cannot be emitted.
4737
4738 * src/scan-gram.l: Escape M4 characters.
4739
4740 * src/scan-gram.l: Working properly with escapes in user
4741 strings/characters.
4742
4743 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4744 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4745 grammar.
4746 Use more modest sizes, as for the time being the parser does not
4747 release memory, and therefore the process swallows a huge amount
4748 of memory.
4749
4750 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4751 stricter %token grammar.
4752
4753 * src/symtab.h (associativity): Add `undef_assoc'.
4754 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4755 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4756
4757 * tests/regression.at (Invalid %directive): Remove, as it is now
4758 meaningless.
4759 (Invalid inputs): Adjust to the new error messages.
4760 (Token definitions): The new grammar doesn't allow too many
4761 eccentricities.
4762
4763 * src/lex.h, src/lex.c: Remove.
4764 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4765 (copy_character, copy_string2, copy_string, copy_identifier)
4766 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4767 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4768 (parse_action): Remove.
4769 * po/POTFILES.in: Adjust.
4770
47712002-06-11 Akim Demaille <akim@epita.fr>
4772
4773 * src/reader.c (parse_action): Don't store directly into the
4774 rule's action member: return the action as a string.
4775 Don't require `rule_length' as an argument: compute it.
4776 (grammar_current_rule_symbol_append)
4777 (grammar_current_rule_action_append): New, eved out from
4778 (readgram): here.
4779 Remove `action_flag', `rulelength', unused now.
4780
47812002-06-11 Akim Demaille <akim@epita.fr>
4782
4783 * src/reader.c (grammar_current_rule_prec_set).
4784 (grammar_current_rule_check): New, eved out from...
4785 (readgram): here.
4786 Remove `xaction', `first_rhs': useless.
4787 * tests/input.at (Type clashes): New.
4788 * tests/existing.at (GNU Cim Grammar): Adjust.
4789
47902002-06-11 Akim Demaille <akim@epita.fr>
4791
4792 * src/reader.c (grammar_midrule_action): New, Eved out from
4793 (readgram): here.
4794
47952002-06-11 Akim Demaille <akim@epita.fr>
4796
4797 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4798 New.
4799 (readgram): Use them as replacement of inlined code, crule and
4800 crule1.
4801
48022002-06-11 Akim Demaille <akim@epita.fr>
4803
4804 * src/reader.c (grammar_end, grammar_symbol_append): New.
4805 (readgram): Use them.
4806 Make the use of `p' as local as possible.
4807
48082002-06-10 Akim Demaille <akim@epita.fr>
4809
4810 GCJ's parser requires the tokens to be defined before the prologue.
4811
4812 * data/bison.simple: Output the token definition before the user's
4813 prologue.
4814 * tests/regression.at (Braces parsing, Duplicate string)
4815 (Mixing %token styles): Check the output from bison.
4816 (Early token definitions): New.
4817
48182002-06-10 Akim Demaille <akim@epita.fr>
4819
4820 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4821 assigning twice the same user number to a token, so that we can
4822 use it in...
4823 * src/lex.c (lex): here.
4824 Also use `symbol_class_set' instead of hand written code.
4825 * src/reader.c (parse_assoc_decl): Likewise.
4826
48272002-06-10 Akim Demaille <akim@epita.fr>
4828
4829 * src/symtab.c, src/symtab.c (symbol_class_set)
4830 (symbol_user_token_number_set): New.
4831 * src/reader.c (parse_token_decl): Use them.
4832 Use a switch instead of ifs.
4833 Use a single argument.
4834
48352002-06-10 Akim Demaille <akim@epita.fr>
4836
4837 Remove `%thong' support as it is undocumented, unused, duplicates
4838 `%token's job, and creates useless e-mail traffic with people who
4839 want to know what it is, why it is undocumented, unused, and
4840 duplicates `%token's job.
4841
4842 * src/reader.c (parse_thong_decl): Remove.
4843 * src/options.c (option_table): Remove "thong".
4844 * src/lex.h (tok_thong): Remove.
4845
48462002-06-10 Akim Demaille <akim@epita.fr>
4847
4848 * src/symtab.c, src/symtab.c (symbol_type_set)
4849 (symbol_precedence_set): New.
4850 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4851 (value_components_used): Remove, unused.
4852
48532002-06-09 Akim Demaille <akim@epita.fr>
4854
4855 Move symbols handling code out of the reader.
4856
4857 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4858 (axiom): Move to...
4859 * src/symtab.h, src/symtab.c: here.
4860
4861 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4862 * src/reader.c (startval): Rename as...
4863 * src/symtab.h, src/symtab.c (startsymbol): this.
4864 * src/reader.c: Adjust.
4865
4866 * src/reader.c (symbol_check_defined, symbol_make_alias)
4867 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4868 (token_translations_init)
4869 Move to...
4870 * src/symtab.c: here.
4871 * src/reader.c (packsymbols): Move to...
4872 * src/symtab.h, src/symtab.c (symbols_pack): here.
4873 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4874 argument.
4875
48762002-06-03 Akim Demaille <akim@epita.fr>
4877
4878 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4879 then statements.
4880
48812002-06-03 Akim Demaille <akim@epita.fr>
4882
4883 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4884 structs with non literals.
4885 * src/scan-skel.l: never-interactive.
4886 * src/conflicts.c (enum conflict_resolution_e): No trailing
4887 comma.
4888 * src/getargs.c (usage): Split long literal strings.
4889 Reported by Hans Aberg.
4890
48912002-05-28 Akim Demaille <akim@epita.fr>
4892
4893 * data/bison.c++: Use C++ ostreams.
4894 (cdebug_): New member.
4895
48962002-05-28 Akim Demaille <akim@epita.fr>
4897
4898 * src/output.c (output_skeleton): Be sure to allocate enough room
4899 for `/' _and_ for `\0' in full_skeleton.
4900
49012002-05-28 Akim Demaille <akim@epita.fr>
4902
4903 * data/bison.c++: Catch up with bison.simple:
4904 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4905 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4906 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4907 and popping traces.
4908
49092002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4910
4911 * src/output.c (output_skeleton): Put an explicit path in front of
4912 the skeleton file name, rather than relying on the -I directory,
4913 to partially alleviate effects of having a skeleton file lying around
4914 in the current directory.
4915
49162002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4917
4918 * src/conflicts.c (log_resolution): Correct typo:
4919 obstack_printf should be obstack_fgrow1.
4920
49212002-05-26 Akim Demaille <akim@epita.fr>
4922
4923 * src/state.h (state_t): `solved_conflicts' is a new member.
4924 * src/LR0.c (new_state): Set it to 0.
4925 * src/conflicts.h, src/conflicts.c (print_conflicts)
4926 (free_conflicts, solve_conflicts): Rename as...
4927 (conflicts_print, conflicts_free, conflicts_solve): these.
4928 Adjust callers.
4929 * src/conflicts.c (enum conflict_resolution_e)
4930 (solved_conflicts_obstack): New, used by...
4931 (log_resolution): this.
4932 Adjust to attach the conflict resolution to each state.
4933 Complete the description with the precedence/associativity
4934 information.
4935 (resolve_sr_conflict): Adjust.
4936 * src/print.c (print_state): Output its solved_conflicts.
4937 * tests/conflicts.at (Unresolved SR Conflicts)
4938 (Solved SR Conflicts): Exercise --report=all.
4939
49402002-05-26 Akim Demaille <akim@epita.fr>
4941
4942 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4943 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4944 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4945 (token_number_t, item_number_as_token_number)
4946 (token_number_as_item_number, muscle_insert_token_number_table):
4947 Rename as...
4948 (symbol_number_t, item_number_as_symbol_number)
4949 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4950 these, since it is more appropriate.
4951
49522002-05-26 Akim Demaille <akim@epita.fr>
4953
4954 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4955 `Error:' lines.
4956 * data/bison.simple (yystos) [YYDEBUG]: New.
4957 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4958 error recovery.
4959 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4960
49612002-05-25 Akim Demaille <akim@epita.fr>
4962
4963 * doc/bison.texinfo (Debugging): Split into...
4964 (Tracing): this new section, its former contents, and...
4965 (Understanding): this new section.
4966 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4967 by...
4968 (report_flag): this.
4969 Adjust all dependencies.
4970 (report_args, report_types, report_argmatch): New.
4971 (usage, getargs): Report/support -r, --report.
4972 * src/options.h
4973 (struct option_table_struct): Rename as..,
4974 (struct option_table_s): this.
4975 Rename the `set_flag' member to `flag' to match with getopt_long's
4976 struct.
4977 * src/options.c (option_table): Split verbose into an entry for
4978 %verbose, and another for --verbose.
4979 Support --report/-r, so remove -r from the obsolete --raw.
4980 * src/print.c: Attach full item sets and lookaheads reports to
4981 report_flag instead of trace_flag.
4982 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4983
49842002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4985 and Paul Eggert <eggert@twinsun.com>
4986
4987 * data/bison.simple (yyparse): Correct error handling to conform to
4988 POSIX and yacc. Specifically, after syntax error is discovered,
4989 do not reduce further before shifting the error token.
4990 Clean up the code a bit by removing the labels yyerrdefault,
4991 yyerrhandle, yyerrpop.
4992 * NEWS: Document the above.
4993
49942002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4995
4996 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4997 type; it isn't always big enough, since it doesn't necessarily
4998 include non-terminals.
4999 (yytranslate): Expand definition of yy_token_number_type, so that
5000 the latter can be removed.
5001 (yy_token_number_type): Remove, only one use.
5002 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5003 don't use TokenNumberType as element type.
5004
5005 * tests/regression.at: Modify expected output to agree with change
5006 to yyr1 and yytranslate.
5007
50082002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5009
5010 * src/reader.c (parse_action): Use copy_character instead of
5011 obstack_1grow.
5012
50132002-05-13 Akim Demaille <akim@epita.fr>
5014
5015 * tests/regression.at (Token definitions): Prototype yylex and
5016 yyerror.
5017
50182002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5019
5020 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
5021 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
5022 32-bit arithmetic.
5023 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
5024
50252002-05-07 Akim Demaille <akim@epita.fr>
5026
5027 * tests/synclines.at: Be sure to prototype yylex and yyerror to
5028 avoid GCC warnings.
5029
50302002-05-07 Akim Demaille <akim@epita.fr>
5031
5032 Kill GCC warnings.
5033
5034 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
5035 over the RHS of each rule.
5036 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
5037 * src/state.h (state_t): Member `nitems' is unsigned short.
5038 * src/LR0.c (get_state): Adjust.
5039 * src/reader.c (packgram): Likewise.
5040 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
5041 `Type'.
5042 (muscle_insert_int_table): Remove, unused.
5043 (prepare_rules): Remove `max'.
5044
50452002-05-06 Akim Demaille <akim@epita.fr>
5046
5047 * src/closure.c (print_firsts): Display of the symbol tags.
5048 (bitmatrix_print): Move to...
5049 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
5050 here.
5051 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
5052
50532002-05-06 Akim Demaille <akim@epita.fr>
5054
5055 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
5056 hash_do_for_each.
5057
50582002-05-06 Akim Demaille <akim@epita.fr>
5059
5060 * src/LR0.c (new_state, get_state): Instead of using the global
5061 `kernel_size' and `kernel_base', have two new arguments:
5062 `core_size' and `core'.
5063 Adjust callers.
5064
50652002-05-06 Akim Demaille <akim@epita.fr>
5066
5067 * src/reader.c (packgram): No longer end `ritem' with a 0
5068 sentinel: it is not used.
5069
50702002-05-05 Akim Demaille <akim@epita.fr>
5071
5072 New experimental feature: display the lookaheads in the report and
5073 graph.
5074
5075 * src/print (print_core): When --trace-flag, display the rules
5076 lookaheads.
5077 * src/print_graph.c (print_core): Likewise.
5078 Swap the arguments.
5079 Adjust caller.
5080
50812002-05-05 Akim Demaille <akim@epita.fr>
5082
5083 * tests/torture.at (Many lookaheads): New test.
5084
50852002-05-05 Akim Demaille <akim@epita.fr>
5086
5087 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
5088 (GENERATE_MUSCLE_INSERT_TABLE): this.
5089 (output_int_table, output_unsigned_int_table, output_short_table)
5090 (output_token_number_table, output_item_number_table): Replace with...
5091 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
5092 (muscle_insert_short_table, muscle_insert_token_number_table)
5093 (muscle_insert_item_number_table): these.
5094 Adjust all callers.
5095 (prepare_tokens): Don't free `translations', since...
5096 * src/reader.h, src/reader.c (grammar_free): do it.
5097 Move to...
5098 * src/gram.h, src/gram.c (grammar_free): here.
5099 * data/bison.simple, data/bison.c++: b4_token_number_max is now
5100 b4_translate_max.
5101
51022002-05-05 Akim Demaille <akim@epita.fr>
5103
5104 * src/output.c (output_unsigned_int_table): New.
5105 (prepare_rules): `i' is unsigned.
5106 `prhs', `rline', `r2' are unsigned int.
5107 Rename muscle `rhs_number_max' as `rhs_max'.
5108 Output muscles `prhs_max', `rline_max', and `r2_max'.
5109 Free rline and r1.
5110 * data/bison.simple, data/bison.c++: Adjust to use these muscles
5111 to compute types instead of constant types.
5112 * tests/regression.at (Web2c Actions): Adjust.
5113
51142002-05-04 Akim Demaille <akim@epita.fr>
5115
5116 * src/symtab.h (SALIAS, SUNDEF): Rename as...
5117 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
5118 Adjust dependencies.
5119 * src/output.c (token_definitions_output): Be sure not to output a
5120 `#define 'a'' when fed with `%token 'a' "a"'.
5121 * tests/regression.at (Token definitions): New.
5122
51232002-05-03 Paul Eggert <eggert@twinsun.com>
5124
5125 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
5126 for K&R C.
5127
51282002-05-03 gettextize <bug-gnu-gettext@gnu.org>
5129
5130 * Makefile.am (SUBDIRS): Remove intl.
5131 (EXTRA_DIST): Add config/config.rpath.
5132
51332002-05-03 Akim Demaille <akim@epita.fr>
5134
5135 * data/bison.simple (m4_if): Don't output empty enums.
5136 And actually, output valid enum definitions :(.
5137
51382002-05-03 Akim Demaille <akim@epita.fr>
5139
5140 * configure.bat: Remove, completely obsolete.
5141 * Makefile.am (EXTRA_DIST): Adjust.
5142 Don't distribute config.rpath...
5143 * config/Makefile.am (EXTRA_DIST): Do it.
5144
51452002-05-03 Akim Demaille <akim@epita.fr>
5146
5147 * configure.in (GETTEXT_VERSION): New.
5148 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
5149
51502002-05-03 Akim Demaille <akim@epita.fr>
5151
5152 * data/bison.simple (b4_token_enum): New.
5153 (b4_token_defines): Use it to output tokens both as #define and
5154 enums.
5155 Suggested by Paul Eggert.
5156 * src/output.c (token_definitions_output): Don't output spurious
5157 white spaces.
5158
51592002-05-03 Akim Demaille <akim@epita.fr>
5160
5161 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5162
51632002-05-02 Robert Anisko <robert@lrde.epita.fr>
5164
5165 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
5166 Update the stack class, give a try to deque as the default container.
5167
51682002-05-02 Akim Demaille <akim@epita.fr>
5169
5170 * data/bison.simple (yyparse): Do not implement @$ = @1.
5171 (YYLLOC_DEFAULT): Adjust to do it.
5172 * doc/bison.texinfo (Location Default Action): Fix.
5173
51742002-05-02 Akim Demaille <akim@epita.fr>
5175
5176 * src/reader.c (parse_braces): Merge into...
5177 (parse_action): this.
5178
51792002-05-02 Akim Demaille <akim@epita.fr>
5180
5181 * configure.in (ALL_LINGUAS): Remove.
5182 * po/LINGUAS, hr.po: New.
5183
51842002-05-02 Akim Demaille <akim@epita.fr>
5185
5186 Remove the so called hairy (semantic) parsers.
5187
5188 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
5189 * src/gram.h, src/gram.c (semantic_parser): Remove.
5190 (rule_t): Remove the guard and guard_line members.
5191 * src/lex.h (token_t): remove tok_guard.
5192 * src/options.c (option_table): Remove %guard and %semantic_parser
5193 support.
5194 * src/output.c, src/output.h (guards_output): Remove.
5195 (prepare): Adjust.
5196 (token_definitions_output): Don't output the `T'
5197 tokens (???).
5198 (output_skeleton): Don't output the guards.
5199 * src/files.c, src/files.c (attrsfile): Remove.
5200 * src/reader.c (symbol_list): Remove the guard and guard_line
5201 members.
5202 Adjust dependencies.
5203 (parse_guard): Remove.
5204 * data/bison.hairy: Remove.
5205 * doc/bison.texinfo (Environment Variables): Remove occurrences of
5206 BISON_HAIRY.
5207
52082002-05-02 Akim Demaille <akim@epita.fr>
5209
5210 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
5211 (parse_guard): Rename the formal argument `stack_offset' as
5212 `rule_length', which is more readable.
5213 Adjust callers.
5214 (copy_at, copy_dollar): Instead of outputting the hard coded
5215 values of $$, $n and so forth, output invocation to b4_lhs_value,
5216 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
5217 Note: this patch partially drops `semantic-parser' support: it
5218 always does `rule_length - n', where semantic parsers ought to
5219 always use `-n'.
5220 * data/bison.simple, data/bison.c++ (b4_lhs_value)
5221 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
5222
52232002-05-02 Akim Demaille <akim@epita.fr>
5224
5225 * configure.in (AC_INIT): Bump to 1.49b.
5226 (AM_INIT_AUTOMAKE): Short invocation.
5227
52282002-05-02 Akim Demaille <akim@epita.fr>
5229
5230 Version 1.49a.
5231
52322002-05-01 Akim Demaille <akim@epita.fr>
5233
5234 * src/skeleton.h: Remove.
5235
52362002-05-01 Akim Demaille <akim@epita.fr>
5237
5238 * src/skeleton.h: Fix the #endif.
5239 Reported by Magnus Fromreide.
5240
52412002-04-26 Paul Eggert <eggert@twinsun.com>
5242
5243 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
5244 Define if we define YYSTYPE and YYLTYPE, respectively.
5245 (YYCOPY): Fix [] quoting problem in the non-GCC case.
5246
52472002-04-25 Robert Anisko <robert@lrde.epita.fr>
5248
5249 * src/scan-skel.l: Postprocess quadrigraphs.
5250
5251 * src/reader.c (copy_character): New function, used to output
5252 single characters while replacing `[' and `]' with quadrigraphs, to
5253 avoid troubles with M4 quotes.
5254 (copy_comment): Output characters with copy_character.
5255 (read_additionnal_code): Likewise.
5256 (copy_string2): Likewise.
5257 (copy_definition): Likewise.
5258
5259 * tests/calc.at: Exercise M4 quoting.
5260
52612002-04-25 Akim Demaille <akim@epita.fr>
5262
5263 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
5264 between `!' and the command.
5265 Reported by Paul Eggert.
5266
52672002-04-24 Robert Anisko <robert@lrde.epita.fr>
5268
5269 * tests/calc.at: Exercise prologue splitting.
5270
5271 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
5272 `b4_post_prologue' instead of `b4_prologue'.
5273
5274 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
5275 muscles.
5276 (output): Free pre_prologue_obstack and post_prologue_obstack.
5277 * src/files.h, src/files.c (attrs_obstack): Remove.
5278 (pre_prologue_obstack, post_prologue_obstack): New.
5279 * src/reader.c (copy_definition): Add a parameter to specify the
5280 obstack to fill, instead of using attrs_obstack unconditionally.
5281 (read_declarations): Pass pre_prologue_obstack to copy_definition if
5282 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
5283
52842002-04-23 Paul Eggert <eggert@twinsun.com>
5285
5286 * data/bison.simple: Remove unnecessary commentary and white
5287 space differences from 1_29-branch.
5288 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
5289
5290 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
5291 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
5292 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
5293 constructors or destructors.
5294
5295 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
5296
52972002-04-23 Akim Demaille <akim@epita.fr>
5298
5299 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
5300 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
5301 location with columns.
5302 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
5303 All reported by Paul Eggert.
5304
53052002-04-22 Akim Demaille <akim@epita.fr>
5306
5307 * src/reduce.c (dump_grammar): Move to...
5308 * src/gram.h, src/gram.c (grammar_dump): here.
5309 Be sure to separate long item numbers.
5310 Don't read the members of a rule's prec if its nil.
5311
53122002-04-22 Akim Demaille <akim@epita.fr>
5313
5314 * src/output.c (table_size, table_grow): New.
5315 (MAXTABLE): Remove, replace uses with table_size.
5316 (pack_vector): Instead of dying when the table is too big, grow it.
5317
53182002-04-22 Akim Demaille <akim@epita.fr>
5319
5320 * data/bison.simple (yyr1): Its type is that of a token number.
5321 * data/bison.c++ (r1_): Likewise.
5322 * tests/regression.at (Web2c Actions): Adjust.
5323
53242002-04-22 Akim Demaille <akim@epita.fr>
5325
5326 * src/reader.c (token_translations_init): 256 is now the default
5327 value for the error token, i.e., it will be assigned another
5328 number if the user assigned 256 to one of her tokens.
5329 (reader): Don't force 256 to error.
5330 * doc/bison.texinfo (Symbols): Adjust.
5331 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
5332 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
5333 etc. instead of 10, 20, 30 (which was used to `jump' over error
5334 (256) and undefined (2)).
5335
53362002-04-22 Akim Demaille <akim@epita.fr>
5337
5338 Propagate more token_number_t.
5339
5340 * src/gram.h (token_number_as_item_number)
5341 (item_number_as_token_number): New.
5342 * src/output.c (GENERATE_OUTPUT_TABLE): New.
5343 Use it to create output_item_number_table and
5344 output_token_number_table.
5345 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5346 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
5347 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
5348 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
5349
53502002-04-22 Akim Demaille <akim@epita.fr>
5351
5352 * src/output.h, src/output.c (get_lines_number): Remove.
5353
53542002-04-19 Akim Demaille <akim@epita.fr>
5355
5356 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
5357 as Lex/Flex'.
5358 (Debugging): More details about enabling the debugging features.
5359 (Table of Symbols): Describe $$, $n, @$, and @n.
5360 Suggested by Tim Josling.
5361
53622002-04-19 Akim Demaille <akim@epita.fr>
5363
5364 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
5365
53662002-04-10 Akim Demaille <akim@epita.fr>
5367
5368 * src/system.h: Rely on HAVE_LIMITS_H.
5369 Suggested by Paul Eggert.
5370
53712002-04-09 Akim Demaille <akim@epita.fr>
5372
5373 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
5374 full stderr, and strip it according to the bison options, instead
5375 of composing the error message from different bits.
5376 This makes it easier to check for several error messages.
5377 Adjust all the invocations.
5378 Add an invocation exercising the error token.
5379 Add an invocation demonstrating a stupid error message.
5380 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
5381 Adjust the tests.
5382 Error message are for stderr, not stdout.
5383
53842002-04-09 Akim Demaille <akim@epita.fr>
5385
5386 * src/gram.h, src/gram.c (error_token_number): Remove, use
5387 errtoken->number.
5388 * src/reader.c (reader): Don't specify the user token number (2)
5389 for $undefined, as it uselessly prevents using it.
5390 * src/gram.h (token_number_t): Move to...
5391 * src/symtab.h: here.
5392 (state_t.number): Is a token_number_t.
5393 * src/print.c, src/reader.c: Use undeftoken->number instead of
5394 hard coded 2.
5395 (Even though this 2 is not the same as above: the number of the
5396 undeftoken remains being 2, it is its user token number which
5397 might not be 2).
5398 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
5399 `user_token_number_max'.
5400 Output `undef_token_number'.
5401 * data/bison.simple, data/bison.c++: Use them.
5402 Be sure to map invalid yylex return values to
5403 `undef_token_number'. This saves us from gratuitous SEGV.
5404
5405 * tests/conflicts.at (Solved SR Conflicts)
5406 (Unresolved SR Conflicts): Adjust.
5407 * tests/regression.at (Web2c Actions): Adjust.
5408
54092002-04-08 Akim Demaille <akim@epita.fr>
5410
5411 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
5412 Adding #line.
5413 Remove the duplicate `typedefs'.
5414 (RhsNumberType): Fix the declaration and various other typos.
5415 Use __ofile__.
5416 * data/bison.simple: Use __ofile__.
5417 * src/scan-skel.l: Handle __ofile__.
5418
54192002-04-08 Akim Demaille <akim@epita.fr>
5420
5421 * src/gram.h (item_number_t): New, the type of item numbers in
5422 RITEM. Note that it must be able to code symbol numbers as
5423 positive number, and the negation of rule numbers as negative
5424 numbers.
5425 Adjust all dependencies (pretty many).
5426 * src/reduce.c (rule): Remove this `short *' pointer: use
5427 item_number_t.
5428 * src/system.h (MINSHORT, MAXSHORT): Remove.
5429 Include `limits.h'.
5430 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
5431 (shortcpy): Remove.
5432 (MAXTABLE): Move to...
5433 * src/output.c (MAXTABLE): here.
5434 (prepare_rules): Use output_int_table to output rhs.
5435 * data/bison.simple, data/bison.c++: Adjust.
5436 * tests/torture.at (Big triangle): Move the limit from 254 to
5437 500.
5438 * tests/regression.at (Web2c Actions): Ajust.
5439
5440 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
5441 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
5442 passes, but produces negative #line number, once fixed, GCC is
5443 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
5444 C), it passes.
5445 * src/state.h (state_h): Code input lines on ints, not shorts.
5446
54472002-04-08 Akim Demaille <akim@epita.fr>
5448
5449 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
5450 and then the grammar.
5451
54522002-04-08 Akim Demaille <akim@epita.fr>
5453
5454 * src/system.h: No longer using strndup.
5455
54562002-04-07 Akim Demaille <akim@epita.fr>
5457
5458 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
5459 * src/output.c (output_table_data): Return the longest number.
5460 (prepare_tokens): Output `token_number_max').
5461 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
5462 New.
5463 Use them to define yy_token_number_type/TokenNumberType.
5464 Use this type for yytranslate.
5465 * tests/torture.at (Big triangle): Push the limit from 124 to
5466 253.
5467 * tests/regression.at (Web2c Actions): Adjust.
5468
54692002-04-07 Akim Demaille <akim@epita.fr>
5470
5471 * tests/torture.at (Big triangle): New.
5472 (GNU AWK Grammar, GNU Cim Grammar): Move to...
5473 * tests/existing.at: here.
5474
54752002-04-07 Akim Demaille <akim@epita.fr>
5476
5477 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
5478 nritems.
5479 Adjust dependencies.
5480
54812002-04-07 Akim Demaille <akim@epita.fr>
5482
5483 * src/reader.c: Normalize increments to prefix form.
5484
54852002-04-07 Akim Demaille <akim@epita.fr>
5486
5487 * src/reader.c, symtab.c: Remove debugging code.
5488
54892002-04-07 Akim Demaille <akim@epita.fr>
5490
5491 Rename all the `bucket's as `symbol_t'.
5492
5493 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
5494 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
5495 * src/symtab.c, src/symtab.h (bucket): Rename as...
5496 (symbol_t): this.
5497 (symbol_list_new, bucket_check_defined, bucket_make_alias)
5498 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
5499 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5500 (buckets_new, buckets_free, buckets_do): Rename as...
5501 (symbol_list_new, symbol_check_defined, symbol_make_alias)
5502 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5503 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
5504 (symbols_new, symbols_free, symbols_do): these.
5505
55062002-04-07 Akim Demaille <akim@epita.fr>
5507
5508 Use lib/hash for the symbol table.
5509
5510 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
5511 EOF.
5512 * src/lex.c (lex): Set the `number' member of new terminals.
5513 * src/reader.c (bucket_check_defined, bucket_make_alias)
5514 (bucket_check_alias_consistence, bucket_translation): New.
5515 (reader, grammar_free, readgram, token_translations_init)
5516 (packsymbols): Adjust.
5517 (reader): Number the predefined tokens.
5518 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
5519 for predefined tokens.
5520 * src/symtab.h (bucket): Remove all the hash table related
5521 members.
5522 * src/symtab.c (symtab): Replace by...
5523 (bucket_table): this.
5524 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5525 (buckets_new, buckets_do): New.
5526
55272002-04-07 Akim Demaille <akim@epita.fr>
5528
5529 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
5530 (start_symbol, max_user_token_number, semantic_parser)
5531 (error_token_number): Initialize.
5532 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
5533 Initialize.
5534 (reader): Don't.
5535 (errtoken, eoftoken, undeftoken, axiom): Extern.
5536
55372002-04-07 Akim Demaille <akim@epita.fr>
5538
5539 * src/gram.h (rule_s): prec and precsym are now pointers
5540 to the bucket giving the priority/associativity.
5541 Member `associativity' removed: useless.
5542 * src/reduce.c, src/conflicts.c: Adjust.
5543
55442002-04-07 Akim Demaille <akim@epita.fr>
5545
5546 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
5547 Properly escape the symbols' TAG when outputting them.
5548
55492002-04-07 Akim Demaille <akim@epita.fr>
5550
5551 * src/lalr.h (LA): Is a bitsetv, not bitset*.
5552
55532002-04-07 Akim Demaille <akim@epita.fr>
5554
5555 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
5556 (LArule): this, which is an array to rule_t*.
5557 * src/print.c, src/conflicts.c: Adjust.
5558
55592002-04-07 Akim Demaille <akim@epita.fr>
5560
5561 * src/gram.h (rule_t): Rename `number' as `user_number'.
5562 `number' is a new member.
5563 Adjust dependencies.
5564 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
5565
55662002-04-07 Akim Demaille <akim@epita.fr>
5567
5568 As a result of the previous patch, it is no longer needed
5569 to reorder ritem itself.
5570
5571 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
5572
55732002-04-07 Akim Demaille <akim@epita.fr>
5574
5575 Be sure never to walk through RITEMS, but use only data related to
5576 the rules themselves. RITEMS should be banished.
5577
5578 * src/output.c (output_token_translations): Rename as...
5579 (prepare_tokens): this.
5580 In addition to `translate', prepare the muscles `tname' and
5581 `toknum', which were handled by...
5582 (output_rule_data): this.
5583 Remove, and move the remainder of its outputs into...
5584 (prepare_rules): this new routines, which also merges content from
5585 (output_gram): this.
5586 (prepare_rules): Be sure never to walk through RITEMS.
5587 (output_stos): Rename as...
5588 (prepare_stos): this.
5589 (output): Always invoke prepare_states, after all, just don't use it
5590 in the output if you don't need it.
5591
55922002-04-07 Akim Demaille <akim@epita.fr>
5593
5594 * src/LR0.c (new_state): Display `nstates' as the name of the
5595 newly created state.
5596 Adjust to initialize first_state and last_state if needed.
5597 Be sure to distinguish the initial from the final state.
5598 (new_states): Create the itemset of the initial state, and use
5599 new_state.
5600 * src/closure.c (closure): Now that the initial state has its
5601 items properly set, there is no need for a special case when
5602 creating `ruleset'.
5603
5604 As a result, now the rule 0, reducing to $axiom, is visible in the
5605 outputs. Adjust the test suite.
5606
5607 * tests/conflicts.at (Solved SR Conflicts)
5608 (Unresolved SR Conflicts): Adjust.
5609 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5610 * tests/conflicts.at (S/R in initial): New.
5611
56122002-04-07 Akim Demaille <akim@epita.fr>
5613
5614 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5615 the RHS of the rules.
5616 * src/output.c (output_gram): Likewise.
5617
56182002-04-07 Akim Demaille <akim@epita.fr>
5619
5620 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5621 bucket.
5622 Adjust all dependencies.
5623 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5624 `number' of the buckets too.
5625 * src/gram.h: Include `symtab.h'.
5626 (associativity): Move to...
5627 * src/symtab.h: here.
5628 No longer include `gram.h'.
5629
56302002-04-07 Akim Demaille <akim@epita.fr>
5631
5632 * src/gram.h, src/gram.c (rules_rhs_length): New.
5633 (ritem_longest_rhs): Use it.
5634 * src/gram.h (rule_t): `number' is a new member.
5635 * src/reader.c (packgram): Set it.
5636 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5637 the end of `rules', and count them out of `nrules'.
5638 (reduce_output, dump_grammar): Adjust.
5639 * src/print.c (print_grammar): It is no longer needed to check for
5640 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5641 * tests/reduce.at (Reduced Automaton): New test.
5642
56432002-04-07 Akim Demaille <akim@epita.fr>
5644
5645 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5646 lacking `+ 1' to nrules, Bison reported as useless a token if it
5647 was used solely to set the precedence of the last rule...
5648
56492002-04-07 Akim Demaille <akim@epita.fr>
5650
5651 * data/bison.c++, data/bison.simple: Don't output the current file
5652 name in #line, to avoid useless diffs between two identical
5653 outputs under different names.
5654
56552002-04-07 Akim Demaille <akim@epita.fr>
5656
5657 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5658 Normalize loops to using `< nrules + 1', not `<= nrules'.
5659
56602002-04-07 Akim Demaille <akim@epita.fr>
5661
5662 * TODO: Update.
5663
56642002-04-07 Akim Demaille <akim@epita.fr>
5665
5666 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5667 bucket.value as bucket.number.
5668
56692002-04-07 Akim Demaille <akim@epita.fr>
5670
5671 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5672 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5673 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5674 RHS, instead of being an index in RITEMS.
5675
56762002-04-04 Paul Eggert <eggert@twinsun.com>
5677
5678 * doc/bison.texinfo: Update copyright date.
5679 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5680 (Symbols): Warn about running Bison in one character set,
5681 but compiling and/or running in an incompatible one.
5682 Warn about character code 256, too.
5683
56842002-04-03 Paul Eggert <eggert@twinsun.com>
5685
5686 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5687 YYERROR_VERBOSE is nonzero, not whether it is defined.
5688
5689 Merge changes from bison-1_29-branch.
5690
56912002-03-20 Paul Eggert <eggert@twinsun.com>
5692
5693 Merge fixes from Debian bison_1.34-1.diff.
5694
5695 * configure.in (AC_PREREQ): 2.53.
5696
56972002-03-20 Akim Demaille <akim@epita.fr>
5698
5699 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5700
57012002-03-19 Paul Eggert <eggert@twinsun.com>
5702
5703 * src/bison.simple (YYCOPY): New macro.
5704 (YYSTACK_RELOCATE): Use it.
5705 Remove Type arg; no longer needed. All callers changed.
5706 (yymemcpy): Remove; no longer needed.
5707
5708 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5709 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5710
57112002-03-19 Akim Demaille <akim@epita.fr>
5712
5713 Test and fix the #line outputs.
5714
5715 * tests/atlocal.at (GCC): New.
5716 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5717 (Prologue synch line, ,%union synch line, Postprologue synch line)
5718 (Action synch line, Epilogue synch line): New tests.
5719 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5720 * data/bison.simple, data/bison.c++: Use it.
5721
57222002-03-19 Akim Demaille <akim@epita.fr>
5723
5724 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5725 (Solved SR Conflicts, %expect not enough, %expect right)
5726 (%expect too much): Move to...
5727 * tests/conflicts.at: this new file.
5728
57292002-03-19 Akim Demaille <akim@epita.fr>
5730
5731 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5732 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5733 that we can move to enums for instance.
5734 * src/output.c (token_definitions_output): Output a list of
5735 `token-name, token-number' instead of the #define.
5736 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5737
57382002-03-14 Akim Demaille <akim@epita.fr>
5739
5740 Use Gettext 0.11.1.
5741
57422002-03-09 Robert Anisko <robert@lrde.epita.fr>
5743
5744 * data/bison.c++: Make the user able to add members to the generated
5745 parser by subclassing.
5746
57472002-03-05 Robert Anisko <robert@lrde.epita.fr>
5748
5749 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5750 a character.
5751 Reported by Nicolas Tisserand and Nicolas Burrus.
5752
57532002-03-04 Robert Anisko <robert@lrde.epita.fr>
5754
5755 * src/reader.c: Warn about lacking semi-colons, do not complain.
5756
57572002-03-04 Robert Anisko <robert@lrde.epita.fr>
5758
5759 * data/bison.c++: Remove a debug line.
5760
57612002-03-04 Robert Anisko <robert@lrde.epita.fr>
5762
5763 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5764 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5765 provide a default implementation.
5766
57672002-03-04 Akim Demaille <akim@epita.fr>
5768
5769 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5770 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5771 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5772 * tests/semantic.at (Parsing Guards): Similarly.
5773 * src/reader.at (readgram): Complain if the last rule is not ended
5774 with a semi-colon.
5775
57762002-03-04 Akim Demaille <akim@epita.fr>
5777
5778 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5779 * src/closure.c: here.
5780 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5781 RTC.
5782 * src/warshall.h, src/warshall.c: Remove.
5783 * tests/sets.at (Broken Closure): Adjust.
5784
57852002-03-04 Akim Demaille <akim@epita.fr>
5786
5787 * src/output.c (output_skeleton): tempdir is const.
5788 bytes_read is unused.
5789
57902002-03-04 Akim Demaille <akim@epita.fr>
5791
5792 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5793 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5794 Update.
5795 From Michael Hayes.
5796
57972002-03-04 Akim Demaille <akim@epita.fr>
5798
5799 * src/closure.c (closure): `r' is unused.
5800
58012002-03-04 Akim Demaille <akim@epita.fr>
5802
5803 * tests/sets.at (Broken Closure): Add the ending `;'.
5804 * src/reader.at (readgram): Complain if a rule is not ended with a
5805 semi-colon.
5806
58072002-03-04 Akim Demaille <akim@epita.fr>
5808
5809 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5810 (count_sr_conflicts): Use bitset_count.
5811 * src/reduce.c (inaccessable_symbols): Ditto.
5812 (bits_size): Remove.
5813 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5814
58152002-03-04 Akim Demaille <akim@epita.fr>
5816
5817 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5818 * src/reduce.c: Remove the `bitset_zero's following the
5819 `bitset_create's, as now it is performed by the latter.
5820
58212002-03-04 Akim Demaille <akim@epita.fr>
5822
5823 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5824 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5825 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5826 latest sources from Michael.
5827
58282002-03-04 Akim Demaille <akim@epita.fr>
5829
5830 * src/output.c (output): Don't free the grammar.
5831 * src/reader.c (grammar_free): New.
5832 * src/main.c (main): Call it and don't free symtab here.
5833
58342002-03-04 Akim Demaille <akim@epita.fr>
5835
5836 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5837 before returning.
5838 Reported by Benoit Perrot.
5839
58402002-03-04 Akim Demaille <akim@epita.fr>
5841
5842 Use bitset operations when possible, not loops over bits.
5843
5844 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5845 bitset_or.
5846 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5847 * src/reduce.c (useless_nonterminals): Formatting changes.
5848 * src/warshall.c (TC): Use bitset_or.
5849
58502002-03-04 Akim Demaille <akim@epita.fr>
5851
5852 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5853 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5854 Ditto.
5855
58562002-03-04 Akim Demaille <akim@epita.fr>
5857
5858 * src/lalr.c (F): Now a bitset*.
5859 Adjust all dependencies.
5860
58612002-03-04 Akim Demaille <akim@epita.fr>
5862
5863 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5864 Adjust all dependencies.
5865
58662002-03-04 Akim Demaille <akim@epita.fr>
5867
5868 * src/L0.c, src/LR0.h (nstates): Be size_t.
5869 Adjust comparisons (signed vs unsigned).
5870 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5871 bitset*.
5872 Adjust all dependencies.
5873
58742002-03-04 Akim Demaille <akim@epita.fr>
5875
5876 * src/closure.c (firsts): Now, also a bitset.
5877 Adjust all dependencies.
5878 (varsetsize): Remove, now unused.
5879 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5880
58812002-03-04 Akim Demaille <akim@epita.fr>
5882
5883 * src/print.c: Convert to use bitset.h, not hand coded iterations
5884 over ints.
5885
58862002-03-04 Akim Demaille <akim@epita.fr>
5887
5888 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5889
58902002-03-04 Akim Demaille <akim@epita.fr>
5891
5892 * src/closure.c (ruleset): Be a bitset.
5893 (rulesetsize): Remove.
5894
58952002-03-04 Akim Demaille <akim@epita.fr>
5896
5897 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5898 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5899 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5900 * src/closure.c (fderives): Be an array of bitsets.
5901
59022002-02-28 Robert Anisko <robert@lrde.epita.fr>
5903
5904 * data/bison.c++: Merge the two generated headers. Insert a copyright
5905 notice in each output file.
5906
59072002-02-28 Akim Demaille <akim@epita.fr>
5908
5909 * data/bison.c++: Copy the prologue of bison.simple to fetch
5910 useful M4 definitions, such as b4_header_guard.
5911
59122002-02-25 Akim Demaille <akim@epita.fr>
5913
5914 * src/getargs.c (version): Give the name of the authors, and use a
5915 translator friendly scheme for the bgr
5916 copyright notice.
5917
59182002-02-25 Akim Demaille <akim@epita.fr>
5919
5920 * src/output.c (header_output): Remove, now handled completely via
5921 M4.
5922
59232002-02-25 Akim Demaille <akim@epita.fr>
5924
5925 * m4/m4.m4: New, from CVS Autoconf.
5926 * configure.in: Invoke it.
5927 * src/output.c (output_skeleton): Use its result instead of the
5928 hard coded name.
5929
59302002-02-25 Akim Demaille <akim@epita.fr>
5931
5932 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5933 Fileutils 4.1.5.
5934 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5935 * src/output.c (output_skeleton): Use mkstemp to create a real
5936 temporary file.
5937 Move the filling of `skeleton' and its muscle to...
5938 (prepare): here.
5939 (output): Move the definition of the prologue muscle to...
5940 (prepare): here.
5941 * src/system.h (DEFAULT_TMPDIR): New.
5942
59432002-02-14 Paul Eggert <eggert@twinsun.com>
5944
5945 Remove the support for C++ namespace cleanliness; it was
5946 causing more problems than it was curing, since it didn't work
5947 properly on some nonstandard C++ compilers. This can wait
5948 for a proper C++ parser.
5949
5950 * NEWS: Document this.
5951 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5952 of C++, as it's treated like C now.
5953 * src/bison.simple (YYSTD): Remove.
5954 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5955 Treat C++ just like Standard C instead of trying to support
5956 namespace cleanliness.
5957
59582002-02-14 Akim Demaille <akim@epita.fr>
5959
5960 * tests/regression.at (else): Adjust to Andreas' change.
5961
59622002-02-14 Akim Demaille <akim@epita.fr>
5963
5964 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5965
59662002-02-13 Andreas Schwab <schwab@suse.de>
5967
5968 * src/output.c (output_rule_data): Don't output NULL, it might
5969 not be defined yet.
5970
59712002-02-11 Robert Anisko <robert@lrde.epita.fr>
5972
5973 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5974 (Copyright notice): Update.
5975
59762002-02-11 Akim Demaille <akim@epita.fr>
5977
5978 * tests/regression.at (%nonassoc and eof): Don't include
5979 nonportable headers.
5980
59812002-02-08 Robert Anisko <robert@lrde.epita.fr>
5982
5983 * data/bison.c++: Correct error recovery. Make the user able to
5984 initialize the starting location.
5985
59862002-02-07 Akim Demaille <akim@epita.fr>
5987
5988 * tests/input.at: New.
5989
59902002-02-07 Robert Anisko <robert@lrde.epita.fr>
5991
5992 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5993 more consistent when naming methods and variables. Put preprocessor
5994 directives around tables only needed for debugging.
5995
59962002-02-07 Robert Anisko <robert@lrde.epita.fr>
5997
5998 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5999 C++ parsers.
6000 (yy::b4_name::parse): Use print_.
6001
60022002-02-07 Robert Anisko <robert@lrde.epita.fr>
6003
6004 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6005
60062002-02-07 Robert Anisko <robert@lrde.epita.fr>
6007
6008 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6009 C++ parsers.
6010 (yy::b4_name::parse): Build verbose error messages, and use error_.
6011
60122002-02-06 Robert Anisko <robert@lrde.epita.fr>
6013
6014 * data/bison.c++: Fix m4 quoting in comments.
6015
60162002-02-06 Robert Anisko <robert@lrde.epita.fr>
6017
6018 * data/bison.c++: Adjust the parser code. Fix some muscles that were
6019 not expanded by m4.
6020
60212002-02-05 Akim Demaille <akim@epita.fr>
6022
6023 * data/bison.c++: Adjust to the M4 back end.
6024 More is certainly needed.
6025
60262002-02-05 Akim Demaille <akim@epita.fr>
6027
6028 Give a try to M4 as a back end.
6029
6030 * lib/readpipe.c: New, from wdiff.
6031 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
6032 BISON_HAIRY.
6033 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
6034 specific values. Now it is m4 that performs the lookup.
6035 * src/parse-skel.y: Remove.
6036 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
6037 * src/output.c (actions_output, guards_output)
6038 (token_definitions_output): No longer keeps track of the output
6039 line number, hence remove the second argument.
6040 (guards_output): Check against the guard member of a rule, not the
6041 action member.
6042 Adjust callers.
6043 (output_skeleton): Don't look for the skeleton location, let m4 do
6044 that.
6045 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
6046 file will be used.
6047 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
6048 (prepare): Given that for the time being changesyntax is not
6049 usable in M4, rename the muscles using `-' to `_'.
6050 Define `defines_flag', `output_parser_name' and `output_header_name'.
6051 * src/output.h (actions_output, guards_output)
6052 (token_definitions_output): Adjust prototypes.
6053 * src/scan-skel.l: Instead of scanning the skeletons, it now
6054 processes the output of m4: `__oline__' and `#output'.
6055 * data/bison.simple: Adjust to be used by M4(sugar).
6056 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
6057 to date.
6058 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
6059 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
6060 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
6061 shamelessly stolen from CVS Autoconf.
6062
60632002-02-05 Akim Demaille <akim@epita.fr>
6064
6065 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
6066 * configure.in: Check for the declarations of free and malloc.
6067 * src/muscle_tab.c: Adjust.
6068
60692002-02-05 Akim Demaille <akim@epita.fr>
6070
6071 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
6072 which have no values.
6073
60742002-02-05 Akim Demaille <akim@epita.fr>
6075
6076 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
6077 * data/: here.
6078
60792002-01-29 Paul Eggert <eggert@twinsun.com>
6080
6081 * src/bison.simple (YYSIZE_T): Do not define merely because
6082 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
6083 On some platforms, <alloca.h> does not declare YYSTD (size_t).
6084
60852002-01-27 Akim Demaille <akim@epita.fr>
6086
6087 Fix `%nonassoc and eof'.
6088
6089 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
6090 which were not properly copied! Replace
6091 memcpy (res->errs, src->errs, src->nerrs);
6092 with
6093 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
6094 !!!
6095 * tests/regression.at (%nonassoc and eof): Adjust to newest
6096 Autotest: `.' is not in the PATH.
6097
60982002-01-27 Akim Demaille <akim@epita.fr>
6099
6100 * tests/sets.at (AT_EXTRACT_SETS): New.
6101 (Nullable): Use it.
6102 (Firsts): New.
6103
61042002-01-26 Akim Demaille <akim@epita.fr>
6105
6106 * tests/actions.at, tests/calc.at, tests/headers.at,
6107 * tests/torture.at: Adjust to the newest Autotest which no longer
6108 forces `.' in the PATH.
6109
61102002-01-25 Akim Demaille <akim@epita.fr>
6111
6112 * tests/regression.at (%nonassoc and eof): New.
6113 Suggested by Robert Anisko.
6114
61152002-01-24 Akim Demaille <akim@epita.fr>
6116
6117 Bison dumps core when trying to complain about broken input files.
6118 Reported by Cris van Pelt.
6119
6120 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
6121 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
6122 into...
6123 (Invalid inputs): Strengthen: exercise parse_percent_token.
6124
61252002-01-24 Robert Anisko <robert.anisko@epita.fr>
6126
6127 * src/Makefile.am: Add bison.c++.
6128 * src/bison.c++: New skeleton.
6129
61302002-01-21 Paolo Bonzini <bonzini@gnu.org>
6131
6132 * po/it.po: New.
6133
61342002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
6135
6136 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
6137
61382002-01-20 Marc Autret <marc@gnu.org>
6139
6140 * src/files.c (compute_output_file_names): Fix
6141
61422002-01-20 Marc Autret <marc@gnu.org>
6143
6144 * tests/output.at: New test.
6145 * src/files.c (compute_base_names): Don't map extensions when
6146 the YACC flag is set, use defaults.
6147 Reported by Evgeny Stambulchik.
6148
61492002-01-20 Marc Autret <marc@gnu.org>
6150
6151 * src/system.h: Need to define __attribute__ away for non-GCC
6152 compilers as well (i.e. the vendor C compiler).
6153 Suggested by Albert Chin-A-Young.
6154
61552002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
6156
6157 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
6158 canonical definition.
6159 * src/system.h: Use the canonical definition for PARAMS (avoids
6160 a conflict with the macro from lib/hash.h).
6161
61622002-01-11 Akim Demaille <akim@epita.fr>
6163
6164 * configure.in: Use AC_FUNC_STRNLEN.
6165 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
6166
61672002-01-09 Akim Demaille <akim@epita.fr>
6168
6169 * src/files.c, src/files.h (output_infix): New.
6170 (tab_extension): Remove.
6171 (compute_base_names): Compute the former, drop the latter.
6172 * src/output.c (prepare): Insert the muscles `output-infix', and
6173 `output-suffix'.
6174 * src/parse-skel.y (string, string.1): New.
6175 (section.header): Use it.
6176 (section.yacc): Remove.
6177 (prefix): Remove too.
6178 * src/scan-skel.l: Adjust.
6179 * src/bison.simple, src/bison.hairy: Adjust.
6180
61812002-01-09 Akim Demaille <akim@epita.fr>
6182
6183 * configure.in (WERROR_CFLAGS): Compute it.
6184 * src/Makefile.am (CFLAGS): Pass it.
6185 * tests/atlocal.in (CFLAGS): Idem.
6186 * src/files.c: Fix a few warnings.
6187 (get_extension_index): Remove, unused.
6188
61892002-01-08 Akim Demaille <akim@epita.fr>
6190
6191 * src/getargs.c (AS_FILE_NAME): New.
6192 (getargs): Use it to convert DOSish file names.
6193 * src/files.c (base_name): Rename as full_base_name to avoid
6194 clashes with `base_name ()'.
6195 (filename_split): New.
6196 (compute_base_names): N-th rewrite, using filename_split.
6197
61982002-01-08 Akim Demaille <akim@epita.fr>
6199
6200 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
6201 New, stolen from the Fileutils 4.1.
6202 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
6203 * configure.in: Check for the presence of memrchr, and of its
6204 prototype.
6205
62062002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
6207
6208 * lib/hash.h (__P): Added definition for this macro.
6209 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
6210 BUILT_SOURCES, to ensure they are generated first.
6211 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
6212 %error-verbose to allow bootstrapping with bison 1.30x.
6213
62142002-01-06 Akim Demaille <akim@epita.fr>
6215
6216 * src/reader.c (parse_braces): Don't fetch the next char, the
6217 convention is to fetch on entry.
6218 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
6219 'switch' without a following semicolon.
6220 * tests/regression.at (braces parsing): New.
6221
62222002-01-06 Akim Demaille <akim@epita.fr>
6223
6224 Bison is dead wrong in its RR conflict reports.
6225
6226 * tests/torture.at (GNU Cim Grammar): New.
6227 * src/conflicts.c (count_rr_conflicts): Fix.
6228
62292002-01-06 Akim Demaille <akim@epita.fr>
6230
6231 Creating package.m4 from configure.ac causes too many problems.
6232
6233 * tests/Makefile.am (package.m4): Create it by hand,
6234 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
6235
62362002-01-06 Akim Demaille <akim@epita.fr>
6237
6238 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
6239 skeleton.h.
6240
62412002-01-04 Paul Eggert <eggert@twinsun.com>
6242
6243 * doc/bison.texinfo (Debugging):
6244 Remove YYSTDERR; it's no longer defined or used.
6245 Also, s/cstdio.h/cstdio/.
6246
62472002-01-03 Akim Demaille <akim@epita.fr>
6248
6249 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
6250
62512002-01-03 Akim Demaille <akim@epita.fr>
6252
6253 * src/parse-skel.y (process_skeleton): Don't bind the parser's
6254 tracing code to --trace, wait for a better --trace option, with
6255 args.
6256
62572002-01-03 Akim Demaille <akim@epita.fr>
6258
6259 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
6260 The ISO C++ standard is extremely clear about it: stderr is
6261 considered a macro, not a regular symbol (see table 94 `Header
6262 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
6263 Therefore std:: does not apply to it. It still does with fprintf.
6264 Also, s/cstdio.h/cstdio/.
6265
62662002-01-03 Akim Demaille <akim@epita.fr>
6267
6268 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
6269 for non system headers.
6270
62712002-01-02 Akim Demaille <akim@epita.fr>
6272
6273 Equip the skeleton chain with location tracking, runtime trace,
6274 pure parser and scanner.
6275
6276 * src/parse-skel.y: Request a pure parser, locations, and prefix
6277 renaming.
6278 (%union): Having several members with the same type does not help
6279 type mismatches, simplify.
6280 (YYPRINT, yyprint): New.
6281 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
6282 (skel_error): this.
6283 Handle locations.
6284 * src/scan-skel.l: Adjust to these changes.
6285 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
6286 (LOCATION_PRINT, skel_control_t): New.
6287
62882001-12-30 Akim Demaille <akim@epita.fr>
6289
6290 * src/parse-skel.y: Get rid of the shift/reduce conflict:
6291 replace `gb' with BLANKS.
6292 * src/scan-skel.l: Adjust.
6293
62942001-12-30 Akim Demaille <akim@epita.fr>
6295
6296 * src/system.h: We don't need nor want bcopy.
6297 Throw away MS-DOS crap: we don't need getpid.
6298 * configure.in: We don't need strndup. It was even causing
6299 problems: because Flex includes the headers *before* us,
6300 _GNU_SOURCE is not defined by config.h, and therefore strndup was
6301 not visible.
6302 * lib/xstrndup.c: New.
6303 * src/scan-skel.l: Use it.
6304 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
6305 * src/parse-skel.y: Use %directives instead of #defines.
6306
63072001-12-30 Akim Demaille <akim@epita.fr>
6308
6309 * src/skeleton.h: New.
6310 * src/output.c (output_parser, output_master_parser): Remove, dead
6311 code.
6312 * src/output.h (get_lines_number, actions_output, guards_output)
6313 (token_definitions_output): Prototype them.
6314 * src/parse-skel.y: Add the license notice.
6315 Include output.h and skeleton.h.
6316 (process_skeleton): Returns void, and takes a single parameter.
6317 * src/scan-skel.l: Add the license notice.
6318 Include skeleton.h.
6319 Don't use %option yylineno: it seems that then Flex imagines
6320 REJECT has been used, and therefore it won't reallocate its
6321 buffers (which makes no other sense to me than a bug). It results
6322 in warnings for `unused: yy_flex_realloc'.
6323
63242001-12-30 Robert Anisko <robert.anisko@epita.fr>
6325
6326 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
6327 (MUSCLE_INSERT_PREFIX): ...to there.
6328 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
6329 (MUSCLE_INSERT_PREFIX): Move from here...
6330
6331 * src/bison.hairy: Add a section directive. Put braces around muscle
6332 names. This parser skeleton is still broken, but Bison should not
6333 choke on a bad muscle 'syntax'.
6334 * src/bison.simple: Add a section directive. Put braces around muscle
6335 names.
6336
6337 * src/files.h (strsuffix, stringappend): Add declarations.
6338 (tab_extension): Add declaration.
6339 (short_base_name): Add declaration.
6340
6341 * src/files.c (strsuffix, stringappend): No longer static. These
6342 functions are used in the skeleton parser.
6343 (tab_extension): New.
6344 (compute_base_names): Use the computations done in this function
6345 to guess if the generated parsers should have '.tab' in their
6346 names.
6347 (short_base_name): No longer static.
6348
6349 * src/output.c (output_skeleton): New.
6350 (output): Disable call to output_master_parser, and give a try to
6351 a new skeleton handling system.
6352 (guards_output, actions_output): No longer static.
6353 (token_definitions_output, get_lines_number): No longer static.
6354
6355 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
6356
6357 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
6358 parse-skel.y.
6359
6360 * src/parse-skel.y: New file.
6361 * src/scan-skel.l: New file.
6362
63632001-12-29 Akim Demaille <akim@epita.fr>
6364
6365 %name-prefix is broken.
6366
6367 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
6368 Adjust all dependencies.
6369 * tests/headers.at (export YYLTYPE): Strengthen this test: use
6370 %name-prefix.
6371
6372 Renaming yylval but not yylloc is not consistent. Now we do.
6373
6374 * src/bison.simple: Prefix yylloc if used.
6375 * doc/bison.texinfo (Decl Summary): Document that.
6376
63772001-12-29 Akim Demaille <akim@epita.fr>
6378
6379 * doc/bison.texinfo: Promote `%long-directive' over
6380 `%long_directive'.
6381 Remove all references to fixed-output-files, yacc is enough.
6382
63832001-12-29 Akim Demaille <akim@epita.fr>
6384
6385 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
6386 user prologue. These are defaults.
6387 * tests/actions.at (Mid-rule actions): Make sure the user can
6388 define YYDEBUG and YYERROR_VERBOSE.
6389
63902001-12-29 Akim Demaille <akim@epita.fr>
6391
6392 * src/output.c (header_output): Don't forget to export YYLTYPE and
6393 yylloc.
6394 * tests/headers.at (export YYLTYPE): New, make sure it does.
6395 * tests/regression.at (%union and --defines, Invalid CPP headers):
6396 Move to...
6397 * tests/headers.at: here.
6398
63992001-12-29 Akim Demaille <akim@epita.fr>
6400
6401 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
6402
64032001-12-29 Akim Demaille <akim@epita.fr>
6404
6405 * tests/actions.at (Mid-rule actions): Output on a single line
6406 instead of several.
6407
64082001-12-29 Akim Demaille <akim@epita.fr>
6409
6410 * doc/bison.texinfo: Formatting changes.
6411
64122001-12-29 Akim Demaille <akim@epita.fr>
6413
6414 Don't store the token defs in a muscle, just be ready to output it
6415 on command. Now possible via `symbols'. Fixes a memory leak.
6416
6417 * src/output.c (token_definitions_output): New.
6418 (output_parser, header_output): Use it.
6419 * src/reader.c (symbols_save): Remove.
6420
64212001-12-29 Akim Demaille <akim@epita.fr>
6422
6423 * src/bison.simple: Do not provide a default for YYSTYPE and
6424 YYLTYPE before the user's prologue. Otherwise it's hardly... a
6425 default.
6426
64272001-12-29 Akim Demaille <akim@epita.fr>
6428
6429 Mid-rule actions are simply... ignored!
6430
6431 * src/reader.c (readgram): Be sure to attach mid-rule actions to
6432 the empty-rule associated to the dummy symbol, not to the host
6433 rule.
6434 * tests/actions.at (Mid-rule actions): New.
6435
64362001-12-29 Akim Demaille <akim@epita.fr>
6437
6438 Memory leak.
6439
6440 * src/reader.c (reader): Free grammar.
6441
64422001-12-29 Akim Demaille <akim@epita.fr>
6443
6444 Memory leak.
6445
6446 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
6447 since it allocates it for each state, although only one is needed.
6448 (allocate_storage): Do it here.
6449
64502001-12-29 Akim Demaille <akim@epita.fr>
6451
6452 * src/options.h, src/options.c (create_long_option_table): Rename
6453 as...
6454 (long_option_table_new): this, with a clearer prototype.
6455 (percent_table): Remove, unused,
6456 * src/getargs.c (getargs): Adjust.
6457
64582001-12-29 Akim Demaille <akim@epita.fr>
6459
6460 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
6461 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
6462 as states.
6463
64642001-12-29 Akim Demaille <akim@epita.fr>
6465
6466 * src/lalr.c (build_relations): Rename `states' as `states1'.
6467 Sorry, I don't understand exactly what it is, no better name...
6468
64692001-12-29 Akim Demaille <akim@epita.fr>
6470
6471 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
6472 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
6473 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
6474 as rules.
6475
64762001-12-29 Akim Demaille <akim@epita.fr>
6477
6478 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
6479 ago.
6480
64812001-12-29 Akim Demaille <akim@epita.fr>
6482
6483 * src/reader.c, src/reader.h (user_toknums): Remove.
6484 Adjust all users to use symbols[i]->user_token_number.
6485
64862001-12-29 Akim Demaille <akim@epita.fr>
6487
6488 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
6489 Adjust all users to use symbols[i]->prec or ->assoc.
6490
64912001-12-29 Akim Demaille <akim@epita.fr>
6492
6493 * src/reader.c, src/reader.h (tags): Remove.
6494 Adjust all users to use symbols[i]->tag.
6495
64962001-12-29 Akim Demaille <akim@epita.fr>
6497
6498 * src/gram.h, src/gram.c (symbols): New, similar to state_table
6499 and rule_table.
6500 * src/reader.c (packsymbols): Fill this table.
6501 Drop sprec.
6502 * src/conflicts.c (resolve_sr_conflict): Adjust.
6503 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
6504 single table.
6505 Use symbols[i]->tag instead of tags[i].
6506
65072001-12-29 Akim Demaille <akim@epita.fr>
6508
6509 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
6510 In addition, put a comment in there, to replace...
6511 * tests/regression.at (%union and C comments): Remove.
6512
65132001-12-29 Akim Demaille <akim@epita.fr>
6514
6515 * tests/regression.at (Web2c Actions): Blindly move the actual
6516 output as expected output. The contents *seem* right to me, but I
6517 can't pretend reading perfectly parser tables... Nonetheless, all
6518 the other tests pass correctly, the table look OK, even though the
6519 presence of `$axiom' is to be noted: AFAICS it is useless (but
6520 harmless).
6521
65222001-12-29 Akim Demaille <akim@epita.fr>
6523
6524 * src/reader.c (readgram): Don't add the rule 0 if there were no
6525 rules read. In other words, add it _after_ having performed
6526 grammar sanity checks.
6527 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
6528
65292001-12-29 Akim Demaille <akim@epita.fr>
6530
6531 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
6532 visible, and some states have now a different number.
6533
65342001-12-29 Akim Demaille <akim@epita.fr>
6535
6536 * src/reader.c (readgram): Bind the initial rule's lineno to that
6537 of the first rule.
6538 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
6539 (Solved SR Conflicts): Adjust rule 0's line number.
6540
65412001-12-29 Akim Demaille <akim@epita.fr>
6542
6543 Fix the `GAWK Grammar' failure.
6544
6545 * src/LR0.c (final_state): Initialize to -1 so that we do compute
6546 the reductions of the first state which was mistakenly confused
6547 with the final state because precisely final_state was initialized
6548 to 0.
6549 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
6550 now noticed by Bison.
6551 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
6552 have a reduction on $default.
6553
65542001-12-29 Akim Demaille <akim@epita.fr>
6555
6556 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
6557 rule line numbers.
6558 * src/closure.c (print_closure): Likewise.
6559 * src/derives.c (print_derives): Likewise.
6560 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
6561 now.
6562
65632001-12-29 Akim Demaille <akim@epita.fr>
6564
6565 * src/lalr.c (lookaheads_print): New.
6566 (lalr): Call it when --trace-flag.
6567 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
6568 are dumped.
6569
65702001-12-29 Akim Demaille <akim@epita.fr>
6571
6572 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
6573 when walking through ritem, even via rule->rhs.
6574 * src/reduce.c (dump_grammar, useful_production, reduce_output)
6575 (useful_production, useless_nonterminals): Likewise.
6576 (reduce_grammar_tables): Likewise, plus update nritems.
6577 * src/nullable.c (set_nullable): Likewise.
6578 * src/lalr.c (build_relations): Likewise.
6579 * tests/sets.at (Nullable): Adjust.
6580 Fortunately, now, the $axiom is no longer nullable.
6581
65822001-12-29 Akim Demaille <akim@epita.fr>
6583
6584 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6585 the 0-sentinel.
6586 * src/gram.c (ritem_longest_rhs): Likewise.
6587 * src/reduce.c (nonterminals_reduce): Likewise.
6588 * src/print_graph.c (print_graph): Likewise.
6589 * src/output.c (output_rule_data): Likewise.
6590 * src/nullable.c (set_nullable): Likewise.
6591
65922001-12-29 Akim Demaille <akim@epita.fr>
6593
6594 * src/output.c: Comment changes.
6595
65962001-12-27 Paul Eggert <eggert@twinsun.com>
6597
6598 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6599 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6600 Sparc, as they were causing more porting problems than the
6601 (minor) performance improvement was worth.
6602
6603 Also, catch up with 1.31's YYSTD.
6604
66052001-12-27 Akim Demaille <akim@epita.fr>
6606
6607 * src/output.c (output_gram): Rely on nritems, not the
6608 0-sentinel. See below.
6609 Use -1 as separator, not 0.
6610 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6611 Rely on -1 as separator in yyrhs, instead of 0.
6612 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6613 twice `Now at end of input', therefore there are two lines less to
6614 expect.
6615
66162001-12-27 Akim Demaille <akim@epita.fr>
6617
6618 * tests/regression.at (Unresolved SR Conflicts):
6619 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6620 below.
6621
66222001-12-27 Akim Demaille <akim@epita.fr>
6623
6624 * src/LR0.c (new_state): Recognize the final state by the fact it
6625 is reached by eoftoken.
6626 (insert_start_shifting_state, insert_eof_shifting_state)
6627 (insert_accepting_state, augment_automaton): Remove, since now
6628 these states are automatically computed from the initial state.
6629 (generate_states): Adjust.
6630 * src/print.c: When reporting a rule number to the user, substract
6631 1, so that the axiom rule is rule 0, and the first user rule is 1.
6632 * src/reduce.c: Likewise.
6633 * src/print_graph.c (print_core): For the time being, just as for
6634 the report, depend upon --trace-flags to dump the full set of
6635 items.
6636 * src/reader.c (readgram): Once the grammar read, insert the rule
6637 0: `$axiom: START-SYMBOL $'.
6638 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6639 number of the states has changed (the final state is no longer
6640 necessarily the last), catch up.
6641
66422001-12-27 Akim Demaille <akim@epita.fr>
6643
6644 Try to make the use of the eoftoken valid. Given that its value
6645 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6646 is used instead of > 0 where appropriate, (ii), depend upon nritems
6647 instead of the 0-sentinel.
6648
6649 * src/gram.h, src/gram.c (nritems): New.
6650 Expected to be duplication of nitems, but for the time being...
6651 * src/reader.c (packgram): Assert nritems and nitems are equal.
6652 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6653 * src/closure.c (print_closure, print_fderives): Likewise.
6654 * src/gram.c (ritem_print): Likewise.
6655 * src/print.c (print_core, print_grammar): Likewise.
6656 * src/print_graph.c: Likewise.
6657
66582001-12-27 Akim Demaille <akim@epita.fr>
6659
6660 * src/main.c (main): If there are complains after grammar
6661 reductions, then output the report anyway if requested, then die.
6662 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6663 * src/reader.c (eoftoken): New.
6664 (parse_token_decl): If the token being defined has value `0', it
6665 is the eoftoken.
6666 (packsymbols): No longer hack `tags' to insert `$' by hand.
6667 Be sure to preserve the value of the eoftoken.
6668 (reader): Make sure eoftoken is defined.
6669 Initialize nsyms to 0: now eoftoken is created just like the others.
6670 * src/print.c (print_grammar): Don't special case the eof token.
6671 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6672 lie anyway, albeit pleasant.
6673 * tests/calc.at: Exercise error messages with eoftoken.
6674 Change the grammar so that empty input is invalid.
6675 Adjust expectations.
6676 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6677
66782001-12-27 Akim Demaille <akim@epita.fr>
6679
6680 * configure.in: Check the protos of strchr ans strspn.
6681 Replace strchr if needed.
6682 * src/system.h: Provide the protos of strchr, strspn and memchr if
6683 missing.
6684 * lib/strchr.c: New.
6685 * src/reader.c (symbols_save): Use strchr.
6686
66872001-12-27 Akim Demaille <akim@epita.fr>
6688
6689 * src/print.c, src/print_graph.c (escape): New.
6690 Use it to quote the TAGS outputs.
6691 * src/print_graph.c (print_state): Now errors are in red, and
6692 reductions in green.
6693 Prefer high to wide: output the state number on a line of its own.
6694
66952001-12-27 Akim Demaille <akim@epita.fr>
6696
6697 * src/state.h, src/state.c (reductions_new): New.
6698 * src/LR0.c (set_state_table): Let all the states have a
6699 `reductions', even if reduced to 0.
6700 (save_reductions): Adjust.
6701 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6702 * src/print.c (print_reductions, print_actions): Adjust.
6703 * src/output.c (action_row): Adjust.
6704
67052001-12-27 Akim Demaille <akim@epita.fr>
6706
6707 * src/state.h, src/state.c (errs_new, errs_dup): New.
6708 * src/LR0.c (set_state_table): Let all the states have an errs,
6709 even if reduced to 0.
6710 * src/print.c (print_errs, print_reductions): Adjust.
6711 * src/output.c (output_actions, action_row): Adjust.
6712 * src/conflicts.c (resolve_sr_conflict): Adjust.
6713
67142001-12-27 Akim Demaille <akim@epita.fr>
6715
6716 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6717
67182001-12-27 Akim Demaille <akim@epita.fr>
6719
6720 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6721 * src/print.c: here.
6722 (lookaheadset, shiftset): New, used as additional storage by
6723 print_reductions.
6724 (print_results): Adjust.
6725 (print_shifts, print_gotos, print_errs): New, extracted from...
6726 (print_actions): here.
6727 * src/print_graph.c (print_actions): Remove dead code.
6728
67292001-12-27 Akim Demaille <akim@epita.fr>
6730
6731 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6732 `$n' and `@n'.
6733
67342001-12-27 Akim Demaille <akim@epita.fr>
6735
6736 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6737 (build_relations): Adjust.
6738
67392001-12-27 Akim Demaille <akim@epita.fr>
6740
6741 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6742 duplication.
6743
67442001-12-27 Akim Demaille <akim@epita.fr>
6745
6746 * src/reader.c (packgram): Catch nitems overflows.
6747
67482001-12-27 Akim Demaille <akim@epita.fr>
6749
6750 * src/files.c, src/files.h (guard_obstack): Remove.
6751 * src/output.c (output): Adjust.
6752 * src/reader.c (parse_braces): New, factoring...
6753 (copy_action, copy_guard): these two which are renamed as...
6754 (parse_action, parse_guard): these.
6755 As a voluntary consequence, using braces around guards is now
6756 mandatory.
6757
67582001-12-27 Akim Demaille <akim@epita.fr>
6759
6760 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6761 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6762 members.
6763 (symbol_list_new): Adjust.
6764 (copy_action): action_line is the first line, not the last.
6765 (copy_guard): Just as for actions, store the `action' only, not
6766 the switch/case/break flesh.
6767 Don't parse the user action that might follow the guard, let...
6768 (readgram): do it, i.e., now, there can be an action after a
6769 guard.
6770 In other words the guard is just explicitly optional.
6771 (packgram): Adjust.
6772 * src/output.c (guards_output): New.
6773 (output_parser): Call it when needed.
6774 (output): Also free the guard and attrs obstacks.
6775 * src/files.c, src/files.h (obstack_save): Remove.
6776 (output_files): Remove.
6777 As a result, if one needs the former `.act' file, using an
6778 appropriate skeleton which requires actions and guards is now
6779 required.
6780 * src/main.c (main): Adjust.
6781 * tests/semantic.at: New.
6782 * tests/regression.at: Use `input.y' as input file name.
6783 Avoid 8+3 problems by requiring input.c when the test needs the
6784 parser.
6785
67862001-12-27 Akim Demaille <akim@epita.fr>
6787
6788 * src/reader.c (symbol_list_new): Be sure to initialize all the
6789 fields.
6790
67912001-12-27 Akim Demaille <akim@epita.fr>
6792
6793 All the hacks using a final pseudo state are now useless.
6794
6795 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6796 * src/lalr.c (nLA): New.
6797 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6798 instead of lookaheadsp from the pseudo state (nstate + 1).
6799
68002001-12-27 Akim Demaille <akim@epita.fr>
6801
6802 * src/output.c (action_row, token_actions): Use a state_t instead
6803 of a integer, and nlookaheads instead of the following state's
6804 lookaheadsp.
6805
68062001-12-27 Akim Demaille <akim@epita.fr>
6807
6808 * src/conflicts.c (log_resolution, flush_shift)
6809 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6810 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6811 (conflicts_print, print_reductions): Use a state_t instead of an
6812 integer when referring to a state.
6813 As much as possible, depend upon nlookaheads, instead of the
6814 `lookaheadsp' member of the following state (since lookaheads of
6815 successive states are successive, the difference between state n + 1
6816 and n served as the number of lookaheads for state n).
6817 * src/lalr.c (add_lookback_edge): Likewise.
6818 * src/print.c (print_core, print_actions, print_state)
6819 (print_results): Likewise.
6820 * src/print_graph.c (print_core, print_actions, print_state)
6821 (print_graph): Likewise.
6822 * src/conflicts.h: Adjust.
6823
68242001-12-27 Akim Demaille <akim@epita.fr>
6825
6826 * src/bison.hairy: Formatting/comment changes.
6827 ANSIfy.
6828 Remove `register' indications.
6829 Add plenty of `static'.
6830
68312001-12-27 Akim Demaille <akim@epita.fr>
6832
6833 * src/output.c (prepare): Drop the muscle `ntbase' which
6834 duplicates ntokens.
6835 * src/bison.simple: Formatting/comment changes.
6836 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6837 is an undocumented synonym.
6838
68392001-12-22 Akim Demaille <akim@epita.fr>
6840
6841 * src/output.c (output_table_data): Change the prototype to use
6842 `int' for array ranges: some invocations do pass an int, not a
6843 short.
6844 Reported by Wayne Green.
6845
68462001-12-22 Akim Demaille <akim@epita.fr>
6847
6848 Some actions of web2c.y are improperly triggered.
6849 Reported by Mike Castle.
6850
6851 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6852 * tests/regression.at (Web2c): Rename as...
6853 (Web2c Report): this.
6854 (Web2c Actions): New.
6855
68562001-12-22 Akim Demaille <akim@epita.fr>
6857
6858 Reductions in web2c.y are improperly reported.
6859 Reported by Mike Castle.
6860
6861 * src/conflicts.c (print_reductions): Fix.
6862 * tests/regression.at (Web2c): New.
6863
68642001-12-18 Akim Demaille <akim@epita.fr>
6865
6866 Some host fail on `assert (!"foo")', which expands to
6867 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6868 Reported by Nelson Beebee.
6869
6870 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6871 `#define it_succeeded 0' and `assert (it_succeeded)'.
6872
68732001-12-17 Marc Autret <autret_m@epita.fr>
6874
6875 * src/bison.simple: Don't hard code the skeleton line and filename.
6876 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6877 New line counter 'skeleton_line' (skeleton-line muscle).
6878
68792001-12-17 Paul Eggert <eggert@twinsun.com>
6880
6881 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6882 YYDEBUG must be defined to a nonzero value.
6883
6884 * src/bison.simple (yytname): Do not assume that the user defines
6885 YYDEBUG to a properly parenthesized expression.
6886
68872001-12-17 Akim Demaille <akim@epita.fr>
6888
6889 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6890 nlookaheads is a new member.
6891 Adjust all users.
6892 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6893 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6894 state.
6895
68962001-12-17 Akim Demaille <akim@epita.fr>
6897
6898 * src/files.h, src/files.c (open_files, close_files): Remove.
6899 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6900 let...
6901 * src/reader.c (reader): Do it.
6902
69032001-12-17 Akim Demaille <akim@epita.fr>
6904
6905 * src/conflicts.c (print_reductions): Formatting changes.
6906
69072001-12-17 Akim Demaille <akim@epita.fr>
6908
6909 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6910 (flush_reduce): New.
6911 (resolve_sr_conflict): Adjust.
6912
69132001-12-17 Akim Demaille <akim@epita.fr>
6914
6915 * src/output.c (output_obstack): Be static and rename as...
6916 (format_obstack): this, to avoid any confusion with files.c's
6917 output_obstack.
6918 * src/reader.h (muscle_obstack): Move to...
6919 * src/output.h: here, since it's defined in output.c.
6920
69212001-12-17 Akim Demaille <akim@epita.fr>
6922
6923 * src/output.c (action_row, save_column, default_goto)
6924 (sort_actions, matching_state, pack_vector): Better variable
6925 locality.
6926
69272001-12-17 Akim Demaille <akim@epita.fr>
6928
6929 * src/output.c: Various formatting changes.
6930
69312001-12-17 Akim Demaille <akim@epita.fr>
6932
6933 * src/files.c (output_files): Free the output_obstack.
6934 * src/main.c (main): Call print and print_graph conditionally.
6935 * src/print.c (print): Work unconditionally.
6936 * src/print_graph.c (print_graph): Work unconditionally.
6937 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6938
69392001-12-16 Marc Autret <autret_m@epita.fr>
6940
6941 * src/output.c (actions_output): Fix. When we use %no-lines,
6942 there is one less line per action.
6943
69442001-12-16 Marc Autret <autret_m@epita.fr>
6945
6946 * src/bison.simple: Remove a useless #line directive.
6947 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6948 * src/output.c (get_lines_number): New.
6949 (output_parser): Adjust, now takes care about the lines of a
6950 output muscles.
6951 Fix line numbering.
6952 (actions_output): Computes the number of lines taken by actions.
6953 (output_master_parser): Insert new skeleton which is the name of
6954 the output parser file name.
6955
69562001-12-15 Marc Autret <autret_m@epita.fr>
6957
6958 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6959
69602001-12-15 Marc Autret <autret_m@epita.fr>
6961
6962 * src/output.c (output_gram): Keep track of the hairy one.
6963
69642001-12-15 Akim Demaille <akim@epita.fr>
6965
6966 Make `make distcheck' work.
6967
6968 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6969 system.h which uses libgettext.h.
6970
69712001-12-15 Akim Demaille <akim@epita.fr>
6972
6973 * src/nullable.c (set_nullable): Useless rules must be skipped,
6974 otherwise, since we range over their symbols, we might look at a
6975 nonterminal which no longer ``exists'', i.e., it is not counted in
6976 `nvars', hence we overflow our arrays.
6977
69782001-12-15 Akim Demaille <akim@epita.fr>
6979
6980 The header can also be produced directly, without any obstack!
6981 Yahoo!
6982
6983 * src/files.c, src/files.h (defines_obstack): Remove.
6984 (compute_header_macro): Global.
6985 (defines_obstack_save): Remove.
6986 * src/reader.c (parse_union_decl): No longer output to
6987 defines_obstack: its content can be found in the `stype' muscle
6988 anyway.
6989 (output_token_translations): Merge into...
6990 (symbols_output): this.
6991 Rename as...
6992 (symbols_save): this.
6993 (reader): Adjust.
6994 * src/output.c (header_output): New.
6995 (output): Call it.
6996
69972001-12-15 Akim Demaille <akim@epita.fr>
6998
6999 * src/reader.c (parse_union_decl): Instead of handling two obstack
7000 simultaneously, use one to define the `stype' muscle, and use the
7001 value of the latter to fill defines_obstack.
7002 (copy_comment): Remove.
7003 (copy_comment2): Work for a single obstack.
7004 Rename as...
7005 (copy_comment): this.
7006
70072001-12-15 Akim Demaille <akim@epita.fr>
7008
7009 * src/lex.c, src/lex.h (xgetc): No longer static.
7010 * src/reader.c (parse_union_decl): Revamp.
7011
70122001-12-15 Akim Demaille <akim@epita.fr>
7013
7014 Still making progress in separating Bison into (i) input, (ii)
7015 process, (iii) output: now we can directly output the parser file
7016 without using table_obstack at all.
7017
7018 * src/files.c, src/files.h (table_obstack): Bye bye.
7019 (parser_file_name): New.
7020 * src/files.c (compute_output_file_names): Compute it.
7021 * src/output.c (actions_output, output_parser)
7022 (output_master_parser): To a file instead of an obstack.
7023
70242001-12-15 Akim Demaille <akim@epita.fr>
7025
7026 Attach actions to rules, instead of pre-outputting them to
7027 actions_obstack.
7028
7029 * src/gram.h (rule_t): action and action_line are new members.
7030 * src/reader.c (symbol_list): Likewise.
7031 (copy_action): Save the actions within the rule.
7032 (packgram): Save them in rule_table.
7033 * src/output.c (actions_output): New.
7034 (output_parser): Use it on `%%actions'.
7035 (output_rule_data): Don't free rule_table.
7036 (output): Do it.
7037 (prepare): Don't save the `action' muscle.
7038 * src/bison.simple: s/%%action/%%actions/.
7039
70402001-12-15 Akim Demaille <akim@epita.fr>
7041
7042 * src/reader.c (copy_action): When --yacc, don't append a `;'
7043 to the user action: let it fail if lacking.
7044 Suggested by Arnold Robbins and Tom Tromey.
7045
70462001-12-14 Akim Demaille <akim@epita.fr>
7047
7048 * src/lex.c (literalchar): Simply return the char you decoded, non
7049 longer mess around with obstacks and int pointers.
7050 Adjust all callers.
7051
70522001-12-14 Akim Demaille <akim@epita.fr>
7053
7054 * src/lex.c (literalchar): Don't escape the special characters,
7055 just decode them, and keep them as char (before, eol was output as
7056 the 2 char string `\n' etc.).
7057 * src/output.c (output_rule_data): Use quotearg to output the
7058 token strings.
7059
70602001-12-13 Paul Eggert <eggert@twinsun.com>
7061
7062 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
7063 Do not infringe on the global user namespace when using C++.
7064 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
7065 All uses of `fprintf' and `stderr' changed.
7066
7067 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
7068
70692001-12-13 Akim Demaille <akim@epita.fr>
7070
7071 The computation of nullable is broken: it doesn't handle empty
7072 RHS's properly.
7073
7074 * tests/torture.at (GNU AWK Grammar): New.
7075 * tests/sets.at (Nullable): New.
7076 * src/nullable.c (set_nullable): Instead of blindly looping over
7077 `ritems', loop over the rules, and then over their rhs's.
7078
7079 Work around Autotest bugs.
7080
7081 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
7082 frame, because Autotest understand lines starting with a `+' as
7083 traces from the shell. Then, they are not processed properly.
7084 Admittedly an Autotest bug, but we don't have time to wait for
7085 Autotest to catch up.
7086 * tests/regression.at (Broken Closure): Adjust to the new table
7087 frames.
7088 Move to...
7089 * tests/sets.at: here.
7090
70912001-12-13 Akim Demaille <akim@epita.fr>
7092
7093 * src/closure.c (closure): Use nrules instead of playing tricks
7094 with BITS_PER_WORD.
7095
70962001-12-13 Akim Demaille <akim@epita.fr>
7097
7098 * src/print.c (print_actions): Output the handling of `$' as the
7099 traces do: shifting the token EOF. Before EOF was treated as a
7100 nonterminal.
7101 * tests/regression.at: Adjust some tests.
7102 * src/print_graph.c (print_core): Complete the set of items via
7103 closure. The next-to-final and final states are still unsatisfying,
7104 but that's to be addressed elsewhere.
7105 No longer output the rule numbers, but do output the state number.
7106 A single loop for the shifts + gotos is enough, but picked a
7107 distinct color for each.
7108 (print_graph): Initialize and finalize closure.
7109
71102001-12-13 Akim Demaille <akim@epita.fr>
7111
7112 * src/reader.c (readgram): Remove dead code, an strip useless
7113 braces.
7114 (get_type): Remove, unused.
7115
71162001-12-12 Akim Demaille <akim@epita.fr>
7117
7118 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
7119 on that of lib/error.c.
7120
71212001-12-12 Akim Demaille <akim@epita.fr>
7122
7123 Some hosts don't like `/' in includes.
7124
7125 * src/system.h: Include libgettext.h without qualifying the path.
7126 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
7127 $(top_srcdir).
7128
71292001-12-11 Marc Autret <autret_m@epita.fr>
7130
7131 * src/output.c (output_parser): Remove useless muscle.
7132
71332001-12-11 Marc Autret <autret_m@epita.fr>
7134
7135 * src/bison.simple: Remove #line just before %%epilogue. It
7136 is now handled in ...
7137 * src/reader.c (read_additionnal_code): Add the output of a
7138 #line for the epilogue.
7139
71402001-12-10 Marc Autret <autret_m@epita.fr>
7141
7142 * src/reader.c (copy_definition): Re-use CPP-outed code which
7143 replace precedent remove.
7144 * src/bison.simple: Remove #line before %%prologue because
7145 %%input-line is wrong at this time.
7146
71472001-12-10 Marc Autret <autret_m@epita.fr>
7148
7149 * src/reader.c (symbols_output): Clean up.
7150 * src/output.c (output_gram, output): Clean up.
7151
71522001-12-10 Akim Demaille <akim@epita.fr>
7153
7154 * src/lalr.c (initialize_lookaheads): New. Extracted from...
7155 * src/LR0.c (set_state_table): here.
7156 * src/lalr.c (lalr): Call it.
7157
71582001-12-10 Akim Demaille <akim@epita.fr>
7159
7160 * src/state.h (shifts): Remove the `number' member: shifts are
7161 attached to state, hence no longer need to be labelled with a
7162 state number.
7163
71642001-12-10 Akim Demaille <akim@epita.fr>
7165
7166 Now that states have a complete set of members, the linked list of
7167 shifts is useless: just fill directly the state's shifts member.
7168
7169 * src/state.h (shifts): Remove the `next' member.
7170 * src/LR0.c (first_state, last_state): Remove.
7171 Adjust the callers.
7172 (augment_automaton): Don't look for the shifts that must be added
7173 a shift on EOF: it is those of the state we looked for! But now,
7174 since shifts are attached, it is no longer needed to looking
7175 merely by its id: its number.
7176
71772001-12-10 Akim Demaille <akim@epita.fr>
7178
7179 * src/LR0.c (augment_automaton): Better variable locality.
7180 Remove an impossible branch: if there is a state corresponding to
7181 the start symbol being shifted, then there is shift for the start
7182 symbol from the initial state.
7183
71842001-12-10 Akim Demaille <akim@epita.fr>
7185
7186 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
7187 only when appropriate: when insert_start_shifting_state' is not
7188 invoked.
7189 * tests/regression.at (Rule Line Numbers): Adjust.
7190
71912001-12-10 Akim Demaille <akim@epita.fr>
7192
7193 * src/LR0.c (augment_automaton): Now that all states have shifts,
7194 merge the two cases addition shifts to the initial state.
7195
71962001-12-10 Akim Demaille <akim@epita.fr>
7197
7198 * src/lalr.c (set_state_table): Move to...
7199 * src/LR0.c: here.
7200 * src/lalr.c (lalr): Don't call it...
7201 * src/LR0.c (generate_states): do it.
7202 * src/LR0.h (first_state): Remove, only the table is used.
7203
72042001-12-10 Akim Demaille <akim@epita.fr>
7205
7206 * src/LR0.h (first_shift, first_reduction): Remove.
7207 * src/lalr.c: Don't use first_shift: find shifts through the
7208 states.
7209
72102001-12-10 Akim Demaille <akim@epita.fr>
7211
7212 * src/LR0.c: Attach shifts to states as soon as they are
7213 computed.
7214 * src/lalr.c (set_state_table): Instead of assigning shifts to
7215 state, just assert that the mapping was properly done.
7216
72172001-12-10 Akim Demaille <akim@epita.fr>
7218
7219 * src/LR0.c (insert_start_shift): Rename as...
7220 (insert_start_shifting_state): this.
7221 (insert_eof_shifting_state, insert_accepting_state): New.
7222 (augment_automaton): Adjust.
7223 Better locality of the variables.
7224 When looking if the start_symbol is shifted from the initial
7225 state, using `while (... symbol != start_symbol ...)' sounds
7226 better than `while (... symbol < start_symbol ...)': If fail
7227 to see how the order between symbols could be relevant!
7228
72292001-12-10 Akim Demaille <akim@epita.fr>
7230
7231 * src/getargs.h: Don't declare `spec_name_prefix' and
7232 `spec_file_prefix', declared by src/files.h.
7233 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
7234 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
7235 * src/output.c (prepare): Adjust.
7236 * src/reader.c (symbols_output): Likewise.
7237 * src/vmsgetargs.c: Vaguely adjust, but who cares?
7238
72392001-12-10 Akim Demaille <akim@epita.fr>
7240
7241 * src/muscle_tab.c (muscle_init): NULL is a better default than
7242 `"0"'.
7243
72442001-12-10 Akim Demaille <akim@epita.fr>
7245
7246 * src/reader.c (reader): Calling symbols_output once is enough.
7247
72482001-12-10 Akim Demaille <akim@epita.fr>
7249
7250 Now that states have a complete set of members, the linked list of
7251 reductions is useless: just fill directly the state's reductions
7252 member.
7253
7254 * src/state.h (struct reductions): Remove member `number' and
7255 `next'.
7256 * src/LR0.c (first_reduction, last_reduction): Remove.
7257 (save_reductions): Don't link the new reductions, store them in
7258 this_state.
7259 * src/lalr.c (set_state_table): No need to attach reductions to
7260 states, it's already done.
7261 * src/output.c (output_actions): No longer free the shifts, then
7262 the reductions, then the states: free all the states and their
7263 members.
7264
72652001-12-10 Akim Demaille <akim@epita.fr>
7266
7267 * src/options.c (OPTN, DRTV, BOTH): New.
7268 (option_table): Use them.
7269
7270 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
7271 the job of system.h.
7272 * src/options.c: Don't include stdio.h and xalloc.h for the same
7273 reasons.
7274
72752001-12-10 Akim Demaille <akim@epita.fr>
7276
7277 * src/output.c (output, prepare): Make sure the values of the
7278 muscles `action' and `prologue' are 0-terminated.
7279
72802001-12-10 Akim Demaille <akim@epita.fr>
7281
7282 Clean up GCC warnings.
7283
7284 * src/reader.c (copy_action): `buf' is not used.
7285 (parse_skel_decl): Be static.
7286 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
7287 * src/options.h (create_long_option_table): Have a real prototype.
7288 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
7289 (hash_delete_at): Return const void *.
7290 Adjust casts to preserve the const.
7291
72922001-12-10 Akim Demaille <akim@epita.fr>
7293
7294 * configure.in: Require 2.52g.
7295 M4 is not needed, but AUTOM4TE is.
7296 * m4/m4.m4: Remove.
7297 * tests/Makefile.am: Adjust.
7298
72992001-12-10 Akim Demaille <akim@epita.fr>
7300
7301 One structure for states is enough, even though theoretically
7302 there are LR(0) states and LALR(1) states.
7303
7304 * src/lalr.h (state_t): Remove.
7305 (state_table): Be state_t **, not state_t *.
7306 * src/state.h (core, CORE_ALLOC): Rename as...
7307 (state_t, STATE_ALLOC): this.
7308 Add the LALR(1) members: shifts, reductions, errs.
7309 * src/LR0.c (state_table): Rename as...
7310 (state_hash): this, to avoid name clashes with the global
7311 `state_table'.
7312 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
7313 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
7314
73152001-12-10 Akim Demaille <akim@epita.fr>
7316
7317 Bison dumps core on bash.y.
7318 Reported by Pascal Bart.
7319
7320 * src/warshall.c (bitmatrix_print): New.
7321 (TC): Use it.
7322 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
7323 j must be the outer loop.
7324 * tests/regression.at (Broken Closure): New.
7325
73262001-12-05 Akim Demaille <akim@epita.fr>
7327
7328 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
7329 its argument.
7330 Reported by Peter Hamorsky.
7331
73322001-12-05 Akim Demaille <akim@epita.fr>
7333
7334 * src/conflicts.c (err_table): Remove.
7335 (resolve_sr_conflict): Adjust.
7336 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
7337 Rename as...
7338 (state_t.reductions, state_t.shifts): this.
7339
73402001-12-05 Akim Demaille <akim@epita.fr>
7341
7342 * src/reduce.c (reduce_grammar_tables): No longer disable the
7343 removal of useless rules via CPP but via `if (0)', so that the
7344 compiler still check the code is valid.
7345 For instance, it should have noticed `rline' no longer exists: use
7346 the `line' member of rule_t.
7347 * src/gram.c (dummy, rline): Remove, unused.
7348
73492001-12-05 Akim Demaille <akim@epita.fr>
7350
7351 * src/output.c (pack_vector): Use assert, not berror.
7352 * src/main.c (berror): Remove, unused.
7353
73542001-12-05 Akim Demaille <akim@epita.fr>
7355
7356 New experimental feature: if --verbose --trace output all the
7357 items of a state, not only its kernel.
7358
7359 * src/print.c (print_core): If `trace_flag', then invoke closure
7360 before outputting the items of the state (print_core is no longer
7361 a correct name them).
7362 (print_results): Invoke new_closure/free_closure if needed.
7363
73642001-12-05 Akim Demaille <akim@epita.fr>
7365
7366 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
7367 * src/closure.c, src/closure.h (itemsetsize): Rename as...
7368 (nitemset): for consistency with the rest of the project.
7369
73702001-12-05 Akim Demaille <akim@epita.fr>
7371
7372 * src/closure.c (print_closure): Improve.
7373 (closure): Use it for printing input and output.
7374
73752001-12-05 Akim Demaille <akim@epita.fr>
7376
7377 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
7378 indexed by nonterminals.
7379
73802001-12-05 Akim Demaille <akim@epita.fr>
7381
7382 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
7383 what it was!).
7384 * src/warshall.h: Remove accidental duplication of the content.
7385
73862001-12-05 Akim Demaille <akim@epita.fr>
7387
7388 * src/closure.c (set_fderives): De-obfuscate.
7389
73902001-12-05 Akim Demaille <akim@epita.fr>
7391
7392 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
7393
73942001-12-05 Akim Demaille <akim@epita.fr>
7395
7396 * src/closure.c (set_firsts): De-obfuscate.
7397
73982001-12-05 Akim Demaille <akim@epita.fr>
7399
7400 * src/output.c (action_row): De-obfuscate
7401 using the good o' techniques: arrays not pointers, variable
7402 locality, BITISSET, RESETBIT etc.
7403
74042001-12-05 Akim Demaille <akim@epita.fr>
7405
7406 Pessimize the code to simplify it: from now on, all the states
7407 have a valid SHIFTS, which NSHIFTS is possibly 0.
7408
7409 * src/LR0.c (shifts_new): Be global and move to..
7410 * src/state.c, src/state.h: here.
7411 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
7412 * src/print_graph: Adjust.
7413
74142001-12-05 Akim Demaille <akim@epita.fr>
7415
7416 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
7417 * src/conflicts.c: Use it.
7418 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
7419 incorrectly ``simplified''.
7420
74212001-12-05 Akim Demaille <akim@epita.fr>
7422
7423 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
7424 using the good o' techniques: arrays not pointers, variable
7425 locality, BITISSET, RESETBIT etc.
7426
74272001-12-05 Akim Demaille <akim@epita.fr>
7428
7429 * src/state.h (SHIFT_SYMBOL): New.
7430 * src/conflicts.c: Use it to deobfuscate.
7431
74322001-12-05 Akim Demaille <akim@epita.fr>
7433
7434 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
7435 (print_reductions): De-obfuscate using the good o' techniques:
7436 arrays not pointers, variable locality, BITISSET.
7437
74382001-12-05 Akim Demaille <akim@epita.fr>
7439
7440 * src/conflicts.c (print_reductions): Arrays, not pointers.
7441 Use BITISSET.
7442
74432001-12-05 Akim Demaille <akim@epita.fr>
7444
7445 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7446
74472001-12-05 Akim Demaille <akim@epita.fr>
7448
7449 * src/conflicts.c (print_reductions): Improve variable locality.
7450
74512001-12-05 Akim Demaille <akim@epita.fr>
7452
7453 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7454
74552001-12-05 Akim Demaille <akim@epita.fr>
7456
7457 * src/conflicts.c (print_reductions): Improve variable locality.
7458
74592001-12-05 Akim Demaille <akim@epita.fr>
7460
7461 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
7462 * src/lalr.c: Use them.
7463
74642001-12-05 Akim Demaille <akim@epita.fr>
7465
7466 * src/LR0.c (augment_automaton): Formatting changes.
7467 Better variable locality.
7468
74692001-12-05 Akim Demaille <akim@epita.fr>
7470
7471 * src/lalr.c (matrix_print): New.
7472 (transpose): Use it.
7473 Use arrays instead of pointers.
7474
74752001-12-05 Akim Demaille <akim@epita.fr>
7476
7477 * src/lalr.c (maxrhs): Move to...
7478 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
7479 * src/lalr.c (build_relations): Adjust.
7480
74812001-12-05 Akim Demaille <akim@epita.fr>
7482
7483 * src/lalr.c (transpose): Free the memory allocated to the
7484 argument, as it is replaced by the results by the unique caller.
7485 (build_relations): Merely invoke transpose: it handles the memory
7486 deallocation.
7487 Improve variable locality.
7488 Avoid variables used as mere abbreviations.
7489 (compute_lookaheads): Use arrays instead of pointers.
7490
74912001-12-05 Akim Demaille <akim@epita.fr>
7492
7493 * src/lalr.c (initialize_F): Improve variable locality.
7494 Avoid variables used as mere abbreviations.
7495
74962001-12-05 Akim Demaille <akim@epita.fr>
7497
7498 * src/derives.c (print_derives): Display the ruleno.
7499 * src/lalr.c (initialize_F, transpose): Better variable locality
7500 to improve readability.
7501 Avoid variables used as mere abbreviations.
7502
75032001-12-05 Akim Demaille <akim@epita.fr>
7504
7505 * src/lalr.c (traverse): Use arrays instead of pointers.
7506
75072001-12-05 Akim Demaille <akim@epita.fr>
7508
7509 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
7510 the handling of squeue.
7511 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7512
75132001-12-05 Akim Demaille <akim@epita.fr>
7514
7515 Because useless nonterminals are now kept alive (instead of being
7516 `destroyed'), we now sometimes examine them, and store information
7517 related to them. Hence we need to know their number, and adjust
7518 memory allocations.
7519
7520 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
7521 static.
7522 * src/LR0.c (allocate_itemsets): The memory allocated to
7523 `symbol_count' was used for two different purpose: once to count
7524 the number of occurrences of each symbol, and later reassigned to
7525 `shift_symbol', containing the symbol that can be shifted from a
7526 given state.
7527 Deobfuscate, i.e., allocate, use and free `symbol_count' here
7528 only, and...
7529 (new_itemsets): Allocate `shift_symbol' here.
7530 (allocate_itemsets): symbol_count includes useless nonterminals.
7531 Make room for them.
7532 (free_storage): Use `free', not `XFREE', for pointers that cannot
7533 be null.
7534
75352001-12-05 Akim Demaille <akim@epita.fr>
7536
7537 * src/nullable.c (set_nullable): Deobfuscate the handling of
7538 ritem.
7539 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7540
75412001-12-05 Akim Demaille <akim@epita.fr>
7542
7543 * src/gram.c, src/gram.h (ritem_print): New.
7544 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
7545 (This useless function was defined only to work around VMS linkers
7546 that can't handle compilation units with variables only).
7547 * src/reduce.c (dump_grammar): Use it to trace the construction of
7548 ritem.
7549
75502001-12-04 Paul Eggert <eggert@twinsun.com>
7551
7552 * src/bison.simple (union yyalloc): Change member names
7553 to be the same as the stack names.
7554 (yyparse): yyptr is now union yyalloc *, not char *.
7555 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
7556 and may generate better code on some machines.
7557 (yystpcpy): Use prototype if __STDC__ is defined, not just
7558 if __cplusplus is defined.
7559
75602001-11-30 Akim Demaille <akim@epita.fr>
7561
7562 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
7563 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
7564 Gettext doesn't compile cleanly, and dies with -Werror.
7565 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
7566 Include WARNING_CFLAGS here.
7567 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
7568 before being defined.
7569
75702001-11-27 Paul Eggert <eggert@twinsun.com>
7571
7572 * lib/quotearg.h (quotearg_n, quotearg_n_style):
7573 First arg is int, not unsigned.
7574 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
7575 (SIZE_MAX, UINT_MAX): New macros.
7576 (quotearg_n_options): Abort if N is negative.
7577 Avoid overflow check on hosts where size_t is 64 bits and int
7578 is 32 bits, as overflow is impossible there.
7579 Fix off-by-one typo that caused unnecessary reallocation.
7580
75812001-11-29 Paul Eggert <eggert@twinsun.com>
7582
7583 Name space cleanup in generated parser.
7584
7585 * doc/bison.texinfo (Bison Parser): Discuss system headers
7586 and their effect on the user name space.
7587
7588 * src/bison.simple:
7589 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7590 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7591 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7592
7593 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7594 on user names when possible.
7595
7596 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7597 Simplify test for whather <alloca.h> exists.
7598
7599 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7600
7601 (<stdio.h>): Include if YYDEBUG.
7602
7603 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7604 ! defined (yyoverflow) && ! defined (yymemcpy).
7605
7606 (yymemcpy, yyparse): Rename local variables as needed so that
7607 they all begin with 'yy'.
7608
7609 (yystrlen, yystpcpy): New functions.
7610
7611 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7612 All uses changed.
7613
7614 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7615 instead of relying on string.h functions. Use YYSTACK_ALLOC
7616 and YYSTACK_FREE instead of malloc and free.
7617
76182001-11-30 Akim Demaille <akim@epita.fr>
7619
7620 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7621 before their first uses.
7622 (YYBISON, YYPURE): Move to the top of the output.
7623
76242001-11-30 Akim Demaille <akim@epita.fr>
7625
7626 * tests/reduce.at (Useless Nonterminals): Fix.
7627
76282001-11-30 Akim Demaille <akim@epita.fr>
7629
7630 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7631 if body instead of `;' to pacify GCC's warnings.
7632
76332001-11-30 Akim Demaille <akim@epita.fr>
7634
7635 Instead of mapping the LHS of unused rules to -1, keep the LHS
7636 valid, but flag the rules as invalid.
7637
7638 * src/gram.h (rule_t): `useful' is a new member.
7639 * src/print.c (print_grammar): Adjust.
7640 * src/derives.c (set_derives): Likewise.
7641 * src/reader.c (packgram, reduce_output): Likewise.
7642 * src/reduce.c (reduce_grammar_tables): Likewise.
7643 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7644
76452001-11-30 Akim Demaille <akim@epita.fr>
7646
7647 * src/reduce.c (reduce_output): Formatting changes.
7648 * src/print.c (print_results, print_grammar): Likewise.
7649 * tests/regression.at (Rule Line Numbers)
7650 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7651
76522001-11-30 Akim Demaille <akim@epita.fr>
7653
7654 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7655 useless nonterminals, move them at the end of the symbol arrays.
7656 (reduce_output): Adjust.
7657 * tests/reduce.at (Useless Nonterminals): Adjust.
7658
76592001-11-30 Akim Demaille <akim@epita.fr>
7660
7661 * src/reduce.c: Various comment/formatting changes.
7662 (nonterminals_reduce): New, extracted from...
7663 (reduce_grammar_tables): here.
7664 (reduce_grammar): Call nonterminals_reduce.
7665
76662001-11-29 Paul Eggert <eggert@twinsun.com>
7667
7668 * src/bison.simple (YYSTACK_REALLOC): Remove.
7669 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7670 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7671 New macros.
7672 (union yyalloc): New type.
7673 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7674 an arbitrary restriction on hosts where size_t is wider than int.
7675
7676 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7677 a parser stack overflow. Allocate just one block of memory for all
7678 three stacks, instead of allocating three blocks; this typically is
7679 faster and reduces fragmentation.
7680
7681 Do not limit the number of items in the stack to a value that fits
7682 in 'int', as this is an arbitrary limit on hosts with 64-bit
7683 size_t and 32-bit int.
7684
76852001-11-29 Marc Autret <autret_m@epita.fr>
7686
7687 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7688 of defining YYERROR_VERBOSE.
7689 [AT_DATA]: $4 is now out of C declarations in the prologue.
7690
76912001-11-28 Marc Autret <autret_m@epita.fr>
7692
7693 * src/reader.c (parse_dquoted_param): New.
7694 (parse_skel_decl): Use it.
7695 * src/lex.h: Add its prototype.
7696 * src/lex.c (literalchar): Become not static.
7697
76982001-11-28 Marc Autret <autret_m@epita.fr>
7699
7700 * src/output.h: And put its extern declaration here.
7701 * src/output.c (error_verbose): Define here.
7702 (prepare): Echo name modification.
7703 * src/getargs.h: Clean its extern declaration.
7704 * src/getargs.c (error_verbose_flag): Remove.
7705 (getargs): Remove case 'e'.
7706 * src/options.c (option_table): 'error-verbose' is now seen as simple
7707 percent option.
7708 Include output.h.
7709
7710 * src/reader.c (read_declarations): Remove case tok_include.
7711 (parse_include_decl): Remove.
7712 * src/lex.h (token_t): Remove tok_include.
7713 * src/options.c (option_table): 'include' is now a simple command line
7714 option.
7715
77162001-11-28 Marc Autret <autret_m@epita.fr>
7717
7718 * src/bison.simple: Adjust muscle names.
7719 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7720 * src/output.c (prepare): s/_/-/ for the muscles names.
7721 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7722
77232001-11-28 Marc Autret <autret_m@epita.fr>
7724
7725 * src/bison.simple: Fix debug.
7726 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7727
77282001-11-28 Akim Demaille <akim@epita.fr>
7729
7730 * src/LR0.c (shifts_new): New.
7731 (save_shifts, insert_start_shift, augment_automaton): Use it.
7732
77332001-11-28 Akim Demaille <akim@epita.fr>
7734
7735 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7736 keep ruleno only.
7737
77382001-11-28 Akim Demaille <akim@epita.fr>
7739
7740 * src/closure.c (closure): Instead of looping over word in array
7741 then bits in words, loop over bits in array.
7742
77432001-11-28 Akim Demaille <akim@epita.fr>
7744
7745 * src/closure.c (closure): No longer optimize the special case
7746 where all the bits of `ruleset[r]' are set to 0, to make the code
7747 clearer.
7748
77492001-11-28 Akim Demaille <akim@epita.fr>
7750
7751 * src/closure.c (closure): `r' and `c' are new variables, used to
7752 de-obfuscate accesses to RULESET and CORE.
7753
77542001-11-28 Akim Demaille <akim@epita.fr>
7755
7756 * src/reduce.c (reduce_print): Use ngettext.
7757 (dump_grammar): Improve the trace accuracy.
7758
77592001-11-28 Akim Demaille <akim@epita.fr>
7760
7761 * src/reduce.c (dump_grammar): Don't translate trace messages.
7762
77632001-11-28 Akim Demaille <akim@epita.fr>
7764
7765 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7766 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7767 as all tags are free'ed afterwards.
7768 From Enrico Scholz.
7769
77702001-11-27 Paul Eggert <eggert@twinsun.com>
7771
7772 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7773 use alloca when we didn't want to, and vice versa.
7774
77752001-11-27 Marc Autret <autret_m@epita.fr>
7776
7777 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7778 initialization.
7779 * src/output.c (prepare): Remove its update.
7780
77812001-11-27 Marc Autret <autret_m@epita.fr>
7782
7783 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7784 Use %error-verbose.
7785
77862001-11-27 Marc Autret <autret_m@epita.fr>
7787
7788 * src/bison.simple: Remove YYERROR_VERBOSE using.
7789 Use %%error_verbose.
7790 (yyparse): Likewise.
7791 * src/output.c (prepare): Give its final value.
7792 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7793 * src/getargs.h: Add its extern declaration.
7794 * src/getargs.c (error_verbose_flag): New int.
7795 (getargs): Update to catch new case.
7796 * src/options.c (option_table): 'error-verbose' is a new option.
7797 (shortopts): Update.
7798
77992001-11-27 Akim Demaille <akim@epita.fr>
7800
7801 * src/system.h: Use intl/libgettext.h.
7802 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7803
78042001-11-27 Akim Demaille <akim@epita.fr>
7805
7806 * tests/torture.at (Exploding the Stack Size with Malloc):
7807 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7808
78092001-11-27 Akim Demaille <akim@epita.fr>
7810
7811 * src/files.c: Include error.h.
7812 Reported by Hans Aberg.
7813
78142001-11-26 Marc Autret <autret_m@epita.fr>
7815
7816 * src/reader.c (parse_include_decl): New, not yet implemented.
7817 (read_declarations): Add case tok_include.
7818 * src/getargs.h (include): Add its extern definition.
7819 * src/getargs.c (include): New const char *.
7820 (getargs): Add case '-I'.
7821 * src/options.c (option_table): Add include as command line and
7822 percent option.
7823 * src/lex.h (token_t): Add tok_include.
7824
78252001-11-26 Akim Demaille <akim@epita.fr>
7826
7827 * src/reader.c (readgram): Make sure rules for mid-rule actions
7828 have a lineno equal to that of their host rule.
7829 Reported by Hans Aberg.
7830 * tests/regression.at (Rule Line Numbers): New.
7831
78322001-11-26 Akim Demaille <akim@epita.fr>
7833
7834 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7835 size_ts.
7836
78372001-11-26 Akim Demaille <akim@epita.fr>
7838
7839 * src/complain.c, src/complain.h (error): Remove, provided by
7840 lib/error.[ch].
7841
78422001-11-26 Akim Demaille <akim@epita.fr>
7843
7844 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7845 issue an error message.
7846 * tests/regression.at (Invalid %directive): New.
7847 Reported by Hans Aberg.
7848
78492001-11-26 Akim Demaille <akim@epita.fr>
7850
7851 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7852 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7853
78542001-11-26 Akim Demaille <akim@epita.fr>
7855
7856 * src/conflicts.c (conflicts_print): Don't complain at all when
7857 there are no reduce/reduce conflicts, and as many shift/reduce
7858 conflicts as expected.
7859 * tests/regression.at (%expect right): Adjust.
7860
78612001-11-23 Akim Demaille <akim@epita.fr>
7862
7863 * lib/alloca.c: Update, from fileutils.
7864
78652001-11-23 Akim Demaille <akim@epita.fr>
7866
7867 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7868
78692001-11-23 Akim Demaille <akim@epita.fr>
7870
7871 * src/system.h: Include alloca.h.
7872 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7873
78742001-11-23 Akim Demaille <akim@epita.fr>
7875
7876 * src/print_graph.c (print_actions): Remove `rule', unused.
7877 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7878 pacify GCC's signed < unsigned warnings.
7879 * src/closure.c (itemsetsize): Likewise.
7880 * src/reader.c (symbol_list_new): Static.
7881
78822001-11-23 Akim Demaille <akim@epita.fr>
7883
7884 Attaching lineno to buckets is stupid, since only one copy of each
7885 symbol is kept, only the line of the first occurrence is kept too.
7886
7887 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7888 * src/reader.c (rline_allocated): Remove, unused.
7889 (symbol_list): Have a `line' member.
7890 (symbol_list_new): New.
7891 (readgram): Use it.
7892 * src/print.c (print_grammar): Output the rule line numbers.
7893 * tests/regression.at (Solved SR Conflicts)
7894 (Unresolved SR Conflicts): Adjust.
7895 Reported by Hans Aberg.
7896
78972001-11-22 Marc Autret <autret_m@epita.fr>
7898
7899 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7900
79012001-11-22 Marc Autret <autret_m@epita.fr>
7902
7903 * src/muscle_tab.c (muscle_init): Remove initialization of
7904 skeleton muscle.
7905 * src/output.c (output_master_parser): Do it here.
7906
79072001-11-20 Akim Demaille <akim@epita.fr>
7908
7909 * po/sv.po: New.
7910 * configure.in (ALL_LINGUAS): Adjust.
7911 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7912 longer contains strings to translate.
7913
79142001-11-19 Akim Demaille <akim@epita.fr>
7915
7916 * src/conflicts.c (conflicts_print): Add a missing \n.
7917
79182001-11-19 Akim Demaille <akim@epita.fr>
7919
7920 * src/nullable.c (nullable_print): New.
7921 (set_nullable): Call it when tracing.
7922 Better locality of variables.
7923
79242001-11-19 Akim Demaille <akim@epita.fr>
7925
7926 * src/print.c (print_actions): Better locality of variables.
7927
79282001-11-19 Akim Demaille <akim@epita.fr>
7929
7930 * src/derives.c (print_derives): Fix and enrich.
7931 * src/closure.c (print_fderives): Likewise.
7932
79332001-11-19 Akim Demaille <akim@epita.fr>
7934
7935 * src/closure.c (itemsetend): Remove, replaced with...
7936 (itemsetsize): new.
7937
79382001-11-19 Akim Demaille <akim@epita.fr>
7939
7940 * src/LR0.c (kernel_end): Remove, replaced with...
7941 (kernel_size): new.
7942
79432001-11-19 Akim Demaille <akim@epita.fr>
7944
7945 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7946 to clarify.
7947
79482001-11-19 Akim Demaille <akim@epita.fr>
7949
7950 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7951
79522001-11-19 Akim Demaille <akim@epita.fr>
7953
7954 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7955 trace messages.
7956 * src/LR0.c: Likewise.
7957 (allocate_itemsets): Use arrays instead of pointers to clarify.
7958
79592001-11-19 Akim Demaille <akim@epita.fr>
7960
7961 * src/getargs.c (statistics_flag): Replace with...
7962 (trace_flag): New.
7963 (longopts): Accept --trace instead of --statistics.
7964 * src/getargs.h, src/options.c: Adjust.
7965 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7966 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7967
79682001-11-19 Akim Demaille <akim@epita.fr>
7969
7970 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7971 pointers to clarify the code.
7972 (save_reductions, save_shifts): Factor common parts of alternatives.
7973
79742001-11-19 Akim Demaille <akim@epita.fr>
7975
7976 * src/LR0.c (new_state, get_state): Complete TRACE code.
7977 * src/closure.c: Include `reader.h' to get `tags', needed by the
7978 trace code.
7979 Rename the conditional DEBUG as TRACE.
7980 Output consistently TRACEs to stderr, not stdout.
7981 * src/derives.c: Likewise.
7982 * src/reduce.c: (inaccessable_symbols): Using if is better style
7983 than goto.
7984 Use `#if TRACE' instead of `#if 0' for tracing code.
7985
79862001-11-19 Akim Demaille <akim@epita.fr>
7987
7988 * src/system.h (LIST_FREE, shortcpy): New.
7989 * src/LR0.c: Use them.
7990 * src/output.c (free_itemsets, free_reductions, free_shifts):
7991 Remove, replaced by LIST_FREE.
7992
79932001-11-19 Akim Demaille <akim@epita.fr>
7994
7995 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7996 (REDUCTIONS_ALLOC): New.
7997 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7998 allocation.
7999
80002001-11-19 Akim Demaille <akim@epita.fr>
8001
8002 * src/LR0.c (new_state): Complete trace code.
8003 * src/nullable.c (set_nullable): Don't translate traces.
8004
80052001-11-19 Akim Demaille <akim@epita.fr>
8006
8007 * src/print_graph.c (print_core): Better locality of variables.
8008 * src/print.c (print_core): Likewise.
8009
80102001-11-19 Akim Demaille <akim@epita.fr>
8011
8012 * src/vcg.c: You do the output, so you are responsible of the
8013 handling of VCG syntax, in particular: use quotearg.
8014 * src/print_graph.c: Don't.
8015 (print_actions): Don't output the actions as part of the nodes,
8016 since that's the job of the edges.
8017 (print_state): Don't output by hand: fill the node description,
8018 and ask for its output.
8019
80202001-11-19 Akim Demaille <akim@epita.fr>
8021
8022 * src/bison.simple (yyparse): When verbosely reporting an error,
8023 no longer put additional quotes around token names.
8024 * tests/calc.at: Adjust.
8025
80262001-11-19 Akim Demaille <akim@epita.fr>
8027
8028 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
8029 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
8030 * src/output.c: Adjust.
8031
80322001-11-19 Akim Demaille <akim@epita.fr>
8033
8034 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
8035 (rule_t): this.
8036 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
8037
80382001-11-19 Akim Demaille <akim@epita.fr>
8039
8040 * src/gram.h (rule_t): New.
8041 (rule_table): New.
8042 (rrhs, rlhs): Remove, part of state_t.
8043 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
8044 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
8045 * src/reader.c, src/reduce.c: Adjust.
8046
80472001-11-19 Akim Demaille <akim@epita.fr>
8048
8049 * src/reader.c (symbols_output): New, extracted from...
8050 (packsymbols): Here.
8051 (reader): Call it.
8052
80532001-11-19 Akim Demaille <akim@epita.fr>
8054
8055 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
8056 (maxrhs): this new function.
8057
80582001-11-19 Akim Demaille <akim@epita.fr>
8059
8060 * src/lalr.c (F): New macro to access the variable F.
8061 Adjust.
8062
80632001-11-19 Akim Demaille <akim@epita.fr>
8064
8065 * src/lalr.h (LA): New macro to access the variable LA.
8066 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8067 * src/lalr.c: Adjust.
8068
80692001-11-19 Akim Demaille <akim@epita.fr>
8070
8071 * src/lalr.c (initialize_LA): Only initialize LA. Let...
8072 (set_state_table): handle the `lookaheads' members.
8073
80742001-11-19 Akim Demaille <akim@epita.fr>
8075
8076 * src/lalr.h (lookaheads): Removed array, whose contents is now
8077 a member of...
8078 (state_t): this structure.
8079 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8080 Adjust.
8081
80822001-11-19 Akim Demaille <akim@epita.fr>
8083
8084 * src/lalr.h (consistent): Removed array, whose contents is now
8085 a member of...
8086 (state_t): this structure.
8087 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8088 Adjust.
8089
80902001-11-19 Akim Demaille <akim@epita.fr>
8091
8092 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
8093 contents are now members of...
8094 (state_t): this structure.
8095 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8096 Adjust.
8097
80982001-11-19 Akim Demaille <akim@epita.fr>
8099
8100 * src/lalr.h (state_t): New.
8101 (state_table): Be a state_t * instead of a core **.
8102 (accessing_symbol): Remove, part of state_t.
8103 * src/lalr.c: Adjust.
8104 (set_accessing_symbol): Merge into...
8105 (set_state_table): this.
8106 * src/print_graph.c, src/conflicts.c: Adjust.
8107
81082001-11-14 Akim Demaille <akim@epita.fr>
8109
8110 * tests/calc.at, tests/output.at, tests/regression.at,
8111 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
8112 now the tests are run in private dirs, therefore AC_CLEANUP and
8113 family can be simplified to 0-ary.
8114 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
8115 use abs. path to find config.h.
8116 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
8117 stderr, there can be way too much random noise.
8118 Instead pass -Werror to GCC and rely on the exit status.
8119 Reported by Wolfram Wagner.
8120
81212001-11-14 Akim Demaille <akim@epita.fr>
8122
8123 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
8124 defined only if yyoverflow is defined, to avoid `warning: unused
8125 variable `yyvs1''.
8126 Reported by The Test Suite.
8127
81282001-11-14 Akim Demaille <akim@epita.fr>
8129
8130 * src/print.c: Include reduce.h.
8131 Reported by Hans Aberg.
8132
81332001-11-14 Akim Demaille <akim@epita.fr>
8134
8135 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
8136 Revert a previous patch: these are really const.
8137 * src/conflicts.c (conflict_report): Additional useless pair of
8138 braces to pacify GCC's warnings for `if () if () {} else {}'.
8139 * src/lex.c (parse_percent_token): Replace equal_offset with
8140 arg_offset.
8141 arg is const.
8142 Be sure to strdup `arg' when used, since there is no reason for
8143 token_buffer not to change.
8144
81452001-11-14 Akim Demaille <akim@epita.fr>
8146
8147 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
8148 definition.
8149 * src/main.c (main): Use them.
8150 Suggested by Hans Aberg.
8151
81522001-11-12 Akim Demaille <akim@epita.fr>
8153
8154 * src/system.h (ngettext): Now that we use ngettext, be sure to
8155 provide a default definition when NLS are not used.
8156
81572001-11-12 Akim Demaille <akim@epita.fr>
8158
8159 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
8160 Use @kbd to denote user input.
8161 (Language and Grammar): ANSIfy the example.
8162 Adjust its layout for info/notinfo.
8163 (Location Tracking Calc): Output error messages to stderr.
8164 Output locations in a more GNUtically correct way.
8165 Fix a couple of Englishos.
8166 Adjust @group/@end group pairs.
8167
81682001-11-12 Akim Demaille <akim@epita.fr>
8169
8170 %expect was not functioning at all.
8171
8172 * src/conflicts.c (expected_conflicts): Set to -1.
8173 (conflict_report): Use ngettext.
8174 (conflicts_print): Check %expect and make its violation an error.
8175 * doc/bison.texinfo (Expect Decl): Adjust.
8176 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
8177 * tests/regression.at (%expect not enough, %expect right)
8178 (%expect too much): New.
8179
81802001-11-12 Akim Demaille <akim@epita.fr>
8181
8182 * tests/regression.at (Conflicts): Rename as...
8183 (Unresolved SR Conflicts): this.
8184 (Solved SR Conflicts): New.
8185
81862001-11-12 Akim Demaille <akim@epita.fr>
8187
8188 * src/reduce.c (print_results): Rename as...
8189 (reduce_output): This.
8190 Output to OUT, passed as argument, instead of output_obstack.
8191 (dump_grammar): Likewise.
8192 (reduce_free): New.
8193 Also free V1.
8194 (reduce_grammar): No longer call reduce_output, since...
8195 * src/print.c (print_results): do it.
8196 * src/main.c (main): Call reduce_free;
8197
81982001-11-12 Akim Demaille <akim@epita.fr>
8199
8200 * src/conflicts.c (print_reductions): Accept OUT as argument.
8201 Output to it, not to output_obstack.
8202 * src/print.c (print_actions): Adjust.
8203
82042001-11-12 Akim Demaille <akim@epita.fr>
8205
8206 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
8207 the result instead of using...
8208 (src_total, rrc_total, src_count, rrc_count): Remove.
8209 (any_conflicts): Remove.
8210 (print_conflicts): Split into...
8211 (conflicts_print, conflicts_output): New.
8212 * src/conflicts.h: Adjust.
8213 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
8214 * src/print.c (print_grammar): Issue `\n' between two rules.
8215 * tests/regression.at (Conflicts): New.
8216 Reported by Tom Lane.
8217
82182001-11-12 Akim Demaille <akim@epita.fr>
8219
8220 * tests/regression.at (Invalid input): Remove, duplicate with
8221 ``Invalid input: 1''.
8222
82232001-11-12 Akim Demaille <akim@epita.fr>
8224
8225 * tests/torture.at (AT_DATA_STACK_TORTURE)
8226 (Exploding the Stack Size with Alloca)
8227 (Exploding the Stack Size with Malloc): New.
8228
82292001-11-12 Akim Demaille <akim@epita.fr>
8230
8231 * src/bison.simple (YYSTACK_REALLOC): New.
8232 (yyparse) [!yyoverflow]: Use it and free the old stack.
8233 Reported by Per Allansson.
8234
82352001-11-12 Pascal Bart <pascal.bart@epita.fr>
8236
8237 * src/bison.simple: Define type yystype instead of YYSTYPE, and
8238 define CPP macro, which substitute YYSTYPE by yystype.
8239 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
8240 with yyltype/YYLTYPE. This allows inclusion of the generated
8241 header within the parser if the compiler, such as GGC, accepts
8242 multiple equivalent #defines.
8243 From Akim.
8244
82452001-11-05 Akim Demaille <akim@epita.fr>
8246
8247 * src/reader.c (symbols_output): New, extracted from...
8248 (packsymbols): here.
8249 (reader): Adjust.
8250
82512001-11-05 Akim Demaille <akim@epita.fr>
8252
8253 * src/lex.c (parse_percent_token): s/quotearg/quote/.
8254
82552001-11-05 Akim Demaille <akim@epita.fr>
8256
8257 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
8258 pattern.
8259
82602001-11-05 Akim Demaille <akim@epita.fr>
8261
8262 * src/options.h (struct option_table_struct): set_flags is void*.
8263 * src/options.c (longopts): Support `--output' and `%output'.
8264 (usage): Adjust.
8265 * src/lex.h (tok_setopt): Remove, replaced with...
8266 (tok_intopt, tok_stropt): these new guys.
8267 * src/lex.c (getopt.h): Not needed.
8268 (token_buffer, unlexed_token_buffer): Not const.
8269 (percent_table): Promote `-' over `_' in directive names.
8270 Active `%name-prefix', `file-prefix', and `output'.
8271 (parse_percent_token): Accept possible arguments to directives.
8272 Promote `-' over `_' in directive names.
8273
82742001-11-04 Akim Demaille <akim@epita.fr>
8275
8276 * doc/bison.texinfo (Decl Summary): Split the list into
8277 `directives for grammars' and `directives for bison'.
8278 Sort'em.
8279 Add description of `%name-prefix', `file-prefix', and `output'.
8280 Promote `-' over `_' in directive names.
8281 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
8282 Simplify the description of `--name-prefix'.
8283 Promote `-' over `_' in directive names.
8284 Promote `--output' over `--output-file'.
8285 Fix the description of `--defines'.
8286 * tests/output.at: Exercise %file-prefix and %output.
8287
82882001-11-02 Akim Demaille <akim@epita.fr>
8289
8290 * doc/refcard.tex: Update.
8291
82922001-11-02 Akim Demaille <akim@epita.fr>
8293
8294 * src/symtab.h (SUNDEF): New.
8295 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
8296 stand for `uninitialized', instead of 0.
8297 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
8298 * src/lex.c (lex): Adjust.
8299
8300 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
8301 Number it 0.
8302 Let yylex return it instead of a plain 0.
8303 Reported by Dick Streefland.
8304
83052001-11-02 Akim Demaille <akim@epita.fr>
8306
8307 * tests/regression.at (Mixing %token styles): New test.
8308
83092001-11-02 Akim Demaille <akim@epita.fr>
8310
8311 * src/reader.c (parse_thong_decl): Formatting changes.
8312 (token_translations_init): New, extracted from...
8313 (packsymbols): Here.
8314 Adjust.
8315
83162001-11-01 Akim Demaille <akim@epita.fr>
8317
8318 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
8319 Check that `9foo.y' produces correct cpp guards.
8320 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
8321 guards.
8322 Reported by Wwp.
8323
83242001-11-01 Akim Demaille <akim@epita.fr>
8325
8326 * tests/regression.at (Invalid input: 2): New.
8327 * src/lex.c (unlexed_token_buffer): New.
8328 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
8329 too.
8330 Reported by Wwp.
8331
83322001-11-01 Akim Demaille <akim@epita.fr>
8333
8334 * tests/calc.at: Catch up with 1.30.
8335 * configure.in: Bump to 1.49a.
8336 Adjust to newer Autotest.
8337
83382001-10-19 Pascal Bart <pascal.bart@epita.fr>
8339
8340 * src/conflicts.c: Move global variables rrc_total and src_total ...
8341 (print_conflicts): here.
8342 * src/output.c (output): Free global variable user_toknums.
8343 * src/lex.c (token_obstack): Become static.
8344
83452001-10-18 Akim Demaille <akim@epita.fr>
8346
8347 * tests/atlocal.in (GCC): Add.
8348 * tests/calc.at: s/m4_match/m4_bmatch/.
8349 s/m4_patsubst/m4_bpatsubst/.
8350 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
8351 * configure.in: AC_SUBST(GCC).
8352
83532001-10-14 Marc Autret <autret_m@epita.fr>
8354
8355 * src/options.c (create_long_option_table): Fix.
8356
83572001-10-10 Akim Demaille <akim@epita.fr>
8358
8359 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
8360
83612001-10-04 Akim Demaille <akim@epita.fr>
8362
8363 * src/reader.c (parse_union_decl): Push the caracters in
8364 union_obstack, not attrs_obstack.
8365
83662001-10-04 Akim Demaille <akim@epita.fr>
8367
8368 Merge in the branch 1.29.
8369
8370 * src/reader.c (packsymbols): Use a temporary obstack for
8371 `%%tokendef', since output_stack is already used elsewhere.
8372
8373 2001-10-02 Akim Demaille <akim@epita.fr>
8374
8375 Bump 1.29d.
8376
8377 2001-10-02 Akim Demaille <akim@epita.fr>
8378
8379 Version 1.29c.
8380
8381 2001-10-02 Akim Demaille <akim@epita.fr>
8382
8383 * tests/regression.at (Invalid CPP headers): New.
8384 From Alexander Belopolsky.
8385 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
8386
8387 2001-10-02 Akim Demaille <akim@epita.fr>
8388
8389 * tests/regression.at (Invalid input): New.
8390 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
8391 Reported by Shura.
8392
8393 2001-10-02 Akim Demaille <akim@epita.fr>
8394
8395 * tests/calc.at: Now that --debug works, the tests must be adjusted.
8396
8397 2001-10-02 Akim Demaille <akim@epita.fr>
8398
8399 * src/output.c (output_parser): Assert `skeleton'.
8400 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
8401 systems.
8402 From Shura.
8403
8404 2001-10-01 Marc Autret <autret_m@epita.fr>
8405
8406 * src/lex.h: Echo modifications.
8407 * src/lex.c (unlex): Parameter is now token_t.
8408 From Hans Aberg.
8409
8410 2001-10-01 Marc Autret <autret_m@epita.fr>
8411
8412 * src/main.c: Include lex.h.
8413 From Hans Aberg.
8414
8415 2001-09-29 Akim Demaille <akim@epita.fr>
8416
8417 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
8418
8419 2001-09-28 Akim Demaille <akim@epita.fr>
8420
8421 * tests/testsuite.at: Update to newer Autotest.
8422 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
8423
8424 2001-09-27 Akim Demaille <akim@epita.fr>
8425
8426 Position independent wrapper.
8427
8428 * tests/bison: Remove.
8429 * tests/bison.in: New.
8430 * configure.in: Adjust.
8431
8432 2001-09-27 Paul Eggert <eggert@twinsun.com>
8433
8434 Port quotearg fixes from tar 1.13.24.
8435
8436 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
8437 tm to be declared.
8438 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
8439 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
8440
8441 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
8442 * m4/mbrtowc.m4: New file.
8443 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
8444 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
8445
8446 2001-09-27 Akim Demaille <akim@epita.fr>
8447
8448 Bump to 1.29c.
8449
8450 2001-09-27 Akim Demaille <akim@epita.fr>
8451
8452 Version 1.29b.
8453
8454 2001-09-25 Akim Demaille <akim@epita.fr>
8455
8456 * src/system.h: Include `xalloc.h'.
8457 Remove it from the C files.
8458 * src/files.c (output_files): Free the obstacks.
8459 * src/lex.c (init_lex): Rename as...
8460 (lex_init): this.
8461 (lex_free): New.
8462 * src/main.c (main): Use it.
8463
8464 2001-09-24 Marc Autret <autret_m@epita.fr>
8465
8466 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
8467 to output informations in fout (FILE*).
8468 (open_graph, close_graph): Likewise.
8469 (output_graph, output_edge, output_node): Likewise.
8470 * src/vcg.h: Update function prototypes.
8471 * src/print_graph.c (print_graph): Open output graph file.
8472 (print_actions): Adjust.
8473 * src/files.h: Remove extern declaration.
8474 * src/files.c: Remove graph_obstack declaration.
8475 (open_files): Remove graph_obstack initialization.
8476 (output_files): Remove graph_obstack saving.
8477
8478 2001-09-24 Marc Autret <autret_m@epita.fr>
8479
8480 * src/files.c (compute_output_file_names): Fix.
8481
8482 2001-09-24 Marc Autret <autret_m@epita.fr>,
8483 Akim Demaille <akim@epita.fr>
8484
8485 * src/reader.c (reader): Remove call to free_symtab ().
8486 * src/main.c (main): Call it here.
8487 Include symtab.h.
8488 * src/conflicts.c (initialize_conflicts): Rename as...
8489 (solve_conflicts): this.
8490 * src/print.c (print_core, print_actions, print_state)
8491 (print_grammar): Dump to a file instead a `output_obstack'.
8492 (print_results): Dump `output_obstack', and then proceed with the
8493 FILE *.
8494 * src/files.c (compute_output_file_names, close_files): New.
8495 (output_files): Adjust.
8496 * src/main.c (main): Adjust.
8497
8498 2001-09-23 Marc Autret <autret_m@epita.fr>
8499
8500 * src/files.c (compute_header_macro): Computes header macro name
8501 from spec_defines_file when given.
8502
8503 2001-09-23 Marc Autret <autret_m@epita.fr>
8504
8505 * src/files.c (output_files): Add default extensions.
8506
8507 2001-09-22 Akim Demaille <akim@epita.fr>
8508
8509 * src/conflicts.c (finalize_conflicts): Rename as...
8510 (free_conflicts): this.
8511
8512 2001-09-22 Akim Demaille <akim@epita.fr>
8513
8514 * src/gram.c (gram_free): Rename back as...
8515 (dummy): this.
8516 (output_token_translations): Free `token_translations'.
8517 * src/symtab.c (free_symtab): Free the tag field.
8518
8519 2001-09-22 Akim Demaille <akim@epita.fr>
8520
8521 Remove `translations' as it is always set to true.
8522
8523 * src/gram.h: Adjust.
8524 * src/reader.c (packsymbols, parse_token_decl): Adjust
8525 * src/print.c (print_grammar): Adjust.
8526 * src/output.c (output_token_translations): Adjust.
8527 * src/lex.c (lex): Adjust.
8528 * src/gram.c: Be sure the set pointers to NULL.
8529 (dummy): Rename as...
8530 (gram_free): this.
8531
8532 2001-09-22 Akim Demaille <akim@epita.fr>
8533
8534 * configure.in: Invoke AM_LIB_DMALLOC.
8535 * src/system.h: Use dmalloc.
8536 * src/LR0.c: Be sure to have pointers initialized to NULL.
8537 (allocate_itemsets): Allocate kernel_items only if needed.
8538
8539 2001-09-22 Akim Demaille <akim@epita.fr>
8540
8541 * configure.in: Bump to 1.29b.
8542 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
8543 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
8544 need xmalloc.c in calc.y.
8545 From Pascal Bart.
8546
8547 2001-09-21 Akim Demaille <akim@epita.fr>
8548
8549 Version 1.29a.
8550 * Makefile.maint, config/config.guess, config/config.sub,
8551 * config/missing: Update from masters.
8552 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
8553 upon package.m4.
8554 * configure.in (ALL_LINGUAS): Add `tr'.
8555
8556 2001-09-21 Akim Demaille <akim@epita.fr>
8557
8558 * tests/Makefile.am (package.m4): Move to...
8559 ($(srcdir)/$(TESTSUITE)): here.
8560
8561 2001-09-20 Akim Demaille <akim@epita.fr>
8562
8563 * src/complain.c: No longer try to be standalone: use system.h.
8564 Don't assume __STDC__ is defined to 1. Just test if it is defined.
8565 * src/complain.h: Likewise.
8566 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
8567 Remove the unused variable `n'.
8568 From Albert Chin-A-Young.
8569
8570 2001-09-18 Marc Autret <autret_m@epita.fr>
8571
8572 * doc/bison.1: Update.
8573 * doc/bison.texinfo (Bison Options): Update --defines and --graph
8574 descriptions.
8575 (Option Cross Key): Update.
8576 Add --graph.
8577
8578 2001-09-18 Marc Autret <autret_m@epita.fr>
8579
8580 * tests/regression.at: New test (comment in %union).
8581
8582 2001-09-18 Marc Autret <autret_m@epita.fr>
8583
8584 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8585 do that.
8586 Reported by Keith Browne.
8587
8588 2001-09-18 Marc Autret <autret_m@epita.fr>
8589
8590 * tests/output.at: Add tests for --defines and --graph.
8591
8592 2001-09-18 Marc Autret <autret_m@epita.fr>
8593
8594 * tests/output.at: Removes tests of %{header,src}_extension features.
8595
8596 2001-09-18 Akim Demaille <akim@epita.fr>
8597
8598 * tests/Makefile.am (package.m4): New.
8599 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8600 (_AT_CHECK_CALC_ERROR): Likewise.
8601 Factor the `, ' part of verbose error messages.
8602
8603 2001-09-18 Marc Autret <autret_m@epita.fr>
8604
8605 * src/getargs.c (longopts): Declare --defines and --graph as options
8606 with optional arguments.
8607 * src/files.h: Add extern declarations.
8608 * src/files.c (spec_graph_file, spec_defines_file): New.
8609 (output_files): Update.
8610 Remove CPP-outed code.
8611
8612 2001-09-18 Marc Autret <autret_m@epita.fr>
8613
8614 Turn off %{source,header}_extension feature.
8615
8616 * src/files.c (compute_exts_from_gf): Update.
8617 (compute_exts_from_src): Update.
8618 (output_files): CPP-out useless code.
8619 * src/files.h: Remove {header,source}_extension extern declarations.
8620 * src/reader.c (parse_dquoted_param): CPP-out.
8621 (parse_header_extension_decl): Remove.
8622 (parse_source_extension_decl): Remove.
8623 (read_declarations): Remove cases tok_{hdrext,srcext}.
8624 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8625 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8626
8627 2001-09-10 Akim Demaille <akim@epita.fr>
8628
8629 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8630 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8631 (AT_CHECK_OUTPUT): this.
8632 Merely check ls' exit status, its output is useless.
8633
8634 2001-09-10 Akim Demaille <akim@epita.fr>
8635
8636 * tests/calc.at: Use m4_match.
8637 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8638
8639 2001-09-10 Marc Autret <autret_m@epita.fr>,
8640 Akim Demaille <akim@epita.fr>
8641
8642 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8643 enum color_e.
8644 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8645 to `normal'.
8646 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8647 * src/lex.h: Adjust prototype.
8648 (token_t): Add `tok_undef'.
8649 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8650 (parse_percent_token): Now returns token_t.
8651 Add default statement in switch.
8652 (lex): Separate `c' as an input variable, from the token_t result
8653 part.
8654 (unlexed): Is a token_t.
8655
8656 2001-09-10 Akim Demaille <akim@epita.fr>
8657
8658 * configure.in: Bump to 1.29a.
8659
8660 2001-09-07 Akim Demaille <akim@epita.fr>
8661
8662 Version 1.29.
8663
8664 2001-08-30 Akim Demaille <akim@epita.fr>
8665
8666 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8667 * m4/atconfig.m4: Remove.
8668 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8669 * tests/bison: New.
8670 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8671 m4_if, m4_patsubst, and m4_regexp.
8672 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8673 `input' file instead of echo.
8674
8675 2001-08-29 Akim Demaille <akim@epita.fr>
8676
8677 Bump to 1.28e.
8678
8679 2001-08-29 Akim Demaille <akim@epita.fr>
8680
8681 Version 1.28d.
8682
8683 2001-08-29 Paul Eggert <eggert@twinsun.com>
8684
8685 * src/bison.simple (yyparse): Don't take the address of an
8686 item before the start of an array, as that doesn't conform to
8687 the C Standard.
8688
8689 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8690
8691 * doc/bison.texinfo (Location Tracking Calc): New node.
8692
8693 2001-08-29 Paul Eggert <eggert@twinsun.com>
8694
8695 * src/output.c (output): Do not define const, as this now
8696 causes more problems than it cures.
8697
8698 2001-08-29 Akim Demaille <akim@epita.fr>
8699
8700 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8701 the nodes.
8702 Be sure to tag the `detailmenu'.
8703
8704 2001-08-29 Akim Demaille <akim@epita.fr>
8705
8706 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8707 download in a tmp dir.
8708
8709 2001-08-28 Marc Autret <autret_m@epita.fr>
8710
8711 * config/depcomp: New file.
8712
8713 2001-08-28 Marc Autret <autret_m@epita.fr>
8714
8715 * doc/bison.1 (mandoc): Adjust.
8716 From Juan Manuel Guerrero.
8717
8718 2001-08-28 Marc Autret <autret_m@epita.fr>
8719
8720 * src/print_graph.c (print_state): Fix.
8721
8722 2001-08-27 Marc Autret <autret_m@epita.fr>
8723
8724 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8725 char * members.
8726 Echo modifications to the functions prototypes.
8727 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8728
8729 2001-08-27 Marc Autret <autret_m@epita.fr>
8730
8731 * src/vcg.c: Include `xalloc.h'.
8732 (add_colorentry): New.
8733 (add_classname): New.
8734 (add_infoname): New.
8735 * src/vcg.h: Add new prototypes.
8736
8737 2001-08-27 Akim Demaille <akim@epita.fr>
8738
8739 * Makefile.maint: Sync. again with CVS Autoconf.
8740
8741 2001-08-27 Akim Demaille <akim@epita.fr>
8742
8743 * Makefile.maint: Formatting changes.
8744 (po-update, cvs-update, update): New targets.
8745 (AMTAR): Remove.
8746
8747 2001-08-27 Akim Demaille <akim@epita.fr>
8748
8749 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8750 * Makefile.maint: Sync. with CVS Autoconf.
8751
8752 2001-08-27 Marc Autret <autret_m@epita.fr>
8753
8754 * src/vcg.h (struct infoname_s): New.
8755 (struct colorentry_s): New.
8756 (graph_s): New fields {vertical,horizontal}_order in structure.
8757 Add `infoname' field.
8758 Add `colorentry' field;
8759 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8760 (G_HORIZONTAL_ORDER): New.
8761 (G_INFONAME): New.
8762 (G_COLORENTRY): New.
8763 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8764 Add output of `infoname'.
8765 Add output of `colorentry'.
8766
8767 2001-08-27 Marc Autret <autret_m@epita.fr>
8768
8769 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8770 This one shadowed a global parameter.
8771
8772 2001-08-24 Marc Autret <autret_m@epita.fr>
8773
8774 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8775 instead of `unsigned'.
8776 (print_state): Do not call obstack_object_size () in obstack_grow ()
8777 to avoid macro variables shadowing.
8778
8779 2001-08-23 Marc Autret <autret_m@epita.fr>
8780
8781 * src/lex.c (percent_table): Typo: s/naem/name/.
8782 Add graph option.
8783 Normalize new options declarations.
8784
8785 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8786
8787 * tests/suite.at: Exercise %header_extension and %source_extension.
8788
8789 2001-08-16 Marc Autret <autret_m@epita.fr>
8790
8791 * src/reader.c (parse_dquoted_param): New.
8792 (parse_header_extension_decl): Use it.
8793 (parse_source_extension_decl): Likewise.
8794
8795 2001-08-16 Marc Autret <autret_m@epita.fr>
8796
8797 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8798 (get_xxxx_str): Use assert () instead of complain ().
8799 Remove return invokations in default cases.
8800 (get_decision_str): Modify default behaviour. Remove second argument.
8801 Echo modifications on calls.
8802 (output_graph): Fix.
8803
8804 2001-08-16 Marc Autret <autret_m@epita.fr>
8805
8806 * src/getargs.c (usage): Update with ``-g, --graph''.
8807
8808 2001-08-16 Marc Autret <autret_m@epita.fr>
8809
8810 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8811 (Option Cross Key): Likewise.
8812 * doc/bison.1: Update.
8813
88142001-09-25 Pascal Bart <pascal.bart@epita.fr>
8815
8816 * src/output.c (output_master_parser): Don't finish action_obstack.
8817 (output_parser): Don't care about the muscle action, here.
8818 (prepare): Copy the action_obstack in the action muscle.
8819 (output): Free action_obstack.
8820
88212001-09-23 Pascal Bart <pascal.bart@epita.fr>
8822
8823 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8824 will contain `%union' declaration.
8825 (parse_union_decl): Delete #line directive output.
8826 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8827 informations about %union.
8828 (parse_union_decl): Copy the union_obstack in the muscle stype.
8829 * src/bison.simple: Add new #line directive.
8830 Add typdef %%stype YYSTYPE.
8831
88322001-09-23 Pascal Bart <pascal.bart@epita.fr>
8833
8834 * src/bison.simple: Add new `#line' directive.
8835
88362001-09-22 Pascal Bart <pascal.bart@epita.fr>
8837
8838 * src/bison.simple: New `#line' directive.
8839 * src/output.c (output_parser): Support new dynamic muscle input_line.
8840
88412001-09-22 Marc Autret <autret_m@epita.fr>
8842
8843 * src/output.c (output_master_parser): New.
8844 (output_parser): Be more re-entrant.
8845
88462001-09-21 Marc Autret <autret_m@epita.fr>
8847
8848 * src/reader.c (copy_definition, parse_union_decl): Update and use
8849 `linef' muscle.
8850 (copy_action): Likewise.
8851 Use obstack_1grow ().
8852 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8853
88542001-09-21 Marc Autret <autret_m@epita.fr>
8855
8856 * src/options.c (option_table): Adjust.
8857 * src/lex.c (parse_percent_token): Fix.
8858
88592001-09-20 Pascal Bart <pascal.bart@epita.fr>
8860
8861 * src/options.c (symtab.h): Include it, need by lex.h.
8862
88632001-09-20 Pascal Bart <pascal.bart@epita.fr>
8864
8865 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8866 is now an option_table_struct*.
8867 (option_strcmp): New function option_strcmp.
8868 (parse_percent_token): Call option_strcmp.
8869 * src/getargs.c (xalloc.h, options.h): Include it.
8870 (getargs): Call create_long_option_table.
8871 (getargs): Free longopts at the end of the function.
8872 (shortopts): Move in options.c.
8873 * src/options.c (create_long_option_table): New function. Convert
8874 information from option_table to option structure.
8875 * src/reader.c (options.h): Include it.
8876
8877 * src/Makefile.am: Adjust.
8878 * src/options.c (option_table): Create from longopts and percent_table.
8879 * src/getargs.c (longopts): Delete.
8880 * src/lex.c (struct percent_table_struct): Delete.
8881 (percent_table): Delete.
8882 (options.h): Include it.
8883 * src/options.c: Create.
8884 * src/options.h: Create.
8885 Declare enum opt_access_e.
8886 Define struct option_table_struct.
8887
88882001-09-20 Marc Autret <autret_m@epita.fr>
8889
8890 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8891 sections of Bison.
8892
88932001-09-19 Pascal Bart <pascal.bart@epita.fr>
8894
8895 * src/bison.simple: s/%%filename/%%skeleton.
8896 * src/muscle_tab.c (getargs.h): Include it.
8897 (muscle_init): Insert new muscle skeleton.
8898
88992001-09-18 Pascal Bart <pascal.bart@epita.fr>
8900
8901 * src/output.c (output_parser): Delete unused variable actions_dumped.
8902
89032001-09-07 Pascal Bart <pascal.bart@epita.fr>
8904
8905 * src/output.c (output): Delete call to reader_output_yylsp.
8906 * src/reader.c (reader): Likewise.
8907 * src/reader.h: Delete declaration of reader_output_yylsp.
8908
89092001-09-02 Marc Autret <autret_m@epita.fr>
8910
8911 * src/reader.c: Include muscle_tab.h.
8912 (parse_union_decl): Update.
8913 (parse_macro_decl): Rename parse_muscle_decl.
8914 Update to use renamed functions and variable.
8915 (read_declarations, copy_action, read_additionnal_code, : Updated
8916 with correct variables and functions names.
8917 (packsymbols, reader): Likewise.
8918
8919 * src/reader.h (muscle_obstack): Extern declaration update.
8920
8921 * src/output.c: Include muscle_tab.h
8922 In all functions using macro_insert, change by using muscle_insert ().
8923 (macro_obstack): Rename muscle_obstack.
8924 Echo modifications in the whole file.
8925 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8926 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8927 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8928
8929 * src/muscle_tab.h: Update double inclusion macros.
8930 (macro_entry_s): Rename muscle_entry_s.
8931 Update prototypes.
8932
8933 * src/muscle_tab.c: Include muscle_tab.h.
8934 Rename macro_tabble to muscle_table.
8935 (mhash1, mhash2, mcmp): Use muscle_entry.
8936 (macro_init): Rename muscle_init. Update.
8937 (macro_insert): Rename muscle_insert. Update.
8938 (macro_find): Rename muscle_find. Update.
8939
8940 * src/main.c: Include muscle_tab.h.
8941 (main): Call muscle_init ().
8942 * src/Makefile.am (bison_SOURCES): Echo modifications.
8943
89442001-09-02 Marc Autret <autret_m@epita.fr>
8945
8946 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8947
8948 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8949
89502001-09-02 Marc Autret <autret_m@epita.fr>
8951
8952 * src/macrotab.c, src/macrotab.h: Remove.
8953
89542001-09-01 Pascal Bart <pascal.bart@epita.fr>
8955
8956 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8957 filename.
8958
89592001-09-01 Marc Autret <autret_m@epita.fr>
8960
8961 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8962 to an explicit value to activate the feature. We do it here.
8963
89642001-08-31 Pascal Bart <pascal.bart@epita.fr>
8965
8966 * src/output.c (prepare): Delete the `filename' muscule insertion.
8967 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8968 (parse_union_decl): Likewise.
8969 * src/macrotab.c (macro_init): Initialize filename by infile.
8970
89712001-08-31 Marc Autret <autret_m@epita.fr>
8972
8973 * src/bison.simple (YYLSP_NEEDED): New definition.
8974 * src/output.c (prepare): Add macro insertion of `locations_flag'
8975
89762001-08-31 Pascal Bart <pascal.bart@epita.fr>
8977
8978 * src/output.c (prepare): Delete insertion of previous muscles,
8979 and insert the `prefix' muscles.
8980 * src/macrotab.c (macro_init): Likewise.
8981 (macro_init): Initialization prefix directive by `yy'.
8982 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8983 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8984 yylval, yydebug, yyerror, yynerrs and yyparse.
8985 New directive `#define' to substitute yydebug, ... with option
8986 name_prefix.
8987
89882001-08-31 Pascal Bart <pascal.bart@epita.fr>
8989
8990 * src/main.c (main): Standardize.
8991 * src/output.c (output_table_data, output_parser): Likewise.
8992 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8993
89942001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8995
8996 * src/reader.c (read_additionnal_code): Rename %%user_code to
8997 %%epilogue.
8998 * src/output.c (output): Rename %%declarations to %%prologue.
8999 * src/bison.simple: Echo modifications.
9000
90012001-08-31 Marc Autret <autret_m@epita.fr>
9002
9003 * src/reader.c (readgram): CleanUp.
9004 (output_token_defines): Likewise.
9005 (packsymbols): Likewise.
9006 (reader): Likewise.
9007 * src/output.c (output): CPP-out useless code.
9008
90092001-08-31 Pascal Bart <pascal.bart@epita.fr>
9010
9011 * src/reader.c (reader): Delete obsolete call to function
9012 output_trailers and output_headers.
9013 * src/output.h: Remove obsolete functions prototypes of output_headers
9014 and output_trailers.
9015
90162001-08-30 Pascal Bart <pascal.bart@epita.fr>
9017
9018 * src/main.c: Include macrotab.h.
9019 * src/macrotab.h (macro_entry_s): Constify fields.
9020 Adjust functions prototypes.
9021 * src/macrotab.c (macro_insert): Constify key and value.
9022 (macro_find): Constify key.
9023 (macro_insert): Include 'xalloc.h'
9024 (macro_insert): Use XMALLOC.
9025 (macro_find): Constify return value.
9026 * src/output.c (output_table_data): Rename table to table_data.
9027 (output_parser): Constify macro_key, macro_value.
9028
90292001-08-30 Marc Autret <autret_m@epita.fr>
9030
9031 * src/reader.c (parse_skel_decl): New.
9032 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
9033 * src/lex.h (token_t): New token `tok_skel'.
9034 * src/lex.c (percent_table): Add skeleton option entry.
9035 Standardize.
9036
90372001-08-29 Marc Autret <autret_m@epita.fr>
9038
9039 * src/bison.simple: Add %%user_code directive at the end.
9040 * src/reader.c (read_additionnal_code): New.
9041 (reader): Use it.
9042 * src/output.c (output_program): Remove.
9043 (output): Update.
9044
90452001-08-28 Marc Autret <autret_m@epita.fr>
9046
9047 * src/output.c (output_actions): Clean up.
9048 (output_gram): CPP-out useless code.
9049 * src/reader.c (reader): Clean up, CPP-out useless code.
9050
90512001-08-28 Pascal Bart <pascal.bart@epita.fr>
9052
9053 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
9054 directive.
9055 * src/bison.simple: Add `%%definitions'.
9056
90572001-08-28 Marc Autret <autret_m@epita.fr>
9058
9059 * config/depcomp: New file.
9060
90612001-08-27 Paul Eggert <eggert@twinsun.com>
9062
9063 * src/bison.simple (yyparse): Don't take the address of an
9064 item before the start of an array, as that doesn't conform to
9065 the C Standard.
9066
90672001-08-27 Robert Anisko <robert.anisko@epita.fr>
9068
9069 * src/output.c (output): Remove the initialization of the macro
9070 obstack. It was done too late here.
9071
9072 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
9073 completely wrong.
9074 (reader): Initialize the macro obstack here, since we need it to grow
9075 '%define' directives.
9076
9077 * src/reader.h: Declare the macro obstack as extern.
9078
90792001-08-27 Robert Anisko <robert.anisko@epita.fr>
9080
9081 * src/output.c (output_parser): Fix. Store single '%' characters in
9082 the output obstack instead of throwing them away.
9083
90842001-08-27 Akim Demaille <akim@epita.fr>
9085
9086 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9087
90882001-08-25 Robert Anisko <robert.anisko@epita.fr>
9089
9090 * lib/Makefile.am: Adjust.
9091
90922001-08-25 Robert Anisko <robert.anisko@epita.fr>
9093
9094 * src/bison.simple: Update and add '%%' directives.
9095
90962001-08-25 Robert Anisko <robert.anisko@epita.fr>
9097
9098 * src/reader.c (reader): Remove calls to 'output_headers' and
9099 'output_trailers'. Remove some C output.
9100 (readgram): Disable a piece of code that was writing a default
9101 definition for 'YYSTYPE'.
9102 (reader_output_yylsp): Remove.
9103 (packsymbols): Output token defintions to a macro.
9104 (copy_definition): Disable C output.
9105
9106 * src/reader.c (parse_macro_decl): New function used to parse macro
9107 declarations.
9108 (copy_string2): Put the body of copy_string into this new function.
9109 Add a parameter to let the caller choose whether he wants to copy the
9110 string delimiters or not.
9111 (copy_string): Be a simple call to copy_string2 with the last argument
9112 bound to true.
9113 (read_declarations): Add case for macro definition.
9114 (copy_identifier): New.
9115 (parse_macro_decl): Read macro identifiers using copy_identifier
9116 rather than lex.
9117
91182001-08-25 Robert Anisko <robert.anisko@epita.fr>
9119
9120 * src/output.c (prepare): Add prefixed names.
9121 (output_parser): Output semantic actions.
9122 (output_parser): Fix bug on '%%line' directives.
9123
9124 * src/output.c (output_headers): Remove. The C code printed by this
9125 function should now be in the skeletons.
9126 (output_trailers): Remove.
9127 (output): Disable call to 'reader_output_yylsp'.
9128 (output_rule_data): Do not output tables to the table obstack.
9129
9130 * src/output.c: Remove some C dedicated output.
9131 Improve the use of macro and output obstacks.
9132 (output_defines): Remove.
9133
9134 * src/output.c (output_token_translations): Associate 'translate'
9135 table with a macro. No output to the table obstack.
9136 (output_gram): Same for 'rhs' and 'prhs'.
9137 (output_stos): Same for 'stos'.
9138 (output_rule_data): Same for 'r1' and 'r2'.
9139 (token_actions): Same for 'defact'.
9140 (goto_actions): Same for 'defgoto'.
9141 (output_base): Same for 'pact' and 'pgoto'.
9142 (output_table): Same for 'table'.
9143 (output_check): Same for 'check'.
9144
9145 * src/output.c (output_table_data): New function.
9146 (output_short_table): Remove.
9147 (output_short_or_char_table): Remove.
9148
9149 * src/output.c (output_parser): Replace most of the skeleton copy code
9150 with something new. Skeletons are now processed character by character
9151 rather than line by line, and Bison looks for '%%' macros. This is the
9152 first step in making Bison's output process (a lot) more flexible.
9153 (output_parser): Use the macro table.
9154
91552001-08-25 Robert Anisko <robert.anisko@epita.fr>
9156
9157 * src/main.c (main): Initialize the macro table.
9158
91592001-08-25 Robert Anisko <robert.anisko@epita.fr>
9160
9161 * src/lex.c (percent_table): Add tok_define.
9162 * src/lex.h: Add tok_define.
9163
91642001-08-25 Robert Anisko <robert.anisko@epita.fr>
9165
9166 * src/macrotab.c: New file.
9167 * src/macrotab.h: New file.
9168 * src/Makefile.am: Update.
9169
91702001-08-25 Robert Anisko <robert.anisko@epita.fr>
9171
9172 * lib/hash.c: New file.
9173 * lib/hash.h: New file.
9174 * lib/Makefile.am: Update.
9175
91762001-08-15 Akim Demaille <akim@epita.fr>
9177
9178 Version 1.28c.
9179
91802001-08-15 Marc Autret <autret_m@epita.fr>
9181
9182 * src/reader.c (readgram): Indent output macro YYSTYPE.
9183 (packsymbols): Likewise.
9184 (output_token_defines): Likewise.
9185 * src/files.c: Standardize.
9186 (compute_header_macro): New.
9187 (defines_obstack_save): New. Use compute_header_macro.
9188 (output_files): Update. Use defines_obstack_save.
9189
91902001-08-15 Akim Demaille <akim@epita.fr>
9191
9192 * doc/bison.texinfo (Table of Symbols): Document
9193 YYSTACK_USE_ALLOCA.
9194
91952001-08-15 Akim Demaille <akim@epita.fr>
9196
9197 * missing: Update from CVS Automake.
9198 * config/config.guess, config/config.sub, config/texinfo.tex:
9199 Update from gnu.org.
9200
92012001-08-15 Akim Demaille <akim@epita.fr>
9202
9203 * Makefile.maint: Sync with CVS Autoconf.
9204
92052001-08-14 Pascal Bart <pascal.bart@epita.fr>
9206
9207 * doc/bison.texinfo: Include GNU Free Documentation License from
9208 `fdl.texi'.
9209 * doc/fdl.texi: Add to package.
9210
92112001-08-14 Marc Autret <autret_m@epita.fr>
9212
9213 Turn on %{source,header}_extension features.
9214
9215 * src/lex.c (percent_table): Un-CPP out header_extension and
9216 source_extension.
9217 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
9218 (compute_exts_from_src): Remove conditions. It restores priorities
9219 between options.
9220
92212001-08-14 Marc Autret <autret_m@epita.fr>
9222
9223 * src/files.c (compute_base_names): Add extensions computing when
9224 `--file-prefix' used.
9225 Standardize function calls.
9226
92272001-08-13 Marc Autret <autret_m@epita.fr>
9228
9229 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
9230 defining it (defined but null disables alloca).
9231
92322001-08-13 Marc Autret <autret_m@epita.fr>
9233
9234 * src/bison.simple (_yy_memcpy): CPP reformat.
9235
92362001-08-13 Pascal Bart <pascal.bart@epita.fr>
9237
9238 * tests/atconfig.in (CPPFLAGS): Fix.
9239
92402001-08-10 Pascal Bart <pascal.bart@epita.fr>
9241
9242 * doc/bison.texinfo: Include GNU General Public License from
9243 `gpl.texi'.
9244 * doc/gpl.texi: Add to package.
9245
92462001-08-10 Marc Autret <autret_m@epita.fr>
9247
9248 * src/print_graph.h: Fix.
9249 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
9250
92512001-08-10 Akim Demaille <akim@epita.fr>
9252
9253 * src/system.h: Provide default declarations for stpcpy, strndup,
9254 and strnlen.
9255
92562001-08-10 Robert Anisko <anisko_r@epita.fr>
9257
9258 * doc/bison.texinfo (Locations): Update @$ stuff.
9259
92602001-08-09 Robert Anisko <anisko_r@epita.fr>
9261
9262 * src/bison.simple (YYLLOC_DEFAULT): Update.
9263 (yyparse): Adjust.
9264
92652001-08-08 Marc Autret <autret_m@epita.fr>
9266
9267 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
9268 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
9269 Reported by Fabrice Bauzac.
9270
92712001-08-08 Marc Autret <autret_m@epita.fr>
9272
9273 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
9274 * src/vcg.c (output_node): Fix.
9275 * src/vcg.h: Cleanup.
9276 * src/print_graph.c: Add comments.
9277 (node_output_size): New global variable. Simplify the formatting of
9278 the VCG graph output.
9279 (print_actions): Unused code is now used. It notifies the final state
9280 and no action states in the VCG graph. It also give the reduce actions.
9281 The `shift and goto' edges are red and the `go to state' edges are
9282 blue.
9283 Get the current node name and node_obstack by argument.
9284 (node_obstack): New variable.
9285 (print_state): Manage node_obstack.
9286 (print_core): Use node_obstack given by argument.
9287 A node is not only computed here but in print_actions also.
9288 (print_graph): CPP out useless code instead of commenting it.
9289
92902001-08-07 Pascal Bart <pascal.bart@epita.fr>
9291
9292 * tests/atconfig.in (CPPFLAGS): Fix.
9293
92942001-08-07 Akim Demaille <akim@epita.fr>
9295
9296 * src/print_graph.c (quote): New.
9297 (print_core): Use it.
9298
92992001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
9300
9301 * src/vcg.c (complain.h): Include it.
9302 Unepitaize `return' invocations.
9303 [NDEBUG] (main): Remove.
9304 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
9305 * src/files.c (open_files): Initialize graph_obstack.
9306 * src/print_graph.c (print_actions): CPP out useless code.
9307 (print_core): Don't output the last `\n' in labels.
9308 Use `quote'.
9309 * src/files.c (output_files): Output the VCG file.
9310 * src/main.c (main): Invoke print_graph ();
9311
93122001-08-06 Marc Autret <autret_m@epita.fr>
9313
9314 Automaton VCG graph output.
9315 Using option ``-g'' or long option ``--graph'', you can generate
9316 a gram_filename.vcg file containing a VCG description of the LALR (1)
9317 automaton of your grammar.
9318
9319 * src/main.c: Call to print_graph() function.
9320 * src/getargs.h: Update.
9321 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
9322 (graph_flag): New flag.
9323 (longopts): Update.
9324 (getargs): Add case `g'.
9325 * src/files.c (graph_obstack): New obstack struct.
9326 (open_files): Initialize new obstack.
9327 (output_files): Saves graph_obstack if required.
9328 * src/files.h (graph_obstack): New extern declaration.
9329 * src/Makefile.am: Add new source files.
9330
93312001-08-06 Marc Autret <autret_m@epita.fr>
9332
9333 * src/print_graph.c, src/print_graph.h (graph): New.
9334 * src/vcg.h: New file.
9335 * src/vcg.c: New file, VCG graph handling.
9336
93372001-08-06 Marc Autret <autret_m@epita.fr>
9338
9339 Add of %source_extension and %header_extension which specify
9340 the source or/and the header output file extension.
9341
9342 * src/files.c (compute_base_names): Remove initialisation of
9343 src_extension and header_extension.
9344 (compute_exts_from_gf): Update.
9345 (compute_exts_from_src): Update.
9346 (output_files): Update.
9347 * src/reader.c (parse_header_extension_decl): New.
9348 (parse_source_extension_decl): New.
9349 (read_declarations): New case statements for the new tokens.
9350 * src/lex.c (percent_table): Add entries for %source_extension
9351 and %header_extension.
9352 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
9353
93542001-08-06 Marc Autret <autret_m@epita.fr>
9355
9356 * configure.in: Bump to 1.28c.
9357 * doc/bison.texinfo: Texinfo thingies.
9358
93592001-08-04 Pascal Bart <pascal.bart@epita.fr>
9360
9361 * tests/atconfig.in (CPPFLAGS): Add.
9362 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
9363
93642001-08-03 Akim Demaille <akim@epita.fr>
9365
9366 Version 1.28b.
9367
93682001-08-03 Akim Demaille <akim@epita.fr>
9369
9370 * tests/Makefile.am (check-local): Ship testsuite.
9371 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
9372 Include `string.h'.
9373
93742001-08-03 Akim Demaille <akim@epita.fr>
9375
9376 * configure.in: Try using -Wformat when compiling.
9377
93782001-08-03 Akim Demaille <akim@epita.fr>
9379
9380 * configure.in: Bump to 1.28b.
9381
93822001-08-03 Akim Demaille <akim@epita.fr>
9383
9384 * src/complain.c: Adjust strerror_r portability issues.
9385
93862001-08-03 Akim Demaille <akim@epita.fr>
9387
9388 Version 1.28a.
9389
93902001-08-03 Akim Demaille <akim@epita.fr>
9391
9392 * src/getargs.c, src/getarg.h (skeleton)): Constify.
9393 * src/lex.c (literalchar): Avoid name clashes on `buf'.
9394 * src/getargs.c: Include complain.h.
9395 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
9396 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
9397
93982001-08-03 Akim Demaille <akim@epita.fr>
9399
9400 * src/reader.c (readgram): Display hidden chars in error messages.
9401
94022001-08-03 Akim Demaille <akim@epita.fr>
9403
9404 Update to gettext 0.10.39.
9405
94062001-08-03 Akim Demaille <akim@epita.fr>
9407
9408 * lib/strspn.c: New.
9409
94102001-08-01 Marc Autret <autret_m@epita.fr>
9411
9412 * doc/bison.texinfo: Update.
9413 * doc/bison.1 (mandoc): Update.
9414 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
9415 * src/files.c: Support output files extensions computing.
9416 (src_extension): New static variable.
9417 (header_extension): New static variable.
9418 (tr): New function.
9419 (get_extension_index): New function, gets the index of an extension
9420 filename in a string.
9421 (compute_exts_from_gf): New function, computes extensions from the
9422 grammar file extension.
9423 (compute_exts_from_src): New functions, computes extensions from the
9424 C source file extension, file given by ``-o'' option.
9425 (compute_base_names): Update.
9426 (output_files): Update.
9427
94282001-08-01 Robert Anisko <anisko_r@epita.fr>
9429
9430 * doc/bison.texi: Document @$.
9431 (Locations): New section.
9432
94332001-07-18 Akim Demaille <akim@epita.fr>
9434
9435 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
9436 * config/prev-version.txt, config/move-if-change: New.
9437 * Makefile.am: Adjust.
9438
94392001-07-08 Pascal Bart <pascal.bart@epita.fr>
9440
9441 * src/bison.simple (yyparse): Suppress warning `comparaison
9442 between signed and unsigned'.
9443
94442001-07-05 Pascal Bart <pascal.bart@epita.fr>
9445
9446 * src/getargs.h (raw_flag): Remove.
9447 * src/getargs.c: Die on `-r'/`--raw'.
9448 * src/lex.c (parse_percent_token): Die on `%raw'.
9449 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
9450 * tests/calc.at: Suppress test with option `--raw'.
9451
94522001-07-14 Akim Demaille <akim@epita.fr>
9453
9454 * config/: New.
9455 * configure.in: Require Autoconf 2.50.
9456 Update to gettext 0.10.38.
9457
94582001-03-16 Akim Demaille <akim@epita.fr>
9459
9460 * doc/bison.texinfo: ANSIfy the examples.
9461
94622001-03-16 Akim Demaille <akim@epita.fr>
9463
9464 * getargs.c (skeleton): New variable.
9465 (longopts): --skeleton is a new option.
9466 (shortopts, getargs): -S is a new option.
9467 * getargs.h: Declare skeleton.
9468 * output.c (output_parser): Use it.
9469
94702001-03-16 Akim Demaille <akim@epita.fr>
9471
9472 * m4/strerror_r.m4: New.
9473 * m4/error.m4: Run AC_FUNC_STRERROR_R.
9474 * lib/error.h, lib/error.c: Update.
9475
94762001-03-16 Akim Demaille <akim@epita.fr>
9477
9478 * src/getargs.c (longopts): Clean up.
9479
94802001-02-21 Akim Demaille <akim@epita.fr>
9481
9482 * src/reader.c (gensym): `gensym_count' is your own.
9483 Use a static buf to create the symbol name, as token_buffer is no
9484 longer a buffer.
9485
94862001-02-08 Akim Demaille <akim@epita.fr>
9487
9488 * src/conflicts.c (conflict_report): Be sure not to append to res
9489 between two calls, which could happen if both first sprintf were
9490 skipped, but not the first cp += strlen.
9491
94922001-02-08 Akim Demaille <akim@epita.fr>
9493
9494 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
9495 New, from fileutils 4.0.37.
9496 * configure.in: Require Autoconf 2.49c. I took some time before
9497 making this decision. This is the only way out for portability
9498 issues in Bison, it would mean way too much duplicate effort to
9499 import in Bison features implemented in 2.49c since 2.13.
9500 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
9501
95022001-02-02 Akim Demaille <akim@epita.fr>
9503
9504 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
9505 * lib/xalloc.h, lib/xmalloc.c: Update.
9506
95072001-01-19 Akim Demaille <akim@epita.fr>
9508
9509 Get rid of the ad hoc handling of token_buffer in the scanner: use
9510 the obstacks.
9511
9512 * src/lex.c (token_obstack): New.
9513 (init_lex): Initialize it. No longer call...
9514 (grow_token_buffer): this. Remove it.
9515 Adjust all the places which used it to use the obstack.
9516
95172001-01-19 Akim Demaille <akim@epita.fr>
9518
9519 * src/lex.h: Rename all the tokens:
9520 s/\bENDFILE\b/tok_eof/g;
9521 s/\bIDENTIFIER\b/tok_identifier/g;
9522 etc.
9523 Let them be enums, not #define, to ease debugging.
9524 Adjust all the code.
9525
95262001-01-18 Akim Demaille <akim@epita.fr>
9527
9528 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
9529 * src/lex.c (maxtoken, grow_token_buffer): Static.
9530
95312001-01-18 Akim Demaille <akim@epita.fr>
9532
9533 Since we now use obstacks, more % directives can be enabled.
9534
9535 * src/lex.c (percent_table): Also accept `%yacc',
9536 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
9537 `%debug'.
9538 Handle the actions for `%semantic_parser' and `%pure_parser' here,
9539 instead of returning a token.
9540 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
9541 * src/reader.c (read_declarations): Adjust.
9542 * src/files.c (open_files): Don't call `compute_base_names', don't
9543 compute `attrsfile' since they depend upon data which might be
9544 *in* the input file now.
9545 (output_files): Do it here.
9546 * src/output.c (output_headers): Document the fact that this patch
9547 introduces a guaranteed SEGV for semantic parsers.
9548 * doc/bison.texinfo: Document them.
9549 * tests/suite.at: Exercise these %options.
9550
95512000-12-20 Akim Demaille <akim@epita.fr>
9552
9553 Also handle the output file (--verbose) with obstacks.
9554
9555 * files.c (foutput): Remove.
9556 (output_obstack): New.
9557 Adjust all dependencies.
9558 * src/conflicts.c: Return a string.
9559 * src/system.h (obstack_grow_string): Rename as...
9560 (obstack_sgrow): this. Be ready to work with non literals.
9561 (obstack_fgrow4): New.
9562
95632000-12-20 Akim Demaille <akim@epita.fr>
9564
9565 * src/files.c (open_files): Fix the computation of short_base_name
9566 in the case of `-o foo.tab.c'.
9567
95682000-12-20 Akim Demaille <akim@epita.fr>
9569
9570 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
9571 (copy_dollar): Now that everything uses obstacks, get rid of the
9572 FILE * parameters.
9573
95742000-12-20 Akim Demaille <akim@epita.fr>
9575
9576 * src/files.c (open_files): Actually the `.output' file is based
9577 on the short_base_name, not base_name.
9578 * tests/suite.at (Checking output file names): Adjust.
9579
95802000-12-20 Akim Demaille <akim@epita.fr>
9581
9582 * src/bison.s1: Remove, we now use directly...
9583 * src/bison.simple: this.
9584 * src/Makefile.am: Use pkgdata instead of data.
9585
95862000-12-20 Akim Demaille <akim@epita.fr>
9587
9588 * src/files.c (guard_obstack): New.
9589 (open_files): Initialize it.
9590 (output_files): Dump it...
9591 * src/files.h: Export it.
9592 * src/reader.c (copy_guard): Use it.
9593
95942000-12-19 Akim Demaille <akim@epita.fr>
9595
9596 * src/files.c (outfile, defsfile, actfile): Removed as global
9597 vars.
9598 (open_files): Don't compute them.
9599 (output_files): Adjust.
9600 (base_name, short_base_name): Be global.
9601 Adjust dependencies.
9602
96032000-12-19 Akim Demaille <akim@epita.fr>
9604
9605 * src/files.c (strsuffix): New.
9606 (stringappend): Be just like strcat but allocate.
9607 (base_names): Eve out from open_files.
9608 Try to simplify the rather hairy computation of base_name and
9609 short_base_name.
9610 (open_files): Use it.
9611 * tests/suite.at (Checking output file names): New test.
9612
96132000-12-19 Akim Demaille <akim@epita.fr>
9614
9615 * src/system.h (obstack_grow_literal_string): Rename as...
9616 (obstack_grow_string): this.
9617 * src/output.c (output_parser): Recognize `%% actions' instead of
9618 `$'.
9619 * src/bison.s1: s/$/%% actions/.
9620 * src/bison.hairy: Likewise.
9621
96222000-12-19 Akim Demaille <akim@epita.fr>
9623
9624 * src/output.c (output_parser): Compute the `#line' lines when
9625 there are.
9626 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9627 Suggested by Hans Aberg.
9628
96292000-12-19 Akim Demaille <akim@epita.fr>
9630
9631 Let the handling of the skeleton files be local to the procedures
9632 that use it.
9633
9634 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9635 longer static.
9636 (fparser, open_extra_files): Remove.
9637 (open_files, output_files): Don't take care of fparser.
9638 * src/files.h: Adjust.
9639 * src/output.c (output_parser): Open and close the file to the
9640 skeleton.
9641 * src/reader.c (read_declarations): When %semantic_parser, open
9642 fguard.
9643
96442000-12-19 Akim Demaille <akim@epita.fr>
9645
9646 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9647 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9648
96492000-12-19 Akim Demaille <akim@epita.fr>
9650
9651 * src/files.c (open_files): Yipee! We no longer need all the code
9652 looking for `/tmp' since we have no tmp file.
9653
96542000-12-19 Akim Demaille <akim@epita.fr>
9655
9656 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9657 New macros.
9658 * src/files.c (open_files): Less dependency on MSDOS etc.
9659
96602000-12-14 Akim Demaille <akim@epita.fr>
9661
9662 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9663 Provide a default definition.
9664 Use it when executing the default @ action.
9665 * src/reader.c (reader_output_yylsp): No longer include
9666 `timestamp' and `text' in the default YYLTYPE.
9667
96682000-12-12 Akim Demaille <akim@epita.fr>
9669
9670 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9671 (copy_guard): Quote the file names.
9672 Reported by Laurent Mascherpa.
9673
96742000-12-12 Akim Demaille <akim@epita.fr>
9675
9676 * src/output.c (output_headers, output_program, output): Be sure
9677 to escape special characters when outputting filenames.
9678 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9679 (output_headers): Don't depend on them, Use ACTSTR.
9680
96812000-11-17 Akim Demaille <akim@epita.fr>
9682
9683 * lib/obstack.h: Formatting changes.
9684 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9685 prevents type checking.
9686 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9687 cast the value to (void *): assigning a `foo *' to a `void *'
9688 variable is valid.
9689 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9690 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9691 append characters.
9692
96932000-11-17 Akim Demaille <akim@epita.fr>
9694
9695 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9696 as...
9697 (suite.m4, regression.m4, calc.m4): these.
9698 * tests/atgeneral.m4: Update from CVS Autoconf.
9699
97002000-11-17 Akim Demaille <akim@epita.fr>
9701
9702 * tests/regression.m4 (%union and --defines): New test,
9703 demonstrating a current bug in the obstack implementation.
9704
97052000-11-17 Akim Demaille <akim@epita.fr>
9706
9707 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9708 macros.
9709 Use them to declare the variables which are global or local to
9710 `yyparse'.
9711
97122000-11-17 Akim Demaille <akim@epita.fr>
9713
9714 * acconfig.h: Remove, no longer used.
9715
97162000-11-07 Akim Demaille <akim@epita.fr>
9717
9718 * src: s/Copyright (C)/Copyright/g.
9719
97202000-11-07 Akim Demaille <akim@epita.fr>
9721
9722 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9723 defining.
9724 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9725
97262000-11-07 Akim Demaille <akim@epita.fr>
9727
9728 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9729 Merge in a single CPP if/else.
9730
97312000-11-07 Akim Demaille <akim@epita.fr>
9732
9733 * src/output.c (output): Remove useless variables.
9734 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9735 argument `data' for consistency with the prototypes.
9736 Qualify it `const'.
9737 (obstack_copy, obstack_copy0): Rename the second argument as
9738 `address' for consistency. Qualify it `const'.
9739 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9740 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9741 `const' their input argument (`data' or `address').
9742 Adjust the corresponding macros to include `const' in casts.
9743
97442000-11-03 Akim Demaille <akim@epita.fr>
9745
9746 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9747 s/PFILE1/BISON_HAIRY/.
9748 Adjust dependencies.
9749
97502000-11-03 Akim Demaille <akim@epita.fr>
9751
9752 For some reason, this was not applied.
9753
9754 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9755 `unlink': it's no longer used.
9756
97572000-11-03 Akim Demaille <akim@epita.fr>
9758
9759 * src/files.c (skeleton_find): New function, eved out of...
9760 (open_files, open_extra_files): here.
9761
97622000-11-03 Akim Demaille <akim@epita.fr>
9763
9764 Don't use `atexit'.
9765
9766 * src/files.c (obstack_save): New function.
9767 (done): Rename as...
9768 (output_files): this.
9769 Use `obstack_save'.
9770 * src/main.c (main): Don't use `atexit' to register `done', since
9771 it no longer has to remove tmp files, just call `output_files'
9772 when there are no errors.
9773
97742000-11-02 Akim Demaille <akim@epita.fr>
9775
9776 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9777 `unlink': it's no longer used.
9778 * src/files.h: Formatting changes.
9779
97802000-11-02 Akim Demaille <akim@epita.fr>
9781
9782 Remove the last uses of mktemp and unlink/delete.
9783
9784 * src/files.c (fdefines, ftable): Removed.
9785 (defines_ostack, table_obstack): New.
9786 Adjust dependencies of the former into uses of the latter.
9787 * src/output.c (output_short_or_char_table, output_short_table):
9788 Convert to using obstacks.
9789 * src/reader.c (copy_comment2): Accept one FILE * and two
9790 obstacks.
9791 (output_token_defines, reader_output_yylsp): Use obstacks.
9792 * src/system.h (obstack_fgrow3): New.
9793
97942000-11-01 Akim Demaille <akim@epita.fr>
9795
9796 Change each use of `fattrs' into a use of `attrs_obstack'.
9797
9798 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9799 * src/files.c (fattrs): Remove.
9800 (attrs_obstack): New.
9801 Adjust all dependencies.
9802 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9803
98042000-11-01 Akim Demaille <akim@epita.fr>
9805
9806 Introduce obstacks.
9807 Change each use of `faction' into a use of `action_obstack'.
9808
9809 * lib/obstack.h, lib/obstack.c: New files.
9810 * src/files.c (faction): Remove.
9811 (action_obstack): New.
9812 Adjust all dependencies.
9813
98142000-10-20 Akim Demaille <akim@epita.fr>
9815
9816 * lib/quote.h (PARAMS): New macro. Use it.
9817
98182000-10-16 Akim Demaille <akim@epita.fr>
9819
9820 * src/output.c (output_short_or_char_table): New function.
9821 (output_short_table, output_token_translations): Use it.
9822 (goto_actions): Use output_short_table.
9823
98242000-10-16 Akim Demaille <akim@epita.fr>
9825
9826 * src/symtab.c (bucket_new): New function.
9827 (getsym): Use it.
9828
9829 * src/output.c (output_short_table): New argument to display the
9830 comment associated with the table.
9831 Adjust dependencies.
9832 (output_gram): Use it.
9833 (output_rule_data): Nicer output layout for YYTNAME.
9834
98352000-10-16 Akim Demaille <akim@epita.fr>
9836
9837 * src/lex.c (read_typename): New function.
9838 (lex): Use it.
9839 * src/reader.c (copy_dollar): Likewise.
9840
98412000-10-16 Akim Demaille <akim@epita.fr>
9842
9843 * src/reader.c (copy_comment2): Expect the input stream to be on
9844 the `/' which is suspected to open a comment, instead of being
9845 called after `//' or `/*' was read.
9846 (copy_comment, copy_definition, parse_union_decl, copy_action)
9847 (copy_guard): Adjust.
9848
98492000-10-16 Akim Demaille <akim@epita.fr>
9850
9851 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9852 `read_signed_integer'.
9853
98542000-10-16 Akim Demaille <akim@epita.fr>
9855
9856 * src/reader.c (copy_dollar): New function.
9857 (copy_guard, copy_action): Use it.
9858
98592000-10-16 Akim Demaille <akim@epita.fr>
9860
9861 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9862 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9863 New files, from Fileutils 4.0.27.
9864 * src/main.c (printable_version): Remove.
9865 * src/lex.c, src/reader.c: Use `quote'.
9866
98672000-10-04 Akim Demaille <akim@epita.fr>
9868
9869 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9870
98712000-10-04 Akim Demaille <akim@epita.fr>
9872
9873 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9874
98752000-10-04 Akim Demaille <akim@epita.fr>
9876
9877 When a literal string is used to define two different tokens,
9878 `bison -v' segfaults.
9879 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9880
9881 * tests/regression.m4: New file.
9882 Include the core of the sample provided by Piotr Gackiewicz.
9883 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9884 properly.
9885
98862000-10-04 Akim Demaille <akim@epita.fr>
9887
9888 * src/reader.c (parse_expect_decl): Keep `count' within the size
9889 of `buffer'.
9890 From Neil Booth.
9891
98922000-10-02 Paul Eggert <eggert@twinsun.com>
9893
9894 * bison.s1 (yyparse): Assign the default value
9895 unconditionally, to avoid a GCC warning and make the parser a
9896 tad smaller.
9897
98982000-10-02 Akim Demaille <akim@epita.fr>
9899
9900 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9901 options.
9902
99032000-10-02 Akim Demaille <akim@epita.fr>
9904
9905 * src/derives.c, src/print.c, src/reduce.c: To ease the
9906 translation, move some `\n' out of the translated strings.
9907
99082000-10-02 Akim Demaille <akim@epita.fr>
9909
9910 The location tracking mechanism is precious for parse error
9911 messages. Nevertheless, it is enabled only when `@n' is used in
9912 the grammar, which is a different issue (you can use it in error
9913 message, but not in the grammar per se). Therefore, there should
9914 be another means to enable it.
9915
9916 * src/getargs.c (getargs): Support `--locations'.
9917 (usage): Report it.
9918 * src/getargs.h (locationsflag): Export it.
9919 * src/lex.c (percent_table): Support `%locations'.
9920 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9921 with `locationsflag'.
9922 * doc/bison.texinfo: Document `--locations' and `%locations'.
9923 Sort the options.
9924 * tests/calc.m4: Test it.
9925
9926 For regularity of the names, replace each
9927 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9928 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9929 In addition replace each `flag' with `_flag'.
9930
99312000-10-02 Akim Demaille <akim@epita.fr>
9932
9933 Also test parse error messages, including with YYERROR_VERBOSE.
9934
9935 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9936 associative).
9937 Use it to check the computations.
9938 Use it to check `nonassoc' is honored.
9939 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9940 `--yyerror-verbose'.
9941 (_AT_CHECK_CALC): Adjust to this option.
9942 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9943
99442000-10-02 Akim Demaille <akim@epita.fr>
9945
9946 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9947 the latter demonstrates a flaw in the handling of non debugging
9948 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9949 was used in order to simplify:
9950
9951 #if YYDEBUG
9952 if (yydebug)
9953 {
9954 ...
9955 }
9956 #endif
9957
9958 into
9959
9960 if (yydebug)
9961 {
9962 ...
9963 }
9964
9965 unfortunately this leads to a CPP conflict when
9966 `--name-prefix=foo' is used since it produces `#define yydebug
9967 foodebug'.
9968
9969 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9970 (YYDPRINTF): New macro.
9971 Spread its use.
9972 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9973 the bison options.
9974 Also test `--verbose', `--defines' and `--name-prefix'.
9975
99762000-10-02 Akim Demaille <akim@epita.fr>
9977
9978 Improve the readability of the produced parsers.
9979
9980 * src/bison.s1: Formatting changes.
9981 Improve the comment related to the `$' mark.
9982 (yydefault): Don't fall through to `yyresume': `goto' there.
9983 * src/output.c (output_parser): When the `$' is met, skip the end
9984 of its line.
9985 New variable, `number_of_dollar_signs', to check there's exactly
9986 one `$' in the parser skeleton.
9987
99882000-10-02 Akim Demaille <akim@epita.fr>
9989
9990 * lib/xstrdup.c: New file, from the fileutils.
9991 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9992 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9993 instead of strlen + xmalloc + strcpy.
9994 * src/symtab.c (copys): Remove, use xstrdup instead.
9995
99962000-10-02 Akim Demaille <akim@epita.fr>
9997
9998 * src/gram.h (associativity): New enum type which replaces the
9999 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10000 `right_assoc', `left_assoc' and `non_assoc'.
10001 Adjust all dependencies.
10002 * src/reader.c: Formatting changes.
10003 (LTYPESTR): Don't define it, use it as a literal in
10004 `reader_output_yylsp'.
10005 * src/symtab.h (symbol_class): New enum type which replaces the
10006 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10007 `sunknown', `stoken and `snterm'.
10008
100092000-10-02 Akim Demaille <akim@epita.fr>
10010
10011 * src/getargs.c (fixed_outfiles): Rename as...
10012 (yaccflag): for consistency and accuracy.
10013 Adjust dependencies.
10014
100152000-10-02 Akim Demaille <akim@epita.fr>
10016
10017 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
10018 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
10019 difficult and introduced a lot of core dump. It turns out that
10020 Bison used an implementation of `xmalloc' based on `calloc', and
10021 at various places it does depend upon the initialization to 0. I
10022 have not tried to isolate the pertinent places, and all the former
10023 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
10024 someone should address this issue.
10025
10026 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
10027 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
10028 files.
10029 Adjust dependencies.
10030 * src/warshall.h: New file.
10031 Propagate.
10032
100332000-10-02 Akim Demaille <akim@epita.fr>
10034
10035 Various anti-`extern in *.c' changes.
10036
10037 * src/system.h: Include `assert.h'.
10038
100392000-10-02 Akim Demaille <akim@epita.fr>
10040
10041 * src/state.h (nstates, final_state, first_state, first_shift)
10042 (first_reduction): Move their exportation from here...
10043 * src/LR0.h: to here.
10044 Adjust dependencies.
10045 * src/getargs.c (statisticsflag): New variable.
10046 Add support for `--statistics'.
10047 Adjust dependencies.
10048
10049 Remove a lot of now useless `extern' statements in most files.
10050
100512000-10-02 Akim Demaille <akim@epita.fr>
10052
10053 * src/LR0.h: New file.
10054 Propagate its use.
10055
100562000-10-02 Akim Demaille <akim@epita.fr>
10057
10058 * src/print.h: New file.
10059 Propagate its use.
10060 * src/print.c: Formatting and ordering changes.
10061 (verbose, terse): Replace with...
10062 (print_results): this new function.
10063 Adjust dependencies.
10064
100652000-10-02 Akim Demaille <akim@epita.fr>
10066
10067 * src/conflicts.c (conflict_report): New function.
10068 (conflict_log, verbose_conflict_log): Replace with...
10069 (print_conflicts): this function.
10070 Adjust dependencies.
10071 * src/conflicts.h: New file.
10072 Propagate its inclusion.
10073
100742000-10-02 Akim Demaille <akim@epita.fr>
10075
10076 * src/nullable.h: New file.
10077 Propagate its inclusion.
10078 * src/nullable.c: Formatting changes.
10079
100802000-10-02 Akim Demaille <akim@epita.fr>
10081
10082 * src/reduce.h: New file.
10083 Propagate its inclusion.
10084 * src/reduce.c: Topological sort and other formatting changes.
10085 (bool, TRUE, FALSE): Move their definition to...
10086 * src/system.h: here.
10087
100882000-10-02 Akim Demaille <akim@epita.fr>
10089
10090 * src/files.c: Formatting changes.
10091 (tryopen, tryclose, openfiles): Rename as...
10092 (xfopen, xfclose, open_files): this.
10093 (stringappend): static.
10094 * src/files.h: Complete the list of exported symbols.
10095 Propagate its use.
10096
100972000-10-02 Akim Demaille <akim@epita.fr>
10098
10099 * src/reader.h: New file.
10100 Propagate its use instead of tedious list of `extern' and
10101 prototypes.
10102 * src/reader.c: Formatting changes, topological sort,
10103 s/register//.
10104
101052000-10-02 Akim Demaille <akim@epita.fr>
10106
10107 * src/lex.h: Prototype `lex.c' exported functions.
10108 * src/reader.c: Adjust.
10109 * src/lex.c: Formatting changes.
10110 (safegetc): Rename as...
10111 (xgetc): this.
10112
101132000-10-02 Akim Demaille <akim@epita.fr>
10114
10115 * src/lalr.h: New file.
10116 Propagate its inclusion instead of prototypes and `extern'.
10117 * src/lalr.c: Formatting changes, topological sorting etc.
10118
101192000-10-02 Akim Demaille <akim@epita.fr>
10120
10121 * src/output.c (token_actions): Introduce a temporary array,
10122 YYDEFACT, that makes it possible for this function to use
10123 output_short_table.
10124
101252000-10-02 Akim Demaille <akim@epita.fr>
10126
10127 `user_toknums' is output as a `short[]' in `output.c', while it is
10128 defined as a `int[]' in `reader.c'. For consistency with the
10129 other output tables, `user_toknums' is now defined as a table of
10130 shorts.
10131
10132 * src/reader.c (user_toknums): Be a short table instead of an int
10133 table.
10134 Adjust dependencies.
10135
10136 Factor the short table outputs.
10137
10138 * src/output.c (output_short_table): New function.
10139 * src/output.c (output_gram, output_stos, output_rule_data)
10140 (output_base, output_table, output_check): Use it.
10141
101422000-10-02 Akim Demaille <akim@epita.fr>
10143
10144 * src/output.c (output): Topological sort of the functions, in
10145 order to get rid of the `static' prototypes.
10146 No longer use `register'.
10147 * src/output.h: New file.
10148 Propagate its inclusion in files explicitly prototyping functions
10149 from output.c.
10150
101512000-09-21 Akim Demaille <akim@epita.fr>
10152
10153 * src/atgeneral.m4: Update from Autoconf.
10154
101552000-09-21 Akim Demaille <akim@epita.fr>
10156
10157 * src/closure.h: New file.
10158 * src/closure.c: Formatting changes, topological sort over the
10159 functions, use of closure.h.
10160 (initialize_closure, finalize_closure): Rename as...
10161 (new_closure, free_closure): these. Adjust dependencies.
10162 * src/LR0.c: Formatting changes, topological sort, use of
10163 cloture.h.
10164 (initialize_states): Rename as...
10165 (new_states): this.
10166 * src/Makefile.am (noinst_HEADERS): Adjust.
10167
101682000-09-20 Akim Demaille <akim@epita.fr>
10169
10170 * src/acconfig.h: Don't protect config.h against multiple
10171 inclusion.
10172 Don't define PARAMS.
10173 * src/system.h: Define PARAMS.
10174 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
10175 purpose of config.h. system.h must not try to fix wrong
10176 definitions in config.h.
10177
101782000-09-20 Akim Demaille <akim@epita.fr>
10179
10180 * src/derives.h: New file.
10181 * src/main.c, src/derives.h: Use it.
10182 Formatting changes.
10183 * src/Makefile.am (noinst_HEADERS): Adjust.
10184
101852000-09-20 Akim Demaille <akim@epita.fr>
10186
10187 * tests/atgeneral.m4: Update from Autoconf.
10188 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
10189 (AT_CHECK_CALC): New macros.
10190 Use these macros to test bison with options `', `--raw',
10191 `--debug', `--yacc', `--yacc --debug'.
10192
101932000-09-19 Akim Demaille <akim@epita.fr>
10194
10195 * src/output.c: Formatting changes.
10196 * src/machine.h: Remove, leaving its contents in...
10197 * src/system.h: here.
10198 Include stdio.h.
10199 Adjust all dependencies on stdio.h and machine.h.
10200 * src/getargs.h: New file.
10201 Let all `extern' declarations about getargs.c be replaced with
10202 inclusion of `getargs.h'.
10203 * src/Makefile.am (noinst_HEADERS): Adjust.
10204
10205 * tests/calc.m4 (yyin): Be initialized in main, not on the global
10206 scope.
10207 (yyerror): Returns void, not int.
10208 * doc/bison.texinfo: Formatting changes.
10209
102102000-09-19 Akim Demaille <akim@epita.fr>
10211
10212 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
10213 portable.
10214
102152000-09-18 Akim Demaille <akim@epita.fr>
10216
10217 * configure.in: Append WARNING_CFLAGS to CFLAGS.
10218 * src/Makefile.am (INCLUDES): Don't.
10219 Be ready to fetch headers in lib/.
10220
102212000-09-18 Akim Demaille <akim@epita.fr>
10222
10223 * doc/bison.texinfo: Update the copyright.
10224 ANSIfy and GNUify the examples.
10225 Remove the old menu.
10226
102272000-09-18 Akim Demaille <akim@epita.fr>
10228
10229 First set of tests: use the `calc' example from the documentation.
10230
10231 * src/bison.s1 (yyparse): Condition the code using `yytname' which
10232 is defined only when YYDEBUG is.
10233 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
10234 * src/files.c (tryopen, tryclose): Formatting changes.
10235 Move to the top and be static.
10236 * src/reader.c (read_signed_integer): Likewise.
10237 * tests/calc.m4: New file.
10238 * Makefile.am, suite.m4: Adjust.
10239 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
10240
102412000-09-18 Akim Demaille <akim@epita.fr>
10242
10243 Add support for an Autotest test suite for Bison.
10244
10245 * m4/m4.m4, m4/atconfig.m4: New files.
10246 * m4/Makefile.am (EXTRA_DIST): Adjust.
10247 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
10248 files.
10249 * src/getargs.c: Display a more standard --version message.
10250 * src/reader.c (reader): Formatting changes.
10251 No longer depend upon VERSION_STRING.
10252 * configure.in: No longer use `dnl'.
10253 Set up the test suite and the new directory `tests/.
10254 (VERSION_STRING): Remove.
10255
102562000-04-14 Akim Demaille <akim@epita.fr>
10257
10258 * src/reader.c (copy_comment2): New function, same as former
10259 `copy_comment', but outputs into two FILE *.
10260 (copy_comment): Use it.
10261 (parse_union_decl): Use it.
10262 (get_type, parse_start_decl): Use the same `invalid' message.
10263 (parse_start_decl, parse_union_decl): Use the same `multiple'
10264 message.
10265 (parse_union_decl, copy_guard, copy_action): Use the same
10266 `unmatched' message.
10267 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
10268
102692000-03-31 Akim Demaille <akim@epita.fr>
10270
10271 * src/files.c (tryopen, tryclose): Move to the top.
10272 Be static.
10273
102742000-03-31 Akim Demaille <akim@epita.fr>
10275
10276 * src/main.c (main): Don't call `done', exit does it.
10277
102782000-03-31 Akim Demaille <akim@epita.fr>
10279
10280 * allocate.c: s/return (foo)/return foo/.
10281 * lalr.c: Likewise.
10282 * LR0.c: Likewise.
10283 * output.c: Likewise.
10284 * reader.c: Likewise.
10285 * symtab.c: Likewise.
10286 * vmsgetargs.c: Likewise.
10287
102882000-03-31 Akim Demaille <akim@epita.fr>
10289
10290 Clean up the error reporting functions.
10291
10292 * src/report.c: New file.
10293 * src/report.h: Likewise.
10294 * src/Makefile.am: Adjust.
10295 * m4/error.m4: New file.
10296 * m4/Makefile.am: Adjust.
10297 * configure.in (jm_PREREQ_ERROR): Call it.
10298 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
10299 Remove.
10300 (fatal, fatals): Remove. All callers use complain.c::fatal.
10301 (warn, warni, warns, warnss, warnss): Remove. All callers use
10302 complain.c::complain.
10303 (toomany): Remove, use fatal instead.
10304 * src/files.c (done): No argument, use complain_message_count.
10305 * src/main.c (main): Register `done' to `atexit'.
10306
10307 * src/getargs.c (usage): More `fputs', less `fprintf'.
10308
103092000-03-28 Akim Demaille <akim@epita.fr>
10310
10311 * lib/: New directory.
10312 * Makefile.am (SUBDIRS): Adjust.
10313 * configure.in: Adjust.
10314 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
10315 useless.
10316 * src/alloca.c: Moved to lib/.
10317 * src/getopt.c: Likewise.
10318 * src/getopt1.c: Likewise.
10319 * src/getopt.h: Likewise.
10320 * src/ansi2knr.c: Likewise.
10321 * src/ansi2knr.1: Likewise.
10322 * src/Makefile.am: Adjust.
10323 * lib/Makefile.am: New file.
10324
103252000-03-28 Akim Demaille <akim@epita.fr>
10326
10327 * src/getargs.c (usage): Refresh the help message.
10328
103292000-03-17 Akim Demaille <akim@epita.fr>
10330
10331 * src/getopt1.c: Updated from textutils 2.0e
10332 * src/getopt.c: Likewise.
10333 * src/getopt.h: Likewise.
10334
103352000-03-17 Akim Demaille <akim@epita.fr>
10336
10337 * src/Makefile.am (bison.simple): Fix the awk program: quote only
10338 the file name, not the whole `#line LINE FILE'.
10339
103402000-03-17 Akim Demaille <akim@epita.fr>
10341
10342 On syntax errors, report the token on which we choked.
10343
10344 * src/bison.s1 (yyparse): In the label yyerrlab, when
10345 YYERROR_VERBOSE, add yychar in msg.
10346
103472000-03-17 Akim Demaille <akim@epita.fr>
10348
10349 * src/reader.c (copy_at): New function.
10350 (copy_guard): Use it.
10351 (copy_action): Use it.
10352
103532000-03-17 Akim Demaille <akim@epita.fr>
10354
10355 Be kind to translators, save some useless translations.
10356
10357 * src/main.c (banner): New function.
10358 (fatal_banner): Use it.
10359 (warn_banner): Use it.
10360
103612000-03-17 Akim Demaille <akim@epita.fr>
10362
10363 * src/reader.c (copy_definition): Use copy_string and
10364 copy_comment. Removed now unused `match', `ended',
10365 `cplus_comment'.
10366 (copy_comment, copy_string): Moved, to be visible from
10367 copy_definition.
10368
103692000-03-17 Akim Demaille <akim@epita.fr>
10370
10371 * src/reader.c (copy_string): Declare `static inline'. No
10372 problems with inline, since it is checked by configure.
10373 (copy_comment): Likewise.
10374
103752000-03-17 Akim Demaille <akim@epita.fr>
10376
10377 * src/reader.c (packsymbols): Formatting changes.
10378
103792000-03-17 Akim Demaille <akim@epita.fr>
10380
10381 * src/reader.c (copy_comment): New function, factored out from:
10382 (copy_action): Use it. Removed now unused `match', `ended',
10383 `cplus_comment'.
10384 (copy_guard): Likewise.
10385
103862000-03-17 Akim Demaille <akim@epita.fr>
10387
10388 * src/reader.c (copy_string): New function, factored out from:
10389 (copy_action): Use it.
10390 (copy_guard): Likewise.
10391
103922000-03-17 Akim Demaille <akim@epita.fr>
10393
10394 Change the handling of @s so that they behave exactly like $s.
10395 There is now a pseudo variable @$ (readble and writable), location
10396 of the lhs of the rule (by default ranging from the location of
10397 the first symbol of the rhs, to the location of the last symbol,
10398 or, if the rhs is empty, YYLLOC).
10399
10400 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
10401 yyval.
10402 (yyparse): When providing a default semantic action, provide a
10403 default location action.
10404 (after the $): No longer change `*YYLSP', just stack YYLOC the
10405 same way you stack YYVAL.
10406 * src/reader.c (read_declarations): Use warns.
10407 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
10408 (copy_action, case '@'): Likewise.
10409 Use a standard error message, to save useless work from
10410 translators.
10411
104122000-03-17 Akim Demaille <akim@epita.fr>
10413
10414 * src/bison.s1: Formatting and cosmetics changes.
10415 * src/reader.c: Likewise.
10416 Update the Copyright notice.
10417
104182000-03-17 Akim Demaille <akim@epita.fr>
10419
10420 * src/bison.s1 (#line): All set to `#line' only, since the
10421 Makefile now handles them.
10422
104232000-03-16 Akim Demaille <akim@epita.fr>
10424
10425 * src/output.c (output_rule_data): Output the documentation of
10426 some of the tables.
10427 (Copyright notice): Update.
10428 Formatting changes.
10429
104302000-03-16 Akim Demaille <akim@epita.fr>
10431
10432 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
10433 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
10434 One `#if YYDEBUG' remains, since it uses variables which are
10435 defined only if `YYDEBUG != 0'.
10436
104372000-03-16 Akim Demaille <akim@epita.fr>
10438
10439 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
10440 and related variables so that the similarities are highlighted.
10441
104422000-03-16 Akim Demaille <akim@epita.fr>
10443
10444 * src/bison.s1: Properly indent CPP directives.
10445
104462000-03-16 Akim Demaille <akim@epita.fr>
10447
10448 * src/bison.s1: Properly indent the `alloca' CPP section.
10449
104502000-03-16 Akim Demaille <akim@epita.fr>
10451
10452 Do not hard code values of directories in `configure.in'.
10453 Update the `configure' tool chain.
10454
10455 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
10456 src/makefile.am.
10457 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
10458 (AC_OUTPUT): Add m4/Makefile.
10459 Bump to bison 1.28a, 1.29 has never been released.
10460 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
10461 handled via src/Makefile.am.
10462 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
10463 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
10464 autoheader.
10465 * Makefile.am (SUBDIRS): Add m4.
10466 (ACLOCAL_AM_FLAGS): New variable.
10467 (AUTOMAKE_OPTIONS): Add check-news.
10468 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
10469 the proper line number and file name.
10470 (DEFS): Propagate the location of bison library files and of the
10471 locale files.
10472 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
10473 builddir.
10474 * acinclude.m4: Remove, replaced by the directory m4.
10475 * m4/Makefile.am (EXTRA_DIST): New variable.
10476 * m4/gettext.m4: New file, from the fileutils.
10477 * m4/lcmessage.m4: Likewise
10478 * m4/progtest.m4: Likewise.
10479 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
10480
104812000-03-10 Akim Demaille <akim@epita.fr>
10482
10483 * src/closure.c:
10484 Formatting changes of various comments.
10485 Respect the GNU coding standards at various places.
10486 Don't use `_()' when no translation is needed.
10487
104881999-12-13 Jesse Thilo <jthilo@gnu.org>
10489
10490 * src/files.c:
10491 OS/2 honors TMPDIR environment variable.
10492
104931999-12-13 Jesse Thilo <jthilo@gnu.org>
10494
10495 * doc/bison.texinfo: Tweaked spelling and grammar.
10496 Updated ISBN.
10497 Removed reference to price of printed copy.
10498 Mention BISON_SIMPLE and BISON_HAIRY.
10499
105001999-12-13 Jesse Thilo <jthilo@gnu.org>
10501
10502 * configure.in, NEWS:
10503 Bison 1.29 released.
10504
105051999-10-27 Jesse Thilo <jthilo@gnu.org>
10506
10507 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
10508 Added reference card.
10509
105101999-07-26 Jesse Thilo <jthilo@gnu.org>
10511
10512 * po/ru.po: Added Russian translation.
10513
105141999-07-26 Jesse Thilo <jthilo@gnu.org>
10515
10516 * configure.in: Added Russian translation.
10517
105181999-07-06 Jesse Thilo <jthilo@gnu.org>
10519
10520 * configure.in, NEWS, README:
10521 Released version 1.28.
10522
105231999-06-14 Jesse Thilo <jthilo@gnu.org>
10524
10525 * src/system.h:
10526 Squashed redefinition warning on some systems.
10527
10528 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
10529 Have configure build version string instead of relying on ANSI string
10530 concatentation.
10531
105321999-06-14 Jesse Thilo <jthilo@gnu.org>
10533
10534 * po/POTFILES.in: Got rid of version.c.
10535
105361999-06-14 Jesse Thilo <jthilo@gnu.org>
10537
10538 * acconfig.h, configure.in:
10539 Have configure build version string instead of relying on ANSI string
10540 concatentation.
10541
105421999-06-08 Jesse Thilo <jthilo@gnu.org>
10543
10544 * doc/bison.1:
10545 Dropped mention of `+' for long-named options.
10546
105471999-05-30 Jesse Thilo <jthilo@gnu.org>
10548
10549 * src/files.c: Added <unistd.h> for unlink().
10550
10551 * src/Makefile.am, src/system.h:
10552 I18n fixes.
10553
105541999-05-30 Jesse Thilo <jthilo@gnu.org>
10555
10556 * README: Added a FAQ list.
10557
10558 * configure.in, acconfig.h:
10559 I18n fixes.
10560
105611999-05-30 Jesse Thilo <jthilo@gnu.org>
10562
10563 * doc/FAQ, doc/Makefile.am:
10564 Added a FAQ list.
10565
105661999-05-19 Jesse Thilo <jthilo@gnu.org>
10567
10568 * src/alloc.h, src/symtab.h, src/version.c:
10569 Protected inclusion of "config.h" with HAVE_CONFIG_H.
10570
105711999-04-18 Jesse Thilo <jthilo@gnu.org>
10572
10573 * src/.cvsignore, src/Makefile.am:
10574 Reorganized: sources in `src', documentation in `doc'.
10575
10576 * src/lex.c (literalchar):
10577 fixed the code for escaping double quotes (thanks
10578 Jonathan Czisny.)
10579
105801999-04-18 Jesse Thilo <jthilo@gnu.org>
10581
10582 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10583 Adjusted paths to reflect directory reorganization.
10584
105851999-04-18 Jesse Thilo <jthilo@gnu.org>
10586
10587 * doc/.cvsignore, doc/Makefile.am:
10588 Reorganized: sources in `src', documentation in `doc'.
10589
105901999-04-18 Jesse Thilo <jthilo@gnu.org>
10591
10592 * configure.in:
10593 Updated AC_INIT file to reflect directory reorganization.
10594
10595 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10596 Reorganized: sources in `src', documentation in `doc'.
10597
105981999-04-13 Jesse Thilo <jthilo@gnu.org>
10599
10600 * src/allocate.c:
10601 Don't declare calloc() and realloc() if not necessary.
10602
106031999-04-13 Jesse Thilo <jthilo@gnu.org>
10604
10605 * configure.in, acconfig.h, acinclude.m4:
10606 Don't declare calloc() and realloc() if not necessary.
10607
106081999-03-23 Jesse Thilo <jthilo@gnu.org>
10609
10610 * po/.cvsignore: Added i18n support.
10611
106121999-03-23 Jesse Thilo <jthilo@gnu.org>
10613
10614 * acconfig.h, configure.in, Makefile.am:
10615 Added i18n support.
10616
106171999-03-22 Jesse Thilo <jthilo@gnu.org>
10618
10619 * src/bison.s1: Fixed #line numbers.
10620
106211999-03-15 Jesse Thilo <jthilo@gnu.org>
10622
10623 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10624 Added PO files from Translation Project.
10625
106261999-03-03 Jesse Thilo <jthilo@gnu.org>
10627
10628 * Makefile.am:
10629 Added support for non-ANSI compilers (ansi2knr).
10630
106311999-02-16 Jesse Thilo <jthilo@gnu.org>
10632
10633 * configure.in: Bumped version number to 1.27.
10634
10635 * Makefile.am:
10636 Added `bison.simple' to list of files removed by `make distclean'.
10637
106381999-02-12 Jesse Thilo <jthilo@gnu.org>
10639
10640 * src/files.c, src/files.h:
10641 Defined locations of parser files in config.h instead of Makefile.
10642
106431999-02-12 Jesse Thilo <jthilo@gnu.org>
10644
10645 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10646 Defined locations of parser files in config.h instead of Makefile.
10647
106481999-02-09 Jesse Thilo <jthilo@gnu.org>
10649
10650 * Makefile.am:
10651 Removed inappropriate use of $< macro.
10652
106531999-02-05 Jesse Thilo <jthilo@gnu.org>
10654
10655 * po/Makefile.in.in, po/POTFILES.in:
10656 Add `po' directory skeleton.
10657
106581999-01-27 Jesse Thilo <jthilo@gnu.org>
10659
10660 * README: Document help-bison list.
10661
10662 * configure.in: Add check for mkstemp().
10663
106641999-01-20 Jesse Thilo <jthilo@gnu.org>
10665
10666 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10667 Hush a few compiler warnings.
10668
10669 * src/files.c:
10670 Add tryclose(), which verifies that fclose was successful.
10671 Hush a couple of compiler warnings.
10672
106731999-01-20 Jesse Thilo <jthilo@gnu.org>
10674
10675 * Makefile.am, OChangeLog:
10676 ChangeLog is now automatically generated. Include the old version as
10677 OChangeLog.
10678
106791999-01-14 Jesse Thilo <jthilo@gnu.org>
10680
10681 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
10682 Update FSF address.
10683
106841999-01-14 Jesse Thilo <jthilo@gnu.org>
10685
10686 * doc/bison.texinfo: Fix formatting glitch.
10687
10688 * doc/bison.texinfo: Update FSF address.
10689
106901999-01-14 Jesse Thilo <jthilo@gnu.org>
10691
10692 * acconfig.h: Update FSF address.
10693
106941999-01-08 Jesse Thilo <jthilo@gnu.org>
10695
10696 * src/system.h:
10697 Don't define PACKAGE here, since config.h defines it.
10698
106991998-12-30 Jesse Thilo <jthilo@gnu.org>
10700
10701 * src/reader.c: Update copyright date.
10702
10703 * src/main.c:
10704 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10705 favor of output directly to stderr (avoids buffer overruns).
10706
10707 * src/reader.c: Some checks for premature EOF.
10708
10709 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
10710 Use prototypes if the compiler understands them.
10711
10712 * src/files.c: Honor TMPDIR on Unix hosts.
10713 Use prototypes if the compiler understands them.
10714
10715 * src/reader.c:
10716 Fix a couple of buffer overrun bugs.
10717 Use prototypes if the compiler understands them.
10718
10719 * src/system.h: Include unistd.h and ctype.h.
10720 Use #ifdef instead of #if for NLS symbols.
10721
107221998-12-30 Jesse Thilo <jthilo@gnu.org>
10723
10724 * doc/bison.texinfo:
10725 Delete comment "consider using @set for edition number, etc..." since
10726 we now are doing so.
10727
107281998-12-30 Jesse Thilo <jthilo@gnu.org>
10729
10730 * configure.in:
10731 Use prototypes if the compiler understands them.
10732
10733 * NEWS: Document 1.26 highlights.
10734
10735 * Makefile.am: Require Automake 1.3 or later.
10736
10737 * acconfig.h:
10738 Use prototypes if the compiler understands them.
10739
107401998-12-29 Jesse Thilo <jthilo@gnu.org>
10741
10742 * src/version.c:
10743 Use VERSION symbol from automake for version number.
10744
107451998-12-29 Jesse Thilo <jthilo@gnu.org>
10746
10747 * acconfig.h, configure.in, version.cin:
10748 Use VERSION symbol from automake for version number.
10749
107501998-11-28 Jesse Thilo <jthilo@gnu.org>
10751
10752 * Makefile.am:
10753 Distribute original version of simple parser (bison.s1), not built
10754 version (bison.simple).
10755
107561998-11-28 Jesse Thilo <jthilo@gnu.org>
10757
10758 * doc/bison.texinfo: Add info dir entry.
10759
10760 * doc/bison.texinfo:
10761 Let automake put version number into documentation.
10762
107631998-11-26 Jesse Thilo <jthilo@gnu.org>
10764
10765 * src/bison.cld, src/build.com, src/vmshlp.mar:
10766 Add non-RCS files from /gd/gnu/bison.
10767
107681998-11-26 Jesse Thilo <jthilo@gnu.org>
10769
10770 * doc/bison.1:
10771 Document the BISON_HAIRY and BISON_SIMPLE variables.
10772
107731998-11-25 Jesse Thilo <jthilo@gnu.org>
10774
10775 * src/version.c: Build version.c automatically.
10776
10777 * src/reader.c:
10778 Fix token numbering (used to start at 258, not 257).
10779
10780 * src/system.h: Include config.h.
10781
10782 * src/getargs.c: Update bug report address.
10783
10784 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10785 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10786
107871998-11-25 Jesse Thilo <jthilo@gnu.org>
10788
10789 * Makefile.am:
10790 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10791
10792 * configure.in, version.cin:
10793 Build version.c automatically.
10794
10795 * AUTHORS: Add AUTHORS file.
10796
10797 * README: Update bug report address.
10798
10799 * bison.simple:
10800 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10801
10802 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10803 Add automake stuff.
10804
108051998-11-25 Jesse Thilo <jthilo@gnu.org>
10806
10807 * doc/bison.texinfo: Clean up some formatting.
10808
108091998-05-05 Richard Stallman <rms@gnu.org>
10810
10811 * doc/bison.texinfo:
10812 Explain better why to make a pure parser.
10813
108141998-01-05 Richard Stallman <rms@gnu.org>
10815
10816 * src/files.c (openfiles):
10817 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10818 find a temporary directory, if possible. Do not unlink files while
10819 they are open.
10820
108211997-08-25 Richard Stallman <rms@gnu.org>
10822
10823 * src/reader.c (stack_offset;):
10824 Change some warni to warns.
10825
10826 * src/lex.c (literalchar): Use warns, not warni.
10827
108281997-06-28 Richard Stallman <rms@gnu.org>
10829
10830 * src/bison.s1: Add a Bison version comment.
10831
10832 * src/main.c (fatal, warn, berror):
10833 Use program_name.
10834
108351997-06-28 Richard Stallman <rms@gnu.org>
10836
10837 * Makefile.in (bison_version): New variable.
10838 (dist): Use that variable.
10839 (bison.s1): Substitute the Bison version into bison.simple.
10840
10841 * bison.simple: Add a Bison version comment.
10842
108431997-06-18 Richard Stallman <rms@gnu.org>
10844
10845 * src/main.c (fatal, warn, berror):
10846 Make error messages standard.
10847 (toomany): Improve error message text.
10848
10849 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
10850 new.h renamed to alloc.h.
10851
108521997-06-18 Richard Stallman <rms@gnu.org>
10853
10854 * Makefile.in: new.h renamed to alloc.h.
10855
108561997-05-24 Richard Stallman <rms@gnu.org>
10857
10858 * src/lex.c (literalchar):
10859 Fix the code for escaping \, " and '.
10860
10861 (lex): Avoid trouble when there are many chars
10862 to discard in a char literal with just several chars in it.
10863
108641997-05-17 Richard Stallman <rms@gnu.org>
10865
10866 * src/bison.s1:
10867 Use malloc, if using alloca is troublesome.
10868 (YYSTACK_USE_ALLOCA): New flag macro.
10869 Define it for some systems and compilers.
10870 (YYSTACK_ALLOC): New macro.
10871 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10872 If it was malloc'd, free it.
10873
108741997-05-17 Richard Stallman <rms@gnu.org>
10875
10876 * bison.simple:
10877 Use malloc, if using alloca is troublesome.
10878 (YYSTACK_USE_ALLOCA): New flag macro.
10879 Define it for some systems and compilers.
10880 (YYSTACK_ALLOC): New macro.
10881 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10882 If it was malloc'd, free it.
10883
108841997-04-23 Richard Stallman <rms@gnu.org>
10885
10886 * src/bison.s1:
10887 (alloca) [__hpux]: Always define as __builtin_alloca.
10888
108891997-04-23 Richard Stallman <rms@gnu.org>
10890
10891 * bison.simple:
10892 (alloca) [__hpux]: Always define as __builtin_alloca.
10893
108941997-04-22 Richard Stallman <rms@gnu.org>
10895
10896 * src/bison.s1:
10897 [__hpux]: Include alloca.h (right for HPUX 10)
10898 instead of declaring alloca (right for HPUX 9).
10899
10900 * src/bison.s1 (__yy_memcpy):
10901 Declare arg `count' as unsigned int.
10902 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10903
109041997-04-22 Richard Stallman <rms@gnu.org>
10905
10906 * bison.simple:
10907 [__hpux]: Include alloca.h (right for HPUX 10)
10908 instead of declaring alloca (right for HPUX 9).
10909
10910 * bison.simple (__yy_memcpy):
10911 Declare arg `count' as unsigned int.
10912 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10913
109141997-01-03 Richard Stallman <rms@gnu.org>
10915
10916 * src/allocate.c: [__STDC__ or _MSC_VER]:
10917 Declare calloc and realloc to return void *.
10918
109191997-01-02 Richard Stallman <rms@gnu.org>
10920
10921 * src/system.h:
10922 [_MSC_VER]: Include stdlib.h and process.h.
10923 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10924
10925 * src/main.c (main): Return FAILURE as a value.
10926 (printable_version): Declare arg as int, not char.
10927
109281997-01-02 Richard Stallman <rms@gnu.org>
10929
10930 * Makefile.in (dist):
10931 Explicitly check for symlinks, and copy them.
10932
109331996-12-19 Richard Stallman <rms@gnu.org>
10934
10935 * src/files.c:
10936 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10937
109381996-12-18 Paul Eggert <eggert@gnu.org>
10939
10940 * src/bison.s1 (yyparse):
10941 If __GNUC__ and YYPARSE_PARAM are both defined,
10942 declare yyparse to have a void * argument.
10943
109441996-12-18 Paul Eggert <eggert@gnu.org>
10945
10946 * bison.simple (yyparse):
10947 If __GNUC__ and YYPARSE_PARAM are both defined,
10948 declare yyparse to have a void * argument.
10949
109501996-12-17 Richard Stallman <rms@gnu.org>
10951
10952 * src/reduce.c (nbits): Add some casts.
10953
109541996-08-12 Richard Stallman <rms@gnu.org>
10955
10956 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10957
109581996-08-12 Richard Stallman <rms@gnu.org>
10959
10960 * bison.simple: Test _MSDOS as well as _MSDOS_.
10961
109621996-07-31 Richard Stallman <rms@gnu.org>
10963
10964 * src/bison.s1:
10965 [__sun && __i386]: Include alloca.h.
10966
109671996-07-31 Richard Stallman <rms@gnu.org>
10968
10969 * bison.simple:
10970 [__sun && __i386]: Include alloca.h.
10971
109721996-07-30 Richard Stallman <rms@gnu.org>
10973
10974 * src/bison.s1: Comment change.
10975
10976 * src/bison.s1: Test _MSDOS_, not MSDOS.
10977
109781996-07-30 Richard Stallman <rms@gnu.org>
10979
10980 * bison.simple: Comment change.
10981
10982 * bison.simple: Test _MSDOS_, not MSDOS.
10983
109841996-06-01 Richard Stallman <rms@gnu.org>
10985
10986 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
10987 Insert `_' macro around many string constants.
10988
10989 * src/main.c:
10990 Insert `_' macro around many string constants.
10991
10992 (main): Call setlocale, bindtextdomain and textdomain.
10993
10994 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10995 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10996 [ENABLE_NLS]: Include libintl.h.
10997 [ENABLE_NLS] (gettext): Define.
10998 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10999 (N_, PACKAGE, LOCALEDIR): New macros.
11000
110011996-06-01 Richard Stallman <rms@gnu.org>
11002
11003 * POTFILES.in: New file.
11004
11005 * Makefile.in (allocate.o):
11006 Define target explicitly.
11007
11008 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11009 (LDFLAGS): Set to @LDFLAGS@.
11010 (configure): Run autoconf only if preceding `cd' succeeds.
11011 (bison.s1): Redirect output to temporary file then move the
11012 temporary to the target, rather than redirecting directly to bison.s1.
11013 (clean): Remove config.status and config.log.
11014 (distclean): Don't remove config.status here.
11015
110161996-05-12 Richard Stallman <rms@gnu.org>
11017
11018 * src/bison.s1:
11019 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11020
110211996-05-12 Richard Stallman <rms@gnu.org>
11022
11023 * bison.simple:
11024 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11025
110261996-05-11 Richard Stallman <rms@gnu.org>
11027
11028 * src/bison.s1 (__yy_memcpy):
11029 Really reorder the args, as was supposedly done on Feb 14 1995.
11030 (yyparse): Calls changed accordingly.
11031
110321996-05-11 Richard Stallman <rms@gnu.org>
11033
11034 * Makefile.in (dist): Don't use $(srcdir).
11035
11036 * bison.simple (__yy_memcpy):
11037 Really reorder the args, as was supposedly done on Feb 14 1995.
11038 (yyparse): Calls changed accordingly.
11039
110401996-01-27 Richard Stallman <rms@gnu.org>
11041
11042 * src/output.c (output_rule_data):
11043 Test YYERROR_VERBOSE in the conditional
11044 around the definition of ttyname.
11045
110461995-12-29 Richard Stallman <rms@gnu.org>
11047
11048 * src/bison.s1:
11049 Fix line numbers in #line commands.
11050
110511995-12-29 Richard Stallman <rms@gnu.org>
11052
11053 * bison.simple:
11054 Fix line numbers in #line commands.
11055
110561995-12-27 Richard Stallman <rms@gnu.org>
11057
11058 * src/bison.s1 (YYPARSE_PARAM_DECL):
11059 In C++, make it always null.
11060 (YYPARSE_PARAM_ARG): New macro.
11061 (yyparse): Use YYPARSE_PARAM_ARG.
11062
110631995-12-27 Richard Stallman <rms@gnu.org>
11064
11065 * bison.simple (YYPARSE_PARAM_DECL):
11066 In C++, make it always null.
11067 (YYPARSE_PARAM_ARG): New macro.
11068 (yyparse): Use YYPARSE_PARAM_ARG.
11069
110701995-11-29 Richard Stallman <rms@gnu.org>
11071
11072 * doc/bison.texinfo:
11073 Describe literal string tokens, %raw, %no_lines, %token_table.
11074
110751995-11-29 Daniel Hagerty <hag@gnu.org>
11076
11077 * doc/bison.texinfo: Fixed update date
11078
110791995-10-16 Richard Stallman <rms@gnu.org>
11080
11081 * src/version.c: Version 1.25.
11082
110831995-10-16 Richard Stallman <rms@gnu.org>
11084
11085 * NEWS: *** empty log message ***
11086
110871995-10-16 Richard Stallman <rms@gnu.org>
11088
11089 * doc/bison.1, doc/bison.rnh:
11090 Add new options.
11091
110921995-10-15 Richard Stallman <rms@gnu.org>
11093
11094 * src/vmsgetargs.c, src/getargs.c:
11095 Added -n, -k, and -raw switches.
11096 (noparserflag, toknumflag, rawtoknumflag): New variables.
11097
11098 * src/symtab.h (SALIAS):
11099 New #define for adding aliases to %token.
11100 (struct bucket): Added `alias' field.
11101
11102 * src/reduce.c (reduce_grammar):
11103 Revise error message.
11104 (print_notices): Remove final `.' from error message.
11105
11106 * src/reader.c (reader_output_yylsp):
11107 New function.
11108 (readgram): Use `#if 0' around code that accepted %command
11109 inside grammar rules: The documentation doesn't allow it,
11110 and it will fail since the %command processors scan for the next %.
11111 (parse_token_decl): Extended the %token
11112 declaration to allow a multi-character symbol as an alias.
11113 (parse_thong_decl): New function.
11114 (read_declarations): Added %thong declarations.
11115 (read_declarations): Handle NOOP to deal with allowing
11116 % declarations as another means to specify the flags.
11117 (readgram): Allow %prec prior to semantics embedded in a rule.
11118 (skip_to_char, read_declarations, copy_definition)
11119 (parse_token_decl, parse_start_decl, parse_type_decl)
11120 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
11121 (get_type_name, copy_guard, copy_action, readgram)
11122 (get_type, packsymbols): Revised most error messages.
11123 Changed `fatal' to `warnxxx' to avoid aborting for error.
11124 Revised and use multiple warnxxx functions to avoid using VARARGS1.
11125 (read_declarations): Improve the error message for
11126 an invalid character. Do not abort.
11127 (read_declarations, copy_guard, copy_action): Use
11128 printable_version to avoid unprintable characters in printed output.
11129 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
11130 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
11131 Allow the type of a non-terminal can be given
11132 more than once, as long as all specifications give the same type.
11133
11134 * src/output.c:
11135 (output_headers, output_trailers, output, output_gram)
11136 (output_rule_data): Implement noparserflag variable.
11137 Implement toknumflag variable.
11138 (output): Call reader_output_yylsp to output LTYPESTR.
11139
11140 * src/main.c (main):
11141 If reader sees an error, don't process the grammar.
11142 (fatals): Updated to not use VARARGS1.
11143 (printable_version, int_to_string, warn, warni, warns, warnss)
11144 (warnsss): New error reporting functions. Avoid abort for error.
11145
11146 * src/lex.h:
11147 Added THONG and NOOP for alias processing.
11148 Added SETOPT for the new code that allows setting options with %flags.
11149
11150 * src/lex.c:
11151 Include getopt.h. Add some extern decls.
11152 (safegetc): New function to deal with EOF gracefully.
11153 (literalchar); new function to deal with reading \ escapes.
11154 (lex): Use literalchar.
11155 (lex): Implemented "..." tokens.
11156 (literalchar, lex, parse_percent_token): Made tokenbuffer
11157 always contain the token. This includes growing the token
11158 buffer while reading an integer.
11159 (parse_percent_token): Replaced if-else statement with percent_table.
11160 (parse_percent_token): Added % declarations as another
11161 way to specify the flags -n, -l, and -r. Also added hooks for
11162 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
11163 major changes to files.c.
11164 (lex) Retain in the incoming stream a character following
11165 an incorrect '/'.
11166 (skip_white_space, lex): Revised most error messages
11167 and changed fatal to warn to avoid aborting.
11168 (percent_table): Added %thong declarations.
11169
11170 * src/gram.h: Comment changes.
11171
11172 * src/files.c (openfiles, open_extra_files, done):
11173 Add faction flag
11174 and actfile file. Handle noparserflag. Both for -n switch.
11175
11176 * src/conflicts.c (resolve_sr_conflict):
11177 Remove use of alloca.
11178
111791995-06-01 Jim Meyering <meyering@gnu.org>
11180
11181 * doc/bison.texinfo: *** empty log message ***
11182
111831995-05-06 Richard Stallman <rms@gnu.org>
11184
11185 * src/bison.s1: Comment change.
11186
111871995-05-06 Richard Stallman <rms@gnu.org>
11188
11189 * bison.simple: Comment change.
11190
111911995-05-03 Richard Stallman <rms@gnu.org>
11192
11193 * src/version.c: Version now 1.24.
11194
11195 * src/bison.s1: Change distribution terms.
11196
11197 * src/version.c: Version now 1.23.
11198
111991995-05-03 Richard Stallman <rms@gnu.org>
11200
11201 * doc/bison.texinfo:
11202 Rewrite "Conditions for Using Bison".
11203 Update version to 1.24.
11204
112051995-05-03 Richard Stallman <rms@gnu.org>
11206
11207 * bison.simple: Change distribution terms.
11208
112091995-02-23 Richard Stallman <rms@gnu.org>
11210
11211 * src/files.c: Test __VMS_POSIX as well as VMS.
11212
112131995-02-14 Jim Meyering <meyering@gnu.org>
11214
11215 * src/bison.s1 (__yy_memcpy):
11216 Renamed from __yy_bcopy to avoid
11217 confusion. Reverse FROM and TO arguments to be consistent with
11218 those of memcpy.
11219
112201995-02-14 Jim Meyering <meyering@gnu.org>
11221
11222 * bison.simple (__yy_memcpy):
11223 Renamed from __yy_bcopy to avoid
11224 confusion. Reverse FROM and TO arguments to be consistent with
11225 those of memcpy.
11226
112271994-11-10 David J. MacKenzie <djm@gnu.org>
11228
11229 * NEWS: reformat
11230
11231 * NEWS: New file.
11232
11233 * Makefile.in (DISTFILES): Include NEWS.
11234
11235 * Makefile.in (DISTFILES):
11236 Include install-sh, not install.sh.
11237
11238 * configure.in: Update to Autoconf v2 macro names.
11239
112401994-10-05 David J. MacKenzie <djm@gnu.org>
11241
11242 * Makefile.in: fix typo
11243
11244 * Makefile.in (prefix, exec_prefix):
11245 Let configure set them.
11246
112471994-09-28 David J. MacKenzie <djm@gnu.org>
11248
11249 * Makefile.in: Set datadir to $(prefix)/share.
11250
112511994-09-15 Richard Stallman <rms@gnu.org>
11252
11253 * src/bison.s1:
11254 Update copyright notice and GPL version.
11255
112561994-09-15 Richard Stallman <rms@gnu.org>
11257
11258 * bison.simple:
11259 Update copyright notice and GPL version.
11260
112611994-07-12 Richard Stallman <rms@gnu.org>
11262
11263 * src/reduce.c, src/reader.c:
11264 entered into RCS
11265
112661994-05-05 David J. MacKenzie <djm@gnu.org>
11267
11268 * Makefile.in: entered into RCS
11269
112701994-03-26 Richard Stallman <rms@gnu.org>
11271
11272 * src/bison.s1: entered into RCS
11273
112741994-03-26 Richard Stallman <rms@gnu.org>
11275
11276 * bison.simple: entered into RCS
11277
112781994-03-25 Richard Stallman <rms@gnu.org>
11279
11280 * src/main.c: entered into RCS
11281
112821994-03-24 Richard Stallman <rms@gnu.org>
11283
11284 * src/conflicts.c: entered into RCS
11285
112861994-01-02 Richard Stallman <rms@gnu.org>
11287
11288 * Makefile.in: *** empty log message ***
11289
112901993-11-21 Richard Stallman <rms@gnu.org>
11291
11292 * src/bison.s1: *** empty log message ***
11293
112941993-11-21 Richard Stallman <rms@gnu.org>
11295
11296 * doc/bison.texinfo: entered into RCS
11297
11298 * doc/bison.texinfo: *** empty log message ***
11299
113001993-11-21 Richard Stallman <rms@gnu.org>
11301
11302 * bison.simple: *** empty log message ***
11303
113041993-10-25 David J. MacKenzie <djm@gnu.org>
11305
11306 * doc/bison.texinfo: *** empty log message ***
11307
113081993-10-19 Richard Stallman <rms@gnu.org>
11309
11310 * src/bison.s1: *** empty log message ***
11311
113121993-10-19 Richard Stallman <rms@gnu.org>
11313
11314 * bison.simple: *** empty log message ***
11315
113161993-10-14 Richard Stallman <rms@gnu.org>
11317
11318 * src/bison.s1: *** empty log message ***
11319
113201993-10-14 Richard Stallman <rms@gnu.org>
11321
11322 * bison.simple: *** empty log message ***
11323
113241993-09-14 David J. MacKenzie <djm@gnu.org>
11325
11326 * doc/bison.texinfo: *** empty log message ***
11327
113281993-09-13 Noah Friedman <friedman@gnu.org>
11329
11330 * Makefile.in: *** empty log message ***
11331
113321993-09-10 Richard Stallman <rms@gnu.org>
11333
11334 * src/conflicts.c: *** empty log message ***
11335
11336 * src/system.h: entered into RCS
11337
113381993-09-10 Richard Stallman <rms@gnu.org>
11339
11340 * doc/bison.1: entered into RCS
11341
113421993-09-06 Noah Friedman <friedman@gnu.org>
11343
11344 * src/version.c: entered into RCS
11345
113461993-09-06 Noah Friedman <friedman@gnu.org>
11347
11348 * Makefile.in: *** empty log message ***
11349
113501993-07-30 David J. MacKenzie <djm@gnu.org>
11351
11352 * Makefile.in: *** empty log message ***
11353
113541993-07-24 Richard Stallman <rms@gnu.org>
11355
11356 * src/bison.s1: *** empty log message ***
11357
113581993-07-24 Richard Stallman <rms@gnu.org>
11359
11360 * bison.simple: *** empty log message ***
11361
113621993-07-08 David J. MacKenzie <djm@gnu.org>
11363
11364 * Makefile.in: *** empty log message ***
11365
113661993-07-04 Richard Stallman <rms@gnu.org>
11367
11368 * src/bison.s1: *** empty log message ***
11369
113701993-07-04 Richard Stallman <rms@gnu.org>
11371
11372 * bison.simple: *** empty log message ***
11373
113741993-06-26 David J. MacKenzie <djm@gnu.org>
11375
11376 * src/getargs.c: entered into RCS
11377
113781993-06-26 David J. MacKenzie <djm@gnu.org>
11379
11380 * doc/bison.texinfo: *** empty log message ***
11381
11382 * doc/bison.1: New file.
11383
113841993-06-25 Richard Stallman <rms@gnu.org>
11385
11386 * src/getargs.c: New file.
11387
113881993-06-16 Richard Stallman <rms@gnu.org>
11389
11390 * src/bison.s1: *** empty log message ***
11391
113921993-06-16 Richard Stallman <rms@gnu.org>
11393
11394 * bison.simple: *** empty log message ***
11395
113961993-06-03 Richard Stallman <rms@gnu.org>
11397
11398 * src/bison.s1: New file.
11399
114001993-06-03 Richard Stallman <rms@gnu.org>
11401
11402 * doc/bison.texinfo: *** empty log message ***
11403
114041993-06-03 Richard Stallman <rms@gnu.org>
11405
11406 * bison.simple: New file.
11407
114081993-05-19 Richard Stallman <rms@gnu.org>
11409
11410 * doc/bison.texinfo: New file.
11411
114121993-05-07 Noah Friedman <friedman@gnu.org>
11413
11414 * Makefile.in: *** empty log message ***
11415
114161993-04-28 Noah Friedman <friedman@gnu.org>
11417
11418 * src/reader.c: *** empty log message ***
11419
114201993-04-23 Noah Friedman <friedman@gnu.org>
11421
11422 * src/alloc.h: entered into RCS
11423
114241993-04-20 David J. MacKenzie <djm@gnu.org>
11425
11426 * src/version.c: *** empty log message ***
11427
11428 * src/files.c, src/allocate.c:
11429 entered into RCS
11430
11431 * src/reader.c: *** empty log message ***
11432
11433 * src/lex.c: entered into RCS
11434
11435 * src/conflicts.c: New file.
11436
11437 * src/symtab.c: entered into RCS
11438
11439 * src/alloc.h: New file.
11440
11441 * src/LR0.c: entered into RCS
11442
114431993-04-18 Noah Friedman <friedman@gnu.org>
11444
11445 * src/reader.c: New file.
11446
11447 * src/version.c: *** empty log message ***
11448
114491993-04-18 Noah Friedman <friedman@gnu.org>
11450
11451 * Makefile.in: *** empty log message ***
11452
114531993-04-17 Noah Friedman <friedman@gnu.org>
11454
11455 * Makefile.in: *** empty log message ***
11456
114571993-04-15 Richard Stallman <rms@gnu.org>
11458
11459 * src/main.c, src/files.c:
11460 New file.
11461
114621993-04-15 Noah Friedman <friedman@gnu.org>
11463
11464 * configure.in: entered into RCS
11465
11466 * configure.in: *** empty log message ***
11467
11468 * configure.in: New file.
11469
114701993-04-14 Richard Stallman <rms@gnu.org>
11471
11472 * Makefile.in: New file.
11473
114741993-04-13 Richard Stallman <rms@gnu.org>
11475
11476 * src/version.c: New file.
11477
114781993-03-25 Richard Stallman <rms@gnu.org>
11479
11480 * src/output.c: entered into RCS
11481
114821992-09-25 Richard Stallman <rms@gnu.org>
11483
11484 * configure.bat: entered into RCS
11485
114861992-06-22 Richard Stallman <rms@gnu.org>
11487
11488 * src/vmsgetargs.c: entered into RCS
11489
114901992-06-22 Richard Stallman <rms@gnu.org>
11491
11492 * doc/bison.rnh: entered into RCS
11493
114941992-04-20 David J. MacKenzie <djm@gnu.org>
11495
11496 * README: entered into RCS
11497
114981992-01-22 Richard Stallman <rms@gnu.org>
11499
11500 * src/machine.h: entered into RCS
11501
115021991-12-21 Richard Stallman <rms@gnu.org>
11503
11504 * src/lalr.c, src/closure.c:
11505 entered into RCS
11506
115071991-12-20 Richard Stallman <rms@gnu.org>
11508
11509 * src/state.h: entered into RCS
11510
115111991-12-18 Richard Stallman <rms@gnu.org>
11512
11513 * src/print.c, src/nullable.c, src/derives.c:
11514 entered into RCS
11515
115161991-11-03 David J. MacKenzie <djm@gnu.org>
11517
11518 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
11519 entered into RCS
11520
115211988-09-09 Richard Stallman <rms@gnu.org>
11522
11523 * src/bison.hairy: entered into RCS
11524
115251987-12-16 Richard Stallman <rms@gnu.org>
11526
11527 * REFERENCES: entered into RCS
11528
11529-----
11530
11531Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
115321998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
11533
11534This file is part of Bison, the GNU Compiler Compiler.
11535
11536Bison is free software; you can redistribute it and/or modify
11537it under the terms of the GNU General Public License as published by
11538the Free Software Foundation; either version 2, or (at your option)
11539any later version.
11540
11541Bison is distributed in the hope that it will be useful,
11542but WITHOUT ANY WARRANTY; without even the implied warranty of
11543MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11544GNU General Public License for more details.
11545
11546You should have received a copy of the GNU General Public License
11547along with Bison; see the file COPYING. If not, write to
11548the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11549Boston, MA 02111-1307, USA.