]> git.saurik.com Git - bison.git/blob - ChangeLog
(AT_COMPILE_CXX): Use it instead of CFLAGS.
[bison.git] / ChangeLog
1 2003-05-24 Paul Eggert <eggert@twinsun.com>
2
3 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
4 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
5 This fixes a problem reported by John Bowman when the Compaq/HP
6 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
7 -ansi -Wall -gall).
8 * data/yacc.c (union yyalloc): Likewise.
9 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
10
11 Switch from 'int' to 'bool' where that makes sense.
12
13 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
14 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
15 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
16 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
17 Return or accept bool, not int. All callers changed.
18 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
19 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
20 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
21 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
22 bitset_or_and_cmp_): Likewise.
23 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
24 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
25 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
26 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
27 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
28 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
29 bitset_stats_or_and_cmp): Likewise.
30 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
31 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
32 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
33 ebitset_xor_cmp): Likewise.
34 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
35 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
36 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
37 lbitset_xor_cmp): Likewise.
38 * lib/bbitset.h: Include <stdbool.h>.
39 (struct bitset_vtable): The following members now return bool, not
40 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
41 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
42 or_and_cmp).
43 * src/conflicts.c (count_rr_conflicts): Likewise.
44 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
45 All uses changed.
46 * lib/ebitset.c (ebitset_obstack_init): Likewise.
47 * lib/lbitset.c (lbitset_obstack_init): Likewise.
48 * src/getargs.c (debug_flag, defines_flag, locations_flag,
49 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
50 graph_flag): Likewise.
51 * src/getargs.h (debug_flag, defines_flag, locations_flag,
52 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
53 graph_flag): Likewise.
54 * src/output.c (error_verbose): Likewise.
55 * src/output.h (error_verbose): Likewise.
56 * src/reader.c (start_flag, typed): Likewise.
57 * src/reader.h (typed): Likewise.
58 * src/getargs.c (LOCATIONS_OPTION): New constant.
59 (long_options, getargs): Use it.
60 * src/lalr.c (build_relations): Use bool, not int.
61 * src/nullable.c (nullable_compute): Likewise.
62 * src/print.c (print_reductions): Likewise.
63 * src/tables.c (action_row, pack_vector): Likewise.
64 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
65 * src/output.c (prepare): Use it.
66 * src/output.c (token_definitions_output,
67 symbol_destructors_output, symbol_destructors_output): Use string,
68 not boolean integer, to keep track of whether to output separator.
69 * src/print_graph.c (print_core): Likewise.
70 * src/state.c (state_rule_lookaheads_print): Likewise.
71
72 * config/install-sh: Sync from automake 1.7.5.
73
74 2003-05-14 Paul Eggert <eggert@twinsun.com>
75
76 * src/parse-gram.y (rules_or_grammar_declaration): Require a
77 semicolon after a grammar declaration, in the interest of possible
78 future changes to the Bison input language.
79 Do not allow a stray semicolon at the start of the grammar.
80 (rhses.1): Allow one or more semicolons after any rule, including
81 just before "|" as required by POSIX.
82 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
83 grammar.
84
85 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
86
87 %parse-param support for lalr1.cc.
88
89 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
90 b4_cc_constructor_calls, b4_cc_constructor_call,
91 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
92 definitions.
93 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
94 parse-param arguments.
95 (yy::b4_parser_class_name): Declare instance variables to
96 hold parse-param arguments.
97 * tests/calc.at: s/value/semantic_value/ because value clashes
98 with a member of yy::b4_parser_class_name. Adjust C++ code
99 to handle %parse-param. Enable %parse-param test in C++.
100
101 2003-05-12 Paul Eggert <eggert@twinsun.com>
102
103 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
104 English a bit. Fix fclose typo. Change "const char" to "char
105 const", and use ANSI C rather than K&R for "main". Suggest
106 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
107 and suggest yy_switch_to_buffer.
108
109 2003-05-05 Paul Eggert <eggert@twinsun.com>
110
111 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
112 C89. This avoids a diagnostic on compilers that define __STDC__
113 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
114 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
115
116 2003-05-03 Paul Eggert <eggert@twinsun.com>
117
118 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
119 Do not overrun array bounds.
120 This should fix a bug reported today by Olatunji Oluwabukunmi in
121 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
122
123 2003-04-29 Akim Demaille <akim@epita.fr>
124
125 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
126 * src/getargs.c, src/getargs.h: here, as bool, not int.
127 (nondeterministic_parser): New.
128 * src/parse-gram.y, src/scan-gram.l: Support
129 %nondeterministic-parser.
130 * src/output.c (prepare): Use nondeterministic_parser instead
131 of glr_parser where appropriate.
132 * src/tables.c (conflict_row, action_row, save_row)
133 (token_actions, token_actions, pack_vector): Ditto.
134
135 2003-04-29 Akim Demaille <akim@epita.fr>
136
137 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
138
139 2003-04-29 Akim Demaille <akim@epita.fr>
140
141 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
142 with %pure-parser and %locations to exercise the patch from Yakov
143 Markovitch below.
144
145 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
146
147 * data/yacc.c: (b4_lex_param): Corrected for the case where
148 %lex-param is provided and %pure-parser isn't.
149
150 2003-04-27 Paul Eggert <eggert@twinsun.com>
151
152 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
153 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
154 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
155 if it is not defined.
156 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
157
158 2003-04-26 Paul Eggert <eggert@twinsun.com>
159
160 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
161 Declare to be of type suitable for the ninf value itself, not of
162 type suitable for the corresponding table, since the latter might
163 be unsigned but the ninf value might be negative. This fixes a
164 bug reported by Alexandre Duret-Lutz in
165 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
166
167 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
168 invokes it. We shouldn't invoke it twice because it will attempt
169 to put error.o in the archive twice. This fixes a glitch reported
170 by Martin Mokrejs in
171 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
172
173 2003-04-21 Paul Eggert <eggert@twinsun.com>
174
175 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
176 to gnulib.
177
178 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
179
180 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
181 Fix obvious typo that results in uncompilable GLR parsers
182 when both %pure-parser and %locations are used. (trivial change)
183
184 2003-04-17 Paul Eggert <eggert@twinsun.com>
185
186 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
187 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
188 Do not insert the expected token via unput, as this runs afoul
189 of a POSIX-compatibility bug in flex 2.5.31.
190 All uses changed to BEGIN the parent state,
191 since we no longer insert the expected token via unput.
192 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
193 that is no longer emitted after the above change.
194
195 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
196 the first one. This change is from Paul Hilfinger, and it fixes
197 regression reported by Werner Lemberg in
198 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
199
200 (resolve_sr_conflict): Don't invoke state_errs_set
201 unless one or more tokens have been explicitly made errors.
202 Otherwise, the above change causes Bison to abort.
203
204 * tests/existing.at (GNU pic Grammar): New test case, taken from
205 Lemberg's email.
206
207 2003-03-31 Akim Demaille <akim@epita.fr>
208
209 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
210
211 2003-03-31 Akim Demaille <akim@epita.fr>
212
213 * src/output.c (prepare_symbols): Avoid trailing spaces in the
214 output.
215
216 2003-03-31 Akim Demaille <akim@epita.fr>
217
218 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
219 From Paul Hilfinger.
220
221 2003-03-29 Akim Demaille <akim@epita.fr>
222
223 * m4/error.m4: Do not put under dynamic conditions some code which
224 expansion is under static control.
225
226 2003-03-29 Akim Demaille <akim@epita.fr>
227
228 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
229
230 2003-03-29 Akim Demaille <akim@epita.fr>
231
232 * doc/bison.texinfo (Strings are Destroyed): New.
233
234 2003-03-13 Paul Eggert <eggert@twinsun.com>
235
236 * .cvsignore: Add configure.lineno.
237 * src/.cvsignore: Add yacc.
238 * tests/.cvsignore: Add testsuite.log.
239 * doc/fdl.texi: Sync with latest FSF version.
240
241 2003-03-12 Paul Eggert <eggert@twinsun.com>
242
243 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
244 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
245 cursor, instead of leaving it undefined. This fixes a bug
246 reported by Tim Van Holder in
247 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
248 * tests/input.at (Torturing the Scanner): Test the scanner on
249 an empty input file, which was Tim Van Holder's test case.
250
251 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
252 <sys/resource.h> can be included, include sys/time.h and
253 sys/times.h first, if available. This works around the SunOS
254 4.1.4 porting bug reported by Bruce Becker in
255 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
256
257 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
258 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
259 AC_HEADER_SYS_WAIT.
260
261 Merge changes from gnulib. This was prompted because the CVS
262 snapshot didn't build on Solaris 7 due to strnlen problems.
263
264 These changes need to be merged back into gnulib:
265 * lib/hash.c: Include <stdbool.h> unconditionally.
266 * m4/onceonly.m4 (m4_quote): New macro.
267 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
268 Quote AC_FOREACH variable-expansions properly.
269 The 2003-01-03 obstack.h change also needs merging.
270 {end of changes requiring merging}
271
272 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
273 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
274 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
275 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
276 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
277 New files, imported from gnulib.
278 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
279 above.
280
281 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
282 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
283 gnulib sources.
284
285 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
286 Add.
287 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
288 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
289 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
290 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
291 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
292 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
293 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
294 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
295 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
296 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
297 (jm_PREREQ_ARGMATCH): Remove.
298 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
299 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
300
301 * src/system.h: Include <stdbool.h> unconditionally.
302
303 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
304 assuming at least C89 in the bitset code for some time now.
305
306 2003-03-03 Akim Demaille <akim@epita.fr>
307
308 * ro.po: New.
309
310 2003-03-02 Akim Demaille <akim@epita.fr>
311
312 * doc/bison.texinfo (Table of Symbols): Reactivate the
313 documentation for %lex-param, and %parse-param.
314
315 2003-03-02 Akim Demaille <akim@epita.fr>
316
317 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
318 generate verbose error messages.
319 Use the number of tokens as an upper bound in yytname, as it
320 cannot be a non terminal.
321
322 2003-03-02 Akim Demaille <akim@epita.fr>
323
324 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
325 message.
326
327 2003-03-02 Akim Demaille <akim@epita.fr>
328
329 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
330 Use them to exercise yycheck overrun.
331 Based on Andrew Suffield's grammar.
332
333 2003-03-02 Akim Demaille <akim@epita.fr>
334
335 Create tests/local.at for Bison generic testing macros.
336
337 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
338 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
339 This new file.
340 * tests/calc.at (AT_CHECK_CALC): Adjust.
341 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
342 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
343 * tests/local.at: here.
344 (AT_COMPILE_CXX): Tags the tests using it as c++.
345 Ignore the test if CXX is not functional.
346
347 2003-03-01 Paul Eggert <eggert@twinsun.com>
348
349 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
350 not loc->end, since loc->end might contain garbage and this leads
351 to undefined behavior on some platforms.
352 (id_loc, token_start): Use (IF_LINTed) initial values that do not
353 depend on *loc, so that the reader doesn't give the the false
354 impression that *loc is initialized.
355 (<INITIAL>"%%"): Do not bother setting code_start, since its value
356 does not survive the return.
357
358 2003-03-01 Akim Demaille <akim@epita.fr>
359
360 * src/scan-gram.l (code_start): Always initialize it when entering
361 into yylex, as SC_EPILOGUE is activated *before* the corresponding
362 yylex invocation. An alternative would be making it static, but
363 then it starts with the second %%'s beginning, instead of its end.
364
365 2003-02-28 Paul Eggert <eggert@twinsun.com>
366
367 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
368 around a UnixWare 7.1.1 porting bug reported by John Hughes in
369 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
370
371 2003-02-26 Paul Eggert <eggert@twinsun.com>
372
373 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
374 Remove Sequent/Pyramid discussion (nobody uses them any more).
375 Merge VMS and MS-DOS discussion; these ports may well be dead
376 but let's keep mentioning them for now. Put <> around email
377 addresses. Add copyright notice.
378
379 2003-02-24 Paul Eggert <eggert@twinsun.com>
380
381 * data/glr.c (yy_reduce_print): yylineno -> yylno,
382 to avoid collision with flex use of yylineno.
383 Problem reported by Bruce Lilly in
384 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
385 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
386 * data/yacc.c (yy_reduce_print): Likewise.
387
388 * config/depcomp: Sync with Automake 1.7.3.
389
390 2003-02-21 Akim Demaille <akim@epita.fr>
391
392 * data/lalr1.cc: Use temporary variables instead of casts to
393 change integer types.
394 Suggested by Paul Eggert.
395
396 2003-02-21 Akim Demaille <akim@epita.fr>
397
398 * doc/bison.texinfo: Use "location" consistently to refer to @n,
399 to avoid confusions with lalr1.cc's notion of Position.
400 Suggested by Paul Eggert.
401
402 2003-02-20 Akim Demaille <akim@epita.fr>
403
404 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
405 before initial_columns.
406 (location.hh): Use consistent variable names when defining the
407 operator<<.
408 Use "last" so that we subtract from Positions, not from unsigned.
409
410 2003-02-20 Akim Demaille <akim@epita.fr>
411
412 * data/lalr1.cc (position.hh): New subfile, including the extended
413 and Doxygen'ed documentation of class Position.
414 (location.hh): Use it.
415 Document a` la Doxygen.
416 With the help of Benoit Perrot.
417
418 2003-02-20 Akim Demaille <akim@epita.fr>
419
420 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
421 AT_YACC_IF.
422 Redefine AT_YYERROR_SEES_LOC_IF using it.
423 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
424 not defined.
425 Don't use the location in yy::Parser::error_ and
426 yy::Parser::print_ when not %locations.
427 Activate more lalr1.cc tests.
428
429 2003-02-19 Akim Demaille <akim@epita.fr>
430
431 * data/lalr1.cc: When displaying a line number, be sure to make it
432 an int.
433
434 2003-02-19 Akim Demaille <akim@epita.fr>
435
436 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
437 Remove, useless.
438 (YYABORT, YYACCEPT, YYERROR): New.
439 * tests/calc.at: Renable the lalr1.cc test.
440
441 2003-02-19 Akim Demaille <akim@epita.fr>
442
443 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
444 error recovery, mixing with/without pops and discarding of the
445 lookahead.
446 Exercise YYERROR.
447 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
448
449 2003-02-17 Paul Eggert <eggert@twinsun.com>
450
451 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
452 * tests/testsuite.at (AT_COMPILE): Use them.
453 This fixes the testsuite problem reported by Robert Lentz in
454 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
455
456 2003-02-12 Paul Eggert <eggert@twinsun.com>
457
458 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
459 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
460 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
461 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
462 Check for malloc failure, for consistency with yacc.c.
463 (yytname_size): Remove, for consistency with yacc.c.
464
465 The bug still remains in data/lalr1.cc, as I didn't have time
466 to fix it there.
467
468 2003-02-06 Akim Demaille <akim@epita.fr>
469
470 * configure.ac (GXX): Rename as...
471 (CXX): this, to keep the original Autoconf semantics.
472 Require 2.57.
473 * data/lalr1.cc: Fix b4_copyright invocations.
474 If YYDEBUG is not defined, don't depend upon name_ being defined.
475 (location.hh): Include string and iostream.
476 (Position::filename): New member.
477 (Position::Position ()): New.
478 (operator<< (Position)): New.
479 (operator- (Position, int)): New.
480 (Location::first, Location::last): Rename as...
481 (Location::begin, Location::end): these, to mock the conventional
482 iterator names.
483 (operator<< (Location)): New.
484 * tests/atlocal.in (CXX): New.
485 * tests/testsuite.at (AT_COMPILE_CXX): New.
486 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
487 locations in a more synthetic way.
488 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
489 lalr1.cc is used.
490 Adjust the C locations to match those from Emacs: first column is
491 column 0.
492 Change all the expected results.
493 Conform to the GCS: simplify the locations when applicable.
494 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
495 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
496 these CPP macros with the m4 macros new defined by...
497 (AT_CHECK_PUSHDEFS): this, i.e.:
498 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
499 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
500 New macros.
501 (AT_CHECK_POPDEFS): Undefine them.
502 (AT_CHECK_CALC_LALR1_CC): New.
503 Use it for the first lalr1.cc test.
504
505 2003-02-04 Akim Demaille <akim@epita.fr>
506
507 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
508 Location as is defined.
509
510 2003-02-04 Akim Demaille <akim@epita.fr>
511
512 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
513 name_ being defined.
514
515 2003-02-03 Paul Eggert <eggert@twinsun.com>
516
517 * src/gram.h (start_symbol): Remove unused decl.
518
519 Use more-consistent naming conventions for local vars.
520
521 * src/derives.c (derives_compute): Change type of local var from
522 int to rule_number.
523 * src/gram.c (grammar_rules_partial_print): Likewise.
524 * src/print.c (print_core): Likewise.
525 * src/reduce.c (reduce_grammar_tables): Likewise.
526
527 * src/gram.c (grammar_dump): Change name of item_number *
528 local var from r to rp.
529 * src/nullable.c (nullable_compute): Likewise.
530
531 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
532
533 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
534 for symbol or symbol_number var.
535 * src/reader.c (grammar_start_symbol_set): Likewise.
536 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
537 Likewise.
538 * src/state.c (transitions_to): Likewise.
539 * src/state.h: Likewise.
540 * src/tables.c (symbol_number_to_vector_number): Likewise.
541
542 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
543 char * var.
544
545 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
546 var.
547
548 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
549 var.
550
551 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
552 Use str, not s, for char * var. Use ch, not c, for character var.
553 Use size for size var.
554
555 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
556 char * var.
557 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
558 uniqstr var.
559 * src/uniqstr.h: Likewise.
560
561 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
562 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
563 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
564 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
565 param to have same name as that of enum, so that we don't use
566 "s" to stand for a non-state.
567
568 2003-02-02 Akim Demaille <akim@epita.fr>
569
570 * src/scan-skel.l: Scan more than one inert character per yylex
571 invocation.
572
573 2003-02-01 Paul Eggert <eggert@twinsun.com>
574
575 Version 1.875a.
576
577 * po/LINGUAS: Add ms.
578
579 2003-01-30 Akim Demaille <akim@epita.fr>
580
581 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
582
583 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
584
585 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
586 of $1.
587
588 Changes in response to error report by S. Eken: GLR mode does not
589 handle negative $ indices or $ indices in embedded rules correctly.
590 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
591
592 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
593 (b4_rhs_location): Ditto.
594 (yyfill): New function to copy from stack tree into array
595 incrementally.
596 (yyuserAction): Modify to allow incremental move of semantic values
597 to rhs array when in GLR mode.
598 Define YYFILL to use in user-defined actions to fill semantic array
599 as needed.
600 Remove dummy use of yystack, as there is now a guaranteed use.
601 (yydoAction): Modify to allow incremental move of semantic values
602 to rhs array when in GLR mode.
603 (yyresolveAction): Ditto.
604 (yyglrShiftDefer): Update comment.
605 (yyresolveStates): Use X == NULL for pointers, not !X.
606 (yyglrReduce): Ditto.
607 (yydoAction): Ditto
608
609 * tests/glr-regr1.at: Rename to ...
610 * tests/glr-regression.at: Add new regression test for the problems
611 described above (adapted from S. Eken).
612 Update copyright notice.
613 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
614 * tests/Makefile.am: Ditto.
615
616 2003-01-28 Paul Eggert <eggert@twinsun.com>
617
618 * data/lalr1.cc: Do not use @output_header_name@ unless
619 b4_defines_flag is set. This fixes two bugs reported by
620 Tim Van Holder in
621 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
622 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
623
624 2003-01-21 Paul Eggert <eggert@twinsun.com>
625
626 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
627 we don't need to worry about yyerrlab1 being reported as an
628 "unused label" by non-GCC C compilers. The downside is that if
629 locations are used then a couple of statements are duplicated each
630 time YYERROR is invoked, but the upside is that the warnings
631 should vanish.
632 (yyerrlab1): Move code to YERROR.
633 (yyerrlab2): Remove. Change uses back to yyerrlab1.
634 This reverts some of the 2002-12-27 change.
635
636 2003-01-17 Paul Eggert <eggert@twinsun.com>
637
638 * src/output.c (symbol_printers_output): Fix typo that led
639 to core dump. Problem reported by Antonio Rus in
640 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
641
642 2003-01-13 Akim Demaille <akim@epita.fr>,
643 Quoc Peyrot <chojin@lrde.epita.fr>,
644 Robert Anisko <anisko_r@lrde.epita.fr>
645
646 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
647 when the stacks contain one element, as the loop would otherwise
648 free the last state, and then use the top state (the one we just
649 popped). This means that the initial elements will not be freed
650 explicitly, as is the case in yacc.c; it is not a problem, as
651 these elements have fake values.
652
653 2003-01-11 Paul Eggert <eggert@twinsun.com>
654
655 * NEWS: %expect-violations are now just warnings, reverting
656 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
657 bootstrapping problem reported by Matthias Klose; see
658 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
659 * src/conflicts.c (conflicts_print): Likewise.
660 * tests/conflicts.at (%expect not enough, %expect too much,
661 %expect with reduce conflicts): Likewise.
662 * doc/bison.texinfo (Expect Decl): Document this. Also mention
663 that the warning is enabled if the number of conflicts changes
664 (not necessarily increases).
665
666 * src/getargs.c (version): Update copyright year.
667
668 2003-01-09 Akim Demaille <akim@epita.fr>
669
670 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
671
672 2003-01-08 Paul Eggert <eggert@twinsun.com>
673
674 * Makefile.maint (WGETFLAGS):
675 New macro, containing "-C off" to disable proxy caches.
676 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
677 (rel-check): Use $(WGET) instead of wget.
678
679 2003-01-06 Paul Eggert <eggert@twinsun.com>
680
681 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
682 the GLR paper of Scott, Johnstone and Hussain.
683
684 2003-01-04 Paul Eggert <eggert@twinsun.com>
685
686 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
687 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
688 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
689 (EXTRA_LIBRARIES): New var, for liby.a.
690 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
691 (EXTRA_SCRIPTS): New var, for yacc.
692
693 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
694 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
695 Problem reported by Nelson H. F. Beebe.
696
697 2003-01-03 Paul Eggert <eggert@twinsun.com>
698
699 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
700 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
701 when compiling Bison 1.875's `bitset bset = obstack_alloc
702 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
703
704 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
705 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
706 grow to a huge size with typical invocation.
707
708 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
709 Use the pattern recommended by Autoconf 2.57, except also protect
710 against double-definition.
711 * src/system.h: Likewise.
712 Portability issues reported by Nelson H. F. Beebe.
713
714 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
715 All uses changed. Provide a definition in both C and C++.
716 (yytrue, yyfalse): Define even if defined (__cplusplus).
717
718 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
719 Reported by Nelson H. F. Beebe.
720
721 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
722
723 2003-01-02 Paul Eggert <eggert@twinsun.com>
724
725 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
726 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
727 Bug reported by Nelson H. F. Beebe.
728
729 2003-01-01 Paul Eggert <eggert@twinsun.com>
730
731 * Version 1.875.
732
733 2002-12-30 Paul Eggert <eggert@twinsun.com>
734
735 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
736 Moved here from...
737 (<INITIAL>","): Here. This causes stray "," to be treated
738 more uniformly.
739
740 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
741 last brace in braced code when not in Yacc mode, for compatibility
742 with Bison 1.35. This resurrects the 2001-12-15 patch to
743 src/reader.c.
744
745 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
746 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
747
748 2002-12-28 Paul Eggert <eggert@twinsun.com>
749
750 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
751 that of SYM's type. This fixes Debian bug 168069, reported by
752 Thomas Olsson.
753
754 2002-12-28 Paul Eggert <eggert@twinsun.com>
755
756 Version 1.75f.
757
758 Switch back to the Yacc style of conflict reports, undoing some
759 of the 2002-07-30 change.
760 * doc/bison.texinfo (Understanding): Use Yacc style for
761 conflict reports. Also, use new way of locating rules.
762 * src/conflicts.c (conflict_report):
763 Renamed from conflict_report_yacc, removing the old
764 'conflict_report'. Translate the entire conflict report at once,
765 so that we don't assume that "," has the same interpretation in
766 all languages.
767 (conflicts_output): Use Yacc-style conflict report for each state,
768 instead of our more-complicated style.
769 (conflicts_print): Use Yacc-style conflict report, except print
770 the input file name when not emulating Yacc.
771 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
772 Conflicted Reduction, %expect not enough, %expect too much,
773 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
774 * tests/existing.at (GNU Cim Grammar): Likewise.
775 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
776
777 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
778 fatal): Don't invoke fflush; it's not needed and it might even be
779 harmful for stdout, as stdout might not be open.
780 * src/reduce.c (reduce_print): Likewise.
781
782 2002-12-27 Paul Eggert <eggert@twinsun.com>
783
784 Fix a bug where error locations were not being recorded correctly.
785 This problem was originally reported by Paul Hilfinger in
786 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
787
788 * data/yacc.c (yyparse): New local var yylerrsp, to record the
789 top of the location stack's error locations.
790 (yyerrlab): Set it. When discarding a token, push its location
791 onto yylerrsp so that we don't lose track of the error's end.
792 (yyerrlab1): Now is only the target of YYERROR, so that we can
793 properly record the location of the action that failed. For GCC
794 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
795 GCC warning about yyerrlab1 being unused if YYERROR is unused.
796 (yyerrlab2): New label, which yyerrlab now falls through to.
797 Compute the error's location by applying YYLLOC_DEFAULT to
798 the locations of all the symbols that went into the error.
799 * doc/bison.texinfo (Location Default Action): Mention that
800 YYLLOC_DEFAULT is also invoked for syntax errors.
801 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
802 Error locations include the locations of all the tokens that were
803 discarded, not just the last token.
804
805 2002-12-26 Paul Eggert <eggert@twinsun.com>
806
807 * src/files.c: Include quote.h.
808 (compute_output_file_names): Warn if we detect conflicting
809 outputs to the same file. This should catch the misunderstanding
810 exemplified by Debian Bug 165349, reported by Bruce Stephens..
811
812 * src/conflicts.c (conflicts_print): If the user specifies
813 "%expect N", report an error if there are any reduce/reduce
814 conflicts. This is what the manual says should happen.
815 This fixes Debian bug 130890, reported by Anthony DeRobertis.
816 * tests/conflicts.at (%expect with reduce conflicts): New test.
817
818 Don't use m4_include on relative file names, as it doesn't work as
819 desired if there happens to be a file with that name under ".".
820
821 * m4sugar/version.m4: Remove; it was included but it wasn't used.
822 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
823 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
824 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
825 * src/output.c (output_skeleton): Use full path names when
826 specifying a file to include; don't rely on include path, as
827 it's unreliable when the working file contains a file with
828 that name.
829
830 2002-12-25 Paul Eggert <eggert@twinsun.com>
831
832 Remove obsolete references to bison.simple and bison.hairy.
833 Problem mentioned by Aubin Mahe in
834 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
835 * data/glr.c: Comment fix.
836 * doc/bison.1: Remove references. Also, mention "yacc".
837
838 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
839 with -g option.
840
841 * src/parse-gram.y (declaration): Use enum "report_states" rather
842 than its numeric value 1.
843
844 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
845 opening a new one. This fixes Debian bug 165349, reported by
846 Bruce Stephens.
847
848 2002-12-24 Paul Eggert <eggert@twinsun.com>
849
850 Version 1.75e.
851
852 * Makefile.maint (cvs-update): Don't assume that the shell
853 supports $(...), as Solaris sh doesn't.
854
855 * src/parse-gram.y (lloc_default): Remove test for empty
856 nonterminals at the end, since it didn't change the result.
857
858 2002-12-24 Paul Eggert <eggert@twinsun.com>
859
860 If the user does not define YYSTYPE as a macro, Bison now declares it
861 using typedef instead of defining it as a macro. POSIX requires this.
862 For consistency, YYLTYPE is also declared instead of defined.
863
864 %union directives can now have a tag before the `{', e.g., the
865 directive `%union foo {...}' now generates the C code
866 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
867 The default union tag is `YYSTYPE', for compatibility with Solaris 9
868 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
869 instead of `yyltype'.
870
871 `yystype' and `yyltype' are now obsolescent macros instead of being
872 typedefs or tags; they are no longer documented and will be
873 withdrawn in a future release.
874
875 * data/glr.c (b4_location_type): Remove.
876 (YYSTYPE): Renamed from yystype.
877 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
878 (struct YYLTYPE): Renamed from struct yyltype.
879 (YYLTYPE): Renamed from yyltype.
880 (yyltype, yystype): New (and obsolescent) macros,
881 for backward compatibility.
882 * data/yacc.c: Likewise.
883
884 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
885 does not specify a union tag. This is for compatibility with
886 Solaris 9 yacc.
887
888 * src/parse-gram.y (add_param): 2nd arg is now char * not char
889 const *, since it is now modified by stripping surrounding { }.
890 (current_braced_code): Remove.
891 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
892 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
893 trailing " {...}". Now of type <chars>.
894 (grammar_declaration): Adjust to bundled tokens.
895 (code_content): Remove; stripping is now done by add_param.
896 (print_token_value): Print contents of bundled tokens.
897 (token_name): New function.
898
899 * src/reader.h (braced_code, current_braced_code): Remove.
900 (token_name): New decl.
901
902 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
903 token_type, not braced_code code_kind. All uses changed.
904 (SC_PRE_CODE): New state, for scanning after a keyword that
905 has (or usually has) an immediately-following braced code.
906 (token_type): New local var, to keep track of which token type
907 to return when scanning braced code.
908 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
909 <INITIAL>"%parse-param", <INITIAL>"%printer",
910 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
911 instead of returning a token type immediately.
912 (<INITIAL>"{"): Set token type.
913 (<SC_BRACED_CODE>"}"): Use it.
914 (handle_action_dollar, handle_action_at): Now returns bool
915 indicating success. Fail if ! current_rule; this prevents a core dump.
916 (handle_symbol_code_dollar, handle_symbol_code_at):
917 Remove; merge body into caller.
918 (handle_dollar, handle_at): Complain in invalid contexts.
919
920 * NEWS, doc/bison.texinfo: Document the above.
921 * NEWS: Fix years and program names in copyright notice.
922
923 2002-12-17 Paul Eggert <eggert@twinsun.com>
924
925 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
926 Reporting, Table of Symbols): Omit mentions of %lex-param and
927 %parse-param from the documentation for now.
928
929 2002-12-15 Paul Eggert <eggert@twinsun.com>
930
931 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
932 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
933 lookahead symbol, and which sets yychar in parser actions) and it
934 disagreed with the Bison documentation. Bug
935 reported by Andrew Walrond.
936
937 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
938 as the caller now does that.
939 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
940 (YYEMPTY): Parenthesize right hand side, since others use it.
941 (yyparse): Don't assume that our generated code is the only code
942 that sets yychar.
943
944 2002-12-13 Paul Eggert <eggert@twinsun.com>
945
946 Version 1.75d.
947
948 POSIX requires a "yacc" command.
949 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
950 (MOSTLYCLEANFILES): Add yacc.
951 (yacc): New rule.
952 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
953 as an alias for bison y.
954
955 * po/LINGUAS: Add da.
956
957 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
958 problem with latest <getopt.h>.
959 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
960
961 * doc/fdl.texi: Upgrade to 1.2.
962 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
963 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
964 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
965 gnulib.
966 * config/install-sh: Sync with autotools.
967
968 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
969 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
970 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
971 locations are requested.
972 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
973 locations are requested.
974
975 2002-12-12 Paul Eggert <eggert@twinsun.com>
976
977 Remove unportable casts and storage allocation tricks.
978 While we're at it, remove almost all casts, since they
979 usually aren't needed and are a sign of trouble.
980
981 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
982
983 * src/derives.c (derives_compute): Do not subtract NTOKENS from
984 the pointer DSET returned by malloc; this isn't portable.
985 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
986 Similarly for DERIVES.
987 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
988 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
989 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
990
991 * src/derives.c (derives_compute): Do not bother invoking
992 int_of_rule_number, since rule numbers are integers.
993
994 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
995 rather than XMALLOC (char, N).
996
997 * src/files.c (filename_split): Rewrite to avoid cast.
998
999 * src/gram.h (symbol_number_as_item_number,
1000 item_number_as_symbol_number, rule_number_as_item_number,
1001 item_number_as_rule_number):
1002 Now inline functions rather than macros, to avoid casts.
1003 * src/state.h (state_number_as_int): Likewise.
1004 * src/tables.c (state_number_to_vector_number,
1005 symbol_number_to_vector_number): Likewise.
1006
1007 * src/gram.h (int_of_rule_number): Remove; no longer used.
1008
1009 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
1010 since the resulting storage is always stored into.
1011
1012 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
1013 where it's needed.
1014
1015 * src/muscle_tab.c (muscle_m4_output):
1016 Now inline. Return bool, not int.
1017 * src/state.c (state_compare): Likewise.
1018 * src/symtab.c (symbol_check_defined,
1019 symbol_check_alias_consistency, symbol_pack, symbol_translation,
1020 hash_compare_symbol, hash_symbol):
1021 Likewise.
1022 * src/uniqstr.c (uniqstr_print): Likewise.
1023 * src/muscle_tab.c (muscle_m4_output_processor):
1024 New function, to avoid casts.
1025 * src/state.c (state_comparator, stage_hasher): Likewise.
1026 * src/symtab.c (symbol_check_defined_processor,
1027 symbol_check_alias_consistency_processor, symbol_pack_processor,
1028 symbol_translation_processor, hash_symbol_comparator,
1029 hash_symbol_hasher): Likewise.
1030 * src/uniqstr.c (uniqstr_print_processor): Likewise.
1031 * src/muscle_tab.c (muscles_m4_output):
1032 Use new functions instead of casting old functions unportably.
1033 * src/state.c (state_hash_new): Likewise.
1034 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
1035 symbols_token_translations_init):
1036 Likewise.
1037 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
1038
1039 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
1040 var instead of casting to long, to avoid casts.
1041 (prepare_states): Use MALLOC rather than alloca, so that we don't
1042 have to worry about alloca.
1043 * src/state.c (state_hash_lookup): Likewise.
1044
1045 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
1046 local var instead of casting to unsigned char, to avoid casts.
1047
1048 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
1049 STATE_ALLOC): Remove.
1050 (transitions_new, errs_new, reductions_new, state_new): Use malloc
1051 rather than calloc, and use offsetof to avoid allocating slightly
1052 too much storage.
1053 (state_new): Initialize all members.
1054
1055 * src/state.c (state_hash): Use unsigned accumulator, not signed.
1056
1057 * src/symtab.c (symbol_free): Remove; unused.
1058 (symbol_get): Remove cast in lhs of assignment.
1059 (symbols_do): Now static. Accept generic arguments, not
1060 hashing-related ones.
1061
1062 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
1063 (symbol_processor): Remove.
1064 (symbols_do): Remove decl; now static.
1065
1066 * src/system.h (alloca): Remove; decl no longer needed.
1067 (<stddef.h>): Include, for offsetof.
1068 (<inttypes.>, <stdint.h>): Include if available.
1069 (uintptr_t): New type, if system lacks it.
1070 (CALLOC, MALLOC, REALLOC): New macros.
1071 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
1072 new macros.
1073
1074 * src/tables.c (table_size): Now int, to pacify GCC.
1075 (table_grow, table_ninf_remap): Use signed table size.
1076 (save_row): Don't bother initializing locals when not needed.
1077 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
1078 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
1079
1080 * src/vcg.h: Correct misspellings.
1081
1082 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
1083
1084
1085 * src/getargs.c (getargs): Don't assume EOF == -1.
1086
1087 2002-12-09 Paul Eggert <eggert@twinsun.com>
1088
1089 Change identifier spellings to avoid collisions with names
1090 that are reserved by POSIX.
1091
1092 Don't use names ending in _t, since POSIX reserves them.
1093 For consistency, remove _e and _s endings -- they're weren't
1094 needed to remove ambiguity. All uses changed.
1095 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
1096 turn was just renamed from struniq_t.
1097 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
1098 which in turn was just renamed from struniq_processor_t.
1099 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
1100 in turn was renamed from hash_compare_struniq_t.
1101 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
1102 (state_list): Renamed from state_list_t.
1103 * src/assoc.h (assoc): Renamed from assoc_t.
1104 * src/conflicts.c (enum conflict_resolution): Renamed from
1105 enum conflict_resolution_e.
1106 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
1107 (rule_list): Renamed from rule_list_t.
1108 * src/getargs.h (enum trace): Renamed from enum trace_e.
1109 (enum report): Renamed from enum report_e.
1110 * src/gram.h (item_number): Renamed from item_number_t.
1111 (rule_number): Renamed from rule_number_t.
1112 (struct rule_s): Remove the "rule_s" part; not used.
1113 (rule): Renamed from rule_t.
1114 (rule_filter): Renamed from rule_filter_t.
1115 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
1116 (goto_list): Renamed from goto_list_t.
1117 * src/lalr.h (goto_number): Renamed from goto_number_t.
1118 * src/location.h (location): Renamed from location_t.
1119 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
1120 and moved here from:
1121 * src/muscle_tab.h (muscle_entry_t): here.
1122 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
1123 (rule_list): Renamed from rule_list_t.
1124 * src/print_graph.c (static_graph): Renamed from graph.
1125 * src/reader.h (braced_code): Renamed from braced_code_t.
1126 Remove brace_code_e tag.
1127 * src/relation.h (relation_node): Renamed from relation_node_t.
1128 (relation_nodes): Renamed from relation_nodes_t.
1129 (relation): Renamed from relation_t.
1130 * src/state.h (state_number): Renamed from state_number_t.
1131 (struct state): Renamed from struct state_s.
1132 (state): Renamed from state_t.
1133 (transitions): Renamed from transitions_t. Unused (and
1134 misspelled) transtion_s tag removed.
1135 (errs): Renamed from errs_t. Unused errs_s tag removed.
1136 (reductions): Renamed from reductions_t. Unused tag
1137 reductions_s removed.
1138 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
1139 (struct symbol_list): Renamed from struct symbol_list_s.
1140 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
1141 (struct symbol): Renamed from struct symbol_s.
1142 (symbol): Renamed from symbol_t.
1143 * src/tables.c (vector_number): Renamed from vector_number_t.
1144 (action_number): Renamed from action_t.
1145 * src/tables.h (base_number): Renamed from base_t.
1146 * src/vcg.h (enum color): Renamed from enum color_e.
1147 (enum textmode): Renamed from enum textmode_e.
1148 (enum shape): Renamed from enum shape_e.
1149 (struct colorentry): Renamed from struct colorentry_s.
1150 (struct classname): Renamed from struct classname_s.
1151 (struct infoname): Renamed from struct infoname_s.
1152 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
1153 (enum decision): Renamed from enum decision_e.
1154 (enum orientation): Renamed from enum orientation_e.
1155 (enum alignment): Renamed from enum alignment_e.
1156 (enum arrow_mode): Renamed from enum arrow_mode_e.
1157 (enum crossing_type): Renamed from enum crossing_type_e.
1158 (enum view): Renamed from enum view_e.
1159 (struct node): Renamed from struct node_s.
1160 (node): Renamed from node_t.
1161 (enum linestyle): Renamed from enum linestyle_e.
1162 (enum arrowstyle): Renamed from enum arrowstyle_e.
1163 (struct edge): Renamed from struct edge.
1164 (edge): Renamed from edge_t.
1165 (struct graph): Renamed from struct graph_s.
1166 (graph): Renamed from graph_t.
1167 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
1168 Rename value_t -> value.
1169 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
1170 value_t_as_yystype -> value_as_yystype.
1171
1172 Don't include <errno.h> in the mainstream code, since it
1173 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
1174 * lib/get-errno.c, lib/get-errno.h: New files.
1175 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
1176 get-errno.c.
1177 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
1178 * src/output.c (output_skeleton): Likewise.
1179 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
1180 instead of errno.
1181 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
1182 Likewise.
1183 (handle_action_dollar, handle_action_at): Likewise.
1184 * src/system.h: Do not include <errno.h>.
1185 (TAB_EXT): Renamed from EXT_TAB.
1186 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
1187
1188 Avoid str[a-z]*, since <string.h> reserves that name space.
1189 Change all instances of "struniq" in names to "uniqstr", and
1190 likewise for "STRUNIQ" and "UNIQSTR".
1191 * src/uniqstr.c: Renamed from src/struniq.c.
1192 * src/uniqstr.h: Renamed from src/struniq.h.
1193 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
1194 * src/files.c (strsuffix): Remove; unused.
1195 (concat2): Renamed from stringappend. Now static.
1196 * src/files.h (strsuffix, stringappend): Remove; unused.
1197 * src/parse-gram.y (<chars>): Renamed from <string>.
1198 (<uniqstr>): Renamed from <struniq>.
1199 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
1200 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
1201 (struct graph_s.expand): Renamed from struct graph_s.stretch.
1202 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
1203 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
1204 (N_EXPAND): Renamed from N_STRETCH.
1205
1206 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
1207 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
1208 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
1209 Remove; unused.
1210 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
1211 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
1212 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
1213 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
1214 (BASE_MAXIMUM): Renamed from BASE_MAX.
1215 (BASE_MINIMUM): Renamed from BASE_MIN.
1216 (ACTION_MAX): Remove; unused.
1217 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
1218 Unnecessary casts removed from above defines.
1219
1220
1221 Fix misspelling in names.
1222 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
1223 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
1224 G_NODE_ALIGNEMENT.
1225
1226
1227 * lib/timevar.c (timevar_report): Renamed from time_report,
1228 for consistency with other names.
1229 * lib/timevar.h (timevar_report): New decl.
1230 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
1231
1232
1233 Sort include-file uses.
1234
1235 Reorder all include files under src to be in the order "system.h".
1236 then the ../lib include files in angle brackets (alphabetized),
1237 then the . include files in double-quotes (alphabetized). Fix
1238 dependency breakages encountered in this process, as follows:
1239 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
1240 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
1241 * src/state.h: Include "symtab.h".
1242
1243 2002-12-08 Paul Eggert <eggert@twinsun.com>
1244
1245 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
1246 since this causes problems when __file__ contains character
1247 sequences like "@" that are treated specially by src/scan-skel.l.
1248 Instead, just use the file's basename. This fixes the bug
1249 reported by Martin Mokrejs in
1250 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
1251
1252 2002-12-06 Paul Eggert <eggert@twinsun.com>
1253
1254 Add support for rules that do not have trailing semicolons, as
1255 POSIX requires. Improve the quality of locations in Bison
1256 diagnostics.
1257
1258 * src/location.c: Include <quotearg.h>.
1259 (empty_location): Now const.
1260 (location_print): New function. Follow the recommendation of the
1261 GNU Coding Standards for locations that span file boundaries.
1262 * src/location.h: Do not include <quotearg.h>; no longer needed.
1263 (boundary): New type.
1264 (location_t): Use it. This allows locations to span file boundaries.
1265 All member uses changed: file -> start.file or end.file (as needed),
1266 first_line -> start.line, first_column -> start.column,
1267 last_line -> end.line, last_column -> end.column.
1268 (equal_boundaries): New function.
1269 (LOCATION_RESET, LOCATION_STEP): Remove.
1270 (LOCATION_PRINT): Remove. All callers changed to use location_print.
1271 (empty_location): Now const.
1272 (location_print): New decl.
1273 * src/parse-gram.y (lloc_default): New function, which handles
1274 empty locations more accurately.
1275 (YYLLOC_DEFAULT): Use it.
1276 (%token COLON): Remove.
1277 (%token ID_COLON): New token.
1278 (rules): Use it.
1279 (declarations, rules): Remove trailing semicolon.
1280 (declaration, rules_or_grammar_declaration):
1281 Allow empty (";") declaration.
1282 (symbol_def): Remove empty actions; no longer needed.
1283 (rules_or_grammar_declaration): Remove trailing semicolon.
1284 (semi_colon.opt): Remove.
1285 * src/reader.h: Include location.h.
1286 (scanner_cursor): New decl.
1287 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
1288 rolling our own.
1289 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
1290 of *loc.
1291 (STEP): Remove. No longer needed, now that adjust_location does
1292 the work. All uses removed.
1293 (scanner_cursor): New var.
1294 (adjust_location): Renamed from extend_location. It now sets
1295 *loc and adjusts the scanner cursor. All uses changed.
1296 Don't bother testing for CR.
1297 (handle_syncline): Remove location arg; now updates scanner cursor.
1298 All callers changed.
1299 (unexpected_end_of_file): Now accepts start boundary of token or
1300 comment, not location. All callers changed. Update scanner cursor,
1301 not the location.
1302 (SC_AFTER_IDENTIFIER): New state.
1303 (context_state): Renamed from c_context. All uses changed.
1304 (id_loc, code_start, token_start): New local vars.
1305 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
1306 processing of Yacc white space and equivalents here.
1307 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
1308 instead of returning ID immediately, since we need to search for
1309 a subsequent colon.
1310 (<INITIAL>"'", "\""): Save token_start.
1311 (<INITIAL>"%{", "{", "%%"): Save code_start.
1312 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
1313 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
1314 BEGIN context_state at end, not INITIAL.
1315 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
1316 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
1317 Return correct token start.
1318 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
1319 the start of a character, string or multiline comment is found.
1320 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
1321 Reduction): Adjust reported locations to match the more-precise
1322 results now expected.
1323 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
1324 * tests/reduce.at (Useless Rules, Reduced Automaton,
1325 Underivable Rules): Likewise.
1326 * tests/regression.at (Invalid inputs): No longer `expecting ";"
1327 or "|"' now that so many other tokens are allowed by the new grammar.
1328
1329 * src/complain.h (current_file): Remove duplicate decl;
1330 current_file is now owned by files.h.
1331 * src/complain.c, src/scan-gram.l: Include files.h.
1332
1333 2002-12-06 Paul Eggert <eggert@twinsun.com>
1334
1335 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
1336 promotes to int; it might be unsigned int.
1337 * data/yacc.c (yy_reduce_print): Likewise.
1338
1339 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
1340 be #defined in the prologue, not in the Bison declarations.
1341 This fixes Debian Bug 102878, reported by Shaul Karl.
1342
1343 2002-12-02 Paul Eggert <eggert@twinsun.com>
1344
1345 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
1346 * lib/strtoul.c: New file, from gnulib.
1347 This fixes a porting bug reported by Peter Klein in
1348 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
1349
1350 2002-11-30 Paul Eggert <eggert@twinsun.com>
1351
1352 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
1353 and put only a forward declaration in the prologue. This is for
1354 consistency with the other scanner helper functions.
1355
1356 Type clashes now generate warnings, not errors, since it
1357 appears that POSIX may allow some grammars with type clashes.
1358 * src/reader.c (grammar_current_rule_check): Warn about
1359 type clashes instead of complaining.
1360 * tests/input.at (Type Clashes): Expect warnings, not complaints.
1361
1362 Add Yacc library, since POSIX requires it.
1363 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
1364 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
1365 * lib/main.c, lib/yyerror.c: New files.
1366
1367 gram_error can be static; it need not be extern.
1368 * src/reader.h (gram_error): Remove decl.
1369 * src/parse-gram.y (gram_error): Now static. Add static decl.
1370 (print_token_value): Omit parameter names from forward decl,
1371 for consistency.
1372
1373 2002-11-29 Paul Eggert <eggert@twinsun.com>
1374
1375 * doc/bison.texinfo: Emphasize that yylex and yyerror must
1376 be declared before being used. E.g., one should typically
1377 declare them in the prologue. Use GNU coding style in examples.
1378 Put "const" consistently after the type it modifies. Mention
1379 that C99 supports "inline". Mention that yyerror traditionally
1380 returns "int".
1381
1382 %parse-param and %lex-param now take just one argument, the
1383 declaration; the argument name is deduced from the declaration.
1384
1385 * doc/bison.texinfo (Parser Function, Pure Calling, Error
1386 Reporting, Table of Symbols): Document this.
1387 * src/parse-gram.y (add_param): New function.
1388 (COMMA): Remove.
1389 (declaration): Implement new rule for %parse-param and %lex-param.
1390 * src/scan-gram.l: "," now elicits a warning, rather than being
1391 a token; this is more compatible with byacc.
1392 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1393
1394 2002-11-27 Paul Eggert <eggert@twinsun.com>
1395
1396 Rename identifiers to avoid real and potential collisions.
1397
1398 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1399 to avoid collision with lex macro described by Bruce Lilly in
1400 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1401 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1402 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1403 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1404 All uses changed.
1405 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1406 The name "yycontrol" violates the name space rules, and this stuff
1407 wasn't being used anyway.
1408 (input): Remove action; this stuff wasn't being used.
1409 (gram_error): Rename local variable yylloc -> loc.
1410 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1411 (YY_DECL): Don't use "yy" at start of local variables.
1412 All uses changed, e.g., yylloc -> loc.
1413 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1414 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1415 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1416 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1417
1418 * src/parse-gram.y (gram_error): loc is now const *.
1419 * src/reader.h (gram_error): Likewise.
1420
1421 2002-11-24 Paul Eggert <eggert@twinsun.com>
1422
1423 Version 1.75c.
1424
1425 * tests/actions.at (Actions after errors): Use an output format
1426 more similar to that of the Printers and Destructors test.
1427 Test the position of the ';' token too.
1428 (Printers and Destructors): Likewise.
1429 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1430 unnecessarily alarming people when the test fails.
1431
1432 * data/yacc.c (yyerrlab1): Move this label down, so that the
1433 parser does not discard the lookahead token if the user code
1434 invokes YYERROR. This change is required for POSIX conformance.
1435
1436 * lib/error.c: Sync with gnulib.
1437
1438 2002-11-22 Paul Eggert <eggert@twinsun.com>
1439
1440 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1441 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1442 * lib/xmalloc.c: Likewise.
1443
1444 2002-11-20 Paul Eggert <eggert@twinsun.com>
1445
1446 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1447
1448 2002-11-20 Paul Eggert <eggert@twinsun.com>
1449
1450 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1451 should use `if (! x) abort ();' rather than `assert (x);', and
1452 anyway it's one less thing to worry about configuring.
1453
1454 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1455 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1456 and replace all instances of assert with abort.
1457 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1458 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1459
1460 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1461 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1462 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1463 hash_find_entry, hash_rehash, hash_insert): Likewise.
1464 * src/conflicts.c (resolve_sr_conflict): Likewise.
1465 * src/lalr.c (set_goto_map, map_goto): Likewise.
1466 * src/nullable.c (nullable_compute): Likewise.
1467 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1468 * src/reader.c (packgram, reader): Likewise.
1469 * src/state.c (state_new, state_free, state_transitions_set,
1470 state_reduction_find): Likewise.
1471 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1472 symbol_pack): Likewise.
1473 * src/tables.c (conflict_row, pack_vector): Likewise.
1474 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1475 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1476 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1477 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1478
1479 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1480 (ARGMATCH_CONSTRAINT): New macro.
1481 (ARGMATCH_ASSERT): Use it.
1482
1483 * src/system.h (verify): New macro.
1484 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1485 rather than assert.
1486 * src/tables.c (tables_generate): Likewise.
1487
1488 * src/struniq.c (struniq_assert): Now returns void, and aborts
1489 if the assertion is false.
1490 (struniq_assert_p): Remove.
1491 * src/struniq.h: Likewise.
1492
1493 2002-11-18 Paul Eggert <eggert@twinsun.com>
1494
1495 * data/glr.c (yygetLRActions): Replace `yyindex' with
1496 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1497 This fixes the regression with Sun ONE Studio 7 cc that I reported in
1498 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
1499
1500 2002-11-18 Akim Demaille <akim@epita.fr>
1501
1502 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1503 space.
1504 From Tim Van Holder.
1505
1506 2002-11-17 Paul Eggert <eggert@twinsun.com>
1507
1508 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1509 to "SyntaxError" for consistency with my 2002-11-15 change.
1510
1511 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1512 not define to {}, since this breaks the common use of `YYDPRINTF
1513 ((...));' if a single statement is desired (e.g. before `else').
1514 Work around GCC warnings by surrounding corresponding calls with
1515 {} if needed.
1516 (yyhasResolvedValue): Remove unused function.
1517 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1518 loop body.
1519 (yyreportSyntaxError): Renamed from yyreportParseError.
1520 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1521 All uses changed.
1522 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1523 extern when possible. Remove unused initializations.
1524
1525 2002-11-16 Akim Demaille <akim@epita.fr>
1526
1527 Augment the similarity between GLR and LALR traces.
1528
1529 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1530 (YY_REDUCE_PRINT): New.
1531 (yyparse): Use them.
1532 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1533 YYDPRINT here.
1534 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1535 state reached after the reduction/recovery, since...
1536 (yyparse, yyprocessOneStack): Report the state we are entering in.
1537
1538 2002-11-16 Akim Demaille <akim@epita.fr>
1539
1540 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1541 Add support for --trace=skeleton.
1542 * src/scan-skel.l: %option debug.
1543 Scan strings of non-@ or \n instead of character by character.
1544 (scan_skel): Handle trace_skeleton.
1545 (QPUTS): New.
1546 (@output_parser_name@, @output_header_name@): ``Restore'' their
1547 support (used to be M4 macros).
1548 * data/yacc.c: Quote larger chunks, a la glr.c.
1549 * data/lalr1.cc: Likewise.
1550 The header guards are no longer available, so use some other
1551 string than `YYLSP_NEEDED'.
1552
1553 2002-11-16 Akim Demaille <akim@epita.fr>
1554
1555 Make the ``Printers and Destructors'' test more verbose, taking
1556 `yacc.c''s behavior as (possibly wrong) reference.
1557
1558 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1559 instead of fprint on stdout.
1560 Set and report the last_line of the symbols.
1561 Consistently display values and locations.
1562
1563 2002-11-16 Paul Eggert <eggert@twinsun.com>
1564
1565 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1566
1567 2002-11-15 Paul Eggert <eggert@twinsun.com>
1568
1569 * tests/actions.at (Actions after errors): New test case.
1570
1571 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1572 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1573 tests/action.at, tests/calc.at, tests/conflicts.at,
1574 tests/cxx-type.at, tests/regression.at:
1575 "parse error" -> "syntax error" for POSIX compatibility.
1576 "parsing stack overflow..." -> "parser stack overflow" so
1577 that code matches Bison documentation.
1578
1579 2002-11-15 Akim Demaille <akim@epita.fr>
1580
1581 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1582 take two BRACED_CODE, not two string_content.
1583 Free the scanner's obstack when we are done.
1584 (code_content): New.
1585 * tests/calc.at: Adjust.
1586 * doc/bison.texinfo: Adjust.
1587 Also, make sure to include the `,' for these declarations.
1588
1589 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1590
1591 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1592 definition; avoids potential autoreconf problems.
1593
1594 2002-11-15 Akim Demaille <akim@epita.fr>
1595
1596 Always check the value returned by yyparse.
1597
1598 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1599 returned by yyparse.
1600 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1601 Adjust calls.
1602 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1603 returned by yyparse.
1604
1605 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1606
1607 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1608 on input.at test.
1609
1610 2002-11-14 Paul Eggert <eggert@twinsun.com>
1611
1612 * src/output.c (output_skeleton): Call xfopen instead of
1613 duplicating xfopen's body.
1614
1615 Fix bugs reported by Nelson H. F. Beebe in
1616 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1617
1618 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1619 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1620 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1621 file twice in the grammar, as an extra check.
1622
1623 * tests/input.at (Torturing the Scanner): Surround the
1624 backslash-newline tests with "#if 0", to make it less likely that
1625 we'll run into compiler bugs. Bring back solitary \ inside
1626 comment, but add a closing comment to work around HP C bug. Don't
1627 test backslash-newline in C character constant.
1628
1629 2002-11-14 Akim Demaille <akim@epita.fr>
1630
1631 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1632 status of the compiler.
1633 Calling `exit 1' is no longer needed.
1634 Reported by Nelson H. F. Beebe.
1635
1636 2002-11-14 Akim Demaille <akim@epita.fr>
1637
1638 * tests/atlocal.in (CPPFLAGS): We have config.h.
1639 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1640 New.
1641 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1642 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1643 * tests/regression.at, tests/torture.at: Use them for all the
1644 grammars that are to be compiled.
1645 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1646 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1647 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1648
1649 2002-11-14 Akim Demaille <akim@epita.fr>
1650
1651 * doc/bison.texinfo: Various formatting changes (alignments in
1652 samples, additional @group/@end group, GCS in samples.
1653 Use @deffn instead of simple @table to define the directives,
1654 macros, variables etc.
1655
1656 2002-11-13 Paul Eggert <eggert@twinsun.com>
1657
1658 Fix some bugs reported by Albert Chin-A-Young in
1659 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1660
1661 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1662 -o c"; the HP C compiler chatters during compilation.
1663 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1664 * tests/headers.at (export YYLTYPE): Likewise.
1665
1666 * tests/input.at (Torturing the Scanner): Remove lines containing
1667 solitary backslashes, as they tickle a bug in the HP C compiler.
1668
1669 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1670 comments, since they're not portable. Use GNU coding style.
1671
1672 2002-11-13 Akim Demaille <akim@epita.fr>
1673
1674 * data/yacc.c: Leave bigger chunks of quoted text.
1675 (YYDSYMPRINTF): New.
1676 Use it to report symbol activities.
1677 * data/glr.c (YYDSYMPRINTF): New.
1678 Use it.
1679
1680 2002-11-12 Paul Eggert <eggert@twinsun.com>
1681
1682 Version 1.75b.
1683
1684 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1685 (yyglrReduce): Return yyok, not 0.
1686 This should avoid the enumerated-type warnings reported
1687 by Nelson H. F. Beebe in
1688 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1689
1690 * lib/bbitset.h (BITSET_INLINE): Remove.
1691 * lib/bitset.h [! BITSET_INLINE]: Remove.
1692 (bitset_set, bitset_reset, bitset_test): Rename local vars
1693 to avoid shadowing warnings by GCC.
1694
1695 * data/glr.c (inline): Remove #define. It's the user's
1696 responsibility to #define it away, just like 'const'.
1697 This fixes one of the bugs reported by Nelson H. F. Beebe in
1698 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1699
1700 * Makefile.maint (po-check): Scan .l and .y files instead of the
1701 .c and the .h files that they generate. This fixes the bug
1702 reported by Tim Van Holder in:
1703 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1704 Look for N_ as well as for _. Try to avoid matching #define for
1705 N_ and _.
1706 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1707 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1708 * src/scan-gram.l: Revamp regular expressions so that " and '
1709 do not confuse xgettext.
1710
1711 * src/struniq.h (struniq_new): Do not declare the return type
1712 to be 'const'; this violates the C standard.
1713 * src/struniq.c (struniq_new): Likewise.
1714
1715 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1716
1717 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1718 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1719 linker.
1720
1721 2002-11-12 Akim Demaille <akim@epita.fr>
1722
1723 * Makefile.maint: Sync with Autoconf:
1724 (local_updates): New.
1725
1726 2002-11-12 Akim Demaille <akim@epita.fr>
1727
1728 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1729
1730 2002-11-12 Akim Demaille <akim@epita.fr>
1731
1732 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1733 locations.
1734
1735 2002-11-12 Akim Demaille <akim@epita.fr>
1736
1737 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1738 not yyvalue.
1739
1740 2002-11-12 Akim Demaille <akim@epita.fr>
1741
1742 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1743 Use it to test the GLR parser.
1744
1745 2002-11-12 Akim Demaille <akim@epita.fr>
1746
1747 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1748 defines it.
1749 * data/glr.c (yystos): New.
1750 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1751 (YYDSYMPRINT): New.
1752 (yyval): Don't define it, it is handled via M4.
1753 (yyrecoverParseError): Free verbosely the discarded symbols.
1754 * data/yacc.c (yysymprint): Remove, rather...
1755 (b4_yysymprint_generate): invoke.
1756 * data/c.m4 (b4_yysymprint_generate): New.
1757 Accept pointers as arguments, as opposed to the version from
1758 yacc.c.
1759 (b4_yydestruct_generate): Likewise.
1760 * tests/cations.at (Printers and Destructors): Use Bison directives
1761 instead of CPP macros.
1762 Don't rely on internal details.
1763
1764 2002-11-12 Akim Demaille <akim@epita.fr>
1765
1766 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1767 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1768 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1769 it against YYEMPTY and so forth), work on yytoken (i.e., set
1770 it to YYEMPTY etc.).
1771 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1772 (b4_symbol_actions): Remove.
1773 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1774 for 0, end-of-input.
1775
1776 2002-11-12 Akim Demaille <akim@epita.fr>
1777
1778 * doc/bison.texinfo (Destructor Decl): New.
1779
1780 2002-11-12 Akim Demaille <akim@epita.fr>
1781
1782 * src/tables.c (tables_generate): Use free for pointers that
1783 cannot be NULL, not XFREE.
1784 (pack_vector): Use assert, not fatal, for bound violations.
1785 * src/state.c (state_new): Likewise.
1786 * src/reader.c (reader): Likewise.
1787 * src/lalr.c (set_goto_map): Likewise.
1788 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1789 the file name.
1790
1791 2002-11-12 Akim Demaille <akim@epita.fr>
1792
1793 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1794 Restore.
1795 * src/scan-gram.l (last_string): Is global to the file, not to
1796 yylex.
1797 * src/parse-gram.y (input): Don't append the epilogue here,
1798 (epilogue.opt): do it here, and free the scanner's obstack.
1799 * src/reader.c (epilogue_set): Rename as...
1800 (epilogue_augment): this.
1801 * data/c.m4 (b4_epilogue): Defaults to empty.
1802
1803 2002-11-12 Akim Demaille <akim@epita.fr>
1804
1805 * src/getargs.c (long_options): Remove duplicates.
1806 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1807 Remove.
1808 * doc/bison.rnh: Remove.
1809 * doc/bison.texinfo (VMS Invocation): Remove.
1810
1811 2002-11-12 Akim Demaille <akim@epita.fr>
1812
1813 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1814 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1815
1816 Use struniq for symbols.
1817
1818 * src/symtab.h (symbol_t): The tag member is a struniq.
1819 (symbol_type_set): Adjust.
1820 * src/symtab.c (symbol_new): Takes a struniq.
1821 (symbol_free): Don't free the tag member.
1822 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1823 (hash_compare_symbol, hash_symbol): these.
1824 Use the fact that tags as struniqs.
1825 (symbol_get): Use struniq_new.
1826 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1827 Returns a strniq.
1828 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1829 and type members are struniqs.
1830 * src/reader.c (get_merge_function)
1831 (grammar_current_rule_merge_set): Adjust.
1832 (TYPE, current_type): Are struniq.
1833
1834 Use struniq for file names.
1835
1836 * src/files.h, src/files.c (infile): Split into...
1837 (grammar_file, current_file): these.
1838 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1839 * src/reduce.c (reduce_print): Likewise.
1840 * src/getargs.c (getargs): Likewise.
1841 * src/complain.h, src/complain.c: Likewise.
1842 * src/main.c (main): Call struniqs_new early enough to use it for
1843 file names.
1844 Don't free the input file name.
1845
1846 2002-11-12 Akim Demaille <akim@epita.fr>
1847
1848 * src/symtab.c (symbol_free): Remove dead deactivated code:
1849 type_name are properly removed.
1850 Don't use XFREE to free items that cannot be NULL.
1851 * src/struniq.h, src/struniq.c: New.
1852 * src/main.c (main): Initialize/free struniqs.
1853 * src/parse-gram.y (%union): Add astruniq member.
1854 (yyprint): Adjust.
1855 * src/scan-gram.l (<{tag}>): Return a struniq.
1856 Free the obstack bit that used to store it.
1857 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1858
1859 2002-11-11 Paul Eggert <eggert@twinsun.com>
1860
1861 Revamp to fix many (but not all) of the C- and M4-related quoting
1862 problems. Among other things, this fixes the Bison bug reported
1863 by Jan Hubicka when processing the Bash grammar; see:
1864 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
1865
1866 Use new @ escapes consistently. Represent brackets with @{ and @}
1867 rather than @<:@ and @:>@, since this works a bit better with dumb
1868 editors like vi. Represent @ with @@, since @ is now consistently
1869 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1870 __ofile__, to avoid unexpected expansions. Similarly, use @output
1871 rather than #output.
1872
1873 * data/c.m4 (b4_copyright): Omit file name from comment, since
1874 the file name could contain "*/".
1875 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1876 be quoted. All uses changed.
1877
1878 * data/glr.c: Use new @ escapes consistently.
1879 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1880 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1881 Remove, since they couldn't handle arbitrary characters in file
1882 names.
1883 * data/lalr1.cc: Likewise.
1884 * data/yacc.c: Likewise.
1885
1886 * src/files.c (output_infix): Remove; all uses removed.
1887 * src/files.h: Likewise.
1888
1889 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1890 mishandled funny characters in file names, and anyway it isn't
1891 needed any more.
1892 * data/yacc.c: Likewise.
1893 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1894
1895 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1896 * data/yacc.c: Likewise.
1897
1898 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1899 strings now.
1900 (muscle_init): Quote filename as a C string.
1901 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1902 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1903 * src/output.c (escaped_file_name_output): New function.
1904 (prepare_symbols): Quote tokens for M4.
1905 (prepare): Don't insert output_infix, output_prefix,
1906 output_parser_name, output_header_name; this is now down by scan-skel.
1907 Insert skeleton as a C string.
1908
1909 * src/output.c (user_actions_output, symbol_destructors_output,
1910 symbol_printers_output): Quote filenames for C and M4.
1911 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1912
1913 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1914 escapes other than \\ and \'; this simplifies the code.
1915 (<SC_STRING>): Likewise, for \\ and \".
1916 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1917 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1918 Use new escapes @{ and @} for [ and ].
1919
1920 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1921 them with auto vars.
1922 Switch to new escape scheme, where @ is the escape character uniformly.
1923 Abort if a stray escape character is found. Avoid unbounded input
1924 buffer when parsing non-escaped text.
1925
1926 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1927 __oline__, #output, $@, and @{ do not have unintended meanings.
1928
1929 2002-11-09 Paul Eggert <eggert@twinsun.com>
1930
1931 Fix the test failure due to GCC warnings described in
1932 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
1933 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1934 evaluate to 0 if it's impossible for NINF to be in the respective
1935 table.
1936 (yygetLRActions, yyrecoverParseError): Use them.
1937
1938 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1939 counted in the token inserted at end of file. Now takes
1940 location_t *, not location_t, so that the location can be
1941 adjusted. All uses changed.
1942
1943 * tests/regression.at (Invalid inputs): Adjust wording in
1944 diagnostic to match the new behavior.
1945
1946 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1947 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1948 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1949 abort ();'. This reduces the runtime of the "Many lookaheads"
1950 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1951 GCC 3.2.
1952
1953 2002-11-07 Paul Eggert <eggert@twinsun.com>
1954
1955 * src/parse-gram.y (CHARACTER): Remove unused token.
1956 All uses removed.
1957
1958 * src/scan-gram.l: Remove stack option. We no longer use the
1959 stack, since the stack was never deeper than 1; instead, use the
1960 new auto var c_context to record the stacked value.
1961
1962 Remove nounput option. At an unexpected end of file, we now unput
1963 the minimal input necessary to end cleanly; this simplifies the
1964 code.
1965
1966 Avoid unbounded token sizes where this is easy.
1967
1968 (unexpected_end_of_file): New function.
1969 Use it to systematize the error message on unexpected EOF.
1970 (last-string): Now auto, not static.
1971 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1972 (scanner_last_string_free): Remove; not used.
1973 (percent_percent_count): Move decl to just before use.
1974 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1975 not the (never otherwised-used) CHARACTER.
1976
1977 2002-11-07 Akim Demaille <akim@epita.fr>
1978
1979 Let yyerror always receive the msg as last argument, so that
1980 yyerror can be variadic.
1981
1982 * data/yacc.c (b4_yyerror_args): New.
1983 Use it when calling yyerror.
1984 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1985 Use it when calling yyerror.
1986 * doc/bison.texinfo (Error Reporting): Adjust.
1987 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1988 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1989
1990 2002-11-06 Akim Demaille <akim@epita.fr>
1991
1992 #line should have quoted strings.
1993 Ideally, this should be done by m4_quotearg.
1994
1995 * src/scan-skel.l: Include quotearg.h.
1996 Quote __ofile__.
1997 * src/output.c (symbol_printers_output)
1998 (symbol_destructors_output): Quote the file name.
1999
2000 2002-11-06 Akim Demaille <akim@epita.fr>
2001
2002 * tests/regression.at (Invalid inputs): Adjust to the recent
2003 messages.
2004
2005 2002-11-06 Akim Demaille <akim@epita.fr>
2006
2007 Restore --no-lines.
2008 Reported by Jim Kent.
2009
2010 * data/c.m4 (b4_syncline): New.
2011 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
2012 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
2013 * src/output.c (user_actions_output): Likewise.
2014 (prepare): Define 'b4_synclines_flag'.
2015 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
2016
2017 2002-11-06 Akim Demaille <akim@epita.fr>
2018
2019 * src/main.c (main): Free `infile'.
2020 * src/scan-gram.l (handle_syncline): New.
2021 Recognize `#line'.
2022 * src/output.c (user_actions_output, symbol_destructors_output)
2023 (symbol_printers_output): Use the location's file name, not
2024 infile.
2025 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2026
2027 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2028
2029 * src/tables.c (matching_state): Don't allow states to match if
2030 either has GLR conflict entries.
2031
2032 2002-11-05 Paul Eggert <eggert@twinsun.com>
2033
2034 * src/scan-gram.l: Use more accurate diagnostics, e.g.
2035 "integer out of range" rather than "invalid value".
2036 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
2037 accordingly.
2038
2039 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
2040 Also, remove one static variable in the scanner.
2041
2042 * src/scan-gram.l (braces_level): Now auto, not static.
2043 Initialize to zero if the compiler is being picky.
2044 (INITIAL): Clear braces_level instead of incrementing it.
2045 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
2046 as POSIX 1003.1-2001 requires.
2047 * src/system.h (IF_LINT): New macro, taken from coreutils.
2048 * configure.ac: Define "lint" if --enable-gcc-warnings.
2049
2050 2002-11-05 Akim Demaille <akim@epita.fr>
2051
2052 * src/scan-gram.l: When it starts with `%', complain about the
2053 whole directive, not just that `invalid character: %'.
2054
2055 2002-11-04 Akim Demaille <akim@epita.fr>
2056
2057 * Makefile.maint: Update from Autoconf.
2058 (update, cvs-update, po-update, do-po-update): New.
2059
2060 2002-11-04 Akim Demaille <akim@epita.fr>
2061
2062 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
2063 and yyerror.
2064 Have yyerror `use' its arguments.
2065 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
2066 returns true when location & yacc & pure & parse-param.
2067 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
2068
2069 2002-11-04 Akim Demaille <akim@epita.fr>
2070
2071 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
2072 clashes.
2073 * src/scan-gram.l: Use [\'] instead of ['] to pacify
2074 font-lock-mode.
2075 Use complain_at.
2076 Use quote, not quote_n since LOCATION_PRINT no longer uses the
2077 slot 0.
2078
2079 2002-11-03 Paul Eggert <eggert@twinsun.com>
2080
2081 * src/reader.c (get_merge_function, grammar_current_rule_check):
2082 Use consistent diagnostics for reporting type name clashes.
2083 Quote the types with <>, for consistency with Yacc.
2084 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
2085
2086 2002-11-03 Akim Demaille <akim@epita.fr>
2087
2088 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
2089 New.
2090 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
2091 (b4_parse_param): Remove.
2092 Use b4_identification.
2093 Propagate b4_pure_args where needed to pass them to yyerror.
2094 * data/glr.m4 (b4_parse_param): Remove.
2095 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
2096 (b4_lpure_formals): New.
2097 Use b4_identification.
2098 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
2099 b4_user_formals and b4_user_args.
2100 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
2101 (yyreportAmbiguity): When using a pure parser, also need
2102 the location, and the parse-params.
2103 Adjust callers.
2104 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
2105 When using a pure parser, also need the parse-params.
2106 Adjust callers.
2107 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
2108 (%pure-parser + %parse-param) LALR and GLR parsers.
2109 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
2110 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
2111 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
2112 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
2113 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
2114 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
2115 * doc/bison.texinfo: Untabify the whole file.
2116 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
2117 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
2118 (Error Reporting): Adjust to these new directives.
2119 Document %error-verbose, deprecate YYERROR_VERBOSE.
2120
2121 2002-11-03 Akim Demaille <akim@epita.fr>
2122
2123 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
2124 AT_CHECK_CALC_GLR invocations to use % directives, instead of
2125 command line options.
2126 * tests/cxx-type.at: Formatting changes.
2127
2128 2002-11-03 Paul Eggert <eggert@twinsun.com>
2129
2130 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
2131 to count columns correctly, and to check for invalid inputs.
2132
2133 Use mbsnwidth to count columns correctly. Account for tabs, too.
2134 Include mbswidth.h.
2135 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
2136 (extend_location): New function.
2137 (YY_LINES): Remove.
2138
2139 Handle CRLF in C code rather than in Lex code.
2140 (YY_INPUT): New macro.
2141 (no_cr_read): New function.
2142
2143 Scan UCNs, even though we don't fully handle them yet.
2144 (convert_ucn_to_byte): New function.
2145
2146 Handle backslash-newline correctly in C code.
2147 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
2148 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
2149 all uses changed.
2150 (tag, splice): New EREs. Do not allow NUL or newline in tags.
2151 Use {splice} wherever C allows backslash-newline.
2152 YY_STEP after space, newline, vertical-tab.
2153 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
2154
2155 (letter, id): Don't assume ASCII; e.g., spell out a-z.
2156
2157 ({int}, handle_action_dollar, handle_action_at): Check for integer
2158 overflow.
2159
2160 (YY_STEP): Omit trailing semicolon, so that it's more like C.
2161
2162 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
2163 as well as \000. Check for UCHAR_MAX, not 255.
2164 Allow \x with an arbitrary positive number of digits, as in C.
2165 Check for overflow here.
2166 Allow \? and UCNs, for compatibility with C.
2167
2168 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
2169 with quote slot used by complain_at.
2170
2171 * tests/input.at: Add tests for backslash-newline, m4 quotes
2172 in symbols, long literals, and funny escapes in strings.
2173
2174 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
2175 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
2176 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
2177 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
2178 * m4/mbswidth.m4: New file, from GNU coreutils.
2179
2180 * doc/bison.texinfo (Grammar Outline): Document // comments.
2181 (Symbols): Document that trigraphs have no special meaning in Bison,
2182 nor is backslash-newline allowed.
2183 (Actions): Document that trigraphs have no special meaning.
2184
2185 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
2186 no longer used.
2187
2188 2002-11-02 Paul Eggert <eggert@twinsun.com>
2189
2190 * src/reader.c: Don't include quote.h; not needed.
2191 (get_merge_function): Reword warning to be consistent with
2192 type clash diagnostic in grammar_current_rule_check.
2193
2194 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
2195 bug in trigraph handling.
2196
2197 * src/output.c (prepare_symbols): When printing token names,
2198 escape "[" as "@<:@" and likewise for "]".
2199
2200 * src/system.h (errno): Remove declaration, as we are now
2201 assuming C89 or better, and C89 guarantees errno.
2202
2203 2002-10-30 Paul Eggert <eggert@twinsun.com>
2204
2205 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
2206 Check for close failures.
2207 * src/files.h (xfclose): Return void, not int, since it always
2208 returned zero.
2209 * src/files.c (xfclose): Likewise. Report I/O error if ferror
2210 indicates one.
2211 * src/output.c (output_skeleton): Use xfclose rather than fclose
2212 and ferror. xfclose now checks ferror.
2213
2214 * data/glr.c (YYLEFTMOST_STATE): Remove.
2215 (yyreportTree): Use a stack-based leftmost state. This avoids
2216 our continuing battles with bogus warnings about initializers.
2217
2218 2002-10-30 Akim Demaille <akim@epita.fr>
2219
2220 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
2221 #if.
2222
2223 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2224
2225 * tests/glr-regr1.at: New test for reported regressions.
2226 * tests/testsuite.at: Add glr-regr1.at test.
2227 * tests/Makefile.am: Add glr-regr1.at test.
2228
2229 2002-10-24 Paul Eggert <eggert@twinsun.com>
2230
2231 Version 1.75a.
2232
2233 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
2234 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
2235 we use malloc. Don't assume 'A' through 'Z' are contiguous.
2236 Don't assume strdup exists; POSIX says its an XSI extension.
2237 Check for buffer overflow on input.
2238
2239 2002-10-24 Akim Demaille <akim@epita.fr>
2240
2241 * src/output.c (output_skeleton): Don't disable M4sugar comments
2242 too soon: it results in comments being expanded.
2243 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
2244 first output.
2245
2246 2002-10-24 Akim Demaille <akim@epita.fr>
2247
2248 * data/yacc.c (m4_int_type): New.
2249 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
2250 char' as only yacc.c wants K&R portability.
2251 * data/glr.c (yysigned_char): Remove.
2252 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
2253 Reported by Quoc Peyrot.
2254
2255 2002-10-23 Paul Eggert <eggert@twinsun.com>
2256
2257 * src/main.c (main): With --trace=time, report times even if a
2258 non-fatal error occurs. Formerly, the times were reported in some
2259 such cases but not in others.
2260 * src/reader.c (reader): Just return if a complaint has been issued,
2261 instead of exiting, so that 'main' can report times.
2262
2263 2002-10-22 Akim Demaille <akim@epita.fr>
2264
2265 * src/system.h: Include sys/types.
2266 Reported by Bert Deknuydt.
2267
2268 2002-10-23 Paul Eggert <eggert@twinsun.com>
2269
2270 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
2271 Suggested by Art Haas.
2272
2273 2002-10-22 Paul Eggert <eggert@twinsun.com>
2274
2275 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
2276 decl; not needed any more.
2277 * src/main.c (main): Use return to exit, undoing yesterday's change.
2278 The last OS that we could find where this wouldn't work is
2279 SunOS 3.5, and that's too old to worry about now.
2280
2281 * data/glr.c (struct yyltype): Define members even when not
2282 doing locations. This is more consistent with yacc.c, and it
2283 works around the following bug reports:
2284 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
2285 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
2286
2287 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
2288 @acronym consistently. Standardize on "Yacc" instead of "YACC",
2289 "Algol" instead of "ALGOL". Give a bit more history about BNF.
2290
2291 2002-10-22 Akim Demaille <akim@epita.fr>
2292
2293 * data/README: New.
2294
2295 2002-10-21 Paul Eggert <eggert@twinsun.com>
2296
2297 Be consistent about 'bool'; the old code used an enum in one
2298 module and an int in another, and this violates the C standard.
2299 * m4/stdbool.m4: New file, from coreutils 4.5.3.
2300 * configure.ac (AC_HEADER_STDBOOL): Add.
2301 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
2302 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
2303 * src/symtab.c (hash_compare_symbol_t): Likewise.
2304 * src/system.h (bool, false, true): Use a definition consistent
2305 with ../lib/hash.c. All uses changed.
2306
2307 * src/complain.c (warning_issued): Renamed from warn_message_count,
2308 so that we needn't worry about integer overflow (!).
2309 Now of type bool. All uses changed.
2310 (complaint_issued): Renamed from complain_message_count; likewise.
2311
2312 * src/main.c (main): Use exit to exit with failure.
2313
2314 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
2315 rather than 1 and 0.
2316 * src/main.c (main): Likewise.
2317 * src/getargs.c (getargs): Likewise.
2318 * src/reader.c (reader): Likewise.
2319
2320 * src/getarg.c (getargs): Remove duplicate code for
2321 "Try `bison --help'".
2322
2323 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
2324 What was that "2" for?
2325
2326 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
2327 * src/getargs.c (usage): Likewise.
2328
2329 * src/getargs.c (getargs): When there are too few operands, report
2330 the last one. When there are too many, report the first extra
2331 one. This is how diffutils does it.
2332
2333 2002-10-20 Paul Eggert <eggert@twinsun.com>
2334
2335 Remove K&R vestiges.
2336 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
2337 * src/complain.c (VA_START): Remove. Assume prototypes.
2338 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
2339 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
2340 fatal): Assume prototypes.
2341 * src/complain.h: Assume prototypes.
2342 * src/system.h (PARAMS): Remove.
2343 Include <limits.h> unconditionally, since it's guaranteeed even
2344 for a freestanding C89 compiler.
2345 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
2346 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
2347
2348 2002-10-20 Akim Demaille <akim@epita.fr>
2349
2350 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
2351 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
2352 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
2353 (yyresolveStates, yyresolveAction, yyresolveStack)
2354 (yyprocessOneStack): Use them.
2355 (yy_reduce_print): New.
2356 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
2357
2358 2002-10-20 Akim Demaille <akim@epita.fr>
2359
2360 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
2361 arguments and output `void'.
2362 (b4_c_function): Rename as...
2363 (b4_c_function_def): this.
2364 (b4_c_function_decl, b4_c_ansi_function_def)
2365 (b4_c_ansi_function_decl): New.
2366 Change the interpretation of the arguments: before `int, foo', now
2367 `int foo, foo'.
2368 * data/yacc.c (yyparse): Prototype and define thanks to these.
2369 Adjust b4_c_function_def uses.
2370 * data/glr.c (yyparse): Likewise, but ANSI only.
2371
2372 2002-10-20 Akim Demaille <akim@epita.fr>
2373
2374 * src/output.c (prepare): Move the definition of `tokens_number',
2375 `nterms_number', `undef_token_number', `user_token_number_max'
2376 to...
2377 (prepare_tokens): Here.
2378 (prepare_tokens): Rename as...
2379 (prepare_symbols): this.
2380 (prepare): Move the definition of `rules_number' to...
2381 (prepare_rules): here.
2382 (prepare): Move the definition of `last', `final_state_number',
2383 `states_number' to...
2384 (prepare_states): here.
2385 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
2386
2387 2002-10-20 Akim Demaille <akim@epita.fr>
2388
2389 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2390
2391 2002-10-20 Akim Demaille <akim@epita.fr>
2392
2393 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2394 * data/c.m4: here.
2395
2396 2002-10-20 Akim Demaille <akim@epita.fr>
2397
2398 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2399 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2400 `pair'.
2401 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2402 `name' to...
2403 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2404 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2405 These.
2406
2407 2002-10-19 Paul Eggert <eggert@twinsun.com>
2408
2409 Do not create a temporary file, as that involves security and
2410 cleanup headaches. Instead, use a pair of pipes.
2411 Derived from a suggestion by Florian Krohm.
2412 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2413 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2414 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2415 (BISON_PREREQ_SUBPIPE): Add.
2416 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2417 Add subpipe.h, subpipe.c.
2418 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2419 * po/POTFILES.in: Add lib/subpipe.c.
2420 * src/output.c: Include "subpipe.h".
2421 (m4_invoke): Remove decl.
2422 (scan_skel): New decl.
2423 (output_skeleton): Use pipe rather than temporary file for m4 input.
2424 Check that m4sugar.m4 is readable, to avoid deadlock.
2425 Check for pipe I/O error.
2426 * src/scan-skel.l (readpipe): Remove decl.
2427 (scan_skel): New function, to be used in place of m4_invoke.
2428 Read from stream rather than file.
2429
2430 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2431 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2432 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2433 this generates a more-accurate value anyway.
2434
2435 * lib/timevar.c (timervar_accumulate): Rename locals to
2436 avoid confusion with similarly-named more-global.
2437 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2438
2439 * src/output.c (prepare): Use xstrdup to convert char const *
2440 to char *, to avoid GCC warning.
2441
2442 2002-10-19 Akim Demaille <akim@epita.fr>
2443
2444 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2445 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2446 Use them to have `calc.y' ready for %pure-parser.
2447 * data/yacc.c (YYLEX): Pass a yylex return type to
2448 b4_c_function_call.
2449
2450 2002-10-19 Akim Demaille <akim@epita.fr>
2451
2452 Prototype support of %lex-param and %parse-param.
2453
2454 * src/parse-gram.y: Add the definition of the %lex-param and
2455 %parse-param tokens, plus their rules.
2456 Drop the `_' version of %glr-parser.
2457 Add the "," token.
2458 * src/scan-gram.l (INITIAL): Scan them.
2459 * src/muscle_tab.c: Comment changes.
2460 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2461 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2462 (muscle_entry_s): The `value' member is no longer const.
2463 Adjust all dependencies.
2464 * src/muscle_tab.c (muscle_init): Adjust: use
2465 MUSCLE_INSERT_STRING.
2466 Initialize the obstack earlier.
2467 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2468 (muscle_pair_list_grow): New.
2469 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2470 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2471 * tests/calc.at: Use %locations, not --locations.
2472 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2473
2474 2002-10-19 Akim Demaille <akim@epita.fr>
2475
2476 * src/getargs.c (usage): Take status as argument and exit
2477 accordingly.
2478 Report the traditional `Try ... --help' message when status != 0.
2479 (usage, version): Don't take a FILE * as arg, it is pointless.
2480 (getargs): When there is an incorrect number of arguments, make it
2481 an error, and report it GNUlically thanks to `usage ()'.
2482
2483 2002-10-18 Paul Eggert <eggert@twinsun.com>
2484
2485 * data/glr.c (yyreportParseError): Don't assume that sprintf
2486 yields the length of the printed string, as this is not true
2487 on SunOS 4.1.4. Reported by Peter Klein.
2488
2489 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2490 * tests/conflicts.at (%nonassoc and eof): Likewise.
2491 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2492
2493 2002-10-17 Akim Demaille <akim@epita.fr>
2494
2495 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2496 * src/getargs.c (trace_types, trace_args): Adjust.
2497 * src/reader.c (grammar_current_rule_prec_set)
2498 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2499 Standardize error messages.
2500 And s/@prec/%prec/!
2501 (reader): Use trace_flag to enable scanner/parser debugging,
2502 instead of an adhoc scheme.
2503 * src/scan-gram.l: Remove trailing debugging code.
2504
2505 2002-10-16 Paul Eggert <eggert@twinsun.com>
2506
2507 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2508 MUSCLE_TAB_H.
2509
2510 * NEWS: Officially drop support for building Bison with K&R C,
2511 since it didn't work anyway and it's not worth worrying about.
2512 * Makefile.maint (wget_files): Remove ansi2knr.c.
2513 (ansi2knr.c-url_prefix): Remove.
2514 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2515 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2516 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2517
2518 2002-10-15 Paul Eggert <eggert@twinsun.com>
2519
2520 Stop using the "enum_" trick for K&R-style function definitions;
2521 it confused me, and I was the author! Instead, assume that people
2522 who want to use K&R C compilers (when using these modules in GCC,
2523 perhaps?) will run ansi2knr.
2524
2525 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2526 All uses of "enum_" changed to "enum ".
2527 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2528 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2529
2530 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2531 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2532 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2533 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2534 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2535 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2536 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2537 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2538 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2539 Use function prototypes; this removes the need for declaring
2540 static functions simply to provide their prototypes.
2541 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2542 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2543 bitset_count_, bitset_create, bitset_dump, bitset_first,
2544 bitset_free, bitset_init, bitset_last, bitset_next,
2545 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2546 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2547 bitset_print, bitset_release_memory, bitset_toggle_,
2548 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2549 debug_bitset): Likewise.
2550 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2551 * lib/bitset_stats.c (bitset_log_histogram_print,
2552 bitset_percent_histogram_print, bitset_stats_and,
2553 bitset_stats_and_cmp, bitset_stats_and_or,
2554 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2555 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2556 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2557 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2558 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2559 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2560 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2561 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2562 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2563 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2564 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2565 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2566 bitset_stats_zero): Likewise.
2567 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2568 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2569 bitsetv_dump, debug_bitsetv): Likewise.
2570 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2571 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2572 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2573 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2574 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2575 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2576 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2577 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2578 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2579 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2580 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2581 Likewise.
2582 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2583 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2584 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2585 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2586 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2587 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2588 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2589 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2590 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2591 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2592 lbitset_xor_cmp, lbitset_zero): Likewise.
2593
2594 2002-10-14 Akim Demaille <akim@epita.fr>
2595
2596 Version 1.75.
2597
2598 2002-10-14 Akim Demaille <akim@epita.fr>
2599
2600 * tests/Makefile.am (maintainer-check-posix): New.
2601
2602 2002-10-14 Akim Demaille <akim@epita.fr>
2603
2604 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2605 member.
2606
2607 2002-10-14 Akim Demaille <akim@epita.fr>
2608
2609 * src/tables.c (table_ninf_remap): base -> tab.
2610 Reported by Matt Rosing.
2611
2612 2002-10-14 Paul Eggert <eggert@twinsun.com>
2613
2614 * tests/action.at, tests/calc.at, tests/conflicts.at,
2615 tests/cxx-type.at, tests/headers.at, tests/input.at,
2616 tests/regression.at, tests/synclines.at, tests/torture.at:
2617 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2618 so that the tests still work even if POSIXLY_CORRECT is set.
2619 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2620
2621 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2622 for portability to K&R hosts. Fix typo: signed char is guaranteed
2623 only to 127, not to 128.
2624 * data/glr.c (yysigned_char): New type.
2625 * data/yacc.c (yysigned_char): Likewise.
2626 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2627
2628 2002-10-13 Paul Eggert <eggert@twinsun.com>
2629
2630 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2631 true due to limited range of data type" warning from GCC.
2632
2633 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2634 by wrapping enum yytokentype's definition inside #ifndef
2635 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2636
2637 2002-10-13 Akim Demaille <akim@epita.fr>
2638
2639 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2640 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2641
2642 2002-10-13 Akim Demaille <akim@epita.fr>
2643
2644 * Makefile.maint: Update from Autoconf 2.54.
2645 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2646
2647 2002-10-13 Akim Demaille <akim@epita.fr>
2648
2649 * src/print.c (print_state): Separate the list of solved conflicts
2650 from the other items.
2651 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2652
2653 2002-10-13 Akim Demaille <akim@epita.fr>
2654
2655 Let nondeterministic skeletons be usable with deterministic
2656 tables.
2657
2658 With the patch, GAWK compiled by GCC without -O2 passes its test
2659 suite using a GLR parser driven by LALR tables. It fails with -O2
2660 because `struct stat' gives two different answers on my machine:
2661 88 (definition of an auto var) and later 96 (memset on this var).
2662 Hence the stack is badly corrumpted. The headers inclusion is to
2663 blame: if I move the awk.h inclusion before GLR's system header
2664 inclusion, the two struct stat have the same size.
2665
2666 * src/tables.c (pack_table): Always create conflict_table.
2667 (token_actions): Always create conflict_list.
2668 * data/glr.c (YYFLAG): Remove, unused.
2669
2670 2002-10-13 Akim Demaille <akim@epita.fr>
2671
2672 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2673 (O0FLAGS): New.
2674 (VALGRIND, GXX): New.
2675 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2676 * tests/bison.in: Run $PREBISON a pre-command.
2677 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2678 (maintainer-check-g++): New.
2679 * Makefile.am (maintainer-check): New.
2680
2681 2002-10-13 Akim Demaille <akim@epita.fr>
2682
2683 * data/glr.c: Formatting changes.
2684 Tweak some trace messages to match yacc.c's.
2685
2686 2002-10-13 Akim Demaille <akim@epita.fr>
2687
2688 GLR parsers sometimes raise parse errors instead of performing the
2689 default reduction.
2690 Reported by Charles-Henry de Boysson.
2691
2692 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2693 check the length of the traces when %glr.
2694 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2695 GLR's traces.
2696 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2697 Test GLR parsers.
2698 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2699 (yyltype): Remove the yy prefix from the member names.
2700 (yytable): Complete its comment.
2701 (yygetLRActions): Map error action number from YYTABLE from
2702 YYTABLE_NINF to 0.
2703 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2704 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2705 not satisfying as we could compare an YYACTION computed from
2706 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2707 only value for error actions.
2708 (yyreportParseError): In verbose parse error messages, don't issue
2709 `error' in the list of expected tokens.
2710 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2711 next action to perform to match glr.c's decoding.
2712 (yytable): Complete its comment.
2713
2714 2002-10-13 Paul Eggert <eggert@twinsun.com>
2715
2716 Fix problem reported by Henrik Grubbstroem in
2717 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2718 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2719 because the Bison parser reads the second action before reducing
2720 the first one.
2721 * src/scan-gram.l (rule_length): New static var.
2722 Use it to keep track of the rule length in the scanner, since
2723 we can't expect the parser to be in lock-step sync with the scanner.
2724 (handle_action_dollar, handle_action_at): Use this var.
2725 * tests/actions.at (Exotic Dollars): Test for the problem.
2726
2727 2002-10-12 Paul Eggert <eggert@twinsun.com>
2728
2729 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2730 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2731 Include <sys/time.h> when checking for clock_t and struct tms.
2732 Use same include order as source.
2733 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2734 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2735
2736 * lib/timevar.c: Update copyright date and clarify comments.
2737 (get_time) [IN_GCC]: Keep the GCC version for reference.
2738
2739 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2740 GCC version as of today, then merge Bison's changes.
2741 Change "GCC" to "Bison" in copyright notice. timevar.def's
2742 author is Akim, so change that too.
2743
2744 * src/reader.c (grammar_current_rule_check):
2745 Don't worry about the default action if $$ is untyped.
2746 Prevents bogus warnings reported by Jim Gifford in
2747 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2748
2749 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2750 * data/glr.c, data/lalr1.cc, data/yacc.c:
2751 Output token definitions before the first part of user declarations.
2752 Fixes compatibility problem reported by Jim Gifford for kbd in
2753 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2754
2755 2002-10-11 Paul Eggert <eggert@twinsun.com>
2756
2757 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2758 (yyparse): here. This undoes some of the 2002-07-25 change.
2759 Compatibility problem reported by Ralf S. Engelschall with
2760 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2761
2762 2002-10-11 Akim Demaille <akim@epita.fr>
2763
2764 * tests/regression.at Characters Escapes): New.
2765 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2766 characters.
2767 Reported by Jan Nieuwenhuizen.
2768
2769 2002-10-11 Akim Demaille <akim@epita.fr>
2770
2771 * po/id.po: New.
2772
2773 2002-10-10 Paul Eggert <eggert@twinsun.com>
2774
2775 Portability fixes for bitsets; this also avoids several GCC
2776 warnings.
2777
2778 * lib/abitset.c: Include <stddef.h>, for offsetof.
2779 * lib/lbitset.c: Likewise.
2780
2781 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2782 properly for vectors of objects. Do not assume that adding a
2783 header size to a multiple of a word size yields a value that is
2784 properly aligned for the whole union.
2785 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2786
2787 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2788 unique names for structures.
2789 * lib/ebitset.c (ebitset_bytes): Likewise.
2790 * lib/lbitset.c (lbitset_bytes): Likewise.
2791
2792 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2793 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2794 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2795 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2796 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2797 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2798 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2799 to improve the type-checking that GCC can do.
2800 * lib/bitset.c (bitset_op4_cmp): Likewise.
2801 * lib/bitset_stats.c (bitset_stats_count,
2802 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2803 bitset_stats_copy, bitset_stats_disjoint_p,
2804 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2805 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2806 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2807 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2808 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2809 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2810 bitset_stats_or_and_cmp): Likewise.
2811 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2812 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2813 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2814 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2815
2816 * lib/abitset.h: Include bitset.h, not bbitset.h.
2817 * lib/ebitset.h: Likewise.
2818 * lib/lbitset.h: Likewise.
2819
2820 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2821 All instances of parameters of type enum bitset_opts are now of
2822 type enum_bitset_opts, to conform to the C Standard, and similarly
2823 for enum_bitset_type.
2824 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2825 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2826
2827 Do not use "struct bitset_struct" to mean different things in
2828 different modules. Not only is this confusing, it violates
2829 the C Standard, which requires that structure types in different
2830 modules must be compatible if one is to be passed to the other.
2831 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2832 All instances of "struct bitset_struct *" replaced with "bitset".
2833 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2834 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2835 struct lbitset_struct, struct bitset_stats_struct): New types.
2836 All uses of struct bitset_struct changed to union bitset_union,
2837 etc.
2838 * lib/abitset.c (struct abitset_struct, abitset,
2839 struct bitset_struct): Remove.
2840 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2841 struct bitset_struct): Remove.
2842 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2843 bitset_struct): Remove.
2844 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2845 Likewise.
2846
2847 Do not call a function of type T using a call that assumes the
2848 function is of a different type U. Standard C requires that a
2849 function must be called with a type that is compatible with its
2850 definition.
2851 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2852 New decls.
2853 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2854 New functions.
2855 * lib/ebitset.c (PFV): Remove.
2856 * lib/lbitset.c (PFV): Likewise.
2857 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2858 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2859 decls.
2860 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2861 (ebitset_vtable): Use them.
2862 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2863 lbitset_xor): New functions.
2864 (lbitset_vtable): Use them.
2865
2866 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2867 Declare.
2868
2869 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2870 GCC warning.
2871 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2872 Use offsetof, for simplicity.
2873
2874 2002-10-06 Paul Eggert <eggert@twinsun.com>
2875
2876 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2877 the same width as int. This reapplies a hunk of the 2002-08-12 patch
2878 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
2879 which was inadvertently undone by the 2002-09-30 patch.
2880 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2881 the same width as int.
2882
2883 2002-10-04 Paul Eggert <eggert@twinsun.com>
2884
2885 Version 1.50.
2886
2887 * configure.ac (AC_INIT), NEWS: Increment version number.
2888
2889 * doc/bison.texinfo: Minor spelling, grammar, and white space
2890 fixes.
2891 (Symbols): Mention that any negative value returned from yylex
2892 signifies end-of-input. Warn about negative chars. Mention
2893 the portable Standard C character set.
2894
2895 The GNU coding standard says CFLAGS and YFLAGS are reserved
2896 for the installer to set.
2897 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2898 * src/Makefile.am (AM_CFLAGS): Likewise.
2899 (AM_YFLAGS): Renamed from YFLAGS.
2900
2901 Fix some MAX and MIN problems.
2902 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2903 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2904 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2905 * src/reader.c (reader): Use it.
2906
2907 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2908 POSIX 1003.1-2001 has removed fgrep.
2909
2910 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2911
2912 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2913 interpreted as signed.
2914 * lib/ebitset.c (ebitset_list): Fix bug.
2915
2916 2002-10-01 Paul Eggert <eggert@twinsun.com>
2917
2918 More fixes for 64-bit hosts and large bitsets.
2919
2920 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2921 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2922 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2923 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2924 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2925 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2926 bitset_count_): Likewise.
2927 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2928 bitset_first, bitset_last): Likewise.
2929 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2930 bitset_stats_list_reverse, bitset_stats_size,
2931 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2932 Likewise.
2933 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2934 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2935 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2936 bitsetv_reflexive_transitive_closure): Likewise.
2937 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2938 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2939 Likewise.
2940 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2941 Likewise.
2942
2943 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2944 Use size_t, not unsigned int, to count bytes.
2945 * lib/abitset.h (abitset_bytes): Likewise.
2946 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2947 Likewise.
2948 * lib/bitset.h (bitset_bytes): Likewise.
2949 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2950 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2951 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2952 * lib/ebitset.c (ebitset_bytes): Likewise.
2953 * lib/ebitset.h (ebitset_bytes): Likewise.
2954 * lib/lbitset.c (lbitset_bytes): Likewise.
2955 * lib/lbitset.h (lbitset_bytes): Likewise.
2956
2957 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2958 abitset_subset_p, abitset_disjoint_p, abitset_and,
2959 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2960 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2961 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2962 abitset_or_and, abitset_or_and_cmp):
2963 Use bitset_windex instead of unsigned int.
2964 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2965 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2966 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2967 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2968 Likewise.
2969 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
2970
2971 * lib/bitset.c (bitset_print):
2972 Use proper printf formats for widths of integer types.
2973 * lib/bitset_stats.c (bitset_percent_histogram_print,
2974 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2975 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2976 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2977 * lib/lbitset.c (lbitset_bytes): Likewise.
2978
2979 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2980 BITSET_SIZE_MAX): New macros.
2981 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2982 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2983 to BITSET_WINDEX_MAX.
2984
2985 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2986 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2987 since we now return the bitset_bindex type (not int).
2988
2989 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2990 when computing sizes.
2991 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2992
2993 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2994 and avoid cast to unsigned.
2995
2996 2002-09-30 Akim Demaille <akim@epita.fr>
2997
2998 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2999 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
3000 Updates from Michael Hayes.
3001
3002 2002-09-30 Art Haas <ahaas@neosoft.com>
3003
3004 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
3005 invocations.
3006 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
3007 defined.
3008
3009 2002-09-27 Akim Demaille <akim@epita.fr>
3010
3011 Version 1.49c.
3012
3013 2002-09-27 Akim Demaille <akim@epita.fr>
3014
3015 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
3016 (Because of AC_LIBSOURCE).
3017
3018 2002-09-27 Akim Demaille <akim@epita.fr>
3019
3020 Playing with Autoscan.
3021
3022 * configure.ac: Remove the old LIBOBJ tweaks.
3023 (AC_REPLACE_FUNCS): Add strrchr and strtol.
3024 * lib/strrchr.c: New.
3025 * lib/strtol.c: New, from the Coreutils 4.5.1.
3026
3027 2002-09-27 Akim Demaille <akim@epita.fr>
3028
3029 Playing with Autoscan.
3030
3031 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
3032 * lib/Makefile.am (libbison_a_SOURCES): No longer include
3033 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
3034 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
3035 Coreutils 4.5.1.
3036
3037 2002-09-24 Akim Demaille <akim@epita.fr>
3038
3039 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
3040 (Frequently Asked Questions, Parser Stack Overflow): New.
3041
3042 2002-09-13 Akim Demaille <akim@epita.fr>
3043
3044 Playing with autoscan.
3045
3046 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
3047 * src/files.c (skeleton_find): Remove, unused.
3048 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
3049 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
3050
3051 2002-09-13 Akim Demaille <akim@epita.fr>
3052
3053 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
3054 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
3055
3056 2002-09-13 Akim Demaille <akim@epita.fr>
3057
3058 * configure.ac: Require 2.54.
3059 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
3060 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
3061 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
3062 Remove, provided by Autoconf macros.
3063
3064 2002-09-12 Akim Demaille <akim@epita.fr>
3065
3066 * m4/prereq.m4: Update, from Coreutils 4.5.1.
3067
3068 2002-09-12 Akim Demaille <akim@epita.fr>
3069
3070 * m4/prereq.m4: Update, from Fileutils 4.1.5.
3071 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
3072 Reported by Martin Mokrejs.
3073
3074 2002-09-10 Akim Demaille <akim@epita.fr>
3075
3076 * src/parse-gram.y: Associate a human readable string to each
3077 token type.
3078 * tests/regression.at (Invalid inputs): Adjust.
3079
3080 2002-09-10 Gary V. Vaughan <gary@gnu.org>
3081
3082 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
3083 with an Autoconf-2.5x style configure.ac.
3084
3085 2002-09-06 Paul Eggert <eggert@twinsun.com>
3086
3087 * doc/bison.texinfo (Conditions): Make explicit that the GPL
3088 exception applies only to yacc.c. This is a modification of a
3089 patch originally suggested by Akim Demaille.
3090
3091 2002-09-06 Akim Demaille <akim@epita.fr>
3092
3093 * data/c.m4 (b4_copyright): Move the GPL exception comment from
3094 here to...
3095 * data/yacc.c: here.
3096
3097 * data/lalr1.cc (struct yyltype): Don't define it, since we use
3098 LocationType.
3099 (b4_ltype): Default to yy::Location from location.hh.
3100
3101 2002-09-04 Jim Meyering <jim@meyering.net>
3102
3103 * data/yacc.c: Guard the declaration of yytoknum also with
3104 `#ifdef YYPRINT', so it is declared only when used.
3105
3106 2002-09-04 Akim Demaille <akim@epita.fr>
3107
3108 * configure.in: Rename as...
3109 * configure.ac: this.
3110 Bump to 1.49c.
3111
3112 2002-09-04 Akim Demaille <akim@epita.fr>
3113
3114 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
3115 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
3116 translate maintainer only messages.
3117
3118 2002-08-12 Paul Eggert <eggert@twinsun.com>
3119
3120 Version 1.49b.
3121
3122 * Makefile.am (SUBDIRS): Remove intl.
3123 (DISTCLEANFILES): Remove.
3124 * NEWS: Mention that GNU M4 is now required. Clarify what is
3125 meant by "larger grammars". Mention the pt_BR translation.
3126 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
3127 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
3128 Bump version from 0.11.2 to 0.11.5.
3129 (BISON_PREREQ_STAGE): Remove.
3130 (AM_GNU_GETTEXT): Use external gettext.
3131 (AC_OUTPUT): Remove intl/Makefile.
3132
3133 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
3134
3135 * data/glr.c: Include string.h, for strlen.
3136 (yyreportParseError): Use size_t for yysize.
3137 (yy_yypstack): No longer nested inside yypstates, as nested
3138 functions are not portable. Do not assume size_t is the
3139 same width as int.
3140 (yypstates): Do not assume that ptrdiff_t is the same width
3141 as int, and similarly for yyposn and YYINDEX.
3142
3143 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
3144
3145 * lib/Makefile.am (INCLUDES): Do not include from the intl
3146 directory, which has been removed.
3147 * src/Makefile.am (INCLUDES): Likewise.
3148
3149 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
3150 (bitsets_sources, additional_bitsets_sources, timevars_sources):
3151 New vars.
3152
3153 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
3154 * tests/Makefile.am (EXTRA_DIST): Likewise.
3155
3156 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
3157 Do not assume that bitset_windex is the same width as unsigned.
3158
3159 * lib/abitset.c (abitset_unused_clear): Do not assume that
3160 bitset_word is the same width as int.
3161 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
3162 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
3163 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
3164 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
3165 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
3166
3167 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
3168 portability to one's complement hosts!).
3169 * lib/ebitset.c (ebitset_op1): Likewise.
3170 * lib/lbitset.c (lbitset_op1): Likewise.
3171
3172 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
3173 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
3174 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
3175 Sync with fileutils.
3176 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
3177 lib/gettext.h: Sync with diffutils.
3178
3179 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
3180 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
3181
3182 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
3183 PROTOTYPES to check for prototypes, and "defined __STDC__" to
3184 check for void *.
3185
3186 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
3187 size_t; the old version tried to do this but casted improperly.
3188 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
3189 (bitset_test): Now returns int, not unsigned long.
3190
3191 * lib/bitset_stats.c: Include "gettext.h".
3192 (_): New macro.
3193 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
3194 name locals "index", as it generates unnecessary warnings on some
3195 hosts that have an "index" function.
3196
3197 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
3198 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
3199 they need translation.
3200 * src/LR0.c (state_list_append, new_itemsets, get_state,
3201 append_states, generate_states): Likewise.
3202 * src/assoc.c (assoc_to_string): Likewise.
3203 * src/closure.c (print_closure, set_firsts, closure): Likewise.
3204 * src/gram.c (grammar_dump): Likewise.
3205 * src/injections.c (injections_compute): Likewise.
3206 * src/lalr.c (lookaheads_print): Likewise.
3207 * src/relation.c (relation_transpose): Likewise.
3208 * src/scan-gram.l: Likewise.
3209 * src/tables.c (table_grow, pack_vector): Likewise.
3210
3211 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
3212 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
3213 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
3214 * m4/mbstate_t.m4: Sync with fileutils.
3215 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
3216
3217 * po/LINGUAS: Add pt_BR.
3218 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
3219 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
3220 lib/timevar.c.
3221 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
3222 manual recommends.
3223 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
3224
3225 * src/complain.c (strerror_r): Remove decl; not needed.
3226 (strerror): Use same pattern as ../lib/error.c.
3227
3228 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
3229
3230 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
3231
3232 * src/main.c (main): Cast result of bindtextdomain and textdomain
3233 to void, to avoid a GCC warning when --disable-nls is in effect.
3234
3235 * src/scan-gram.l: Use strings rather than escapes when possible,
3236 to minimize the number of warnings from xgettext.
3237 (handle_action_dollar, handle_action_at): Don't use isdigit,
3238 as it mishandles negative chars and it may not work as expected
3239 outside the C locale.
3240
3241 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
3242 this is a GCC extension and is not portable to other compilers.
3243
3244 * src/system.h (alloca): Use same pattern as ../lib/error.c.
3245 Do not include <ctype.h>; no longer needed.
3246 Do not include <malloc.h>; no longer needed (and generates
3247 warnings on OpenBSD 3.0).
3248
3249 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
3250 it's not portable.
3251
3252 * tests/regression.at: Do not use 'cc -c input.c -o input';
3253 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
3254
3255 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
3256 exit status as failure, not just exit status 1. Sun C exits
3257 with status 2 sometimes.
3258
3259 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
3260 Use it for the two large tests.
3261
3262 2002-08-02 Akim Demaille <akim@epita.fr>
3263
3264 * src/conflicts.c (conflicts_output): Don't output rules never
3265 reduced here, since anyway that computation doesn't work.
3266 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
3267 (rule_useless_p, rule_never_reduced_p): New.
3268 (grammar_rules_partial_print): Use a filter instead of a range.
3269 Display the title only if needed.
3270 (grammar_rules_print): Adjust.
3271 (grammar_rules_never_reduced_report): New.
3272 * src/tables.c (action_row): Move the computation of rules never
3273 reduced to...
3274 (token_actions): here.
3275 * src/main.c (main): Make the parser before making the report, so
3276 that rules never reduced are computed.
3277 Call grammar_rules_never_reduced_report.
3278 * src/print.c (print_results): Report rules never reduced.
3279 * tests/conflicts.at, tests/reduce.at: Adjust.
3280
3281 2002-08-01 Akim Demaille <akim@epita.fr>
3282
3283 Instead of attaching lookaheads and duplicating the rules being
3284 reduced by a state, attach the lookaheads to the reductions.
3285
3286 * src/state.h (state_t): Remove the `lookaheads',
3287 `lookaheads_rule' member.
3288 (reductions_t): Add a `lookaheads' member.
3289 Use a regular array for the `rules'.
3290 * src/state.c (reductions_new): Initialize the lookaheads member
3291 to 0.
3292 (state_rule_lookaheads_print): Adjust.
3293 * src/state.h, src/state.c (state_reductions_find): New.
3294 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
3295 (count_rr_conflicts): Adjust.
3296 * src/lalr.c (LArule): Remove.
3297 (add_lookback_edge): Adjust.
3298 (state_lookaheads_count): New.
3299 (states_lookaheads_initialize): Merge into...
3300 (initialize_LA): this.
3301 (lalr_free): Adjust.
3302 * src/main.c (main): Don't free nullable and derives too early: it
3303 is used by --verbose.
3304 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
3305
3306 2002-08-01 Akim Demaille <akim@epita.fr>
3307
3308 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
3309 `rule_number_t**'.
3310 (set_derives, free_derives): Rename as...
3311 (derives_compute, derives_free): this.
3312 Adjust all dependencies.
3313 * src/nullable.c (set_nullable, free_nullable): Rename as...
3314 (nullable_compute, nullable_free): these.
3315 (rule_list_t): Store rule_t *, not rule_number_t.
3316 * src/state.c (state_rule_lookaheads_print): Directly compare rule
3317 pointers, instead of their numbers.
3318 * src/main.c (main): Call nullable_free, and derives_free earlier,
3319 as they were lo longer used.
3320
3321 2002-08-01 Akim Demaille <akim@epita.fr>
3322
3323 * lib/timevar.c (get_time): Include children time.
3324 * src/lalr.h (LA, LArule): Don't export them: used with the
3325 state_t.
3326 * src/lalr.c (LA, LArule): Static.
3327 * src/lalr.h, src/lalr.c (lalr_free): New.
3328 * src/main.c (main): Call it.
3329 * src/tables.c (pack_vector): Check whether loc is >= to the
3330 table_size, not >.
3331 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
3332 (tables_generate): do it, since that's also it which allocates
3333 them.
3334 Don't free LA and LArule, main does.
3335
3336 2002-07-31 Akim Demaille <akim@epita.fr>
3337
3338 Separate parser tables computation and output.
3339
3340 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
3341 (conflict_list, conflict_list_cnt, table, check, table_ninf)
3342 (yydefgoto, yydefact, high): Move to...
3343 * src/tables.h, src/tables.c: here.
3344 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3345 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3346 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
3347 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
3348 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
3349 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
3350 (action_row, save_row, token_actions, save_column, default_goto)
3351 (goto_actions, sort_actions, matching_state, pack_vector)
3352 (table_ninf_remap, pack_table, prepare_actions): Move to...
3353 * src/tables.c: here.
3354 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
3355 * src/output.c (token_actions, output_base, output_conflicts)
3356 (output_check): Merge into...
3357 (prepare_actions): this.
3358 (actions_output): Rename as...
3359 (user_actions_output): this.
3360 * src/main.c (main): Call tables_generate and tables_free.
3361
3362 2002-07-31 Akim Demaille <akim@epita.fr>
3363
3364 Steal GCC's --time-report support.
3365
3366 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
3367 stolen/adjusted from GCC.
3368 * m4/stage.m4: Remove time related checks.
3369 * m4/timevar.m4: New.
3370 * configure.in: Adjust.
3371 * src/system.h: Adjust to using timevar.h.
3372 * src/getargs.h, src/getargs.c: Support trace_time for
3373 --trace=time.
3374 * src/main.c (stage): Remove.
3375 (main): Replace `stage' invocations with timevar calls.
3376 * src/output.c: Insert pertinent timevar calls.
3377
3378 2002-07-31 Akim Demaille <akim@epita.fr>
3379
3380 Let --trace have arguments.
3381
3382 * src/getargs.h (enum trace_e): New.
3383 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
3384 (long_options, short_options): --trace/-T takes an optional
3385 argument.
3386 Change all the uses of trace_flag to reflect the new flags.
3387 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
3388
3389 Strengthen `stage' portability.
3390
3391 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3392 * configure.in: Use it.
3393 Don't check for malloc.h and sys/times.h.
3394 * src/system.h: Include them when appropriate.
3395 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3396 times and struct tms are available.
3397
3398 2002-07-30 Akim Demaille <akim@epita.fr>
3399
3400 In verbose parse error message, don't report `error' as an
3401 expected token.
3402 * tests/actions.at (Printers and Destructors): Adjust.
3403 * tests/calc.at (Calculator $1): Adjust.
3404 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3405 error message, do not report the parser accepts the error token in
3406 that state.
3407
3408 2002-07-30 Akim Demaille <akim@epita.fr>
3409
3410 Normalize conflict related messages.
3411
3412 * src/complain.h, src/complain.c (warn, complain): New.
3413 * src/conflicts.c (conflicts_print): Use them.
3414 (conflict_report_yacc): New, extracted from...
3415 (conflicts_print): here.
3416 * tests/conflicts.at, tests/existing.at: Adjust.
3417
3418 2002-07-30 Akim Demaille <akim@epita.fr>
3419
3420 Report rules which are never reduced by the parser: those hidden
3421 by conflicts.
3422
3423 * src/LR0.c (save_reductions): Don't make the final state too
3424 different: save its reduction (accept) instead of having a state
3425 without any action (no shift or goto, no reduce).
3426 Note: the final state is now a ``regular'' state, i.e., the
3427 parsers now contain `reduce 0' as default reduction.
3428 Nevertheless, since they decide to `accept' when yystate =
3429 final_state, they still will not reduce rule 0.
3430 * src/print.c (print_actions, print_reduction): Adjust.
3431 * src/output.c (action_row): Track reduced rules.
3432 (token_actions): Report rules never reduced.
3433 * tests/conflicts.at, tests/regression.at: Adjust.
3434
3435 2002-07-30 Akim Demaille <akim@epita.fr>
3436
3437 `stage' was accidently included in a previous patch.
3438 Initiate its autoconfiscation.
3439
3440 * configure.in: Look for malloc.h and sys/times.h.
3441 * src/main.c (stage): Adjust.
3442 Report only when trace_flag.
3443
3444 2002-07-29 Akim Demaille <akim@epita.fr>
3445
3446 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3447 state_number_t.
3448 (errs_t): symbol_t*, not symbol_number_t.
3449 (reductions_t): rule_t*, not rule_number_t.
3450 (FOR_EACH_SHIFT): New.
3451 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3452 * src/print.c, src/print_graph.c: Adjust.
3453
3454 2002-07-29 Akim Demaille <akim@epita.fr>
3455
3456 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3457
3458 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3459 (endtoken, accept): these.
3460 * src/reader.c (reader): Set endtoken's default tag to "$end".
3461 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3462 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3463 Adjust.
3464
3465 2002-07-29 Akim Demaille <akim@epita.fr>
3466
3467 * src/reduce.c (reduce_grammar): When the language is empty,
3468 complain about the start symbol, not the axiom.
3469 Use its location.
3470 * tests/reduce.at (Empty Language): New.
3471
3472 2002-07-26 Akim Demaille <akim@epita.fr>
3473
3474 * src/reader.h, src/reader.c (gram_error): ... can't get
3475 yycontrol without making too strong assumptions on the parser
3476 itself.
3477 * src/output.c (prepare_tokens): Use the real 0th value of
3478 token_translations instead of `0'.
3479 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3480 visible here.
3481 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3482 for the time being: %locations ought to provide it to yyerror.
3483
3484 2002-07-25 Akim Demaille <akim@epita.fr>
3485
3486 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3487 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3488 * tests/regression.at (Web2c Actions): Adjust.
3489
3490 2002-07-25 Akim Demaille <akim@epita.fr>
3491
3492 Stop storing rules from 1 to nrules + 1.
3493
3494 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3495 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3496 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3497 Iterate from 0 to nrules.
3498 Use rule_number_as_item_number and item_number_as_rule_number.
3499 Adjust to `derive' now containing possibly 0.
3500 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3501 Handle the `- 1' part in rule numbers from/to item numbers.
3502 * src/conflicts.c (log_resolution): Fix the message which reversed
3503 shift and reduce.
3504 * src/output.c (action_row): Initialize default_rule to -1.
3505 (token_actions): Adjust.
3506 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3507 expected output.
3508 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3509
3510 2002-07-25 Akim Demaille <akim@epita.fr>
3511
3512 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3513 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3514 (b4_c_knr_arg_decl): New.
3515 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3516 yyreport_parse_error.
3517
3518 2002-07-25 Akim Demaille <akim@epita.fr>
3519
3520 * data/yacc.c (yyreport_parse_error): New, extracted from...
3521 (yyparse): here.
3522 (yydestruct, yysymprint): Move above yyparse.
3523 Be K&R compliant.
3524
3525 2002-07-25 Akim Demaille <akim@epita.fr>
3526
3527 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3528 replace...
3529 (b4_sint_type, b4_uint_type): these.
3530 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3531 * tests/regression.at (Web2c Actions): Adjust.
3532
3533 2002-07-25 Akim Demaille <akim@epita.fr>
3534
3535 * src/gram.h (TIEM_NUMBER_MAX): New.
3536 (item_number_of_rule_number, rule_number_of_item_number): Rename
3537 as...
3538 (rule_number_as_item_number, item_number_as_rule_number): these.
3539 Adjust dependencies.
3540 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3541 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3542 (symbol_number_to_vector_number): New.
3543 (order): Of vector_number_t* type.
3544 (base_t, BASE_MAX, BASE_MIN): New.
3545 (froms, tos, width, pos, check): Of base_t type.
3546 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3547 (actrow): Of action_number_t type.
3548 (conflrow): Of unsigned int type.
3549 (table_ninf, base_ninf): New.
3550 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3551 (muscle_insert_int_table, muscle_insert_base_table)
3552 (muscle_insert_rule_number_table): New.
3553 (prepare_tokens): Output `toknum' as int_table.
3554 (action_row): Returns a rule_number_t.
3555 Use ACTION_MIN, not SHRT_MIN.
3556 (token_actions): yydefact is rule_number_t*.
3557 (table_ninf_remap): New.
3558 (pack_table): Use it for `base' and `table'.
3559 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3560 replaced with...
3561 (YYPACT_NINF, YYTABLE_NINF): these.
3562 (yypact, yytable): Compute their types instead of hard-coded
3563 `short'.
3564 * tests/regression.at (Web2c Actions): Adjust.
3565
3566 2002-07-19 Akim Demaille <akim@epita.fr>
3567
3568 * src/scan-gram.l (id): Can start with an underscore.
3569
3570 2002-07-16 Akim Demaille <akim@epita.fr>
3571
3572 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3573 Adjust all former `associativity' dependencies.
3574 * src/symtab.c (symbol_new): Default associativity is `undef', not
3575 `right'.
3576 (symbol_check_alias_consistence): Adjust.
3577
3578 2002-07-09 Akim Demaille <akim@epita.fr>
3579
3580 * doc/bison.texinfo: Properly set the ``header'' part.
3581 Use @dircategory ``GNU programming tools'' as per Texinfo's
3582 documentation.
3583 Use @copying.
3584
3585 2002-07-09 Akim Demaille <akim@epita.fr>
3586
3587 * lib/quotearg.h: Protect against multiple inclusions.
3588 * src/location.h (location_t): Add a `file' member.
3589 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3590 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3591 `error_one_per_line' support.
3592
3593 2002-07-09 Akim Demaille <akim@epita.fr>
3594
3595 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3596 * src/reader.c (lineno): Remove.
3597 Adjust all dependencies.
3598 (get_merge_function): Take a location and use complain_at.
3599 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3600 * tests/regression.at (Invalid inputs, Mixing %token styles):
3601 Adjust.
3602
3603 2002-07-09 Akim Demaille <akim@epita.fr>
3604
3605 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3606 recovery rule, and forbid extensions when --yacc.
3607 (gram_error): Use complain_at.
3608 * src/reader.c (reader): Exit if there were parse errors.
3609
3610 2002-07-09 Akim Demaille <akim@epita.fr>
3611
3612 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3613 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3614 Reported by R Blake <blakers@mac.com>.
3615
3616 2002-07-09 Akim Demaille <akim@epita.fr>
3617
3618 * data/yacc.c: Output the copyright notive in the header.
3619
3620 2002-07-03 Akim Demaille <akim@epita.fr>
3621
3622 * src/output.c (froms, tos): Are state_number_t.
3623 (save_column): sp, sp1, and sp2 are state_number_t.
3624 (prepare): Rename `final' as `final_state_number', `nnts' as
3625 `nterms_number', `nrules' as `rules_number', `nstates' as
3626 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3627 unused.
3628 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3629 * data/lalr1.cc (nsym_): Remove, unused.
3630
3631 2002-07-03 Akim Demaille <akim@epita.fr>
3632
3633 * src/lalr.h, src/lalr.c (goto_number_t): New.
3634 * src/lalr.c (goto_list_t): New.
3635 Propagate them.
3636 * src/nullable.c (rule_list_t): New.
3637 Propagate.
3638 * src/types.h: Remove.
3639
3640 2002-07-03 Akim Demaille <akim@epita.fr>
3641
3642 * src/closure.c (print_fderives): Use rule_rhs_print.
3643 * src/derives.c (print_derives): Use rule_rhs_print.
3644 (rule_list_t): New, replaces `shorts'.
3645 (set_derives): Add comments.
3646 * tests/sets.at (Nullable, Firsts): Adjust.
3647
3648 2002-07-03 Akim Demaille <akim@epita.fr>
3649
3650 * src/output.c (prepare_actions): Free `tally' and `width'.
3651 (prepare_actions): Allocate and free `order'.
3652 * src/symtab.c (symbols_free): Free `symbols'.
3653 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3654 * src/output.c (m4_invoke): Move to...
3655 * src/scan-skel.l: here.
3656 (<<EOF>>): Close yyout, and free its name.
3657
3658 2002-07-03 Akim Demaille <akim@epita.fr>
3659
3660 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3661
3662 * src/LR0.c (new_state): Merge into...
3663 (state_list_append): this.
3664 (new_states): Merge into...
3665 (generate_states): here.
3666 (set_states): Don't ensure a proper `errs' state member here, do it...
3667 * src/conflicts.c (conflicts_solve): here.
3668 * src/state.h, src/state.c: Comment changes.
3669 (state_t): Rename member `shifts' as `transitions'.
3670 Adjust all dependencies.
3671 (errs_new): For consistency, also take the values as argument.
3672 (errs_dup): Remove.
3673 (state_errs_set): New.
3674 (state_reductions_set, state_transitions_set): Assert that no
3675 previous value was assigned.
3676 (state_free): New.
3677 (states_free): Use it.
3678 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3679 temporary storage: use `errs' and `nerrs' as elsewhere.
3680 (set_conflicts): Allocate and free this `errs'.
3681
3682 2002-07-02 Akim Demaille <akim@epita.fr>
3683
3684 * lib/libiberty.h: New.
3685 * lib: Update the bitset implementation from upstream.
3686 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3687 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3688 * src/main.c: Adjust bitset stats calls.
3689
3690 2002-07-01 Paul Eggert <eggert@twinsun.com>
3691
3692 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3693 char, so that negative chars don't collide with $.
3694
3695 2002-06-30 Akim Demaille <akim@epita.fr>
3696
3697 Have the GLR tests be `warning' checked, and fix the warnings.
3698
3699 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3700 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3701 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3702 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3703 (yyaddDeferredAction): static.
3704 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3705 (yyreportParseError): yyprefix is const.
3706 yytokenp is used only when verbose.
3707 (yy__GNUC__): Replace with __GNUC__.
3708 (yypdumpstack): yyi is size_t.
3709 (yypreference): Un-yy local variables and arguments, to avoid
3710 clashes with `yyr1'. Anyway, we are not in the user name space.
3711 (yytname_size): be an int, as is compared with ints.
3712 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3713 Use them.
3714 * tests/cxx-gram.at: Use quotation to protect $1.
3715 Use AT_COMPILE to enable warnings hunts.
3716 Prototype yylex and yyerror.
3717 `Use' argc.
3718 Include `string.h', not `strings.h'.
3719 Produce and prototype stmtMerge only when used.
3720 yylex takes a location.
3721
3722 2002-06-30 Akim Demaille <akim@epita.fr>
3723
3724 We spend a lot of time in quotearg, in particular when --verbose.
3725
3726 * src/symtab.c (symbol_get): Store a quoted version of the key.
3727 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3728 Adjust all callers.
3729
3730 2002-06-30 Akim Demaille <akim@epita.fr>
3731
3732 * src/state.h (reductions_t): Rename member `nreds' as num.
3733 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3734 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3735
3736 2002-06-30 Akim Demaille <akim@epita.fr>
3737
3738 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3739 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3740 (shifts_to): Rename as...
3741 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3742 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3743 (TRANSITION_IS_DISABLED, transitions_to): these.
3744
3745 2002-06-30 Akim Demaille <akim@epita.fr>
3746
3747 * src/print.c (print_shifts, print_gotos): Merge into...
3748 (print_transitions): this.
3749 (print_transitions, print_errs, print_reductions): Align the
3750 lookaheads columns.
3751 (print_core, print_transitions, print_errs, print_state,
3752 print_grammar): Output empty lines separator before, not after.
3753 (state_default_rule_compute): Rename as...
3754 (state_default_rule): this.
3755 * tests/conflicts.at (Defaulted Conflicted Reduction),
3756 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3757 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3758
3759 2002-06-30 Akim Demaille <akim@epita.fr>
3760
3761 Display items as we display rules.
3762
3763 * src/gram.h, src/gram.c (rule_lhs_print): New.
3764 * src/gram.c (grammar_rules_partial_print): Use it.
3765 * src/print.c (print_core): Likewise.
3766 * tests/conflicts.at (Defaulted Conflicted Reduction),
3767 (Unresolved SR Conflicts): Adjust.
3768 (Unresolved SR Conflicts): Adjust and rename as...
3769 (Resolved SR Conflicts): this, as was meant.
3770 * tests/regression.at (Web2c Report): Adjust.
3771
3772 2002-06-30 Akim Demaille <akim@epita.fr>
3773
3774 * src/print.c (state_default_rule_compute): New, extracted from...
3775 (print_reductions): here.
3776 Pessimize, but clarify the code.
3777 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3778
3779 2002-06-30 Akim Demaille <akim@epita.fr>
3780
3781 * src/output.c (action_row): Let default_rule be always a rule
3782 number.
3783
3784 2002-06-30 Akim Demaille <akim@epita.fr>
3785
3786 * src/closure.c (print_firsts, print_fderives, closure):
3787 Use BITSET_EXECUTE.
3788 * src/lalr.c (lookaheads_print): Likewise.
3789 * src/state.c (state_rule_lookaheads_print): Likewise.
3790 * src/print_graph.c (print_core): Likewise.
3791 * src/print.c (print_reductions): Likewise.
3792 * src/output.c (action_row): Likewise.
3793 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3794
3795 2002-06-30 Akim Demaille <akim@epita.fr>
3796
3797 * src/print_graph.c: Use report_flag.
3798
3799 2002-06-30 Akim Demaille <akim@epita.fr>
3800
3801 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3802 to...
3803 * src/relation.h, src/relation.c (traverse, relation_digraph)
3804 (relation_print, relation_transpose): New.
3805
3806 2002-06-30 Akim Demaille <akim@epita.fr>
3807
3808 * src/state.h, src/state.c (shifts_to): New.
3809 * src/lalr.c (build_relations): Use it.
3810
3811 2002-06-30 Akim Demaille <akim@epita.fr>
3812
3813 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3814 (item_number_of_rule_number, rule_number_of_item_number): New.
3815 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3816 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3817 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3818 Propagate their use.
3819 Much remains to be done, in particular wrt `shorts' from types.h.
3820
3821 2002-06-30 Akim Demaille <akim@epita.fr>
3822
3823 * src/symtab.c (symbol_new): Initialize the `printer' member.
3824
3825 2002-06-30 Akim Demaille <akim@epita.fr>
3826
3827 * src/LR0.c (save_reductions): Remove, replaced by...
3828 * src/state.h, src/state.c (state_reductions_set): New.
3829 (reductions, errs): Rename as...
3830 (reductions_t, errs_t): these.
3831 Adjust all dependencies.
3832
3833 2002-06-30 Akim Demaille <akim@epita.fr>
3834
3835 * src/LR0.c (state_list_t, state_list_append): New.
3836 (first_state, last_state): Now symbol_list_t.
3837 (this_state): Remove.
3838 (new_itemsets, append_states, save_reductions): Take a state_t as
3839 argument.
3840 (set_states, generate_states): Adjust.
3841 (save_shifts): Remove, replaced by...
3842 * src/state.h, src/state.c (state_shifts_set): New.
3843 (shifts): Rename as...
3844 (shifts_t): this.
3845 Adjust all dependencies.
3846 * src/state.h (state_t): Remove the `next' member.
3847
3848 2002-06-30 Akim Demaille <akim@epita.fr>
3849
3850 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3851 escaped in slot 0.
3852
3853 2002-06-30 Akim Demaille <akim@epita.fr>
3854
3855 Use hash.h for the state hash table.
3856
3857 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3858 (allocate_storage): Use state_hash_new.
3859 (free_storage): Use state_hash_free.
3860 (new_state, get_state): Adjust.
3861 * src/lalr.h, src/lalr.c (states): Move to...
3862 * src/states.h (state_t): Remove the `link' member, no longer
3863 used.
3864 * src/states.h, src/states.c: here.
3865 (state_hash_new, state_hash_free, state_hash_lookup)
3866 (state_hash_insert, states_free): New.
3867 * src/states.c (state_table, state_compare, state_hash): New.
3868 * src/output.c (output_actions): Do not free states now, since we
3869 still need to know the final_state number in `prepare', called
3870 afterwards. Do it...
3871 * src/main.c (main): here: call states_free after `output'.
3872
3873 2002-06-30 Akim Demaille <akim@epita.fr>
3874
3875 * src/state.h, src/state.c (state_new): New, extracted from...
3876 * src/LR0.c (new_state): here.
3877 * src/state.h (STATE_ALLOC): Move to...
3878 * src/state.c: here.
3879 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3880 * src/state.h, src/state.c: here.
3881
3882 2002-06-30 Akim Demaille <akim@epita.fr>
3883
3884 * src/reader.c (gensym): Rename as...
3885 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3886 (getsym): Rename as...
3887 (symbol_get): this.
3888
3889 2002-06-30 Akim Demaille <akim@epita.fr>
3890
3891 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3892 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3893 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3894 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3895
3896 2002-06-30 Akim Demaille <akim@epita.fr>
3897
3898 Make the test suite pass with warnings checked.
3899
3900 * tests/actions.at (Printers and Destructors): Improve.
3901 Avoid unsigned vs. signed issues.
3902 * tests/calc.at: Don't exercise the scanner here, do it...
3903 * tests/input.at (Torturing the Scanner): here.
3904
3905 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3906
3907 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
3908 reorganize first lines parallel to yacc.c.
3909
3910 2002-06-28 Akim Demaille <akim@epita.fr>
3911
3912 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3913 (b4_token_enum, b4_token_defines): New, factored from...
3914 * data/lalr1.cc, data/yacc.c, glr.c: here.
3915
3916 2002-06-28 Akim Demaille <akim@epita.fr>
3917
3918 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3919 unused variables.
3920 * src/output.c (merger_output): static.
3921
3922 2002-06-28 Akim Demaille <akim@epita.fr>
3923
3924 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3925 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3926 pacify GCC.
3927 * src/output.c (save_row): Initialize all the variables to pacify GCC.
3928
3929 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3930
3931 Accumulated changelog for new GLR parsing features.
3932
3933 * src/conflicts.c (count_total_conflicts): Change name to
3934 conflicts_total_count.
3935 * src/conflicts.h: Ditto.
3936 * src/output.c (token_actions): Use the new name.
3937 (output_conflicts): Change conflp => conflict_list_heads, and
3938 confl => conflict_list for better readability.
3939 * data/glr.c: Use the new names.
3940 * NEWS: Add self to GLR announcement.
3941
3942 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3943
3944 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3945 Akim Demaille.
3946
3947 * data/bison.glr: Change name to glr.c
3948 * data/glr.c: Renamed from bison.glr.
3949 * data/Makefile.am: Add glr.c
3950
3951 * src/getargs.c:
3952
3953 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3954 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
3955
3956 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3957
3958 * data/bison.glr: Be sure to restore the
3959 current #line when returning to the skeleton contents after having
3960 exposed the input file's #line.
3961
3962 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3963
3964 * data/bison.glr: Bring up to date with changes to bison.simple.
3965
3966 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3967
3968 * data/bison.glr: Correct definitions that use b4_prefix.
3969 Various reformatting.
3970 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3971 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3972 yytokenp argument; now part of stack.
3973 (yychar): Define to behave as documented.
3974 (yyclearin): Ditto.
3975
3976 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3977
3978 * src/reader.h: Add declaration for free_merger_functions.
3979
3980 * src/reader.c (merge_functions): New variable.
3981 (get_merge_function): New function.
3982 (free_merger_functions): New function.
3983 (readgram): Check for %prec that is not followed by a symbol.
3984 Handle %dprec and %merge declarations.
3985 (packgram): Initialize dprec and merger fields in rules array.
3986
3987 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3988 conflict_list_cnt, conflict_list_free): New variables.
3989 (table_grow): Also grow conflict_table.
3990 (prepare_rules): Output dprec and merger tables.
3991 (conflict_row): New function.
3992 (action_row): Output conflict lists for GLR parser. Don't use
3993 default reduction in conflicted states for GLR parser so that there
3994 are spaces for the conflict lists.
3995 (save_row): Also save conflict information.
3996 (token_actions): Allocate conflict list.
3997 (merger_output): New function.
3998 (pack_vector): Pack conflict table, too.
3999 (output_conflicts): New function to output yyconflp and yyconfl.
4000 (output_check): Allocate conflict_tos.
4001 (output_actions): Output conflict tables, also.
4002 (output_skeleton): Output b4_mergers definition.
4003 (prepare): Output b4_max_rhs_length definition.
4004 Use 'bison.glr' as default skeleton for GLR parsers.
4005
4006 * src/gram.c (glr_parser): New flag.
4007 (grammar_free): Call free_merger_functions.
4008
4009 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
4010 all pairs of conflicting reductions, rather than just all tokens
4011 causing conflicts. Needed to size conflict tables.
4012 (conflicts_output): Modify call to count_rr_conflicts for new
4013 interface.
4014 (conflicts_print): Ditto.
4015 (count_total_conflicts): New function.
4016
4017 * src/reader.h (merger_list): New type.
4018 (merge_functions): New variable.
4019
4020 * src/lex.h (tok_dprec, tok_merge): New token types.
4021
4022 * src/gram.h (rule_s): Add dprec and merger fields.
4023 (glr_parser): New flag.
4024
4025 * src/conflicts.h (count_total_conflicts): New function.
4026
4027 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
4028
4029 * doc/bison.texinfo (Generalized LR Parsing): New section.
4030 (GLR Parsers): New section.
4031 (Language and Grammar): Mention GLR parsing.
4032 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
4033 Correct typo ("tge" -> "the").
4034
4035 * data/bison.glr: New skeleton for GLR parsing.
4036
4037 * tests/cxx-gram.at: New tests for GLR parsing.
4038
4039 * tests/testsuite.at: Include cxx-gram.at.
4040
4041 * tests/Makefile.am: Add cxx-gram.at.
4042
4043 * src/parse-gram.y:
4044
4045 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
4046
4047 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
4048
4049 2002-06-27 Akim Demaille <akim@epita.fr>
4050
4051 * src/options.h, src/options.c: Remove.
4052 * src/getargs.c (short_options, long_options): New.
4053
4054 2002-06-27 Akim Demaille <akim@epita.fr>
4055
4056 * data/bison.simple, data/bison.c++: Rename as...
4057 * data/yacc.c, data/lalr1.cc: these.
4058 * doc/bison.texinfo (Environment Variables): Remove.
4059
4060 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
4061
4062 * src/getargs.c (report_argmatch): Initialize strtok().
4063
4064 2002-06-20 Akim Demaille <akim@epita.fr>
4065
4066 * data/bison.simple (b4_symbol_actions): New, replaces...
4067 (b4_symbol_destructor, b4_symbol_printer): these.
4068 (yysymprint): Be sure to call YYPRINT only for tokens, and using
4069 user token numbers.
4070
4071 2002-06-20 Akim Demaille <akim@epita.fr>
4072
4073 * data/bison.simple (yydestructor): Rename as...
4074 (yydestruct): this.
4075
4076 2002-06-20 Akim Demaille <akim@epita.fr>
4077
4078 * src/symtab.h, src/symtab.c (symbol_type_set)
4079 (symbol_destructor_set, symbol_precedence_set): The location is
4080 the last argument.
4081 Adjust all callers.
4082
4083 2002-06-20 Akim Demaille <akim@epita.fr>
4084
4085 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
4086 internals.
4087 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
4088 Takes a location.
4089 * src/symtab.h, src/symtab.c (symbol_class_set)
4090 (symbol_user_token_number_set): Likewise.
4091 Adjust all callers.
4092 Promote complain_at.
4093 * tests/input.at (Type Clashes): Adjust.
4094
4095 2002-06-20 Akim Demaille <akim@epita.fr>
4096
4097 * data/bison.simple (YYLEX): Fix the declaration when
4098 %pure-parser.
4099
4100 2002-06-20 Akim Demaille <akim@epita.fr>
4101
4102 * data/bison.simple (yysymprint): Don't print the token number,
4103 just its name.
4104 * tests/actions.at (Destructors): Rename as...
4105 (Printers and Destructors): this.
4106 Also exercise %printer.
4107
4108 2002-06-20 Akim Demaille <akim@epita.fr>
4109
4110 * data/bison.simple (YYDSYMPRINT): New.
4111 Use it to remove many of the #if YYDEBUG/if (yydebug).
4112
4113 2002-06-20 Akim Demaille <akim@epita.fr>
4114
4115 * src/symtab.h, src/symtab.c (symbol_t): printer and
4116 printer_location are new members.
4117 (symbol_printer_set): New.
4118 * src/parse-gram.y (PERCENT_PRINTER): New token.
4119 Handle its associated rule.
4120 * src/scan-gram.l: Adjust.
4121 (handle_destructor_at, handle_destructor_dollar): Rename as...
4122 (handle_symbol_code_at, handle_symbol_code_dollar): these.
4123 * src/output.c (symbol_printers_output): New.
4124 (output_skeleton): Call it.
4125 * data/bison.simple (yysymprint): New. Cannot be named yyprint
4126 since there are already many grammar files with a user `yyprint'.
4127 Replace the calls to YYPRINT to calls to yysymprint.
4128 * tests/calc.at: Adjust.
4129 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
4130 taking advantage of parser very internal details (stack size!).
4131
4132 2002-06-20 Akim Demaille <akim@epita.fr>
4133
4134 * src/scan-gram.l: Complete the scanner with the missing patterns
4135 to pacify Flex.
4136 Use `quote' and `symbol_tag_get' where appropriate.
4137
4138 2002-06-19 Akim Demaille <akim@epita.fr>
4139
4140 * tests/actions.at (Destructors): Augment to test locations.
4141 * data/bison.simple (yydestructor): Pass it the current location
4142 if locations are enabled.
4143 Prototype only when __STDC__ or C++.
4144 Change the argument names to move into the yy name space: there is
4145 user code here.
4146
4147 2002-06-19 Akim Demaille <akim@epita.fr>
4148
4149 * data/bison.simple (b4_pure_if): New.
4150 Use it instead of #ifdef YYPURE.
4151
4152 2002-06-19 Akim Demaille <akim@epita.fr>
4153
4154 * data/bison.simple (b4_location_if): New.
4155 Use it instead of #ifdef YYLSP_NEEDED.
4156
4157 2002-06-19 Akim Demaille <akim@epita.fr>
4158
4159 Prepare @$ in %destructor, but currently don't bind it in the
4160 skeleton, as %location use is not cleaned up yet.
4161
4162 * src/scan-gram.l (handle_dollar, handle_destructor_at)
4163 (handle_action_at): New.
4164 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
4165 a braced_code_t and a location as additional arguments.
4166 (handle_destructor_dollar): Instead of requiring `b4_eval', just
4167 unquote one when outputting `b4_dollar_dollar'.
4168 Adjust callers.
4169 * data/bison.simple (b4_eval): Remove.
4170 (b4_symbol_destructor): Adjust.
4171 * tests/input.at (Invalid @n): Adjust.
4172
4173 2002-06-19 Zack Weinberg <zack@codesourcery.com>
4174
4175 * doc/bison.texinfo: Document ability to have multiple
4176 prologue sections.
4177
4178 2002-06-18 Akim Demaille <akim@epita.fr>
4179
4180 * src/files.c (compute_base_names): When computing the output file
4181 names from the input file name, strip the directory part.
4182
4183 2002-06-18 Akim Demaille <akim@epita.fr>
4184
4185 * data/bison.simple.new: Comment changes.
4186 Reported by Andreas Schwab.
4187
4188 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
4189
4190 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
4191 there are no `label `yyoverflowlab' defined but not used' warnings
4192 when yyoverflow is defined.
4193
4194 2002-06-18 Akim Demaille <akim@epita.fr>
4195
4196 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
4197 new member.
4198 (symbol_destructor_set): Adjust.
4199 * src/output.c (symbol_destructors_output): Output the destructor
4200 locations.
4201 Output the symbol name.
4202 * data/bison.simple (b4_symbol_destructor): Adjust.
4203
4204 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
4205 and Akim Demaille <akim@epita.fr>
4206
4207 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
4208 what's left on the stack when the error recovery hits EOF.
4209 * tests/actions.at (Destructors): Complete to exercise this case.
4210
4211 2002-06-17 Akim Demaille <akim@epita.fr>
4212
4213 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
4214 arguments is really empty, not only equal to `[]'.
4215 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
4216 member.
4217 (symbol_destructor_set): New.
4218 * src/output.c (symbol_destructors_output): New.
4219 * src/reader.h (brace_code_t, current_braced_code): New.
4220 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
4221 (handle_dollar): Rename as...
4222 (handle_action_dollar): this.
4223 (handle_destructor_dollar): New.
4224 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
4225 (grammar_declaration): Use it.
4226 * data/bison.simple (yystos): Is always defined.
4227 (yydestructor): New.
4228 * tests/actions.at (Destructors): New.
4229 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
4230
4231 2002-06-17 Akim Demaille <akim@epita.fr>
4232
4233 * src/symlist.h, src/symlist.c (symbol_list_length): New.
4234 * src/scan-gram.l (handle_dollar, handle_at): Compute the
4235 rule_length only when needed.
4236 * src/output.c (actions_output, token_definitions_output): Output
4237 the full M4 block.
4238 * src/symtab.c: Don't access directly to the symbol tag, use
4239 symbol_tag_get.
4240 * src/parse-gram.y: Use symbol_list_free.
4241
4242 2002-06-17 Akim Demaille <akim@epita.fr>
4243
4244 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
4245 (symbol_list_prepend, get_type_name): Move to...
4246 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
4247 (symbol_list_prepend, symbol_list_n_type_name_get): here.
4248 Adjust all callers.
4249 (symbol_list_free): New.
4250 * src/scan-gram.l (handle_dollar): Takes a location.
4251 * tests/input.at (Invalid $n): Adjust.
4252
4253 2002-06-17 Akim Demaille <akim@epita.fr>
4254
4255 * src/reader.h, src/reader.c (symbol_list_new): Export it.
4256 (symbol_list_prepend): New.
4257 * src/parse-gram.y (%union): `list' is a new member.
4258 (symbols.1): New, replaces...
4259 (terms_to_prec.1, nterms_to_type.1): these.
4260 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
4261 Take a location as additional argument.
4262 Adjust all callers.
4263
4264 2002-06-15 Akim Demaille <akim@epita.fr>
4265
4266 * src/parse-gram.y: Move %token in the declaration section so that
4267 we don't depend upon CVS Bison.
4268
4269 2002-06-15 Akim Demaille <akim@epita.fr>
4270
4271 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
4272 * src/print.c (print_core): Use it.
4273
4274 2002-06-15 Akim Demaille <akim@epita.fr>
4275
4276 * src/conflicts.c (log_resolution): Accept the rule involved in
4277 the sr conflicts instead of the lookahead number that points to
4278 that rule.
4279 (flush_reduce): Accept the current lookahead vector as argument,
4280 instead of the index in LA.
4281 (resolve_sr_conflict): Accept the current number of lookahead
4282 bitset to consider for the STATE, instead of the index in LA.
4283 (set_conflicts): Adjust.
4284 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
4285
4286 2002-06-15 Akim Demaille <akim@epita.fr>
4287
4288 * src/state.h (state_t): Replace the `lookaheadsp' member, a
4289 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
4290 Adjust all dependencies.
4291 * src/lalr.c (initialize_lookaheads): Split into...
4292 (states_lookaheads_count, states_lookaheads_initialize): these.
4293 (lalr): Adjust.
4294
4295 2002-06-15 Akim Demaille <akim@epita.fr>
4296
4297 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
4298 out of...
4299 (grammar_rules_print): here.
4300 * src/reduce.c (reduce_output): Use it.
4301 * tests/reduce.at (Useless Rules, Reduced Automaton)
4302 (Underivable Rules): Adjust.
4303
4304 2002-06-15 Akim Demaille <akim@epita.fr>
4305
4306 Copy BYacc's nice way to report the grammar.
4307
4308 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
4309 New.
4310 Don't print the rules' location, it is confusing and useless.
4311 (rule_print): Use grammar_rhs_print.
4312 * src/print.c (print_grammar): Use grammar_rules_print.
4313
4314 2002-06-15 Akim Demaille <akim@epita.fr>
4315
4316 Complete and rationalize `useless thing' warnings.
4317
4318 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
4319 (symbol_tag_print): New.
4320 Use them everywhere in place of accessing directly the tag member.
4321 * src/gram.h, src/gram.c (rule_print): New.
4322 Use it where a rule used to be printed `by hand'.
4323 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
4324 (reduce_grammar_tables): Report the useless rules.
4325 (reduce_print): Useless things are a warning, not an error.
4326 Report it as such.
4327 * tests/reduce.at (Useless Nonterminals, Useless Rules):
4328 (Reduced Automaton, Underivable Rules): Adjust.
4329 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
4330 * tests/conflicts.at (Unresolved SR Conflicts)
4331 (Solved SR Conflicts): Adjust.
4332
4333 2002-06-15 Akim Demaille <akim@epita.fr>
4334
4335 Let symbols have a location.
4336
4337 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
4338 (getsym): Adjust.
4339 Adjust all callers.
4340 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
4341 Use location_t, not int.
4342 * src/symtab.c (symbol_check_defined): Take advantage of the
4343 location.
4344 * tests/regression.at (Invalid inputs): Adjust.
4345
4346 2002-06-15 Akim Demaille <akim@epita.fr>
4347
4348 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
4349 (input): Don't try to initialize yylloc here, do it in the
4350 scanner.
4351 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
4352 * src/gram.h (rule_t): Change line and action_line into location
4353 and action_location, of location_t type.
4354 Adjust all dependencies.
4355 * src/location.h, src/location.c (empty_location): New.
4356 * src/reader.h, src/reader.c (grammar_start_symbol_set)
4357 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
4358 (grammar_current_rule_symbol_append)
4359 (grammar_current_rule_action_append): Expect a location as argument.
4360 * src/reader.c (grammar_midrule_action): Adjust to attach an
4361 action's location as dummy symbol location.
4362 * src/symtab.h, src/symtab.c (startsymbol_location): New.
4363 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
4364 the line numbers.
4365
4366 2002-06-14 Akim Demaille <akim@epita.fr>
4367
4368 Grammar declarations may be found in the grammar section.
4369
4370 * src/parse-gram.y (rules_or_grammar_declaration): New.
4371 (declarations): Each declaration may end with a semicolon, not
4372 just...
4373 (grammar_declaration): `"%union"'.
4374 (grammar): Branch to rules_or_grammar_declaration.
4375
4376 2002-06-14 Akim Demaille <akim@epita.fr>
4377
4378 * src/main.c (main): Invoke scanner_free.
4379
4380 2002-06-14 Akim Demaille <akim@epita.fr>
4381
4382 * src/output.c (m4_invoke): Extracted from...
4383 (output_skeleton): here.
4384 Free tempfile.
4385
4386 2002-06-14 Akim Demaille <akim@epita.fr>
4387
4388 * src/parse-gram.y (directives, directive, gram)
4389 (grammar_directives, precedence_directives, precedence_directive):
4390 Rename as...
4391 (declarations, declaration, grammar, grammar_declaration)
4392 (precedence_declaration, precedence_declarator): these.
4393 (symbol_declaration): New.
4394
4395 2002-06-14 Akim Demaille <akim@epita.fr>
4396
4397 * src/files.c (action_obstack): Remove, unused.
4398 (output_obstack): Remove it, and all its dependencies, as it is no
4399 longer needed.
4400 * src/reader.c (epilogue_set): Build the epilogue in the
4401 muscle_obstack.
4402 * src/output.h, src/output.c (muscle_obstack): Move to...
4403 * src/muscle_tab.h, src/muscle_tab.h: here.
4404 (muscle_init): Initialize muscle_obstack.
4405 (muscle_free): New.
4406 * src/main.c (main): Call it.
4407
4408 2002-06-14 Akim Demaille <akim@epita.fr>
4409
4410 * src/location.h: New, extracted from...
4411 * src/reader.h: here.
4412 * src/Makefile.am (noinst_HEADERS): Merge into
4413 (bison_SOURCES): this.
4414 Add location.h.
4415 * src/parse-gram.y: Use location_t instead of Bison's.
4416 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4417 Use location_t instead of ints.
4418
4419 2002-06-14 Akim Demaille <akim@epita.fr>
4420
4421 * data/bison.simple, data/bison.c++: Be sure to restore the
4422 current #line when returning to the skeleton contents after having
4423 exposed the input file's #line.
4424
4425 2002-06-12 Akim Demaille <akim@epita.fr>
4426
4427 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4428 eager.
4429 * tests/actions.at (Exotic Dollars): New.
4430
4431 2002-06-12 Akim Demaille <akim@epita.fr>
4432
4433 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4434 ['"/] too eagerly.
4435 * tests/input.at (Torturing the Scanner): New.
4436
4437 2002-06-11 Akim Demaille <akim@epita.fr>
4438
4439 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4440 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4441 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4442 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4443 * src/reader.c (reader): Use it.
4444
4445 2002-06-11 Akim Demaille <akim@epita.fr>
4446
4447 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4448 Adjust all callers.
4449 (scanner_last_string_free): New.
4450
4451 2002-06-11 Akim Demaille <akim@epita.fr>
4452
4453 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4454 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4455 (last_string, YY_OBS_FREE): New.
4456 Use them when returning an ID.
4457
4458 2002-06-11 Akim Demaille <akim@epita.fr>
4459
4460 Have Bison grammars parsed by a Bison grammar.
4461
4462 * src/reader.c, src/reader.h (prologue_augment): New.
4463 * src/reader.c (copy_definition): Remove.
4464
4465 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4466 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4467 (grammar_current_rule_prec_set, grammar_current_rule_check)
4468 (grammar_current_rule_symbol_append)
4469 (grammar_current_rule_action_append): Export.
4470 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4471 (symbol_list_action_append): Remove.
4472 Hook the routines from reader.
4473 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4474 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4475
4476 * src/reader.c (read_declarations): Remove, unused.
4477
4478 * src/parse-gram.y: Handle the epilogue.
4479 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4480 (grammar_start_symbol_set): this.
4481 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4482 * src/reader.c (readgram): Remove, unused.
4483 (reader): Adjust to insert eoftoken and axiom where appropriate.
4484
4485 * src/reader.c (copy_dollar): Replace with...
4486 * src/scan-gram.h (handle_dollar): this.
4487 * src/parse-gram.y: Remove `%thong'.
4488
4489 * src/reader.c (copy_at): Replace with...
4490 * src/scan-gram.h (handle_at): this.
4491
4492 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4493 New.
4494
4495 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4496 time being.
4497
4498 * src/reader.h, src/reader.c (grammar_rule_end): New.
4499
4500 * src/parse.y (current_type, current_class): New.
4501 Implement `%nterm', `%token' support.
4502 Merge `%term' into `%token'.
4503 (string_as_id): New.
4504 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4505 type name.
4506
4507 * src/parse-gram.y: Be sure to handle properly the beginning of
4508 rules.
4509
4510 * src/parse-gram.y: Handle %type.
4511 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4512
4513 * src/parse-gram.y: More directives support.
4514 * src/options.c: No longer handle source directives.
4515
4516 * src/parse-gram.y: Fix %output.
4517
4518 * src/parse-gram.y: Handle %union.
4519 Use the prologue locations.
4520 * src/reader.c (parse_union_decl): Remove.
4521
4522 * src/reader.h, src/reader.c (epilogue_set): New.
4523 * src/parse-gram.y: Use it.
4524
4525 * data/bison.simple, data/bison.c++: b4_stype is now either not
4526 defined, then default to int, or to the contents of %union,
4527 without `union' itself.
4528 Adjust.
4529 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4530
4531 * src/output.c (actions_output): Don't output braces, as they are
4532 already handled by the scanner.
4533
4534 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4535 characters to themselves.
4536
4537 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4538 that the epilogue has a proper #line.
4539
4540 * src/parse-gram.y: Handle precedence/associativity.
4541
4542 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4543 a terminal.
4544 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4545 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4546 at all to define terminals that cannot be emitted.
4547
4548 * src/scan-gram.l: Escape M4 characters.
4549
4550 * src/scan-gram.l: Working properly with escapes in user
4551 strings/characters.
4552
4553 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4554 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4555 grammar.
4556 Use more modest sizes, as for the time being the parser does not
4557 release memory, and therefore the process swallows a huge amount
4558 of memory.
4559
4560 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4561 stricter %token grammar.
4562
4563 * src/symtab.h (associativity): Add `undef_assoc'.
4564 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4565 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4566
4567 * tests/regression.at (Invalid %directive): Remove, as it is now
4568 meaningless.
4569 (Invalid inputs): Adjust to the new error messages.
4570 (Token definitions): The new grammar doesn't allow too many
4571 eccentricities.
4572
4573 * src/lex.h, src/lex.c: Remove.
4574 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4575 (copy_character, copy_string2, copy_string, copy_identifier)
4576 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4577 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4578 (parse_action): Remove.
4579 * po/POTFILES.in: Adjust.
4580
4581 2002-06-11 Akim Demaille <akim@epita.fr>
4582
4583 * src/reader.c (parse_action): Don't store directly into the
4584 rule's action member: return the action as a string.
4585 Don't require `rule_length' as an argument: compute it.
4586 (grammar_current_rule_symbol_append)
4587 (grammar_current_rule_action_append): New, eved out from
4588 (readgram): here.
4589 Remove `action_flag', `rulelength', unused now.
4590
4591 2002-06-11 Akim Demaille <akim@epita.fr>
4592
4593 * src/reader.c (grammar_current_rule_prec_set).
4594 (grammar_current_rule_check): New, eved out from...
4595 (readgram): here.
4596 Remove `xaction', `first_rhs': useless.
4597 * tests/input.at (Type clashes): New.
4598 * tests/existing.at (GNU Cim Grammar): Adjust.
4599
4600 2002-06-11 Akim Demaille <akim@epita.fr>
4601
4602 * src/reader.c (grammar_midrule_action): New, Eved out from
4603 (readgram): here.
4604
4605 2002-06-11 Akim Demaille <akim@epita.fr>
4606
4607 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4608 New.
4609 (readgram): Use them as replacement of inlined code, crule and
4610 crule1.
4611
4612 2002-06-11 Akim Demaille <akim@epita.fr>
4613
4614 * src/reader.c (grammar_end, grammar_symbol_append): New.
4615 (readgram): Use them.
4616 Make the use of `p' as local as possible.
4617
4618 2002-06-10 Akim Demaille <akim@epita.fr>
4619
4620 GCJ's parser requires the tokens to be defined before the prologue.
4621
4622 * data/bison.simple: Output the token definition before the user's
4623 prologue.
4624 * tests/regression.at (Braces parsing, Duplicate string)
4625 (Mixing %token styles): Check the output from bison.
4626 (Early token definitions): New.
4627
4628 2002-06-10 Akim Demaille <akim@epita.fr>
4629
4630 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4631 assigning twice the same user number to a token, so that we can
4632 use it in...
4633 * src/lex.c (lex): here.
4634 Also use `symbol_class_set' instead of hand written code.
4635 * src/reader.c (parse_assoc_decl): Likewise.
4636
4637 2002-06-10 Akim Demaille <akim@epita.fr>
4638
4639 * src/symtab.c, src/symtab.c (symbol_class_set)
4640 (symbol_user_token_number_set): New.
4641 * src/reader.c (parse_token_decl): Use them.
4642 Use a switch instead of ifs.
4643 Use a single argument.
4644
4645 2002-06-10 Akim Demaille <akim@epita.fr>
4646
4647 Remove `%thong' support as it is undocumented, unused, duplicates
4648 `%token's job, and creates useless e-mail traffic with people who
4649 want to know what it is, why it is undocumented, unused, and
4650 duplicates `%token's job.
4651
4652 * src/reader.c (parse_thong_decl): Remove.
4653 * src/options.c (option_table): Remove "thong".
4654 * src/lex.h (tok_thong): Remove.
4655
4656 2002-06-10 Akim Demaille <akim@epita.fr>
4657
4658 * src/symtab.c, src/symtab.c (symbol_type_set)
4659 (symbol_precedence_set): New.
4660 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4661 (value_components_used): Remove, unused.
4662
4663 2002-06-09 Akim Demaille <akim@epita.fr>
4664
4665 Move symbols handling code out of the reader.
4666
4667 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4668 (axiom): Move to...
4669 * src/symtab.h, src/symtab.c: here.
4670
4671 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4672 * src/reader.c (startval): Rename as...
4673 * src/symtab.h, src/symtab.c (startsymbol): this.
4674 * src/reader.c: Adjust.
4675
4676 * src/reader.c (symbol_check_defined, symbol_make_alias)
4677 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4678 (token_translations_init)
4679 Move to...
4680 * src/symtab.c: here.
4681 * src/reader.c (packsymbols): Move to...
4682 * src/symtab.h, src/symtab.c (symbols_pack): here.
4683 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4684 argument.
4685
4686 2002-06-03 Akim Demaille <akim@epita.fr>
4687
4688 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4689 then statements.
4690
4691 2002-06-03 Akim Demaille <akim@epita.fr>
4692
4693 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4694 structs with non literals.
4695 * src/scan-skel.l: never-interactive.
4696 * src/conflicts.c (enum conflict_resolution_e): No trailing
4697 comma.
4698 * src/getargs.c (usage): Split long literal strings.
4699 Reported by Hans Aberg.
4700
4701 2002-05-28 Akim Demaille <akim@epita.fr>
4702
4703 * data/bison.c++: Use C++ ostreams.
4704 (cdebug_): New member.
4705
4706 2002-05-28 Akim Demaille <akim@epita.fr>
4707
4708 * src/output.c (output_skeleton): Be sure to allocate enough room
4709 for `/' _and_ for `\0' in full_skeleton.
4710
4711 2002-05-28 Akim Demaille <akim@epita.fr>
4712
4713 * data/bison.c++: Catch up with bison.simple:
4714 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4715 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4716 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4717 and popping traces.
4718
4719 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4720
4721 * src/output.c (output_skeleton): Put an explicit path in front of
4722 the skeleton file name, rather than relying on the -I directory,
4723 to partially alleviate effects of having a skeleton file lying around
4724 in the current directory.
4725
4726 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4727
4728 * src/conflicts.c (log_resolution): Correct typo:
4729 obstack_printf should be obstack_fgrow1.
4730
4731 2002-05-26 Akim Demaille <akim@epita.fr>
4732
4733 * src/state.h (state_t): `solved_conflicts' is a new member.
4734 * src/LR0.c (new_state): Set it to 0.
4735 * src/conflicts.h, src/conflicts.c (print_conflicts)
4736 (free_conflicts, solve_conflicts): Rename as...
4737 (conflicts_print, conflicts_free, conflicts_solve): these.
4738 Adjust callers.
4739 * src/conflicts.c (enum conflict_resolution_e)
4740 (solved_conflicts_obstack): New, used by...
4741 (log_resolution): this.
4742 Adjust to attach the conflict resolution to each state.
4743 Complete the description with the precedence/associativity
4744 information.
4745 (resolve_sr_conflict): Adjust.
4746 * src/print.c (print_state): Output its solved_conflicts.
4747 * tests/conflicts.at (Unresolved SR Conflicts)
4748 (Solved SR Conflicts): Exercise --report=all.
4749
4750 2002-05-26 Akim Demaille <akim@epita.fr>
4751
4752 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4753 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4754 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4755 (token_number_t, item_number_as_token_number)
4756 (token_number_as_item_number, muscle_insert_token_number_table):
4757 Rename as...
4758 (symbol_number_t, item_number_as_symbol_number)
4759 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4760 these, since it is more appropriate.
4761
4762 2002-05-26 Akim Demaille <akim@epita.fr>
4763
4764 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4765 `Error:' lines.
4766 * data/bison.simple (yystos) [YYDEBUG]: New.
4767 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4768 error recovery.
4769 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4770
4771 2002-05-25 Akim Demaille <akim@epita.fr>
4772
4773 * doc/bison.texinfo (Debugging): Split into...
4774 (Tracing): this new section, its former contents, and...
4775 (Understanding): this new section.
4776 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4777 by...
4778 (report_flag): this.
4779 Adjust all dependencies.
4780 (report_args, report_types, report_argmatch): New.
4781 (usage, getargs): Report/support -r, --report.
4782 * src/options.h
4783 (struct option_table_struct): Rename as..,
4784 (struct option_table_s): this.
4785 Rename the `set_flag' member to `flag' to match with getopt_long's
4786 struct.
4787 * src/options.c (option_table): Split verbose into an entry for
4788 %verbose, and another for --verbose.
4789 Support --report/-r, so remove -r from the obsolete --raw.
4790 * src/print.c: Attach full item sets and lookaheads reports to
4791 report_flag instead of trace_flag.
4792 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4793
4794 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4795 and Paul Eggert <eggert@twinsun.com>
4796
4797 * data/bison.simple (yyparse): Correct error handling to conform to
4798 POSIX and yacc. Specifically, after syntax error is discovered,
4799 do not reduce further before shifting the error token.
4800 Clean up the code a bit by removing the labels yyerrdefault,
4801 yyerrhandle, yyerrpop.
4802 * NEWS: Document the above.
4803
4804 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4805
4806 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4807 type; it isn't always big enough, since it doesn't necessarily
4808 include non-terminals.
4809 (yytranslate): Expand definition of yy_token_number_type, so that
4810 the latter can be removed.
4811 (yy_token_number_type): Remove, only one use.
4812 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4813 don't use TokenNumberType as element type.
4814
4815 * tests/regression.at: Modify expected output to agree with change
4816 to yyr1 and yytranslate.
4817
4818 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4819
4820 * src/reader.c (parse_action): Use copy_character instead of
4821 obstack_1grow.
4822
4823 2002-05-13 Akim Demaille <akim@epita.fr>
4824
4825 * tests/regression.at (Token definitions): Prototype yylex and
4826 yyerror.
4827
4828 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4829
4830 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
4831 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4832 32-bit arithmetic.
4833 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4834
4835 2002-05-07 Akim Demaille <akim@epita.fr>
4836
4837 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4838 avoid GCC warnings.
4839
4840 2002-05-07 Akim Demaille <akim@epita.fr>
4841
4842 Kill GCC warnings.
4843
4844 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4845 over the RHS of each rule.
4846 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4847 * src/state.h (state_t): Member `nitems' is unsigned short.
4848 * src/LR0.c (get_state): Adjust.
4849 * src/reader.c (packgram): Likewise.
4850 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4851 `Type'.
4852 (muscle_insert_int_table): Remove, unused.
4853 (prepare_rules): Remove `max'.
4854
4855 2002-05-06 Akim Demaille <akim@epita.fr>
4856
4857 * src/closure.c (print_firsts): Display of the symbol tags.
4858 (bitmatrix_print): Move to...
4859 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4860 here.
4861 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4862
4863 2002-05-06 Akim Demaille <akim@epita.fr>
4864
4865 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4866 hash_do_for_each.
4867
4868 2002-05-06 Akim Demaille <akim@epita.fr>
4869
4870 * src/LR0.c (new_state, get_state): Instead of using the global
4871 `kernel_size' and `kernel_base', have two new arguments:
4872 `core_size' and `core'.
4873 Adjust callers.
4874
4875 2002-05-06 Akim Demaille <akim@epita.fr>
4876
4877 * src/reader.c (packgram): No longer end `ritem' with a 0
4878 sentinel: it is not used.
4879
4880 2002-05-05 Akim Demaille <akim@epita.fr>
4881
4882 New experimental feature: display the lookaheads in the report and
4883 graph.
4884
4885 * src/print (print_core): When --trace-flag, display the rules
4886 lookaheads.
4887 * src/print_graph.c (print_core): Likewise.
4888 Swap the arguments.
4889 Adjust caller.
4890
4891 2002-05-05 Akim Demaille <akim@epita.fr>
4892
4893 * tests/torture.at (Many lookaheads): New test.
4894
4895 2002-05-05 Akim Demaille <akim@epita.fr>
4896
4897 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4898 (GENERATE_MUSCLE_INSERT_TABLE): this.
4899 (output_int_table, output_unsigned_int_table, output_short_table)
4900 (output_token_number_table, output_item_number_table): Replace with...
4901 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4902 (muscle_insert_short_table, muscle_insert_token_number_table)
4903 (muscle_insert_item_number_table): these.
4904 Adjust all callers.
4905 (prepare_tokens): Don't free `translations', since...
4906 * src/reader.h, src/reader.c (grammar_free): do it.
4907 Move to...
4908 * src/gram.h, src/gram.c (grammar_free): here.
4909 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4910 b4_translate_max.
4911
4912 2002-05-05 Akim Demaille <akim@epita.fr>
4913
4914 * src/output.c (output_unsigned_int_table): New.
4915 (prepare_rules): `i' is unsigned.
4916 `prhs', `rline', `r2' are unsigned int.
4917 Rename muscle `rhs_number_max' as `rhs_max'.
4918 Output muscles `prhs_max', `rline_max', and `r2_max'.
4919 Free rline and r1.
4920 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4921 to compute types instead of constant types.
4922 * tests/regression.at (Web2c Actions): Adjust.
4923
4924 2002-05-04 Akim Demaille <akim@epita.fr>
4925
4926 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4927 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4928 Adjust dependencies.
4929 * src/output.c (token_definitions_output): Be sure not to output a
4930 `#define 'a'' when fed with `%token 'a' "a"'.
4931 * tests/regression.at (Token definitions): New.
4932
4933 2002-05-03 Paul Eggert <eggert@twinsun.com>
4934
4935 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4936 for K&R C.
4937
4938 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4939
4940 * Makefile.am (SUBDIRS): Remove intl.
4941 (EXTRA_DIST): Add config/config.rpath.
4942
4943 2002-05-03 Akim Demaille <akim@epita.fr>
4944
4945 * data/bison.simple (m4_if): Don't output empty enums.
4946 And actually, output valid enum definitions :(.
4947
4948 2002-05-03 Akim Demaille <akim@epita.fr>
4949
4950 * configure.bat: Remove, completely obsolete.
4951 * Makefile.am (EXTRA_DIST): Adjust.
4952 Don't distribute config.rpath...
4953 * config/Makefile.am (EXTRA_DIST): Do it.
4954
4955 2002-05-03 Akim Demaille <akim@epita.fr>
4956
4957 * configure.in (GETTEXT_VERSION): New.
4958 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4959
4960 2002-05-03 Akim Demaille <akim@epita.fr>
4961
4962 * data/bison.simple (b4_token_enum): New.
4963 (b4_token_defines): Use it to output tokens both as #define and
4964 enums.
4965 Suggested by Paul Eggert.
4966 * src/output.c (token_definitions_output): Don't output spurious
4967 white spaces.
4968
4969 2002-05-03 Akim Demaille <akim@epita.fr>
4970
4971 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4972
4973 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
4974
4975 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4976 Update the stack class, give a try to deque as the default container.
4977
4978 2002-05-02 Akim Demaille <akim@epita.fr>
4979
4980 * data/bison.simple (yyparse): Do not implement @$ = @1.
4981 (YYLLOC_DEFAULT): Adjust to do it.
4982 * doc/bison.texinfo (Location Default Action): Fix.
4983
4984 2002-05-02 Akim Demaille <akim@epita.fr>
4985
4986 * src/reader.c (parse_braces): Merge into...
4987 (parse_action): this.
4988
4989 2002-05-02 Akim Demaille <akim@epita.fr>
4990
4991 * configure.in (ALL_LINGUAS): Remove.
4992 * po/LINGUAS, hr.po: New.
4993
4994 2002-05-02 Akim Demaille <akim@epita.fr>
4995
4996 Remove the so called hairy (semantic) parsers.
4997
4998 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4999 * src/gram.h, src/gram.c (semantic_parser): Remove.
5000 (rule_t): Remove the guard and guard_line members.
5001 * src/lex.h (token_t): remove tok_guard.
5002 * src/options.c (option_table): Remove %guard and %semantic_parser
5003 support.
5004 * src/output.c, src/output.h (guards_output): Remove.
5005 (prepare): Adjust.
5006 (token_definitions_output): Don't output the `T'
5007 tokens (???).
5008 (output_skeleton): Don't output the guards.
5009 * src/files.c, src/files.c (attrsfile): Remove.
5010 * src/reader.c (symbol_list): Remove the guard and guard_line
5011 members.
5012 Adjust dependencies.
5013 (parse_guard): Remove.
5014 * data/bison.hairy: Remove.
5015 * doc/bison.texinfo (Environment Variables): Remove occurrences of
5016 BISON_HAIRY.
5017
5018 2002-05-02 Akim Demaille <akim@epita.fr>
5019
5020 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
5021 (parse_guard): Rename the formal argument `stack_offset' as
5022 `rule_length', which is more readable.
5023 Adjust callers.
5024 (copy_at, copy_dollar): Instead of outputting the hard coded
5025 values of $$, $n and so forth, output invocation to b4_lhs_value,
5026 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
5027 Note: this patch partially drops `semantic-parser' support: it
5028 always does `rule_length - n', where semantic parsers ought to
5029 always use `-n'.
5030 * data/bison.simple, data/bison.c++ (b4_lhs_value)
5031 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
5032
5033 2002-05-02 Akim Demaille <akim@epita.fr>
5034
5035 * configure.in (AC_INIT): Bump to 1.49b.
5036 (AM_INIT_AUTOMAKE): Short invocation.
5037
5038 2002-05-02 Akim Demaille <akim@epita.fr>
5039
5040 Version 1.49a.
5041
5042 2002-05-01 Akim Demaille <akim@epita.fr>
5043
5044 * src/skeleton.h: Remove.
5045
5046 2002-05-01 Akim Demaille <akim@epita.fr>
5047
5048 * src/skeleton.h: Fix the #endif.
5049 Reported by Magnus Fromreide.
5050
5051 2002-04-26 Paul Eggert <eggert@twinsun.com>
5052
5053 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
5054 Define if we define YYSTYPE and YYLTYPE, respectively.
5055 (YYCOPY): Fix [] quoting problem in the non-GCC case.
5056
5057 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
5058
5059 * src/scan-skel.l: Postprocess quadrigraphs.
5060
5061 * src/reader.c (copy_character): New function, used to output
5062 single characters while replacing `[' and `]' with quadrigraphs, to
5063 avoid troubles with M4 quotes.
5064 (copy_comment): Output characters with copy_character.
5065 (read_additionnal_code): Likewise.
5066 (copy_string2): Likewise.
5067 (copy_definition): Likewise.
5068
5069 * tests/calc.at: Exercise M4 quoting.
5070
5071 2002-04-25 Akim Demaille <akim@epita.fr>
5072
5073 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
5074 between `!' and the command.
5075 Reported by Paul Eggert.
5076
5077 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
5078
5079 * tests/calc.at: Exercise prologue splitting.
5080
5081 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
5082 `b4_post_prologue' instead of `b4_prologue'.
5083
5084 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
5085 muscles.
5086 (output): Free pre_prologue_obstack and post_prologue_obstack.
5087 * src/files.h, src/files.c (attrs_obstack): Remove.
5088 (pre_prologue_obstack, post_prologue_obstack): New.
5089 * src/reader.c (copy_definition): Add a parameter to specify the
5090 obstack to fill, instead of using attrs_obstack unconditionally.
5091 (read_declarations): Pass pre_prologue_obstack to copy_definition if
5092 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
5093
5094 2002-04-23 Paul Eggert <eggert@twinsun.com>
5095
5096 * data/bison.simple: Remove unnecessary commentary and white
5097 space differences from 1_29-branch.
5098 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
5099
5100 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
5101 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
5102 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
5103 constructors or destructors.
5104
5105 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
5106
5107 2002-04-23 Akim Demaille <akim@epita.fr>
5108
5109 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
5110 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
5111 location with columns.
5112 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
5113 All reported by Paul Eggert.
5114
5115 2002-04-22 Akim Demaille <akim@epita.fr>
5116
5117 * src/reduce.c (dump_grammar): Move to...
5118 * src/gram.h, src/gram.c (grammar_dump): here.
5119 Be sure to separate long item numbers.
5120 Don't read the members of a rule's prec if its nil.
5121
5122 2002-04-22 Akim Demaille <akim@epita.fr>
5123
5124 * src/output.c (table_size, table_grow): New.
5125 (MAXTABLE): Remove, replace uses with table_size.
5126 (pack_vector): Instead of dying when the table is too big, grow it.
5127
5128 2002-04-22 Akim Demaille <akim@epita.fr>
5129
5130 * data/bison.simple (yyr1): Its type is that of a token number.
5131 * data/bison.c++ (r1_): Likewise.
5132 * tests/regression.at (Web2c Actions): Adjust.
5133
5134 2002-04-22 Akim Demaille <akim@epita.fr>
5135
5136 * src/reader.c (token_translations_init): 256 is now the default
5137 value for the error token, i.e., it will be assigned another
5138 number if the user assigned 256 to one of her tokens.
5139 (reader): Don't force 256 to error.
5140 * doc/bison.texinfo (Symbols): Adjust.
5141 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
5142 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
5143 etc. instead of 10, 20, 30 (which was used to `jump' over error
5144 (256) and undefined (2)).
5145
5146 2002-04-22 Akim Demaille <akim@epita.fr>
5147
5148 Propagate more token_number_t.
5149
5150 * src/gram.h (token_number_as_item_number)
5151 (item_number_as_token_number): New.
5152 * src/output.c (GENERATE_OUTPUT_TABLE): New.
5153 Use it to create output_item_number_table and
5154 output_token_number_table.
5155 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5156 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
5157 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
5158 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
5159
5160 2002-04-22 Akim Demaille <akim@epita.fr>
5161
5162 * src/output.h, src/output.c (get_lines_number): Remove.
5163
5164 2002-04-19 Akim Demaille <akim@epita.fr>
5165
5166 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
5167 as Lex/Flex'.
5168 (Debugging): More details about enabling the debugging features.
5169 (Table of Symbols): Describe $$, $n, @$, and @n.
5170 Suggested by Tim Josling.
5171
5172 2002-04-19 Akim Demaille <akim@epita.fr>
5173
5174 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
5175
5176 2002-04-10 Akim Demaille <akim@epita.fr>
5177
5178 * src/system.h: Rely on HAVE_LIMITS_H.
5179 Suggested by Paul Eggert.
5180
5181 2002-04-09 Akim Demaille <akim@epita.fr>
5182
5183 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
5184 full stderr, and strip it according to the bison options, instead
5185 of composing the error message from different bits.
5186 This makes it easier to check for several error messages.
5187 Adjust all the invocations.
5188 Add an invocation exercising the error token.
5189 Add an invocation demonstrating a stupid error message.
5190 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
5191 Adjust the tests.
5192 Error message are for stderr, not stdout.
5193
5194 2002-04-09 Akim Demaille <akim@epita.fr>
5195
5196 * src/gram.h, src/gram.c (error_token_number): Remove, use
5197 errtoken->number.
5198 * src/reader.c (reader): Don't specify the user token number (2)
5199 for $undefined, as it uselessly prevents using it.
5200 * src/gram.h (token_number_t): Move to...
5201 * src/symtab.h: here.
5202 (state_t.number): Is a token_number_t.
5203 * src/print.c, src/reader.c: Use undeftoken->number instead of
5204 hard coded 2.
5205 (Even though this 2 is not the same as above: the number of the
5206 undeftoken remains being 2, it is its user token number which
5207 might not be 2).
5208 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
5209 `user_token_number_max'.
5210 Output `undef_token_number'.
5211 * data/bison.simple, data/bison.c++: Use them.
5212 Be sure to map invalid yylex return values to
5213 `undef_token_number'. This saves us from gratuitous SEGV.
5214
5215 * tests/conflicts.at (Solved SR Conflicts)
5216 (Unresolved SR Conflicts): Adjust.
5217 * tests/regression.at (Web2c Actions): Adjust.
5218
5219 2002-04-08 Akim Demaille <akim@epita.fr>
5220
5221 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
5222 Adding #line.
5223 Remove the duplicate `typedefs'.
5224 (RhsNumberType): Fix the declaration and various other typos.
5225 Use __ofile__.
5226 * data/bison.simple: Use __ofile__.
5227 * src/scan-skel.l: Handle __ofile__.
5228
5229 2002-04-08 Akim Demaille <akim@epita.fr>
5230
5231 * src/gram.h (item_number_t): New, the type of item numbers in
5232 RITEM. Note that it must be able to code symbol numbers as
5233 positive number, and the negation of rule numbers as negative
5234 numbers.
5235 Adjust all dependencies (pretty many).
5236 * src/reduce.c (rule): Remove this `short *' pointer: use
5237 item_number_t.
5238 * src/system.h (MINSHORT, MAXSHORT): Remove.
5239 Include `limits.h'.
5240 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
5241 (shortcpy): Remove.
5242 (MAXTABLE): Move to...
5243 * src/output.c (MAXTABLE): here.
5244 (prepare_rules): Use output_int_table to output rhs.
5245 * data/bison.simple, data/bison.c++: Adjust.
5246 * tests/torture.at (Big triangle): Move the limit from 254 to
5247 500.
5248 * tests/regression.at (Web2c Actions): Ajust.
5249
5250 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
5251 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
5252 passes, but produces negative #line number, once fixed, GCC is
5253 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
5254 C), it passes.
5255 * src/state.h (state_h): Code input lines on ints, not shorts.
5256
5257 2002-04-08 Akim Demaille <akim@epita.fr>
5258
5259 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
5260 and then the grammar.
5261
5262 2002-04-08 Akim Demaille <akim@epita.fr>
5263
5264 * src/system.h: No longer using strndup.
5265
5266 2002-04-07 Akim Demaille <akim@epita.fr>
5267
5268 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
5269 * src/output.c (output_table_data): Return the longest number.
5270 (prepare_tokens): Output `token_number_max').
5271 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
5272 New.
5273 Use them to define yy_token_number_type/TokenNumberType.
5274 Use this type for yytranslate.
5275 * tests/torture.at (Big triangle): Push the limit from 124 to
5276 253.
5277 * tests/regression.at (Web2c Actions): Adjust.
5278
5279 2002-04-07 Akim Demaille <akim@epita.fr>
5280
5281 * tests/torture.at (Big triangle): New.
5282 (GNU AWK Grammar, GNU Cim Grammar): Move to...
5283 * tests/existing.at: here.
5284
5285 2002-04-07 Akim Demaille <akim@epita.fr>
5286
5287 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
5288 nritems.
5289 Adjust dependencies.
5290
5291 2002-04-07 Akim Demaille <akim@epita.fr>
5292
5293 * src/reader.c: Normalize increments to prefix form.
5294
5295 2002-04-07 Akim Demaille <akim@epita.fr>
5296
5297 * src/reader.c, symtab.c: Remove debugging code.
5298
5299 2002-04-07 Akim Demaille <akim@epita.fr>
5300
5301 Rename all the `bucket's as `symbol_t'.
5302
5303 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
5304 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
5305 * src/symtab.c, src/symtab.h (bucket): Rename as...
5306 (symbol_t): this.
5307 (symbol_list_new, bucket_check_defined, bucket_make_alias)
5308 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
5309 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5310 (buckets_new, buckets_free, buckets_do): Rename as...
5311 (symbol_list_new, symbol_check_defined, symbol_make_alias)
5312 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5313 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
5314 (symbols_new, symbols_free, symbols_do): these.
5315
5316 2002-04-07 Akim Demaille <akim@epita.fr>
5317
5318 Use lib/hash for the symbol table.
5319
5320 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
5321 EOF.
5322 * src/lex.c (lex): Set the `number' member of new terminals.
5323 * src/reader.c (bucket_check_defined, bucket_make_alias)
5324 (bucket_check_alias_consistence, bucket_translation): New.
5325 (reader, grammar_free, readgram, token_translations_init)
5326 (packsymbols): Adjust.
5327 (reader): Number the predefined tokens.
5328 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
5329 for predefined tokens.
5330 * src/symtab.h (bucket): Remove all the hash table related
5331 members.
5332 * src/symtab.c (symtab): Replace by...
5333 (bucket_table): this.
5334 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5335 (buckets_new, buckets_do): New.
5336
5337 2002-04-07 Akim Demaille <akim@epita.fr>
5338
5339 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
5340 (start_symbol, max_user_token_number, semantic_parser)
5341 (error_token_number): Initialize.
5342 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
5343 Initialize.
5344 (reader): Don't.
5345 (errtoken, eoftoken, undeftoken, axiom): Extern.
5346
5347 2002-04-07 Akim Demaille <akim@epita.fr>
5348
5349 * src/gram.h (rule_s): prec and precsym are now pointers
5350 to the bucket giving the priority/associativity.
5351 Member `associativity' removed: useless.
5352 * src/reduce.c, src/conflicts.c: Adjust.
5353
5354 2002-04-07 Akim Demaille <akim@epita.fr>
5355
5356 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
5357 Properly escape the symbols' TAG when outputting them.
5358
5359 2002-04-07 Akim Demaille <akim@epita.fr>
5360
5361 * src/lalr.h (LA): Is a bitsetv, not bitset*.
5362
5363 2002-04-07 Akim Demaille <akim@epita.fr>
5364
5365 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
5366 (LArule): this, which is an array to rule_t*.
5367 * src/print.c, src/conflicts.c: Adjust.
5368
5369 2002-04-07 Akim Demaille <akim@epita.fr>
5370
5371 * src/gram.h (rule_t): Rename `number' as `user_number'.
5372 `number' is a new member.
5373 Adjust dependencies.
5374 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
5375
5376 2002-04-07 Akim Demaille <akim@epita.fr>
5377
5378 As a result of the previous patch, it is no longer needed
5379 to reorder ritem itself.
5380
5381 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
5382
5383 2002-04-07 Akim Demaille <akim@epita.fr>
5384
5385 Be sure never to walk through RITEMS, but use only data related to
5386 the rules themselves. RITEMS should be banished.
5387
5388 * src/output.c (output_token_translations): Rename as...
5389 (prepare_tokens): this.
5390 In addition to `translate', prepare the muscles `tname' and
5391 `toknum', which were handled by...
5392 (output_rule_data): this.
5393 Remove, and move the remainder of its outputs into...
5394 (prepare_rules): this new routines, which also merges content from
5395 (output_gram): this.
5396 (prepare_rules): Be sure never to walk through RITEMS.
5397 (output_stos): Rename as...
5398 (prepare_stos): this.
5399 (output): Always invoke prepare_states, after all, just don't use it
5400 in the output if you don't need it.
5401
5402 2002-04-07 Akim Demaille <akim@epita.fr>
5403
5404 * src/LR0.c (new_state): Display `nstates' as the name of the
5405 newly created state.
5406 Adjust to initialize first_state and last_state if needed.
5407 Be sure to distinguish the initial from the final state.
5408 (new_states): Create the itemset of the initial state, and use
5409 new_state.
5410 * src/closure.c (closure): Now that the initial state has its
5411 items properly set, there is no need for a special case when
5412 creating `ruleset'.
5413
5414 As a result, now the rule 0, reducing to $axiom, is visible in the
5415 outputs. Adjust the test suite.
5416
5417 * tests/conflicts.at (Solved SR Conflicts)
5418 (Unresolved SR Conflicts): Adjust.
5419 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5420 * tests/conflicts.at (S/R in initial): New.
5421
5422 2002-04-07 Akim Demaille <akim@epita.fr>
5423
5424 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5425 the RHS of the rules.
5426 * src/output.c (output_gram): Likewise.
5427
5428 2002-04-07 Akim Demaille <akim@epita.fr>
5429
5430 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5431 bucket.
5432 Adjust all dependencies.
5433 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5434 `number' of the buckets too.
5435 * src/gram.h: Include `symtab.h'.
5436 (associativity): Move to...
5437 * src/symtab.h: here.
5438 No longer include `gram.h'.
5439
5440 2002-04-07 Akim Demaille <akim@epita.fr>
5441
5442 * src/gram.h, src/gram.c (rules_rhs_length): New.
5443 (ritem_longest_rhs): Use it.
5444 * src/gram.h (rule_t): `number' is a new member.
5445 * src/reader.c (packgram): Set it.
5446 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5447 the end of `rules', and count them out of `nrules'.
5448 (reduce_output, dump_grammar): Adjust.
5449 * src/print.c (print_grammar): It is no longer needed to check for
5450 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5451 * tests/reduce.at (Reduced Automaton): New test.
5452
5453 2002-04-07 Akim Demaille <akim@epita.fr>
5454
5455 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5456 lacking `+ 1' to nrules, Bison reported as useless a token if it
5457 was used solely to set the precedence of the last rule...
5458
5459 2002-04-07 Akim Demaille <akim@epita.fr>
5460
5461 * data/bison.c++, data/bison.simple: Don't output the current file
5462 name in #line, to avoid useless diffs between two identical
5463 outputs under different names.
5464
5465 2002-04-07 Akim Demaille <akim@epita.fr>
5466
5467 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5468 Normalize loops to using `< nrules + 1', not `<= nrules'.
5469
5470 2002-04-07 Akim Demaille <akim@epita.fr>
5471
5472 * TODO: Update.
5473
5474 2002-04-07 Akim Demaille <akim@epita.fr>
5475
5476 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5477 bucket.value as bucket.number.
5478
5479 2002-04-07 Akim Demaille <akim@epita.fr>
5480
5481 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5482 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5483 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5484 RHS, instead of being an index in RITEMS.
5485
5486 2002-04-04 Paul Eggert <eggert@twinsun.com>
5487
5488 * doc/bison.texinfo: Update copyright date.
5489 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5490 (Symbols): Warn about running Bison in one character set,
5491 but compiling and/or running in an incompatible one.
5492 Warn about character code 256, too.
5493
5494 2002-04-03 Paul Eggert <eggert@twinsun.com>
5495
5496 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5497 YYERROR_VERBOSE is nonzero, not whether it is defined.
5498
5499 Merge changes from bison-1_29-branch.
5500
5501 2002-03-20 Paul Eggert <eggert@twinsun.com>
5502
5503 Merge fixes from Debian bison_1.34-1.diff.
5504
5505 * configure.in (AC_PREREQ): 2.53.
5506
5507 2002-03-20 Akim Demaille <akim@epita.fr>
5508
5509 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5510
5511 2002-03-19 Paul Eggert <eggert@twinsun.com>
5512
5513 * src/bison.simple (YYCOPY): New macro.
5514 (YYSTACK_RELOCATE): Use it.
5515 Remove Type arg; no longer needed. All callers changed.
5516 (yymemcpy): Remove; no longer needed.
5517
5518 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5519 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5520
5521 2002-03-19 Akim Demaille <akim@epita.fr>
5522
5523 Test and fix the #line outputs.
5524
5525 * tests/atlocal.at (GCC): New.
5526 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5527 (Prologue synch line, ,%union synch line, Postprologue synch line)
5528 (Action synch line, Epilogue synch line): New tests.
5529 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5530 * data/bison.simple, data/bison.c++: Use it.
5531
5532 2002-03-19 Akim Demaille <akim@epita.fr>
5533
5534 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5535 (Solved SR Conflicts, %expect not enough, %expect right)
5536 (%expect too much): Move to...
5537 * tests/conflicts.at: this new file.
5538
5539 2002-03-19 Akim Demaille <akim@epita.fr>
5540
5541 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5542 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5543 that we can move to enums for instance.
5544 * src/output.c (token_definitions_output): Output a list of
5545 `token-name, token-number' instead of the #define.
5546 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5547
5548 2002-03-14 Akim Demaille <akim@epita.fr>
5549
5550 Use Gettext 0.11.1.
5551
5552 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
5553
5554 * data/bison.c++: Make the user able to add members to the generated
5555 parser by subclassing.
5556
5557 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
5558
5559 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5560 a character.
5561 Reported by Nicolas Tisserand and Nicolas Burrus.
5562
5563 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5564
5565 * src/reader.c: Warn about lacking semi-colons, do not complain.
5566
5567 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5568
5569 * data/bison.c++: Remove a debug line.
5570
5571 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5572
5573 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5574 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5575 provide a default implementation.
5576
5577 2002-03-04 Akim Demaille <akim@epita.fr>
5578
5579 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5580 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5581 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5582 * tests/semantic.at (Parsing Guards): Similarly.
5583 * src/reader.at (readgram): Complain if the last rule is not ended
5584 with a semi-colon.
5585
5586 2002-03-04 Akim Demaille <akim@epita.fr>
5587
5588 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5589 * src/closure.c: here.
5590 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5591 RTC.
5592 * src/warshall.h, src/warshall.c: Remove.
5593 * tests/sets.at (Broken Closure): Adjust.
5594
5595 2002-03-04 Akim Demaille <akim@epita.fr>
5596
5597 * src/output.c (output_skeleton): tempdir is const.
5598 bytes_read is unused.
5599
5600 2002-03-04 Akim Demaille <akim@epita.fr>
5601
5602 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5603 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5604 Update.
5605 From Michael Hayes.
5606
5607 2002-03-04 Akim Demaille <akim@epita.fr>
5608
5609 * src/closure.c (closure): `r' is unused.
5610
5611 2002-03-04 Akim Demaille <akim@epita.fr>
5612
5613 * tests/sets.at (Broken Closure): Add the ending `;'.
5614 * src/reader.at (readgram): Complain if a rule is not ended with a
5615 semi-colon.
5616
5617 2002-03-04 Akim Demaille <akim@epita.fr>
5618
5619 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5620 (count_sr_conflicts): Use bitset_count.
5621 * src/reduce.c (inaccessable_symbols): Ditto.
5622 (bits_size): Remove.
5623 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5624
5625 2002-03-04 Akim Demaille <akim@epita.fr>
5626
5627 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5628 * src/reduce.c: Remove the `bitset_zero's following the
5629 `bitset_create's, as now it is performed by the latter.
5630
5631 2002-03-04 Akim Demaille <akim@epita.fr>
5632
5633 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5634 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5635 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5636 latest sources from Michael.
5637
5638 2002-03-04 Akim Demaille <akim@epita.fr>
5639
5640 * src/output.c (output): Don't free the grammar.
5641 * src/reader.c (grammar_free): New.
5642 * src/main.c (main): Call it and don't free symtab here.
5643
5644 2002-03-04 Akim Demaille <akim@epita.fr>
5645
5646 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5647 before returning.
5648 Reported by Benoit Perrot.
5649
5650 2002-03-04 Akim Demaille <akim@epita.fr>
5651
5652 Use bitset operations when possible, not loops over bits.
5653
5654 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5655 bitset_or.
5656 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5657 * src/reduce.c (useless_nonterminals): Formatting changes.
5658 * src/warshall.c (TC): Use bitset_or.
5659
5660 2002-03-04 Akim Demaille <akim@epita.fr>
5661
5662 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5663 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5664 Ditto.
5665
5666 2002-03-04 Akim Demaille <akim@epita.fr>
5667
5668 * src/lalr.c (F): Now a bitset*.
5669 Adjust all dependencies.
5670
5671 2002-03-04 Akim Demaille <akim@epita.fr>
5672
5673 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5674 Adjust all dependencies.
5675
5676 2002-03-04 Akim Demaille <akim@epita.fr>
5677
5678 * src/L0.c, src/LR0.h (nstates): Be size_t.
5679 Adjust comparisons (signed vs unsigned).
5680 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5681 bitset*.
5682 Adjust all dependencies.
5683
5684 2002-03-04 Akim Demaille <akim@epita.fr>
5685
5686 * src/closure.c (firsts): Now, also a bitset.
5687 Adjust all dependencies.
5688 (varsetsize): Remove, now unused.
5689 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5690
5691 2002-03-04 Akim Demaille <akim@epita.fr>
5692
5693 * src/print.c: Convert to use bitset.h, not hand coded iterations
5694 over ints.
5695
5696 2002-03-04 Akim Demaille <akim@epita.fr>
5697
5698 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5699
5700 2002-03-04 Akim Demaille <akim@epita.fr>
5701
5702 * src/closure.c (ruleset): Be a bitset.
5703 (rulesetsize): Remove.
5704
5705 2002-03-04 Akim Demaille <akim@epita.fr>
5706
5707 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5708 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5709 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5710 * src/closure.c (fderives): Be an array of bitsets.
5711
5712 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
5713
5714 * data/bison.c++: Merge the two generated headers. Insert a copyright
5715 notice in each output file.
5716
5717 2002-02-28 Akim Demaille <akim@epita.fr>
5718
5719 * data/bison.c++: Copy the prologue of bison.simple to fetch
5720 useful M4 definitions, such as b4_header_guard.
5721
5722 2002-02-25 Akim Demaille <akim@epita.fr>
5723
5724 * src/getargs.c (version): Give the name of the authors, and use a
5725 translator friendly scheme for the bgr
5726 copyright notice.
5727
5728 2002-02-25 Akim Demaille <akim@epita.fr>
5729
5730 * src/output.c (header_output): Remove, now handled completely via
5731 M4.
5732
5733 2002-02-25 Akim Demaille <akim@epita.fr>
5734
5735 * m4/m4.m4: New, from CVS Autoconf.
5736 * configure.in: Invoke it.
5737 * src/output.c (output_skeleton): Use its result instead of the
5738 hard coded name.
5739
5740 2002-02-25 Akim Demaille <akim@epita.fr>
5741
5742 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5743 Fileutils 4.1.5.
5744 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5745 * src/output.c (output_skeleton): Use mkstemp to create a real
5746 temporary file.
5747 Move the filling of `skeleton' and its muscle to...
5748 (prepare): here.
5749 (output): Move the definition of the prologue muscle to...
5750 (prepare): here.
5751 * src/system.h (DEFAULT_TMPDIR): New.
5752
5753 2002-02-14 Paul Eggert <eggert@twinsun.com>
5754
5755 Remove the support for C++ namespace cleanliness; it was
5756 causing more problems than it was curing, since it didn't work
5757 properly on some nonstandard C++ compilers. This can wait
5758 for a proper C++ parser.
5759
5760 * NEWS: Document this.
5761 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5762 of C++, as it's treated like C now.
5763 * src/bison.simple (YYSTD): Remove.
5764 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5765 Treat C++ just like Standard C instead of trying to support
5766 namespace cleanliness.
5767
5768 2002-02-14 Akim Demaille <akim@epita.fr>
5769
5770 * tests/regression.at (else): Adjust to Andreas' change.
5771
5772 2002-02-14 Akim Demaille <akim@epita.fr>
5773
5774 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5775
5776 2002-02-13 Andreas Schwab <schwab@suse.de>
5777
5778 * src/output.c (output_rule_data): Don't output NULL, it might
5779 not be defined yet.
5780
5781 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
5782
5783 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5784 (Copyright notice): Update.
5785
5786 2002-02-11 Akim Demaille <akim@epita.fr>
5787
5788 * tests/regression.at (%nonassoc and eof): Don't include
5789 nonportable headers.
5790
5791 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
5792
5793 * data/bison.c++: Correct error recovery. Make the user able to
5794 initialize the starting location.
5795
5796 2002-02-07 Akim Demaille <akim@epita.fr>
5797
5798 * tests/input.at: New.
5799
5800 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5801
5802 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5803 more consistent when naming methods and variables. Put preprocessor
5804 directives around tables only needed for debugging.
5805
5806 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5807
5808 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5809 C++ parsers.
5810 (yy::b4_name::parse): Use print_.
5811
5812 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5813
5814 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5815
5816 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5817
5818 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5819 C++ parsers.
5820 (yy::b4_name::parse): Build verbose error messages, and use error_.
5821
5822 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5823
5824 * data/bison.c++: Fix m4 quoting in comments.
5825
5826 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5827
5828 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5829 not expanded by m4.
5830
5831 2002-02-05 Akim Demaille <akim@epita.fr>
5832
5833 * data/bison.c++: Adjust to the M4 back end.
5834 More is certainly needed.
5835
5836 2002-02-05 Akim Demaille <akim@epita.fr>
5837
5838 Give a try to M4 as a back end.
5839
5840 * lib/readpipe.c: New, from wdiff.
5841 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5842 BISON_HAIRY.
5843 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5844 specific values. Now it is m4 that performs the lookup.
5845 * src/parse-skel.y: Remove.
5846 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5847 * src/output.c (actions_output, guards_output)
5848 (token_definitions_output): No longer keeps track of the output
5849 line number, hence remove the second argument.
5850 (guards_output): Check against the guard member of a rule, not the
5851 action member.
5852 Adjust callers.
5853 (output_skeleton): Don't look for the skeleton location, let m4 do
5854 that.
5855 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5856 file will be used.
5857 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5858 (prepare): Given that for the time being changesyntax is not
5859 usable in M4, rename the muscles using `-' to `_'.
5860 Define `defines_flag', `output_parser_name' and `output_header_name'.
5861 * src/output.h (actions_output, guards_output)
5862 (token_definitions_output): Adjust prototypes.
5863 * src/scan-skel.l: Instead of scanning the skeletons, it now
5864 processes the output of m4: `__oline__' and `#output'.
5865 * data/bison.simple: Adjust to be used by M4(sugar).
5866 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5867 to date.
5868 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5869 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5870 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5871 shamelessly stolen from CVS Autoconf.
5872
5873 2002-02-05 Akim Demaille <akim@epita.fr>
5874
5875 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5876 * configure.in: Check for the declarations of free and malloc.
5877 * src/muscle_tab.c: Adjust.
5878
5879 2002-02-05 Akim Demaille <akim@epita.fr>
5880
5881 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5882 which have no values.
5883
5884 2002-02-05 Akim Demaille <akim@epita.fr>
5885
5886 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5887 * data/: here.
5888
5889 2002-01-29 Paul Eggert <eggert@twinsun.com>
5890
5891 * src/bison.simple (YYSIZE_T): Do not define merely because
5892 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5893 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5894
5895 2002-01-27 Akim Demaille <akim@epita.fr>
5896
5897 Fix `%nonassoc and eof'.
5898
5899 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5900 which were not properly copied! Replace
5901 memcpy (res->errs, src->errs, src->nerrs);
5902 with
5903 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5904 !!!
5905 * tests/regression.at (%nonassoc and eof): Adjust to newest
5906 Autotest: `.' is not in the PATH.
5907
5908 2002-01-27 Akim Demaille <akim@epita.fr>
5909
5910 * tests/sets.at (AT_EXTRACT_SETS): New.
5911 (Nullable): Use it.
5912 (Firsts): New.
5913
5914 2002-01-26 Akim Demaille <akim@epita.fr>
5915
5916 * tests/actions.at, tests/calc.at, tests/headers.at,
5917 * tests/torture.at: Adjust to the newest Autotest which no longer
5918 forces `.' in the PATH.
5919
5920 2002-01-25 Akim Demaille <akim@epita.fr>
5921
5922 * tests/regression.at (%nonassoc and eof): New.
5923 Suggested by Robert Anisko.
5924
5925 2002-01-24 Akim Demaille <akim@epita.fr>
5926
5927 Bison dumps core when trying to complain about broken input files.
5928 Reported by Cris van Pelt.
5929
5930 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5931 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5932 into...
5933 (Invalid inputs): Strengthen: exercise parse_percent_token.
5934
5935 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
5936
5937 * src/Makefile.am: Add bison.c++.
5938 * src/bison.c++: New skeleton.
5939
5940 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
5941
5942 * po/it.po: New.
5943
5944 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5945
5946 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5947
5948 2002-01-20 Marc Autret <marc@gnu.org>
5949
5950 * src/files.c (compute_output_file_names): Fix
5951
5952 2002-01-20 Marc Autret <marc@gnu.org>
5953
5954 * tests/output.at: New test.
5955 * src/files.c (compute_base_names): Don't map extensions when
5956 the YACC flag is set, use defaults.
5957 Reported by Evgeny Stambulchik.
5958
5959 2002-01-20 Marc Autret <marc@gnu.org>
5960
5961 * src/system.h: Need to define __attribute__ away for non-GCC
5962 compilers as well (i.e. the vendor C compiler).
5963 Suggested by Albert Chin-A-Young.
5964
5965 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5966
5967 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5968 canonical definition.
5969 * src/system.h: Use the canonical definition for PARAMS (avoids
5970 a conflict with the macro from lib/hash.h).
5971
5972 2002-01-11 Akim Demaille <akim@epita.fr>
5973
5974 * configure.in: Use AC_FUNC_STRNLEN.
5975 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
5976
5977 2002-01-09 Akim Demaille <akim@epita.fr>
5978
5979 * src/files.c, src/files.h (output_infix): New.
5980 (tab_extension): Remove.
5981 (compute_base_names): Compute the former, drop the latter.
5982 * src/output.c (prepare): Insert the muscles `output-infix', and
5983 `output-suffix'.
5984 * src/parse-skel.y (string, string.1): New.
5985 (section.header): Use it.
5986 (section.yacc): Remove.
5987 (prefix): Remove too.
5988 * src/scan-skel.l: Adjust.
5989 * src/bison.simple, src/bison.hairy: Adjust.
5990
5991 2002-01-09 Akim Demaille <akim@epita.fr>
5992
5993 * configure.in (WERROR_CFLAGS): Compute it.
5994 * src/Makefile.am (CFLAGS): Pass it.
5995 * tests/atlocal.in (CFLAGS): Idem.
5996 * src/files.c: Fix a few warnings.
5997 (get_extension_index): Remove, unused.
5998
5999 2002-01-08 Akim Demaille <akim@epita.fr>
6000
6001 * src/getargs.c (AS_FILE_NAME): New.
6002 (getargs): Use it to convert DOSish file names.
6003 * src/files.c (base_name): Rename as full_base_name to avoid
6004 clashes with `base_name ()'.
6005 (filename_split): New.
6006 (compute_base_names): N-th rewrite, using filename_split.
6007
6008 2002-01-08 Akim Demaille <akim@epita.fr>
6009
6010 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
6011 New, stolen from the Fileutils 4.1.
6012 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
6013 * configure.in: Check for the presence of memrchr, and of its
6014 prototype.
6015
6016 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
6017
6018 * lib/hash.h (__P): Added definition for this macro.
6019 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
6020 BUILT_SOURCES, to ensure they are generated first.
6021 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
6022 %error-verbose to allow bootstrapping with bison 1.30x.
6023
6024 2002-01-06 Akim Demaille <akim@epita.fr>
6025
6026 * src/reader.c (parse_braces): Don't fetch the next char, the
6027 convention is to fetch on entry.
6028 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
6029 'switch' without a following semicolon.
6030 * tests/regression.at (braces parsing): New.
6031
6032 2002-01-06 Akim Demaille <akim@epita.fr>
6033
6034 Bison is dead wrong in its RR conflict reports.
6035
6036 * tests/torture.at (GNU Cim Grammar): New.
6037 * src/conflicts.c (count_rr_conflicts): Fix.
6038
6039 2002-01-06 Akim Demaille <akim@epita.fr>
6040
6041 Creating package.m4 from configure.ac causes too many problems.
6042
6043 * tests/Makefile.am (package.m4): Create it by hand,
6044 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
6045
6046 2002-01-06 Akim Demaille <akim@epita.fr>
6047
6048 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
6049 skeleton.h.
6050
6051 2002-01-04 Paul Eggert <eggert@twinsun.com>
6052
6053 * doc/bison.texinfo (Debugging):
6054 Remove YYSTDERR; it's no longer defined or used.
6055 Also, s/cstdio.h/cstdio/.
6056
6057 2002-01-03 Akim Demaille <akim@epita.fr>
6058
6059 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
6060
6061 2002-01-03 Akim Demaille <akim@epita.fr>
6062
6063 * src/parse-skel.y (process_skeleton): Don't bind the parser's
6064 tracing code to --trace, wait for a better --trace option, with
6065 args.
6066
6067 2002-01-03 Akim Demaille <akim@epita.fr>
6068
6069 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
6070 The ISO C++ standard is extremely clear about it: stderr is
6071 considered a macro, not a regular symbol (see table 94 `Header
6072 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
6073 Therefore std:: does not apply to it. It still does with fprintf.
6074 Also, s/cstdio.h/cstdio/.
6075
6076 2002-01-03 Akim Demaille <akim@epita.fr>
6077
6078 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
6079 for non system headers.
6080
6081 2002-01-02 Akim Demaille <akim@epita.fr>
6082
6083 Equip the skeleton chain with location tracking, runtime trace,
6084 pure parser and scanner.
6085
6086 * src/parse-skel.y: Request a pure parser, locations, and prefix
6087 renaming.
6088 (%union): Having several members with the same type does not help
6089 type mismatches, simplify.
6090 (YYPRINT, yyprint): New.
6091 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
6092 (skel_error): this.
6093 Handle locations.
6094 * src/scan-skel.l: Adjust to these changes.
6095 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
6096 (LOCATION_PRINT, skel_control_t): New.
6097
6098 2001-12-30 Akim Demaille <akim@epita.fr>
6099
6100 * src/parse-skel.y: Get rid of the shift/reduce conflict:
6101 replace `gb' with BLANKS.
6102 * src/scan-skel.l: Adjust.
6103
6104 2001-12-30 Akim Demaille <akim@epita.fr>
6105
6106 * src/system.h: We don't need nor want bcopy.
6107 Throw away MS-DOS crap: we don't need getpid.
6108 * configure.in: We don't need strndup. It was even causing
6109 problems: because Flex includes the headers *before* us,
6110 _GNU_SOURCE is not defined by config.h, and therefore strndup was
6111 not visible.
6112 * lib/xstrndup.c: New.
6113 * src/scan-skel.l: Use it.
6114 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
6115 * src/parse-skel.y: Use %directives instead of #defines.
6116
6117 2001-12-30 Akim Demaille <akim@epita.fr>
6118
6119 * src/skeleton.h: New.
6120 * src/output.c (output_parser, output_master_parser): Remove, dead
6121 code.
6122 * src/output.h (get_lines_number, actions_output, guards_output)
6123 (token_definitions_output): Prototype them.
6124 * src/parse-skel.y: Add the license notice.
6125 Include output.h and skeleton.h.
6126 (process_skeleton): Returns void, and takes a single parameter.
6127 * src/scan-skel.l: Add the license notice.
6128 Include skeleton.h.
6129 Don't use %option yylineno: it seems that then Flex imagines
6130 REJECT has been used, and therefore it won't reallocate its
6131 buffers (which makes no other sense to me than a bug). It results
6132 in warnings for `unused: yy_flex_realloc'.
6133
6134 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
6135
6136 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
6137 (MUSCLE_INSERT_PREFIX): ...to there.
6138 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
6139 (MUSCLE_INSERT_PREFIX): Move from here...
6140
6141 * src/bison.hairy: Add a section directive. Put braces around muscle
6142 names. This parser skeleton is still broken, but Bison should not
6143 choke on a bad muscle 'syntax'.
6144 * src/bison.simple: Add a section directive. Put braces around muscle
6145 names.
6146
6147 * src/files.h (strsuffix, stringappend): Add declarations.
6148 (tab_extension): Add declaration.
6149 (short_base_name): Add declaration.
6150
6151 * src/files.c (strsuffix, stringappend): No longer static. These
6152 functions are used in the skeleton parser.
6153 (tab_extension): New.
6154 (compute_base_names): Use the computations done in this function
6155 to guess if the generated parsers should have '.tab' in their
6156 names.
6157 (short_base_name): No longer static.
6158
6159 * src/output.c (output_skeleton): New.
6160 (output): Disable call to output_master_parser, and give a try to
6161 a new skeleton handling system.
6162 (guards_output, actions_output): No longer static.
6163 (token_definitions_output, get_lines_number): No longer static.
6164
6165 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
6166
6167 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
6168 parse-skel.y.
6169
6170 * src/parse-skel.y: New file.
6171 * src/scan-skel.l: New file.
6172
6173 2001-12-29 Akim Demaille <akim@epita.fr>
6174
6175 %name-prefix is broken.
6176
6177 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
6178 Adjust all dependencies.
6179 * tests/headers.at (export YYLTYPE): Strengthen this test: use
6180 %name-prefix.
6181
6182 Renaming yylval but not yylloc is not consistent. Now we do.
6183
6184 * src/bison.simple: Prefix yylloc if used.
6185 * doc/bison.texinfo (Decl Summary): Document that.
6186
6187 2001-12-29 Akim Demaille <akim@epita.fr>
6188
6189 * doc/bison.texinfo: Promote `%long-directive' over
6190 `%long_directive'.
6191 Remove all references to fixed-output-files, yacc is enough.
6192
6193 2001-12-29 Akim Demaille <akim@epita.fr>
6194
6195 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
6196 user prologue. These are defaults.
6197 * tests/actions.at (Mid-rule actions): Make sure the user can
6198 define YYDEBUG and YYERROR_VERBOSE.
6199
6200 2001-12-29 Akim Demaille <akim@epita.fr>
6201
6202 * src/output.c (header_output): Don't forget to export YYLTYPE and
6203 yylloc.
6204 * tests/headers.at (export YYLTYPE): New, make sure it does.
6205 * tests/regression.at (%union and --defines, Invalid CPP headers):
6206 Move to...
6207 * tests/headers.at: here.
6208
6209 2001-12-29 Akim Demaille <akim@epita.fr>
6210
6211 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
6212
6213 2001-12-29 Akim Demaille <akim@epita.fr>
6214
6215 * tests/actions.at (Mid-rule actions): Output on a single line
6216 instead of several.
6217
6218 2001-12-29 Akim Demaille <akim@epita.fr>
6219
6220 * doc/bison.texinfo: Formatting changes.
6221
6222 2001-12-29 Akim Demaille <akim@epita.fr>
6223
6224 Don't store the token defs in a muscle, just be ready to output it
6225 on command. Now possible via `symbols'. Fixes a memory leak.
6226
6227 * src/output.c (token_definitions_output): New.
6228 (output_parser, header_output): Use it.
6229 * src/reader.c (symbols_save): Remove.
6230
6231 2001-12-29 Akim Demaille <akim@epita.fr>
6232
6233 * src/bison.simple: Do not provide a default for YYSTYPE and
6234 YYLTYPE before the user's prologue. Otherwise it's hardly... a
6235 default.
6236
6237 2001-12-29 Akim Demaille <akim@epita.fr>
6238
6239 Mid-rule actions are simply... ignored!
6240
6241 * src/reader.c (readgram): Be sure to attach mid-rule actions to
6242 the empty-rule associated to the dummy symbol, not to the host
6243 rule.
6244 * tests/actions.at (Mid-rule actions): New.
6245
6246 2001-12-29 Akim Demaille <akim@epita.fr>
6247
6248 Memory leak.
6249
6250 * src/reader.c (reader): Free grammar.
6251
6252 2001-12-29 Akim Demaille <akim@epita.fr>
6253
6254 Memory leak.
6255
6256 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
6257 since it allocates it for each state, although only one is needed.
6258 (allocate_storage): Do it here.
6259
6260 2001-12-29 Akim Demaille <akim@epita.fr>
6261
6262 * src/options.h, src/options.c (create_long_option_table): Rename
6263 as...
6264 (long_option_table_new): this, with a clearer prototype.
6265 (percent_table): Remove, unused,
6266 * src/getargs.c (getargs): Adjust.
6267
6268 2001-12-29 Akim Demaille <akim@epita.fr>
6269
6270 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
6271 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
6272 as states.
6273
6274 2001-12-29 Akim Demaille <akim@epita.fr>
6275
6276 * src/lalr.c (build_relations): Rename `states' as `states1'.
6277 Sorry, I don't understand exactly what it is, no better name...
6278
6279 2001-12-29 Akim Demaille <akim@epita.fr>
6280
6281 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
6282 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
6283 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
6284 as rules.
6285
6286 2001-12-29 Akim Demaille <akim@epita.fr>
6287
6288 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
6289 ago.
6290
6291 2001-12-29 Akim Demaille <akim@epita.fr>
6292
6293 * src/reader.c, src/reader.h (user_toknums): Remove.
6294 Adjust all users to use symbols[i]->user_token_number.
6295
6296 2001-12-29 Akim Demaille <akim@epita.fr>
6297
6298 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
6299 Adjust all users to use symbols[i]->prec or ->assoc.
6300
6301 2001-12-29 Akim Demaille <akim@epita.fr>
6302
6303 * src/reader.c, src/reader.h (tags): Remove.
6304 Adjust all users to use symbols[i]->tag.
6305
6306 2001-12-29 Akim Demaille <akim@epita.fr>
6307
6308 * src/gram.h, src/gram.c (symbols): New, similar to state_table
6309 and rule_table.
6310 * src/reader.c (packsymbols): Fill this table.
6311 Drop sprec.
6312 * src/conflicts.c (resolve_sr_conflict): Adjust.
6313 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
6314 single table.
6315 Use symbols[i]->tag instead of tags[i].
6316
6317 2001-12-29 Akim Demaille <akim@epita.fr>
6318
6319 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
6320 In addition, put a comment in there, to replace...
6321 * tests/regression.at (%union and C comments): Remove.
6322
6323 2001-12-29 Akim Demaille <akim@epita.fr>
6324
6325 * tests/regression.at (Web2c Actions): Blindly move the actual
6326 output as expected output. The contents *seem* right to me, but I
6327 can't pretend reading perfectly parser tables... Nonetheless, all
6328 the other tests pass correctly, the table look OK, even though the
6329 presence of `$axiom' is to be noted: AFAICS it is useless (but
6330 harmless).
6331
6332 2001-12-29 Akim Demaille <akim@epita.fr>
6333
6334 * src/reader.c (readgram): Don't add the rule 0 if there were no
6335 rules read. In other words, add it _after_ having performed
6336 grammar sanity checks.
6337 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
6338
6339 2001-12-29 Akim Demaille <akim@epita.fr>
6340
6341 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
6342 visible, and some states have now a different number.
6343
6344 2001-12-29 Akim Demaille <akim@epita.fr>
6345
6346 * src/reader.c (readgram): Bind the initial rule's lineno to that
6347 of the first rule.
6348 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
6349 (Solved SR Conflicts): Adjust rule 0's line number.
6350
6351 2001-12-29 Akim Demaille <akim@epita.fr>
6352
6353 Fix the `GAWK Grammar' failure.
6354
6355 * src/LR0.c (final_state): Initialize to -1 so that we do compute
6356 the reductions of the first state which was mistakenly confused
6357 with the final state because precisely final_state was initialized
6358 to 0.
6359 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
6360 now noticed by Bison.
6361 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
6362 have a reduction on $default.
6363
6364 2001-12-29 Akim Demaille <akim@epita.fr>
6365
6366 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
6367 rule line numbers.
6368 * src/closure.c (print_closure): Likewise.
6369 * src/derives.c (print_derives): Likewise.
6370 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
6371 now.
6372
6373 2001-12-29 Akim Demaille <akim@epita.fr>
6374
6375 * src/lalr.c (lookaheads_print): New.
6376 (lalr): Call it when --trace-flag.
6377 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
6378 are dumped.
6379
6380 2001-12-29 Akim Demaille <akim@epita.fr>
6381
6382 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
6383 when walking through ritem, even via rule->rhs.
6384 * src/reduce.c (dump_grammar, useful_production, reduce_output)
6385 (useful_production, useless_nonterminals): Likewise.
6386 (reduce_grammar_tables): Likewise, plus update nritems.
6387 * src/nullable.c (set_nullable): Likewise.
6388 * src/lalr.c (build_relations): Likewise.
6389 * tests/sets.at (Nullable): Adjust.
6390 Fortunately, now, the $axiom is no longer nullable.
6391
6392 2001-12-29 Akim Demaille <akim@epita.fr>
6393
6394 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6395 the 0-sentinel.
6396 * src/gram.c (ritem_longest_rhs): Likewise.
6397 * src/reduce.c (nonterminals_reduce): Likewise.
6398 * src/print_graph.c (print_graph): Likewise.
6399 * src/output.c (output_rule_data): Likewise.
6400 * src/nullable.c (set_nullable): Likewise.
6401
6402 2001-12-29 Akim Demaille <akim@epita.fr>
6403
6404 * src/output.c: Comment changes.
6405
6406 2001-12-27 Paul Eggert <eggert@twinsun.com>
6407
6408 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6409 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6410 Sparc, as they were causing more porting problems than the
6411 (minor) performance improvement was worth.
6412
6413 Also, catch up with 1.31's YYSTD.
6414
6415 2001-12-27 Akim Demaille <akim@epita.fr>
6416
6417 * src/output.c (output_gram): Rely on nritems, not the
6418 0-sentinel. See below.
6419 Use -1 as separator, not 0.
6420 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6421 Rely on -1 as separator in yyrhs, instead of 0.
6422 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6423 twice `Now at end of input', therefore there are two lines less to
6424 expect.
6425
6426 2001-12-27 Akim Demaille <akim@epita.fr>
6427
6428 * tests/regression.at (Unresolved SR Conflicts):
6429 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6430 below.
6431
6432 2001-12-27 Akim Demaille <akim@epita.fr>
6433
6434 * src/LR0.c (new_state): Recognize the final state by the fact it
6435 is reached by eoftoken.
6436 (insert_start_shifting_state, insert_eof_shifting_state)
6437 (insert_accepting_state, augment_automaton): Remove, since now
6438 these states are automatically computed from the initial state.
6439 (generate_states): Adjust.
6440 * src/print.c: When reporting a rule number to the user, substract
6441 1, so that the axiom rule is rule 0, and the first user rule is 1.
6442 * src/reduce.c: Likewise.
6443 * src/print_graph.c (print_core): For the time being, just as for
6444 the report, depend upon --trace-flags to dump the full set of
6445 items.
6446 * src/reader.c (readgram): Once the grammar read, insert the rule
6447 0: `$axiom: START-SYMBOL $'.
6448 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6449 number of the states has changed (the final state is no longer
6450 necessarily the last), catch up.
6451
6452 2001-12-27 Akim Demaille <akim@epita.fr>
6453
6454 Try to make the use of the eoftoken valid. Given that its value
6455 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6456 is used instead of > 0 where appropriate, (ii), depend upon nritems
6457 instead of the 0-sentinel.
6458
6459 * src/gram.h, src/gram.c (nritems): New.
6460 Expected to be duplication of nitems, but for the time being...
6461 * src/reader.c (packgram): Assert nritems and nitems are equal.
6462 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6463 * src/closure.c (print_closure, print_fderives): Likewise.
6464 * src/gram.c (ritem_print): Likewise.
6465 * src/print.c (print_core, print_grammar): Likewise.
6466 * src/print_graph.c: Likewise.
6467
6468 2001-12-27 Akim Demaille <akim@epita.fr>
6469
6470 * src/main.c (main): If there are complains after grammar
6471 reductions, then output the report anyway if requested, then die.
6472 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6473 * src/reader.c (eoftoken): New.
6474 (parse_token_decl): If the token being defined has value `0', it
6475 is the eoftoken.
6476 (packsymbols): No longer hack `tags' to insert `$' by hand.
6477 Be sure to preserve the value of the eoftoken.
6478 (reader): Make sure eoftoken is defined.
6479 Initialize nsyms to 0: now eoftoken is created just like the others.
6480 * src/print.c (print_grammar): Don't special case the eof token.
6481 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6482 lie anyway, albeit pleasant.
6483 * tests/calc.at: Exercise error messages with eoftoken.
6484 Change the grammar so that empty input is invalid.
6485 Adjust expectations.
6486 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6487
6488 2001-12-27 Akim Demaille <akim@epita.fr>
6489
6490 * configure.in: Check the protos of strchr ans strspn.
6491 Replace strchr if needed.
6492 * src/system.h: Provide the protos of strchr, strspn and memchr if
6493 missing.
6494 * lib/strchr.c: New.
6495 * src/reader.c (symbols_save): Use strchr.
6496
6497 2001-12-27 Akim Demaille <akim@epita.fr>
6498
6499 * src/print.c, src/print_graph.c (escape): New.
6500 Use it to quote the TAGS outputs.
6501 * src/print_graph.c (print_state): Now errors are in red, and
6502 reductions in green.
6503 Prefer high to wide: output the state number on a line of its own.
6504
6505 2001-12-27 Akim Demaille <akim@epita.fr>
6506
6507 * src/state.h, src/state.c (reductions_new): New.
6508 * src/LR0.c (set_state_table): Let all the states have a
6509 `reductions', even if reduced to 0.
6510 (save_reductions): Adjust.
6511 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6512 * src/print.c (print_reductions, print_actions): Adjust.
6513 * src/output.c (action_row): Adjust.
6514
6515 2001-12-27 Akim Demaille <akim@epita.fr>
6516
6517 * src/state.h, src/state.c (errs_new, errs_dup): New.
6518 * src/LR0.c (set_state_table): Let all the states have an errs,
6519 even if reduced to 0.
6520 * src/print.c (print_errs, print_reductions): Adjust.
6521 * src/output.c (output_actions, action_row): Adjust.
6522 * src/conflicts.c (resolve_sr_conflict): Adjust.
6523
6524 2001-12-27 Akim Demaille <akim@epita.fr>
6525
6526 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6527
6528 2001-12-27 Akim Demaille <akim@epita.fr>
6529
6530 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6531 * src/print.c: here.
6532 (lookaheadset, shiftset): New, used as additional storage by
6533 print_reductions.
6534 (print_results): Adjust.
6535 (print_shifts, print_gotos, print_errs): New, extracted from...
6536 (print_actions): here.
6537 * src/print_graph.c (print_actions): Remove dead code.
6538
6539 2001-12-27 Akim Demaille <akim@epita.fr>
6540
6541 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6542 `$n' and `@n'.
6543
6544 2001-12-27 Akim Demaille <akim@epita.fr>
6545
6546 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6547 (build_relations): Adjust.
6548
6549 2001-12-27 Akim Demaille <akim@epita.fr>
6550
6551 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6552 duplication.
6553
6554 2001-12-27 Akim Demaille <akim@epita.fr>
6555
6556 * src/reader.c (packgram): Catch nitems overflows.
6557
6558 2001-12-27 Akim Demaille <akim@epita.fr>
6559
6560 * src/files.c, src/files.h (guard_obstack): Remove.
6561 * src/output.c (output): Adjust.
6562 * src/reader.c (parse_braces): New, factoring...
6563 (copy_action, copy_guard): these two which are renamed as...
6564 (parse_action, parse_guard): these.
6565 As a voluntary consequence, using braces around guards is now
6566 mandatory.
6567
6568 2001-12-27 Akim Demaille <akim@epita.fr>
6569
6570 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6571 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6572 members.
6573 (symbol_list_new): Adjust.
6574 (copy_action): action_line is the first line, not the last.
6575 (copy_guard): Just as for actions, store the `action' only, not
6576 the switch/case/break flesh.
6577 Don't parse the user action that might follow the guard, let...
6578 (readgram): do it, i.e., now, there can be an action after a
6579 guard.
6580 In other words the guard is just explicitly optional.
6581 (packgram): Adjust.
6582 * src/output.c (guards_output): New.
6583 (output_parser): Call it when needed.
6584 (output): Also free the guard and attrs obstacks.
6585 * src/files.c, src/files.h (obstack_save): Remove.
6586 (output_files): Remove.
6587 As a result, if one needs the former `.act' file, using an
6588 appropriate skeleton which requires actions and guards is now
6589 required.
6590 * src/main.c (main): Adjust.
6591 * tests/semantic.at: New.
6592 * tests/regression.at: Use `input.y' as input file name.
6593 Avoid 8+3 problems by requiring input.c when the test needs the
6594 parser.
6595
6596 2001-12-27 Akim Demaille <akim@epita.fr>
6597
6598 * src/reader.c (symbol_list_new): Be sure to initialize all the
6599 fields.
6600
6601 2001-12-27 Akim Demaille <akim@epita.fr>
6602
6603 All the hacks using a final pseudo state are now useless.
6604
6605 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6606 * src/lalr.c (nLA): New.
6607 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6608 instead of lookaheadsp from the pseudo state (nstate + 1).
6609
6610 2001-12-27 Akim Demaille <akim@epita.fr>
6611
6612 * src/output.c (action_row, token_actions): Use a state_t instead
6613 of a integer, and nlookaheads instead of the following state's
6614 lookaheadsp.
6615
6616 2001-12-27 Akim Demaille <akim@epita.fr>
6617
6618 * src/conflicts.c (log_resolution, flush_shift)
6619 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6620 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6621 (conflicts_print, print_reductions): Use a state_t instead of an
6622 integer when referring to a state.
6623 As much as possible, depend upon nlookaheads, instead of the
6624 `lookaheadsp' member of the following state (since lookaheads of
6625 successive states are successive, the difference between state n + 1
6626 and n served as the number of lookaheads for state n).
6627 * src/lalr.c (add_lookback_edge): Likewise.
6628 * src/print.c (print_core, print_actions, print_state)
6629 (print_results): Likewise.
6630 * src/print_graph.c (print_core, print_actions, print_state)
6631 (print_graph): Likewise.
6632 * src/conflicts.h: Adjust.
6633
6634 2001-12-27 Akim Demaille <akim@epita.fr>
6635
6636 * src/bison.hairy: Formatting/comment changes.
6637 ANSIfy.
6638 Remove `register' indications.
6639 Add plenty of `static'.
6640
6641 2001-12-27 Akim Demaille <akim@epita.fr>
6642
6643 * src/output.c (prepare): Drop the muscle `ntbase' which
6644 duplicates ntokens.
6645 * src/bison.simple: Formatting/comment changes.
6646 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6647 is an undocumented synonym.
6648
6649 2001-12-22 Akim Demaille <akim@epita.fr>
6650
6651 * src/output.c (output_table_data): Change the prototype to use
6652 `int' for array ranges: some invocations do pass an int, not a
6653 short.
6654 Reported by Wayne Green.
6655
6656 2001-12-22 Akim Demaille <akim@epita.fr>
6657
6658 Some actions of web2c.y are improperly triggered.
6659 Reported by Mike Castle.
6660
6661 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6662 * tests/regression.at (Web2c): Rename as...
6663 (Web2c Report): this.
6664 (Web2c Actions): New.
6665
6666 2001-12-22 Akim Demaille <akim@epita.fr>
6667
6668 Reductions in web2c.y are improperly reported.
6669 Reported by Mike Castle.
6670
6671 * src/conflicts.c (print_reductions): Fix.
6672 * tests/regression.at (Web2c): New.
6673
6674 2001-12-18 Akim Demaille <akim@epita.fr>
6675
6676 Some host fail on `assert (!"foo")', which expands to
6677 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6678 Reported by Nelson Beebee.
6679
6680 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6681 `#define it_succeeded 0' and `assert (it_succeeded)'.
6682
6683 2001-12-17 Marc Autret <autret_m@epita.fr>
6684
6685 * src/bison.simple: Don't hard code the skeleton line and filename.
6686 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6687 New line counter 'skeleton_line' (skeleton-line muscle).
6688
6689 2001-12-17 Paul Eggert <eggert@twinsun.com>
6690
6691 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6692 YYDEBUG must be defined to a nonzero value.
6693
6694 * src/bison.simple (yytname): Do not assume that the user defines
6695 YYDEBUG to a properly parenthesized expression.
6696
6697 2001-12-17 Akim Demaille <akim@epita.fr>
6698
6699 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6700 nlookaheads is a new member.
6701 Adjust all users.
6702 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6703 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6704 state.
6705
6706 2001-12-17 Akim Demaille <akim@epita.fr>
6707
6708 * src/files.h, src/files.c (open_files, close_files): Remove.
6709 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6710 let...
6711 * src/reader.c (reader): Do it.
6712
6713 2001-12-17 Akim Demaille <akim@epita.fr>
6714
6715 * src/conflicts.c (print_reductions): Formatting changes.
6716
6717 2001-12-17 Akim Demaille <akim@epita.fr>
6718
6719 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6720 (flush_reduce): New.
6721 (resolve_sr_conflict): Adjust.
6722
6723 2001-12-17 Akim Demaille <akim@epita.fr>
6724
6725 * src/output.c (output_obstack): Be static and rename as...
6726 (format_obstack): this, to avoid any confusion with files.c's
6727 output_obstack.
6728 * src/reader.h (muscle_obstack): Move to...
6729 * src/output.h: here, since it's defined in output.c.
6730
6731 2001-12-17 Akim Demaille <akim@epita.fr>
6732
6733 * src/output.c (action_row, save_column, default_goto)
6734 (sort_actions, matching_state, pack_vector): Better variable
6735 locality.
6736
6737 2001-12-17 Akim Demaille <akim@epita.fr>
6738
6739 * src/output.c: Various formatting changes.
6740
6741 2001-12-17 Akim Demaille <akim@epita.fr>
6742
6743 * src/files.c (output_files): Free the output_obstack.
6744 * src/main.c (main): Call print and print_graph conditionally.
6745 * src/print.c (print): Work unconditionally.
6746 * src/print_graph.c (print_graph): Work unconditionally.
6747 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6748
6749 2001-12-16 Marc Autret <autret_m@epita.fr>
6750
6751 * src/output.c (actions_output): Fix. When we use %no-lines,
6752 there is one less line per action.
6753
6754 2001-12-16 Marc Autret <autret_m@epita.fr>
6755
6756 * src/bison.simple: Remove a useless #line directive.
6757 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6758 * src/output.c (get_lines_number): New.
6759 (output_parser): Adjust, now takes care about the lines of a
6760 output muscles.
6761 Fix line numbering.
6762 (actions_output): Computes the number of lines taken by actions.
6763 (output_master_parser): Insert new skeleton which is the name of
6764 the output parser file name.
6765
6766 2001-12-15 Marc Autret <autret_m@epita.fr>
6767
6768 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6769
6770 2001-12-15 Marc Autret <autret_m@epita.fr>
6771
6772 * src/output.c (output_gram): Keep track of the hairy one.
6773
6774 2001-12-15 Akim Demaille <akim@epita.fr>
6775
6776 Make `make distcheck' work.
6777
6778 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6779 system.h which uses libgettext.h.
6780
6781 2001-12-15 Akim Demaille <akim@epita.fr>
6782
6783 * src/nullable.c (set_nullable): Useless rules must be skipped,
6784 otherwise, since we range over their symbols, we might look at a
6785 nonterminal which no longer ``exists'', i.e., it is not counted in
6786 `nvars', hence we overflow our arrays.
6787
6788 2001-12-15 Akim Demaille <akim@epita.fr>
6789
6790 The header can also be produced directly, without any obstack!
6791 Yahoo!
6792
6793 * src/files.c, src/files.h (defines_obstack): Remove.
6794 (compute_header_macro): Global.
6795 (defines_obstack_save): Remove.
6796 * src/reader.c (parse_union_decl): No longer output to
6797 defines_obstack: its content can be found in the `stype' muscle
6798 anyway.
6799 (output_token_translations): Merge into...
6800 (symbols_output): this.
6801 Rename as...
6802 (symbols_save): this.
6803 (reader): Adjust.
6804 * src/output.c (header_output): New.
6805 (output): Call it.
6806
6807 2001-12-15 Akim Demaille <akim@epita.fr>
6808
6809 * src/reader.c (parse_union_decl): Instead of handling two obstack
6810 simultaneously, use one to define the `stype' muscle, and use the
6811 value of the latter to fill defines_obstack.
6812 (copy_comment): Remove.
6813 (copy_comment2): Work for a single obstack.
6814 Rename as...
6815 (copy_comment): this.
6816
6817 2001-12-15 Akim Demaille <akim@epita.fr>
6818
6819 * src/lex.c, src/lex.h (xgetc): No longer static.
6820 * src/reader.c (parse_union_decl): Revamp.
6821
6822 2001-12-15 Akim Demaille <akim@epita.fr>
6823
6824 Still making progress in separating Bison into (i) input, (ii)
6825 process, (iii) output: now we can directly output the parser file
6826 without using table_obstack at all.
6827
6828 * src/files.c, src/files.h (table_obstack): Bye bye.
6829 (parser_file_name): New.
6830 * src/files.c (compute_output_file_names): Compute it.
6831 * src/output.c (actions_output, output_parser)
6832 (output_master_parser): To a file instead of an obstack.
6833
6834 2001-12-15 Akim Demaille <akim@epita.fr>
6835
6836 Attach actions to rules, instead of pre-outputting them to
6837 actions_obstack.
6838
6839 * src/gram.h (rule_t): action and action_line are new members.
6840 * src/reader.c (symbol_list): Likewise.
6841 (copy_action): Save the actions within the rule.
6842 (packgram): Save them in rule_table.
6843 * src/output.c (actions_output): New.
6844 (output_parser): Use it on `%%actions'.
6845 (output_rule_data): Don't free rule_table.
6846 (output): Do it.
6847 (prepare): Don't save the `action' muscle.
6848 * src/bison.simple: s/%%action/%%actions/.
6849
6850 2001-12-15 Akim Demaille <akim@epita.fr>
6851
6852 * src/reader.c (copy_action): When --yacc, don't append a `;'
6853 to the user action: let it fail if lacking.
6854 Suggested by Arnold Robbins and Tom Tromey.
6855
6856 2001-12-14 Akim Demaille <akim@epita.fr>
6857
6858 * src/lex.c (literalchar): Simply return the char you decoded, non
6859 longer mess around with obstacks and int pointers.
6860 Adjust all callers.
6861
6862 2001-12-14 Akim Demaille <akim@epita.fr>
6863
6864 * src/lex.c (literalchar): Don't escape the special characters,
6865 just decode them, and keep them as char (before, eol was output as
6866 the 2 char string `\n' etc.).
6867 * src/output.c (output_rule_data): Use quotearg to output the
6868 token strings.
6869
6870 2001-12-13 Paul Eggert <eggert@twinsun.com>
6871
6872 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6873 Do not infringe on the global user namespace when using C++.
6874 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6875 All uses of `fprintf' and `stderr' changed.
6876
6877 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6878
6879 2001-12-13 Akim Demaille <akim@epita.fr>
6880
6881 The computation of nullable is broken: it doesn't handle empty
6882 RHS's properly.
6883
6884 * tests/torture.at (GNU AWK Grammar): New.
6885 * tests/sets.at (Nullable): New.
6886 * src/nullable.c (set_nullable): Instead of blindly looping over
6887 `ritems', loop over the rules, and then over their rhs's.
6888
6889 Work around Autotest bugs.
6890
6891 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6892 frame, because Autotest understand lines starting with a `+' as
6893 traces from the shell. Then, they are not processed properly.
6894 Admittedly an Autotest bug, but we don't have time to wait for
6895 Autotest to catch up.
6896 * tests/regression.at (Broken Closure): Adjust to the new table
6897 frames.
6898 Move to...
6899 * tests/sets.at: here.
6900
6901 2001-12-13 Akim Demaille <akim@epita.fr>
6902
6903 * src/closure.c (closure): Use nrules instead of playing tricks
6904 with BITS_PER_WORD.
6905
6906 2001-12-13 Akim Demaille <akim@epita.fr>
6907
6908 * src/print.c (print_actions): Output the handling of `$' as the
6909 traces do: shifting the token EOF. Before EOF was treated as a
6910 nonterminal.
6911 * tests/regression.at: Adjust some tests.
6912 * src/print_graph.c (print_core): Complete the set of items via
6913 closure. The next-to-final and final states are still unsatisfying,
6914 but that's to be addressed elsewhere.
6915 No longer output the rule numbers, but do output the state number.
6916 A single loop for the shifts + gotos is enough, but picked a
6917 distinct color for each.
6918 (print_graph): Initialize and finalize closure.
6919
6920 2001-12-13 Akim Demaille <akim@epita.fr>
6921
6922 * src/reader.c (readgram): Remove dead code, an strip useless
6923 braces.
6924 (get_type): Remove, unused.
6925
6926 2001-12-12 Akim Demaille <akim@epita.fr>
6927
6928 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6929 on that of lib/error.c.
6930
6931 2001-12-12 Akim Demaille <akim@epita.fr>
6932
6933 Some hosts don't like `/' in includes.
6934
6935 * src/system.h: Include libgettext.h without qualifying the path.
6936 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6937 $(top_srcdir).
6938
6939 2001-12-11 Marc Autret <autret_m@epita.fr>
6940
6941 * src/output.c (output_parser): Remove useless muscle.
6942
6943 2001-12-11 Marc Autret <autret_m@epita.fr>
6944
6945 * src/bison.simple: Remove #line just before %%epilogue. It
6946 is now handled in ...
6947 * src/reader.c (read_additionnal_code): Add the output of a
6948 #line for the epilogue.
6949
6950 2001-12-10 Marc Autret <autret_m@epita.fr>
6951
6952 * src/reader.c (copy_definition): Re-use CPP-outed code which
6953 replace precedent remove.
6954 * src/bison.simple: Remove #line before %%prologue because
6955 %%input-line is wrong at this time.
6956
6957 2001-12-10 Marc Autret <autret_m@epita.fr>
6958
6959 * src/reader.c (symbols_output): Clean up.
6960 * src/output.c (output_gram, output): Clean up.
6961
6962 2001-12-10 Akim Demaille <akim@epita.fr>
6963
6964 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6965 * src/LR0.c (set_state_table): here.
6966 * src/lalr.c (lalr): Call it.
6967
6968 2001-12-10 Akim Demaille <akim@epita.fr>
6969
6970 * src/state.h (shifts): Remove the `number' member: shifts are
6971 attached to state, hence no longer need to be labelled with a
6972 state number.
6973
6974 2001-12-10 Akim Demaille <akim@epita.fr>
6975
6976 Now that states have a complete set of members, the linked list of
6977 shifts is useless: just fill directly the state's shifts member.
6978
6979 * src/state.h (shifts): Remove the `next' member.
6980 * src/LR0.c (first_state, last_state): Remove.
6981 Adjust the callers.
6982 (augment_automaton): Don't look for the shifts that must be added
6983 a shift on EOF: it is those of the state we looked for! But now,
6984 since shifts are attached, it is no longer needed to looking
6985 merely by its id: its number.
6986
6987 2001-12-10 Akim Demaille <akim@epita.fr>
6988
6989 * src/LR0.c (augment_automaton): Better variable locality.
6990 Remove an impossible branch: if there is a state corresponding to
6991 the start symbol being shifted, then there is shift for the start
6992 symbol from the initial state.
6993
6994 2001-12-10 Akim Demaille <akim@epita.fr>
6995
6996 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6997 only when appropriate: when insert_start_shifting_state' is not
6998 invoked.
6999 * tests/regression.at (Rule Line Numbers): Adjust.
7000
7001 2001-12-10 Akim Demaille <akim@epita.fr>
7002
7003 * src/LR0.c (augment_automaton): Now that all states have shifts,
7004 merge the two cases addition shifts to the initial state.
7005
7006 2001-12-10 Akim Demaille <akim@epita.fr>
7007
7008 * src/lalr.c (set_state_table): Move to...
7009 * src/LR0.c: here.
7010 * src/lalr.c (lalr): Don't call it...
7011 * src/LR0.c (generate_states): do it.
7012 * src/LR0.h (first_state): Remove, only the table is used.
7013
7014 2001-12-10 Akim Demaille <akim@epita.fr>
7015
7016 * src/LR0.h (first_shift, first_reduction): Remove.
7017 * src/lalr.c: Don't use first_shift: find shifts through the
7018 states.
7019
7020 2001-12-10 Akim Demaille <akim@epita.fr>
7021
7022 * src/LR0.c: Attach shifts to states as soon as they are
7023 computed.
7024 * src/lalr.c (set_state_table): Instead of assigning shifts to
7025 state, just assert that the mapping was properly done.
7026
7027 2001-12-10 Akim Demaille <akim@epita.fr>
7028
7029 * src/LR0.c (insert_start_shift): Rename as...
7030 (insert_start_shifting_state): this.
7031 (insert_eof_shifting_state, insert_accepting_state): New.
7032 (augment_automaton): Adjust.
7033 Better locality of the variables.
7034 When looking if the start_symbol is shifted from the initial
7035 state, using `while (... symbol != start_symbol ...)' sounds
7036 better than `while (... symbol < start_symbol ...)': If fail
7037 to see how the order between symbols could be relevant!
7038
7039 2001-12-10 Akim Demaille <akim@epita.fr>
7040
7041 * src/getargs.h: Don't declare `spec_name_prefix' and
7042 `spec_file_prefix', declared by src/files.h.
7043 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
7044 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
7045 * src/output.c (prepare): Adjust.
7046 * src/reader.c (symbols_output): Likewise.
7047 * src/vmsgetargs.c: Vaguely adjust, but who cares?
7048
7049 2001-12-10 Akim Demaille <akim@epita.fr>
7050
7051 * src/muscle_tab.c (muscle_init): NULL is a better default than
7052 `"0"'.
7053
7054 2001-12-10 Akim Demaille <akim@epita.fr>
7055
7056 * src/reader.c (reader): Calling symbols_output once is enough.
7057
7058 2001-12-10 Akim Demaille <akim@epita.fr>
7059
7060 Now that states have a complete set of members, the linked list of
7061 reductions is useless: just fill directly the state's reductions
7062 member.
7063
7064 * src/state.h (struct reductions): Remove member `number' and
7065 `next'.
7066 * src/LR0.c (first_reduction, last_reduction): Remove.
7067 (save_reductions): Don't link the new reductions, store them in
7068 this_state.
7069 * src/lalr.c (set_state_table): No need to attach reductions to
7070 states, it's already done.
7071 * src/output.c (output_actions): No longer free the shifts, then
7072 the reductions, then the states: free all the states and their
7073 members.
7074
7075 2001-12-10 Akim Demaille <akim@epita.fr>
7076
7077 * src/options.c (OPTN, DRTV, BOTH): New.
7078 (option_table): Use them.
7079
7080 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
7081 the job of system.h.
7082 * src/options.c: Don't include stdio.h and xalloc.h for the same
7083 reasons.
7084
7085 2001-12-10 Akim Demaille <akim@epita.fr>
7086
7087 * src/output.c (output, prepare): Make sure the values of the
7088 muscles `action' and `prologue' are 0-terminated.
7089
7090 2001-12-10 Akim Demaille <akim@epita.fr>
7091
7092 Clean up GCC warnings.
7093
7094 * src/reader.c (copy_action): `buf' is not used.
7095 (parse_skel_decl): Be static.
7096 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
7097 * src/options.h (create_long_option_table): Have a real prototype.
7098 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
7099 (hash_delete_at): Return const void *.
7100 Adjust casts to preserve the const.
7101
7102 2001-12-10 Akim Demaille <akim@epita.fr>
7103
7104 * configure.in: Require 2.52g.
7105 M4 is not needed, but AUTOM4TE is.
7106 * m4/m4.m4: Remove.
7107 * tests/Makefile.am: Adjust.
7108
7109 2001-12-10 Akim Demaille <akim@epita.fr>
7110
7111 One structure for states is enough, even though theoretically
7112 there are LR(0) states and LALR(1) states.
7113
7114 * src/lalr.h (state_t): Remove.
7115 (state_table): Be state_t **, not state_t *.
7116 * src/state.h (core, CORE_ALLOC): Rename as...
7117 (state_t, STATE_ALLOC): this.
7118 Add the LALR(1) members: shifts, reductions, errs.
7119 * src/LR0.c (state_table): Rename as...
7120 (state_hash): this, to avoid name clashes with the global
7121 `state_table'.
7122 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
7123 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
7124
7125 2001-12-10 Akim Demaille <akim@epita.fr>
7126
7127 Bison dumps core on bash.y.
7128 Reported by Pascal Bart.
7129
7130 * src/warshall.c (bitmatrix_print): New.
7131 (TC): Use it.
7132 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
7133 j must be the outer loop.
7134 * tests/regression.at (Broken Closure): New.
7135
7136 2001-12-05 Akim Demaille <akim@epita.fr>
7137
7138 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
7139 its argument.
7140 Reported by Peter Hamorsky.
7141
7142 2001-12-05 Akim Demaille <akim@epita.fr>
7143
7144 * src/conflicts.c (err_table): Remove.
7145 (resolve_sr_conflict): Adjust.
7146 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
7147 Rename as...
7148 (state_t.reductions, state_t.shifts): this.
7149
7150 2001-12-05 Akim Demaille <akim@epita.fr>
7151
7152 * src/reduce.c (reduce_grammar_tables): No longer disable the
7153 removal of useless rules via CPP but via `if (0)', so that the
7154 compiler still check the code is valid.
7155 For instance, it should have noticed `rline' no longer exists: use
7156 the `line' member of rule_t.
7157 * src/gram.c (dummy, rline): Remove, unused.
7158
7159 2001-12-05 Akim Demaille <akim@epita.fr>
7160
7161 * src/output.c (pack_vector): Use assert, not berror.
7162 * src/main.c (berror): Remove, unused.
7163
7164 2001-12-05 Akim Demaille <akim@epita.fr>
7165
7166 New experimental feature: if --verbose --trace output all the
7167 items of a state, not only its kernel.
7168
7169 * src/print.c (print_core): If `trace_flag', then invoke closure
7170 before outputting the items of the state (print_core is no longer
7171 a correct name them).
7172 (print_results): Invoke new_closure/free_closure if needed.
7173
7174 2001-12-05 Akim Demaille <akim@epita.fr>
7175
7176 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
7177 * src/closure.c, src/closure.h (itemsetsize): Rename as...
7178 (nitemset): for consistency with the rest of the project.
7179
7180 2001-12-05 Akim Demaille <akim@epita.fr>
7181
7182 * src/closure.c (print_closure): Improve.
7183 (closure): Use it for printing input and output.
7184
7185 2001-12-05 Akim Demaille <akim@epita.fr>
7186
7187 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
7188 indexed by nonterminals.
7189
7190 2001-12-05 Akim Demaille <akim@epita.fr>
7191
7192 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
7193 what it was!).
7194 * src/warshall.h: Remove accidental duplication of the content.
7195
7196 2001-12-05 Akim Demaille <akim@epita.fr>
7197
7198 * src/closure.c (set_fderives): De-obfuscate.
7199
7200 2001-12-05 Akim Demaille <akim@epita.fr>
7201
7202 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
7203
7204 2001-12-05 Akim Demaille <akim@epita.fr>
7205
7206 * src/closure.c (set_firsts): De-obfuscate.
7207
7208 2001-12-05 Akim Demaille <akim@epita.fr>
7209
7210 * src/output.c (action_row): De-obfuscate
7211 using the good o' techniques: arrays not pointers, variable
7212 locality, BITISSET, RESETBIT etc.
7213
7214 2001-12-05 Akim Demaille <akim@epita.fr>
7215
7216 Pessimize the code to simplify it: from now on, all the states
7217 have a valid SHIFTS, which NSHIFTS is possibly 0.
7218
7219 * src/LR0.c (shifts_new): Be global and move to..
7220 * src/state.c, src/state.h: here.
7221 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
7222 * src/print_graph: Adjust.
7223
7224 2001-12-05 Akim Demaille <akim@epita.fr>
7225
7226 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
7227 * src/conflicts.c: Use it.
7228 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
7229 incorrectly ``simplified''.
7230
7231 2001-12-05 Akim Demaille <akim@epita.fr>
7232
7233 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
7234 using the good o' techniques: arrays not pointers, variable
7235 locality, BITISSET, RESETBIT etc.
7236
7237 2001-12-05 Akim Demaille <akim@epita.fr>
7238
7239 * src/state.h (SHIFT_SYMBOL): New.
7240 * src/conflicts.c: Use it to deobfuscate.
7241
7242 2001-12-05 Akim Demaille <akim@epita.fr>
7243
7244 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
7245 (print_reductions): De-obfuscate using the good o' techniques:
7246 arrays not pointers, variable locality, BITISSET.
7247
7248 2001-12-05 Akim Demaille <akim@epita.fr>
7249
7250 * src/conflicts.c (print_reductions): Arrays, not pointers.
7251 Use BITISSET.
7252
7253 2001-12-05 Akim Demaille <akim@epita.fr>
7254
7255 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7256
7257 2001-12-05 Akim Demaille <akim@epita.fr>
7258
7259 * src/conflicts.c (print_reductions): Improve variable locality.
7260
7261 2001-12-05 Akim Demaille <akim@epita.fr>
7262
7263 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7264
7265 2001-12-05 Akim Demaille <akim@epita.fr>
7266
7267 * src/conflicts.c (print_reductions): Improve variable locality.
7268
7269 2001-12-05 Akim Demaille <akim@epita.fr>
7270
7271 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
7272 * src/lalr.c: Use them.
7273
7274 2001-12-05 Akim Demaille <akim@epita.fr>
7275
7276 * src/LR0.c (augment_automaton): Formatting changes.
7277 Better variable locality.
7278
7279 2001-12-05 Akim Demaille <akim@epita.fr>
7280
7281 * src/lalr.c (matrix_print): New.
7282 (transpose): Use it.
7283 Use arrays instead of pointers.
7284
7285 2001-12-05 Akim Demaille <akim@epita.fr>
7286
7287 * src/lalr.c (maxrhs): Move to...
7288 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
7289 * src/lalr.c (build_relations): Adjust.
7290
7291 2001-12-05 Akim Demaille <akim@epita.fr>
7292
7293 * src/lalr.c (transpose): Free the memory allocated to the
7294 argument, as it is replaced by the results by the unique caller.
7295 (build_relations): Merely invoke transpose: it handles the memory
7296 deallocation.
7297 Improve variable locality.
7298 Avoid variables used as mere abbreviations.
7299 (compute_lookaheads): Use arrays instead of pointers.
7300
7301 2001-12-05 Akim Demaille <akim@epita.fr>
7302
7303 * src/lalr.c (initialize_F): Improve variable locality.
7304 Avoid variables used as mere abbreviations.
7305
7306 2001-12-05 Akim Demaille <akim@epita.fr>
7307
7308 * src/derives.c (print_derives): Display the ruleno.
7309 * src/lalr.c (initialize_F, transpose): Better variable locality
7310 to improve readability.
7311 Avoid variables used as mere abbreviations.
7312
7313 2001-12-05 Akim Demaille <akim@epita.fr>
7314
7315 * src/lalr.c (traverse): Use arrays instead of pointers.
7316
7317 2001-12-05 Akim Demaille <akim@epita.fr>
7318
7319 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
7320 the handling of squeue.
7321 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7322
7323 2001-12-05 Akim Demaille <akim@epita.fr>
7324
7325 Because useless nonterminals are now kept alive (instead of being
7326 `destroyed'), we now sometimes examine them, and store information
7327 related to them. Hence we need to know their number, and adjust
7328 memory allocations.
7329
7330 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
7331 static.
7332 * src/LR0.c (allocate_itemsets): The memory allocated to
7333 `symbol_count' was used for two different purpose: once to count
7334 the number of occurrences of each symbol, and later reassigned to
7335 `shift_symbol', containing the symbol that can be shifted from a
7336 given state.
7337 Deobfuscate, i.e., allocate, use and free `symbol_count' here
7338 only, and...
7339 (new_itemsets): Allocate `shift_symbol' here.
7340 (allocate_itemsets): symbol_count includes useless nonterminals.
7341 Make room for them.
7342 (free_storage): Use `free', not `XFREE', for pointers that cannot
7343 be null.
7344
7345 2001-12-05 Akim Demaille <akim@epita.fr>
7346
7347 * src/nullable.c (set_nullable): Deobfuscate the handling of
7348 ritem.
7349 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7350
7351 2001-12-05 Akim Demaille <akim@epita.fr>
7352
7353 * src/gram.c, src/gram.h (ritem_print): New.
7354 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
7355 (This useless function was defined only to work around VMS linkers
7356 that can't handle compilation units with variables only).
7357 * src/reduce.c (dump_grammar): Use it to trace the construction of
7358 ritem.
7359
7360 2001-12-04 Paul Eggert <eggert@twinsun.com>
7361
7362 * src/bison.simple (union yyalloc): Change member names
7363 to be the same as the stack names.
7364 (yyparse): yyptr is now union yyalloc *, not char *.
7365 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
7366 and may generate better code on some machines.
7367 (yystpcpy): Use prototype if __STDC__ is defined, not just
7368 if __cplusplus is defined.
7369
7370 2001-11-30 Akim Demaille <akim@epita.fr>
7371
7372 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
7373 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
7374 Gettext doesn't compile cleanly, and dies with -Werror.
7375 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
7376 Include WARNING_CFLAGS here.
7377 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
7378 before being defined.
7379
7380 2001-11-27 Paul Eggert <eggert@twinsun.com>
7381
7382 * lib/quotearg.h (quotearg_n, quotearg_n_style):
7383 First arg is int, not unsigned.
7384 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
7385 (SIZE_MAX, UINT_MAX): New macros.
7386 (quotearg_n_options): Abort if N is negative.
7387 Avoid overflow check on hosts where size_t is 64 bits and int
7388 is 32 bits, as overflow is impossible there.
7389 Fix off-by-one typo that caused unnecessary reallocation.
7390
7391 2001-11-29 Paul Eggert <eggert@twinsun.com>
7392
7393 Name space cleanup in generated parser.
7394
7395 * doc/bison.texinfo (Bison Parser): Discuss system headers
7396 and their effect on the user name space.
7397
7398 * src/bison.simple:
7399 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7400 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7401 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7402
7403 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7404 on user names when possible.
7405
7406 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7407 Simplify test for whather <alloca.h> exists.
7408
7409 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7410
7411 (<stdio.h>): Include if YYDEBUG.
7412
7413 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7414 ! defined (yyoverflow) && ! defined (yymemcpy).
7415
7416 (yymemcpy, yyparse): Rename local variables as needed so that
7417 they all begin with 'yy'.
7418
7419 (yystrlen, yystpcpy): New functions.
7420
7421 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7422 All uses changed.
7423
7424 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7425 instead of relying on string.h functions. Use YYSTACK_ALLOC
7426 and YYSTACK_FREE instead of malloc and free.
7427
7428 2001-11-30 Akim Demaille <akim@epita.fr>
7429
7430 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7431 before their first uses.
7432 (YYBISON, YYPURE): Move to the top of the output.
7433
7434 2001-11-30 Akim Demaille <akim@epita.fr>
7435
7436 * tests/reduce.at (Useless Nonterminals): Fix.
7437
7438 2001-11-30 Akim Demaille <akim@epita.fr>
7439
7440 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7441 if body instead of `;' to pacify GCC's warnings.
7442
7443 2001-11-30 Akim Demaille <akim@epita.fr>
7444
7445 Instead of mapping the LHS of unused rules to -1, keep the LHS
7446 valid, but flag the rules as invalid.
7447
7448 * src/gram.h (rule_t): `useful' is a new member.
7449 * src/print.c (print_grammar): Adjust.
7450 * src/derives.c (set_derives): Likewise.
7451 * src/reader.c (packgram, reduce_output): Likewise.
7452 * src/reduce.c (reduce_grammar_tables): Likewise.
7453 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7454
7455 2001-11-30 Akim Demaille <akim@epita.fr>
7456
7457 * src/reduce.c (reduce_output): Formatting changes.
7458 * src/print.c (print_results, print_grammar): Likewise.
7459 * tests/regression.at (Rule Line Numbers)
7460 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7461
7462 2001-11-30 Akim Demaille <akim@epita.fr>
7463
7464 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7465 useless nonterminals, move them at the end of the symbol arrays.
7466 (reduce_output): Adjust.
7467 * tests/reduce.at (Useless Nonterminals): Adjust.
7468
7469 2001-11-30 Akim Demaille <akim@epita.fr>
7470
7471 * src/reduce.c: Various comment/formatting changes.
7472 (nonterminals_reduce): New, extracted from...
7473 (reduce_grammar_tables): here.
7474 (reduce_grammar): Call nonterminals_reduce.
7475
7476 2001-11-29 Paul Eggert <eggert@twinsun.com>
7477
7478 * src/bison.simple (YYSTACK_REALLOC): Remove.
7479 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7480 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7481 New macros.
7482 (union yyalloc): New type.
7483 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7484 an arbitrary restriction on hosts where size_t is wider than int.
7485
7486 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7487 a parser stack overflow. Allocate just one block of memory for all
7488 three stacks, instead of allocating three blocks; this typically is
7489 faster and reduces fragmentation.
7490
7491 Do not limit the number of items in the stack to a value that fits
7492 in 'int', as this is an arbitrary limit on hosts with 64-bit
7493 size_t and 32-bit int.
7494
7495 2001-11-29 Marc Autret <autret_m@epita.fr>
7496
7497 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7498 of defining YYERROR_VERBOSE.
7499 [AT_DATA]: $4 is now out of C declarations in the prologue.
7500
7501 2001-11-28 Marc Autret <autret_m@epita.fr>
7502
7503 * src/reader.c (parse_dquoted_param): New.
7504 (parse_skel_decl): Use it.
7505 * src/lex.h: Add its prototype.
7506 * src/lex.c (literalchar): Become not static.
7507
7508 2001-11-28 Marc Autret <autret_m@epita.fr>
7509
7510 * src/output.h: And put its extern declaration here.
7511 * src/output.c (error_verbose): Define here.
7512 (prepare): Echo name modification.
7513 * src/getargs.h: Clean its extern declaration.
7514 * src/getargs.c (error_verbose_flag): Remove.
7515 (getargs): Remove case 'e'.
7516 * src/options.c (option_table): 'error-verbose' is now seen as simple
7517 percent option.
7518 Include output.h.
7519
7520 * src/reader.c (read_declarations): Remove case tok_include.
7521 (parse_include_decl): Remove.
7522 * src/lex.h (token_t): Remove tok_include.
7523 * src/options.c (option_table): 'include' is now a simple command line
7524 option.
7525
7526 2001-11-28 Marc Autret <autret_m@epita.fr>
7527
7528 * src/bison.simple: Adjust muscle names.
7529 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7530 * src/output.c (prepare): s/_/-/ for the muscles names.
7531 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7532
7533 2001-11-28 Marc Autret <autret_m@epita.fr>
7534
7535 * src/bison.simple: Fix debug.
7536 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7537
7538 2001-11-28 Akim Demaille <akim@epita.fr>
7539
7540 * src/LR0.c (shifts_new): New.
7541 (save_shifts, insert_start_shift, augment_automaton): Use it.
7542
7543 2001-11-28 Akim Demaille <akim@epita.fr>
7544
7545 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7546 keep ruleno only.
7547
7548 2001-11-28 Akim Demaille <akim@epita.fr>
7549
7550 * src/closure.c (closure): Instead of looping over word in array
7551 then bits in words, loop over bits in array.
7552
7553 2001-11-28 Akim Demaille <akim@epita.fr>
7554
7555 * src/closure.c (closure): No longer optimize the special case
7556 where all the bits of `ruleset[r]' are set to 0, to make the code
7557 clearer.
7558
7559 2001-11-28 Akim Demaille <akim@epita.fr>
7560
7561 * src/closure.c (closure): `r' and `c' are new variables, used to
7562 de-obfuscate accesses to RULESET and CORE.
7563
7564 2001-11-28 Akim Demaille <akim@epita.fr>
7565
7566 * src/reduce.c (reduce_print): Use ngettext.
7567 (dump_grammar): Improve the trace accuracy.
7568
7569 2001-11-28 Akim Demaille <akim@epita.fr>
7570
7571 * src/reduce.c (dump_grammar): Don't translate trace messages.
7572
7573 2001-11-28 Akim Demaille <akim@epita.fr>
7574
7575 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7576 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7577 as all tags are free'ed afterwards.
7578 From Enrico Scholz.
7579
7580 2001-11-27 Paul Eggert <eggert@twinsun.com>
7581
7582 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7583 use alloca when we didn't want to, and vice versa.
7584
7585 2001-11-27 Marc Autret <autret_m@epita.fr>
7586
7587 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7588 initialization.
7589 * src/output.c (prepare): Remove its update.
7590
7591 2001-11-27 Marc Autret <autret_m@epita.fr>
7592
7593 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7594 Use %error-verbose.
7595
7596 2001-11-27 Marc Autret <autret_m@epita.fr>
7597
7598 * src/bison.simple: Remove YYERROR_VERBOSE using.
7599 Use %%error_verbose.
7600 (yyparse): Likewise.
7601 * src/output.c (prepare): Give its final value.
7602 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7603 * src/getargs.h: Add its extern declaration.
7604 * src/getargs.c (error_verbose_flag): New int.
7605 (getargs): Update to catch new case.
7606 * src/options.c (option_table): 'error-verbose' is a new option.
7607 (shortopts): Update.
7608
7609 2001-11-27 Akim Demaille <akim@epita.fr>
7610
7611 * src/system.h: Use intl/libgettext.h.
7612 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7613
7614 2001-11-27 Akim Demaille <akim@epita.fr>
7615
7616 * tests/torture.at (Exploding the Stack Size with Malloc):
7617 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7618
7619 2001-11-27 Akim Demaille <akim@epita.fr>
7620
7621 * src/files.c: Include error.h.
7622 Reported by Hans Aberg.
7623
7624 2001-11-26 Marc Autret <autret_m@epita.fr>
7625
7626 * src/reader.c (parse_include_decl): New, not yet implemented.
7627 (read_declarations): Add case tok_include.
7628 * src/getargs.h (include): Add its extern definition.
7629 * src/getargs.c (include): New const char *.
7630 (getargs): Add case '-I'.
7631 * src/options.c (option_table): Add include as command line and
7632 percent option.
7633 * src/lex.h (token_t): Add tok_include.
7634
7635 2001-11-26 Akim Demaille <akim@epita.fr>
7636
7637 * src/reader.c (readgram): Make sure rules for mid-rule actions
7638 have a lineno equal to that of their host rule.
7639 Reported by Hans Aberg.
7640 * tests/regression.at (Rule Line Numbers): New.
7641
7642 2001-11-26 Akim Demaille <akim@epita.fr>
7643
7644 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7645 size_ts.
7646
7647 2001-11-26 Akim Demaille <akim@epita.fr>
7648
7649 * src/complain.c, src/complain.h (error): Remove, provided by
7650 lib/error.[ch].
7651
7652 2001-11-26 Akim Demaille <akim@epita.fr>
7653
7654 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7655 issue an error message.
7656 * tests/regression.at (Invalid %directive): New.
7657 Reported by Hans Aberg.
7658
7659 2001-11-26 Akim Demaille <akim@epita.fr>
7660
7661 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7662 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7663
7664 2001-11-26 Akim Demaille <akim@epita.fr>
7665
7666 * src/conflicts.c (conflicts_print): Don't complain at all when
7667 there are no reduce/reduce conflicts, and as many shift/reduce
7668 conflicts as expected.
7669 * tests/regression.at (%expect right): Adjust.
7670
7671 2001-11-23 Akim Demaille <akim@epita.fr>
7672
7673 * lib/alloca.c: Update, from fileutils.
7674
7675 2001-11-23 Akim Demaille <akim@epita.fr>
7676
7677 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7678
7679 2001-11-23 Akim Demaille <akim@epita.fr>
7680
7681 * src/system.h: Include alloca.h.
7682 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7683
7684 2001-11-23 Akim Demaille <akim@epita.fr>
7685
7686 * src/print_graph.c (print_actions): Remove `rule', unused.
7687 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7688 pacify GCC's signed < unsigned warnings.
7689 * src/closure.c (itemsetsize): Likewise.
7690 * src/reader.c (symbol_list_new): Static.
7691
7692 2001-11-23 Akim Demaille <akim@epita.fr>
7693
7694 Attaching lineno to buckets is stupid, since only one copy of each
7695 symbol is kept, only the line of the first occurrence is kept too.
7696
7697 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7698 * src/reader.c (rline_allocated): Remove, unused.
7699 (symbol_list): Have a `line' member.
7700 (symbol_list_new): New.
7701 (readgram): Use it.
7702 * src/print.c (print_grammar): Output the rule line numbers.
7703 * tests/regression.at (Solved SR Conflicts)
7704 (Unresolved SR Conflicts): Adjust.
7705 Reported by Hans Aberg.
7706
7707 2001-11-22 Marc Autret <autret_m@epita.fr>
7708
7709 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7710
7711 2001-11-22 Marc Autret <autret_m@epita.fr>
7712
7713 * src/muscle_tab.c (muscle_init): Remove initialization of
7714 skeleton muscle.
7715 * src/output.c (output_master_parser): Do it here.
7716
7717 2001-11-20 Akim Demaille <akim@epita.fr>
7718
7719 * po/sv.po: New.
7720 * configure.in (ALL_LINGUAS): Adjust.
7721 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7722 longer contains strings to translate.
7723
7724 2001-11-19 Akim Demaille <akim@epita.fr>
7725
7726 * src/conflicts.c (conflicts_print): Add a missing \n.
7727
7728 2001-11-19 Akim Demaille <akim@epita.fr>
7729
7730 * src/nullable.c (nullable_print): New.
7731 (set_nullable): Call it when tracing.
7732 Better locality of variables.
7733
7734 2001-11-19 Akim Demaille <akim@epita.fr>
7735
7736 * src/print.c (print_actions): Better locality of variables.
7737
7738 2001-11-19 Akim Demaille <akim@epita.fr>
7739
7740 * src/derives.c (print_derives): Fix and enrich.
7741 * src/closure.c (print_fderives): Likewise.
7742
7743 2001-11-19 Akim Demaille <akim@epita.fr>
7744
7745 * src/closure.c (itemsetend): Remove, replaced with...
7746 (itemsetsize): new.
7747
7748 2001-11-19 Akim Demaille <akim@epita.fr>
7749
7750 * src/LR0.c (kernel_end): Remove, replaced with...
7751 (kernel_size): new.
7752
7753 2001-11-19 Akim Demaille <akim@epita.fr>
7754
7755 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7756 to clarify.
7757
7758 2001-11-19 Akim Demaille <akim@epita.fr>
7759
7760 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7761
7762 2001-11-19 Akim Demaille <akim@epita.fr>
7763
7764 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7765 trace messages.
7766 * src/LR0.c: Likewise.
7767 (allocate_itemsets): Use arrays instead of pointers to clarify.
7768
7769 2001-11-19 Akim Demaille <akim@epita.fr>
7770
7771 * src/getargs.c (statistics_flag): Replace with...
7772 (trace_flag): New.
7773 (longopts): Accept --trace instead of --statistics.
7774 * src/getargs.h, src/options.c: Adjust.
7775 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7776 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7777
7778 2001-11-19 Akim Demaille <akim@epita.fr>
7779
7780 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7781 pointers to clarify the code.
7782 (save_reductions, save_shifts): Factor common parts of alternatives.
7783
7784 2001-11-19 Akim Demaille <akim@epita.fr>
7785
7786 * src/LR0.c (new_state, get_state): Complete TRACE code.
7787 * src/closure.c: Include `reader.h' to get `tags', needed by the
7788 trace code.
7789 Rename the conditional DEBUG as TRACE.
7790 Output consistently TRACEs to stderr, not stdout.
7791 * src/derives.c: Likewise.
7792 * src/reduce.c: (inaccessable_symbols): Using if is better style
7793 than goto.
7794 Use `#if TRACE' instead of `#if 0' for tracing code.
7795
7796 2001-11-19 Akim Demaille <akim@epita.fr>
7797
7798 * src/system.h (LIST_FREE, shortcpy): New.
7799 * src/LR0.c: Use them.
7800 * src/output.c (free_itemsets, free_reductions, free_shifts):
7801 Remove, replaced by LIST_FREE.
7802
7803 2001-11-19 Akim Demaille <akim@epita.fr>
7804
7805 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7806 (REDUCTIONS_ALLOC): New.
7807 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7808 allocation.
7809
7810 2001-11-19 Akim Demaille <akim@epita.fr>
7811
7812 * src/LR0.c (new_state): Complete trace code.
7813 * src/nullable.c (set_nullable): Don't translate traces.
7814
7815 2001-11-19 Akim Demaille <akim@epita.fr>
7816
7817 * src/print_graph.c (print_core): Better locality of variables.
7818 * src/print.c (print_core): Likewise.
7819
7820 2001-11-19 Akim Demaille <akim@epita.fr>
7821
7822 * src/vcg.c: You do the output, so you are responsible of the
7823 handling of VCG syntax, in particular: use quotearg.
7824 * src/print_graph.c: Don't.
7825 (print_actions): Don't output the actions as part of the nodes,
7826 since that's the job of the edges.
7827 (print_state): Don't output by hand: fill the node description,
7828 and ask for its output.
7829
7830 2001-11-19 Akim Demaille <akim@epita.fr>
7831
7832 * src/bison.simple (yyparse): When verbosely reporting an error,
7833 no longer put additional quotes around token names.
7834 * tests/calc.at: Adjust.
7835
7836 2001-11-19 Akim Demaille <akim@epita.fr>
7837
7838 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7839 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7840 * src/output.c: Adjust.
7841
7842 2001-11-19 Akim Demaille <akim@epita.fr>
7843
7844 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7845 (rule_t): this.
7846 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7847
7848 2001-11-19 Akim Demaille <akim@epita.fr>
7849
7850 * src/gram.h (rule_t): New.
7851 (rule_table): New.
7852 (rrhs, rlhs): Remove, part of state_t.
7853 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7854 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7855 * src/reader.c, src/reduce.c: Adjust.
7856
7857 2001-11-19 Akim Demaille <akim@epita.fr>
7858
7859 * src/reader.c (symbols_output): New, extracted from...
7860 (packsymbols): Here.
7861 (reader): Call it.
7862
7863 2001-11-19 Akim Demaille <akim@epita.fr>
7864
7865 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7866 (maxrhs): this new function.
7867
7868 2001-11-19 Akim Demaille <akim@epita.fr>
7869
7870 * src/lalr.c (F): New macro to access the variable F.
7871 Adjust.
7872
7873 2001-11-19 Akim Demaille <akim@epita.fr>
7874
7875 * src/lalr.h (LA): New macro to access the variable LA.
7876 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7877 * src/lalr.c: Adjust.
7878
7879 2001-11-19 Akim Demaille <akim@epita.fr>
7880
7881 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7882 (set_state_table): handle the `lookaheads' members.
7883
7884 2001-11-19 Akim Demaille <akim@epita.fr>
7885
7886 * src/lalr.h (lookaheads): Removed array, whose contents is now
7887 a member of...
7888 (state_t): this structure.
7889 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7890 Adjust.
7891
7892 2001-11-19 Akim Demaille <akim@epita.fr>
7893
7894 * src/lalr.h (consistent): Removed array, whose contents is now
7895 a member of...
7896 (state_t): this structure.
7897 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7898 Adjust.
7899
7900 2001-11-19 Akim Demaille <akim@epita.fr>
7901
7902 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7903 contents are now members of...
7904 (state_t): this structure.
7905 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7906 Adjust.
7907
7908 2001-11-19 Akim Demaille <akim@epita.fr>
7909
7910 * src/lalr.h (state_t): New.
7911 (state_table): Be a state_t * instead of a core **.
7912 (accessing_symbol): Remove, part of state_t.
7913 * src/lalr.c: Adjust.
7914 (set_accessing_symbol): Merge into...
7915 (set_state_table): this.
7916 * src/print_graph.c, src/conflicts.c: Adjust.
7917
7918 2001-11-14 Akim Demaille <akim@epita.fr>
7919
7920 * tests/calc.at, tests/output.at, tests/regression.at,
7921 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7922 now the tests are run in private dirs, therefore AC_CLEANUP and
7923 family can be simplified to 0-ary.
7924 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7925 use abs. path to find config.h.
7926 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7927 stderr, there can be way too much random noise.
7928 Instead pass -Werror to GCC and rely on the exit status.
7929 Reported by Wolfram Wagner.
7930
7931 2001-11-14 Akim Demaille <akim@epita.fr>
7932
7933 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7934 defined only if yyoverflow is defined, to avoid `warning: unused
7935 variable `yyvs1''.
7936 Reported by The Test Suite.
7937
7938 2001-11-14 Akim Demaille <akim@epita.fr>
7939
7940 * src/print.c: Include reduce.h.
7941 Reported by Hans Aberg.
7942
7943 2001-11-14 Akim Demaille <akim@epita.fr>
7944
7945 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7946 Revert a previous patch: these are really const.
7947 * src/conflicts.c (conflict_report): Additional useless pair of
7948 braces to pacify GCC's warnings for `if () if () {} else {}'.
7949 * src/lex.c (parse_percent_token): Replace equal_offset with
7950 arg_offset.
7951 arg is const.
7952 Be sure to strdup `arg' when used, since there is no reason for
7953 token_buffer not to change.
7954
7955 2001-11-14 Akim Demaille <akim@epita.fr>
7956
7957 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7958 definition.
7959 * src/main.c (main): Use them.
7960 Suggested by Hans Aberg.
7961
7962 2001-11-12 Akim Demaille <akim@epita.fr>
7963
7964 * src/system.h (ngettext): Now that we use ngettext, be sure to
7965 provide a default definition when NLS are not used.
7966
7967 2001-11-12 Akim Demaille <akim@epita.fr>
7968
7969 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7970 Use @kbd to denote user input.
7971 (Language and Grammar): ANSIfy the example.
7972 Adjust its layout for info/notinfo.
7973 (Location Tracking Calc): Output error messages to stderr.
7974 Output locations in a more GNUtically correct way.
7975 Fix a couple of Englishos.
7976 Adjust @group/@end group pairs.
7977
7978 2001-11-12 Akim Demaille <akim@epita.fr>
7979
7980 %expect was not functioning at all.
7981
7982 * src/conflicts.c (expected_conflicts): Set to -1.
7983 (conflict_report): Use ngettext.
7984 (conflicts_print): Check %expect and make its violation an error.
7985 * doc/bison.texinfo (Expect Decl): Adjust.
7986 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7987 * tests/regression.at (%expect not enough, %expect right)
7988 (%expect too much): New.
7989
7990 2001-11-12 Akim Demaille <akim@epita.fr>
7991
7992 * tests/regression.at (Conflicts): Rename as...
7993 (Unresolved SR Conflicts): this.
7994 (Solved SR Conflicts): New.
7995
7996 2001-11-12 Akim Demaille <akim@epita.fr>
7997
7998 * src/reduce.c (print_results): Rename as...
7999 (reduce_output): This.
8000 Output to OUT, passed as argument, instead of output_obstack.
8001 (dump_grammar): Likewise.
8002 (reduce_free): New.
8003 Also free V1.
8004 (reduce_grammar): No longer call reduce_output, since...
8005 * src/print.c (print_results): do it.
8006 * src/main.c (main): Call reduce_free;
8007
8008 2001-11-12 Akim Demaille <akim@epita.fr>
8009
8010 * src/conflicts.c (print_reductions): Accept OUT as argument.
8011 Output to it, not to output_obstack.
8012 * src/print.c (print_actions): Adjust.
8013
8014 2001-11-12 Akim Demaille <akim@epita.fr>
8015
8016 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
8017 the result instead of using...
8018 (src_total, rrc_total, src_count, rrc_count): Remove.
8019 (any_conflicts): Remove.
8020 (print_conflicts): Split into...
8021 (conflicts_print, conflicts_output): New.
8022 * src/conflicts.h: Adjust.
8023 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
8024 * src/print.c (print_grammar): Issue `\n' between two rules.
8025 * tests/regression.at (Conflicts): New.
8026 Reported by Tom Lane.
8027
8028 2001-11-12 Akim Demaille <akim@epita.fr>
8029
8030 * tests/regression.at (Invalid input): Remove, duplicate with
8031 ``Invalid input: 1''.
8032
8033 2001-11-12 Akim Demaille <akim@epita.fr>
8034
8035 * tests/torture.at (AT_DATA_STACK_TORTURE)
8036 (Exploding the Stack Size with Alloca)
8037 (Exploding the Stack Size with Malloc): New.
8038
8039 2001-11-12 Akim Demaille <akim@epita.fr>
8040
8041 * src/bison.simple (YYSTACK_REALLOC): New.
8042 (yyparse) [!yyoverflow]: Use it and free the old stack.
8043 Reported by Per Allansson.
8044
8045 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
8046
8047 * src/bison.simple: Define type yystype instead of YYSTYPE, and
8048 define CPP macro, which substitute YYSTYPE by yystype.
8049 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
8050 with yyltype/YYLTYPE. This allows inclusion of the generated
8051 header within the parser if the compiler, such as GGC, accepts
8052 multiple equivalent #defines.
8053 From Akim.
8054
8055 2001-11-05 Akim Demaille <akim@epita.fr>
8056
8057 * src/reader.c (symbols_output): New, extracted from...
8058 (packsymbols): here.
8059 (reader): Adjust.
8060
8061 2001-11-05 Akim Demaille <akim@epita.fr>
8062
8063 * src/lex.c (parse_percent_token): s/quotearg/quote/.
8064
8065 2001-11-05 Akim Demaille <akim@epita.fr>
8066
8067 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
8068 pattern.
8069
8070 2001-11-05 Akim Demaille <akim@epita.fr>
8071
8072 * src/options.h (struct option_table_struct): set_flags is void*.
8073 * src/options.c (longopts): Support `--output' and `%output'.
8074 (usage): Adjust.
8075 * src/lex.h (tok_setopt): Remove, replaced with...
8076 (tok_intopt, tok_stropt): these new guys.
8077 * src/lex.c (getopt.h): Not needed.
8078 (token_buffer, unlexed_token_buffer): Not const.
8079 (percent_table): Promote `-' over `_' in directive names.
8080 Active `%name-prefix', `file-prefix', and `output'.
8081 (parse_percent_token): Accept possible arguments to directives.
8082 Promote `-' over `_' in directive names.
8083
8084 2001-11-04 Akim Demaille <akim@epita.fr>
8085
8086 * doc/bison.texinfo (Decl Summary): Split the list into
8087 `directives for grammars' and `directives for bison'.
8088 Sort'em.
8089 Add description of `%name-prefix', `file-prefix', and `output'.
8090 Promote `-' over `_' in directive names.
8091 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
8092 Simplify the description of `--name-prefix'.
8093 Promote `-' over `_' in directive names.
8094 Promote `--output' over `--output-file'.
8095 Fix the description of `--defines'.
8096 * tests/output.at: Exercise %file-prefix and %output.
8097
8098 2001-11-02 Akim Demaille <akim@epita.fr>
8099
8100 * doc/refcard.tex: Update.
8101
8102 2001-11-02 Akim Demaille <akim@epita.fr>
8103
8104 * src/symtab.h (SUNDEF): New.
8105 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
8106 stand for `uninitialized', instead of 0.
8107 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
8108 * src/lex.c (lex): Adjust.
8109
8110 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
8111 Number it 0.
8112 Let yylex return it instead of a plain 0.
8113 Reported by Dick Streefland.
8114
8115 2001-11-02 Akim Demaille <akim@epita.fr>
8116
8117 * tests/regression.at (Mixing %token styles): New test.
8118
8119 2001-11-02 Akim Demaille <akim@epita.fr>
8120
8121 * src/reader.c (parse_thong_decl): Formatting changes.
8122 (token_translations_init): New, extracted from...
8123 (packsymbols): Here.
8124 Adjust.
8125
8126 2001-11-01 Akim Demaille <akim@epita.fr>
8127
8128 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
8129 Check that `9foo.y' produces correct cpp guards.
8130 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
8131 guards.
8132 Reported by Wwp.
8133
8134 2001-11-01 Akim Demaille <akim@epita.fr>
8135
8136 * tests/regression.at (Invalid input: 2): New.
8137 * src/lex.c (unlexed_token_buffer): New.
8138 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
8139 too.
8140 Reported by Wwp.
8141
8142 2001-11-01 Akim Demaille <akim@epita.fr>
8143
8144 * tests/calc.at: Catch up with 1.30.
8145 * configure.in: Bump to 1.49a.
8146 Adjust to newer Autotest.
8147
8148 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
8149
8150 * src/conflicts.c: Move global variables rrc_total and src_total ...
8151 (print_conflicts): here.
8152 * src/output.c (output): Free global variable user_toknums.
8153 * src/lex.c (token_obstack): Become static.
8154
8155 2001-10-18 Akim Demaille <akim@epita.fr>
8156
8157 * tests/atlocal.in (GCC): Add.
8158 * tests/calc.at: s/m4_match/m4_bmatch/.
8159 s/m4_patsubst/m4_bpatsubst/.
8160 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
8161 * configure.in: AC_SUBST(GCC).
8162
8163 2001-10-14 Marc Autret <autret_m@epita.fr>
8164
8165 * src/options.c (create_long_option_table): Fix.
8166
8167 2001-10-10 Akim Demaille <akim@epita.fr>
8168
8169 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
8170
8171 2001-10-04 Akim Demaille <akim@epita.fr>
8172
8173 * src/reader.c (parse_union_decl): Push the caracters in
8174 union_obstack, not attrs_obstack.
8175
8176 2001-10-04 Akim Demaille <akim@epita.fr>
8177
8178 Merge in the branch 1.29.
8179
8180 * src/reader.c (packsymbols): Use a temporary obstack for
8181 `%%tokendef', since output_stack is already used elsewhere.
8182
8183 2001-10-02 Akim Demaille <akim@epita.fr>
8184
8185 Bump 1.29d.
8186
8187 2001-10-02 Akim Demaille <akim@epita.fr>
8188
8189 Version 1.29c.
8190
8191 2001-10-02 Akim Demaille <akim@epita.fr>
8192
8193 * tests/regression.at (Invalid CPP headers): New.
8194 From Alexander Belopolsky.
8195 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
8196
8197 2001-10-02 Akim Demaille <akim@epita.fr>
8198
8199 * tests/regression.at (Invalid input): New.
8200 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
8201 Reported by Shura.
8202
8203 2001-10-02 Akim Demaille <akim@epita.fr>
8204
8205 * tests/calc.at: Now that --debug works, the tests must be adjusted.
8206
8207 2001-10-02 Akim Demaille <akim@epita.fr>
8208
8209 * src/output.c (output_parser): Assert `skeleton'.
8210 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
8211 systems.
8212 From Shura.
8213
8214 2001-10-01 Marc Autret <autret_m@epita.fr>
8215
8216 * src/lex.h: Echo modifications.
8217 * src/lex.c (unlex): Parameter is now token_t.
8218 From Hans Aberg.
8219
8220 2001-10-01 Marc Autret <autret_m@epita.fr>
8221
8222 * src/main.c: Include lex.h.
8223 From Hans Aberg.
8224
8225 2001-09-29 Akim Demaille <akim@epita.fr>
8226
8227 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
8228
8229 2001-09-28 Akim Demaille <akim@epita.fr>
8230
8231 * tests/testsuite.at: Update to newer Autotest.
8232 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
8233
8234 2001-09-27 Akim Demaille <akim@epita.fr>
8235
8236 Position independent wrapper.
8237
8238 * tests/bison: Remove.
8239 * tests/bison.in: New.
8240 * configure.in: Adjust.
8241
8242 2001-09-27 Paul Eggert <eggert@twinsun.com>
8243
8244 Port quotearg fixes from tar 1.13.24.
8245
8246 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
8247 tm to be declared.
8248 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
8249 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
8250
8251 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
8252 * m4/mbrtowc.m4: New file.
8253 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
8254 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
8255
8256 2001-09-27 Akim Demaille <akim@epita.fr>
8257
8258 Bump to 1.29c.
8259
8260 2001-09-27 Akim Demaille <akim@epita.fr>
8261
8262 Version 1.29b.
8263
8264 2001-09-25 Akim Demaille <akim@epita.fr>
8265
8266 * src/system.h: Include `xalloc.h'.
8267 Remove it from the C files.
8268 * src/files.c (output_files): Free the obstacks.
8269 * src/lex.c (init_lex): Rename as...
8270 (lex_init): this.
8271 (lex_free): New.
8272 * src/main.c (main): Use it.
8273
8274 2001-09-24 Marc Autret <autret_m@epita.fr>
8275
8276 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
8277 to output informations in fout (FILE*).
8278 (open_graph, close_graph): Likewise.
8279 (output_graph, output_edge, output_node): Likewise.
8280 * src/vcg.h: Update function prototypes.
8281 * src/print_graph.c (print_graph): Open output graph file.
8282 (print_actions): Adjust.
8283 * src/files.h: Remove extern declaration.
8284 * src/files.c: Remove graph_obstack declaration.
8285 (open_files): Remove graph_obstack initialization.
8286 (output_files): Remove graph_obstack saving.
8287
8288 2001-09-24 Marc Autret <autret_m@epita.fr>
8289
8290 * src/files.c (compute_output_file_names): Fix.
8291
8292 2001-09-24 Marc Autret <autret_m@epita.fr>,
8293 Akim Demaille <akim@epita.fr>
8294
8295 * src/reader.c (reader): Remove call to free_symtab ().
8296 * src/main.c (main): Call it here.
8297 Include symtab.h.
8298 * src/conflicts.c (initialize_conflicts): Rename as...
8299 (solve_conflicts): this.
8300 * src/print.c (print_core, print_actions, print_state)
8301 (print_grammar): Dump to a file instead a `output_obstack'.
8302 (print_results): Dump `output_obstack', and then proceed with the
8303 FILE *.
8304 * src/files.c (compute_output_file_names, close_files): New.
8305 (output_files): Adjust.
8306 * src/main.c (main): Adjust.
8307
8308 2001-09-23 Marc Autret <autret_m@epita.fr>
8309
8310 * src/files.c (compute_header_macro): Computes header macro name
8311 from spec_defines_file when given.
8312
8313 2001-09-23 Marc Autret <autret_m@epita.fr>
8314
8315 * src/files.c (output_files): Add default extensions.
8316
8317 2001-09-22 Akim Demaille <akim@epita.fr>
8318
8319 * src/conflicts.c (finalize_conflicts): Rename as...
8320 (free_conflicts): this.
8321
8322 2001-09-22 Akim Demaille <akim@epita.fr>
8323
8324 * src/gram.c (gram_free): Rename back as...
8325 (dummy): this.
8326 (output_token_translations): Free `token_translations'.
8327 * src/symtab.c (free_symtab): Free the tag field.
8328
8329 2001-09-22 Akim Demaille <akim@epita.fr>
8330
8331 Remove `translations' as it is always set to true.
8332
8333 * src/gram.h: Adjust.
8334 * src/reader.c (packsymbols, parse_token_decl): Adjust
8335 * src/print.c (print_grammar): Adjust.
8336 * src/output.c (output_token_translations): Adjust.
8337 * src/lex.c (lex): Adjust.
8338 * src/gram.c: Be sure the set pointers to NULL.
8339 (dummy): Rename as...
8340 (gram_free): this.
8341
8342 2001-09-22 Akim Demaille <akim@epita.fr>
8343
8344 * configure.in: Invoke AM_LIB_DMALLOC.
8345 * src/system.h: Use dmalloc.
8346 * src/LR0.c: Be sure to have pointers initialized to NULL.
8347 (allocate_itemsets): Allocate kernel_items only if needed.
8348
8349 2001-09-22 Akim Demaille <akim@epita.fr>
8350
8351 * configure.in: Bump to 1.29b.
8352 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
8353 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
8354 need xmalloc.c in calc.y.
8355 From Pascal Bart.
8356
8357 2001-09-21 Akim Demaille <akim@epita.fr>
8358
8359 Version 1.29a.
8360 * Makefile.maint, config/config.guess, config/config.sub,
8361 * config/missing: Update from masters.
8362 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
8363 upon package.m4.
8364 * configure.in (ALL_LINGUAS): Add `tr'.
8365
8366 2001-09-21 Akim Demaille <akim@epita.fr>
8367
8368 * tests/Makefile.am (package.m4): Move to...
8369 ($(srcdir)/$(TESTSUITE)): here.
8370
8371 2001-09-20 Akim Demaille <akim@epita.fr>
8372
8373 * src/complain.c: No longer try to be standalone: use system.h.
8374 Don't assume __STDC__ is defined to 1. Just test if it is defined.
8375 * src/complain.h: Likewise.
8376 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
8377 Remove the unused variable `n'.
8378 From Albert Chin-A-Young.
8379
8380 2001-09-18 Marc Autret <autret_m@epita.fr>
8381
8382 * doc/bison.1: Update.
8383 * doc/bison.texinfo (Bison Options): Update --defines and --graph
8384 descriptions.
8385 (Option Cross Key): Update.
8386 Add --graph.
8387
8388 2001-09-18 Marc Autret <autret_m@epita.fr>
8389
8390 * tests/regression.at: New test (comment in %union).
8391
8392 2001-09-18 Marc Autret <autret_m@epita.fr>
8393
8394 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8395 do that.
8396 Reported by Keith Browne.
8397
8398 2001-09-18 Marc Autret <autret_m@epita.fr>
8399
8400 * tests/output.at: Add tests for --defines and --graph.
8401
8402 2001-09-18 Marc Autret <autret_m@epita.fr>
8403
8404 * tests/output.at: Removes tests of %{header,src}_extension features.
8405
8406 2001-09-18 Akim Demaille <akim@epita.fr>
8407
8408 * tests/Makefile.am (package.m4): New.
8409 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8410 (_AT_CHECK_CALC_ERROR): Likewise.
8411 Factor the `, ' part of verbose error messages.
8412
8413 2001-09-18 Marc Autret <autret_m@epita.fr>
8414
8415 * src/getargs.c (longopts): Declare --defines and --graph as options
8416 with optional arguments.
8417 * src/files.h: Add extern declarations.
8418 * src/files.c (spec_graph_file, spec_defines_file): New.
8419 (output_files): Update.
8420 Remove CPP-outed code.
8421
8422 2001-09-18 Marc Autret <autret_m@epita.fr>
8423
8424 Turn off %{source,header}_extension feature.
8425
8426 * src/files.c (compute_exts_from_gf): Update.
8427 (compute_exts_from_src): Update.
8428 (output_files): CPP-out useless code.
8429 * src/files.h: Remove {header,source}_extension extern declarations.
8430 * src/reader.c (parse_dquoted_param): CPP-out.
8431 (parse_header_extension_decl): Remove.
8432 (parse_source_extension_decl): Remove.
8433 (read_declarations): Remove cases tok_{hdrext,srcext}.
8434 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8435 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8436
8437 2001-09-10 Akim Demaille <akim@epita.fr>
8438
8439 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8440 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8441 (AT_CHECK_OUTPUT): this.
8442 Merely check ls' exit status, its output is useless.
8443
8444 2001-09-10 Akim Demaille <akim@epita.fr>
8445
8446 * tests/calc.at: Use m4_match.
8447 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8448
8449 2001-09-10 Marc Autret <autret_m@epita.fr>,
8450 Akim Demaille <akim@epita.fr>
8451
8452 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8453 enum color_e.
8454 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8455 to `normal'.
8456 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8457 * src/lex.h: Adjust prototype.
8458 (token_t): Add `tok_undef'.
8459 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8460 (parse_percent_token): Now returns token_t.
8461 Add default statement in switch.
8462 (lex): Separate `c' as an input variable, from the token_t result
8463 part.
8464 (unlexed): Is a token_t.
8465
8466 2001-09-10 Akim Demaille <akim@epita.fr>
8467
8468 * configure.in: Bump to 1.29a.
8469
8470 2001-09-07 Akim Demaille <akim@epita.fr>
8471
8472 Version 1.29.
8473
8474 2001-08-30 Akim Demaille <akim@epita.fr>
8475
8476 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8477 * m4/atconfig.m4: Remove.
8478 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8479 * tests/bison: New.
8480 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8481 m4_if, m4_patsubst, and m4_regexp.
8482 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8483 `input' file instead of echo.
8484
8485 2001-08-29 Akim Demaille <akim@epita.fr>
8486
8487 Bump to 1.28e.
8488
8489 2001-08-29 Akim Demaille <akim@epita.fr>
8490
8491 Version 1.28d.
8492
8493 2001-08-29 Paul Eggert <eggert@twinsun.com>
8494
8495 * src/bison.simple (yyparse): Don't take the address of an
8496 item before the start of an array, as that doesn't conform to
8497 the C Standard.
8498
8499 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8500
8501 * doc/bison.texinfo (Location Tracking Calc): New node.
8502
8503 2001-08-29 Paul Eggert <eggert@twinsun.com>
8504
8505 * src/output.c (output): Do not define const, as this now
8506 causes more problems than it cures.
8507
8508 2001-08-29 Akim Demaille <akim@epita.fr>
8509
8510 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8511 the nodes.
8512 Be sure to tag the `detailmenu'.
8513
8514 2001-08-29 Akim Demaille <akim@epita.fr>
8515
8516 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8517 download in a tmp dir.
8518
8519 2001-08-28 Marc Autret <autret_m@epita.fr>
8520
8521 * config/depcomp: New file.
8522
8523 2001-08-28 Marc Autret <autret_m@epita.fr>
8524
8525 * doc/bison.1 (mandoc): Adjust.
8526 From Juan Manuel Guerrero.
8527
8528 2001-08-28 Marc Autret <autret_m@epita.fr>
8529
8530 * src/print_graph.c (print_state): Fix.
8531
8532 2001-08-27 Marc Autret <autret_m@epita.fr>
8533
8534 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8535 char * members.
8536 Echo modifications to the functions prototypes.
8537 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8538
8539 2001-08-27 Marc Autret <autret_m@epita.fr>
8540
8541 * src/vcg.c: Include `xalloc.h'.
8542 (add_colorentry): New.
8543 (add_classname): New.
8544 (add_infoname): New.
8545 * src/vcg.h: Add new prototypes.
8546
8547 2001-08-27 Akim Demaille <akim@epita.fr>
8548
8549 * Makefile.maint: Sync. again with CVS Autoconf.
8550
8551 2001-08-27 Akim Demaille <akim@epita.fr>
8552
8553 * Makefile.maint: Formatting changes.
8554 (po-update, cvs-update, update): New targets.
8555 (AMTAR): Remove.
8556
8557 2001-08-27 Akim Demaille <akim@epita.fr>
8558
8559 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8560 * Makefile.maint: Sync. with CVS Autoconf.
8561
8562 2001-08-27 Marc Autret <autret_m@epita.fr>
8563
8564 * src/vcg.h (struct infoname_s): New.
8565 (struct colorentry_s): New.
8566 (graph_s): New fields {vertical,horizontal}_order in structure.
8567 Add `infoname' field.
8568 Add `colorentry' field;
8569 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8570 (G_HORIZONTAL_ORDER): New.
8571 (G_INFONAME): New.
8572 (G_COLORENTRY): New.
8573 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8574 Add output of `infoname'.
8575 Add output of `colorentry'.
8576
8577 2001-08-27 Marc Autret <autret_m@epita.fr>
8578
8579 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8580 This one shadowed a global parameter.
8581
8582 2001-08-24 Marc Autret <autret_m@epita.fr>
8583
8584 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8585 instead of `unsigned'.
8586 (print_state): Do not call obstack_object_size () in obstack_grow ()
8587 to avoid macro variables shadowing.
8588
8589 2001-08-23 Marc Autret <autret_m@epita.fr>
8590
8591 * src/lex.c (percent_table): Typo: s/naem/name/.
8592 Add graph option.
8593 Normalize new options declarations.
8594
8595 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8596
8597 * tests/suite.at: Exercise %header_extension and %source_extension.
8598
8599 2001-08-16 Marc Autret <autret_m@epita.fr>
8600
8601 * src/reader.c (parse_dquoted_param): New.
8602 (parse_header_extension_decl): Use it.
8603 (parse_source_extension_decl): Likewise.
8604
8605 2001-08-16 Marc Autret <autret_m@epita.fr>
8606
8607 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8608 (get_xxxx_str): Use assert () instead of complain ().
8609 Remove return invokations in default cases.
8610 (get_decision_str): Modify default behaviour. Remove second argument.
8611 Echo modifications on calls.
8612 (output_graph): Fix.
8613
8614 2001-08-16 Marc Autret <autret_m@epita.fr>
8615
8616 * src/getargs.c (usage): Update with ``-g, --graph''.
8617
8618 2001-08-16 Marc Autret <autret_m@epita.fr>
8619
8620 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8621 (Option Cross Key): Likewise.
8622 * doc/bison.1: Update.
8623
8624 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
8625
8626 * src/output.c (output_master_parser): Don't finish action_obstack.
8627 (output_parser): Don't care about the muscle action, here.
8628 (prepare): Copy the action_obstack in the action muscle.
8629 (output): Free action_obstack.
8630
8631 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8632
8633 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8634 will contain `%union' declaration.
8635 (parse_union_decl): Delete #line directive output.
8636 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8637 informations about %union.
8638 (parse_union_decl): Copy the union_obstack in the muscle stype.
8639 * src/bison.simple: Add new #line directive.
8640 Add typdef %%stype YYSTYPE.
8641
8642 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8643
8644 * src/bison.simple: Add new `#line' directive.
8645
8646 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
8647
8648 * src/bison.simple: New `#line' directive.
8649 * src/output.c (output_parser): Support new dynamic muscle input_line.
8650
8651 2001-09-22 Marc Autret <autret_m@epita.fr>
8652
8653 * src/output.c (output_master_parser): New.
8654 (output_parser): Be more re-entrant.
8655
8656 2001-09-21 Marc Autret <autret_m@epita.fr>
8657
8658 * src/reader.c (copy_definition, parse_union_decl): Update and use
8659 `linef' muscle.
8660 (copy_action): Likewise.
8661 Use obstack_1grow ().
8662 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8663
8664 2001-09-21 Marc Autret <autret_m@epita.fr>
8665
8666 * src/options.c (option_table): Adjust.
8667 * src/lex.c (parse_percent_token): Fix.
8668
8669 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8670
8671 * src/options.c (symtab.h): Include it, need by lex.h.
8672
8673 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8674
8675 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8676 is now an option_table_struct*.
8677 (option_strcmp): New function option_strcmp.
8678 (parse_percent_token): Call option_strcmp.
8679 * src/getargs.c (xalloc.h, options.h): Include it.
8680 (getargs): Call create_long_option_table.
8681 (getargs): Free longopts at the end of the function.
8682 (shortopts): Move in options.c.
8683 * src/options.c (create_long_option_table): New function. Convert
8684 information from option_table to option structure.
8685 * src/reader.c (options.h): Include it.
8686
8687 * src/Makefile.am: Adjust.
8688 * src/options.c (option_table): Create from longopts and percent_table.
8689 * src/getargs.c (longopts): Delete.
8690 * src/lex.c (struct percent_table_struct): Delete.
8691 (percent_table): Delete.
8692 (options.h): Include it.
8693 * src/options.c: Create.
8694 * src/options.h: Create.
8695 Declare enum opt_access_e.
8696 Define struct option_table_struct.
8697
8698 2001-09-20 Marc Autret <autret_m@epita.fr>
8699
8700 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8701 sections of Bison.
8702
8703 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
8704
8705 * src/bison.simple: s/%%filename/%%skeleton.
8706 * src/muscle_tab.c (getargs.h): Include it.
8707 (muscle_init): Insert new muscle skeleton.
8708
8709 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
8710
8711 * src/output.c (output_parser): Delete unused variable actions_dumped.
8712
8713 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
8714
8715 * src/output.c (output): Delete call to reader_output_yylsp.
8716 * src/reader.c (reader): Likewise.
8717 * src/reader.h: Delete declaration of reader_output_yylsp.
8718
8719 2001-09-02 Marc Autret <autret_m@epita.fr>
8720
8721 * src/reader.c: Include muscle_tab.h.
8722 (parse_union_decl): Update.
8723 (parse_macro_decl): Rename parse_muscle_decl.
8724 Update to use renamed functions and variable.
8725 (read_declarations, copy_action, read_additionnal_code, : Updated
8726 with correct variables and functions names.
8727 (packsymbols, reader): Likewise.
8728
8729 * src/reader.h (muscle_obstack): Extern declaration update.
8730
8731 * src/output.c: Include muscle_tab.h
8732 In all functions using macro_insert, change by using muscle_insert ().
8733 (macro_obstack): Rename muscle_obstack.
8734 Echo modifications in the whole file.
8735 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8736 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8737 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8738
8739 * src/muscle_tab.h: Update double inclusion macros.
8740 (macro_entry_s): Rename muscle_entry_s.
8741 Update prototypes.
8742
8743 * src/muscle_tab.c: Include muscle_tab.h.
8744 Rename macro_tabble to muscle_table.
8745 (mhash1, mhash2, mcmp): Use muscle_entry.
8746 (macro_init): Rename muscle_init. Update.
8747 (macro_insert): Rename muscle_insert. Update.
8748 (macro_find): Rename muscle_find. Update.
8749
8750 * src/main.c: Include muscle_tab.h.
8751 (main): Call muscle_init ().
8752 * src/Makefile.am (bison_SOURCES): Echo modifications.
8753
8754 2001-09-02 Marc Autret <autret_m@epita.fr>
8755
8756 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8757
8758 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8759
8760 2001-09-02 Marc Autret <autret_m@epita.fr>
8761
8762 * src/macrotab.c, src/macrotab.h: Remove.
8763
8764 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
8765
8766 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8767 filename.
8768
8769 2001-09-01 Marc Autret <autret_m@epita.fr>
8770
8771 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8772 to an explicit value to activate the feature. We do it here.
8773
8774 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8775
8776 * src/output.c (prepare): Delete the `filename' muscule insertion.
8777 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8778 (parse_union_decl): Likewise.
8779 * src/macrotab.c (macro_init): Initialize filename by infile.
8780
8781 2001-08-31 Marc Autret <autret_m@epita.fr>
8782
8783 * src/bison.simple (YYLSP_NEEDED): New definition.
8784 * src/output.c (prepare): Add macro insertion of `locations_flag'
8785
8786 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8787
8788 * src/output.c (prepare): Delete insertion of previous muscles,
8789 and insert the `prefix' muscles.
8790 * src/macrotab.c (macro_init): Likewise.
8791 (macro_init): Initialization prefix directive by `yy'.
8792 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8793 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8794 yylval, yydebug, yyerror, yynerrs and yyparse.
8795 New directive `#define' to substitute yydebug, ... with option
8796 name_prefix.
8797
8798 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8799
8800 * src/main.c (main): Standardize.
8801 * src/output.c (output_table_data, output_parser): Likewise.
8802 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8803
8804 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8805
8806 * src/reader.c (read_additionnal_code): Rename %%user_code to
8807 %%epilogue.
8808 * src/output.c (output): Rename %%declarations to %%prologue.
8809 * src/bison.simple: Echo modifications.
8810
8811 2001-08-31 Marc Autret <autret_m@epita.fr>
8812
8813 * src/reader.c (readgram): CleanUp.
8814 (output_token_defines): Likewise.
8815 (packsymbols): Likewise.
8816 (reader): Likewise.
8817 * src/output.c (output): CPP-out useless code.
8818
8819 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8820
8821 * src/reader.c (reader): Delete obsolete call to function
8822 output_trailers and output_headers.
8823 * src/output.h: Remove obsolete functions prototypes of output_headers
8824 and output_trailers.
8825
8826 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
8827
8828 * src/main.c: Include macrotab.h.
8829 * src/macrotab.h (macro_entry_s): Constify fields.
8830 Adjust functions prototypes.
8831 * src/macrotab.c (macro_insert): Constify key and value.
8832 (macro_find): Constify key.
8833 (macro_insert): Include 'xalloc.h'
8834 (macro_insert): Use XMALLOC.
8835 (macro_find): Constify return value.
8836 * src/output.c (output_table_data): Rename table to table_data.
8837 (output_parser): Constify macro_key, macro_value.
8838
8839 2001-08-30 Marc Autret <autret_m@epita.fr>
8840
8841 * src/reader.c (parse_skel_decl): New.
8842 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
8843 * src/lex.h (token_t): New token `tok_skel'.
8844 * src/lex.c (percent_table): Add skeleton option entry.
8845 Standardize.
8846
8847 2001-08-29 Marc Autret <autret_m@epita.fr>
8848
8849 * src/bison.simple: Add %%user_code directive at the end.
8850 * src/reader.c (read_additionnal_code): New.
8851 (reader): Use it.
8852 * src/output.c (output_program): Remove.
8853 (output): Update.
8854
8855 2001-08-28 Marc Autret <autret_m@epita.fr>
8856
8857 * src/output.c (output_actions): Clean up.
8858 (output_gram): CPP-out useless code.
8859 * src/reader.c (reader): Clean up, CPP-out useless code.
8860
8861 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
8862
8863 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
8864 directive.
8865 * src/bison.simple: Add `%%definitions'.
8866
8867 2001-08-28 Marc Autret <autret_m@epita.fr>
8868
8869 * config/depcomp: New file.
8870
8871 2001-08-27 Paul Eggert <eggert@twinsun.com>
8872
8873 * src/bison.simple (yyparse): Don't take the address of an
8874 item before the start of an array, as that doesn't conform to
8875 the C Standard.
8876
8877 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8878
8879 * src/output.c (output): Remove the initialization of the macro
8880 obstack. It was done too late here.
8881
8882 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8883 completely wrong.
8884 (reader): Initialize the macro obstack here, since we need it to grow
8885 '%define' directives.
8886
8887 * src/reader.h: Declare the macro obstack as extern.
8888
8889 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8890
8891 * src/output.c (output_parser): Fix. Store single '%' characters in
8892 the output obstack instead of throwing them away.
8893
8894 2001-08-27 Akim Demaille <akim@epita.fr>
8895
8896 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8897
8898 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8899
8900 * lib/Makefile.am: Adjust.
8901
8902 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8903
8904 * src/bison.simple: Update and add '%%' directives.
8905
8906 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8907
8908 * src/reader.c (reader): Remove calls to 'output_headers' and
8909 'output_trailers'. Remove some C output.
8910 (readgram): Disable a piece of code that was writing a default
8911 definition for 'YYSTYPE'.
8912 (reader_output_yylsp): Remove.
8913 (packsymbols): Output token defintions to a macro.
8914 (copy_definition): Disable C output.
8915
8916 * src/reader.c (parse_macro_decl): New function used to parse macro
8917 declarations.
8918 (copy_string2): Put the body of copy_string into this new function.
8919 Add a parameter to let the caller choose whether he wants to copy the
8920 string delimiters or not.
8921 (copy_string): Be a simple call to copy_string2 with the last argument
8922 bound to true.
8923 (read_declarations): Add case for macro definition.
8924 (copy_identifier): New.
8925 (parse_macro_decl): Read macro identifiers using copy_identifier
8926 rather than lex.
8927
8928 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8929
8930 * src/output.c (prepare): Add prefixed names.
8931 (output_parser): Output semantic actions.
8932 (output_parser): Fix bug on '%%line' directives.
8933
8934 * src/output.c (output_headers): Remove. The C code printed by this
8935 function should now be in the skeletons.
8936 (output_trailers): Remove.
8937 (output): Disable call to 'reader_output_yylsp'.
8938 (output_rule_data): Do not output tables to the table obstack.
8939
8940 * src/output.c: Remove some C dedicated output.
8941 Improve the use of macro and output obstacks.
8942 (output_defines): Remove.
8943
8944 * src/output.c (output_token_translations): Associate 'translate'
8945 table with a macro. No output to the table obstack.
8946 (output_gram): Same for 'rhs' and 'prhs'.
8947 (output_stos): Same for 'stos'.
8948 (output_rule_data): Same for 'r1' and 'r2'.
8949 (token_actions): Same for 'defact'.
8950 (goto_actions): Same for 'defgoto'.
8951 (output_base): Same for 'pact' and 'pgoto'.
8952 (output_table): Same for 'table'.
8953 (output_check): Same for 'check'.
8954
8955 * src/output.c (output_table_data): New function.
8956 (output_short_table): Remove.
8957 (output_short_or_char_table): Remove.
8958
8959 * src/output.c (output_parser): Replace most of the skeleton copy code
8960 with something new. Skeletons are now processed character by character
8961 rather than line by line, and Bison looks for '%%' macros. This is the
8962 first step in making Bison's output process (a lot) more flexible.
8963 (output_parser): Use the macro table.
8964
8965 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8966
8967 * src/main.c (main): Initialize the macro table.
8968
8969 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8970
8971 * src/lex.c (percent_table): Add tok_define.
8972 * src/lex.h: Add tok_define.
8973
8974 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8975
8976 * src/macrotab.c: New file.
8977 * src/macrotab.h: New file.
8978 * src/Makefile.am: Update.
8979
8980 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8981
8982 * lib/hash.c: New file.
8983 * lib/hash.h: New file.
8984 * lib/Makefile.am: Update.
8985
8986 2001-08-15 Akim Demaille <akim@epita.fr>
8987
8988 Version 1.28c.
8989
8990 2001-08-15 Marc Autret <autret_m@epita.fr>
8991
8992 * src/reader.c (readgram): Indent output macro YYSTYPE.
8993 (packsymbols): Likewise.
8994 (output_token_defines): Likewise.
8995 * src/files.c: Standardize.
8996 (compute_header_macro): New.
8997 (defines_obstack_save): New. Use compute_header_macro.
8998 (output_files): Update. Use defines_obstack_save.
8999
9000 2001-08-15 Akim Demaille <akim@epita.fr>
9001
9002 * doc/bison.texinfo (Table of Symbols): Document
9003 YYSTACK_USE_ALLOCA.
9004
9005 2001-08-15 Akim Demaille <akim@epita.fr>
9006
9007 * missing: Update from CVS Automake.
9008 * config/config.guess, config/config.sub, config/texinfo.tex:
9009 Update from gnu.org.
9010
9011 2001-08-15 Akim Demaille <akim@epita.fr>
9012
9013 * Makefile.maint: Sync with CVS Autoconf.
9014
9015 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
9016
9017 * doc/bison.texinfo: Include GNU Free Documentation License from
9018 `fdl.texi'.
9019 * doc/fdl.texi: Add to package.
9020
9021 2001-08-14 Marc Autret <autret_m@epita.fr>
9022
9023 Turn on %{source,header}_extension features.
9024
9025 * src/lex.c (percent_table): Un-CPP out header_extension and
9026 source_extension.
9027 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
9028 (compute_exts_from_src): Remove conditions. It restores priorities
9029 between options.
9030
9031 2001-08-14 Marc Autret <autret_m@epita.fr>
9032
9033 * src/files.c (compute_base_names): Add extensions computing when
9034 `--file-prefix' used.
9035 Standardize function calls.
9036
9037 2001-08-13 Marc Autret <autret_m@epita.fr>
9038
9039 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
9040 defining it (defined but null disables alloca).
9041
9042 2001-08-13 Marc Autret <autret_m@epita.fr>
9043
9044 * src/bison.simple (_yy_memcpy): CPP reformat.
9045
9046 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
9047
9048 * tests/atconfig.in (CPPFLAGS): Fix.
9049
9050 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
9051
9052 * doc/bison.texinfo: Include GNU General Public License from
9053 `gpl.texi'.
9054 * doc/gpl.texi: Add to package.
9055
9056 2001-08-10 Marc Autret <autret_m@epita.fr>
9057
9058 * src/print_graph.h: Fix.
9059 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
9060
9061 2001-08-10 Akim Demaille <akim@epita.fr>
9062
9063 * src/system.h: Provide default declarations for stpcpy, strndup,
9064 and strnlen.
9065
9066 2001-08-10 Robert Anisko <anisko_r@epita.fr>
9067
9068 * doc/bison.texinfo (Locations): Update @$ stuff.
9069
9070 2001-08-09 Robert Anisko <anisko_r@epita.fr>
9071
9072 * src/bison.simple (YYLLOC_DEFAULT): Update.
9073 (yyparse): Adjust.
9074
9075 2001-08-08 Marc Autret <autret_m@epita.fr>
9076
9077 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
9078 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
9079 Reported by Fabrice Bauzac.
9080
9081 2001-08-08 Marc Autret <autret_m@epita.fr>
9082
9083 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
9084 * src/vcg.c (output_node): Fix.
9085 * src/vcg.h: Cleanup.
9086 * src/print_graph.c: Add comments.
9087 (node_output_size): New global variable. Simplify the formatting of
9088 the VCG graph output.
9089 (print_actions): Unused code is now used. It notifies the final state
9090 and no action states in the VCG graph. It also give the reduce actions.
9091 The `shift and goto' edges are red and the `go to state' edges are
9092 blue.
9093 Get the current node name and node_obstack by argument.
9094 (node_obstack): New variable.
9095 (print_state): Manage node_obstack.
9096 (print_core): Use node_obstack given by argument.
9097 A node is not only computed here but in print_actions also.
9098 (print_graph): CPP out useless code instead of commenting it.
9099
9100 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
9101
9102 * tests/atconfig.in (CPPFLAGS): Fix.
9103
9104 2001-08-07 Akim Demaille <akim@epita.fr>
9105
9106 * src/print_graph.c (quote): New.
9107 (print_core): Use it.
9108
9109 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
9110
9111 * src/vcg.c (complain.h): Include it.
9112 Unepitaize `return' invocations.
9113 [NDEBUG] (main): Remove.
9114 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
9115 * src/files.c (open_files): Initialize graph_obstack.
9116 * src/print_graph.c (print_actions): CPP out useless code.
9117 (print_core): Don't output the last `\n' in labels.
9118 Use `quote'.
9119 * src/files.c (output_files): Output the VCG file.
9120 * src/main.c (main): Invoke print_graph ();
9121
9122 2001-08-06 Marc Autret <autret_m@epita.fr>
9123
9124 Automaton VCG graph output.
9125 Using option ``-g'' or long option ``--graph'', you can generate
9126 a gram_filename.vcg file containing a VCG description of the LALR (1)
9127 automaton of your grammar.
9128
9129 * src/main.c: Call to print_graph() function.
9130 * src/getargs.h: Update.
9131 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
9132 (graph_flag): New flag.
9133 (longopts): Update.
9134 (getargs): Add case `g'.
9135 * src/files.c (graph_obstack): New obstack struct.
9136 (open_files): Initialize new obstack.
9137 (output_files): Saves graph_obstack if required.
9138 * src/files.h (graph_obstack): New extern declaration.
9139 * src/Makefile.am: Add new source files.
9140
9141 2001-08-06 Marc Autret <autret_m@epita.fr>
9142
9143 * src/print_graph.c, src/print_graph.h (graph): New.
9144 * src/vcg.h: New file.
9145 * src/vcg.c: New file, VCG graph handling.
9146
9147 2001-08-06 Marc Autret <autret_m@epita.fr>
9148
9149 Add of %source_extension and %header_extension which specify
9150 the source or/and the header output file extension.
9151
9152 * src/files.c (compute_base_names): Remove initialisation of
9153 src_extension and header_extension.
9154 (compute_exts_from_gf): Update.
9155 (compute_exts_from_src): Update.
9156 (output_files): Update.
9157 * src/reader.c (parse_header_extension_decl): New.
9158 (parse_source_extension_decl): New.
9159 (read_declarations): New case statements for the new tokens.
9160 * src/lex.c (percent_table): Add entries for %source_extension
9161 and %header_extension.
9162 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
9163
9164 2001-08-06 Marc Autret <autret_m@epita.fr>
9165
9166 * configure.in: Bump to 1.28c.
9167 * doc/bison.texinfo: Texinfo thingies.
9168
9169 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
9170
9171 * tests/atconfig.in (CPPFLAGS): Add.
9172 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
9173
9174 2001-08-03 Akim Demaille <akim@epita.fr>
9175
9176 Version 1.28b.
9177
9178 2001-08-03 Akim Demaille <akim@epita.fr>
9179
9180 * tests/Makefile.am (check-local): Ship testsuite.
9181 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
9182 Include `string.h'.
9183
9184 2001-08-03 Akim Demaille <akim@epita.fr>
9185
9186 * configure.in: Try using -Wformat when compiling.
9187
9188 2001-08-03 Akim Demaille <akim@epita.fr>
9189
9190 * configure.in: Bump to 1.28b.
9191
9192 2001-08-03 Akim Demaille <akim@epita.fr>
9193
9194 * src/complain.c: Adjust strerror_r portability issues.
9195
9196 2001-08-03 Akim Demaille <akim@epita.fr>
9197
9198 Version 1.28a.
9199
9200 2001-08-03 Akim Demaille <akim@epita.fr>
9201
9202 * src/getargs.c, src/getarg.h (skeleton)): Constify.
9203 * src/lex.c (literalchar): Avoid name clashes on `buf'.
9204 * src/getargs.c: Include complain.h.
9205 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
9206 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
9207
9208 2001-08-03 Akim Demaille <akim@epita.fr>
9209
9210 * src/reader.c (readgram): Display hidden chars in error messages.
9211
9212 2001-08-03 Akim Demaille <akim@epita.fr>
9213
9214 Update to gettext 0.10.39.
9215
9216 2001-08-03 Akim Demaille <akim@epita.fr>
9217
9218 * lib/strspn.c: New.
9219
9220 2001-08-01 Marc Autret <autret_m@epita.fr>
9221
9222 * doc/bison.texinfo: Update.
9223 * doc/bison.1 (mandoc): Update.
9224 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
9225 * src/files.c: Support output files extensions computing.
9226 (src_extension): New static variable.
9227 (header_extension): New static variable.
9228 (tr): New function.
9229 (get_extension_index): New function, gets the index of an extension
9230 filename in a string.
9231 (compute_exts_from_gf): New function, computes extensions from the
9232 grammar file extension.
9233 (compute_exts_from_src): New functions, computes extensions from the
9234 C source file extension, file given by ``-o'' option.
9235 (compute_base_names): Update.
9236 (output_files): Update.
9237
9238 2001-08-01 Robert Anisko <anisko_r@epita.fr>
9239
9240 * doc/bison.texi: Document @$.
9241 (Locations): New section.
9242
9243 2001-07-18 Akim Demaille <akim@epita.fr>
9244
9245 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
9246 * config/prev-version.txt, config/move-if-change: New.
9247 * Makefile.am: Adjust.
9248
9249 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
9250
9251 * src/bison.simple (yyparse): Suppress warning `comparaison
9252 between signed and unsigned'.
9253
9254 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
9255
9256 * src/getargs.h (raw_flag): Remove.
9257 * src/getargs.c: Die on `-r'/`--raw'.
9258 * src/lex.c (parse_percent_token): Die on `%raw'.
9259 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
9260 * tests/calc.at: Suppress test with option `--raw'.
9261
9262 2001-07-14 Akim Demaille <akim@epita.fr>
9263
9264 * config/: New.
9265 * configure.in: Require Autoconf 2.50.
9266 Update to gettext 0.10.38.
9267
9268 2001-03-16 Akim Demaille <akim@epita.fr>
9269
9270 * doc/bison.texinfo: ANSIfy the examples.
9271
9272 2001-03-16 Akim Demaille <akim@epita.fr>
9273
9274 * getargs.c (skeleton): New variable.
9275 (longopts): --skeleton is a new option.
9276 (shortopts, getargs): -S is a new option.
9277 * getargs.h: Declare skeleton.
9278 * output.c (output_parser): Use it.
9279
9280 2001-03-16 Akim Demaille <akim@epita.fr>
9281
9282 * m4/strerror_r.m4: New.
9283 * m4/error.m4: Run AC_FUNC_STRERROR_R.
9284 * lib/error.h, lib/error.c: Update.
9285
9286 2001-03-16 Akim Demaille <akim@epita.fr>
9287
9288 * src/getargs.c (longopts): Clean up.
9289
9290 2001-02-21 Akim Demaille <akim@epita.fr>
9291
9292 * src/reader.c (gensym): `gensym_count' is your own.
9293 Use a static buf to create the symbol name, as token_buffer is no
9294 longer a buffer.
9295
9296 2001-02-08 Akim Demaille <akim@epita.fr>
9297
9298 * src/conflicts.c (conflict_report): Be sure not to append to res
9299 between two calls, which could happen if both first sprintf were
9300 skipped, but not the first cp += strlen.
9301
9302 2001-02-08 Akim Demaille <akim@epita.fr>
9303
9304 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
9305 New, from fileutils 4.0.37.
9306 * configure.in: Require Autoconf 2.49c. I took some time before
9307 making this decision. This is the only way out for portability
9308 issues in Bison, it would mean way too much duplicate effort to
9309 import in Bison features implemented in 2.49c since 2.13.
9310 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
9311
9312 2001-02-02 Akim Demaille <akim@epita.fr>
9313
9314 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
9315 * lib/xalloc.h, lib/xmalloc.c: Update.
9316
9317 2001-01-19 Akim Demaille <akim@epita.fr>
9318
9319 Get rid of the ad hoc handling of token_buffer in the scanner: use
9320 the obstacks.
9321
9322 * src/lex.c (token_obstack): New.
9323 (init_lex): Initialize it. No longer call...
9324 (grow_token_buffer): this. Remove it.
9325 Adjust all the places which used it to use the obstack.
9326
9327 2001-01-19 Akim Demaille <akim@epita.fr>
9328
9329 * src/lex.h: Rename all the tokens:
9330 s/\bENDFILE\b/tok_eof/g;
9331 s/\bIDENTIFIER\b/tok_identifier/g;
9332 etc.
9333 Let them be enums, not #define, to ease debugging.
9334 Adjust all the code.
9335
9336 2001-01-18 Akim Demaille <akim@epita.fr>
9337
9338 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
9339 * src/lex.c (maxtoken, grow_token_buffer): Static.
9340
9341 2001-01-18 Akim Demaille <akim@epita.fr>
9342
9343 Since we now use obstacks, more % directives can be enabled.
9344
9345 * src/lex.c (percent_table): Also accept `%yacc',
9346 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
9347 `%debug'.
9348 Handle the actions for `%semantic_parser' and `%pure_parser' here,
9349 instead of returning a token.
9350 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
9351 * src/reader.c (read_declarations): Adjust.
9352 * src/files.c (open_files): Don't call `compute_base_names', don't
9353 compute `attrsfile' since they depend upon data which might be
9354 *in* the input file now.
9355 (output_files): Do it here.
9356 * src/output.c (output_headers): Document the fact that this patch
9357 introduces a guaranteed SEGV for semantic parsers.
9358 * doc/bison.texinfo: Document them.
9359 * tests/suite.at: Exercise these %options.
9360
9361 2000-12-20 Akim Demaille <akim@epita.fr>
9362
9363 Also handle the output file (--verbose) with obstacks.
9364
9365 * files.c (foutput): Remove.
9366 (output_obstack): New.
9367 Adjust all dependencies.
9368 * src/conflicts.c: Return a string.
9369 * src/system.h (obstack_grow_string): Rename as...
9370 (obstack_sgrow): this. Be ready to work with non literals.
9371 (obstack_fgrow4): New.
9372
9373 2000-12-20 Akim Demaille <akim@epita.fr>
9374
9375 * src/files.c (open_files): Fix the computation of short_base_name
9376 in the case of `-o foo.tab.c'.
9377
9378 2000-12-20 Akim Demaille <akim@epita.fr>
9379
9380 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
9381 (copy_dollar): Now that everything uses obstacks, get rid of the
9382 FILE * parameters.
9383
9384 2000-12-20 Akim Demaille <akim@epita.fr>
9385
9386 * src/files.c (open_files): Actually the `.output' file is based
9387 on the short_base_name, not base_name.
9388 * tests/suite.at (Checking output file names): Adjust.
9389
9390 2000-12-20 Akim Demaille <akim@epita.fr>
9391
9392 * src/bison.s1: Remove, we now use directly...
9393 * src/bison.simple: this.
9394 * src/Makefile.am: Use pkgdata instead of data.
9395
9396 2000-12-20 Akim Demaille <akim@epita.fr>
9397
9398 * src/files.c (guard_obstack): New.
9399 (open_files): Initialize it.
9400 (output_files): Dump it...
9401 * src/files.h: Export it.
9402 * src/reader.c (copy_guard): Use it.
9403
9404 2000-12-19 Akim Demaille <akim@epita.fr>
9405
9406 * src/files.c (outfile, defsfile, actfile): Removed as global
9407 vars.
9408 (open_files): Don't compute them.
9409 (output_files): Adjust.
9410 (base_name, short_base_name): Be global.
9411 Adjust dependencies.
9412
9413 2000-12-19 Akim Demaille <akim@epita.fr>
9414
9415 * src/files.c (strsuffix): New.
9416 (stringappend): Be just like strcat but allocate.
9417 (base_names): Eve out from open_files.
9418 Try to simplify the rather hairy computation of base_name and
9419 short_base_name.
9420 (open_files): Use it.
9421 * tests/suite.at (Checking output file names): New test.
9422
9423 2000-12-19 Akim Demaille <akim@epita.fr>
9424
9425 * src/system.h (obstack_grow_literal_string): Rename as...
9426 (obstack_grow_string): this.
9427 * src/output.c (output_parser): Recognize `%% actions' instead of
9428 `$'.
9429 * src/bison.s1: s/$/%% actions/.
9430 * src/bison.hairy: Likewise.
9431
9432 2000-12-19 Akim Demaille <akim@epita.fr>
9433
9434 * src/output.c (output_parser): Compute the `#line' lines when
9435 there are.
9436 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9437 Suggested by Hans Aberg.
9438
9439 2000-12-19 Akim Demaille <akim@epita.fr>
9440
9441 Let the handling of the skeleton files be local to the procedures
9442 that use it.
9443
9444 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9445 longer static.
9446 (fparser, open_extra_files): Remove.
9447 (open_files, output_files): Don't take care of fparser.
9448 * src/files.h: Adjust.
9449 * src/output.c (output_parser): Open and close the file to the
9450 skeleton.
9451 * src/reader.c (read_declarations): When %semantic_parser, open
9452 fguard.
9453
9454 2000-12-19 Akim Demaille <akim@epita.fr>
9455
9456 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9457 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9458
9459 2000-12-19 Akim Demaille <akim@epita.fr>
9460
9461 * src/files.c (open_files): Yipee! We no longer need all the code
9462 looking for `/tmp' since we have no tmp file.
9463
9464 2000-12-19 Akim Demaille <akim@epita.fr>
9465
9466 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9467 New macros.
9468 * src/files.c (open_files): Less dependency on MSDOS etc.
9469
9470 2000-12-14 Akim Demaille <akim@epita.fr>
9471
9472 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9473 Provide a default definition.
9474 Use it when executing the default @ action.
9475 * src/reader.c (reader_output_yylsp): No longer include
9476 `timestamp' and `text' in the default YYLTYPE.
9477
9478 2000-12-12 Akim Demaille <akim@epita.fr>
9479
9480 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9481 (copy_guard): Quote the file names.
9482 Reported by Laurent Mascherpa.
9483
9484 2000-12-12 Akim Demaille <akim@epita.fr>
9485
9486 * src/output.c (output_headers, output_program, output): Be sure
9487 to escape special characters when outputting filenames.
9488 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9489 (output_headers): Don't depend on them, Use ACTSTR.
9490
9491 2000-11-17 Akim Demaille <akim@epita.fr>
9492
9493 * lib/obstack.h: Formatting changes.
9494 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9495 prevents type checking.
9496 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9497 cast the value to (void *): assigning a `foo *' to a `void *'
9498 variable is valid.
9499 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9500 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9501 append characters.
9502
9503 2000-11-17 Akim Demaille <akim@epita.fr>
9504
9505 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9506 as...
9507 (suite.m4, regression.m4, calc.m4): these.
9508 * tests/atgeneral.m4: Update from CVS Autoconf.
9509
9510 2000-11-17 Akim Demaille <akim@epita.fr>
9511
9512 * tests/regression.m4 (%union and --defines): New test,
9513 demonstrating a current bug in the obstack implementation.
9514
9515 2000-11-17 Akim Demaille <akim@epita.fr>
9516
9517 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9518 macros.
9519 Use them to declare the variables which are global or local to
9520 `yyparse'.
9521
9522 2000-11-17 Akim Demaille <akim@epita.fr>
9523
9524 * acconfig.h: Remove, no longer used.
9525
9526 2000-11-07 Akim Demaille <akim@epita.fr>
9527
9528 * src: s/Copyright (C)/Copyright/g.
9529
9530 2000-11-07 Akim Demaille <akim@epita.fr>
9531
9532 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9533 defining.
9534 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9535
9536 2000-11-07 Akim Demaille <akim@epita.fr>
9537
9538 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9539 Merge in a single CPP if/else.
9540
9541 2000-11-07 Akim Demaille <akim@epita.fr>
9542
9543 * src/output.c (output): Remove useless variables.
9544 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9545 argument `data' for consistency with the prototypes.
9546 Qualify it `const'.
9547 (obstack_copy, obstack_copy0): Rename the second argument as
9548 `address' for consistency. Qualify it `const'.
9549 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9550 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9551 `const' their input argument (`data' or `address').
9552 Adjust the corresponding macros to include `const' in casts.
9553
9554 2000-11-03 Akim Demaille <akim@epita.fr>
9555
9556 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9557 s/PFILE1/BISON_HAIRY/.
9558 Adjust dependencies.
9559
9560 2000-11-03 Akim Demaille <akim@epita.fr>
9561
9562 For some reason, this was not applied.
9563
9564 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9565 `unlink': it's no longer used.
9566
9567 2000-11-03 Akim Demaille <akim@epita.fr>
9568
9569 * src/files.c (skeleton_find): New function, eved out of...
9570 (open_files, open_extra_files): here.
9571
9572 2000-11-03 Akim Demaille <akim@epita.fr>
9573
9574 Don't use `atexit'.
9575
9576 * src/files.c (obstack_save): New function.
9577 (done): Rename as...
9578 (output_files): this.
9579 Use `obstack_save'.
9580 * src/main.c (main): Don't use `atexit' to register `done', since
9581 it no longer has to remove tmp files, just call `output_files'
9582 when there are no errors.
9583
9584 2000-11-02 Akim Demaille <akim@epita.fr>
9585
9586 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9587 `unlink': it's no longer used.
9588 * src/files.h: Formatting changes.
9589
9590 2000-11-02 Akim Demaille <akim@epita.fr>
9591
9592 Remove the last uses of mktemp and unlink/delete.
9593
9594 * src/files.c (fdefines, ftable): Removed.
9595 (defines_ostack, table_obstack): New.
9596 Adjust dependencies of the former into uses of the latter.
9597 * src/output.c (output_short_or_char_table, output_short_table):
9598 Convert to using obstacks.
9599 * src/reader.c (copy_comment2): Accept one FILE * and two
9600 obstacks.
9601 (output_token_defines, reader_output_yylsp): Use obstacks.
9602 * src/system.h (obstack_fgrow3): New.
9603
9604 2000-11-01 Akim Demaille <akim@epita.fr>
9605
9606 Change each use of `fattrs' into a use of `attrs_obstack'.
9607
9608 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9609 * src/files.c (fattrs): Remove.
9610 (attrs_obstack): New.
9611 Adjust all dependencies.
9612 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9613
9614 2000-11-01 Akim Demaille <akim@epita.fr>
9615
9616 Introduce obstacks.
9617 Change each use of `faction' into a use of `action_obstack'.
9618
9619 * lib/obstack.h, lib/obstack.c: New files.
9620 * src/files.c (faction): Remove.
9621 (action_obstack): New.
9622 Adjust all dependencies.
9623
9624 2000-10-20 Akim Demaille <akim@epita.fr>
9625
9626 * lib/quote.h (PARAMS): New macro. Use it.
9627
9628 2000-10-16 Akim Demaille <akim@epita.fr>
9629
9630 * src/output.c (output_short_or_char_table): New function.
9631 (output_short_table, output_token_translations): Use it.
9632 (goto_actions): Use output_short_table.
9633
9634 2000-10-16 Akim Demaille <akim@epita.fr>
9635
9636 * src/symtab.c (bucket_new): New function.
9637 (getsym): Use it.
9638
9639 * src/output.c (output_short_table): New argument to display the
9640 comment associated with the table.
9641 Adjust dependencies.
9642 (output_gram): Use it.
9643 (output_rule_data): Nicer output layout for YYTNAME.
9644
9645 2000-10-16 Akim Demaille <akim@epita.fr>
9646
9647 * src/lex.c (read_typename): New function.
9648 (lex): Use it.
9649 * src/reader.c (copy_dollar): Likewise.
9650
9651 2000-10-16 Akim Demaille <akim@epita.fr>
9652
9653 * src/reader.c (copy_comment2): Expect the input stream to be on
9654 the `/' which is suspected to open a comment, instead of being
9655 called after `//' or `/*' was read.
9656 (copy_comment, copy_definition, parse_union_decl, copy_action)
9657 (copy_guard): Adjust.
9658
9659 2000-10-16 Akim Demaille <akim@epita.fr>
9660
9661 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9662 `read_signed_integer'.
9663
9664 2000-10-16 Akim Demaille <akim@epita.fr>
9665
9666 * src/reader.c (copy_dollar): New function.
9667 (copy_guard, copy_action): Use it.
9668
9669 2000-10-16 Akim Demaille <akim@epita.fr>
9670
9671 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9672 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9673 New files, from Fileutils 4.0.27.
9674 * src/main.c (printable_version): Remove.
9675 * src/lex.c, src/reader.c: Use `quote'.
9676
9677 2000-10-04 Akim Demaille <akim@epita.fr>
9678
9679 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9680
9681 2000-10-04 Akim Demaille <akim@epita.fr>
9682
9683 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9684
9685 2000-10-04 Akim Demaille <akim@epita.fr>
9686
9687 When a literal string is used to define two different tokens,
9688 `bison -v' segfaults.
9689 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9690
9691 * tests/regression.m4: New file.
9692 Include the core of the sample provided by Piotr Gackiewicz.
9693 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9694 properly.
9695
9696 2000-10-04 Akim Demaille <akim@epita.fr>
9697
9698 * src/reader.c (parse_expect_decl): Keep `count' within the size
9699 of `buffer'.
9700 From Neil Booth.
9701
9702 2000-10-02 Paul Eggert <eggert@twinsun.com>
9703
9704 * bison.s1 (yyparse): Assign the default value
9705 unconditionally, to avoid a GCC warning and make the parser a
9706 tad smaller.
9707
9708 2000-10-02 Akim Demaille <akim@epita.fr>
9709
9710 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9711 options.
9712
9713 2000-10-02 Akim Demaille <akim@epita.fr>
9714
9715 * src/derives.c, src/print.c, src/reduce.c: To ease the
9716 translation, move some `\n' out of the translated strings.
9717
9718 2000-10-02 Akim Demaille <akim@epita.fr>
9719
9720 The location tracking mechanism is precious for parse error
9721 messages. Nevertheless, it is enabled only when `@n' is used in
9722 the grammar, which is a different issue (you can use it in error
9723 message, but not in the grammar per se). Therefore, there should
9724 be another means to enable it.
9725
9726 * src/getargs.c (getargs): Support `--locations'.
9727 (usage): Report it.
9728 * src/getargs.h (locationsflag): Export it.
9729 * src/lex.c (percent_table): Support `%locations'.
9730 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9731 with `locationsflag'.
9732 * doc/bison.texinfo: Document `--locations' and `%locations'.
9733 Sort the options.
9734 * tests/calc.m4: Test it.
9735
9736 For regularity of the names, replace each
9737 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9738 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9739 In addition replace each `flag' with `_flag'.
9740
9741 2000-10-02 Akim Demaille <akim@epita.fr>
9742
9743 Also test parse error messages, including with YYERROR_VERBOSE.
9744
9745 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9746 associative).
9747 Use it to check the computations.
9748 Use it to check `nonassoc' is honored.
9749 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9750 `--yyerror-verbose'.
9751 (_AT_CHECK_CALC): Adjust to this option.
9752 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9753
9754 2000-10-02 Akim Demaille <akim@epita.fr>
9755
9756 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9757 the latter demonstrates a flaw in the handling of non debugging
9758 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9759 was used in order to simplify:
9760
9761 #if YYDEBUG
9762 if (yydebug)
9763 {
9764 ...
9765 }
9766 #endif
9767
9768 into
9769
9770 if (yydebug)
9771 {
9772 ...
9773 }
9774
9775 unfortunately this leads to a CPP conflict when
9776 `--name-prefix=foo' is used since it produces `#define yydebug
9777 foodebug'.
9778
9779 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9780 (YYDPRINTF): New macro.
9781 Spread its use.
9782 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9783 the bison options.
9784 Also test `--verbose', `--defines' and `--name-prefix'.
9785
9786 2000-10-02 Akim Demaille <akim@epita.fr>
9787
9788 Improve the readability of the produced parsers.
9789
9790 * src/bison.s1: Formatting changes.
9791 Improve the comment related to the `$' mark.
9792 (yydefault): Don't fall through to `yyresume': `goto' there.
9793 * src/output.c (output_parser): When the `$' is met, skip the end
9794 of its line.
9795 New variable, `number_of_dollar_signs', to check there's exactly
9796 one `$' in the parser skeleton.
9797
9798 2000-10-02 Akim Demaille <akim@epita.fr>
9799
9800 * lib/xstrdup.c: New file, from the fileutils.
9801 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9802 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9803 instead of strlen + xmalloc + strcpy.
9804 * src/symtab.c (copys): Remove, use xstrdup instead.
9805
9806 2000-10-02 Akim Demaille <akim@epita.fr>
9807
9808 * src/gram.h (associativity): New enum type which replaces the
9809 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9810 `right_assoc', `left_assoc' and `non_assoc'.
9811 Adjust all dependencies.
9812 * src/reader.c: Formatting changes.
9813 (LTYPESTR): Don't define it, use it as a literal in
9814 `reader_output_yylsp'.
9815 * src/symtab.h (symbol_class): New enum type which replaces the
9816 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9817 `sunknown', `stoken and `snterm'.
9818
9819 2000-10-02 Akim Demaille <akim@epita.fr>
9820
9821 * src/getargs.c (fixed_outfiles): Rename as...
9822 (yaccflag): for consistency and accuracy.
9823 Adjust dependencies.
9824
9825 2000-10-02 Akim Demaille <akim@epita.fr>
9826
9827 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9828 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9829 difficult and introduced a lot of core dump. It turns out that
9830 Bison used an implementation of `xmalloc' based on `calloc', and
9831 at various places it does depend upon the initialization to 0. I
9832 have not tried to isolate the pertinent places, and all the former
9833 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9834 someone should address this issue.
9835
9836 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9837 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9838 files.
9839 Adjust dependencies.
9840 * src/warshall.h: New file.
9841 Propagate.
9842
9843 2000-10-02 Akim Demaille <akim@epita.fr>
9844
9845 Various anti-`extern in *.c' changes.
9846
9847 * src/system.h: Include `assert.h'.
9848
9849 2000-10-02 Akim Demaille <akim@epita.fr>
9850
9851 * src/state.h (nstates, final_state, first_state, first_shift)
9852 (first_reduction): Move their exportation from here...
9853 * src/LR0.h: to here.
9854 Adjust dependencies.
9855 * src/getargs.c (statisticsflag): New variable.
9856 Add support for `--statistics'.
9857 Adjust dependencies.
9858
9859 Remove a lot of now useless `extern' statements in most files.
9860
9861 2000-10-02 Akim Demaille <akim@epita.fr>
9862
9863 * src/LR0.h: New file.
9864 Propagate its use.
9865
9866 2000-10-02 Akim Demaille <akim@epita.fr>
9867
9868 * src/print.h: New file.
9869 Propagate its use.
9870 * src/print.c: Formatting and ordering changes.
9871 (verbose, terse): Replace with...
9872 (print_results): this new function.
9873 Adjust dependencies.
9874
9875 2000-10-02 Akim Demaille <akim@epita.fr>
9876
9877 * src/conflicts.c (conflict_report): New function.
9878 (conflict_log, verbose_conflict_log): Replace with...
9879 (print_conflicts): this function.
9880 Adjust dependencies.
9881 * src/conflicts.h: New file.
9882 Propagate its inclusion.
9883
9884 2000-10-02 Akim Demaille <akim@epita.fr>
9885
9886 * src/nullable.h: New file.
9887 Propagate its inclusion.
9888 * src/nullable.c: Formatting changes.
9889
9890 2000-10-02 Akim Demaille <akim@epita.fr>
9891
9892 * src/reduce.h: New file.
9893 Propagate its inclusion.
9894 * src/reduce.c: Topological sort and other formatting changes.
9895 (bool, TRUE, FALSE): Move their definition to...
9896 * src/system.h: here.
9897
9898 2000-10-02 Akim Demaille <akim@epita.fr>
9899
9900 * src/files.c: Formatting changes.
9901 (tryopen, tryclose, openfiles): Rename as...
9902 (xfopen, xfclose, open_files): this.
9903 (stringappend): static.
9904 * src/files.h: Complete the list of exported symbols.
9905 Propagate its use.
9906
9907 2000-10-02 Akim Demaille <akim@epita.fr>
9908
9909 * src/reader.h: New file.
9910 Propagate its use instead of tedious list of `extern' and
9911 prototypes.
9912 * src/reader.c: Formatting changes, topological sort,
9913 s/register//.
9914
9915 2000-10-02 Akim Demaille <akim@epita.fr>
9916
9917 * src/lex.h: Prototype `lex.c' exported functions.
9918 * src/reader.c: Adjust.
9919 * src/lex.c: Formatting changes.
9920 (safegetc): Rename as...
9921 (xgetc): this.
9922
9923 2000-10-02 Akim Demaille <akim@epita.fr>
9924
9925 * src/lalr.h: New file.
9926 Propagate its inclusion instead of prototypes and `extern'.
9927 * src/lalr.c: Formatting changes, topological sorting etc.
9928
9929 2000-10-02 Akim Demaille <akim@epita.fr>
9930
9931 * src/output.c (token_actions): Introduce a temporary array,
9932 YYDEFACT, that makes it possible for this function to use
9933 output_short_table.
9934
9935 2000-10-02 Akim Demaille <akim@epita.fr>
9936
9937 `user_toknums' is output as a `short[]' in `output.c', while it is
9938 defined as a `int[]' in `reader.c'. For consistency with the
9939 other output tables, `user_toknums' is now defined as a table of
9940 shorts.
9941
9942 * src/reader.c (user_toknums): Be a short table instead of an int
9943 table.
9944 Adjust dependencies.
9945
9946 Factor the short table outputs.
9947
9948 * src/output.c (output_short_table): New function.
9949 * src/output.c (output_gram, output_stos, output_rule_data)
9950 (output_base, output_table, output_check): Use it.
9951
9952 2000-10-02 Akim Demaille <akim@epita.fr>
9953
9954 * src/output.c (output): Topological sort of the functions, in
9955 order to get rid of the `static' prototypes.
9956 No longer use `register'.
9957 * src/output.h: New file.
9958 Propagate its inclusion in files explicitly prototyping functions
9959 from output.c.
9960
9961 2000-09-21 Akim Demaille <akim@epita.fr>
9962
9963 * src/atgeneral.m4: Update from Autoconf.
9964
9965 2000-09-21 Akim Demaille <akim@epita.fr>
9966
9967 * src/closure.h: New file.
9968 * src/closure.c: Formatting changes, topological sort over the
9969 functions, use of closure.h.
9970 (initialize_closure, finalize_closure): Rename as...
9971 (new_closure, free_closure): these. Adjust dependencies.
9972 * src/LR0.c: Formatting changes, topological sort, use of
9973 cloture.h.
9974 (initialize_states): Rename as...
9975 (new_states): this.
9976 * src/Makefile.am (noinst_HEADERS): Adjust.
9977
9978 2000-09-20 Akim Demaille <akim@epita.fr>
9979
9980 * src/acconfig.h: Don't protect config.h against multiple
9981 inclusion.
9982 Don't define PARAMS.
9983 * src/system.h: Define PARAMS.
9984 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9985 purpose of config.h. system.h must not try to fix wrong
9986 definitions in config.h.
9987
9988 2000-09-20 Akim Demaille <akim@epita.fr>
9989
9990 * src/derives.h: New file.
9991 * src/main.c, src/derives.h: Use it.
9992 Formatting changes.
9993 * src/Makefile.am (noinst_HEADERS): Adjust.
9994
9995 2000-09-20 Akim Demaille <akim@epita.fr>
9996
9997 * tests/atgeneral.m4: Update from Autoconf.
9998 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9999 (AT_CHECK_CALC): New macros.
10000 Use these macros to test bison with options `', `--raw',
10001 `--debug', `--yacc', `--yacc --debug'.
10002
10003 2000-09-19 Akim Demaille <akim@epita.fr>
10004
10005 * src/output.c: Formatting changes.
10006 * src/machine.h: Remove, leaving its contents in...
10007 * src/system.h: here.
10008 Include stdio.h.
10009 Adjust all dependencies on stdio.h and machine.h.
10010 * src/getargs.h: New file.
10011 Let all `extern' declarations about getargs.c be replaced with
10012 inclusion of `getargs.h'.
10013 * src/Makefile.am (noinst_HEADERS): Adjust.
10014
10015 * tests/calc.m4 (yyin): Be initialized in main, not on the global
10016 scope.
10017 (yyerror): Returns void, not int.
10018 * doc/bison.texinfo: Formatting changes.
10019
10020 2000-09-19 Akim Demaille <akim@epita.fr>
10021
10022 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
10023 portable.
10024
10025 2000-09-18 Akim Demaille <akim@epita.fr>
10026
10027 * configure.in: Append WARNING_CFLAGS to CFLAGS.
10028 * src/Makefile.am (INCLUDES): Don't.
10029 Be ready to fetch headers in lib/.
10030
10031 2000-09-18 Akim Demaille <akim@epita.fr>
10032
10033 * doc/bison.texinfo: Update the copyright.
10034 ANSIfy and GNUify the examples.
10035 Remove the old menu.
10036
10037 2000-09-18 Akim Demaille <akim@epita.fr>
10038
10039 First set of tests: use the `calc' example from the documentation.
10040
10041 * src/bison.s1 (yyparse): Condition the code using `yytname' which
10042 is defined only when YYDEBUG is.
10043 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
10044 * src/files.c (tryopen, tryclose): Formatting changes.
10045 Move to the top and be static.
10046 * src/reader.c (read_signed_integer): Likewise.
10047 * tests/calc.m4: New file.
10048 * Makefile.am, suite.m4: Adjust.
10049 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
10050
10051 2000-09-18 Akim Demaille <akim@epita.fr>
10052
10053 Add support for an Autotest test suite for Bison.
10054
10055 * m4/m4.m4, m4/atconfig.m4: New files.
10056 * m4/Makefile.am (EXTRA_DIST): Adjust.
10057 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
10058 files.
10059 * src/getargs.c: Display a more standard --version message.
10060 * src/reader.c (reader): Formatting changes.
10061 No longer depend upon VERSION_STRING.
10062 * configure.in: No longer use `dnl'.
10063 Set up the test suite and the new directory `tests/.
10064 (VERSION_STRING): Remove.
10065
10066 2000-04-14 Akim Demaille <akim@epita.fr>
10067
10068 * src/reader.c (copy_comment2): New function, same as former
10069 `copy_comment', but outputs into two FILE *.
10070 (copy_comment): Use it.
10071 (parse_union_decl): Use it.
10072 (get_type, parse_start_decl): Use the same `invalid' message.
10073 (parse_start_decl, parse_union_decl): Use the same `multiple'
10074 message.
10075 (parse_union_decl, copy_guard, copy_action): Use the same
10076 `unmatched' message.
10077 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
10078
10079 2000-03-31 Akim Demaille <akim@epita.fr>
10080
10081 * src/files.c (tryopen, tryclose): Move to the top.
10082 Be static.
10083
10084 2000-03-31 Akim Demaille <akim@epita.fr>
10085
10086 * src/main.c (main): Don't call `done', exit does it.
10087
10088 2000-03-31 Akim Demaille <akim@epita.fr>
10089
10090 * allocate.c: s/return (foo)/return foo/.
10091 * lalr.c: Likewise.
10092 * LR0.c: Likewise.
10093 * output.c: Likewise.
10094 * reader.c: Likewise.
10095 * symtab.c: Likewise.
10096 * vmsgetargs.c: Likewise.
10097
10098 2000-03-31 Akim Demaille <akim@epita.fr>
10099
10100 Clean up the error reporting functions.
10101
10102 * src/report.c: New file.
10103 * src/report.h: Likewise.
10104 * src/Makefile.am: Adjust.
10105 * m4/error.m4: New file.
10106 * m4/Makefile.am: Adjust.
10107 * configure.in (jm_PREREQ_ERROR): Call it.
10108 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
10109 Remove.
10110 (fatal, fatals): Remove. All callers use complain.c::fatal.
10111 (warn, warni, warns, warnss, warnss): Remove. All callers use
10112 complain.c::complain.
10113 (toomany): Remove, use fatal instead.
10114 * src/files.c (done): No argument, use complain_message_count.
10115 * src/main.c (main): Register `done' to `atexit'.
10116
10117 * src/getargs.c (usage): More `fputs', less `fprintf'.
10118
10119 2000-03-28 Akim Demaille <akim@epita.fr>
10120
10121 * lib/: New directory.
10122 * Makefile.am (SUBDIRS): Adjust.
10123 * configure.in: Adjust.
10124 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
10125 useless.
10126 * src/alloca.c: Moved to lib/.
10127 * src/getopt.c: Likewise.
10128 * src/getopt1.c: Likewise.
10129 * src/getopt.h: Likewise.
10130 * src/ansi2knr.c: Likewise.
10131 * src/ansi2knr.1: Likewise.
10132 * src/Makefile.am: Adjust.
10133 * lib/Makefile.am: New file.
10134
10135 2000-03-28 Akim Demaille <akim@epita.fr>
10136
10137 * src/getargs.c (usage): Refresh the help message.
10138
10139 2000-03-17 Akim Demaille <akim@epita.fr>
10140
10141 * src/getopt1.c: Updated from textutils 2.0e
10142 * src/getopt.c: Likewise.
10143 * src/getopt.h: Likewise.
10144
10145 2000-03-17 Akim Demaille <akim@epita.fr>
10146
10147 * src/Makefile.am (bison.simple): Fix the awk program: quote only
10148 the file name, not the whole `#line LINE FILE'.
10149
10150 2000-03-17 Akim Demaille <akim@epita.fr>
10151
10152 On syntax errors, report the token on which we choked.
10153
10154 * src/bison.s1 (yyparse): In the label yyerrlab, when
10155 YYERROR_VERBOSE, add yychar in msg.
10156
10157 2000-03-17 Akim Demaille <akim@epita.fr>
10158
10159 * src/reader.c (copy_at): New function.
10160 (copy_guard): Use it.
10161 (copy_action): Use it.
10162
10163 2000-03-17 Akim Demaille <akim@epita.fr>
10164
10165 Be kind to translators, save some useless translations.
10166
10167 * src/main.c (banner): New function.
10168 (fatal_banner): Use it.
10169 (warn_banner): Use it.
10170
10171 2000-03-17 Akim Demaille <akim@epita.fr>
10172
10173 * src/reader.c (copy_definition): Use copy_string and
10174 copy_comment. Removed now unused `match', `ended',
10175 `cplus_comment'.
10176 (copy_comment, copy_string): Moved, to be visible from
10177 copy_definition.
10178
10179 2000-03-17 Akim Demaille <akim@epita.fr>
10180
10181 * src/reader.c (copy_string): Declare `static inline'. No
10182 problems with inline, since it is checked by configure.
10183 (copy_comment): Likewise.
10184
10185 2000-03-17 Akim Demaille <akim@epita.fr>
10186
10187 * src/reader.c (packsymbols): Formatting changes.
10188
10189 2000-03-17 Akim Demaille <akim@epita.fr>
10190
10191 * src/reader.c (copy_comment): New function, factored out from:
10192 (copy_action): Use it. Removed now unused `match', `ended',
10193 `cplus_comment'.
10194 (copy_guard): Likewise.
10195
10196 2000-03-17 Akim Demaille <akim@epita.fr>
10197
10198 * src/reader.c (copy_string): New function, factored out from:
10199 (copy_action): Use it.
10200 (copy_guard): Likewise.
10201
10202 2000-03-17 Akim Demaille <akim@epita.fr>
10203
10204 Change the handling of @s so that they behave exactly like $s.
10205 There is now a pseudo variable @$ (readble and writable), location
10206 of the lhs of the rule (by default ranging from the location of
10207 the first symbol of the rhs, to the location of the last symbol,
10208 or, if the rhs is empty, YYLLOC).
10209
10210 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
10211 yyval.
10212 (yyparse): When providing a default semantic action, provide a
10213 default location action.
10214 (after the $): No longer change `*YYLSP', just stack YYLOC the
10215 same way you stack YYVAL.
10216 * src/reader.c (read_declarations): Use warns.
10217 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
10218 (copy_action, case '@'): Likewise.
10219 Use a standard error message, to save useless work from
10220 translators.
10221
10222 2000-03-17 Akim Demaille <akim@epita.fr>
10223
10224 * src/bison.s1: Formatting and cosmetics changes.
10225 * src/reader.c: Likewise.
10226 Update the Copyright notice.
10227
10228 2000-03-17 Akim Demaille <akim@epita.fr>
10229
10230 * src/bison.s1 (#line): All set to `#line' only, since the
10231 Makefile now handles them.
10232
10233 2000-03-16 Akim Demaille <akim@epita.fr>
10234
10235 * src/output.c (output_rule_data): Output the documentation of
10236 some of the tables.
10237 (Copyright notice): Update.
10238 Formatting changes.
10239
10240 2000-03-16 Akim Demaille <akim@epita.fr>
10241
10242 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
10243 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
10244 One `#if YYDEBUG' remains, since it uses variables which are
10245 defined only if `YYDEBUG != 0'.
10246
10247 2000-03-16 Akim Demaille <akim@epita.fr>
10248
10249 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
10250 and related variables so that the similarities are highlighted.
10251
10252 2000-03-16 Akim Demaille <akim@epita.fr>
10253
10254 * src/bison.s1: Properly indent CPP directives.
10255
10256 2000-03-16 Akim Demaille <akim@epita.fr>
10257
10258 * src/bison.s1: Properly indent the `alloca' CPP section.
10259
10260 2000-03-16 Akim Demaille <akim@epita.fr>
10261
10262 Do not hard code values of directories in `configure.in'.
10263 Update the `configure' tool chain.
10264
10265 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
10266 src/makefile.am.
10267 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
10268 (AC_OUTPUT): Add m4/Makefile.
10269 Bump to bison 1.28a, 1.29 has never been released.
10270 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
10271 handled via src/Makefile.am.
10272 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
10273 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
10274 autoheader.
10275 * Makefile.am (SUBDIRS): Add m4.
10276 (ACLOCAL_AM_FLAGS): New variable.
10277 (AUTOMAKE_OPTIONS): Add check-news.
10278 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
10279 the proper line number and file name.
10280 (DEFS): Propagate the location of bison library files and of the
10281 locale files.
10282 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
10283 builddir.
10284 * acinclude.m4: Remove, replaced by the directory m4.
10285 * m4/Makefile.am (EXTRA_DIST): New variable.
10286 * m4/gettext.m4: New file, from the fileutils.
10287 * m4/lcmessage.m4: Likewise
10288 * m4/progtest.m4: Likewise.
10289 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
10290
10291 2000-03-10 Akim Demaille <akim@epita.fr>
10292
10293 * src/closure.c:
10294 Formatting changes of various comments.
10295 Respect the GNU coding standards at various places.
10296 Don't use `_()' when no translation is needed.
10297
10298 1999-12-13 Jesse Thilo <jthilo@gnu.org>
10299
10300 * src/files.c:
10301 OS/2 honors TMPDIR environment variable.
10302
10303 1999-12-13 Jesse Thilo <jthilo@gnu.org>
10304
10305 * doc/bison.texinfo: Tweaked spelling and grammar.
10306 Updated ISBN.
10307 Removed reference to price of printed copy.
10308 Mention BISON_SIMPLE and BISON_HAIRY.
10309
10310 1999-12-13 Jesse Thilo <jthilo@gnu.org>
10311
10312 * configure.in, NEWS:
10313 Bison 1.29 released.
10314
10315 1999-10-27 Jesse Thilo <jthilo@gnu.org>
10316
10317 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
10318 Added reference card.
10319
10320 1999-07-26 Jesse Thilo <jthilo@gnu.org>
10321
10322 * po/ru.po: Added Russian translation.
10323
10324 1999-07-26 Jesse Thilo <jthilo@gnu.org>
10325
10326 * configure.in: Added Russian translation.
10327
10328 1999-07-06 Jesse Thilo <jthilo@gnu.org>
10329
10330 * configure.in, NEWS, README:
10331 Released version 1.28.
10332
10333 1999-06-14 Jesse Thilo <jthilo@gnu.org>
10334
10335 * src/system.h:
10336 Squashed redefinition warning on some systems.
10337
10338 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
10339 Have configure build version string instead of relying on ANSI string
10340 concatentation.
10341
10342 1999-06-14 Jesse Thilo <jthilo@gnu.org>
10343
10344 * po/POTFILES.in: Got rid of version.c.
10345
10346 1999-06-14 Jesse Thilo <jthilo@gnu.org>
10347
10348 * acconfig.h, configure.in:
10349 Have configure build version string instead of relying on ANSI string
10350 concatentation.
10351
10352 1999-06-08 Jesse Thilo <jthilo@gnu.org>
10353
10354 * doc/bison.1:
10355 Dropped mention of `+' for long-named options.
10356
10357 1999-05-30 Jesse Thilo <jthilo@gnu.org>
10358
10359 * src/files.c: Added <unistd.h> for unlink().
10360
10361 * src/Makefile.am, src/system.h:
10362 I18n fixes.
10363
10364 1999-05-30 Jesse Thilo <jthilo@gnu.org>
10365
10366 * README: Added a FAQ list.
10367
10368 * configure.in, acconfig.h:
10369 I18n fixes.
10370
10371 1999-05-30 Jesse Thilo <jthilo@gnu.org>
10372
10373 * doc/FAQ, doc/Makefile.am:
10374 Added a FAQ list.
10375
10376 1999-05-19 Jesse Thilo <jthilo@gnu.org>
10377
10378 * src/alloc.h, src/symtab.h, src/version.c:
10379 Protected inclusion of "config.h" with HAVE_CONFIG_H.
10380
10381 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10382
10383 * src/.cvsignore, src/Makefile.am:
10384 Reorganized: sources in `src', documentation in `doc'.
10385
10386 * src/lex.c (literalchar):
10387 fixed the code for escaping double quotes (thanks
10388 Jonathan Czisny.)
10389
10390 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10391
10392 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10393 Adjusted paths to reflect directory reorganization.
10394
10395 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10396
10397 * doc/.cvsignore, doc/Makefile.am:
10398 Reorganized: sources in `src', documentation in `doc'.
10399
10400 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10401
10402 * configure.in:
10403 Updated AC_INIT file to reflect directory reorganization.
10404
10405 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10406 Reorganized: sources in `src', documentation in `doc'.
10407
10408 1999-04-13 Jesse Thilo <jthilo@gnu.org>
10409
10410 * src/allocate.c:
10411 Don't declare calloc() and realloc() if not necessary.
10412
10413 1999-04-13 Jesse Thilo <jthilo@gnu.org>
10414
10415 * configure.in, acconfig.h, acinclude.m4:
10416 Don't declare calloc() and realloc() if not necessary.
10417
10418 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10419
10420 * po/.cvsignore: Added i18n support.
10421
10422 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10423
10424 * acconfig.h, configure.in, Makefile.am:
10425 Added i18n support.
10426
10427 1999-03-22 Jesse Thilo <jthilo@gnu.org>
10428
10429 * src/bison.s1: Fixed #line numbers.
10430
10431 1999-03-15 Jesse Thilo <jthilo@gnu.org>
10432
10433 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10434 Added PO files from Translation Project.
10435
10436 1999-03-03 Jesse Thilo <jthilo@gnu.org>
10437
10438 * Makefile.am:
10439 Added support for non-ANSI compilers (ansi2knr).
10440
10441 1999-02-16 Jesse Thilo <jthilo@gnu.org>
10442
10443 * configure.in: Bumped version number to 1.27.
10444
10445 * Makefile.am:
10446 Added `bison.simple' to list of files removed by `make distclean'.
10447
10448 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10449
10450 * src/files.c, src/files.h:
10451 Defined locations of parser files in config.h instead of Makefile.
10452
10453 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10454
10455 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10456 Defined locations of parser files in config.h instead of Makefile.
10457
10458 1999-02-09 Jesse Thilo <jthilo@gnu.org>
10459
10460 * Makefile.am:
10461 Removed inappropriate use of $< macro.
10462
10463 1999-02-05 Jesse Thilo <jthilo@gnu.org>
10464
10465 * po/Makefile.in.in, po/POTFILES.in:
10466 Add `po' directory skeleton.
10467
10468 1999-01-27 Jesse Thilo <jthilo@gnu.org>
10469
10470 * README: Document help-bison list.
10471
10472 * configure.in: Add check for mkstemp().
10473
10474 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10475
10476 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10477 Hush a few compiler warnings.
10478
10479 * src/files.c:
10480 Add tryclose(), which verifies that fclose was successful.
10481 Hush a couple of compiler warnings.
10482
10483 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10484
10485 * Makefile.am, OChangeLog:
10486 ChangeLog is now automatically generated. Include the old version as
10487 OChangeLog.
10488
10489 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10490
10491 * 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:
10492 Update FSF address.
10493
10494 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10495
10496 * doc/bison.texinfo: Fix formatting glitch.
10497
10498 * doc/bison.texinfo: Update FSF address.
10499
10500 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10501
10502 * acconfig.h: Update FSF address.
10503
10504 1999-01-08 Jesse Thilo <jthilo@gnu.org>
10505
10506 * src/system.h:
10507 Don't define PACKAGE here, since config.h defines it.
10508
10509 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10510
10511 * src/reader.c: Update copyright date.
10512
10513 * src/main.c:
10514 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10515 favor of output directly to stderr (avoids buffer overruns).
10516
10517 * src/reader.c: Some checks for premature EOF.
10518
10519 * 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:
10520 Use prototypes if the compiler understands them.
10521
10522 * src/files.c: Honor TMPDIR on Unix hosts.
10523 Use prototypes if the compiler understands them.
10524
10525 * src/reader.c:
10526 Fix a couple of buffer overrun bugs.
10527 Use prototypes if the compiler understands them.
10528
10529 * src/system.h: Include unistd.h and ctype.h.
10530 Use #ifdef instead of #if for NLS symbols.
10531
10532 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10533
10534 * doc/bison.texinfo:
10535 Delete comment "consider using @set for edition number, etc..." since
10536 we now are doing so.
10537
10538 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10539
10540 * configure.in:
10541 Use prototypes if the compiler understands them.
10542
10543 * NEWS: Document 1.26 highlights.
10544
10545 * Makefile.am: Require Automake 1.3 or later.
10546
10547 * acconfig.h:
10548 Use prototypes if the compiler understands them.
10549
10550 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10551
10552 * src/version.c:
10553 Use VERSION symbol from automake for version number.
10554
10555 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10556
10557 * acconfig.h, configure.in, version.cin:
10558 Use VERSION symbol from automake for version number.
10559
10560 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10561
10562 * Makefile.am:
10563 Distribute original version of simple parser (bison.s1), not built
10564 version (bison.simple).
10565
10566 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10567
10568 * doc/bison.texinfo: Add info dir entry.
10569
10570 * doc/bison.texinfo:
10571 Let automake put version number into documentation.
10572
10573 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10574
10575 * src/bison.cld, src/build.com, src/vmshlp.mar:
10576 Add non-RCS files from /gd/gnu/bison.
10577
10578 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10579
10580 * doc/bison.1:
10581 Document the BISON_HAIRY and BISON_SIMPLE variables.
10582
10583 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10584
10585 * src/version.c: Build version.c automatically.
10586
10587 * src/reader.c:
10588 Fix token numbering (used to start at 258, not 257).
10589
10590 * src/system.h: Include config.h.
10591
10592 * src/getargs.c: Update bug report address.
10593
10594 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10595 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10596
10597 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10598
10599 * Makefile.am:
10600 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10601
10602 * configure.in, version.cin:
10603 Build version.c automatically.
10604
10605 * AUTHORS: Add AUTHORS file.
10606
10607 * README: Update bug report address.
10608
10609 * bison.simple:
10610 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10611
10612 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10613 Add automake stuff.
10614
10615 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10616
10617 * doc/bison.texinfo: Clean up some formatting.
10618
10619 1998-05-05 Richard Stallman <rms@gnu.org>
10620
10621 * doc/bison.texinfo:
10622 Explain better why to make a pure parser.
10623
10624 1998-01-05 Richard Stallman <rms@gnu.org>
10625
10626 * src/files.c (openfiles):
10627 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10628 find a temporary directory, if possible. Do not unlink files while
10629 they are open.
10630
10631 1997-08-25 Richard Stallman <rms@gnu.org>
10632
10633 * src/reader.c (stack_offset;):
10634 Change some warni to warns.
10635
10636 * src/lex.c (literalchar): Use warns, not warni.
10637
10638 1997-06-28 Richard Stallman <rms@gnu.org>
10639
10640 * src/bison.s1: Add a Bison version comment.
10641
10642 * src/main.c (fatal, warn, berror):
10643 Use program_name.
10644
10645 1997-06-28 Richard Stallman <rms@gnu.org>
10646
10647 * Makefile.in (bison_version): New variable.
10648 (dist): Use that variable.
10649 (bison.s1): Substitute the Bison version into bison.simple.
10650
10651 * bison.simple: Add a Bison version comment.
10652
10653 1997-06-18 Richard Stallman <rms@gnu.org>
10654
10655 * src/main.c (fatal, warn, berror):
10656 Make error messages standard.
10657 (toomany): Improve error message text.
10658
10659 * 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:
10660 new.h renamed to alloc.h.
10661
10662 1997-06-18 Richard Stallman <rms@gnu.org>
10663
10664 * Makefile.in: new.h renamed to alloc.h.
10665
10666 1997-05-24 Richard Stallman <rms@gnu.org>
10667
10668 * src/lex.c (literalchar):
10669 Fix the code for escaping \, " and '.
10670
10671 (lex): Avoid trouble when there are many chars
10672 to discard in a char literal with just several chars in it.
10673
10674 1997-05-17 Richard Stallman <rms@gnu.org>
10675
10676 * src/bison.s1:
10677 Use malloc, if using alloca is troublesome.
10678 (YYSTACK_USE_ALLOCA): New flag macro.
10679 Define it for some systems and compilers.
10680 (YYSTACK_ALLOC): New macro.
10681 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10682 If it was malloc'd, free it.
10683
10684 1997-05-17 Richard Stallman <rms@gnu.org>
10685
10686 * bison.simple:
10687 Use malloc, if using alloca is troublesome.
10688 (YYSTACK_USE_ALLOCA): New flag macro.
10689 Define it for some systems and compilers.
10690 (YYSTACK_ALLOC): New macro.
10691 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10692 If it was malloc'd, free it.
10693
10694 1997-04-23 Richard Stallman <rms@gnu.org>
10695
10696 * src/bison.s1:
10697 (alloca) [__hpux]: Always define as __builtin_alloca.
10698
10699 1997-04-23 Richard Stallman <rms@gnu.org>
10700
10701 * bison.simple:
10702 (alloca) [__hpux]: Always define as __builtin_alloca.
10703
10704 1997-04-22 Richard Stallman <rms@gnu.org>
10705
10706 * src/bison.s1:
10707 [__hpux]: Include alloca.h (right for HPUX 10)
10708 instead of declaring alloca (right for HPUX 9).
10709
10710 * src/bison.s1 (__yy_memcpy):
10711 Declare arg `count' as unsigned int.
10712 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10713
10714 1997-04-22 Richard Stallman <rms@gnu.org>
10715
10716 * bison.simple:
10717 [__hpux]: Include alloca.h (right for HPUX 10)
10718 instead of declaring alloca (right for HPUX 9).
10719
10720 * bison.simple (__yy_memcpy):
10721 Declare arg `count' as unsigned int.
10722 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10723
10724 1997-01-03 Richard Stallman <rms@gnu.org>
10725
10726 * src/allocate.c: [__STDC__ or _MSC_VER]:
10727 Declare calloc and realloc to return void *.
10728
10729 1997-01-02 Richard Stallman <rms@gnu.org>
10730
10731 * src/system.h:
10732 [_MSC_VER]: Include stdlib.h and process.h.
10733 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10734
10735 * src/main.c (main): Return FAILURE as a value.
10736 (printable_version): Declare arg as int, not char.
10737
10738 1997-01-02 Richard Stallman <rms@gnu.org>
10739
10740 * Makefile.in (dist):
10741 Explicitly check for symlinks, and copy them.
10742
10743 1996-12-19 Richard Stallman <rms@gnu.org>
10744
10745 * src/files.c:
10746 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10747
10748 1996-12-18 Paul Eggert <eggert@gnu.org>
10749
10750 * src/bison.s1 (yyparse):
10751 If __GNUC__ and YYPARSE_PARAM are both defined,
10752 declare yyparse to have a void * argument.
10753
10754 1996-12-18 Paul Eggert <eggert@gnu.org>
10755
10756 * bison.simple (yyparse):
10757 If __GNUC__ and YYPARSE_PARAM are both defined,
10758 declare yyparse to have a void * argument.
10759
10760 1996-12-17 Richard Stallman <rms@gnu.org>
10761
10762 * src/reduce.c (nbits): Add some casts.
10763
10764 1996-08-12 Richard Stallman <rms@gnu.org>
10765
10766 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10767
10768 1996-08-12 Richard Stallman <rms@gnu.org>
10769
10770 * bison.simple: Test _MSDOS as well as _MSDOS_.
10771
10772 1996-07-31 Richard Stallman <rms@gnu.org>
10773
10774 * src/bison.s1:
10775 [__sun && __i386]: Include alloca.h.
10776
10777 1996-07-31 Richard Stallman <rms@gnu.org>
10778
10779 * bison.simple:
10780 [__sun && __i386]: Include alloca.h.
10781
10782 1996-07-30 Richard Stallman <rms@gnu.org>
10783
10784 * src/bison.s1: Comment change.
10785
10786 * src/bison.s1: Test _MSDOS_, not MSDOS.
10787
10788 1996-07-30 Richard Stallman <rms@gnu.org>
10789
10790 * bison.simple: Comment change.
10791
10792 * bison.simple: Test _MSDOS_, not MSDOS.
10793
10794 1996-06-01 Richard Stallman <rms@gnu.org>
10795
10796 * 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:
10797 Insert `_' macro around many string constants.
10798
10799 * src/main.c:
10800 Insert `_' macro around many string constants.
10801
10802 (main): Call setlocale, bindtextdomain and textdomain.
10803
10804 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10805 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10806 [ENABLE_NLS]: Include libintl.h.
10807 [ENABLE_NLS] (gettext): Define.
10808 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10809 (N_, PACKAGE, LOCALEDIR): New macros.
10810
10811 1996-06-01 Richard Stallman <rms@gnu.org>
10812
10813 * POTFILES.in: New file.
10814
10815 * Makefile.in (allocate.o):
10816 Define target explicitly.
10817
10818 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10819 (LDFLAGS): Set to @LDFLAGS@.
10820 (configure): Run autoconf only if preceding `cd' succeeds.
10821 (bison.s1): Redirect output to temporary file then move the
10822 temporary to the target, rather than redirecting directly to bison.s1.
10823 (clean): Remove config.status and config.log.
10824 (distclean): Don't remove config.status here.
10825
10826 1996-05-12 Richard Stallman <rms@gnu.org>
10827
10828 * src/bison.s1:
10829 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10830
10831 1996-05-12 Richard Stallman <rms@gnu.org>
10832
10833 * bison.simple:
10834 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10835
10836 1996-05-11 Richard Stallman <rms@gnu.org>
10837
10838 * src/bison.s1 (__yy_memcpy):
10839 Really reorder the args, as was supposedly done on Feb 14 1995.
10840 (yyparse): Calls changed accordingly.
10841
10842 1996-05-11 Richard Stallman <rms@gnu.org>
10843
10844 * Makefile.in (dist): Don't use $(srcdir).
10845
10846 * bison.simple (__yy_memcpy):
10847 Really reorder the args, as was supposedly done on Feb 14 1995.
10848 (yyparse): Calls changed accordingly.
10849
10850 1996-01-27 Richard Stallman <rms@gnu.org>
10851
10852 * src/output.c (output_rule_data):
10853 Test YYERROR_VERBOSE in the conditional
10854 around the definition of ttyname.
10855
10856 1995-12-29 Richard Stallman <rms@gnu.org>
10857
10858 * src/bison.s1:
10859 Fix line numbers in #line commands.
10860
10861 1995-12-29 Richard Stallman <rms@gnu.org>
10862
10863 * bison.simple:
10864 Fix line numbers in #line commands.
10865
10866 1995-12-27 Richard Stallman <rms@gnu.org>
10867
10868 * src/bison.s1 (YYPARSE_PARAM_DECL):
10869 In C++, make it always null.
10870 (YYPARSE_PARAM_ARG): New macro.
10871 (yyparse): Use YYPARSE_PARAM_ARG.
10872
10873 1995-12-27 Richard Stallman <rms@gnu.org>
10874
10875 * bison.simple (YYPARSE_PARAM_DECL):
10876 In C++, make it always null.
10877 (YYPARSE_PARAM_ARG): New macro.
10878 (yyparse): Use YYPARSE_PARAM_ARG.
10879
10880 1995-11-29 Richard Stallman <rms@gnu.org>
10881
10882 * doc/bison.texinfo:
10883 Describe literal string tokens, %raw, %no_lines, %token_table.
10884
10885 1995-11-29 Daniel Hagerty <hag@gnu.org>
10886
10887 * doc/bison.texinfo: Fixed update date
10888
10889 1995-10-16 Richard Stallman <rms@gnu.org>
10890
10891 * src/version.c: Version 1.25.
10892
10893 1995-10-16 Richard Stallman <rms@gnu.org>
10894
10895 * NEWS: *** empty log message ***
10896
10897 1995-10-16 Richard Stallman <rms@gnu.org>
10898
10899 * doc/bison.1, doc/bison.rnh:
10900 Add new options.
10901
10902 1995-10-15 Richard Stallman <rms@gnu.org>
10903
10904 * src/vmsgetargs.c, src/getargs.c:
10905 Added -n, -k, and -raw switches.
10906 (noparserflag, toknumflag, rawtoknumflag): New variables.
10907
10908 * src/symtab.h (SALIAS):
10909 New #define for adding aliases to %token.
10910 (struct bucket): Added `alias' field.
10911
10912 * src/reduce.c (reduce_grammar):
10913 Revise error message.
10914 (print_notices): Remove final `.' from error message.
10915
10916 * src/reader.c (reader_output_yylsp):
10917 New function.
10918 (readgram): Use `#if 0' around code that accepted %command
10919 inside grammar rules: The documentation doesn't allow it,
10920 and it will fail since the %command processors scan for the next %.
10921 (parse_token_decl): Extended the %token
10922 declaration to allow a multi-character symbol as an alias.
10923 (parse_thong_decl): New function.
10924 (read_declarations): Added %thong declarations.
10925 (read_declarations): Handle NOOP to deal with allowing
10926 % declarations as another means to specify the flags.
10927 (readgram): Allow %prec prior to semantics embedded in a rule.
10928 (skip_to_char, read_declarations, copy_definition)
10929 (parse_token_decl, parse_start_decl, parse_type_decl)
10930 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10931 (get_type_name, copy_guard, copy_action, readgram)
10932 (get_type, packsymbols): Revised most error messages.
10933 Changed `fatal' to `warnxxx' to avoid aborting for error.
10934 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10935 (read_declarations): Improve the error message for
10936 an invalid character. Do not abort.
10937 (read_declarations, copy_guard, copy_action): Use
10938 printable_version to avoid unprintable characters in printed output.
10939 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10940 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10941 Allow the type of a non-terminal can be given
10942 more than once, as long as all specifications give the same type.
10943
10944 * src/output.c:
10945 (output_headers, output_trailers, output, output_gram)
10946 (output_rule_data): Implement noparserflag variable.
10947 Implement toknumflag variable.
10948 (output): Call reader_output_yylsp to output LTYPESTR.
10949
10950 * src/main.c (main):
10951 If reader sees an error, don't process the grammar.
10952 (fatals): Updated to not use VARARGS1.
10953 (printable_version, int_to_string, warn, warni, warns, warnss)
10954 (warnsss): New error reporting functions. Avoid abort for error.
10955
10956 * src/lex.h:
10957 Added THONG and NOOP for alias processing.
10958 Added SETOPT for the new code that allows setting options with %flags.
10959
10960 * src/lex.c:
10961 Include getopt.h. Add some extern decls.
10962 (safegetc): New function to deal with EOF gracefully.
10963 (literalchar); new function to deal with reading \ escapes.
10964 (lex): Use literalchar.
10965 (lex): Implemented "..." tokens.
10966 (literalchar, lex, parse_percent_token): Made tokenbuffer
10967 always contain the token. This includes growing the token
10968 buffer while reading an integer.
10969 (parse_percent_token): Replaced if-else statement with percent_table.
10970 (parse_percent_token): Added % declarations as another
10971 way to specify the flags -n, -l, and -r. Also added hooks for
10972 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10973 major changes to files.c.
10974 (lex) Retain in the incoming stream a character following
10975 an incorrect '/'.
10976 (skip_white_space, lex): Revised most error messages
10977 and changed fatal to warn to avoid aborting.
10978 (percent_table): Added %thong declarations.
10979
10980 * src/gram.h: Comment changes.
10981
10982 * src/files.c (openfiles, open_extra_files, done):
10983 Add faction flag
10984 and actfile file. Handle noparserflag. Both for -n switch.
10985
10986 * src/conflicts.c (resolve_sr_conflict):
10987 Remove use of alloca.
10988
10989 1995-06-01 Jim Meyering <meyering@gnu.org>
10990
10991 * doc/bison.texinfo: *** empty log message ***
10992
10993 1995-05-06 Richard Stallman <rms@gnu.org>
10994
10995 * src/bison.s1: Comment change.
10996
10997 1995-05-06 Richard Stallman <rms@gnu.org>
10998
10999 * bison.simple: Comment change.
11000
11001 1995-05-03 Richard Stallman <rms@gnu.org>
11002
11003 * src/version.c: Version now 1.24.
11004
11005 * src/bison.s1: Change distribution terms.
11006
11007 * src/version.c: Version now 1.23.
11008
11009 1995-05-03 Richard Stallman <rms@gnu.org>
11010
11011 * doc/bison.texinfo:
11012 Rewrite "Conditions for Using Bison".
11013 Update version to 1.24.
11014
11015 1995-05-03 Richard Stallman <rms@gnu.org>
11016
11017 * bison.simple: Change distribution terms.
11018
11019 1995-02-23 Richard Stallman <rms@gnu.org>
11020
11021 * src/files.c: Test __VMS_POSIX as well as VMS.
11022
11023 1995-02-14 Jim Meyering <meyering@gnu.org>
11024
11025 * src/bison.s1 (__yy_memcpy):
11026 Renamed from __yy_bcopy to avoid
11027 confusion. Reverse FROM and TO arguments to be consistent with
11028 those of memcpy.
11029
11030 1995-02-14 Jim Meyering <meyering@gnu.org>
11031
11032 * bison.simple (__yy_memcpy):
11033 Renamed from __yy_bcopy to avoid
11034 confusion. Reverse FROM and TO arguments to be consistent with
11035 those of memcpy.
11036
11037 1994-11-10 David J. MacKenzie <djm@gnu.org>
11038
11039 * NEWS: reformat
11040
11041 * NEWS: New file.
11042
11043 * Makefile.in (DISTFILES): Include NEWS.
11044
11045 * Makefile.in (DISTFILES):
11046 Include install-sh, not install.sh.
11047
11048 * configure.in: Update to Autoconf v2 macro names.
11049
11050 1994-10-05 David J. MacKenzie <djm@gnu.org>
11051
11052 * Makefile.in: fix typo
11053
11054 * Makefile.in (prefix, exec_prefix):
11055 Let configure set them.
11056
11057 1994-09-28 David J. MacKenzie <djm@gnu.org>
11058
11059 * Makefile.in: Set datadir to $(prefix)/share.
11060
11061 1994-09-15 Richard Stallman <rms@gnu.org>
11062
11063 * src/bison.s1:
11064 Update copyright notice and GPL version.
11065
11066 1994-09-15 Richard Stallman <rms@gnu.org>
11067
11068 * bison.simple:
11069 Update copyright notice and GPL version.
11070
11071 1994-07-12 Richard Stallman <rms@gnu.org>
11072
11073 * src/reduce.c, src/reader.c:
11074 entered into RCS
11075
11076 1994-05-05 David J. MacKenzie <djm@gnu.org>
11077
11078 * Makefile.in: entered into RCS
11079
11080 1994-03-26 Richard Stallman <rms@gnu.org>
11081
11082 * src/bison.s1: entered into RCS
11083
11084 1994-03-26 Richard Stallman <rms@gnu.org>
11085
11086 * bison.simple: entered into RCS
11087
11088 1994-03-25 Richard Stallman <rms@gnu.org>
11089
11090 * src/main.c: entered into RCS
11091
11092 1994-03-24 Richard Stallman <rms@gnu.org>
11093
11094 * src/conflicts.c: entered into RCS
11095
11096 1994-01-02 Richard Stallman <rms@gnu.org>
11097
11098 * Makefile.in: *** empty log message ***
11099
11100 1993-11-21 Richard Stallman <rms@gnu.org>
11101
11102 * src/bison.s1: *** empty log message ***
11103
11104 1993-11-21 Richard Stallman <rms@gnu.org>
11105
11106 * doc/bison.texinfo: entered into RCS
11107
11108 * doc/bison.texinfo: *** empty log message ***
11109
11110 1993-11-21 Richard Stallman <rms@gnu.org>
11111
11112 * bison.simple: *** empty log message ***
11113
11114 1993-10-25 David J. MacKenzie <djm@gnu.org>
11115
11116 * doc/bison.texinfo: *** empty log message ***
11117
11118 1993-10-19 Richard Stallman <rms@gnu.org>
11119
11120 * src/bison.s1: *** empty log message ***
11121
11122 1993-10-19 Richard Stallman <rms@gnu.org>
11123
11124 * bison.simple: *** empty log message ***
11125
11126 1993-10-14 Richard Stallman <rms@gnu.org>
11127
11128 * src/bison.s1: *** empty log message ***
11129
11130 1993-10-14 Richard Stallman <rms@gnu.org>
11131
11132 * bison.simple: *** empty log message ***
11133
11134 1993-09-14 David J. MacKenzie <djm@gnu.org>
11135
11136 * doc/bison.texinfo: *** empty log message ***
11137
11138 1993-09-13 Noah Friedman <friedman@gnu.org>
11139
11140 * Makefile.in: *** empty log message ***
11141
11142 1993-09-10 Richard Stallman <rms@gnu.org>
11143
11144 * src/conflicts.c: *** empty log message ***
11145
11146 * src/system.h: entered into RCS
11147
11148 1993-09-10 Richard Stallman <rms@gnu.org>
11149
11150 * doc/bison.1: entered into RCS
11151
11152 1993-09-06 Noah Friedman <friedman@gnu.org>
11153
11154 * src/version.c: entered into RCS
11155
11156 1993-09-06 Noah Friedman <friedman@gnu.org>
11157
11158 * Makefile.in: *** empty log message ***
11159
11160 1993-07-30 David J. MacKenzie <djm@gnu.org>
11161
11162 * Makefile.in: *** empty log message ***
11163
11164 1993-07-24 Richard Stallman <rms@gnu.org>
11165
11166 * src/bison.s1: *** empty log message ***
11167
11168 1993-07-24 Richard Stallman <rms@gnu.org>
11169
11170 * bison.simple: *** empty log message ***
11171
11172 1993-07-08 David J. MacKenzie <djm@gnu.org>
11173
11174 * Makefile.in: *** empty log message ***
11175
11176 1993-07-04 Richard Stallman <rms@gnu.org>
11177
11178 * src/bison.s1: *** empty log message ***
11179
11180 1993-07-04 Richard Stallman <rms@gnu.org>
11181
11182 * bison.simple: *** empty log message ***
11183
11184 1993-06-26 David J. MacKenzie <djm@gnu.org>
11185
11186 * src/getargs.c: entered into RCS
11187
11188 1993-06-26 David J. MacKenzie <djm@gnu.org>
11189
11190 * doc/bison.texinfo: *** empty log message ***
11191
11192 * doc/bison.1: New file.
11193
11194 1993-06-25 Richard Stallman <rms@gnu.org>
11195
11196 * src/getargs.c: New file.
11197
11198 1993-06-16 Richard Stallman <rms@gnu.org>
11199
11200 * src/bison.s1: *** empty log message ***
11201
11202 1993-06-16 Richard Stallman <rms@gnu.org>
11203
11204 * bison.simple: *** empty log message ***
11205
11206 1993-06-03 Richard Stallman <rms@gnu.org>
11207
11208 * src/bison.s1: New file.
11209
11210 1993-06-03 Richard Stallman <rms@gnu.org>
11211
11212 * doc/bison.texinfo: *** empty log message ***
11213
11214 1993-06-03 Richard Stallman <rms@gnu.org>
11215
11216 * bison.simple: New file.
11217
11218 1993-05-19 Richard Stallman <rms@gnu.org>
11219
11220 * doc/bison.texinfo: New file.
11221
11222 1993-05-07 Noah Friedman <friedman@gnu.org>
11223
11224 * Makefile.in: *** empty log message ***
11225
11226 1993-04-28 Noah Friedman <friedman@gnu.org>
11227
11228 * src/reader.c: *** empty log message ***
11229
11230 1993-04-23 Noah Friedman <friedman@gnu.org>
11231
11232 * src/alloc.h: entered into RCS
11233
11234 1993-04-20 David J. MacKenzie <djm@gnu.org>
11235
11236 * src/version.c: *** empty log message ***
11237
11238 * src/files.c, src/allocate.c:
11239 entered into RCS
11240
11241 * src/reader.c: *** empty log message ***
11242
11243 * src/lex.c: entered into RCS
11244
11245 * src/conflicts.c: New file.
11246
11247 * src/symtab.c: entered into RCS
11248
11249 * src/alloc.h: New file.
11250
11251 * src/LR0.c: entered into RCS
11252
11253 1993-04-18 Noah Friedman <friedman@gnu.org>
11254
11255 * src/reader.c: New file.
11256
11257 * src/version.c: *** empty log message ***
11258
11259 1993-04-18 Noah Friedman <friedman@gnu.org>
11260
11261 * Makefile.in: *** empty log message ***
11262
11263 1993-04-17 Noah Friedman <friedman@gnu.org>
11264
11265 * Makefile.in: *** empty log message ***
11266
11267 1993-04-15 Richard Stallman <rms@gnu.org>
11268
11269 * src/main.c, src/files.c:
11270 New file.
11271
11272 1993-04-15 Noah Friedman <friedman@gnu.org>
11273
11274 * configure.in: entered into RCS
11275
11276 * configure.in: *** empty log message ***
11277
11278 * configure.in: New file.
11279
11280 1993-04-14 Richard Stallman <rms@gnu.org>
11281
11282 * Makefile.in: New file.
11283
11284 1993-04-13 Richard Stallman <rms@gnu.org>
11285
11286 * src/version.c: New file.
11287
11288 1993-03-25 Richard Stallman <rms@gnu.org>
11289
11290 * src/output.c: entered into RCS
11291
11292 1992-09-25 Richard Stallman <rms@gnu.org>
11293
11294 * configure.bat: entered into RCS
11295
11296 1992-06-22 Richard Stallman <rms@gnu.org>
11297
11298 * src/vmsgetargs.c: entered into RCS
11299
11300 1992-06-22 Richard Stallman <rms@gnu.org>
11301
11302 * doc/bison.rnh: entered into RCS
11303
11304 1992-04-20 David J. MacKenzie <djm@gnu.org>
11305
11306 * README: entered into RCS
11307
11308 1992-01-22 Richard Stallman <rms@gnu.org>
11309
11310 * src/machine.h: entered into RCS
11311
11312 1991-12-21 Richard Stallman <rms@gnu.org>
11313
11314 * src/lalr.c, src/closure.c:
11315 entered into RCS
11316
11317 1991-12-20 Richard Stallman <rms@gnu.org>
11318
11319 * src/state.h: entered into RCS
11320
11321 1991-12-18 Richard Stallman <rms@gnu.org>
11322
11323 * src/print.c, src/nullable.c, src/derives.c:
11324 entered into RCS
11325
11326 1991-11-03 David J. MacKenzie <djm@gnu.org>
11327
11328 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
11329 entered into RCS
11330
11331 1988-09-09 Richard Stallman <rms@gnu.org>
11332
11333 * src/bison.hairy: entered into RCS
11334
11335 1987-12-16 Richard Stallman <rms@gnu.org>
11336
11337 * REFERENCES: entered into RCS
11338
11339 -----
11340
11341 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
11342 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
11343
11344 This file is part of Bison, the GNU Compiler Compiler.
11345
11346 Bison is free software; you can redistribute it and/or modify
11347 it under the terms of the GNU General Public License as published by
11348 the Free Software Foundation; either version 2, or (at your option)
11349 any later version.
11350
11351 Bison is distributed in the hope that it will be useful,
11352 but WITHOUT ANY WARRANTY; without even the implied warranty of
11353 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11354 GNU General Public License for more details.
11355
11356 You should have received a copy of the GNU General Public License
11357 along with Bison; see the file COPYING. If not, write to
11358 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11359 Boston, MA 02111-1307, USA.