]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
* tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
[bison.git] / ChangeLog
... / ...
CommitLineData
12003-03-02 Akim Demaille <akim@epita.fr>
2
3 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
4 message.
5
62003-03-02 Akim Demaille <akim@epita.fr>
7
8 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
9 Use them to exercise yycheck overrun.
10 Based on Andrew Suffield's grammar.
11
122003-03-02 Akim Demaille <akim@epita.fr>
13
14 Create tests/local.at for Bison generic testing macros.
15
16 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
17 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
18 This new file.
19 * tests/calc.at (AT_CHECK_CALC): Adjust.
20 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
21 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
22 * tests/local.at: here.
23 (AT_COMPILE_CXX): Tags the tests using it as c++.
24 Ignore the test if CXX is not functional.
25
262003-03-01 Paul Eggert <eggert@twinsun.com>
27
28 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
29 not loc->end, since loc->end might contain garbage and this leads
30 to undefined behavior on some platforms.
31 (id_loc, token_start): Use (IF_LINTed) initial values that do not
32 depend on *loc, so that the reader doesn't give the the false
33 impression that *loc is initialized.
34 (<INITIAL>"%%"): Do not bother setting code_start, since its value
35 does not survive the return.
36
372003-03-01 Akim Demaille <akim@epita.fr>
38
39 * src/scan-gram.l (code_start): Always initialize it when entering
40 into yylex, as SC_EPILOGUE is activated *before* the corresponding
41 yylex invocation. An alternative would be making it static, but
42 then it starts with the second %%'s beginning, instead of its end.
43
442003-02-28 Paul Eggert <eggert@twinsun.com>
45
46 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
47 around a UnixWare 7.1.1 porting bug reported by John Hughes in
48 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
49
502003-02-26 Paul Eggert <eggert@twinsun.com>
51
52 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
53 Remove Sequent/Pyramid discussion (nobody uses them any more).
54 Merge VMS and MS-DOS discussion; these ports may well be dead
55 but let's keep mentioning them for now. Put <> around email
56 addresses. Add copyright notice.
57
582003-02-24 Paul Eggert <eggert@twinsun.com>
59
60 * data/glr.c (yy_reduce_print): yylineno -> yylno,
61 to avoid collision with flex use of yylineno.
62 Problem reported by Bruce Lilly in
63 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
64 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
65 * data/yacc.c (yy_reduce_print): Likewise.
66
67 * config/depcomp: Sync with Automake 1.7.3.
68
692003-02-21 Akim Demaille <akim@epita.fr>
70
71 * data/lalr1.cc: Use temporary variables instead of casts to
72 change integer types.
73 Suggested by Paul Eggert.
74
752003-02-21 Akim Demaille <akim@epita.fr>
76
77 * doc/bison.texinfo: Use "location" consistently to refer to @n,
78 to avoid confusions with lalr1.cc's notion of Position.
79 Suggested by Paul Eggert.
80
812003-02-20 Akim Demaille <akim@epita.fr>
82
83 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
84 before initial_columns.
85 (location.hh): Use consistent variable names when defining the
86 operator<<.
87 Use "last" so that we subtract from Positions, not from unsigned.
88
892003-02-20 Akim Demaille <akim@epita.fr>
90
91 * data/lalr1.cc (position.hh): New subfile, including the extended
92 and Doxygen'ed documentation of class Position.
93 (location.hh): Use it.
94 Document a` la Doxygen.
95 With the help of Benoit Perrot.
96
972003-02-20 Akim Demaille <akim@epita.fr>
98
99 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
100 AT_YACC_IF.
101 Redefine AT_YYERROR_SEES_LOC_IF using it.
102 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
103 not defined.
104 Don't use the location in yy::Parser::error_ and
105 yy::Parser::print_ when not %locations.
106 Activate more lalr1.cc tests.
107
1082003-02-19 Akim Demaille <akim@epita.fr>
109
110 * data/lalr1.cc: When displaying a line number, be sure to make it
111 an int.
112
1132003-02-19 Akim Demaille <akim@epita.fr>
114
115 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
116 Remove, useless.
117 (YYABORT, YYACCEPT, YYERROR): New.
118 * tests/calc.at: Renable the lalr1.cc test.
119
1202003-02-19 Akim Demaille <akim@epita.fr>
121
122 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
123 error recovery, mixing with/without pops and discarding of the
124 lookahead.
125 Exercise YYERROR.
126 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
127
1282003-02-17 Paul Eggert <eggert@twinsun.com>
129
130 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
131 * tests/testsuite.at (AT_COMPILE): Use them.
132 This fixes the testsuite problem reported by Robert Lentz in
133 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
134
1352003-02-12 Paul Eggert <eggert@twinsun.com>
136
137 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
138 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
139 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
140 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
141 Check for malloc failure, for consistency with yacc.c.
142 (yytname_size): Remove, for consistency with yacc.c.
143
144 The bug still remains in data/lalr1.cc, as I didn't have time
145 to fix it there.
146
1472003-02-06 Akim Demaille <akim@epita.fr>
148
149 * configure.ac (GXX): Rename as...
150 (CXX): this, to keep the original Autoconf semantics.
151 Require 2.57.
152 * data/lalr1.cc: Fix b4_copyright invocations.
153 If YYDEBUG is not defined, don't depend upon name_ being defined.
154 (location.hh): Include string and iostream.
155 (Position::filename): New member.
156 (Position::Position ()): New.
157 (operator<< (Position)): New.
158 (operator- (Position, int)): New.
159 (Location::first, Location::last): Rename as...
160 (Location::begin, Location::end): these, to mock the conventional
161 iterator names.
162 (operator<< (Location)): New.
163 * tests/atlocal.in (CXX): New.
164 * tests/testsuite.at (AT_COMPILE_CXX): New.
165 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
166 locations in a more synthetic way.
167 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
168 lalr1.cc is used.
169 Adjust the C locations to match those from Emacs: first column is
170 column 0.
171 Change all the expected results.
172 Conform to the GCS: simplify the locations when applicable.
173 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
174 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
175 these CPP macros with the m4 macros new defined by...
176 (AT_CHECK_PUSHDEFS): this, i.e.:
177 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
178 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
179 New macros.
180 (AT_CHECK_POPDEFS): Undefine them.
181 (AT_CHECK_CALC_LALR1_CC): New.
182 Use it for the first lalr1.cc test.
183
1842003-02-04 Akim Demaille <akim@epita.fr>
185
186 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
187 Location as is defined.
188
1892003-02-04 Akim Demaille <akim@epita.fr>
190
191 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
192 name_ being defined.
193
1942003-02-03 Paul Eggert <eggert@twinsun.com>
195
196 * src/gram.h (start_symbol): Remove unused decl.
197
198 Use more-consistent naming conventions for local vars.
199
200 * src/derives.c (derives_compute): Change type of local var from
201 int to rule_number.
202 * src/gram.c (grammar_rules_partial_print): Likewise.
203 * src/print.c (print_core): Likewise.
204 * src/reduce.c (reduce_grammar_tables): Likewise.
205
206 * src/gram.c (grammar_dump): Change name of item_number *
207 local var from r to rp.
208 * src/nullable.c (nullable_compute): Likewise.
209
210 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
211
212 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
213 for symbol or symbol_number var.
214 * src/reader.c (grammar_start_symbol_set): Likewise.
215 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
216 Likewise.
217 * src/state.c (transitions_to): Likewise.
218 * src/state.h: Likewise.
219 * src/tables.c (symbol_number_to_vector_number): Likewise.
220
221 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
222 char * var.
223
224 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
225 var.
226
227 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
228 var.
229
230 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
231 Use str, not s, for char * var. Use ch, not c, for character var.
232 Use size for size var.
233
234 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
235 char * var.
236 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
237 uniqstr var.
238 * src/uniqstr.h: Likewise.
239
240 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
241 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
242 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
243 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
244 param to have same name as that of enum, so that we don't use
245 "s" to stand for a non-state.
246
2472003-02-02 Akim Demaille <akim@epita.fr>
248
249 * src/scan-skel.l: Scan more than one inert character per yylex
250 invocation.
251
2522003-02-01 Paul Eggert <eggert@twinsun.com>
253
254 Version 1.875a.
255
256 * po/LINGUAS: Add ms.
257
2582003-01-30 Akim Demaille <akim@epita.fr>
259
260 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
261
2622003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
263
264 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
265 of $1.
266
267 Changes in response to error report by S. Eken: GLR mode does not
268 handle negative $ indices or $ indices in embedded rules correctly.
269 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
270
271 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
272 (b4_rhs_location): Ditto.
273 (yyfill): New function to copy from stack tree into array
274 incrementally.
275 (yyuserAction): Modify to allow incremental move of semantic values
276 to rhs array when in GLR mode.
277 Define YYFILL to use in user-defined actions to fill semantic array
278 as needed.
279 Remove dummy use of yystack, as there is now a guaranteed use.
280 (yydoAction): Modify to allow incremental move of semantic values
281 to rhs array when in GLR mode.
282 (yyresolveAction): Ditto.
283 (yyglrShiftDefer): Update comment.
284 (yyresolveStates): Use X == NULL for pointers, not !X.
285 (yyglrReduce): Ditto.
286 (yydoAction): Ditto
287
288 * tests/glr-regr1.at: Rename to ...
289 * tests/glr-regression.at: Add new regression test for the problems
290 described above (adapted from S. Eken).
291 Update copyright notice.
292 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
293 * tests/Makefile.am: Ditto.
294
2952003-01-28 Paul Eggert <eggert@twinsun.com>
296
297 * data/lalr1.cc: Do not use @output_header_name@ unless
298 b4_defines_flag is set. This fixes two bugs reported by
299 Tim Van Holder in
300 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
301 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
302
3032003-01-21 Paul Eggert <eggert@twinsun.com>
304
305 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
306 we don't need to worry about yyerrlab1 being reported as an
307 "unused label" by non-GCC C compilers. The downside is that if
308 locations are used then a couple of statements are duplicated each
309 time YYERROR is invoked, but the upside is that the warnings
310 should vanish.
311 (yyerrlab1): Move code to YERROR.
312 (yyerrlab2): Remove. Change uses back to yyerrlab1.
313 This reverts some of the 2002-12-27 change.
314
3152003-01-17 Paul Eggert <eggert@twinsun.com>
316
317 * src/output.c (symbol_printers_output): Fix typo that led
318 to core dump. Problem reported by Antonio Rus in
319 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
320
3212003-01-13 Akim Demaille <akim@epita.fr>,
322 Quoc Peyrot <chojin@lrde.epita.fr>,
323 Robert Anisko <anisko_r@lrde.epita.fr>
324
325 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
326 when the stacks contain one element, as the loop would otherwise
327 free the last state, and then use the top state (the one we just
328 popped). This means that the initial elements will not be freed
329 explicitly, as is the case in yacc.c; it is not a problem, as
330 these elements have fake values.
331
3322003-01-11 Paul Eggert <eggert@twinsun.com>
333
334 * NEWS: %expect-violations are now just warnings, reverting
335 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
336 bootstrapping problem reported by Matthias Klose; see
337 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
338 * src/conflicts.c (conflicts_print): Likewise.
339 * tests/conflicts.at (%expect not enough, %expect too much,
340 %expect with reduce conflicts): Likewise.
341 * doc/bison.texinfo (Expect Decl): Document this. Also mention
342 that the warning is enabled if the number of conflicts changes
343 (not necessarily increases).
344
345 * src/getargs.c (version): Update copyright year.
346
3472003-01-09 Akim Demaille <akim@epita.fr>
348
349 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
350
3512003-01-08 Paul Eggert <eggert@twinsun.com>
352
353 * Makefile.maint (WGETFLAGS):
354 New macro, containing "-C off" to disable proxy caches.
355 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
356 (rel-check): Use $(WGET) instead of wget.
357
3582003-01-06 Paul Eggert <eggert@twinsun.com>
359
360 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
361 the GLR paper of Scott, Johnstone and Hussain.
362
3632003-01-04 Paul Eggert <eggert@twinsun.com>
364
365 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
366 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
367 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
368 (EXTRA_LIBRARIES): New var, for liby.a.
369 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
370 (EXTRA_SCRIPTS): New var, for yacc.
371
372 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
373 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
374 Problem reported by Nelson H. F. Beebe.
375
3762003-01-03 Paul Eggert <eggert@twinsun.com>
377
378 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
379 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
380 when compiling Bison 1.875's `bitset bset = obstack_alloc
381 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
382
383 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
384 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
385 grow to a huge size with typical invocation.
386
387 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
388 Use the pattern recommended by Autoconf 2.57, except also protect
389 against double-definition.
390 * src/system.h: Likewise.
391 Portability issues reported by Nelson H. F. Beebe.
392
393 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
394 All uses changed. Provide a definition in both C and C++.
395 (yytrue, yyfalse): Define even if defined (__cplusplus).
396
397 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
398 Reported by Nelson H. F. Beebe.
399
400 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
401
4022003-01-02 Paul Eggert <eggert@twinsun.com>
403
404 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
405 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
406 Bug reported by Nelson H. F. Beebe.
407
4082003-01-01 Paul Eggert <eggert@twinsun.com>
409
410 * Version 1.875.
411
4122002-12-30 Paul Eggert <eggert@twinsun.com>
413
414 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
415 Moved here from...
416 (<INITIAL>","): Here. This causes stray "," to be treated
417 more uniformly.
418
419 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
420 last brace in braced code when not in Yacc mode, for compatibility
421 with Bison 1.35. This resurrects the 2001-12-15 patch to
422 src/reader.c.
423
424 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
425 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
426
4272002-12-28 Paul Eggert <eggert@twinsun.com>
428
429 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
430 that of SYM's type. This fixes Debian bug 168069, reported by
431 Thomas Olsson.
432
4332002-12-28 Paul Eggert <eggert@twinsun.com>
434
435 Version 1.75f.
436
437 Switch back to the Yacc style of conflict reports, undoing some
438 of the 2002-07-30 change.
439 * doc/bison.texinfo (Understanding): Use Yacc style for
440 conflict reports. Also, use new way of locating rules.
441 * src/conflicts.c (conflict_report):
442 Renamed from conflict_report_yacc, removing the old
443 'conflict_report'. Translate the entire conflict report at once,
444 so that we don't assume that "," has the same interpretation in
445 all languages.
446 (conflicts_output): Use Yacc-style conflict report for each state,
447 instead of our more-complicated style.
448 (conflicts_print): Use Yacc-style conflict report, except print
449 the input file name when not emulating Yacc.
450 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
451 Conflicted Reduction, %expect not enough, %expect too much,
452 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
453 * tests/existing.at (GNU Cim Grammar): Likewise.
454 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
455
456 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
457 fatal): Don't invoke fflush; it's not needed and it might even be
458 harmful for stdout, as stdout might not be open.
459 * src/reduce.c (reduce_print): Likewise.
460
4612002-12-27 Paul Eggert <eggert@twinsun.com>
462
463 Fix a bug where error locations were not being recorded correctly.
464 This problem was originally reported by Paul Hilfinger in
465 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
466
467 * data/yacc.c (yyparse): New local var yylerrsp, to record the
468 top of the location stack's error locations.
469 (yyerrlab): Set it. When discarding a token, push its location
470 onto yylerrsp so that we don't lose track of the error's end.
471 (yyerrlab1): Now is only the target of YYERROR, so that we can
472 properly record the location of the action that failed. For GCC
473 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
474 GCC warning about yyerrlab1 being unused if YYERROR is unused.
475 (yyerrlab2): New label, which yyerrlab now falls through to.
476 Compute the error's location by applying YYLLOC_DEFAULT to
477 the locations of all the symbols that went into the error.
478 * doc/bison.texinfo (Location Default Action): Mention that
479 YYLLOC_DEFAULT is also invoked for syntax errors.
480 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
481 Error locations include the locations of all the tokens that were
482 discarded, not just the last token.
483
4842002-12-26 Paul Eggert <eggert@twinsun.com>
485
486 * src/files.c: Include quote.h.
487 (compute_output_file_names): Warn if we detect conflicting
488 outputs to the same file. This should catch the misunderstanding
489 exemplified by Debian Bug 165349, reported by Bruce Stephens..
490
491 * src/conflicts.c (conflicts_print): If the user specifies
492 "%expect N", report an error if there are any reduce/reduce
493 conflicts. This is what the manual says should happen.
494 This fixes Debian bug 130890, reported by Anthony DeRobertis.
495 * tests/conflicts.at (%expect with reduce conflicts): New test.
496
497 Don't use m4_include on relative file names, as it doesn't work as
498 desired if there happens to be a file with that name under ".".
499
500 * m4sugar/version.m4: Remove; it was included but it wasn't used.
501 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
502 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
503 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
504 * src/output.c (output_skeleton): Use full path names when
505 specifying a file to include; don't rely on include path, as
506 it's unreliable when the working file contains a file with
507 that name.
508
5092002-12-25 Paul Eggert <eggert@twinsun.com>
510
511 Remove obsolete references to bison.simple and bison.hairy.
512 Problem mentioned by Aubin Mahe in
513 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
514 * data/glr.c: Comment fix.
515 * doc/bison.1: Remove references. Also, mention "yacc".
516
517 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
518 with -g option.
519
520 * src/parse-gram.y (declaration): Use enum "report_states" rather
521 than its numeric value 1.
522
523 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
524 opening a new one. This fixes Debian bug 165349, reported by
525 Bruce Stephens.
526
5272002-12-24 Paul Eggert <eggert@twinsun.com>
528
529 Version 1.75e.
530
531 * Makefile.maint (cvs-update): Don't assume that the shell
532 supports $(...), as Solaris sh doesn't.
533
534 * src/parse-gram.y (lloc_default): Remove test for empty
535 nonterminals at the end, since it didn't change the result.
536
5372002-12-24 Paul Eggert <eggert@twinsun.com>
538
539 If the user does not define YYSTYPE as a macro, Bison now declares it
540 using typedef instead of defining it as a macro. POSIX requires this.
541 For consistency, YYLTYPE is also declared instead of defined.
542
543 %union directives can now have a tag before the `{', e.g., the
544 directive `%union foo {...}' now generates the C code
545 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
546 The default union tag is `YYSTYPE', for compatibility with Solaris 9
547 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
548 instead of `yyltype'.
549
550 `yystype' and `yyltype' are now obsolescent macros instead of being
551 typedefs or tags; they are no longer documented and will be
552 withdrawn in a future release.
553
554 * data/glr.c (b4_location_type): Remove.
555 (YYSTYPE): Renamed from yystype.
556 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
557 (struct YYLTYPE): Renamed from struct yyltype.
558 (YYLTYPE): Renamed from yyltype.
559 (yyltype, yystype): New (and obsolescent) macros,
560 for backward compatibility.
561 * data/yacc.c: Likewise.
562
563 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
564 does not specify a union tag. This is for compatibility with
565 Solaris 9 yacc.
566
567 * src/parse-gram.y (add_param): 2nd arg is now char * not char
568 const *, since it is now modified by stripping surrounding { }.
569 (current_braced_code): Remove.
570 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
571 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
572 trailing " {...}". Now of type <chars>.
573 (grammar_declaration): Adjust to bundled tokens.
574 (code_content): Remove; stripping is now done by add_param.
575 (print_token_value): Print contents of bundled tokens.
576 (token_name): New function.
577
578 * src/reader.h (braced_code, current_braced_code): Remove.
579 (token_name): New decl.
580
581 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
582 token_type, not braced_code code_kind. All uses changed.
583 (SC_PRE_CODE): New state, for scanning after a keyword that
584 has (or usually has) an immediately-following braced code.
585 (token_type): New local var, to keep track of which token type
586 to return when scanning braced code.
587 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
588 <INITIAL>"%parse-param", <INITIAL>"%printer",
589 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
590 instead of returning a token type immediately.
591 (<INITIAL>"{"): Set token type.
592 (<SC_BRACED_CODE>"}"): Use it.
593 (handle_action_dollar, handle_action_at): Now returns bool
594 indicating success. Fail if ! current_rule; this prevents a core dump.
595 (handle_symbol_code_dollar, handle_symbol_code_at):
596 Remove; merge body into caller.
597 (handle_dollar, handle_at): Complain in invalid contexts.
598
599 * NEWS, doc/bison.texinfo: Document the above.
600 * NEWS: Fix years and program names in copyright notice.
601
6022002-12-17 Paul Eggert <eggert@twinsun.com>
603
604 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
605 Reporting, Table of Symbols): Omit mentions of %lex-param and
606 %parse-param from the documentation for now.
607
6082002-12-15 Paul Eggert <eggert@twinsun.com>
609
610 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
611 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
612 lookahead symbol, and which sets yychar in parser actions) and it
613 disagreed with the Bison documentation. Bug
614 reported by Andrew Walrond.
615
616 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
617 as the caller now does that.
618 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
619 (YYEMPTY): Parenthesize right hand side, since others use it.
620 (yyparse): Don't assume that our generated code is the only code
621 that sets yychar.
622
6232002-12-13 Paul Eggert <eggert@twinsun.com>
624
625 Version 1.75d.
626
627 POSIX requires a "yacc" command.
628 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
629 (MOSTLYCLEANFILES): Add yacc.
630 (yacc): New rule.
631 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
632 as an alias for bison y.
633
634 * po/LINGUAS: Add da.
635
636 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
637 problem with latest <getopt.h>.
638 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
639
640 * doc/fdl.texi: Upgrade to 1.2.
641 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
642 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
643 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
644 gnulib.
645 * config/install-sh: Sync with autotools.
646
647 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
648 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
649 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
650 locations are requested.
651 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
652 locations are requested.
653
6542002-12-12 Paul Eggert <eggert@twinsun.com>
655
656 Remove unportable casts and storage allocation tricks.
657 While we're at it, remove almost all casts, since they
658 usually aren't needed and are a sign of trouble.
659
660 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
661
662 * src/derives.c (derives_compute): Do not subtract NTOKENS from
663 the pointer DSET returned by malloc; this isn't portable.
664 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
665 Similarly for DERIVES.
666 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
667 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
668 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
669
670 * src/derives.c (derives_compute): Do not bother invoking
671 int_of_rule_number, since rule numbers are integers.
672
673 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
674 rather than XMALLOC (char, N).
675
676 * src/files.c (filename_split): Rewrite to avoid cast.
677
678 * src/gram.h (symbol_number_as_item_number,
679 item_number_as_symbol_number, rule_number_as_item_number,
680 item_number_as_rule_number):
681 Now inline functions rather than macros, to avoid casts.
682 * src/state.h (state_number_as_int): Likewise.
683 * src/tables.c (state_number_to_vector_number,
684 symbol_number_to_vector_number): Likewise.
685
686 * src/gram.h (int_of_rule_number): Remove; no longer used.
687
688 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
689 since the resulting storage is always stored into.
690
691 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
692 where it's needed.
693
694 * src/muscle_tab.c (muscle_m4_output):
695 Now inline. Return bool, not int.
696 * src/state.c (state_compare): Likewise.
697 * src/symtab.c (symbol_check_defined,
698 symbol_check_alias_consistency, symbol_pack, symbol_translation,
699 hash_compare_symbol, hash_symbol):
700 Likewise.
701 * src/uniqstr.c (uniqstr_print): Likewise.
702 * src/muscle_tab.c (muscle_m4_output_processor):
703 New function, to avoid casts.
704 * src/state.c (state_comparator, stage_hasher): Likewise.
705 * src/symtab.c (symbol_check_defined_processor,
706 symbol_check_alias_consistency_processor, symbol_pack_processor,
707 symbol_translation_processor, hash_symbol_comparator,
708 hash_symbol_hasher): Likewise.
709 * src/uniqstr.c (uniqstr_print_processor): Likewise.
710 * src/muscle_tab.c (muscles_m4_output):
711 Use new functions instead of casting old functions unportably.
712 * src/state.c (state_hash_new): Likewise.
713 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
714 symbols_token_translations_init):
715 Likewise.
716 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
717
718 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
719 var instead of casting to long, to avoid casts.
720 (prepare_states): Use MALLOC rather than alloca, so that we don't
721 have to worry about alloca.
722 * src/state.c (state_hash_lookup): Likewise.
723
724 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
725 local var instead of casting to unsigned char, to avoid casts.
726
727 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
728 STATE_ALLOC): Remove.
729 (transitions_new, errs_new, reductions_new, state_new): Use malloc
730 rather than calloc, and use offsetof to avoid allocating slightly
731 too much storage.
732 (state_new): Initialize all members.
733
734 * src/state.c (state_hash): Use unsigned accumulator, not signed.
735
736 * src/symtab.c (symbol_free): Remove; unused.
737 (symbol_get): Remove cast in lhs of assignment.
738 (symbols_do): Now static. Accept generic arguments, not
739 hashing-related ones.
740
741 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
742 (symbol_processor): Remove.
743 (symbols_do): Remove decl; now static.
744
745 * src/system.h (alloca): Remove; decl no longer needed.
746 (<stddef.h>): Include, for offsetof.
747 (<inttypes.>, <stdint.h>): Include if available.
748 (uintptr_t): New type, if system lacks it.
749 (CALLOC, MALLOC, REALLOC): New macros.
750 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
751 new macros.
752
753 * src/tables.c (table_size): Now int, to pacify GCC.
754 (table_grow, table_ninf_remap): Use signed table size.
755 (save_row): Don't bother initializing locals when not needed.
756 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
757 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
758
759 * src/vcg.h: Correct misspellings.
760
761 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
762
763
764 * src/getargs.c (getargs): Don't assume EOF == -1.
765
7662002-12-09 Paul Eggert <eggert@twinsun.com>
767
768 Change identifier spellings to avoid collisions with names
769 that are reserved by POSIX.
770
771 Don't use names ending in _t, since POSIX reserves them.
772 For consistency, remove _e and _s endings -- they're weren't
773 needed to remove ambiguity. All uses changed.
774 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
775 turn was just renamed from struniq_t.
776 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
777 which in turn was just renamed from struniq_processor_t.
778 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
779 in turn was renamed from hash_compare_struniq_t.
780 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
781 (state_list): Renamed from state_list_t.
782 * src/assoc.h (assoc): Renamed from assoc_t.
783 * src/conflicts.c (enum conflict_resolution): Renamed from
784 enum conflict_resolution_e.
785 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
786 (rule_list): Renamed from rule_list_t.
787 * src/getargs.h (enum trace): Renamed from enum trace_e.
788 (enum report): Renamed from enum report_e.
789 * src/gram.h (item_number): Renamed from item_number_t.
790 (rule_number): Renamed from rule_number_t.
791 (struct rule_s): Remove the "rule_s" part; not used.
792 (rule): Renamed from rule_t.
793 (rule_filter): Renamed from rule_filter_t.
794 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
795 (goto_list): Renamed from goto_list_t.
796 * src/lalr.h (goto_number): Renamed from goto_number_t.
797 * src/location.h (location): Renamed from location_t.
798 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
799 and moved here from:
800 * src/muscle_tab.h (muscle_entry_t): here.
801 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
802 (rule_list): Renamed from rule_list_t.
803 * src/print_graph.c (static_graph): Renamed from graph.
804 * src/reader.h (braced_code): Renamed from braced_code_t.
805 Remove brace_code_e tag.
806 * src/relation.h (relation_node): Renamed from relation_node_t.
807 (relation_nodes): Renamed from relation_nodes_t.
808 (relation): Renamed from relation_t.
809 * src/state.h (state_number): Renamed from state_number_t.
810 (struct state): Renamed from struct state_s.
811 (state): Renamed from state_t.
812 (transitions): Renamed from transitions_t. Unused (and
813 misspelled) transtion_s tag removed.
814 (errs): Renamed from errs_t. Unused errs_s tag removed.
815 (reductions): Renamed from reductions_t. Unused tag
816 reductions_s removed.
817 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
818 (struct symbol_list): Renamed from struct symbol_list_s.
819 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
820 (struct symbol): Renamed from struct symbol_s.
821 (symbol): Renamed from symbol_t.
822 * src/tables.c (vector_number): Renamed from vector_number_t.
823 (action_number): Renamed from action_t.
824 * src/tables.h (base_number): Renamed from base_t.
825 * src/vcg.h (enum color): Renamed from enum color_e.
826 (enum textmode): Renamed from enum textmode_e.
827 (enum shape): Renamed from enum shape_e.
828 (struct colorentry): Renamed from struct colorentry_s.
829 (struct classname): Renamed from struct classname_s.
830 (struct infoname): Renamed from struct infoname_s.
831 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
832 (enum decision): Renamed from enum decision_e.
833 (enum orientation): Renamed from enum orientation_e.
834 (enum alignment): Renamed from enum alignment_e.
835 (enum arrow_mode): Renamed from enum arrow_mode_e.
836 (enum crossing_type): Renamed from enum crossing_type_e.
837 (enum view): Renamed from enum view_e.
838 (struct node): Renamed from struct node_s.
839 (node): Renamed from node_t.
840 (enum linestyle): Renamed from enum linestyle_e.
841 (enum arrowstyle): Renamed from enum arrowstyle_e.
842 (struct edge): Renamed from struct edge.
843 (edge): Renamed from edge_t.
844 (struct graph): Renamed from struct graph_s.
845 (graph): Renamed from graph_t.
846 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
847 Rename value_t -> value.
848 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
849 value_t_as_yystype -> value_as_yystype.
850
851 Don't include <errno.h> in the mainstream code, since it
852 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
853 * lib/get-errno.c, lib/get-errno.h: New files.
854 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
855 get-errno.c.
856 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
857 * src/output.c (output_skeleton): Likewise.
858 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
859 instead of errno.
860 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
861 Likewise.
862 (handle_action_dollar, handle_action_at): Likewise.
863 * src/system.h: Do not include <errno.h>.
864 (TAB_EXT): Renamed from EXT_TAB.
865 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
866
867 Avoid str[a-z]*, since <string.h> reserves that name space.
868 Change all instances of "struniq" in names to "uniqstr", and
869 likewise for "STRUNIQ" and "UNIQSTR".
870 * src/uniqstr.c: Renamed from src/struniq.c.
871 * src/uniqstr.h: Renamed from src/struniq.h.
872 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
873 * src/files.c (strsuffix): Remove; unused.
874 (concat2): Renamed from stringappend. Now static.
875 * src/files.h (strsuffix, stringappend): Remove; unused.
876 * src/parse-gram.y (<chars>): Renamed from <string>.
877 (<uniqstr>): Renamed from <struniq>.
878 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
879 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
880 (struct graph_s.expand): Renamed from struct graph_s.stretch.
881 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
882 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
883 (N_EXPAND): Renamed from N_STRETCH.
884
885 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
886 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
887 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
888 Remove; unused.
889 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
890 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
891 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
892 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
893 (BASE_MAXIMUM): Renamed from BASE_MAX.
894 (BASE_MINIMUM): Renamed from BASE_MIN.
895 (ACTION_MAX): Remove; unused.
896 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
897 Unnecessary casts removed from above defines.
898
899
900 Fix misspelling in names.
901 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
902 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
903 G_NODE_ALIGNEMENT.
904
905
906 * lib/timevar.c (timevar_report): Renamed from time_report,
907 for consistency with other names.
908 * lib/timevar.h (timevar_report): New decl.
909 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
910
911
912 Sort include-file uses.
913
914 Reorder all include files under src to be in the order "system.h".
915 then the ../lib include files in angle brackets (alphabetized),
916 then the . include files in double-quotes (alphabetized). Fix
917 dependency breakages encountered in this process, as follows:
918 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
919 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
920 * src/state.h: Include "symtab.h".
921
9222002-12-08 Paul Eggert <eggert@twinsun.com>
923
924 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
925 since this causes problems when __file__ contains character
926 sequences like "@" that are treated specially by src/scan-skel.l.
927 Instead, just use the file's basename. This fixes the bug
928 reported by Martin Mokrejs in
929 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
930
9312002-12-06 Paul Eggert <eggert@twinsun.com>
932
933 Add support for rules that do not have trailing semicolons, as
934 POSIX requires. Improve the quality of locations in Bison
935 diagnostics.
936
937 * src/location.c: Include <quotearg.h>.
938 (empty_location): Now const.
939 (location_print): New function. Follow the recommendation of the
940 GNU Coding Standards for locations that span file boundaries.
941 * src/location.h: Do not include <quotearg.h>; no longer needed.
942 (boundary): New type.
943 (location_t): Use it. This allows locations to span file boundaries.
944 All member uses changed: file -> start.file or end.file (as needed),
945 first_line -> start.line, first_column -> start.column,
946 last_line -> end.line, last_column -> end.column.
947 (equal_boundaries): New function.
948 (LOCATION_RESET, LOCATION_STEP): Remove.
949 (LOCATION_PRINT): Remove. All callers changed to use location_print.
950 (empty_location): Now const.
951 (location_print): New decl.
952 * src/parse-gram.y (lloc_default): New function, which handles
953 empty locations more accurately.
954 (YYLLOC_DEFAULT): Use it.
955 (%token COLON): Remove.
956 (%token ID_COLON): New token.
957 (rules): Use it.
958 (declarations, rules): Remove trailing semicolon.
959 (declaration, rules_or_grammar_declaration):
960 Allow empty (";") declaration.
961 (symbol_def): Remove empty actions; no longer needed.
962 (rules_or_grammar_declaration): Remove trailing semicolon.
963 (semi_colon.opt): Remove.
964 * src/reader.h: Include location.h.
965 (scanner_cursor): New decl.
966 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
967 rolling our own.
968 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
969 of *loc.
970 (STEP): Remove. No longer needed, now that adjust_location does
971 the work. All uses removed.
972 (scanner_cursor): New var.
973 (adjust_location): Renamed from extend_location. It now sets
974 *loc and adjusts the scanner cursor. All uses changed.
975 Don't bother testing for CR.
976 (handle_syncline): Remove location arg; now updates scanner cursor.
977 All callers changed.
978 (unexpected_end_of_file): Now accepts start boundary of token or
979 comment, not location. All callers changed. Update scanner cursor,
980 not the location.
981 (SC_AFTER_IDENTIFIER): New state.
982 (context_state): Renamed from c_context. All uses changed.
983 (id_loc, code_start, token_start): New local vars.
984 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
985 processing of Yacc white space and equivalents here.
986 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
987 instead of returning ID immediately, since we need to search for
988 a subsequent colon.
989 (<INITIAL>"'", "\""): Save token_start.
990 (<INITIAL>"%{", "{", "%%"): Save code_start.
991 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
992 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
993 BEGIN context_state at end, not INITIAL.
994 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
995 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
996 Return correct token start.
997 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
998 the start of a character, string or multiline comment is found.
999 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
1000 Reduction): Adjust reported locations to match the more-precise
1001 results now expected.
1002 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
1003 * tests/reduce.at (Useless Rules, Reduced Automaton,
1004 Underivable Rules): Likewise.
1005 * tests/regression.at (Invalid inputs): No longer `expecting ";"
1006 or "|"' now that so many other tokens are allowed by the new grammar.
1007
1008 * src/complain.h (current_file): Remove duplicate decl;
1009 current_file is now owned by files.h.
1010 * src/complain.c, src/scan-gram.l: Include files.h.
1011
10122002-12-06 Paul Eggert <eggert@twinsun.com>
1013
1014 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
1015 promotes to int; it might be unsigned int.
1016 * data/yacc.c (yy_reduce_print): Likewise.
1017
1018 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
1019 be #defined in the prologue, not in the Bison declarations.
1020 This fixes Debian Bug 102878, reported by Shaul Karl.
1021
10222002-12-02 Paul Eggert <eggert@twinsun.com>
1023
1024 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
1025 * lib/strtoul.c: New file, from gnulib.
1026 This fixes a porting bug reported by Peter Klein in
1027 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
1028
10292002-11-30 Paul Eggert <eggert@twinsun.com>
1030
1031 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
1032 and put only a forward declaration in the prologue. This is for
1033 consistency with the other scanner helper functions.
1034
1035 Type clashes now generate warnings, not errors, since it
1036 appears that POSIX may allow some grammars with type clashes.
1037 * src/reader.c (grammar_current_rule_check): Warn about
1038 type clashes instead of complaining.
1039 * tests/input.at (Type Clashes): Expect warnings, not complaints.
1040
1041 Add Yacc library, since POSIX requires it.
1042 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
1043 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
1044 * lib/main.c, lib/yyerror.c: New files.
1045
1046 gram_error can be static; it need not be extern.
1047 * src/reader.h (gram_error): Remove decl.
1048 * src/parse-gram.y (gram_error): Now static. Add static decl.
1049 (print_token_value): Omit parameter names from forward decl,
1050 for consistency.
1051
10522002-11-29 Paul Eggert <eggert@twinsun.com>
1053
1054 * doc/bison.texinfo: Emphasize that yylex and yyerror must
1055 be declared before being used. E.g., one should typically
1056 declare them in the prologue. Use GNU coding style in examples.
1057 Put "const" consistently after the type it modifies. Mention
1058 that C99 supports "inline". Mention that yyerror traditionally
1059 returns "int".
1060
1061 %parse-param and %lex-param now take just one argument, the
1062 declaration; the argument name is deduced from the declaration.
1063
1064 * doc/bison.texinfo (Parser Function, Pure Calling, Error
1065 Reporting, Table of Symbols): Document this.
1066 * src/parse-gram.y (add_param): New function.
1067 (COMMA): Remove.
1068 (declaration): Implement new rule for %parse-param and %lex-param.
1069 * src/scan-gram.l: "," now elicits a warning, rather than being
1070 a token; this is more compatible with byacc.
1071 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1072
10732002-11-27 Paul Eggert <eggert@twinsun.com>
1074
1075 Rename identifiers to avoid real and potential collisions.
1076
1077 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1078 to avoid collision with lex macro described by Bruce Lilly in
1079 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1080 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1081 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1082 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1083 All uses changed.
1084 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1085 The name "yycontrol" violates the name space rules, and this stuff
1086 wasn't being used anyway.
1087 (input): Remove action; this stuff wasn't being used.
1088 (gram_error): Rename local variable yylloc -> loc.
1089 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1090 (YY_DECL): Don't use "yy" at start of local variables.
1091 All uses changed, e.g., yylloc -> loc.
1092 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1093 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1094 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1095 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1096
1097 * src/parse-gram.y (gram_error): loc is now const *.
1098 * src/reader.h (gram_error): Likewise.
1099
11002002-11-24 Paul Eggert <eggert@twinsun.com>
1101
1102 Version 1.75c.
1103
1104 * tests/actions.at (Actions after errors): Use an output format
1105 more similar to that of the Printers and Destructors test.
1106 Test the position of the ';' token too.
1107 (Printers and Destructors): Likewise.
1108 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1109 unnecessarily alarming people when the test fails.
1110
1111 * data/yacc.c (yyerrlab1): Move this label down, so that the
1112 parser does not discard the lookahead token if the user code
1113 invokes YYERROR. This change is required for POSIX conformance.
1114
1115 * lib/error.c: Sync with gnulib.
1116
11172002-11-22 Paul Eggert <eggert@twinsun.com>
1118
1119 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1120 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1121 * lib/xmalloc.c: Likewise.
1122
11232002-11-20 Paul Eggert <eggert@twinsun.com>
1124
1125 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1126
11272002-11-20 Paul Eggert <eggert@twinsun.com>
1128
1129 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1130 should use `if (! x) abort ();' rather than `assert (x);', and
1131 anyway it's one less thing to worry about configuring.
1132
1133 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1134 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1135 and replace all instances of assert with abort.
1136 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1137 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1138
1139 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1140 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1141 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1142 hash_find_entry, hash_rehash, hash_insert): Likewise.
1143 * src/conflicts.c (resolve_sr_conflict): Likewise.
1144 * src/lalr.c (set_goto_map, map_goto): Likewise.
1145 * src/nullable.c (nullable_compute): Likewise.
1146 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1147 * src/reader.c (packgram, reader): Likewise.
1148 * src/state.c (state_new, state_free, state_transitions_set,
1149 state_reduction_find): Likewise.
1150 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1151 symbol_pack): Likewise.
1152 * src/tables.c (conflict_row, pack_vector): Likewise.
1153 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1154 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1155 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1156 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1157
1158 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1159 (ARGMATCH_CONSTRAINT): New macro.
1160 (ARGMATCH_ASSERT): Use it.
1161
1162 * src/system.h (verify): New macro.
1163 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1164 rather than assert.
1165 * src/tables.c (tables_generate): Likewise.
1166
1167 * src/struniq.c (struniq_assert): Now returns void, and aborts
1168 if the assertion is false.
1169 (struniq_assert_p): Remove.
1170 * src/struniq.h: Likewise.
1171
11722002-11-18 Paul Eggert <eggert@twinsun.com>
1173
1174 * data/glr.c (yygetLRActions): Replace `yyindex' with
1175 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1176 This fixes the regression with Sun ONE Studio 7 cc that I reported in
1177 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
1178
11792002-11-18 Akim Demaille <akim@epita.fr>
1180
1181 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1182 space.
1183 From Tim Van Holder.
1184
11852002-11-17 Paul Eggert <eggert@twinsun.com>
1186
1187 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1188 to "SyntaxError" for consistency with my 2002-11-15 change.
1189
1190 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1191 not define to {}, since this breaks the common use of `YYDPRINTF
1192 ((...));' if a single statement is desired (e.g. before `else').
1193 Work around GCC warnings by surrounding corresponding calls with
1194 {} if needed.
1195 (yyhasResolvedValue): Remove unused function.
1196 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1197 loop body.
1198 (yyreportSyntaxError): Renamed from yyreportParseError.
1199 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1200 All uses changed.
1201 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1202 extern when possible. Remove unused initializations.
1203
12042002-11-16 Akim Demaille <akim@epita.fr>
1205
1206 Augment the similarity between GLR and LALR traces.
1207
1208 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1209 (YY_REDUCE_PRINT): New.
1210 (yyparse): Use them.
1211 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1212 YYDPRINT here.
1213 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1214 state reached after the reduction/recovery, since...
1215 (yyparse, yyprocessOneStack): Report the state we are entering in.
1216
12172002-11-16 Akim Demaille <akim@epita.fr>
1218
1219 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1220 Add support for --trace=skeleton.
1221 * src/scan-skel.l: %option debug.
1222 Scan strings of non-@ or \n instead of character by character.
1223 (scan_skel): Handle trace_skeleton.
1224 (QPUTS): New.
1225 (@output_parser_name@, @output_header_name@): ``Restore'' their
1226 support (used to be M4 macros).
1227 * data/yacc.c: Quote larger chunks, a la glr.c.
1228 * data/lalr1.cc: Likewise.
1229 The header guards are no longer available, so use some other
1230 string than `YYLSP_NEEDED'.
1231
12322002-11-16 Akim Demaille <akim@epita.fr>
1233
1234 Make the ``Printers and Destructors'' test more verbose, taking
1235 `yacc.c''s behavior as (possibly wrong) reference.
1236
1237 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1238 instead of fprint on stdout.
1239 Set and report the last_line of the symbols.
1240 Consistently display values and locations.
1241
12422002-11-16 Paul Eggert <eggert@twinsun.com>
1243
1244 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1245
12462002-11-15 Paul Eggert <eggert@twinsun.com>
1247
1248 * tests/actions.at (Actions after errors): New test case.
1249
1250 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1251 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1252 tests/action.at, tests/calc.at, tests/conflicts.at,
1253 tests/cxx-type.at, tests/regression.at:
1254 "parse error" -> "syntax error" for POSIX compatibility.
1255 "parsing stack overflow..." -> "parser stack overflow" so
1256 that code matches Bison documentation.
1257
12582002-11-15 Akim Demaille <akim@epita.fr>
1259
1260 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1261 take two BRACED_CODE, not two string_content.
1262 Free the scanner's obstack when we are done.
1263 (code_content): New.
1264 * tests/calc.at: Adjust.
1265 * doc/bison.texinfo: Adjust.
1266 Also, make sure to include the `,' for these declarations.
1267
12682002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1269
1270 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1271 definition; avoids potential autoreconf problems.
1272
12732002-11-15 Akim Demaille <akim@epita.fr>
1274
1275 Always check the value returned by yyparse.
1276
1277 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1278 returned by yyparse.
1279 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1280 Adjust calls.
1281 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1282 returned by yyparse.
1283
12842002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1285
1286 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1287 on input.at test.
1288
12892002-11-14 Paul Eggert <eggert@twinsun.com>
1290
1291 * src/output.c (output_skeleton): Call xfopen instead of
1292 duplicating xfopen's body.
1293
1294 Fix bugs reported by Nelson H. F. Beebe in
1295 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1296
1297 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1298 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1299 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1300 file twice in the grammar, as an extra check.
1301
1302 * tests/input.at (Torturing the Scanner): Surround the
1303 backslash-newline tests with "#if 0", to make it less likely that
1304 we'll run into compiler bugs. Bring back solitary \ inside
1305 comment, but add a closing comment to work around HP C bug. Don't
1306 test backslash-newline in C character constant.
1307
13082002-11-14 Akim Demaille <akim@epita.fr>
1309
1310 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1311 status of the compiler.
1312 Calling `exit 1' is no longer needed.
1313 Reported by Nelson H. F. Beebe.
1314
13152002-11-14 Akim Demaille <akim@epita.fr>
1316
1317 * tests/atlocal.in (CPPFLAGS): We have config.h.
1318 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1319 New.
1320 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1321 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1322 * tests/regression.at, tests/torture.at: Use them for all the
1323 grammars that are to be compiled.
1324 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1325 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1326 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1327
13282002-11-14 Akim Demaille <akim@epita.fr>
1329
1330 * doc/bison.texinfo: Various formatting changes (alignments in
1331 samples, additional @group/@end group, GCS in samples.
1332 Use @deffn instead of simple @table to define the directives,
1333 macros, variables etc.
1334
13352002-11-13 Paul Eggert <eggert@twinsun.com>
1336
1337 Fix some bugs reported by Albert Chin-A-Young in
1338 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1339
1340 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1341 -o c"; the HP C compiler chatters during compilation.
1342 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1343 * tests/headers.at (export YYLTYPE): Likewise.
1344
1345 * tests/input.at (Torturing the Scanner): Remove lines containing
1346 solitary backslashes, as they tickle a bug in the HP C compiler.
1347
1348 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1349 comments, since they're not portable. Use GNU coding style.
1350
13512002-11-13 Akim Demaille <akim@epita.fr>
1352
1353 * data/yacc.c: Leave bigger chunks of quoted text.
1354 (YYDSYMPRINTF): New.
1355 Use it to report symbol activities.
1356 * data/glr.c (YYDSYMPRINTF): New.
1357 Use it.
1358
13592002-11-12 Paul Eggert <eggert@twinsun.com>
1360
1361 Version 1.75b.
1362
1363 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1364 (yyglrReduce): Return yyok, not 0.
1365 This should avoid the enumerated-type warnings reported
1366 by Nelson H. F. Beebe in
1367 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1368
1369 * lib/bbitset.h (BITSET_INLINE): Remove.
1370 * lib/bitset.h [! BITSET_INLINE]: Remove.
1371 (bitset_set, bitset_reset, bitset_test): Rename local vars
1372 to avoid shadowing warnings by GCC.
1373
1374 * data/glr.c (inline): Remove #define. It's the user's
1375 responsibility to #define it away, just like 'const'.
1376 This fixes one of the bugs reported by Nelson H. F. Beebe in
1377 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1378
1379 * Makefile.maint (po-check): Scan .l and .y files instead of the
1380 .c and the .h files that they generate. This fixes the bug
1381 reported by Tim Van Holder in:
1382 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1383 Look for N_ as well as for _. Try to avoid matching #define for
1384 N_ and _.
1385 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1386 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1387 * src/scan-gram.l: Revamp regular expressions so that " and '
1388 do not confuse xgettext.
1389
1390 * src/struniq.h (struniq_new): Do not declare the return type
1391 to be 'const'; this violates the C standard.
1392 * src/struniq.c (struniq_new): Likewise.
1393
13942002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1395
1396 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1397 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1398 linker.
1399
14002002-11-12 Akim Demaille <akim@epita.fr>
1401
1402 * Makefile.maint: Sync with Autoconf:
1403 (local_updates): New.
1404
14052002-11-12 Akim Demaille <akim@epita.fr>
1406
1407 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1408
14092002-11-12 Akim Demaille <akim@epita.fr>
1410
1411 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1412 locations.
1413
14142002-11-12 Akim Demaille <akim@epita.fr>
1415
1416 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1417 not yyvalue.
1418
14192002-11-12 Akim Demaille <akim@epita.fr>
1420
1421 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1422 Use it to test the GLR parser.
1423
14242002-11-12 Akim Demaille <akim@epita.fr>
1425
1426 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1427 defines it.
1428 * data/glr.c (yystos): New.
1429 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1430 (YYDSYMPRINT): New.
1431 (yyval): Don't define it, it is handled via M4.
1432 (yyrecoverParseError): Free verbosely the discarded symbols.
1433 * data/yacc.c (yysymprint): Remove, rather...
1434 (b4_yysymprint_generate): invoke.
1435 * data/c.m4 (b4_yysymprint_generate): New.
1436 Accept pointers as arguments, as opposed to the version from
1437 yacc.c.
1438 (b4_yydestruct_generate): Likewise.
1439 * tests/cations.at (Printers and Destructors): Use Bison directives
1440 instead of CPP macros.
1441 Don't rely on internal details.
1442
14432002-11-12 Akim Demaille <akim@epita.fr>
1444
1445 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1446 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1447 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1448 it against YYEMPTY and so forth), work on yytoken (i.e., set
1449 it to YYEMPTY etc.).
1450 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1451 (b4_symbol_actions): Remove.
1452 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1453 for 0, end-of-input.
1454
14552002-11-12 Akim Demaille <akim@epita.fr>
1456
1457 * doc/bison.texinfo (Destructor Decl): New.
1458
14592002-11-12 Akim Demaille <akim@epita.fr>
1460
1461 * src/tables.c (tables_generate): Use free for pointers that
1462 cannot be NULL, not XFREE.
1463 (pack_vector): Use assert, not fatal, for bound violations.
1464 * src/state.c (state_new): Likewise.
1465 * src/reader.c (reader): Likewise.
1466 * src/lalr.c (set_goto_map): Likewise.
1467 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1468 the file name.
1469
14702002-11-12 Akim Demaille <akim@epita.fr>
1471
1472 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1473 Restore.
1474 * src/scan-gram.l (last_string): Is global to the file, not to
1475 yylex.
1476 * src/parse-gram.y (input): Don't append the epilogue here,
1477 (epilogue.opt): do it here, and free the scanner's obstack.
1478 * src/reader.c (epilogue_set): Rename as...
1479 (epilogue_augment): this.
1480 * data/c.m4 (b4_epilogue): Defaults to empty.
1481
14822002-11-12 Akim Demaille <akim@epita.fr>
1483
1484 * src/getargs.c (long_options): Remove duplicates.
1485 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1486 Remove.
1487 * doc/bison.rnh: Remove.
1488 * doc/bison.texinfo (VMS Invocation): Remove.
1489
14902002-11-12 Akim Demaille <akim@epita.fr>
1491
1492 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1493 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1494
1495 Use struniq for symbols.
1496
1497 * src/symtab.h (symbol_t): The tag member is a struniq.
1498 (symbol_type_set): Adjust.
1499 * src/symtab.c (symbol_new): Takes a struniq.
1500 (symbol_free): Don't free the tag member.
1501 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1502 (hash_compare_symbol, hash_symbol): these.
1503 Use the fact that tags as struniqs.
1504 (symbol_get): Use struniq_new.
1505 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1506 Returns a strniq.
1507 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1508 and type members are struniqs.
1509 * src/reader.c (get_merge_function)
1510 (grammar_current_rule_merge_set): Adjust.
1511 (TYPE, current_type): Are struniq.
1512
1513 Use struniq for file names.
1514
1515 * src/files.h, src/files.c (infile): Split into...
1516 (grammar_file, current_file): these.
1517 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1518 * src/reduce.c (reduce_print): Likewise.
1519 * src/getargs.c (getargs): Likewise.
1520 * src/complain.h, src/complain.c: Likewise.
1521 * src/main.c (main): Call struniqs_new early enough to use it for
1522 file names.
1523 Don't free the input file name.
1524
15252002-11-12 Akim Demaille <akim@epita.fr>
1526
1527 * src/symtab.c (symbol_free): Remove dead deactivated code:
1528 type_name are properly removed.
1529 Don't use XFREE to free items that cannot be NULL.
1530 * src/struniq.h, src/struniq.c: New.
1531 * src/main.c (main): Initialize/free struniqs.
1532 * src/parse-gram.y (%union): Add astruniq member.
1533 (yyprint): Adjust.
1534 * src/scan-gram.l (<{tag}>): Return a struniq.
1535 Free the obstack bit that used to store it.
1536 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1537
15382002-11-11 Paul Eggert <eggert@twinsun.com>
1539
1540 Revamp to fix many (but not all) of the C- and M4-related quoting
1541 problems. Among other things, this fixes the Bison bug reported
1542 by Jan Hubicka when processing the Bash grammar; see:
1543 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
1544
1545 Use new @ escapes consistently. Represent brackets with @{ and @}
1546 rather than @<:@ and @:>@, since this works a bit better with dumb
1547 editors like vi. Represent @ with @@, since @ is now consistently
1548 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1549 __ofile__, to avoid unexpected expansions. Similarly, use @output
1550 rather than #output.
1551
1552 * data/c.m4 (b4_copyright): Omit file name from comment, since
1553 the file name could contain "*/".
1554 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1555 be quoted. All uses changed.
1556
1557 * data/glr.c: Use new @ escapes consistently.
1558 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1559 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1560 Remove, since they couldn't handle arbitrary characters in file
1561 names.
1562 * data/lalr1.cc: Likewise.
1563 * data/yacc.c: Likewise.
1564
1565 * src/files.c (output_infix): Remove; all uses removed.
1566 * src/files.h: Likewise.
1567
1568 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1569 mishandled funny characters in file names, and anyway it isn't
1570 needed any more.
1571 * data/yacc.c: Likewise.
1572 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1573
1574 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1575 * data/yacc.c: Likewise.
1576
1577 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1578 strings now.
1579 (muscle_init): Quote filename as a C string.
1580 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1581 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1582 * src/output.c (escaped_file_name_output): New function.
1583 (prepare_symbols): Quote tokens for M4.
1584 (prepare): Don't insert output_infix, output_prefix,
1585 output_parser_name, output_header_name; this is now down by scan-skel.
1586 Insert skeleton as a C string.
1587
1588 * src/output.c (user_actions_output, symbol_destructors_output,
1589 symbol_printers_output): Quote filenames for C and M4.
1590 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1591
1592 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1593 escapes other than \\ and \'; this simplifies the code.
1594 (<SC_STRING>): Likewise, for \\ and \".
1595 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1596 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1597 Use new escapes @{ and @} for [ and ].
1598
1599 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1600 them with auto vars.
1601 Switch to new escape scheme, where @ is the escape character uniformly.
1602 Abort if a stray escape character is found. Avoid unbounded input
1603 buffer when parsing non-escaped text.
1604
1605 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1606 __oline__, #output, $@, and @{ do not have unintended meanings.
1607
16082002-11-09 Paul Eggert <eggert@twinsun.com>
1609
1610 Fix the test failure due to GCC warnings described in
1611 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
1612 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1613 evaluate to 0 if it's impossible for NINF to be in the respective
1614 table.
1615 (yygetLRActions, yyrecoverParseError): Use them.
1616
1617 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1618 counted in the token inserted at end of file. Now takes
1619 location_t *, not location_t, so that the location can be
1620 adjusted. All uses changed.
1621
1622 * tests/regression.at (Invalid inputs): Adjust wording in
1623 diagnostic to match the new behavior.
1624
1625 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1626 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1627 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1628 abort ();'. This reduces the runtime of the "Many lookaheads"
1629 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1630 GCC 3.2.
1631
16322002-11-07 Paul Eggert <eggert@twinsun.com>
1633
1634 * src/parse-gram.y (CHARACTER): Remove unused token.
1635 All uses removed.
1636
1637 * src/scan-gram.l: Remove stack option. We no longer use the
1638 stack, since the stack was never deeper than 1; instead, use the
1639 new auto var c_context to record the stacked value.
1640
1641 Remove nounput option. At an unexpected end of file, we now unput
1642 the minimal input necessary to end cleanly; this simplifies the
1643 code.
1644
1645 Avoid unbounded token sizes where this is easy.
1646
1647 (unexpected_end_of_file): New function.
1648 Use it to systematize the error message on unexpected EOF.
1649 (last-string): Now auto, not static.
1650 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1651 (scanner_last_string_free): Remove; not used.
1652 (percent_percent_count): Move decl to just before use.
1653 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1654 not the (never otherwised-used) CHARACTER.
1655
16562002-11-07 Akim Demaille <akim@epita.fr>
1657
1658 Let yyerror always receive the msg as last argument, so that
1659 yyerror can be variadic.
1660
1661 * data/yacc.c (b4_yyerror_args): New.
1662 Use it when calling yyerror.
1663 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1664 Use it when calling yyerror.
1665 * doc/bison.texinfo (Error Reporting): Adjust.
1666 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1667 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1668
16692002-11-06 Akim Demaille <akim@epita.fr>
1670
1671 #line should have quoted strings.
1672 Ideally, this should be done by m4_quotearg.
1673
1674 * src/scan-skel.l: Include quotearg.h.
1675 Quote __ofile__.
1676 * src/output.c (symbol_printers_output)
1677 (symbol_destructors_output): Quote the file name.
1678
16792002-11-06 Akim Demaille <akim@epita.fr>
1680
1681 * tests/regression.at (Invalid inputs): Adjust to the recent
1682 messages.
1683
16842002-11-06 Akim Demaille <akim@epita.fr>
1685
1686 Restore --no-lines.
1687 Reported by Jim Kent.
1688
1689 * data/c.m4 (b4_syncline): New.
1690 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1691 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1692 * src/output.c (user_actions_output): Likewise.
1693 (prepare): Define 'b4_synclines_flag'.
1694 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
1695
16962002-11-06 Akim Demaille <akim@epita.fr>
1697
1698 * src/main.c (main): Free `infile'.
1699 * src/scan-gram.l (handle_syncline): New.
1700 Recognize `#line'.
1701 * src/output.c (user_actions_output, symbol_destructors_output)
1702 (symbol_printers_output): Use the location's file name, not
1703 infile.
1704 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1705
17062002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1707
1708 * src/tables.c (matching_state): Don't allow states to match if
1709 either has GLR conflict entries.
1710
17112002-11-05 Paul Eggert <eggert@twinsun.com>
1712
1713 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1714 "integer out of range" rather than "invalid value".
1715 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1716 accordingly.
1717
1718 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1719 Also, remove one static variable in the scanner.
1720
1721 * src/scan-gram.l (braces_level): Now auto, not static.
1722 Initialize to zero if the compiler is being picky.
1723 (INITIAL): Clear braces_level instead of incrementing it.
1724 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1725 as POSIX 1003.1-2001 requires.
1726 * src/system.h (IF_LINT): New macro, taken from coreutils.
1727 * configure.ac: Define "lint" if --enable-gcc-warnings.
1728
17292002-11-05 Akim Demaille <akim@epita.fr>
1730
1731 * src/scan-gram.l: When it starts with `%', complain about the
1732 whole directive, not just that `invalid character: %'.
1733
17342002-11-04 Akim Demaille <akim@epita.fr>
1735
1736 * Makefile.maint: Update from Autoconf.
1737 (update, cvs-update, po-update, do-po-update): New.
1738
17392002-11-04 Akim Demaille <akim@epita.fr>
1740
1741 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1742 and yyerror.
1743 Have yyerror `use' its arguments.
1744 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1745 returns true when location & yacc & pure & parse-param.
1746 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1747
17482002-11-04 Akim Demaille <akim@epita.fr>
1749
1750 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1751 clashes.
1752 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1753 font-lock-mode.
1754 Use complain_at.
1755 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1756 slot 0.
1757
17582002-11-03 Paul Eggert <eggert@twinsun.com>
1759
1760 * src/reader.c (get_merge_function, grammar_current_rule_check):
1761 Use consistent diagnostics for reporting type name clashes.
1762 Quote the types with <>, for consistency with Yacc.
1763 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1764
17652002-11-03 Akim Demaille <akim@epita.fr>
1766
1767 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1768 New.
1769 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1770 (b4_parse_param): Remove.
1771 Use b4_identification.
1772 Propagate b4_pure_args where needed to pass them to yyerror.
1773 * data/glr.m4 (b4_parse_param): Remove.
1774 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1775 (b4_lpure_formals): New.
1776 Use b4_identification.
1777 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1778 b4_user_formals and b4_user_args.
1779 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1780 (yyreportAmbiguity): When using a pure parser, also need
1781 the location, and the parse-params.
1782 Adjust callers.
1783 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1784 When using a pure parser, also need the parse-params.
1785 Adjust callers.
1786 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1787 (%pure-parser + %parse-param) LALR and GLR parsers.
1788 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1789 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1790 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1791 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1792 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1793 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1794 * doc/bison.texinfo: Untabify the whole file.
1795 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1796 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1797 (Error Reporting): Adjust to these new directives.
1798 Document %error-verbose, deprecate YYERROR_VERBOSE.
1799
18002002-11-03 Akim Demaille <akim@epita.fr>
1801
1802 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1803 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1804 command line options.
1805 * tests/cxx-type.at: Formatting changes.
1806
18072002-11-03 Paul Eggert <eggert@twinsun.com>
1808
1809 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1810 to count columns correctly, and to check for invalid inputs.
1811
1812 Use mbsnwidth to count columns correctly. Account for tabs, too.
1813 Include mbswidth.h.
1814 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1815 (extend_location): New function.
1816 (YY_LINES): Remove.
1817
1818 Handle CRLF in C code rather than in Lex code.
1819 (YY_INPUT): New macro.
1820 (no_cr_read): New function.
1821
1822 Scan UCNs, even though we don't fully handle them yet.
1823 (convert_ucn_to_byte): New function.
1824
1825 Handle backslash-newline correctly in C code.
1826 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1827 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1828 all uses changed.
1829 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1830 Use {splice} wherever C allows backslash-newline.
1831 YY_STEP after space, newline, vertical-tab.
1832 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
1833
1834 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1835
1836 ({int}, handle_action_dollar, handle_action_at): Check for integer
1837 overflow.
1838
1839 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1840
1841 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1842 as well as \000. Check for UCHAR_MAX, not 255.
1843 Allow \x with an arbitrary positive number of digits, as in C.
1844 Check for overflow here.
1845 Allow \? and UCNs, for compatibility with C.
1846
1847 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1848 with quote slot used by complain_at.
1849
1850 * tests/input.at: Add tests for backslash-newline, m4 quotes
1851 in symbols, long literals, and funny escapes in strings.
1852
1853 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1854 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1855 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1856 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1857 * m4/mbswidth.m4: New file, from GNU coreutils.
1858
1859 * doc/bison.texinfo (Grammar Outline): Document // comments.
1860 (Symbols): Document that trigraphs have no special meaning in Bison,
1861 nor is backslash-newline allowed.
1862 (Actions): Document that trigraphs have no special meaning.
1863
1864 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1865 no longer used.
1866
18672002-11-02 Paul Eggert <eggert@twinsun.com>
1868
1869 * src/reader.c: Don't include quote.h; not needed.
1870 (get_merge_function): Reword warning to be consistent with
1871 type clash diagnostic in grammar_current_rule_check.
1872
1873 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
1874 bug in trigraph handling.
1875
1876 * src/output.c (prepare_symbols): When printing token names,
1877 escape "[" as "@<:@" and likewise for "]".
1878
1879 * src/system.h (errno): Remove declaration, as we are now
1880 assuming C89 or better, and C89 guarantees errno.
1881
18822002-10-30 Paul Eggert <eggert@twinsun.com>
1883
1884 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
1885 Check for close failures.
1886 * src/files.h (xfclose): Return void, not int, since it always
1887 returned zero.
1888 * src/files.c (xfclose): Likewise. Report I/O error if ferror
1889 indicates one.
1890 * src/output.c (output_skeleton): Use xfclose rather than fclose
1891 and ferror. xfclose now checks ferror.
1892
1893 * data/glr.c (YYLEFTMOST_STATE): Remove.
1894 (yyreportTree): Use a stack-based leftmost state. This avoids
1895 our continuing battles with bogus warnings about initializers.
1896
18972002-10-30 Akim Demaille <akim@epita.fr>
1898
1899 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
1900 #if.
1901
19022002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1903
1904 * tests/glr-regr1.at: New test for reported regressions.
1905 * tests/testsuite.at: Add glr-regr1.at test.
1906 * tests/Makefile.am: Add glr-regr1.at test.
1907
19082002-10-24 Paul Eggert <eggert@twinsun.com>
1909
1910 Version 1.75a.
1911
1912 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
1913 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
1914 we use malloc. Don't assume 'A' through 'Z' are contiguous.
1915 Don't assume strdup exists; POSIX says its an XSI extension.
1916 Check for buffer overflow on input.
1917
19182002-10-24 Akim Demaille <akim@epita.fr>
1919
1920 * src/output.c (output_skeleton): Don't disable M4sugar comments
1921 too soon: it results in comments being expanded.
1922 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
1923 first output.
1924
19252002-10-24 Akim Demaille <akim@epita.fr>
1926
1927 * data/yacc.c (m4_int_type): New.
1928 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
1929 char' as only yacc.c wants K&R portability.
1930 * data/glr.c (yysigned_char): Remove.
1931 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
1932 Reported by Quoc Peyrot.
1933
19342002-10-23 Paul Eggert <eggert@twinsun.com>
1935
1936 * src/main.c (main): With --trace=time, report times even if a
1937 non-fatal error occurs. Formerly, the times were reported in some
1938 such cases but not in others.
1939 * src/reader.c (reader): Just return if a complaint has been issued,
1940 instead of exiting, so that 'main' can report times.
1941
19422002-10-22 Akim Demaille <akim@epita.fr>
1943
1944 * src/system.h: Include sys/types.
1945 Reported by Bert Deknuydt.
1946
19472002-10-23 Paul Eggert <eggert@twinsun.com>
1948
1949 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
1950 Suggested by Art Haas.
1951
19522002-10-22 Paul Eggert <eggert@twinsun.com>
1953
1954 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
1955 decl; not needed any more.
1956 * src/main.c (main): Use return to exit, undoing yesterday's change.
1957 The last OS that we could find where this wouldn't work is
1958 SunOS 3.5, and that's too old to worry about now.
1959
1960 * data/glr.c (struct yyltype): Define members even when not
1961 doing locations. This is more consistent with yacc.c, and it
1962 works around the following bug reports:
1963 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
1964 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
1965
1966 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
1967 @acronym consistently. Standardize on "Yacc" instead of "YACC",
1968 "Algol" instead of "ALGOL". Give a bit more history about BNF.
1969
19702002-10-22 Akim Demaille <akim@epita.fr>
1971
1972 * data/README: New.
1973
19742002-10-21 Paul Eggert <eggert@twinsun.com>
1975
1976 Be consistent about 'bool'; the old code used an enum in one
1977 module and an int in another, and this violates the C standard.
1978 * m4/stdbool.m4: New file, from coreutils 4.5.3.
1979 * configure.ac (AC_HEADER_STDBOOL): Add.
1980 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
1981 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
1982 * src/symtab.c (hash_compare_symbol_t): Likewise.
1983 * src/system.h (bool, false, true): Use a definition consistent
1984 with ../lib/hash.c. All uses changed.
1985
1986 * src/complain.c (warning_issued): Renamed from warn_message_count,
1987 so that we needn't worry about integer overflow (!).
1988 Now of type bool. All uses changed.
1989 (complaint_issued): Renamed from complain_message_count; likewise.
1990
1991 * src/main.c (main): Use exit to exit with failure.
1992
1993 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
1994 rather than 1 and 0.
1995 * src/main.c (main): Likewise.
1996 * src/getargs.c (getargs): Likewise.
1997 * src/reader.c (reader): Likewise.
1998
1999 * src/getarg.c (getargs): Remove duplicate code for
2000 "Try `bison --help'".
2001
2002 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
2003 What was that "2" for?
2004
2005 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
2006 * src/getargs.c (usage): Likewise.
2007
2008 * src/getargs.c (getargs): When there are too few operands, report
2009 the last one. When there are too many, report the first extra
2010 one. This is how diffutils does it.
2011
20122002-10-20 Paul Eggert <eggert@twinsun.com>
2013
2014 Remove K&R vestiges.
2015 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
2016 * src/complain.c (VA_START): Remove. Assume prototypes.
2017 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
2018 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
2019 fatal): Assume prototypes.
2020 * src/complain.h: Assume prototypes.
2021 * src/system.h (PARAMS): Remove.
2022 Include <limits.h> unconditionally, since it's guaranteeed even
2023 for a freestanding C89 compiler.
2024 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
2025 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
2026
20272002-10-20 Akim Demaille <akim@epita.fr>
2028
2029 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
2030 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
2031 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
2032 (yyresolveStates, yyresolveAction, yyresolveStack)
2033 (yyprocessOneStack): Use them.
2034 (yy_reduce_print): New.
2035 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
2036
20372002-10-20 Akim Demaille <akim@epita.fr>
2038
2039 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
2040 arguments and output `void'.
2041 (b4_c_function): Rename as...
2042 (b4_c_function_def): this.
2043 (b4_c_function_decl, b4_c_ansi_function_def)
2044 (b4_c_ansi_function_decl): New.
2045 Change the interpretation of the arguments: before `int, foo', now
2046 `int foo, foo'.
2047 * data/yacc.c (yyparse): Prototype and define thanks to these.
2048 Adjust b4_c_function_def uses.
2049 * data/glr.c (yyparse): Likewise, but ANSI only.
2050
20512002-10-20 Akim Demaille <akim@epita.fr>
2052
2053 * src/output.c (prepare): Move the definition of `tokens_number',
2054 `nterms_number', `undef_token_number', `user_token_number_max'
2055 to...
2056 (prepare_tokens): Here.
2057 (prepare_tokens): Rename as...
2058 (prepare_symbols): this.
2059 (prepare): Move the definition of `rules_number' to...
2060 (prepare_rules): here.
2061 (prepare): Move the definition of `last', `final_state_number',
2062 `states_number' to...
2063 (prepare_states): here.
2064 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
2065
20662002-10-20 Akim Demaille <akim@epita.fr>
2067
2068 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2069
20702002-10-20 Akim Demaille <akim@epita.fr>
2071
2072 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2073 * data/c.m4: here.
2074
20752002-10-20 Akim Demaille <akim@epita.fr>
2076
2077 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2078 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2079 `pair'.
2080 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2081 `name' to...
2082 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2083 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2084 These.
2085
20862002-10-19 Paul Eggert <eggert@twinsun.com>
2087
2088 Do not create a temporary file, as that involves security and
2089 cleanup headaches. Instead, use a pair of pipes.
2090 Derived from a suggestion by Florian Krohm.
2091 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2092 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2093 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2094 (BISON_PREREQ_SUBPIPE): Add.
2095 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2096 Add subpipe.h, subpipe.c.
2097 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2098 * po/POTFILES.in: Add lib/subpipe.c.
2099 * src/output.c: Include "subpipe.h".
2100 (m4_invoke): Remove decl.
2101 (scan_skel): New decl.
2102 (output_skeleton): Use pipe rather than temporary file for m4 input.
2103 Check that m4sugar.m4 is readable, to avoid deadlock.
2104 Check for pipe I/O error.
2105 * src/scan-skel.l (readpipe): Remove decl.
2106 (scan_skel): New function, to be used in place of m4_invoke.
2107 Read from stream rather than file.
2108
2109 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2110 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2111 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2112 this generates a more-accurate value anyway.
2113
2114 * lib/timevar.c (timervar_accumulate): Rename locals to
2115 avoid confusion with similarly-named more-global.
2116 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2117
2118 * src/output.c (prepare): Use xstrdup to convert char const *
2119 to char *, to avoid GCC warning.
2120
21212002-10-19 Akim Demaille <akim@epita.fr>
2122
2123 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2124 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2125 Use them to have `calc.y' ready for %pure-parser.
2126 * data/yacc.c (YYLEX): Pass a yylex return type to
2127 b4_c_function_call.
2128
21292002-10-19 Akim Demaille <akim@epita.fr>
2130
2131 Prototype support of %lex-param and %parse-param.
2132
2133 * src/parse-gram.y: Add the definition of the %lex-param and
2134 %parse-param tokens, plus their rules.
2135 Drop the `_' version of %glr-parser.
2136 Add the "," token.
2137 * src/scan-gram.l (INITIAL): Scan them.
2138 * src/muscle_tab.c: Comment changes.
2139 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2140 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2141 (muscle_entry_s): The `value' member is no longer const.
2142 Adjust all dependencies.
2143 * src/muscle_tab.c (muscle_init): Adjust: use
2144 MUSCLE_INSERT_STRING.
2145 Initialize the obstack earlier.
2146 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2147 (muscle_pair_list_grow): New.
2148 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2149 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2150 * tests/calc.at: Use %locations, not --locations.
2151 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2152
21532002-10-19 Akim Demaille <akim@epita.fr>
2154
2155 * src/getargs.c (usage): Take status as argument and exit
2156 accordingly.
2157 Report the traditional `Try ... --help' message when status != 0.
2158 (usage, version): Don't take a FILE * as arg, it is pointless.
2159 (getargs): When there is an incorrect number of arguments, make it
2160 an error, and report it GNUlically thanks to `usage ()'.
2161
21622002-10-18 Paul Eggert <eggert@twinsun.com>
2163
2164 * data/glr.c (yyreportParseError): Don't assume that sprintf
2165 yields the length of the printed string, as this is not true
2166 on SunOS 4.1.4. Reported by Peter Klein.
2167
2168 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2169 * tests/conflicts.at (%nonassoc and eof): Likewise.
2170 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2171
21722002-10-17 Akim Demaille <akim@epita.fr>
2173
2174 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2175 * src/getargs.c (trace_types, trace_args): Adjust.
2176 * src/reader.c (grammar_current_rule_prec_set)
2177 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2178 Standardize error messages.
2179 And s/@prec/%prec/!
2180 (reader): Use trace_flag to enable scanner/parser debugging,
2181 instead of an adhoc scheme.
2182 * src/scan-gram.l: Remove trailing debugging code.
2183
21842002-10-16 Paul Eggert <eggert@twinsun.com>
2185
2186 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2187 MUSCLE_TAB_H.
2188
2189 * NEWS: Officially drop support for building Bison with K&R C,
2190 since it didn't work anyway and it's not worth worrying about.
2191 * Makefile.maint (wget_files): Remove ansi2knr.c.
2192 (ansi2knr.c-url_prefix): Remove.
2193 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2194 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2195 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2196
21972002-10-15 Paul Eggert <eggert@twinsun.com>
2198
2199 Stop using the "enum_" trick for K&R-style function definitions;
2200 it confused me, and I was the author! Instead, assume that people
2201 who want to use K&R C compilers (when using these modules in GCC,
2202 perhaps?) will run ansi2knr.
2203
2204 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2205 All uses of "enum_" changed to "enum ".
2206 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2207 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2208
2209 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2210 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2211 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2212 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2213 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2214 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2215 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2216 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2217 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2218 Use function prototypes; this removes the need for declaring
2219 static functions simply to provide their prototypes.
2220 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2221 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2222 bitset_count_, bitset_create, bitset_dump, bitset_first,
2223 bitset_free, bitset_init, bitset_last, bitset_next,
2224 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2225 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2226 bitset_print, bitset_release_memory, bitset_toggle_,
2227 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2228 debug_bitset): Likewise.
2229 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2230 * lib/bitset_stats.c (bitset_log_histogram_print,
2231 bitset_percent_histogram_print, bitset_stats_and,
2232 bitset_stats_and_cmp, bitset_stats_and_or,
2233 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2234 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2235 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2236 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2237 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2238 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2239 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2240 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2241 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2242 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2243 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2244 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2245 bitset_stats_zero): Likewise.
2246 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2247 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2248 bitsetv_dump, debug_bitsetv): Likewise.
2249 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2250 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2251 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2252 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2253 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2254 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2255 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2256 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2257 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2258 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2259 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2260 Likewise.
2261 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2262 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2263 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2264 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2265 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2266 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2267 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2268 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2269 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2270 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2271 lbitset_xor_cmp, lbitset_zero): Likewise.
2272
22732002-10-14 Akim Demaille <akim@epita.fr>
2274
2275 Version 1.75.
2276
22772002-10-14 Akim Demaille <akim@epita.fr>
2278
2279 * tests/Makefile.am (maintainer-check-posix): New.
2280
22812002-10-14 Akim Demaille <akim@epita.fr>
2282
2283 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2284 member.
2285
22862002-10-14 Akim Demaille <akim@epita.fr>
2287
2288 * src/tables.c (table_ninf_remap): base -> tab.
2289 Reported by Matt Rosing.
2290
22912002-10-14 Paul Eggert <eggert@twinsun.com>
2292
2293 * tests/action.at, tests/calc.at, tests/conflicts.at,
2294 tests/cxx-type.at, tests/headers.at, tests/input.at,
2295 tests/regression.at, tests/synclines.at, tests/torture.at:
2296 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2297 so that the tests still work even if POSIXLY_CORRECT is set.
2298 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2299
2300 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2301 for portability to K&R hosts. Fix typo: signed char is guaranteed
2302 only to 127, not to 128.
2303 * data/glr.c (yysigned_char): New type.
2304 * data/yacc.c (yysigned_char): Likewise.
2305 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2306
23072002-10-13 Paul Eggert <eggert@twinsun.com>
2308
2309 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2310 true due to limited range of data type" warning from GCC.
2311
2312 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2313 by wrapping enum yytokentype's definition inside #ifndef
2314 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2315
23162002-10-13 Akim Demaille <akim@epita.fr>
2317
2318 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2319 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2320
23212002-10-13 Akim Demaille <akim@epita.fr>
2322
2323 * Makefile.maint: Update from Autoconf 2.54.
2324 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2325
23262002-10-13 Akim Demaille <akim@epita.fr>
2327
2328 * src/print.c (print_state): Separate the list of solved conflicts
2329 from the other items.
2330 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2331
23322002-10-13 Akim Demaille <akim@epita.fr>
2333
2334 Let nondeterministic skeletons be usable with deterministic
2335 tables.
2336
2337 With the patch, GAWK compiled by GCC without -O2 passes its test
2338 suite using a GLR parser driven by LALR tables. It fails with -O2
2339 because `struct stat' gives two different answers on my machine:
2340 88 (definition of an auto var) and later 96 (memset on this var).
2341 Hence the stack is badly corrumpted. The headers inclusion is to
2342 blame: if I move the awk.h inclusion before GLR's system header
2343 inclusion, the two struct stat have the same size.
2344
2345 * src/tables.c (pack_table): Always create conflict_table.
2346 (token_actions): Always create conflict_list.
2347 * data/glr.c (YYFLAG): Remove, unused.
2348
23492002-10-13 Akim Demaille <akim@epita.fr>
2350
2351 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2352 (O0FLAGS): New.
2353 (VALGRIND, GXX): New.
2354 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2355 * tests/bison.in: Run $PREBISON a pre-command.
2356 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2357 (maintainer-check-g++): New.
2358 * Makefile.am (maintainer-check): New.
2359
23602002-10-13 Akim Demaille <akim@epita.fr>
2361
2362 * data/glr.c: Formatting changes.
2363 Tweak some trace messages to match yacc.c's.
2364
23652002-10-13 Akim Demaille <akim@epita.fr>
2366
2367 GLR parsers sometimes raise parse errors instead of performing the
2368 default reduction.
2369 Reported by Charles-Henry de Boysson.
2370
2371 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2372 check the length of the traces when %glr.
2373 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2374 GLR's traces.
2375 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2376 Test GLR parsers.
2377 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2378 (yyltype): Remove the yy prefix from the member names.
2379 (yytable): Complete its comment.
2380 (yygetLRActions): Map error action number from YYTABLE from
2381 YYTABLE_NINF to 0.
2382 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2383 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2384 not satisfying as we could compare an YYACTION computed from
2385 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2386 only value for error actions.
2387 (yyreportParseError): In verbose parse error messages, don't issue
2388 `error' in the list of expected tokens.
2389 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2390 next action to perform to match glr.c's decoding.
2391 (yytable): Complete its comment.
2392
23932002-10-13 Paul Eggert <eggert@twinsun.com>
2394
2395 Fix problem reported by Henrik Grubbstroem in
2396 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2397 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2398 because the Bison parser reads the second action before reducing
2399 the first one.
2400 * src/scan-gram.l (rule_length): New static var.
2401 Use it to keep track of the rule length in the scanner, since
2402 we can't expect the parser to be in lock-step sync with the scanner.
2403 (handle_action_dollar, handle_action_at): Use this var.
2404 * tests/actions.at (Exotic Dollars): Test for the problem.
2405
24062002-10-12 Paul Eggert <eggert@twinsun.com>
2407
2408 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2409 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2410 Include <sys/time.h> when checking for clock_t and struct tms.
2411 Use same include order as source.
2412 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2413 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2414
2415 * lib/timevar.c: Update copyright date and clarify comments.
2416 (get_time) [IN_GCC]: Keep the GCC version for reference.
2417
2418 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2419 GCC version as of today, then merge Bison's changes.
2420 Change "GCC" to "Bison" in copyright notice. timevar.def's
2421 author is Akim, so change that too.
2422
2423 * src/reader.c (grammar_current_rule_check):
2424 Don't worry about the default action if $$ is untyped.
2425 Prevents bogus warnings reported by Jim Gifford in
2426 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2427
2428 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2429 * data/glr.c, data/lalr1.cc, data/yacc.c:
2430 Output token definitions before the first part of user declarations.
2431 Fixes compatibility problem reported by Jim Gifford for kbd in
2432 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2433
24342002-10-11 Paul Eggert <eggert@twinsun.com>
2435
2436 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2437 (yyparse): here. This undoes some of the 2002-07-25 change.
2438 Compatibility problem reported by Ralf S. Engelschall with
2439 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2440
24412002-10-11 Akim Demaille <akim@epita.fr>
2442
2443 * tests/regression.at Characters Escapes): New.
2444 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2445 characters.
2446 Reported by Jan Nieuwenhuizen.
2447
24482002-10-11 Akim Demaille <akim@epita.fr>
2449
2450 * po/id.po: New.
2451
24522002-10-10 Paul Eggert <eggert@twinsun.com>
2453
2454 Portability fixes for bitsets; this also avoids several GCC
2455 warnings.
2456
2457 * lib/abitset.c: Include <stddef.h>, for offsetof.
2458 * lib/lbitset.c: Likewise.
2459
2460 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2461 properly for vectors of objects. Do not assume that adding a
2462 header size to a multiple of a word size yields a value that is
2463 properly aligned for the whole union.
2464 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2465
2466 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2467 unique names for structures.
2468 * lib/ebitset.c (ebitset_bytes): Likewise.
2469 * lib/lbitset.c (lbitset_bytes): Likewise.
2470
2471 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2472 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2473 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2474 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2475 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2476 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2477 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2478 to improve the type-checking that GCC can do.
2479 * lib/bitset.c (bitset_op4_cmp): Likewise.
2480 * lib/bitset_stats.c (bitset_stats_count,
2481 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2482 bitset_stats_copy, bitset_stats_disjoint_p,
2483 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2484 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2485 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2486 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2487 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2488 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2489 bitset_stats_or_and_cmp): Likewise.
2490 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2491 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2492 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2493 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2494
2495 * lib/abitset.h: Include bitset.h, not bbitset.h.
2496 * lib/ebitset.h: Likewise.
2497 * lib/lbitset.h: Likewise.
2498
2499 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2500 All instances of parameters of type enum bitset_opts are now of
2501 type enum_bitset_opts, to conform to the C Standard, and similarly
2502 for enum_bitset_type.
2503 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2504 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2505
2506 Do not use "struct bitset_struct" to mean different things in
2507 different modules. Not only is this confusing, it violates
2508 the C Standard, which requires that structure types in different
2509 modules must be compatible if one is to be passed to the other.
2510 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2511 All instances of "struct bitset_struct *" replaced with "bitset".
2512 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2513 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2514 struct lbitset_struct, struct bitset_stats_struct): New types.
2515 All uses of struct bitset_struct changed to union bitset_union,
2516 etc.
2517 * lib/abitset.c (struct abitset_struct, abitset,
2518 struct bitset_struct): Remove.
2519 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2520 struct bitset_struct): Remove.
2521 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2522 bitset_struct): Remove.
2523 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2524 Likewise.
2525
2526 Do not call a function of type T using a call that assumes the
2527 function is of a different type U. Standard C requires that a
2528 function must be called with a type that is compatible with its
2529 definition.
2530 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2531 New decls.
2532 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2533 New functions.
2534 * lib/ebitset.c (PFV): Remove.
2535 * lib/lbitset.c (PFV): Likewise.
2536 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2537 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2538 decls.
2539 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2540 (ebitset_vtable): Use them.
2541 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2542 lbitset_xor): New functions.
2543 (lbitset_vtable): Use them.
2544
2545 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2546 Declare.
2547
2548 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2549 GCC warning.
2550 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2551 Use offsetof, for simplicity.
2552
25532002-10-06 Paul Eggert <eggert@twinsun.com>
2554
2555 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2556 the same width as int. This reapplies a hunk of the 2002-08-12 patch
2557 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
2558 which was inadvertently undone by the 2002-09-30 patch.
2559 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2560 the same width as int.
2561
25622002-10-04 Paul Eggert <eggert@twinsun.com>
2563
2564 Version 1.50.
2565
2566 * configure.ac (AC_INIT), NEWS: Increment version number.
2567
2568 * doc/bison.texinfo: Minor spelling, grammar, and white space
2569 fixes.
2570 (Symbols): Mention that any negative value returned from yylex
2571 signifies end-of-input. Warn about negative chars. Mention
2572 the portable Standard C character set.
2573
2574 The GNU coding standard says CFLAGS and YFLAGS are reserved
2575 for the installer to set.
2576 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2577 * src/Makefile.am (AM_CFLAGS): Likewise.
2578 (AM_YFLAGS): Renamed from YFLAGS.
2579
2580 Fix some MAX and MIN problems.
2581 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2582 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2583 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2584 * src/reader.c (reader): Use it.
2585
2586 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2587 POSIX 1003.1-2001 has removed fgrep.
2588
25892002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2590
2591 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2592 interpreted as signed.
2593 * lib/ebitset.c (ebitset_list): Fix bug.
2594
25952002-10-01 Paul Eggert <eggert@twinsun.com>
2596
2597 More fixes for 64-bit hosts and large bitsets.
2598
2599 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2600 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2601 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2602 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2603 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2604 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2605 bitset_count_): Likewise.
2606 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2607 bitset_first, bitset_last): Likewise.
2608 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2609 bitset_stats_list_reverse, bitset_stats_size,
2610 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2611 Likewise.
2612 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2613 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2614 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2615 bitsetv_reflexive_transitive_closure): Likewise.
2616 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2617 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2618 Likewise.
2619 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2620 Likewise.
2621
2622 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2623 Use size_t, not unsigned int, to count bytes.
2624 * lib/abitset.h (abitset_bytes): Likewise.
2625 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2626 Likewise.
2627 * lib/bitset.h (bitset_bytes): Likewise.
2628 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2629 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2630 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2631 * lib/ebitset.c (ebitset_bytes): Likewise.
2632 * lib/ebitset.h (ebitset_bytes): Likewise.
2633 * lib/lbitset.c (lbitset_bytes): Likewise.
2634 * lib/lbitset.h (lbitset_bytes): Likewise.
2635
2636 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2637 abitset_subset_p, abitset_disjoint_p, abitset_and,
2638 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2639 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2640 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2641 abitset_or_and, abitset_or_and_cmp):
2642 Use bitset_windex instead of unsigned int.
2643 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2644 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2645 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2646 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2647 Likewise.
2648 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
2649
2650 * lib/bitset.c (bitset_print):
2651 Use proper printf formats for widths of integer types.
2652 * lib/bitset_stats.c (bitset_percent_histogram_print,
2653 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2654 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2655 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2656 * lib/lbitset.c (lbitset_bytes): Likewise.
2657
2658 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2659 BITSET_SIZE_MAX): New macros.
2660 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2661 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2662 to BITSET_WINDEX_MAX.
2663
2664 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2665 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2666 since we now return the bitset_bindex type (not int).
2667
2668 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2669 when computing sizes.
2670 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2671
2672 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2673 and avoid cast to unsigned.
2674
26752002-09-30 Akim Demaille <akim@epita.fr>
2676
2677 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2678 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2679 Updates from Michael Hayes.
2680
26812002-09-30 Art Haas <ahaas@neosoft.com>
2682
2683 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2684 invocations.
2685 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2686 defined.
2687
26882002-09-27 Akim Demaille <akim@epita.fr>
2689
2690 Version 1.49c.
2691
26922002-09-27 Akim Demaille <akim@epita.fr>
2693
2694 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2695 (Because of AC_LIBSOURCE).
2696
26972002-09-27 Akim Demaille <akim@epita.fr>
2698
2699 Playing with Autoscan.
2700
2701 * configure.ac: Remove the old LIBOBJ tweaks.
2702 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2703 * lib/strrchr.c: New.
2704 * lib/strtol.c: New, from the Coreutils 4.5.1.
2705
27062002-09-27 Akim Demaille <akim@epita.fr>
2707
2708 Playing with Autoscan.
2709
2710 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2711 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2712 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2713 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2714 Coreutils 4.5.1.
2715
27162002-09-24 Akim Demaille <akim@epita.fr>
2717
2718 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2719 (Frequently Asked Questions, Parser Stack Overflow): New.
2720
27212002-09-13 Akim Demaille <akim@epita.fr>
2722
2723 Playing with autoscan.
2724
2725 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2726 * src/files.c (skeleton_find): Remove, unused.
2727 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2728 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2729
27302002-09-13 Akim Demaille <akim@epita.fr>
2731
2732 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2733 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2734
27352002-09-13 Akim Demaille <akim@epita.fr>
2736
2737 * configure.ac: Require 2.54.
2738 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2739 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2740 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2741 Remove, provided by Autoconf macros.
2742
27432002-09-12 Akim Demaille <akim@epita.fr>
2744
2745 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2746
27472002-09-12 Akim Demaille <akim@epita.fr>
2748
2749 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2750 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2751 Reported by Martin Mokrejs.
2752
27532002-09-10 Akim Demaille <akim@epita.fr>
2754
2755 * src/parse-gram.y: Associate a human readable string to each
2756 token type.
2757 * tests/regression.at (Invalid inputs): Adjust.
2758
27592002-09-10 Gary V. Vaughan <gary@gnu.org>
2760
2761 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2762 with an Autoconf-2.5x style configure.ac.
2763
27642002-09-06 Paul Eggert <eggert@twinsun.com>
2765
2766 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2767 exception applies only to yacc.c. This is a modification of a
2768 patch originally suggested by Akim Demaille.
2769
27702002-09-06 Akim Demaille <akim@epita.fr>
2771
2772 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2773 here to...
2774 * data/yacc.c: here.
2775
2776 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2777 LocationType.
2778 (b4_ltype): Default to yy::Location from location.hh.
2779
27802002-09-04 Jim Meyering <jim@meyering.net>
2781
2782 * data/yacc.c: Guard the declaration of yytoknum also with
2783 `#ifdef YYPRINT', so it is declared only when used.
2784
27852002-09-04 Akim Demaille <akim@epita.fr>
2786
2787 * configure.in: Rename as...
2788 * configure.ac: this.
2789 Bump to 1.49c.
2790
27912002-09-04 Akim Demaille <akim@epita.fr>
2792
2793 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2794 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2795 translate maintainer only messages.
2796
27972002-08-12 Paul Eggert <eggert@twinsun.com>
2798
2799 Version 1.49b.
2800
2801 * Makefile.am (SUBDIRS): Remove intl.
2802 (DISTCLEANFILES): Remove.
2803 * NEWS: Mention that GNU M4 is now required. Clarify what is
2804 meant by "larger grammars". Mention the pt_BR translation.
2805 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2806 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2807 Bump version from 0.11.2 to 0.11.5.
2808 (BISON_PREREQ_STAGE): Remove.
2809 (AM_GNU_GETTEXT): Use external gettext.
2810 (AC_OUTPUT): Remove intl/Makefile.
2811
2812 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2813
2814 * data/glr.c: Include string.h, for strlen.
2815 (yyreportParseError): Use size_t for yysize.
2816 (yy_yypstack): No longer nested inside yypstates, as nested
2817 functions are not portable. Do not assume size_t is the
2818 same width as int.
2819 (yypstates): Do not assume that ptrdiff_t is the same width
2820 as int, and similarly for yyposn and YYINDEX.
2821
2822 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2823
2824 * lib/Makefile.am (INCLUDES): Do not include from the intl
2825 directory, which has been removed.
2826 * src/Makefile.am (INCLUDES): Likewise.
2827
2828 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2829 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2830 New vars.
2831
2832 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2833 * tests/Makefile.am (EXTRA_DIST): Likewise.
2834
2835 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2836 Do not assume that bitset_windex is the same width as unsigned.
2837
2838 * lib/abitset.c (abitset_unused_clear): Do not assume that
2839 bitset_word is the same width as int.
2840 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2841 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2842 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2843 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2844 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2845
2846 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2847 portability to one's complement hosts!).
2848 * lib/ebitset.c (ebitset_op1): Likewise.
2849 * lib/lbitset.c (lbitset_op1): Likewise.
2850
2851 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2852 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2853 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2854 Sync with fileutils.
2855 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2856 lib/gettext.h: Sync with diffutils.
2857
2858 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2859 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2860
2861 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2862 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2863 check for void *.
2864
2865 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2866 size_t; the old version tried to do this but casted improperly.
2867 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2868 (bitset_test): Now returns int, not unsigned long.
2869
2870 * lib/bitset_stats.c: Include "gettext.h".
2871 (_): New macro.
2872 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
2873 name locals "index", as it generates unnecessary warnings on some
2874 hosts that have an "index" function.
2875
2876 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
2877 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
2878 they need translation.
2879 * src/LR0.c (state_list_append, new_itemsets, get_state,
2880 append_states, generate_states): Likewise.
2881 * src/assoc.c (assoc_to_string): Likewise.
2882 * src/closure.c (print_closure, set_firsts, closure): Likewise.
2883 * src/gram.c (grammar_dump): Likewise.
2884 * src/injections.c (injections_compute): Likewise.
2885 * src/lalr.c (lookaheads_print): Likewise.
2886 * src/relation.c (relation_transpose): Likewise.
2887 * src/scan-gram.l: Likewise.
2888 * src/tables.c (table_grow, pack_vector): Likewise.
2889
2890 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
2891 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
2892 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
2893 * m4/mbstate_t.m4: Sync with fileutils.
2894 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
2895
2896 * po/LINGUAS: Add pt_BR.
2897 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
2898 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
2899 lib/timevar.c.
2900 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
2901 manual recommends.
2902 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
2903
2904 * src/complain.c (strerror_r): Remove decl; not needed.
2905 (strerror): Use same pattern as ../lib/error.c.
2906
2907 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
2908
2909 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
2910
2911 * src/main.c (main): Cast result of bindtextdomain and textdomain
2912 to void, to avoid a GCC warning when --disable-nls is in effect.
2913
2914 * src/scan-gram.l: Use strings rather than escapes when possible,
2915 to minimize the number of warnings from xgettext.
2916 (handle_action_dollar, handle_action_at): Don't use isdigit,
2917 as it mishandles negative chars and it may not work as expected
2918 outside the C locale.
2919
2920 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
2921 this is a GCC extension and is not portable to other compilers.
2922
2923 * src/system.h (alloca): Use same pattern as ../lib/error.c.
2924 Do not include <ctype.h>; no longer needed.
2925 Do not include <malloc.h>; no longer needed (and generates
2926 warnings on OpenBSD 3.0).
2927
2928 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
2929 it's not portable.
2930
2931 * tests/regression.at: Do not use 'cc -c input.c -o input';
2932 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
2933
2934 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
2935 exit status as failure, not just exit status 1. Sun C exits
2936 with status 2 sometimes.
2937
2938 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
2939 Use it for the two large tests.
2940
29412002-08-02 Akim Demaille <akim@epita.fr>
2942
2943 * src/conflicts.c (conflicts_output): Don't output rules never
2944 reduced here, since anyway that computation doesn't work.
2945 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
2946 (rule_useless_p, rule_never_reduced_p): New.
2947 (grammar_rules_partial_print): Use a filter instead of a range.
2948 Display the title only if needed.
2949 (grammar_rules_print): Adjust.
2950 (grammar_rules_never_reduced_report): New.
2951 * src/tables.c (action_row): Move the computation of rules never
2952 reduced to...
2953 (token_actions): here.
2954 * src/main.c (main): Make the parser before making the report, so
2955 that rules never reduced are computed.
2956 Call grammar_rules_never_reduced_report.
2957 * src/print.c (print_results): Report rules never reduced.
2958 * tests/conflicts.at, tests/reduce.at: Adjust.
2959
29602002-08-01 Akim Demaille <akim@epita.fr>
2961
2962 Instead of attaching lookaheads and duplicating the rules being
2963 reduced by a state, attach the lookaheads to the reductions.
2964
2965 * src/state.h (state_t): Remove the `lookaheads',
2966 `lookaheads_rule' member.
2967 (reductions_t): Add a `lookaheads' member.
2968 Use a regular array for the `rules'.
2969 * src/state.c (reductions_new): Initialize the lookaheads member
2970 to 0.
2971 (state_rule_lookaheads_print): Adjust.
2972 * src/state.h, src/state.c (state_reductions_find): New.
2973 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
2974 (count_rr_conflicts): Adjust.
2975 * src/lalr.c (LArule): Remove.
2976 (add_lookback_edge): Adjust.
2977 (state_lookaheads_count): New.
2978 (states_lookaheads_initialize): Merge into...
2979 (initialize_LA): this.
2980 (lalr_free): Adjust.
2981 * src/main.c (main): Don't free nullable and derives too early: it
2982 is used by --verbose.
2983 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
2984
29852002-08-01 Akim Demaille <akim@epita.fr>
2986
2987 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
2988 `rule_number_t**'.
2989 (set_derives, free_derives): Rename as...
2990 (derives_compute, derives_free): this.
2991 Adjust all dependencies.
2992 * src/nullable.c (set_nullable, free_nullable): Rename as...
2993 (nullable_compute, nullable_free): these.
2994 (rule_list_t): Store rule_t *, not rule_number_t.
2995 * src/state.c (state_rule_lookaheads_print): Directly compare rule
2996 pointers, instead of their numbers.
2997 * src/main.c (main): Call nullable_free, and derives_free earlier,
2998 as they were lo longer used.
2999
30002002-08-01 Akim Demaille <akim@epita.fr>
3001
3002 * lib/timevar.c (get_time): Include children time.
3003 * src/lalr.h (LA, LArule): Don't export them: used with the
3004 state_t.
3005 * src/lalr.c (LA, LArule): Static.
3006 * src/lalr.h, src/lalr.c (lalr_free): New.
3007 * src/main.c (main): Call it.
3008 * src/tables.c (pack_vector): Check whether loc is >= to the
3009 table_size, not >.
3010 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
3011 (tables_generate): do it, since that's also it which allocates
3012 them.
3013 Don't free LA and LArule, main does.
3014
30152002-07-31 Akim Demaille <akim@epita.fr>
3016
3017 Separate parser tables computation and output.
3018
3019 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
3020 (conflict_list, conflict_list_cnt, table, check, table_ninf)
3021 (yydefgoto, yydefact, high): Move to...
3022 * src/tables.h, src/tables.c: here.
3023 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3024 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3025 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
3026 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
3027 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
3028 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
3029 (action_row, save_row, token_actions, save_column, default_goto)
3030 (goto_actions, sort_actions, matching_state, pack_vector)
3031 (table_ninf_remap, pack_table, prepare_actions): Move to...
3032 * src/tables.c: here.
3033 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
3034 * src/output.c (token_actions, output_base, output_conflicts)
3035 (output_check): Merge into...
3036 (prepare_actions): this.
3037 (actions_output): Rename as...
3038 (user_actions_output): this.
3039 * src/main.c (main): Call tables_generate and tables_free.
3040
30412002-07-31 Akim Demaille <akim@epita.fr>
3042
3043 Steal GCC's --time-report support.
3044
3045 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
3046 stolen/adjusted from GCC.
3047 * m4/stage.m4: Remove time related checks.
3048 * m4/timevar.m4: New.
3049 * configure.in: Adjust.
3050 * src/system.h: Adjust to using timevar.h.
3051 * src/getargs.h, src/getargs.c: Support trace_time for
3052 --trace=time.
3053 * src/main.c (stage): Remove.
3054 (main): Replace `stage' invocations with timevar calls.
3055 * src/output.c: Insert pertinent timevar calls.
3056
30572002-07-31 Akim Demaille <akim@epita.fr>
3058
3059 Let --trace have arguments.
3060
3061 * src/getargs.h (enum trace_e): New.
3062 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
3063 (long_options, short_options): --trace/-T takes an optional
3064 argument.
3065 Change all the uses of trace_flag to reflect the new flags.
3066 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
3067
3068 Strengthen `stage' portability.
3069
3070 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3071 * configure.in: Use it.
3072 Don't check for malloc.h and sys/times.h.
3073 * src/system.h: Include them when appropriate.
3074 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3075 times and struct tms are available.
3076
30772002-07-30 Akim Demaille <akim@epita.fr>
3078
3079 In verbose parse error message, don't report `error' as an
3080 expected token.
3081 * tests/actions.at (Printers and Destructors): Adjust.
3082 * tests/calc.at (Calculator $1): Adjust.
3083 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3084 error message, do not report the parser accepts the error token in
3085 that state.
3086
30872002-07-30 Akim Demaille <akim@epita.fr>
3088
3089 Normalize conflict related messages.
3090
3091 * src/complain.h, src/complain.c (warn, complain): New.
3092 * src/conflicts.c (conflicts_print): Use them.
3093 (conflict_report_yacc): New, extracted from...
3094 (conflicts_print): here.
3095 * tests/conflicts.at, tests/existing.at: Adjust.
3096
30972002-07-30 Akim Demaille <akim@epita.fr>
3098
3099 Report rules which are never reduced by the parser: those hidden
3100 by conflicts.
3101
3102 * src/LR0.c (save_reductions): Don't make the final state too
3103 different: save its reduction (accept) instead of having a state
3104 without any action (no shift or goto, no reduce).
3105 Note: the final state is now a ``regular'' state, i.e., the
3106 parsers now contain `reduce 0' as default reduction.
3107 Nevertheless, since they decide to `accept' when yystate =
3108 final_state, they still will not reduce rule 0.
3109 * src/print.c (print_actions, print_reduction): Adjust.
3110 * src/output.c (action_row): Track reduced rules.
3111 (token_actions): Report rules never reduced.
3112 * tests/conflicts.at, tests/regression.at: Adjust.
3113
31142002-07-30 Akim Demaille <akim@epita.fr>
3115
3116 `stage' was accidently included in a previous patch.
3117 Initiate its autoconfiscation.
3118
3119 * configure.in: Look for malloc.h and sys/times.h.
3120 * src/main.c (stage): Adjust.
3121 Report only when trace_flag.
3122
31232002-07-29 Akim Demaille <akim@epita.fr>
3124
3125 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3126 state_number_t.
3127 (errs_t): symbol_t*, not symbol_number_t.
3128 (reductions_t): rule_t*, not rule_number_t.
3129 (FOR_EACH_SHIFT): New.
3130 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3131 * src/print.c, src/print_graph.c: Adjust.
3132
31332002-07-29 Akim Demaille <akim@epita.fr>
3134
3135 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3136
3137 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3138 (endtoken, accept): these.
3139 * src/reader.c (reader): Set endtoken's default tag to "$end".
3140 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3141 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3142 Adjust.
3143
31442002-07-29 Akim Demaille <akim@epita.fr>
3145
3146 * src/reduce.c (reduce_grammar): When the language is empty,
3147 complain about the start symbol, not the axiom.
3148 Use its location.
3149 * tests/reduce.at (Empty Language): New.
3150
31512002-07-26 Akim Demaille <akim@epita.fr>
3152
3153 * src/reader.h, src/reader.c (gram_error): ... can't get
3154 yycontrol without making too strong assumptions on the parser
3155 itself.
3156 * src/output.c (prepare_tokens): Use the real 0th value of
3157 token_translations instead of `0'.
3158 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3159 visible here.
3160 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3161 for the time being: %locations ought to provide it to yyerror.
3162
31632002-07-25 Akim Demaille <akim@epita.fr>
3164
3165 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3166 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3167 * tests/regression.at (Web2c Actions): Adjust.
3168
31692002-07-25 Akim Demaille <akim@epita.fr>
3170
3171 Stop storing rules from 1 to nrules + 1.
3172
3173 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3174 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3175 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3176 Iterate from 0 to nrules.
3177 Use rule_number_as_item_number and item_number_as_rule_number.
3178 Adjust to `derive' now containing possibly 0.
3179 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3180 Handle the `- 1' part in rule numbers from/to item numbers.
3181 * src/conflicts.c (log_resolution): Fix the message which reversed
3182 shift and reduce.
3183 * src/output.c (action_row): Initialize default_rule to -1.
3184 (token_actions): Adjust.
3185 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3186 expected output.
3187 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3188
31892002-07-25 Akim Demaille <akim@epita.fr>
3190
3191 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3192 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3193 (b4_c_knr_arg_decl): New.
3194 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3195 yyreport_parse_error.
3196
31972002-07-25 Akim Demaille <akim@epita.fr>
3198
3199 * data/yacc.c (yyreport_parse_error): New, extracted from...
3200 (yyparse): here.
3201 (yydestruct, yysymprint): Move above yyparse.
3202 Be K&R compliant.
3203
32042002-07-25 Akim Demaille <akim@epita.fr>
3205
3206 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3207 replace...
3208 (b4_sint_type, b4_uint_type): these.
3209 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3210 * tests/regression.at (Web2c Actions): Adjust.
3211
32122002-07-25 Akim Demaille <akim@epita.fr>
3213
3214 * src/gram.h (TIEM_NUMBER_MAX): New.
3215 (item_number_of_rule_number, rule_number_of_item_number): Rename
3216 as...
3217 (rule_number_as_item_number, item_number_as_rule_number): these.
3218 Adjust dependencies.
3219 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3220 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3221 (symbol_number_to_vector_number): New.
3222 (order): Of vector_number_t* type.
3223 (base_t, BASE_MAX, BASE_MIN): New.
3224 (froms, tos, width, pos, check): Of base_t type.
3225 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3226 (actrow): Of action_number_t type.
3227 (conflrow): Of unsigned int type.
3228 (table_ninf, base_ninf): New.
3229 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3230 (muscle_insert_int_table, muscle_insert_base_table)
3231 (muscle_insert_rule_number_table): New.
3232 (prepare_tokens): Output `toknum' as int_table.
3233 (action_row): Returns a rule_number_t.
3234 Use ACTION_MIN, not SHRT_MIN.
3235 (token_actions): yydefact is rule_number_t*.
3236 (table_ninf_remap): New.
3237 (pack_table): Use it for `base' and `table'.
3238 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3239 replaced with...
3240 (YYPACT_NINF, YYTABLE_NINF): these.
3241 (yypact, yytable): Compute their types instead of hard-coded
3242 `short'.
3243 * tests/regression.at (Web2c Actions): Adjust.
3244
32452002-07-19 Akim Demaille <akim@epita.fr>
3246
3247 * src/scan-gram.l (id): Can start with an underscore.
3248
32492002-07-16 Akim Demaille <akim@epita.fr>
3250
3251 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3252 Adjust all former `associativity' dependencies.
3253 * src/symtab.c (symbol_new): Default associativity is `undef', not
3254 `right'.
3255 (symbol_check_alias_consistence): Adjust.
3256
32572002-07-09 Akim Demaille <akim@epita.fr>
3258
3259 * doc/bison.texinfo: Properly set the ``header'' part.
3260 Use @dircategory ``GNU programming tools'' as per Texinfo's
3261 documentation.
3262 Use @copying.
3263
32642002-07-09 Akim Demaille <akim@epita.fr>
3265
3266 * lib/quotearg.h: Protect against multiple inclusions.
3267 * src/location.h (location_t): Add a `file' member.
3268 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3269 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3270 `error_one_per_line' support.
3271
32722002-07-09 Akim Demaille <akim@epita.fr>
3273
3274 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3275 * src/reader.c (lineno): Remove.
3276 Adjust all dependencies.
3277 (get_merge_function): Take a location and use complain_at.
3278 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3279 * tests/regression.at (Invalid inputs, Mixing %token styles):
3280 Adjust.
3281
32822002-07-09 Akim Demaille <akim@epita.fr>
3283
3284 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3285 recovery rule, and forbid extensions when --yacc.
3286 (gram_error): Use complain_at.
3287 * src/reader.c (reader): Exit if there were parse errors.
3288
32892002-07-09 Akim Demaille <akim@epita.fr>
3290
3291 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3292 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3293 Reported by R Blake <blakers@mac.com>.
3294
32952002-07-09 Akim Demaille <akim@epita.fr>
3296
3297 * data/yacc.c: Output the copyright notive in the header.
3298
32992002-07-03 Akim Demaille <akim@epita.fr>
3300
3301 * src/output.c (froms, tos): Are state_number_t.
3302 (save_column): sp, sp1, and sp2 are state_number_t.
3303 (prepare): Rename `final' as `final_state_number', `nnts' as
3304 `nterms_number', `nrules' as `rules_number', `nstates' as
3305 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3306 unused.
3307 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3308 * data/lalr1.cc (nsym_): Remove, unused.
3309
33102002-07-03 Akim Demaille <akim@epita.fr>
3311
3312 * src/lalr.h, src/lalr.c (goto_number_t): New.
3313 * src/lalr.c (goto_list_t): New.
3314 Propagate them.
3315 * src/nullable.c (rule_list_t): New.
3316 Propagate.
3317 * src/types.h: Remove.
3318
33192002-07-03 Akim Demaille <akim@epita.fr>
3320
3321 * src/closure.c (print_fderives): Use rule_rhs_print.
3322 * src/derives.c (print_derives): Use rule_rhs_print.
3323 (rule_list_t): New, replaces `shorts'.
3324 (set_derives): Add comments.
3325 * tests/sets.at (Nullable, Firsts): Adjust.
3326
33272002-07-03 Akim Demaille <akim@epita.fr>
3328
3329 * src/output.c (prepare_actions): Free `tally' and `width'.
3330 (prepare_actions): Allocate and free `order'.
3331 * src/symtab.c (symbols_free): Free `symbols'.
3332 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3333 * src/output.c (m4_invoke): Move to...
3334 * src/scan-skel.l: here.
3335 (<<EOF>>): Close yyout, and free its name.
3336
33372002-07-03 Akim Demaille <akim@epita.fr>
3338
3339 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3340
3341 * src/LR0.c (new_state): Merge into...
3342 (state_list_append): this.
3343 (new_states): Merge into...
3344 (generate_states): here.
3345 (set_states): Don't ensure a proper `errs' state member here, do it...
3346 * src/conflicts.c (conflicts_solve): here.
3347 * src/state.h, src/state.c: Comment changes.
3348 (state_t): Rename member `shifts' as `transitions'.
3349 Adjust all dependencies.
3350 (errs_new): For consistency, also take the values as argument.
3351 (errs_dup): Remove.
3352 (state_errs_set): New.
3353 (state_reductions_set, state_transitions_set): Assert that no
3354 previous value was assigned.
3355 (state_free): New.
3356 (states_free): Use it.
3357 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3358 temporary storage: use `errs' and `nerrs' as elsewhere.
3359 (set_conflicts): Allocate and free this `errs'.
3360
33612002-07-02 Akim Demaille <akim@epita.fr>
3362
3363 * lib/libiberty.h: New.
3364 * lib: Update the bitset implementation from upstream.
3365 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3366 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3367 * src/main.c: Adjust bitset stats calls.
3368
33692002-07-01 Paul Eggert <eggert@twinsun.com>
3370
3371 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3372 char, so that negative chars don't collide with $.
3373
33742002-06-30 Akim Demaille <akim@epita.fr>
3375
3376 Have the GLR tests be `warning' checked, and fix the warnings.
3377
3378 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3379 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3380 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3381 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3382 (yyaddDeferredAction): static.
3383 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3384 (yyreportParseError): yyprefix is const.
3385 yytokenp is used only when verbose.
3386 (yy__GNUC__): Replace with __GNUC__.
3387 (yypdumpstack): yyi is size_t.
3388 (yypreference): Un-yy local variables and arguments, to avoid
3389 clashes with `yyr1'. Anyway, we are not in the user name space.
3390 (yytname_size): be an int, as is compared with ints.
3391 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3392 Use them.
3393 * tests/cxx-gram.at: Use quotation to protect $1.
3394 Use AT_COMPILE to enable warnings hunts.
3395 Prototype yylex and yyerror.
3396 `Use' argc.
3397 Include `string.h', not `strings.h'.
3398 Produce and prototype stmtMerge only when used.
3399 yylex takes a location.
3400
34012002-06-30 Akim Demaille <akim@epita.fr>
3402
3403 We spend a lot of time in quotearg, in particular when --verbose.
3404
3405 * src/symtab.c (symbol_get): Store a quoted version of the key.
3406 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3407 Adjust all callers.
3408
34092002-06-30 Akim Demaille <akim@epita.fr>
3410
3411 * src/state.h (reductions_t): Rename member `nreds' as num.
3412 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3413 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3414
34152002-06-30 Akim Demaille <akim@epita.fr>
3416
3417 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3418 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3419 (shifts_to): Rename as...
3420 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3421 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3422 (TRANSITION_IS_DISABLED, transitions_to): these.
3423
34242002-06-30 Akim Demaille <akim@epita.fr>
3425
3426 * src/print.c (print_shifts, print_gotos): Merge into...
3427 (print_transitions): this.
3428 (print_transitions, print_errs, print_reductions): Align the
3429 lookaheads columns.
3430 (print_core, print_transitions, print_errs, print_state,
3431 print_grammar): Output empty lines separator before, not after.
3432 (state_default_rule_compute): Rename as...
3433 (state_default_rule): this.
3434 * tests/conflicts.at (Defaulted Conflicted Reduction),
3435 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3436 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3437
34382002-06-30 Akim Demaille <akim@epita.fr>
3439
3440 Display items as we display rules.
3441
3442 * src/gram.h, src/gram.c (rule_lhs_print): New.
3443 * src/gram.c (grammar_rules_partial_print): Use it.
3444 * src/print.c (print_core): Likewise.
3445 * tests/conflicts.at (Defaulted Conflicted Reduction),
3446 (Unresolved SR Conflicts): Adjust.
3447 (Unresolved SR Conflicts): Adjust and rename as...
3448 (Resolved SR Conflicts): this, as was meant.
3449 * tests/regression.at (Web2c Report): Adjust.
3450
34512002-06-30 Akim Demaille <akim@epita.fr>
3452
3453 * src/print.c (state_default_rule_compute): New, extracted from...
3454 (print_reductions): here.
3455 Pessimize, but clarify the code.
3456 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3457
34582002-06-30 Akim Demaille <akim@epita.fr>
3459
3460 * src/output.c (action_row): Let default_rule be always a rule
3461 number.
3462
34632002-06-30 Akim Demaille <akim@epita.fr>
3464
3465 * src/closure.c (print_firsts, print_fderives, closure):
3466 Use BITSET_EXECUTE.
3467 * src/lalr.c (lookaheads_print): Likewise.
3468 * src/state.c (state_rule_lookaheads_print): Likewise.
3469 * src/print_graph.c (print_core): Likewise.
3470 * src/print.c (print_reductions): Likewise.
3471 * src/output.c (action_row): Likewise.
3472 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3473
34742002-06-30 Akim Demaille <akim@epita.fr>
3475
3476 * src/print_graph.c: Use report_flag.
3477
34782002-06-30 Akim Demaille <akim@epita.fr>
3479
3480 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3481 to...
3482 * src/relation.h, src/relation.c (traverse, relation_digraph)
3483 (relation_print, relation_transpose): New.
3484
34852002-06-30 Akim Demaille <akim@epita.fr>
3486
3487 * src/state.h, src/state.c (shifts_to): New.
3488 * src/lalr.c (build_relations): Use it.
3489
34902002-06-30 Akim Demaille <akim@epita.fr>
3491
3492 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3493 (item_number_of_rule_number, rule_number_of_item_number): New.
3494 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3495 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3496 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3497 Propagate their use.
3498 Much remains to be done, in particular wrt `shorts' from types.h.
3499
35002002-06-30 Akim Demaille <akim@epita.fr>
3501
3502 * src/symtab.c (symbol_new): Initialize the `printer' member.
3503
35042002-06-30 Akim Demaille <akim@epita.fr>
3505
3506 * src/LR0.c (save_reductions): Remove, replaced by...
3507 * src/state.h, src/state.c (state_reductions_set): New.
3508 (reductions, errs): Rename as...
3509 (reductions_t, errs_t): these.
3510 Adjust all dependencies.
3511
35122002-06-30 Akim Demaille <akim@epita.fr>
3513
3514 * src/LR0.c (state_list_t, state_list_append): New.
3515 (first_state, last_state): Now symbol_list_t.
3516 (this_state): Remove.
3517 (new_itemsets, append_states, save_reductions): Take a state_t as
3518 argument.
3519 (set_states, generate_states): Adjust.
3520 (save_shifts): Remove, replaced by...
3521 * src/state.h, src/state.c (state_shifts_set): New.
3522 (shifts): Rename as...
3523 (shifts_t): this.
3524 Adjust all dependencies.
3525 * src/state.h (state_t): Remove the `next' member.
3526
35272002-06-30 Akim Demaille <akim@epita.fr>
3528
3529 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3530 escaped in slot 0.
3531
35322002-06-30 Akim Demaille <akim@epita.fr>
3533
3534 Use hash.h for the state hash table.
3535
3536 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3537 (allocate_storage): Use state_hash_new.
3538 (free_storage): Use state_hash_free.
3539 (new_state, get_state): Adjust.
3540 * src/lalr.h, src/lalr.c (states): Move to...
3541 * src/states.h (state_t): Remove the `link' member, no longer
3542 used.
3543 * src/states.h, src/states.c: here.
3544 (state_hash_new, state_hash_free, state_hash_lookup)
3545 (state_hash_insert, states_free): New.
3546 * src/states.c (state_table, state_compare, state_hash): New.
3547 * src/output.c (output_actions): Do not free states now, since we
3548 still need to know the final_state number in `prepare', called
3549 afterwards. Do it...
3550 * src/main.c (main): here: call states_free after `output'.
3551
35522002-06-30 Akim Demaille <akim@epita.fr>
3553
3554 * src/state.h, src/state.c (state_new): New, extracted from...
3555 * src/LR0.c (new_state): here.
3556 * src/state.h (STATE_ALLOC): Move to...
3557 * src/state.c: here.
3558 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3559 * src/state.h, src/state.c: here.
3560
35612002-06-30 Akim Demaille <akim@epita.fr>
3562
3563 * src/reader.c (gensym): Rename as...
3564 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3565 (getsym): Rename as...
3566 (symbol_get): this.
3567
35682002-06-30 Akim Demaille <akim@epita.fr>
3569
3570 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3571 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3572 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3573 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3574
35752002-06-30 Akim Demaille <akim@epita.fr>
3576
3577 Make the test suite pass with warnings checked.
3578
3579 * tests/actions.at (Printers and Destructors): Improve.
3580 Avoid unsigned vs. signed issues.
3581 * tests/calc.at: Don't exercise the scanner here, do it...
3582 * tests/input.at (Torturing the Scanner): here.
3583
35842002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3585
3586 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
3587 reorganize first lines parallel to yacc.c.
3588
35892002-06-28 Akim Demaille <akim@epita.fr>
3590
3591 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3592 (b4_token_enum, b4_token_defines): New, factored from...
3593 * data/lalr1.cc, data/yacc.c, glr.c: here.
3594
35952002-06-28 Akim Demaille <akim@epita.fr>
3596
3597 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3598 unused variables.
3599 * src/output.c (merger_output): static.
3600
36012002-06-28 Akim Demaille <akim@epita.fr>
3602
3603 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3604 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3605 pacify GCC.
3606 * src/output.c (save_row): Initialize all the variables to pacify GCC.
3607
36082002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3609
3610 Accumulated changelog for new GLR parsing features.
3611
3612 * src/conflicts.c (count_total_conflicts): Change name to
3613 conflicts_total_count.
3614 * src/conflicts.h: Ditto.
3615 * src/output.c (token_actions): Use the new name.
3616 (output_conflicts): Change conflp => conflict_list_heads, and
3617 confl => conflict_list for better readability.
3618 * data/glr.c: Use the new names.
3619 * NEWS: Add self to GLR announcement.
3620
3621 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3622
3623 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3624 Akim Demaille.
3625
3626 * data/bison.glr: Change name to glr.c
3627 * data/glr.c: Renamed from bison.glr.
3628 * data/Makefile.am: Add glr.c
3629
3630 * src/getargs.c:
3631
3632 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3633 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
3634
3635 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3636
3637 * data/bison.glr: Be sure to restore the
3638 current #line when returning to the skeleton contents after having
3639 exposed the input file's #line.
3640
3641 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3642
3643 * data/bison.glr: Bring up to date with changes to bison.simple.
3644
3645 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3646
3647 * data/bison.glr: Correct definitions that use b4_prefix.
3648 Various reformatting.
3649 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3650 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3651 yytokenp argument; now part of stack.
3652 (yychar): Define to behave as documented.
3653 (yyclearin): Ditto.
3654
3655 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3656
3657 * src/reader.h: Add declaration for free_merger_functions.
3658
3659 * src/reader.c (merge_functions): New variable.
3660 (get_merge_function): New function.
3661 (free_merger_functions): New function.
3662 (readgram): Check for %prec that is not followed by a symbol.
3663 Handle %dprec and %merge declarations.
3664 (packgram): Initialize dprec and merger fields in rules array.
3665
3666 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3667 conflict_list_cnt, conflict_list_free): New variables.
3668 (table_grow): Also grow conflict_table.
3669 (prepare_rules): Output dprec and merger tables.
3670 (conflict_row): New function.
3671 (action_row): Output conflict lists for GLR parser. Don't use
3672 default reduction in conflicted states for GLR parser so that there
3673 are spaces for the conflict lists.
3674 (save_row): Also save conflict information.
3675 (token_actions): Allocate conflict list.
3676 (merger_output): New function.
3677 (pack_vector): Pack conflict table, too.
3678 (output_conflicts): New function to output yyconflp and yyconfl.
3679 (output_check): Allocate conflict_tos.
3680 (output_actions): Output conflict tables, also.
3681 (output_skeleton): Output b4_mergers definition.
3682 (prepare): Output b4_max_rhs_length definition.
3683 Use 'bison.glr' as default skeleton for GLR parsers.
3684
3685 * src/gram.c (glr_parser): New flag.
3686 (grammar_free): Call free_merger_functions.
3687
3688 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3689 all pairs of conflicting reductions, rather than just all tokens
3690 causing conflicts. Needed to size conflict tables.
3691 (conflicts_output): Modify call to count_rr_conflicts for new
3692 interface.
3693 (conflicts_print): Ditto.
3694 (count_total_conflicts): New function.
3695
3696 * src/reader.h (merger_list): New type.
3697 (merge_functions): New variable.
3698
3699 * src/lex.h (tok_dprec, tok_merge): New token types.
3700
3701 * src/gram.h (rule_s): Add dprec and merger fields.
3702 (glr_parser): New flag.
3703
3704 * src/conflicts.h (count_total_conflicts): New function.
3705
3706 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3707
3708 * doc/bison.texinfo (Generalized LR Parsing): New section.
3709 (GLR Parsers): New section.
3710 (Language and Grammar): Mention GLR parsing.
3711 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3712 Correct typo ("tge" -> "the").
3713
3714 * data/bison.glr: New skeleton for GLR parsing.
3715
3716 * tests/cxx-gram.at: New tests for GLR parsing.
3717
3718 * tests/testsuite.at: Include cxx-gram.at.
3719
3720 * tests/Makefile.am: Add cxx-gram.at.
3721
3722 * src/parse-gram.y:
3723
3724 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3725
3726 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
3727
37282002-06-27 Akim Demaille <akim@epita.fr>
3729
3730 * src/options.h, src/options.c: Remove.
3731 * src/getargs.c (short_options, long_options): New.
3732
37332002-06-27 Akim Demaille <akim@epita.fr>
3734
3735 * data/bison.simple, data/bison.c++: Rename as...
3736 * data/yacc.c, data/lalr1.cc: these.
3737 * doc/bison.texinfo (Environment Variables): Remove.
3738
37392002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3740
3741 * src/getargs.c (report_argmatch): Initialize strtok().
3742
37432002-06-20 Akim Demaille <akim@epita.fr>
3744
3745 * data/bison.simple (b4_symbol_actions): New, replaces...
3746 (b4_symbol_destructor, b4_symbol_printer): these.
3747 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3748 user token numbers.
3749
37502002-06-20 Akim Demaille <akim@epita.fr>
3751
3752 * data/bison.simple (yydestructor): Rename as...
3753 (yydestruct): this.
3754
37552002-06-20 Akim Demaille <akim@epita.fr>
3756
3757 * src/symtab.h, src/symtab.c (symbol_type_set)
3758 (symbol_destructor_set, symbol_precedence_set): The location is
3759 the last argument.
3760 Adjust all callers.
3761
37622002-06-20 Akim Demaille <akim@epita.fr>
3763
3764 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3765 internals.
3766 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3767 Takes a location.
3768 * src/symtab.h, src/symtab.c (symbol_class_set)
3769 (symbol_user_token_number_set): Likewise.
3770 Adjust all callers.
3771 Promote complain_at.
3772 * tests/input.at (Type Clashes): Adjust.
3773
37742002-06-20 Akim Demaille <akim@epita.fr>
3775
3776 * data/bison.simple (YYLEX): Fix the declaration when
3777 %pure-parser.
3778
37792002-06-20 Akim Demaille <akim@epita.fr>
3780
3781 * data/bison.simple (yysymprint): Don't print the token number,
3782 just its name.
3783 * tests/actions.at (Destructors): Rename as...
3784 (Printers and Destructors): this.
3785 Also exercise %printer.
3786
37872002-06-20 Akim Demaille <akim@epita.fr>
3788
3789 * data/bison.simple (YYDSYMPRINT): New.
3790 Use it to remove many of the #if YYDEBUG/if (yydebug).
3791
37922002-06-20 Akim Demaille <akim@epita.fr>
3793
3794 * src/symtab.h, src/symtab.c (symbol_t): printer and
3795 printer_location are new members.
3796 (symbol_printer_set): New.
3797 * src/parse-gram.y (PERCENT_PRINTER): New token.
3798 Handle its associated rule.
3799 * src/scan-gram.l: Adjust.
3800 (handle_destructor_at, handle_destructor_dollar): Rename as...
3801 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3802 * src/output.c (symbol_printers_output): New.
3803 (output_skeleton): Call it.
3804 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3805 since there are already many grammar files with a user `yyprint'.
3806 Replace the calls to YYPRINT to calls to yysymprint.
3807 * tests/calc.at: Adjust.
3808 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3809 taking advantage of parser very internal details (stack size!).
3810
38112002-06-20 Akim Demaille <akim@epita.fr>
3812
3813 * src/scan-gram.l: Complete the scanner with the missing patterns
3814 to pacify Flex.
3815 Use `quote' and `symbol_tag_get' where appropriate.
3816
38172002-06-19 Akim Demaille <akim@epita.fr>
3818
3819 * tests/actions.at (Destructors): Augment to test locations.
3820 * data/bison.simple (yydestructor): Pass it the current location
3821 if locations are enabled.
3822 Prototype only when __STDC__ or C++.
3823 Change the argument names to move into the yy name space: there is
3824 user code here.
3825
38262002-06-19 Akim Demaille <akim@epita.fr>
3827
3828 * data/bison.simple (b4_pure_if): New.
3829 Use it instead of #ifdef YYPURE.
3830
38312002-06-19 Akim Demaille <akim@epita.fr>
3832
3833 * data/bison.simple (b4_location_if): New.
3834 Use it instead of #ifdef YYLSP_NEEDED.
3835
38362002-06-19 Akim Demaille <akim@epita.fr>
3837
3838 Prepare @$ in %destructor, but currently don't bind it in the
3839 skeleton, as %location use is not cleaned up yet.
3840
3841 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3842 (handle_action_at): New.
3843 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3844 a braced_code_t and a location as additional arguments.
3845 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3846 unquote one when outputting `b4_dollar_dollar'.
3847 Adjust callers.
3848 * data/bison.simple (b4_eval): Remove.
3849 (b4_symbol_destructor): Adjust.
3850 * tests/input.at (Invalid @n): Adjust.
3851
38522002-06-19 Zack Weinberg <zack@codesourcery.com>
3853
3854 * doc/bison.texinfo: Document ability to have multiple
3855 prologue sections.
3856
38572002-06-18 Akim Demaille <akim@epita.fr>
3858
3859 * src/files.c (compute_base_names): When computing the output file
3860 names from the input file name, strip the directory part.
3861
38622002-06-18 Akim Demaille <akim@epita.fr>
3863
3864 * data/bison.simple.new: Comment changes.
3865 Reported by Andreas Schwab.
3866
38672002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3868
3869 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3870 there are no `label `yyoverflowlab' defined but not used' warnings
3871 when yyoverflow is defined.
3872
38732002-06-18 Akim Demaille <akim@epita.fr>
3874
3875 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
3876 new member.
3877 (symbol_destructor_set): Adjust.
3878 * src/output.c (symbol_destructors_output): Output the destructor
3879 locations.
3880 Output the symbol name.
3881 * data/bison.simple (b4_symbol_destructor): Adjust.
3882
38832002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
3884 and Akim Demaille <akim@epita.fr>
3885
3886 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
3887 what's left on the stack when the error recovery hits EOF.
3888 * tests/actions.at (Destructors): Complete to exercise this case.
3889
38902002-06-17 Akim Demaille <akim@epita.fr>
3891
3892 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
3893 arguments is really empty, not only equal to `[]'.
3894 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
3895 member.
3896 (symbol_destructor_set): New.
3897 * src/output.c (symbol_destructors_output): New.
3898 * src/reader.h (brace_code_t, current_braced_code): New.
3899 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
3900 (handle_dollar): Rename as...
3901 (handle_action_dollar): this.
3902 (handle_destructor_dollar): New.
3903 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
3904 (grammar_declaration): Use it.
3905 * data/bison.simple (yystos): Is always defined.
3906 (yydestructor): New.
3907 * tests/actions.at (Destructors): New.
3908 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
3909
39102002-06-17 Akim Demaille <akim@epita.fr>
3911
3912 * src/symlist.h, src/symlist.c (symbol_list_length): New.
3913 * src/scan-gram.l (handle_dollar, handle_at): Compute the
3914 rule_length only when needed.
3915 * src/output.c (actions_output, token_definitions_output): Output
3916 the full M4 block.
3917 * src/symtab.c: Don't access directly to the symbol tag, use
3918 symbol_tag_get.
3919 * src/parse-gram.y: Use symbol_list_free.
3920
39212002-06-17 Akim Demaille <akim@epita.fr>
3922
3923 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
3924 (symbol_list_prepend, get_type_name): Move to...
3925 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
3926 (symbol_list_prepend, symbol_list_n_type_name_get): here.
3927 Adjust all callers.
3928 (symbol_list_free): New.
3929 * src/scan-gram.l (handle_dollar): Takes a location.
3930 * tests/input.at (Invalid $n): Adjust.
3931
39322002-06-17 Akim Demaille <akim@epita.fr>
3933
3934 * src/reader.h, src/reader.c (symbol_list_new): Export it.
3935 (symbol_list_prepend): New.
3936 * src/parse-gram.y (%union): `list' is a new member.
3937 (symbols.1): New, replaces...
3938 (terms_to_prec.1, nterms_to_type.1): these.
3939 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
3940 Take a location as additional argument.
3941 Adjust all callers.
3942
39432002-06-15 Akim Demaille <akim@epita.fr>
3944
3945 * src/parse-gram.y: Move %token in the declaration section so that
3946 we don't depend upon CVS Bison.
3947
39482002-06-15 Akim Demaille <akim@epita.fr>
3949
3950 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
3951 * src/print.c (print_core): Use it.
3952
39532002-06-15 Akim Demaille <akim@epita.fr>
3954
3955 * src/conflicts.c (log_resolution): Accept the rule involved in
3956 the sr conflicts instead of the lookahead number that points to
3957 that rule.
3958 (flush_reduce): Accept the current lookahead vector as argument,
3959 instead of the index in LA.
3960 (resolve_sr_conflict): Accept the current number of lookahead
3961 bitset to consider for the STATE, instead of the index in LA.
3962 (set_conflicts): Adjust.
3963 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
3964
39652002-06-15 Akim Demaille <akim@epita.fr>
3966
3967 * src/state.h (state_t): Replace the `lookaheadsp' member, a
3968 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
3969 Adjust all dependencies.
3970 * src/lalr.c (initialize_lookaheads): Split into...
3971 (states_lookaheads_count, states_lookaheads_initialize): these.
3972 (lalr): Adjust.
3973
39742002-06-15 Akim Demaille <akim@epita.fr>
3975
3976 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
3977 out of...
3978 (grammar_rules_print): here.
3979 * src/reduce.c (reduce_output): Use it.
3980 * tests/reduce.at (Useless Rules, Reduced Automaton)
3981 (Underivable Rules): Adjust.
3982
39832002-06-15 Akim Demaille <akim@epita.fr>
3984
3985 Copy BYacc's nice way to report the grammar.
3986
3987 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
3988 New.
3989 Don't print the rules' location, it is confusing and useless.
3990 (rule_print): Use grammar_rhs_print.
3991 * src/print.c (print_grammar): Use grammar_rules_print.
3992
39932002-06-15 Akim Demaille <akim@epita.fr>
3994
3995 Complete and rationalize `useless thing' warnings.
3996
3997 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
3998 (symbol_tag_print): New.
3999 Use them everywhere in place of accessing directly the tag member.
4000 * src/gram.h, src/gram.c (rule_print): New.
4001 Use it where a rule used to be printed `by hand'.
4002 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
4003 (reduce_grammar_tables): Report the useless rules.
4004 (reduce_print): Useless things are a warning, not an error.
4005 Report it as such.
4006 * tests/reduce.at (Useless Nonterminals, Useless Rules):
4007 (Reduced Automaton, Underivable Rules): Adjust.
4008 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
4009 * tests/conflicts.at (Unresolved SR Conflicts)
4010 (Solved SR Conflicts): Adjust.
4011
40122002-06-15 Akim Demaille <akim@epita.fr>
4013
4014 Let symbols have a location.
4015
4016 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
4017 (getsym): Adjust.
4018 Adjust all callers.
4019 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
4020 Use location_t, not int.
4021 * src/symtab.c (symbol_check_defined): Take advantage of the
4022 location.
4023 * tests/regression.at (Invalid inputs): Adjust.
4024
40252002-06-15 Akim Demaille <akim@epita.fr>
4026
4027 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
4028 (input): Don't try to initialize yylloc here, do it in the
4029 scanner.
4030 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
4031 * src/gram.h (rule_t): Change line and action_line into location
4032 and action_location, of location_t type.
4033 Adjust all dependencies.
4034 * src/location.h, src/location.c (empty_location): New.
4035 * src/reader.h, src/reader.c (grammar_start_symbol_set)
4036 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
4037 (grammar_current_rule_symbol_append)
4038 (grammar_current_rule_action_append): Expect a location as argument.
4039 * src/reader.c (grammar_midrule_action): Adjust to attach an
4040 action's location as dummy symbol location.
4041 * src/symtab.h, src/symtab.c (startsymbol_location): New.
4042 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
4043 the line numbers.
4044
40452002-06-14 Akim Demaille <akim@epita.fr>
4046
4047 Grammar declarations may be found in the grammar section.
4048
4049 * src/parse-gram.y (rules_or_grammar_declaration): New.
4050 (declarations): Each declaration may end with a semicolon, not
4051 just...
4052 (grammar_declaration): `"%union"'.
4053 (grammar): Branch to rules_or_grammar_declaration.
4054
40552002-06-14 Akim Demaille <akim@epita.fr>
4056
4057 * src/main.c (main): Invoke scanner_free.
4058
40592002-06-14 Akim Demaille <akim@epita.fr>
4060
4061 * src/output.c (m4_invoke): Extracted from...
4062 (output_skeleton): here.
4063 Free tempfile.
4064
40652002-06-14 Akim Demaille <akim@epita.fr>
4066
4067 * src/parse-gram.y (directives, directive, gram)
4068 (grammar_directives, precedence_directives, precedence_directive):
4069 Rename as...
4070 (declarations, declaration, grammar, grammar_declaration)
4071 (precedence_declaration, precedence_declarator): these.
4072 (symbol_declaration): New.
4073
40742002-06-14 Akim Demaille <akim@epita.fr>
4075
4076 * src/files.c (action_obstack): Remove, unused.
4077 (output_obstack): Remove it, and all its dependencies, as it is no
4078 longer needed.
4079 * src/reader.c (epilogue_set): Build the epilogue in the
4080 muscle_obstack.
4081 * src/output.h, src/output.c (muscle_obstack): Move to...
4082 * src/muscle_tab.h, src/muscle_tab.h: here.
4083 (muscle_init): Initialize muscle_obstack.
4084 (muscle_free): New.
4085 * src/main.c (main): Call it.
4086
40872002-06-14 Akim Demaille <akim@epita.fr>
4088
4089 * src/location.h: New, extracted from...
4090 * src/reader.h: here.
4091 * src/Makefile.am (noinst_HEADERS): Merge into
4092 (bison_SOURCES): this.
4093 Add location.h.
4094 * src/parse-gram.y: Use location_t instead of Bison's.
4095 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4096 Use location_t instead of ints.
4097
40982002-06-14 Akim Demaille <akim@epita.fr>
4099
4100 * data/bison.simple, data/bison.c++: Be sure to restore the
4101 current #line when returning to the skeleton contents after having
4102 exposed the input file's #line.
4103
41042002-06-12 Akim Demaille <akim@epita.fr>
4105
4106 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4107 eager.
4108 * tests/actions.at (Exotic Dollars): New.
4109
41102002-06-12 Akim Demaille <akim@epita.fr>
4111
4112 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4113 ['"/] too eagerly.
4114 * tests/input.at (Torturing the Scanner): New.
4115
41162002-06-11 Akim Demaille <akim@epita.fr>
4117
4118 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4119 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4120 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4121 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4122 * src/reader.c (reader): Use it.
4123
41242002-06-11 Akim Demaille <akim@epita.fr>
4125
4126 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4127 Adjust all callers.
4128 (scanner_last_string_free): New.
4129
41302002-06-11 Akim Demaille <akim@epita.fr>
4131
4132 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4133 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4134 (last_string, YY_OBS_FREE): New.
4135 Use them when returning an ID.
4136
41372002-06-11 Akim Demaille <akim@epita.fr>
4138
4139 Have Bison grammars parsed by a Bison grammar.
4140
4141 * src/reader.c, src/reader.h (prologue_augment): New.
4142 * src/reader.c (copy_definition): Remove.
4143
4144 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4145 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4146 (grammar_current_rule_prec_set, grammar_current_rule_check)
4147 (grammar_current_rule_symbol_append)
4148 (grammar_current_rule_action_append): Export.
4149 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4150 (symbol_list_action_append): Remove.
4151 Hook the routines from reader.
4152 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4153 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4154
4155 * src/reader.c (read_declarations): Remove, unused.
4156
4157 * src/parse-gram.y: Handle the epilogue.
4158 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4159 (grammar_start_symbol_set): this.
4160 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4161 * src/reader.c (readgram): Remove, unused.
4162 (reader): Adjust to insert eoftoken and axiom where appropriate.
4163
4164 * src/reader.c (copy_dollar): Replace with...
4165 * src/scan-gram.h (handle_dollar): this.
4166 * src/parse-gram.y: Remove `%thong'.
4167
4168 * src/reader.c (copy_at): Replace with...
4169 * src/scan-gram.h (handle_at): this.
4170
4171 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4172 New.
4173
4174 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4175 time being.
4176
4177 * src/reader.h, src/reader.c (grammar_rule_end): New.
4178
4179 * src/parse.y (current_type, current_class): New.
4180 Implement `%nterm', `%token' support.
4181 Merge `%term' into `%token'.
4182 (string_as_id): New.
4183 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4184 type name.
4185
4186 * src/parse-gram.y: Be sure to handle properly the beginning of
4187 rules.
4188
4189 * src/parse-gram.y: Handle %type.
4190 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4191
4192 * src/parse-gram.y: More directives support.
4193 * src/options.c: No longer handle source directives.
4194
4195 * src/parse-gram.y: Fix %output.
4196
4197 * src/parse-gram.y: Handle %union.
4198 Use the prologue locations.
4199 * src/reader.c (parse_union_decl): Remove.
4200
4201 * src/reader.h, src/reader.c (epilogue_set): New.
4202 * src/parse-gram.y: Use it.
4203
4204 * data/bison.simple, data/bison.c++: b4_stype is now either not
4205 defined, then default to int, or to the contents of %union,
4206 without `union' itself.
4207 Adjust.
4208 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4209
4210 * src/output.c (actions_output): Don't output braces, as they are
4211 already handled by the scanner.
4212
4213 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4214 characters to themselves.
4215
4216 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4217 that the epilogue has a proper #line.
4218
4219 * src/parse-gram.y: Handle precedence/associativity.
4220
4221 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4222 a terminal.
4223 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4224 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4225 at all to define terminals that cannot be emitted.
4226
4227 * src/scan-gram.l: Escape M4 characters.
4228
4229 * src/scan-gram.l: Working properly with escapes in user
4230 strings/characters.
4231
4232 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4233 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4234 grammar.
4235 Use more modest sizes, as for the time being the parser does not
4236 release memory, and therefore the process swallows a huge amount
4237 of memory.
4238
4239 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4240 stricter %token grammar.
4241
4242 * src/symtab.h (associativity): Add `undef_assoc'.
4243 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4244 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4245
4246 * tests/regression.at (Invalid %directive): Remove, as it is now
4247 meaningless.
4248 (Invalid inputs): Adjust to the new error messages.
4249 (Token definitions): The new grammar doesn't allow too many
4250 eccentricities.
4251
4252 * src/lex.h, src/lex.c: Remove.
4253 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4254 (copy_character, copy_string2, copy_string, copy_identifier)
4255 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4256 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4257 (parse_action): Remove.
4258 * po/POTFILES.in: Adjust.
4259
42602002-06-11 Akim Demaille <akim@epita.fr>
4261
4262 * src/reader.c (parse_action): Don't store directly into the
4263 rule's action member: return the action as a string.
4264 Don't require `rule_length' as an argument: compute it.
4265 (grammar_current_rule_symbol_append)
4266 (grammar_current_rule_action_append): New, eved out from
4267 (readgram): here.
4268 Remove `action_flag', `rulelength', unused now.
4269
42702002-06-11 Akim Demaille <akim@epita.fr>
4271
4272 * src/reader.c (grammar_current_rule_prec_set).
4273 (grammar_current_rule_check): New, eved out from...
4274 (readgram): here.
4275 Remove `xaction', `first_rhs': useless.
4276 * tests/input.at (Type clashes): New.
4277 * tests/existing.at (GNU Cim Grammar): Adjust.
4278
42792002-06-11 Akim Demaille <akim@epita.fr>
4280
4281 * src/reader.c (grammar_midrule_action): New, Eved out from
4282 (readgram): here.
4283
42842002-06-11 Akim Demaille <akim@epita.fr>
4285
4286 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4287 New.
4288 (readgram): Use them as replacement of inlined code, crule and
4289 crule1.
4290
42912002-06-11 Akim Demaille <akim@epita.fr>
4292
4293 * src/reader.c (grammar_end, grammar_symbol_append): New.
4294 (readgram): Use them.
4295 Make the use of `p' as local as possible.
4296
42972002-06-10 Akim Demaille <akim@epita.fr>
4298
4299 GCJ's parser requires the tokens to be defined before the prologue.
4300
4301 * data/bison.simple: Output the token definition before the user's
4302 prologue.
4303 * tests/regression.at (Braces parsing, Duplicate string)
4304 (Mixing %token styles): Check the output from bison.
4305 (Early token definitions): New.
4306
43072002-06-10 Akim Demaille <akim@epita.fr>
4308
4309 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4310 assigning twice the same user number to a token, so that we can
4311 use it in...
4312 * src/lex.c (lex): here.
4313 Also use `symbol_class_set' instead of hand written code.
4314 * src/reader.c (parse_assoc_decl): Likewise.
4315
43162002-06-10 Akim Demaille <akim@epita.fr>
4317
4318 * src/symtab.c, src/symtab.c (symbol_class_set)
4319 (symbol_user_token_number_set): New.
4320 * src/reader.c (parse_token_decl): Use them.
4321 Use a switch instead of ifs.
4322 Use a single argument.
4323
43242002-06-10 Akim Demaille <akim@epita.fr>
4325
4326 Remove `%thong' support as it is undocumented, unused, duplicates
4327 `%token's job, and creates useless e-mail traffic with people who
4328 want to know what it is, why it is undocumented, unused, and
4329 duplicates `%token's job.
4330
4331 * src/reader.c (parse_thong_decl): Remove.
4332 * src/options.c (option_table): Remove "thong".
4333 * src/lex.h (tok_thong): Remove.
4334
43352002-06-10 Akim Demaille <akim@epita.fr>
4336
4337 * src/symtab.c, src/symtab.c (symbol_type_set)
4338 (symbol_precedence_set): New.
4339 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4340 (value_components_used): Remove, unused.
4341
43422002-06-09 Akim Demaille <akim@epita.fr>
4343
4344 Move symbols handling code out of the reader.
4345
4346 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4347 (axiom): Move to...
4348 * src/symtab.h, src/symtab.c: here.
4349
4350 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4351 * src/reader.c (startval): Rename as...
4352 * src/symtab.h, src/symtab.c (startsymbol): this.
4353 * src/reader.c: Adjust.
4354
4355 * src/reader.c (symbol_check_defined, symbol_make_alias)
4356 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4357 (token_translations_init)
4358 Move to...
4359 * src/symtab.c: here.
4360 * src/reader.c (packsymbols): Move to...
4361 * src/symtab.h, src/symtab.c (symbols_pack): here.
4362 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4363 argument.
4364
43652002-06-03 Akim Demaille <akim@epita.fr>
4366
4367 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4368 then statements.
4369
43702002-06-03 Akim Demaille <akim@epita.fr>
4371
4372 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4373 structs with non literals.
4374 * src/scan-skel.l: never-interactive.
4375 * src/conflicts.c (enum conflict_resolution_e): No trailing
4376 comma.
4377 * src/getargs.c (usage): Split long literal strings.
4378 Reported by Hans Aberg.
4379
43802002-05-28 Akim Demaille <akim@epita.fr>
4381
4382 * data/bison.c++: Use C++ ostreams.
4383 (cdebug_): New member.
4384
43852002-05-28 Akim Demaille <akim@epita.fr>
4386
4387 * src/output.c (output_skeleton): Be sure to allocate enough room
4388 for `/' _and_ for `\0' in full_skeleton.
4389
43902002-05-28 Akim Demaille <akim@epita.fr>
4391
4392 * data/bison.c++: Catch up with bison.simple:
4393 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4394 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4395 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4396 and popping traces.
4397
43982002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4399
4400 * src/output.c (output_skeleton): Put an explicit path in front of
4401 the skeleton file name, rather than relying on the -I directory,
4402 to partially alleviate effects of having a skeleton file lying around
4403 in the current directory.
4404
44052002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4406
4407 * src/conflicts.c (log_resolution): Correct typo:
4408 obstack_printf should be obstack_fgrow1.
4409
44102002-05-26 Akim Demaille <akim@epita.fr>
4411
4412 * src/state.h (state_t): `solved_conflicts' is a new member.
4413 * src/LR0.c (new_state): Set it to 0.
4414 * src/conflicts.h, src/conflicts.c (print_conflicts)
4415 (free_conflicts, solve_conflicts): Rename as...
4416 (conflicts_print, conflicts_free, conflicts_solve): these.
4417 Adjust callers.
4418 * src/conflicts.c (enum conflict_resolution_e)
4419 (solved_conflicts_obstack): New, used by...
4420 (log_resolution): this.
4421 Adjust to attach the conflict resolution to each state.
4422 Complete the description with the precedence/associativity
4423 information.
4424 (resolve_sr_conflict): Adjust.
4425 * src/print.c (print_state): Output its solved_conflicts.
4426 * tests/conflicts.at (Unresolved SR Conflicts)
4427 (Solved SR Conflicts): Exercise --report=all.
4428
44292002-05-26 Akim Demaille <akim@epita.fr>
4430
4431 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4432 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4433 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4434 (token_number_t, item_number_as_token_number)
4435 (token_number_as_item_number, muscle_insert_token_number_table):
4436 Rename as...
4437 (symbol_number_t, item_number_as_symbol_number)
4438 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4439 these, since it is more appropriate.
4440
44412002-05-26 Akim Demaille <akim@epita.fr>
4442
4443 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4444 `Error:' lines.
4445 * data/bison.simple (yystos) [YYDEBUG]: New.
4446 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4447 error recovery.
4448 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4449
44502002-05-25 Akim Demaille <akim@epita.fr>
4451
4452 * doc/bison.texinfo (Debugging): Split into...
4453 (Tracing): this new section, its former contents, and...
4454 (Understanding): this new section.
4455 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4456 by...
4457 (report_flag): this.
4458 Adjust all dependencies.
4459 (report_args, report_types, report_argmatch): New.
4460 (usage, getargs): Report/support -r, --report.
4461 * src/options.h
4462 (struct option_table_struct): Rename as..,
4463 (struct option_table_s): this.
4464 Rename the `set_flag' member to `flag' to match with getopt_long's
4465 struct.
4466 * src/options.c (option_table): Split verbose into an entry for
4467 %verbose, and another for --verbose.
4468 Support --report/-r, so remove -r from the obsolete --raw.
4469 * src/print.c: Attach full item sets and lookaheads reports to
4470 report_flag instead of trace_flag.
4471 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4472
44732002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4474 and Paul Eggert <eggert@twinsun.com>
4475
4476 * data/bison.simple (yyparse): Correct error handling to conform to
4477 POSIX and yacc. Specifically, after syntax error is discovered,
4478 do not reduce further before shifting the error token.
4479 Clean up the code a bit by removing the labels yyerrdefault,
4480 yyerrhandle, yyerrpop.
4481 * NEWS: Document the above.
4482
44832002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4484
4485 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4486 type; it isn't always big enough, since it doesn't necessarily
4487 include non-terminals.
4488 (yytranslate): Expand definition of yy_token_number_type, so that
4489 the latter can be removed.
4490 (yy_token_number_type): Remove, only one use.
4491 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4492 don't use TokenNumberType as element type.
4493
4494 * tests/regression.at: Modify expected output to agree with change
4495 to yyr1 and yytranslate.
4496
44972002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4498
4499 * src/reader.c (parse_action): Use copy_character instead of
4500 obstack_1grow.
4501
45022002-05-13 Akim Demaille <akim@epita.fr>
4503
4504 * tests/regression.at (Token definitions): Prototype yylex and
4505 yyerror.
4506
45072002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4508
4509 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
4510 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4511 32-bit arithmetic.
4512 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4513
45142002-05-07 Akim Demaille <akim@epita.fr>
4515
4516 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4517 avoid GCC warnings.
4518
45192002-05-07 Akim Demaille <akim@epita.fr>
4520
4521 Kill GCC warnings.
4522
4523 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4524 over the RHS of each rule.
4525 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4526 * src/state.h (state_t): Member `nitems' is unsigned short.
4527 * src/LR0.c (get_state): Adjust.
4528 * src/reader.c (packgram): Likewise.
4529 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4530 `Type'.
4531 (muscle_insert_int_table): Remove, unused.
4532 (prepare_rules): Remove `max'.
4533
45342002-05-06 Akim Demaille <akim@epita.fr>
4535
4536 * src/closure.c (print_firsts): Display of the symbol tags.
4537 (bitmatrix_print): Move to...
4538 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4539 here.
4540 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4541
45422002-05-06 Akim Demaille <akim@epita.fr>
4543
4544 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4545 hash_do_for_each.
4546
45472002-05-06 Akim Demaille <akim@epita.fr>
4548
4549 * src/LR0.c (new_state, get_state): Instead of using the global
4550 `kernel_size' and `kernel_base', have two new arguments:
4551 `core_size' and `core'.
4552 Adjust callers.
4553
45542002-05-06 Akim Demaille <akim@epita.fr>
4555
4556 * src/reader.c (packgram): No longer end `ritem' with a 0
4557 sentinel: it is not used.
4558
45592002-05-05 Akim Demaille <akim@epita.fr>
4560
4561 New experimental feature: display the lookaheads in the report and
4562 graph.
4563
4564 * src/print (print_core): When --trace-flag, display the rules
4565 lookaheads.
4566 * src/print_graph.c (print_core): Likewise.
4567 Swap the arguments.
4568 Adjust caller.
4569
45702002-05-05 Akim Demaille <akim@epita.fr>
4571
4572 * tests/torture.at (Many lookaheads): New test.
4573
45742002-05-05 Akim Demaille <akim@epita.fr>
4575
4576 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4577 (GENERATE_MUSCLE_INSERT_TABLE): this.
4578 (output_int_table, output_unsigned_int_table, output_short_table)
4579 (output_token_number_table, output_item_number_table): Replace with...
4580 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4581 (muscle_insert_short_table, muscle_insert_token_number_table)
4582 (muscle_insert_item_number_table): these.
4583 Adjust all callers.
4584 (prepare_tokens): Don't free `translations', since...
4585 * src/reader.h, src/reader.c (grammar_free): do it.
4586 Move to...
4587 * src/gram.h, src/gram.c (grammar_free): here.
4588 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4589 b4_translate_max.
4590
45912002-05-05 Akim Demaille <akim@epita.fr>
4592
4593 * src/output.c (output_unsigned_int_table): New.
4594 (prepare_rules): `i' is unsigned.
4595 `prhs', `rline', `r2' are unsigned int.
4596 Rename muscle `rhs_number_max' as `rhs_max'.
4597 Output muscles `prhs_max', `rline_max', and `r2_max'.
4598 Free rline and r1.
4599 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4600 to compute types instead of constant types.
4601 * tests/regression.at (Web2c Actions): Adjust.
4602
46032002-05-04 Akim Demaille <akim@epita.fr>
4604
4605 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4606 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4607 Adjust dependencies.
4608 * src/output.c (token_definitions_output): Be sure not to output a
4609 `#define 'a'' when fed with `%token 'a' "a"'.
4610 * tests/regression.at (Token definitions): New.
4611
46122002-05-03 Paul Eggert <eggert@twinsun.com>
4613
4614 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4615 for K&R C.
4616
46172002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4618
4619 * Makefile.am (SUBDIRS): Remove intl.
4620 (EXTRA_DIST): Add config/config.rpath.
4621
46222002-05-03 Akim Demaille <akim@epita.fr>
4623
4624 * data/bison.simple (m4_if): Don't output empty enums.
4625 And actually, output valid enum definitions :(.
4626
46272002-05-03 Akim Demaille <akim@epita.fr>
4628
4629 * configure.bat: Remove, completely obsolete.
4630 * Makefile.am (EXTRA_DIST): Adjust.
4631 Don't distribute config.rpath...
4632 * config/Makefile.am (EXTRA_DIST): Do it.
4633
46342002-05-03 Akim Demaille <akim@epita.fr>
4635
4636 * configure.in (GETTEXT_VERSION): New.
4637 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4638
46392002-05-03 Akim Demaille <akim@epita.fr>
4640
4641 * data/bison.simple (b4_token_enum): New.
4642 (b4_token_defines): Use it to output tokens both as #define and
4643 enums.
4644 Suggested by Paul Eggert.
4645 * src/output.c (token_definitions_output): Don't output spurious
4646 white spaces.
4647
46482002-05-03 Akim Demaille <akim@epita.fr>
4649
4650 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4651
46522002-05-02 Robert Anisko <robert@lrde.epita.fr>
4653
4654 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4655 Update the stack class, give a try to deque as the default container.
4656
46572002-05-02 Akim Demaille <akim@epita.fr>
4658
4659 * data/bison.simple (yyparse): Do not implement @$ = @1.
4660 (YYLLOC_DEFAULT): Adjust to do it.
4661 * doc/bison.texinfo (Location Default Action): Fix.
4662
46632002-05-02 Akim Demaille <akim@epita.fr>
4664
4665 * src/reader.c (parse_braces): Merge into...
4666 (parse_action): this.
4667
46682002-05-02 Akim Demaille <akim@epita.fr>
4669
4670 * configure.in (ALL_LINGUAS): Remove.
4671 * po/LINGUAS, hr.po: New.
4672
46732002-05-02 Akim Demaille <akim@epita.fr>
4674
4675 Remove the so called hairy (semantic) parsers.
4676
4677 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4678 * src/gram.h, src/gram.c (semantic_parser): Remove.
4679 (rule_t): Remove the guard and guard_line members.
4680 * src/lex.h (token_t): remove tok_guard.
4681 * src/options.c (option_table): Remove %guard and %semantic_parser
4682 support.
4683 * src/output.c, src/output.h (guards_output): Remove.
4684 (prepare): Adjust.
4685 (token_definitions_output): Don't output the `T'
4686 tokens (???).
4687 (output_skeleton): Don't output the guards.
4688 * src/files.c, src/files.c (attrsfile): Remove.
4689 * src/reader.c (symbol_list): Remove the guard and guard_line
4690 members.
4691 Adjust dependencies.
4692 (parse_guard): Remove.
4693 * data/bison.hairy: Remove.
4694 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4695 BISON_HAIRY.
4696
46972002-05-02 Akim Demaille <akim@epita.fr>
4698
4699 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4700 (parse_guard): Rename the formal argument `stack_offset' as
4701 `rule_length', which is more readable.
4702 Adjust callers.
4703 (copy_at, copy_dollar): Instead of outputting the hard coded
4704 values of $$, $n and so forth, output invocation to b4_lhs_value,
4705 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
4706 Note: this patch partially drops `semantic-parser' support: it
4707 always does `rule_length - n', where semantic parsers ought to
4708 always use `-n'.
4709 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4710 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4711
47122002-05-02 Akim Demaille <akim@epita.fr>
4713
4714 * configure.in (AC_INIT): Bump to 1.49b.
4715 (AM_INIT_AUTOMAKE): Short invocation.
4716
47172002-05-02 Akim Demaille <akim@epita.fr>
4718
4719 Version 1.49a.
4720
47212002-05-01 Akim Demaille <akim@epita.fr>
4722
4723 * src/skeleton.h: Remove.
4724
47252002-05-01 Akim Demaille <akim@epita.fr>
4726
4727 * src/skeleton.h: Fix the #endif.
4728 Reported by Magnus Fromreide.
4729
47302002-04-26 Paul Eggert <eggert@twinsun.com>
4731
4732 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4733 Define if we define YYSTYPE and YYLTYPE, respectively.
4734 (YYCOPY): Fix [] quoting problem in the non-GCC case.
4735
47362002-04-25 Robert Anisko <robert@lrde.epita.fr>
4737
4738 * src/scan-skel.l: Postprocess quadrigraphs.
4739
4740 * src/reader.c (copy_character): New function, used to output
4741 single characters while replacing `[' and `]' with quadrigraphs, to
4742 avoid troubles with M4 quotes.
4743 (copy_comment): Output characters with copy_character.
4744 (read_additionnal_code): Likewise.
4745 (copy_string2): Likewise.
4746 (copy_definition): Likewise.
4747
4748 * tests/calc.at: Exercise M4 quoting.
4749
47502002-04-25 Akim Demaille <akim@epita.fr>
4751
4752 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4753 between `!' and the command.
4754 Reported by Paul Eggert.
4755
47562002-04-24 Robert Anisko <robert@lrde.epita.fr>
4757
4758 * tests/calc.at: Exercise prologue splitting.
4759
4760 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4761 `b4_post_prologue' instead of `b4_prologue'.
4762
4763 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4764 muscles.
4765 (output): Free pre_prologue_obstack and post_prologue_obstack.
4766 * src/files.h, src/files.c (attrs_obstack): Remove.
4767 (pre_prologue_obstack, post_prologue_obstack): New.
4768 * src/reader.c (copy_definition): Add a parameter to specify the
4769 obstack to fill, instead of using attrs_obstack unconditionally.
4770 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4771 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4772
47732002-04-23 Paul Eggert <eggert@twinsun.com>
4774
4775 * data/bison.simple: Remove unnecessary commentary and white
4776 space differences from 1_29-branch.
4777 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4778
4779 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4780 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4781 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4782 constructors or destructors.
4783
4784 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4785
47862002-04-23 Akim Demaille <akim@epita.fr>
4787
4788 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4789 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4790 location with columns.
4791 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4792 All reported by Paul Eggert.
4793
47942002-04-22 Akim Demaille <akim@epita.fr>
4795
4796 * src/reduce.c (dump_grammar): Move to...
4797 * src/gram.h, src/gram.c (grammar_dump): here.
4798 Be sure to separate long item numbers.
4799 Don't read the members of a rule's prec if its nil.
4800
48012002-04-22 Akim Demaille <akim@epita.fr>
4802
4803 * src/output.c (table_size, table_grow): New.
4804 (MAXTABLE): Remove, replace uses with table_size.
4805 (pack_vector): Instead of dying when the table is too big, grow it.
4806
48072002-04-22 Akim Demaille <akim@epita.fr>
4808
4809 * data/bison.simple (yyr1): Its type is that of a token number.
4810 * data/bison.c++ (r1_): Likewise.
4811 * tests/regression.at (Web2c Actions): Adjust.
4812
48132002-04-22 Akim Demaille <akim@epita.fr>
4814
4815 * src/reader.c (token_translations_init): 256 is now the default
4816 value for the error token, i.e., it will be assigned another
4817 number if the user assigned 256 to one of her tokens.
4818 (reader): Don't force 256 to error.
4819 * doc/bison.texinfo (Symbols): Adjust.
4820 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4821 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4822 etc. instead of 10, 20, 30 (which was used to `jump' over error
4823 (256) and undefined (2)).
4824
48252002-04-22 Akim Demaille <akim@epita.fr>
4826
4827 Propagate more token_number_t.
4828
4829 * src/gram.h (token_number_as_item_number)
4830 (item_number_as_token_number): New.
4831 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4832 Use it to create output_item_number_table and
4833 output_token_number_table.
4834 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4835 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4836 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4837 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4838
48392002-04-22 Akim Demaille <akim@epita.fr>
4840
4841 * src/output.h, src/output.c (get_lines_number): Remove.
4842
48432002-04-19 Akim Demaille <akim@epita.fr>
4844
4845 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4846 as Lex/Flex'.
4847 (Debugging): More details about enabling the debugging features.
4848 (Table of Symbols): Describe $$, $n, @$, and @n.
4849 Suggested by Tim Josling.
4850
48512002-04-19 Akim Demaille <akim@epita.fr>
4852
4853 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4854
48552002-04-10 Akim Demaille <akim@epita.fr>
4856
4857 * src/system.h: Rely on HAVE_LIMITS_H.
4858 Suggested by Paul Eggert.
4859
48602002-04-09 Akim Demaille <akim@epita.fr>
4861
4862 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4863 full stderr, and strip it according to the bison options, instead
4864 of composing the error message from different bits.
4865 This makes it easier to check for several error messages.
4866 Adjust all the invocations.
4867 Add an invocation exercising the error token.
4868 Add an invocation demonstrating a stupid error message.
4869 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4870 Adjust the tests.
4871 Error message are for stderr, not stdout.
4872
48732002-04-09 Akim Demaille <akim@epita.fr>
4874
4875 * src/gram.h, src/gram.c (error_token_number): Remove, use
4876 errtoken->number.
4877 * src/reader.c (reader): Don't specify the user token number (2)
4878 for $undefined, as it uselessly prevents using it.
4879 * src/gram.h (token_number_t): Move to...
4880 * src/symtab.h: here.
4881 (state_t.number): Is a token_number_t.
4882 * src/print.c, src/reader.c: Use undeftoken->number instead of
4883 hard coded 2.
4884 (Even though this 2 is not the same as above: the number of the
4885 undeftoken remains being 2, it is its user token number which
4886 might not be 2).
4887 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
4888 `user_token_number_max'.
4889 Output `undef_token_number'.
4890 * data/bison.simple, data/bison.c++: Use them.
4891 Be sure to map invalid yylex return values to
4892 `undef_token_number'. This saves us from gratuitous SEGV.
4893
4894 * tests/conflicts.at (Solved SR Conflicts)
4895 (Unresolved SR Conflicts): Adjust.
4896 * tests/regression.at (Web2c Actions): Adjust.
4897
48982002-04-08 Akim Demaille <akim@epita.fr>
4899
4900 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
4901 Adding #line.
4902 Remove the duplicate `typedefs'.
4903 (RhsNumberType): Fix the declaration and various other typos.
4904 Use __ofile__.
4905 * data/bison.simple: Use __ofile__.
4906 * src/scan-skel.l: Handle __ofile__.
4907
49082002-04-08 Akim Demaille <akim@epita.fr>
4909
4910 * src/gram.h (item_number_t): New, the type of item numbers in
4911 RITEM. Note that it must be able to code symbol numbers as
4912 positive number, and the negation of rule numbers as negative
4913 numbers.
4914 Adjust all dependencies (pretty many).
4915 * src/reduce.c (rule): Remove this `short *' pointer: use
4916 item_number_t.
4917 * src/system.h (MINSHORT, MAXSHORT): Remove.
4918 Include `limits.h'.
4919 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
4920 (shortcpy): Remove.
4921 (MAXTABLE): Move to...
4922 * src/output.c (MAXTABLE): here.
4923 (prepare_rules): Use output_int_table to output rhs.
4924 * data/bison.simple, data/bison.c++: Adjust.
4925 * tests/torture.at (Big triangle): Move the limit from 254 to
4926 500.
4927 * tests/regression.at (Web2c Actions): Ajust.
4928
4929 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
4930 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
4931 passes, but produces negative #line number, once fixed, GCC is
4932 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
4933 C), it passes.
4934 * src/state.h (state_h): Code input lines on ints, not shorts.
4935
49362002-04-08 Akim Demaille <akim@epita.fr>
4937
4938 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
4939 and then the grammar.
4940
49412002-04-08 Akim Demaille <akim@epita.fr>
4942
4943 * src/system.h: No longer using strndup.
4944
49452002-04-07 Akim Demaille <akim@epita.fr>
4946
4947 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
4948 * src/output.c (output_table_data): Return the longest number.
4949 (prepare_tokens): Output `token_number_max').
4950 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
4951 New.
4952 Use them to define yy_token_number_type/TokenNumberType.
4953 Use this type for yytranslate.
4954 * tests/torture.at (Big triangle): Push the limit from 124 to
4955 253.
4956 * tests/regression.at (Web2c Actions): Adjust.
4957
49582002-04-07 Akim Demaille <akim@epita.fr>
4959
4960 * tests/torture.at (Big triangle): New.
4961 (GNU AWK Grammar, GNU Cim Grammar): Move to...
4962 * tests/existing.at: here.
4963
49642002-04-07 Akim Demaille <akim@epita.fr>
4965
4966 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
4967 nritems.
4968 Adjust dependencies.
4969
49702002-04-07 Akim Demaille <akim@epita.fr>
4971
4972 * src/reader.c: Normalize increments to prefix form.
4973
49742002-04-07 Akim Demaille <akim@epita.fr>
4975
4976 * src/reader.c, symtab.c: Remove debugging code.
4977
49782002-04-07 Akim Demaille <akim@epita.fr>
4979
4980 Rename all the `bucket's as `symbol_t'.
4981
4982 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
4983 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
4984 * src/symtab.c, src/symtab.h (bucket): Rename as...
4985 (symbol_t): this.
4986 (symbol_list_new, bucket_check_defined, bucket_make_alias)
4987 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
4988 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4989 (buckets_new, buckets_free, buckets_do): Rename as...
4990 (symbol_list_new, symbol_check_defined, symbol_make_alias)
4991 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4992 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
4993 (symbols_new, symbols_free, symbols_do): these.
4994
49952002-04-07 Akim Demaille <akim@epita.fr>
4996
4997 Use lib/hash for the symbol table.
4998
4999 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
5000 EOF.
5001 * src/lex.c (lex): Set the `number' member of new terminals.
5002 * src/reader.c (bucket_check_defined, bucket_make_alias)
5003 (bucket_check_alias_consistence, bucket_translation): New.
5004 (reader, grammar_free, readgram, token_translations_init)
5005 (packsymbols): Adjust.
5006 (reader): Number the predefined tokens.
5007 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
5008 for predefined tokens.
5009 * src/symtab.h (bucket): Remove all the hash table related
5010 members.
5011 * src/symtab.c (symtab): Replace by...
5012 (bucket_table): this.
5013 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5014 (buckets_new, buckets_do): New.
5015
50162002-04-07 Akim Demaille <akim@epita.fr>
5017
5018 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
5019 (start_symbol, max_user_token_number, semantic_parser)
5020 (error_token_number): Initialize.
5021 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
5022 Initialize.
5023 (reader): Don't.
5024 (errtoken, eoftoken, undeftoken, axiom): Extern.
5025
50262002-04-07 Akim Demaille <akim@epita.fr>
5027
5028 * src/gram.h (rule_s): prec and precsym are now pointers
5029 to the bucket giving the priority/associativity.
5030 Member `associativity' removed: useless.
5031 * src/reduce.c, src/conflicts.c: Adjust.
5032
50332002-04-07 Akim Demaille <akim@epita.fr>
5034
5035 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
5036 Properly escape the symbols' TAG when outputting them.
5037
50382002-04-07 Akim Demaille <akim@epita.fr>
5039
5040 * src/lalr.h (LA): Is a bitsetv, not bitset*.
5041
50422002-04-07 Akim Demaille <akim@epita.fr>
5043
5044 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
5045 (LArule): this, which is an array to rule_t*.
5046 * src/print.c, src/conflicts.c: Adjust.
5047
50482002-04-07 Akim Demaille <akim@epita.fr>
5049
5050 * src/gram.h (rule_t): Rename `number' as `user_number'.
5051 `number' is a new member.
5052 Adjust dependencies.
5053 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
5054
50552002-04-07 Akim Demaille <akim@epita.fr>
5056
5057 As a result of the previous patch, it is no longer needed
5058 to reorder ritem itself.
5059
5060 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
5061
50622002-04-07 Akim Demaille <akim@epita.fr>
5063
5064 Be sure never to walk through RITEMS, but use only data related to
5065 the rules themselves. RITEMS should be banished.
5066
5067 * src/output.c (output_token_translations): Rename as...
5068 (prepare_tokens): this.
5069 In addition to `translate', prepare the muscles `tname' and
5070 `toknum', which were handled by...
5071 (output_rule_data): this.
5072 Remove, and move the remainder of its outputs into...
5073 (prepare_rules): this new routines, which also merges content from
5074 (output_gram): this.
5075 (prepare_rules): Be sure never to walk through RITEMS.
5076 (output_stos): Rename as...
5077 (prepare_stos): this.
5078 (output): Always invoke prepare_states, after all, just don't use it
5079 in the output if you don't need it.
5080
50812002-04-07 Akim Demaille <akim@epita.fr>
5082
5083 * src/LR0.c (new_state): Display `nstates' as the name of the
5084 newly created state.
5085 Adjust to initialize first_state and last_state if needed.
5086 Be sure to distinguish the initial from the final state.
5087 (new_states): Create the itemset of the initial state, and use
5088 new_state.
5089 * src/closure.c (closure): Now that the initial state has its
5090 items properly set, there is no need for a special case when
5091 creating `ruleset'.
5092
5093 As a result, now the rule 0, reducing to $axiom, is visible in the
5094 outputs. Adjust the test suite.
5095
5096 * tests/conflicts.at (Solved SR Conflicts)
5097 (Unresolved SR Conflicts): Adjust.
5098 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5099 * tests/conflicts.at (S/R in initial): New.
5100
51012002-04-07 Akim Demaille <akim@epita.fr>
5102
5103 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5104 the RHS of the rules.
5105 * src/output.c (output_gram): Likewise.
5106
51072002-04-07 Akim Demaille <akim@epita.fr>
5108
5109 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5110 bucket.
5111 Adjust all dependencies.
5112 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5113 `number' of the buckets too.
5114 * src/gram.h: Include `symtab.h'.
5115 (associativity): Move to...
5116 * src/symtab.h: here.
5117 No longer include `gram.h'.
5118
51192002-04-07 Akim Demaille <akim@epita.fr>
5120
5121 * src/gram.h, src/gram.c (rules_rhs_length): New.
5122 (ritem_longest_rhs): Use it.
5123 * src/gram.h (rule_t): `number' is a new member.
5124 * src/reader.c (packgram): Set it.
5125 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5126 the end of `rules', and count them out of `nrules'.
5127 (reduce_output, dump_grammar): Adjust.
5128 * src/print.c (print_grammar): It is no longer needed to check for
5129 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5130 * tests/reduce.at (Reduced Automaton): New test.
5131
51322002-04-07 Akim Demaille <akim@epita.fr>
5133
5134 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5135 lacking `+ 1' to nrules, Bison reported as useless a token if it
5136 was used solely to set the precedence of the last rule...
5137
51382002-04-07 Akim Demaille <akim@epita.fr>
5139
5140 * data/bison.c++, data/bison.simple: Don't output the current file
5141 name in #line, to avoid useless diffs between two identical
5142 outputs under different names.
5143
51442002-04-07 Akim Demaille <akim@epita.fr>
5145
5146 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5147 Normalize loops to using `< nrules + 1', not `<= nrules'.
5148
51492002-04-07 Akim Demaille <akim@epita.fr>
5150
5151 * TODO: Update.
5152
51532002-04-07 Akim Demaille <akim@epita.fr>
5154
5155 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5156 bucket.value as bucket.number.
5157
51582002-04-07 Akim Demaille <akim@epita.fr>
5159
5160 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5161 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5162 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5163 RHS, instead of being an index in RITEMS.
5164
51652002-04-04 Paul Eggert <eggert@twinsun.com>
5166
5167 * doc/bison.texinfo: Update copyright date.
5168 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5169 (Symbols): Warn about running Bison in one character set,
5170 but compiling and/or running in an incompatible one.
5171 Warn about character code 256, too.
5172
51732002-04-03 Paul Eggert <eggert@twinsun.com>
5174
5175 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5176 YYERROR_VERBOSE is nonzero, not whether it is defined.
5177
5178 Merge changes from bison-1_29-branch.
5179
51802002-03-20 Paul Eggert <eggert@twinsun.com>
5181
5182 Merge fixes from Debian bison_1.34-1.diff.
5183
5184 * configure.in (AC_PREREQ): 2.53.
5185
51862002-03-20 Akim Demaille <akim@epita.fr>
5187
5188 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5189
51902002-03-19 Paul Eggert <eggert@twinsun.com>
5191
5192 * src/bison.simple (YYCOPY): New macro.
5193 (YYSTACK_RELOCATE): Use it.
5194 Remove Type arg; no longer needed. All callers changed.
5195 (yymemcpy): Remove; no longer needed.
5196
5197 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5198 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5199
52002002-03-19 Akim Demaille <akim@epita.fr>
5201
5202 Test and fix the #line outputs.
5203
5204 * tests/atlocal.at (GCC): New.
5205 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5206 (Prologue synch line, ,%union synch line, Postprologue synch line)
5207 (Action synch line, Epilogue synch line): New tests.
5208 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5209 * data/bison.simple, data/bison.c++: Use it.
5210
52112002-03-19 Akim Demaille <akim@epita.fr>
5212
5213 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5214 (Solved SR Conflicts, %expect not enough, %expect right)
5215 (%expect too much): Move to...
5216 * tests/conflicts.at: this new file.
5217
52182002-03-19 Akim Demaille <akim@epita.fr>
5219
5220 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5221 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5222 that we can move to enums for instance.
5223 * src/output.c (token_definitions_output): Output a list of
5224 `token-name, token-number' instead of the #define.
5225 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5226
52272002-03-14 Akim Demaille <akim@epita.fr>
5228
5229 Use Gettext 0.11.1.
5230
52312002-03-09 Robert Anisko <robert@lrde.epita.fr>
5232
5233 * data/bison.c++: Make the user able to add members to the generated
5234 parser by subclassing.
5235
52362002-03-05 Robert Anisko <robert@lrde.epita.fr>
5237
5238 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5239 a character.
5240 Reported by Nicolas Tisserand and Nicolas Burrus.
5241
52422002-03-04 Robert Anisko <robert@lrde.epita.fr>
5243
5244 * src/reader.c: Warn about lacking semi-colons, do not complain.
5245
52462002-03-04 Robert Anisko <robert@lrde.epita.fr>
5247
5248 * data/bison.c++: Remove a debug line.
5249
52502002-03-04 Robert Anisko <robert@lrde.epita.fr>
5251
5252 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5253 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5254 provide a default implementation.
5255
52562002-03-04 Akim Demaille <akim@epita.fr>
5257
5258 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5259 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5260 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5261 * tests/semantic.at (Parsing Guards): Similarly.
5262 * src/reader.at (readgram): Complain if the last rule is not ended
5263 with a semi-colon.
5264
52652002-03-04 Akim Demaille <akim@epita.fr>
5266
5267 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5268 * src/closure.c: here.
5269 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5270 RTC.
5271 * src/warshall.h, src/warshall.c: Remove.
5272 * tests/sets.at (Broken Closure): Adjust.
5273
52742002-03-04 Akim Demaille <akim@epita.fr>
5275
5276 * src/output.c (output_skeleton): tempdir is const.
5277 bytes_read is unused.
5278
52792002-03-04 Akim Demaille <akim@epita.fr>
5280
5281 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5282 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5283 Update.
5284 From Michael Hayes.
5285
52862002-03-04 Akim Demaille <akim@epita.fr>
5287
5288 * src/closure.c (closure): `r' is unused.
5289
52902002-03-04 Akim Demaille <akim@epita.fr>
5291
5292 * tests/sets.at (Broken Closure): Add the ending `;'.
5293 * src/reader.at (readgram): Complain if a rule is not ended with a
5294 semi-colon.
5295
52962002-03-04 Akim Demaille <akim@epita.fr>
5297
5298 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5299 (count_sr_conflicts): Use bitset_count.
5300 * src/reduce.c (inaccessable_symbols): Ditto.
5301 (bits_size): Remove.
5302 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5303
53042002-03-04 Akim Demaille <akim@epita.fr>
5305
5306 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5307 * src/reduce.c: Remove the `bitset_zero's following the
5308 `bitset_create's, as now it is performed by the latter.
5309
53102002-03-04 Akim Demaille <akim@epita.fr>
5311
5312 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5313 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5314 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5315 latest sources from Michael.
5316
53172002-03-04 Akim Demaille <akim@epita.fr>
5318
5319 * src/output.c (output): Don't free the grammar.
5320 * src/reader.c (grammar_free): New.
5321 * src/main.c (main): Call it and don't free symtab here.
5322
53232002-03-04 Akim Demaille <akim@epita.fr>
5324
5325 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5326 before returning.
5327 Reported by Benoit Perrot.
5328
53292002-03-04 Akim Demaille <akim@epita.fr>
5330
5331 Use bitset operations when possible, not loops over bits.
5332
5333 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5334 bitset_or.
5335 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5336 * src/reduce.c (useless_nonterminals): Formatting changes.
5337 * src/warshall.c (TC): Use bitset_or.
5338
53392002-03-04 Akim Demaille <akim@epita.fr>
5340
5341 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5342 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5343 Ditto.
5344
53452002-03-04 Akim Demaille <akim@epita.fr>
5346
5347 * src/lalr.c (F): Now a bitset*.
5348 Adjust all dependencies.
5349
53502002-03-04 Akim Demaille <akim@epita.fr>
5351
5352 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5353 Adjust all dependencies.
5354
53552002-03-04 Akim Demaille <akim@epita.fr>
5356
5357 * src/L0.c, src/LR0.h (nstates): Be size_t.
5358 Adjust comparisons (signed vs unsigned).
5359 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5360 bitset*.
5361 Adjust all dependencies.
5362
53632002-03-04 Akim Demaille <akim@epita.fr>
5364
5365 * src/closure.c (firsts): Now, also a bitset.
5366 Adjust all dependencies.
5367 (varsetsize): Remove, now unused.
5368 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5369
53702002-03-04 Akim Demaille <akim@epita.fr>
5371
5372 * src/print.c: Convert to use bitset.h, not hand coded iterations
5373 over ints.
5374
53752002-03-04 Akim Demaille <akim@epita.fr>
5376
5377 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5378
53792002-03-04 Akim Demaille <akim@epita.fr>
5380
5381 * src/closure.c (ruleset): Be a bitset.
5382 (rulesetsize): Remove.
5383
53842002-03-04 Akim Demaille <akim@epita.fr>
5385
5386 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5387 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5388 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5389 * src/closure.c (fderives): Be an array of bitsets.
5390
53912002-02-28 Robert Anisko <robert@lrde.epita.fr>
5392
5393 * data/bison.c++: Merge the two generated headers. Insert a copyright
5394 notice in each output file.
5395
53962002-02-28 Akim Demaille <akim@epita.fr>
5397
5398 * data/bison.c++: Copy the prologue of bison.simple to fetch
5399 useful M4 definitions, such as b4_header_guard.
5400
54012002-02-25 Akim Demaille <akim@epita.fr>
5402
5403 * src/getargs.c (version): Give the name of the authors, and use a
5404 translator friendly scheme for the bgr
5405 copyright notice.
5406
54072002-02-25 Akim Demaille <akim@epita.fr>
5408
5409 * src/output.c (header_output): Remove, now handled completely via
5410 M4.
5411
54122002-02-25 Akim Demaille <akim@epita.fr>
5413
5414 * m4/m4.m4: New, from CVS Autoconf.
5415 * configure.in: Invoke it.
5416 * src/output.c (output_skeleton): Use its result instead of the
5417 hard coded name.
5418
54192002-02-25 Akim Demaille <akim@epita.fr>
5420
5421 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5422 Fileutils 4.1.5.
5423 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5424 * src/output.c (output_skeleton): Use mkstemp to create a real
5425 temporary file.
5426 Move the filling of `skeleton' and its muscle to...
5427 (prepare): here.
5428 (output): Move the definition of the prologue muscle to...
5429 (prepare): here.
5430 * src/system.h (DEFAULT_TMPDIR): New.
5431
54322002-02-14 Paul Eggert <eggert@twinsun.com>
5433
5434 Remove the support for C++ namespace cleanliness; it was
5435 causing more problems than it was curing, since it didn't work
5436 properly on some nonstandard C++ compilers. This can wait
5437 for a proper C++ parser.
5438
5439 * NEWS: Document this.
5440 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5441 of C++, as it's treated like C now.
5442 * src/bison.simple (YYSTD): Remove.
5443 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5444 Treat C++ just like Standard C instead of trying to support
5445 namespace cleanliness.
5446
54472002-02-14 Akim Demaille <akim@epita.fr>
5448
5449 * tests/regression.at (else): Adjust to Andreas' change.
5450
54512002-02-14 Akim Demaille <akim@epita.fr>
5452
5453 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5454
54552002-02-13 Andreas Schwab <schwab@suse.de>
5456
5457 * src/output.c (output_rule_data): Don't output NULL, it might
5458 not be defined yet.
5459
54602002-02-11 Robert Anisko <robert@lrde.epita.fr>
5461
5462 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5463 (Copyright notice): Update.
5464
54652002-02-11 Akim Demaille <akim@epita.fr>
5466
5467 * tests/regression.at (%nonassoc and eof): Don't include
5468 nonportable headers.
5469
54702002-02-08 Robert Anisko <robert@lrde.epita.fr>
5471
5472 * data/bison.c++: Correct error recovery. Make the user able to
5473 initialize the starting location.
5474
54752002-02-07 Akim Demaille <akim@epita.fr>
5476
5477 * tests/input.at: New.
5478
54792002-02-07 Robert Anisko <robert@lrde.epita.fr>
5480
5481 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5482 more consistent when naming methods and variables. Put preprocessor
5483 directives around tables only needed for debugging.
5484
54852002-02-07 Robert Anisko <robert@lrde.epita.fr>
5486
5487 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5488 C++ parsers.
5489 (yy::b4_name::parse): Use print_.
5490
54912002-02-07 Robert Anisko <robert@lrde.epita.fr>
5492
5493 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5494
54952002-02-07 Robert Anisko <robert@lrde.epita.fr>
5496
5497 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5498 C++ parsers.
5499 (yy::b4_name::parse): Build verbose error messages, and use error_.
5500
55012002-02-06 Robert Anisko <robert@lrde.epita.fr>
5502
5503 * data/bison.c++: Fix m4 quoting in comments.
5504
55052002-02-06 Robert Anisko <robert@lrde.epita.fr>
5506
5507 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5508 not expanded by m4.
5509
55102002-02-05 Akim Demaille <akim@epita.fr>
5511
5512 * data/bison.c++: Adjust to the M4 back end.
5513 More is certainly needed.
5514
55152002-02-05 Akim Demaille <akim@epita.fr>
5516
5517 Give a try to M4 as a back end.
5518
5519 * lib/readpipe.c: New, from wdiff.
5520 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5521 BISON_HAIRY.
5522 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5523 specific values. Now it is m4 that performs the lookup.
5524 * src/parse-skel.y: Remove.
5525 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5526 * src/output.c (actions_output, guards_output)
5527 (token_definitions_output): No longer keeps track of the output
5528 line number, hence remove the second argument.
5529 (guards_output): Check against the guard member of a rule, not the
5530 action member.
5531 Adjust callers.
5532 (output_skeleton): Don't look for the skeleton location, let m4 do
5533 that.
5534 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5535 file will be used.
5536 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5537 (prepare): Given that for the time being changesyntax is not
5538 usable in M4, rename the muscles using `-' to `_'.
5539 Define `defines_flag', `output_parser_name' and `output_header_name'.
5540 * src/output.h (actions_output, guards_output)
5541 (token_definitions_output): Adjust prototypes.
5542 * src/scan-skel.l: Instead of scanning the skeletons, it now
5543 processes the output of m4: `__oline__' and `#output'.
5544 * data/bison.simple: Adjust to be used by M4(sugar).
5545 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5546 to date.
5547 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5548 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5549 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5550 shamelessly stolen from CVS Autoconf.
5551
55522002-02-05 Akim Demaille <akim@epita.fr>
5553
5554 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5555 * configure.in: Check for the declarations of free and malloc.
5556 * src/muscle_tab.c: Adjust.
5557
55582002-02-05 Akim Demaille <akim@epita.fr>
5559
5560 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5561 which have no values.
5562
55632002-02-05 Akim Demaille <akim@epita.fr>
5564
5565 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5566 * data/: here.
5567
55682002-01-29 Paul Eggert <eggert@twinsun.com>
5569
5570 * src/bison.simple (YYSIZE_T): Do not define merely because
5571 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5572 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5573
55742002-01-27 Akim Demaille <akim@epita.fr>
5575
5576 Fix `%nonassoc and eof'.
5577
5578 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5579 which were not properly copied! Replace
5580 memcpy (res->errs, src->errs, src->nerrs);
5581 with
5582 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5583 !!!
5584 * tests/regression.at (%nonassoc and eof): Adjust to newest
5585 Autotest: `.' is not in the PATH.
5586
55872002-01-27 Akim Demaille <akim@epita.fr>
5588
5589 * tests/sets.at (AT_EXTRACT_SETS): New.
5590 (Nullable): Use it.
5591 (Firsts): New.
5592
55932002-01-26 Akim Demaille <akim@epita.fr>
5594
5595 * tests/actions.at, tests/calc.at, tests/headers.at,
5596 * tests/torture.at: Adjust to the newest Autotest which no longer
5597 forces `.' in the PATH.
5598
55992002-01-25 Akim Demaille <akim@epita.fr>
5600
5601 * tests/regression.at (%nonassoc and eof): New.
5602 Suggested by Robert Anisko.
5603
56042002-01-24 Akim Demaille <akim@epita.fr>
5605
5606 Bison dumps core when trying to complain about broken input files.
5607 Reported by Cris van Pelt.
5608
5609 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5610 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5611 into...
5612 (Invalid inputs): Strengthen: exercise parse_percent_token.
5613
56142002-01-24 Robert Anisko <robert.anisko@epita.fr>
5615
5616 * src/Makefile.am: Add bison.c++.
5617 * src/bison.c++: New skeleton.
5618
56192002-01-21 Paolo Bonzini <bonzini@gnu.org>
5620
5621 * po/it.po: New.
5622
56232002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5624
5625 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5626
56272002-01-20 Marc Autret <marc@gnu.org>
5628
5629 * src/files.c (compute_output_file_names): Fix
5630
56312002-01-20 Marc Autret <marc@gnu.org>
5632
5633 * tests/output.at: New test.
5634 * src/files.c (compute_base_names): Don't map extensions when
5635 the YACC flag is set, use defaults.
5636 Reported by Evgeny Stambulchik.
5637
56382002-01-20 Marc Autret <marc@gnu.org>
5639
5640 * src/system.h: Need to define __attribute__ away for non-GCC
5641 compilers as well (i.e. the vendor C compiler).
5642 Suggested by Albert Chin-A-Young.
5643
56442002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5645
5646 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5647 canonical definition.
5648 * src/system.h: Use the canonical definition for PARAMS (avoids
5649 a conflict with the macro from lib/hash.h).
5650
56512002-01-11 Akim Demaille <akim@epita.fr>
5652
5653 * configure.in: Use AC_FUNC_STRNLEN.
5654 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
5655
56562002-01-09 Akim Demaille <akim@epita.fr>
5657
5658 * src/files.c, src/files.h (output_infix): New.
5659 (tab_extension): Remove.
5660 (compute_base_names): Compute the former, drop the latter.
5661 * src/output.c (prepare): Insert the muscles `output-infix', and
5662 `output-suffix'.
5663 * src/parse-skel.y (string, string.1): New.
5664 (section.header): Use it.
5665 (section.yacc): Remove.
5666 (prefix): Remove too.
5667 * src/scan-skel.l: Adjust.
5668 * src/bison.simple, src/bison.hairy: Adjust.
5669
56702002-01-09 Akim Demaille <akim@epita.fr>
5671
5672 * configure.in (WERROR_CFLAGS): Compute it.
5673 * src/Makefile.am (CFLAGS): Pass it.
5674 * tests/atlocal.in (CFLAGS): Idem.
5675 * src/files.c: Fix a few warnings.
5676 (get_extension_index): Remove, unused.
5677
56782002-01-08 Akim Demaille <akim@epita.fr>
5679
5680 * src/getargs.c (AS_FILE_NAME): New.
5681 (getargs): Use it to convert DOSish file names.
5682 * src/files.c (base_name): Rename as full_base_name to avoid
5683 clashes with `base_name ()'.
5684 (filename_split): New.
5685 (compute_base_names): N-th rewrite, using filename_split.
5686
56872002-01-08 Akim Demaille <akim@epita.fr>
5688
5689 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5690 New, stolen from the Fileutils 4.1.
5691 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5692 * configure.in: Check for the presence of memrchr, and of its
5693 prototype.
5694
56952002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5696
5697 * lib/hash.h (__P): Added definition for this macro.
5698 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5699 BUILT_SOURCES, to ensure they are generated first.
5700 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5701 %error-verbose to allow bootstrapping with bison 1.30x.
5702
57032002-01-06 Akim Demaille <akim@epita.fr>
5704
5705 * src/reader.c (parse_braces): Don't fetch the next char, the
5706 convention is to fetch on entry.
5707 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5708 'switch' without a following semicolon.
5709 * tests/regression.at (braces parsing): New.
5710
57112002-01-06 Akim Demaille <akim@epita.fr>
5712
5713 Bison is dead wrong in its RR conflict reports.
5714
5715 * tests/torture.at (GNU Cim Grammar): New.
5716 * src/conflicts.c (count_rr_conflicts): Fix.
5717
57182002-01-06 Akim Demaille <akim@epita.fr>
5719
5720 Creating package.m4 from configure.ac causes too many problems.
5721
5722 * tests/Makefile.am (package.m4): Create it by hand,
5723 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5724
57252002-01-06 Akim Demaille <akim@epita.fr>
5726
5727 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5728 skeleton.h.
5729
57302002-01-04 Paul Eggert <eggert@twinsun.com>
5731
5732 * doc/bison.texinfo (Debugging):
5733 Remove YYSTDERR; it's no longer defined or used.
5734 Also, s/cstdio.h/cstdio/.
5735
57362002-01-03 Akim Demaille <akim@epita.fr>
5737
5738 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5739
57402002-01-03 Akim Demaille <akim@epita.fr>
5741
5742 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5743 tracing code to --trace, wait for a better --trace option, with
5744 args.
5745
57462002-01-03 Akim Demaille <akim@epita.fr>
5747
5748 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5749 The ISO C++ standard is extremely clear about it: stderr is
5750 considered a macro, not a regular symbol (see table 94 `Header
5751 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5752 Therefore std:: does not apply to it. It still does with fprintf.
5753 Also, s/cstdio.h/cstdio/.
5754
57552002-01-03 Akim Demaille <akim@epita.fr>
5756
5757 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5758 for non system headers.
5759
57602002-01-02 Akim Demaille <akim@epita.fr>
5761
5762 Equip the skeleton chain with location tracking, runtime trace,
5763 pure parser and scanner.
5764
5765 * src/parse-skel.y: Request a pure parser, locations, and prefix
5766 renaming.
5767 (%union): Having several members with the same type does not help
5768 type mismatches, simplify.
5769 (YYPRINT, yyprint): New.
5770 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5771 (skel_error): this.
5772 Handle locations.
5773 * src/scan-skel.l: Adjust to these changes.
5774 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5775 (LOCATION_PRINT, skel_control_t): New.
5776
57772001-12-30 Akim Demaille <akim@epita.fr>
5778
5779 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5780 replace `gb' with BLANKS.
5781 * src/scan-skel.l: Adjust.
5782
57832001-12-30 Akim Demaille <akim@epita.fr>
5784
5785 * src/system.h: We don't need nor want bcopy.
5786 Throw away MS-DOS crap: we don't need getpid.
5787 * configure.in: We don't need strndup. It was even causing
5788 problems: because Flex includes the headers *before* us,
5789 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5790 not visible.
5791 * lib/xstrndup.c: New.
5792 * src/scan-skel.l: Use it.
5793 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5794 * src/parse-skel.y: Use %directives instead of #defines.
5795
57962001-12-30 Akim Demaille <akim@epita.fr>
5797
5798 * src/skeleton.h: New.
5799 * src/output.c (output_parser, output_master_parser): Remove, dead
5800 code.
5801 * src/output.h (get_lines_number, actions_output, guards_output)
5802 (token_definitions_output): Prototype them.
5803 * src/parse-skel.y: Add the license notice.
5804 Include output.h and skeleton.h.
5805 (process_skeleton): Returns void, and takes a single parameter.
5806 * src/scan-skel.l: Add the license notice.
5807 Include skeleton.h.
5808 Don't use %option yylineno: it seems that then Flex imagines
5809 REJECT has been used, and therefore it won't reallocate its
5810 buffers (which makes no other sense to me than a bug). It results
5811 in warnings for `unused: yy_flex_realloc'.
5812
58132001-12-30 Robert Anisko <robert.anisko@epita.fr>
5814
5815 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5816 (MUSCLE_INSERT_PREFIX): ...to there.
5817 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5818 (MUSCLE_INSERT_PREFIX): Move from here...
5819
5820 * src/bison.hairy: Add a section directive. Put braces around muscle
5821 names. This parser skeleton is still broken, but Bison should not
5822 choke on a bad muscle 'syntax'.
5823 * src/bison.simple: Add a section directive. Put braces around muscle
5824 names.
5825
5826 * src/files.h (strsuffix, stringappend): Add declarations.
5827 (tab_extension): Add declaration.
5828 (short_base_name): Add declaration.
5829
5830 * src/files.c (strsuffix, stringappend): No longer static. These
5831 functions are used in the skeleton parser.
5832 (tab_extension): New.
5833 (compute_base_names): Use the computations done in this function
5834 to guess if the generated parsers should have '.tab' in their
5835 names.
5836 (short_base_name): No longer static.
5837
5838 * src/output.c (output_skeleton): New.
5839 (output): Disable call to output_master_parser, and give a try to
5840 a new skeleton handling system.
5841 (guards_output, actions_output): No longer static.
5842 (token_definitions_output, get_lines_number): No longer static.
5843
5844 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5845
5846 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
5847 parse-skel.y.
5848
5849 * src/parse-skel.y: New file.
5850 * src/scan-skel.l: New file.
5851
58522001-12-29 Akim Demaille <akim@epita.fr>
5853
5854 %name-prefix is broken.
5855
5856 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5857 Adjust all dependencies.
5858 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5859 %name-prefix.
5860
5861 Renaming yylval but not yylloc is not consistent. Now we do.
5862
5863 * src/bison.simple: Prefix yylloc if used.
5864 * doc/bison.texinfo (Decl Summary): Document that.
5865
58662001-12-29 Akim Demaille <akim@epita.fr>
5867
5868 * doc/bison.texinfo: Promote `%long-directive' over
5869 `%long_directive'.
5870 Remove all references to fixed-output-files, yacc is enough.
5871
58722001-12-29 Akim Demaille <akim@epita.fr>
5873
5874 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
5875 user prologue. These are defaults.
5876 * tests/actions.at (Mid-rule actions): Make sure the user can
5877 define YYDEBUG and YYERROR_VERBOSE.
5878
58792001-12-29 Akim Demaille <akim@epita.fr>
5880
5881 * src/output.c (header_output): Don't forget to export YYLTYPE and
5882 yylloc.
5883 * tests/headers.at (export YYLTYPE): New, make sure it does.
5884 * tests/regression.at (%union and --defines, Invalid CPP headers):
5885 Move to...
5886 * tests/headers.at: here.
5887
58882001-12-29 Akim Demaille <akim@epita.fr>
5889
5890 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
5891
58922001-12-29 Akim Demaille <akim@epita.fr>
5893
5894 * tests/actions.at (Mid-rule actions): Output on a single line
5895 instead of several.
5896
58972001-12-29 Akim Demaille <akim@epita.fr>
5898
5899 * doc/bison.texinfo: Formatting changes.
5900
59012001-12-29 Akim Demaille <akim@epita.fr>
5902
5903 Don't store the token defs in a muscle, just be ready to output it
5904 on command. Now possible via `symbols'. Fixes a memory leak.
5905
5906 * src/output.c (token_definitions_output): New.
5907 (output_parser, header_output): Use it.
5908 * src/reader.c (symbols_save): Remove.
5909
59102001-12-29 Akim Demaille <akim@epita.fr>
5911
5912 * src/bison.simple: Do not provide a default for YYSTYPE and
5913 YYLTYPE before the user's prologue. Otherwise it's hardly... a
5914 default.
5915
59162001-12-29 Akim Demaille <akim@epita.fr>
5917
5918 Mid-rule actions are simply... ignored!
5919
5920 * src/reader.c (readgram): Be sure to attach mid-rule actions to
5921 the empty-rule associated to the dummy symbol, not to the host
5922 rule.
5923 * tests/actions.at (Mid-rule actions): New.
5924
59252001-12-29 Akim Demaille <akim@epita.fr>
5926
5927 Memory leak.
5928
5929 * src/reader.c (reader): Free grammar.
5930
59312001-12-29 Akim Demaille <akim@epita.fr>
5932
5933 Memory leak.
5934
5935 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
5936 since it allocates it for each state, although only one is needed.
5937 (allocate_storage): Do it here.
5938
59392001-12-29 Akim Demaille <akim@epita.fr>
5940
5941 * src/options.h, src/options.c (create_long_option_table): Rename
5942 as...
5943 (long_option_table_new): this, with a clearer prototype.
5944 (percent_table): Remove, unused,
5945 * src/getargs.c (getargs): Adjust.
5946
59472001-12-29 Akim Demaille <akim@epita.fr>
5948
5949 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
5950 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
5951 as states.
5952
59532001-12-29 Akim Demaille <akim@epita.fr>
5954
5955 * src/lalr.c (build_relations): Rename `states' as `states1'.
5956 Sorry, I don't understand exactly what it is, no better name...
5957
59582001-12-29 Akim Demaille <akim@epita.fr>
5959
5960 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
5961 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
5962 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
5963 as rules.
5964
59652001-12-29 Akim Demaille <akim@epita.fr>
5966
5967 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
5968 ago.
5969
59702001-12-29 Akim Demaille <akim@epita.fr>
5971
5972 * src/reader.c, src/reader.h (user_toknums): Remove.
5973 Adjust all users to use symbols[i]->user_token_number.
5974
59752001-12-29 Akim Demaille <akim@epita.fr>
5976
5977 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
5978 Adjust all users to use symbols[i]->prec or ->assoc.
5979
59802001-12-29 Akim Demaille <akim@epita.fr>
5981
5982 * src/reader.c, src/reader.h (tags): Remove.
5983 Adjust all users to use symbols[i]->tag.
5984
59852001-12-29 Akim Demaille <akim@epita.fr>
5986
5987 * src/gram.h, src/gram.c (symbols): New, similar to state_table
5988 and rule_table.
5989 * src/reader.c (packsymbols): Fill this table.
5990 Drop sprec.
5991 * src/conflicts.c (resolve_sr_conflict): Adjust.
5992 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
5993 single table.
5994 Use symbols[i]->tag instead of tags[i].
5995
59962001-12-29 Akim Demaille <akim@epita.fr>
5997
5998 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
5999 In addition, put a comment in there, to replace...
6000 * tests/regression.at (%union and C comments): Remove.
6001
60022001-12-29 Akim Demaille <akim@epita.fr>
6003
6004 * tests/regression.at (Web2c Actions): Blindly move the actual
6005 output as expected output. The contents *seem* right to me, but I
6006 can't pretend reading perfectly parser tables... Nonetheless, all
6007 the other tests pass correctly, the table look OK, even though the
6008 presence of `$axiom' is to be noted: AFAICS it is useless (but
6009 harmless).
6010
60112001-12-29 Akim Demaille <akim@epita.fr>
6012
6013 * src/reader.c (readgram): Don't add the rule 0 if there were no
6014 rules read. In other words, add it _after_ having performed
6015 grammar sanity checks.
6016 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
6017
60182001-12-29 Akim Demaille <akim@epita.fr>
6019
6020 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
6021 visible, and some states have now a different number.
6022
60232001-12-29 Akim Demaille <akim@epita.fr>
6024
6025 * src/reader.c (readgram): Bind the initial rule's lineno to that
6026 of the first rule.
6027 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
6028 (Solved SR Conflicts): Adjust rule 0's line number.
6029
60302001-12-29 Akim Demaille <akim@epita.fr>
6031
6032 Fix the `GAWK Grammar' failure.
6033
6034 * src/LR0.c (final_state): Initialize to -1 so that we do compute
6035 the reductions of the first state which was mistakenly confused
6036 with the final state because precisely final_state was initialized
6037 to 0.
6038 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
6039 now noticed by Bison.
6040 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
6041 have a reduction on $default.
6042
60432001-12-29 Akim Demaille <akim@epita.fr>
6044
6045 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
6046 rule line numbers.
6047 * src/closure.c (print_closure): Likewise.
6048 * src/derives.c (print_derives): Likewise.
6049 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
6050 now.
6051
60522001-12-29 Akim Demaille <akim@epita.fr>
6053
6054 * src/lalr.c (lookaheads_print): New.
6055 (lalr): Call it when --trace-flag.
6056 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
6057 are dumped.
6058
60592001-12-29 Akim Demaille <akim@epita.fr>
6060
6061 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
6062 when walking through ritem, even via rule->rhs.
6063 * src/reduce.c (dump_grammar, useful_production, reduce_output)
6064 (useful_production, useless_nonterminals): Likewise.
6065 (reduce_grammar_tables): Likewise, plus update nritems.
6066 * src/nullable.c (set_nullable): Likewise.
6067 * src/lalr.c (build_relations): Likewise.
6068 * tests/sets.at (Nullable): Adjust.
6069 Fortunately, now, the $axiom is no longer nullable.
6070
60712001-12-29 Akim Demaille <akim@epita.fr>
6072
6073 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6074 the 0-sentinel.
6075 * src/gram.c (ritem_longest_rhs): Likewise.
6076 * src/reduce.c (nonterminals_reduce): Likewise.
6077 * src/print_graph.c (print_graph): Likewise.
6078 * src/output.c (output_rule_data): Likewise.
6079 * src/nullable.c (set_nullable): Likewise.
6080
60812001-12-29 Akim Demaille <akim@epita.fr>
6082
6083 * src/output.c: Comment changes.
6084
60852001-12-27 Paul Eggert <eggert@twinsun.com>
6086
6087 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6088 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6089 Sparc, as they were causing more porting problems than the
6090 (minor) performance improvement was worth.
6091
6092 Also, catch up with 1.31's YYSTD.
6093
60942001-12-27 Akim Demaille <akim@epita.fr>
6095
6096 * src/output.c (output_gram): Rely on nritems, not the
6097 0-sentinel. See below.
6098 Use -1 as separator, not 0.
6099 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6100 Rely on -1 as separator in yyrhs, instead of 0.
6101 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6102 twice `Now at end of input', therefore there are two lines less to
6103 expect.
6104
61052001-12-27 Akim Demaille <akim@epita.fr>
6106
6107 * tests/regression.at (Unresolved SR Conflicts):
6108 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6109 below.
6110
61112001-12-27 Akim Demaille <akim@epita.fr>
6112
6113 * src/LR0.c (new_state): Recognize the final state by the fact it
6114 is reached by eoftoken.
6115 (insert_start_shifting_state, insert_eof_shifting_state)
6116 (insert_accepting_state, augment_automaton): Remove, since now
6117 these states are automatically computed from the initial state.
6118 (generate_states): Adjust.
6119 * src/print.c: When reporting a rule number to the user, substract
6120 1, so that the axiom rule is rule 0, and the first user rule is 1.
6121 * src/reduce.c: Likewise.
6122 * src/print_graph.c (print_core): For the time being, just as for
6123 the report, depend upon --trace-flags to dump the full set of
6124 items.
6125 * src/reader.c (readgram): Once the grammar read, insert the rule
6126 0: `$axiom: START-SYMBOL $'.
6127 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6128 number of the states has changed (the final state is no longer
6129 necessarily the last), catch up.
6130
61312001-12-27 Akim Demaille <akim@epita.fr>
6132
6133 Try to make the use of the eoftoken valid. Given that its value
6134 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6135 is used instead of > 0 where appropriate, (ii), depend upon nritems
6136 instead of the 0-sentinel.
6137
6138 * src/gram.h, src/gram.c (nritems): New.
6139 Expected to be duplication of nitems, but for the time being...
6140 * src/reader.c (packgram): Assert nritems and nitems are equal.
6141 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6142 * src/closure.c (print_closure, print_fderives): Likewise.
6143 * src/gram.c (ritem_print): Likewise.
6144 * src/print.c (print_core, print_grammar): Likewise.
6145 * src/print_graph.c: Likewise.
6146
61472001-12-27 Akim Demaille <akim@epita.fr>
6148
6149 * src/main.c (main): If there are complains after grammar
6150 reductions, then output the report anyway if requested, then die.
6151 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6152 * src/reader.c (eoftoken): New.
6153 (parse_token_decl): If the token being defined has value `0', it
6154 is the eoftoken.
6155 (packsymbols): No longer hack `tags' to insert `$' by hand.
6156 Be sure to preserve the value of the eoftoken.
6157 (reader): Make sure eoftoken is defined.
6158 Initialize nsyms to 0: now eoftoken is created just like the others.
6159 * src/print.c (print_grammar): Don't special case the eof token.
6160 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6161 lie anyway, albeit pleasant.
6162 * tests/calc.at: Exercise error messages with eoftoken.
6163 Change the grammar so that empty input is invalid.
6164 Adjust expectations.
6165 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6166
61672001-12-27 Akim Demaille <akim@epita.fr>
6168
6169 * configure.in: Check the protos of strchr ans strspn.
6170 Replace strchr if needed.
6171 * src/system.h: Provide the protos of strchr, strspn and memchr if
6172 missing.
6173 * lib/strchr.c: New.
6174 * src/reader.c (symbols_save): Use strchr.
6175
61762001-12-27 Akim Demaille <akim@epita.fr>
6177
6178 * src/print.c, src/print_graph.c (escape): New.
6179 Use it to quote the TAGS outputs.
6180 * src/print_graph.c (print_state): Now errors are in red, and
6181 reductions in green.
6182 Prefer high to wide: output the state number on a line of its own.
6183
61842001-12-27 Akim Demaille <akim@epita.fr>
6185
6186 * src/state.h, src/state.c (reductions_new): New.
6187 * src/LR0.c (set_state_table): Let all the states have a
6188 `reductions', even if reduced to 0.
6189 (save_reductions): Adjust.
6190 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6191 * src/print.c (print_reductions, print_actions): Adjust.
6192 * src/output.c (action_row): Adjust.
6193
61942001-12-27 Akim Demaille <akim@epita.fr>
6195
6196 * src/state.h, src/state.c (errs_new, errs_dup): New.
6197 * src/LR0.c (set_state_table): Let all the states have an errs,
6198 even if reduced to 0.
6199 * src/print.c (print_errs, print_reductions): Adjust.
6200 * src/output.c (output_actions, action_row): Adjust.
6201 * src/conflicts.c (resolve_sr_conflict): Adjust.
6202
62032001-12-27 Akim Demaille <akim@epita.fr>
6204
6205 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6206
62072001-12-27 Akim Demaille <akim@epita.fr>
6208
6209 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6210 * src/print.c: here.
6211 (lookaheadset, shiftset): New, used as additional storage by
6212 print_reductions.
6213 (print_results): Adjust.
6214 (print_shifts, print_gotos, print_errs): New, extracted from...
6215 (print_actions): here.
6216 * src/print_graph.c (print_actions): Remove dead code.
6217
62182001-12-27 Akim Demaille <akim@epita.fr>
6219
6220 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6221 `$n' and `@n'.
6222
62232001-12-27 Akim Demaille <akim@epita.fr>
6224
6225 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6226 (build_relations): Adjust.
6227
62282001-12-27 Akim Demaille <akim@epita.fr>
6229
6230 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6231 duplication.
6232
62332001-12-27 Akim Demaille <akim@epita.fr>
6234
6235 * src/reader.c (packgram): Catch nitems overflows.
6236
62372001-12-27 Akim Demaille <akim@epita.fr>
6238
6239 * src/files.c, src/files.h (guard_obstack): Remove.
6240 * src/output.c (output): Adjust.
6241 * src/reader.c (parse_braces): New, factoring...
6242 (copy_action, copy_guard): these two which are renamed as...
6243 (parse_action, parse_guard): these.
6244 As a voluntary consequence, using braces around guards is now
6245 mandatory.
6246
62472001-12-27 Akim Demaille <akim@epita.fr>
6248
6249 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6250 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6251 members.
6252 (symbol_list_new): Adjust.
6253 (copy_action): action_line is the first line, not the last.
6254 (copy_guard): Just as for actions, store the `action' only, not
6255 the switch/case/break flesh.
6256 Don't parse the user action that might follow the guard, let...
6257 (readgram): do it, i.e., now, there can be an action after a
6258 guard.
6259 In other words the guard is just explicitly optional.
6260 (packgram): Adjust.
6261 * src/output.c (guards_output): New.
6262 (output_parser): Call it when needed.
6263 (output): Also free the guard and attrs obstacks.
6264 * src/files.c, src/files.h (obstack_save): Remove.
6265 (output_files): Remove.
6266 As a result, if one needs the former `.act' file, using an
6267 appropriate skeleton which requires actions and guards is now
6268 required.
6269 * src/main.c (main): Adjust.
6270 * tests/semantic.at: New.
6271 * tests/regression.at: Use `input.y' as input file name.
6272 Avoid 8+3 problems by requiring input.c when the test needs the
6273 parser.
6274
62752001-12-27 Akim Demaille <akim@epita.fr>
6276
6277 * src/reader.c (symbol_list_new): Be sure to initialize all the
6278 fields.
6279
62802001-12-27 Akim Demaille <akim@epita.fr>
6281
6282 All the hacks using a final pseudo state are now useless.
6283
6284 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6285 * src/lalr.c (nLA): New.
6286 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6287 instead of lookaheadsp from the pseudo state (nstate + 1).
6288
62892001-12-27 Akim Demaille <akim@epita.fr>
6290
6291 * src/output.c (action_row, token_actions): Use a state_t instead
6292 of a integer, and nlookaheads instead of the following state's
6293 lookaheadsp.
6294
62952001-12-27 Akim Demaille <akim@epita.fr>
6296
6297 * src/conflicts.c (log_resolution, flush_shift)
6298 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6299 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6300 (conflicts_print, print_reductions): Use a state_t instead of an
6301 integer when referring to a state.
6302 As much as possible, depend upon nlookaheads, instead of the
6303 `lookaheadsp' member of the following state (since lookaheads of
6304 successive states are successive, the difference between state n + 1
6305 and n served as the number of lookaheads for state n).
6306 * src/lalr.c (add_lookback_edge): Likewise.
6307 * src/print.c (print_core, print_actions, print_state)
6308 (print_results): Likewise.
6309 * src/print_graph.c (print_core, print_actions, print_state)
6310 (print_graph): Likewise.
6311 * src/conflicts.h: Adjust.
6312
63132001-12-27 Akim Demaille <akim@epita.fr>
6314
6315 * src/bison.hairy: Formatting/comment changes.
6316 ANSIfy.
6317 Remove `register' indications.
6318 Add plenty of `static'.
6319
63202001-12-27 Akim Demaille <akim@epita.fr>
6321
6322 * src/output.c (prepare): Drop the muscle `ntbase' which
6323 duplicates ntokens.
6324 * src/bison.simple: Formatting/comment changes.
6325 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6326 is an undocumented synonym.
6327
63282001-12-22 Akim Demaille <akim@epita.fr>
6329
6330 * src/output.c (output_table_data): Change the prototype to use
6331 `int' for array ranges: some invocations do pass an int, not a
6332 short.
6333 Reported by Wayne Green.
6334
63352001-12-22 Akim Demaille <akim@epita.fr>
6336
6337 Some actions of web2c.y are improperly triggered.
6338 Reported by Mike Castle.
6339
6340 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6341 * tests/regression.at (Web2c): Rename as...
6342 (Web2c Report): this.
6343 (Web2c Actions): New.
6344
63452001-12-22 Akim Demaille <akim@epita.fr>
6346
6347 Reductions in web2c.y are improperly reported.
6348 Reported by Mike Castle.
6349
6350 * src/conflicts.c (print_reductions): Fix.
6351 * tests/regression.at (Web2c): New.
6352
63532001-12-18 Akim Demaille <akim@epita.fr>
6354
6355 Some host fail on `assert (!"foo")', which expands to
6356 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6357 Reported by Nelson Beebee.
6358
6359 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6360 `#define it_succeeded 0' and `assert (it_succeeded)'.
6361
63622001-12-17 Marc Autret <autret_m@epita.fr>
6363
6364 * src/bison.simple: Don't hard code the skeleton line and filename.
6365 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6366 New line counter 'skeleton_line' (skeleton-line muscle).
6367
63682001-12-17 Paul Eggert <eggert@twinsun.com>
6369
6370 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6371 YYDEBUG must be defined to a nonzero value.
6372
6373 * src/bison.simple (yytname): Do not assume that the user defines
6374 YYDEBUG to a properly parenthesized expression.
6375
63762001-12-17 Akim Demaille <akim@epita.fr>
6377
6378 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6379 nlookaheads is a new member.
6380 Adjust all users.
6381 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6382 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6383 state.
6384
63852001-12-17 Akim Demaille <akim@epita.fr>
6386
6387 * src/files.h, src/files.c (open_files, close_files): Remove.
6388 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6389 let...
6390 * src/reader.c (reader): Do it.
6391
63922001-12-17 Akim Demaille <akim@epita.fr>
6393
6394 * src/conflicts.c (print_reductions): Formatting changes.
6395
63962001-12-17 Akim Demaille <akim@epita.fr>
6397
6398 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6399 (flush_reduce): New.
6400 (resolve_sr_conflict): Adjust.
6401
64022001-12-17 Akim Demaille <akim@epita.fr>
6403
6404 * src/output.c (output_obstack): Be static and rename as...
6405 (format_obstack): this, to avoid any confusion with files.c's
6406 output_obstack.
6407 * src/reader.h (muscle_obstack): Move to...
6408 * src/output.h: here, since it's defined in output.c.
6409
64102001-12-17 Akim Demaille <akim@epita.fr>
6411
6412 * src/output.c (action_row, save_column, default_goto)
6413 (sort_actions, matching_state, pack_vector): Better variable
6414 locality.
6415
64162001-12-17 Akim Demaille <akim@epita.fr>
6417
6418 * src/output.c: Various formatting changes.
6419
64202001-12-17 Akim Demaille <akim@epita.fr>
6421
6422 * src/files.c (output_files): Free the output_obstack.
6423 * src/main.c (main): Call print and print_graph conditionally.
6424 * src/print.c (print): Work unconditionally.
6425 * src/print_graph.c (print_graph): Work unconditionally.
6426 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6427
64282001-12-16 Marc Autret <autret_m@epita.fr>
6429
6430 * src/output.c (actions_output): Fix. When we use %no-lines,
6431 there is one less line per action.
6432
64332001-12-16 Marc Autret <autret_m@epita.fr>
6434
6435 * src/bison.simple: Remove a useless #line directive.
6436 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6437 * src/output.c (get_lines_number): New.
6438 (output_parser): Adjust, now takes care about the lines of a
6439 output muscles.
6440 Fix line numbering.
6441 (actions_output): Computes the number of lines taken by actions.
6442 (output_master_parser): Insert new skeleton which is the name of
6443 the output parser file name.
6444
64452001-12-15 Marc Autret <autret_m@epita.fr>
6446
6447 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6448
64492001-12-15 Marc Autret <autret_m@epita.fr>
6450
6451 * src/output.c (output_gram): Keep track of the hairy one.
6452
64532001-12-15 Akim Demaille <akim@epita.fr>
6454
6455 Make `make distcheck' work.
6456
6457 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6458 system.h which uses libgettext.h.
6459
64602001-12-15 Akim Demaille <akim@epita.fr>
6461
6462 * src/nullable.c (set_nullable): Useless rules must be skipped,
6463 otherwise, since we range over their symbols, we might look at a
6464 nonterminal which no longer ``exists'', i.e., it is not counted in
6465 `nvars', hence we overflow our arrays.
6466
64672001-12-15 Akim Demaille <akim@epita.fr>
6468
6469 The header can also be produced directly, without any obstack!
6470 Yahoo!
6471
6472 * src/files.c, src/files.h (defines_obstack): Remove.
6473 (compute_header_macro): Global.
6474 (defines_obstack_save): Remove.
6475 * src/reader.c (parse_union_decl): No longer output to
6476 defines_obstack: its content can be found in the `stype' muscle
6477 anyway.
6478 (output_token_translations): Merge into...
6479 (symbols_output): this.
6480 Rename as...
6481 (symbols_save): this.
6482 (reader): Adjust.
6483 * src/output.c (header_output): New.
6484 (output): Call it.
6485
64862001-12-15 Akim Demaille <akim@epita.fr>
6487
6488 * src/reader.c (parse_union_decl): Instead of handling two obstack
6489 simultaneously, use one to define the `stype' muscle, and use the
6490 value of the latter to fill defines_obstack.
6491 (copy_comment): Remove.
6492 (copy_comment2): Work for a single obstack.
6493 Rename as...
6494 (copy_comment): this.
6495
64962001-12-15 Akim Demaille <akim@epita.fr>
6497
6498 * src/lex.c, src/lex.h (xgetc): No longer static.
6499 * src/reader.c (parse_union_decl): Revamp.
6500
65012001-12-15 Akim Demaille <akim@epita.fr>
6502
6503 Still making progress in separating Bison into (i) input, (ii)
6504 process, (iii) output: now we can directly output the parser file
6505 without using table_obstack at all.
6506
6507 * src/files.c, src/files.h (table_obstack): Bye bye.
6508 (parser_file_name): New.
6509 * src/files.c (compute_output_file_names): Compute it.
6510 * src/output.c (actions_output, output_parser)
6511 (output_master_parser): To a file instead of an obstack.
6512
65132001-12-15 Akim Demaille <akim@epita.fr>
6514
6515 Attach actions to rules, instead of pre-outputting them to
6516 actions_obstack.
6517
6518 * src/gram.h (rule_t): action and action_line are new members.
6519 * src/reader.c (symbol_list): Likewise.
6520 (copy_action): Save the actions within the rule.
6521 (packgram): Save them in rule_table.
6522 * src/output.c (actions_output): New.
6523 (output_parser): Use it on `%%actions'.
6524 (output_rule_data): Don't free rule_table.
6525 (output): Do it.
6526 (prepare): Don't save the `action' muscle.
6527 * src/bison.simple: s/%%action/%%actions/.
6528
65292001-12-15 Akim Demaille <akim@epita.fr>
6530
6531 * src/reader.c (copy_action): When --yacc, don't append a `;'
6532 to the user action: let it fail if lacking.
6533 Suggested by Arnold Robbins and Tom Tromey.
6534
65352001-12-14 Akim Demaille <akim@epita.fr>
6536
6537 * src/lex.c (literalchar): Simply return the char you decoded, non
6538 longer mess around with obstacks and int pointers.
6539 Adjust all callers.
6540
65412001-12-14 Akim Demaille <akim@epita.fr>
6542
6543 * src/lex.c (literalchar): Don't escape the special characters,
6544 just decode them, and keep them as char (before, eol was output as
6545 the 2 char string `\n' etc.).
6546 * src/output.c (output_rule_data): Use quotearg to output the
6547 token strings.
6548
65492001-12-13 Paul Eggert <eggert@twinsun.com>
6550
6551 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6552 Do not infringe on the global user namespace when using C++.
6553 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6554 All uses of `fprintf' and `stderr' changed.
6555
6556 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6557
65582001-12-13 Akim Demaille <akim@epita.fr>
6559
6560 The computation of nullable is broken: it doesn't handle empty
6561 RHS's properly.
6562
6563 * tests/torture.at (GNU AWK Grammar): New.
6564 * tests/sets.at (Nullable): New.
6565 * src/nullable.c (set_nullable): Instead of blindly looping over
6566 `ritems', loop over the rules, and then over their rhs's.
6567
6568 Work around Autotest bugs.
6569
6570 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6571 frame, because Autotest understand lines starting with a `+' as
6572 traces from the shell. Then, they are not processed properly.
6573 Admittedly an Autotest bug, but we don't have time to wait for
6574 Autotest to catch up.
6575 * tests/regression.at (Broken Closure): Adjust to the new table
6576 frames.
6577 Move to...
6578 * tests/sets.at: here.
6579
65802001-12-13 Akim Demaille <akim@epita.fr>
6581
6582 * src/closure.c (closure): Use nrules instead of playing tricks
6583 with BITS_PER_WORD.
6584
65852001-12-13 Akim Demaille <akim@epita.fr>
6586
6587 * src/print.c (print_actions): Output the handling of `$' as the
6588 traces do: shifting the token EOF. Before EOF was treated as a
6589 nonterminal.
6590 * tests/regression.at: Adjust some tests.
6591 * src/print_graph.c (print_core): Complete the set of items via
6592 closure. The next-to-final and final states are still unsatisfying,
6593 but that's to be addressed elsewhere.
6594 No longer output the rule numbers, but do output the state number.
6595 A single loop for the shifts + gotos is enough, but picked a
6596 distinct color for each.
6597 (print_graph): Initialize and finalize closure.
6598
65992001-12-13 Akim Demaille <akim@epita.fr>
6600
6601 * src/reader.c (readgram): Remove dead code, an strip useless
6602 braces.
6603 (get_type): Remove, unused.
6604
66052001-12-12 Akim Demaille <akim@epita.fr>
6606
6607 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6608 on that of lib/error.c.
6609
66102001-12-12 Akim Demaille <akim@epita.fr>
6611
6612 Some hosts don't like `/' in includes.
6613
6614 * src/system.h: Include libgettext.h without qualifying the path.
6615 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6616 $(top_srcdir).
6617
66182001-12-11 Marc Autret <autret_m@epita.fr>
6619
6620 * src/output.c (output_parser): Remove useless muscle.
6621
66222001-12-11 Marc Autret <autret_m@epita.fr>
6623
6624 * src/bison.simple: Remove #line just before %%epilogue. It
6625 is now handled in ...
6626 * src/reader.c (read_additionnal_code): Add the output of a
6627 #line for the epilogue.
6628
66292001-12-10 Marc Autret <autret_m@epita.fr>
6630
6631 * src/reader.c (copy_definition): Re-use CPP-outed code which
6632 replace precedent remove.
6633 * src/bison.simple: Remove #line before %%prologue because
6634 %%input-line is wrong at this time.
6635
66362001-12-10 Marc Autret <autret_m@epita.fr>
6637
6638 * src/reader.c (symbols_output): Clean up.
6639 * src/output.c (output_gram, output): Clean up.
6640
66412001-12-10 Akim Demaille <akim@epita.fr>
6642
6643 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6644 * src/LR0.c (set_state_table): here.
6645 * src/lalr.c (lalr): Call it.
6646
66472001-12-10 Akim Demaille <akim@epita.fr>
6648
6649 * src/state.h (shifts): Remove the `number' member: shifts are
6650 attached to state, hence no longer need to be labelled with a
6651 state number.
6652
66532001-12-10 Akim Demaille <akim@epita.fr>
6654
6655 Now that states have a complete set of members, the linked list of
6656 shifts is useless: just fill directly the state's shifts member.
6657
6658 * src/state.h (shifts): Remove the `next' member.
6659 * src/LR0.c (first_state, last_state): Remove.
6660 Adjust the callers.
6661 (augment_automaton): Don't look for the shifts that must be added
6662 a shift on EOF: it is those of the state we looked for! But now,
6663 since shifts are attached, it is no longer needed to looking
6664 merely by its id: its number.
6665
66662001-12-10 Akim Demaille <akim@epita.fr>
6667
6668 * src/LR0.c (augment_automaton): Better variable locality.
6669 Remove an impossible branch: if there is a state corresponding to
6670 the start symbol being shifted, then there is shift for the start
6671 symbol from the initial state.
6672
66732001-12-10 Akim Demaille <akim@epita.fr>
6674
6675 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6676 only when appropriate: when insert_start_shifting_state' is not
6677 invoked.
6678 * tests/regression.at (Rule Line Numbers): Adjust.
6679
66802001-12-10 Akim Demaille <akim@epita.fr>
6681
6682 * src/LR0.c (augment_automaton): Now that all states have shifts,
6683 merge the two cases addition shifts to the initial state.
6684
66852001-12-10 Akim Demaille <akim@epita.fr>
6686
6687 * src/lalr.c (set_state_table): Move to...
6688 * src/LR0.c: here.
6689 * src/lalr.c (lalr): Don't call it...
6690 * src/LR0.c (generate_states): do it.
6691 * src/LR0.h (first_state): Remove, only the table is used.
6692
66932001-12-10 Akim Demaille <akim@epita.fr>
6694
6695 * src/LR0.h (first_shift, first_reduction): Remove.
6696 * src/lalr.c: Don't use first_shift: find shifts through the
6697 states.
6698
66992001-12-10 Akim Demaille <akim@epita.fr>
6700
6701 * src/LR0.c: Attach shifts to states as soon as they are
6702 computed.
6703 * src/lalr.c (set_state_table): Instead of assigning shifts to
6704 state, just assert that the mapping was properly done.
6705
67062001-12-10 Akim Demaille <akim@epita.fr>
6707
6708 * src/LR0.c (insert_start_shift): Rename as...
6709 (insert_start_shifting_state): this.
6710 (insert_eof_shifting_state, insert_accepting_state): New.
6711 (augment_automaton): Adjust.
6712 Better locality of the variables.
6713 When looking if the start_symbol is shifted from the initial
6714 state, using `while (... symbol != start_symbol ...)' sounds
6715 better than `while (... symbol < start_symbol ...)': If fail
6716 to see how the order between symbols could be relevant!
6717
67182001-12-10 Akim Demaille <akim@epita.fr>
6719
6720 * src/getargs.h: Don't declare `spec_name_prefix' and
6721 `spec_file_prefix', declared by src/files.h.
6722 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6723 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6724 * src/output.c (prepare): Adjust.
6725 * src/reader.c (symbols_output): Likewise.
6726 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6727
67282001-12-10 Akim Demaille <akim@epita.fr>
6729
6730 * src/muscle_tab.c (muscle_init): NULL is a better default than
6731 `"0"'.
6732
67332001-12-10 Akim Demaille <akim@epita.fr>
6734
6735 * src/reader.c (reader): Calling symbols_output once is enough.
6736
67372001-12-10 Akim Demaille <akim@epita.fr>
6738
6739 Now that states have a complete set of members, the linked list of
6740 reductions is useless: just fill directly the state's reductions
6741 member.
6742
6743 * src/state.h (struct reductions): Remove member `number' and
6744 `next'.
6745 * src/LR0.c (first_reduction, last_reduction): Remove.
6746 (save_reductions): Don't link the new reductions, store them in
6747 this_state.
6748 * src/lalr.c (set_state_table): No need to attach reductions to
6749 states, it's already done.
6750 * src/output.c (output_actions): No longer free the shifts, then
6751 the reductions, then the states: free all the states and their
6752 members.
6753
67542001-12-10 Akim Demaille <akim@epita.fr>
6755
6756 * src/options.c (OPTN, DRTV, BOTH): New.
6757 (option_table): Use them.
6758
6759 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6760 the job of system.h.
6761 * src/options.c: Don't include stdio.h and xalloc.h for the same
6762 reasons.
6763
67642001-12-10 Akim Demaille <akim@epita.fr>
6765
6766 * src/output.c (output, prepare): Make sure the values of the
6767 muscles `action' and `prologue' are 0-terminated.
6768
67692001-12-10 Akim Demaille <akim@epita.fr>
6770
6771 Clean up GCC warnings.
6772
6773 * src/reader.c (copy_action): `buf' is not used.
6774 (parse_skel_decl): Be static.
6775 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6776 * src/options.h (create_long_option_table): Have a real prototype.
6777 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6778 (hash_delete_at): Return const void *.
6779 Adjust casts to preserve the const.
6780
67812001-12-10 Akim Demaille <akim@epita.fr>
6782
6783 * configure.in: Require 2.52g.
6784 M4 is not needed, but AUTOM4TE is.
6785 * m4/m4.m4: Remove.
6786 * tests/Makefile.am: Adjust.
6787
67882001-12-10 Akim Demaille <akim@epita.fr>
6789
6790 One structure for states is enough, even though theoretically
6791 there are LR(0) states and LALR(1) states.
6792
6793 * src/lalr.h (state_t): Remove.
6794 (state_table): Be state_t **, not state_t *.
6795 * src/state.h (core, CORE_ALLOC): Rename as...
6796 (state_t, STATE_ALLOC): this.
6797 Add the LALR(1) members: shifts, reductions, errs.
6798 * src/LR0.c (state_table): Rename as...
6799 (state_hash): this, to avoid name clashes with the global
6800 `state_table'.
6801 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6802 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6803
68042001-12-10 Akim Demaille <akim@epita.fr>
6805
6806 Bison dumps core on bash.y.
6807 Reported by Pascal Bart.
6808
6809 * src/warshall.c (bitmatrix_print): New.
6810 (TC): Use it.
6811 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6812 j must be the outer loop.
6813 * tests/regression.at (Broken Closure): New.
6814
68152001-12-05 Akim Demaille <akim@epita.fr>
6816
6817 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6818 its argument.
6819 Reported by Peter Hamorsky.
6820
68212001-12-05 Akim Demaille <akim@epita.fr>
6822
6823 * src/conflicts.c (err_table): Remove.
6824 (resolve_sr_conflict): Adjust.
6825 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
6826 Rename as...
6827 (state_t.reductions, state_t.shifts): this.
6828
68292001-12-05 Akim Demaille <akim@epita.fr>
6830
6831 * src/reduce.c (reduce_grammar_tables): No longer disable the
6832 removal of useless rules via CPP but via `if (0)', so that the
6833 compiler still check the code is valid.
6834 For instance, it should have noticed `rline' no longer exists: use
6835 the `line' member of rule_t.
6836 * src/gram.c (dummy, rline): Remove, unused.
6837
68382001-12-05 Akim Demaille <akim@epita.fr>
6839
6840 * src/output.c (pack_vector): Use assert, not berror.
6841 * src/main.c (berror): Remove, unused.
6842
68432001-12-05 Akim Demaille <akim@epita.fr>
6844
6845 New experimental feature: if --verbose --trace output all the
6846 items of a state, not only its kernel.
6847
6848 * src/print.c (print_core): If `trace_flag', then invoke closure
6849 before outputting the items of the state (print_core is no longer
6850 a correct name them).
6851 (print_results): Invoke new_closure/free_closure if needed.
6852
68532001-12-05 Akim Demaille <akim@epita.fr>
6854
6855 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
6856 * src/closure.c, src/closure.h (itemsetsize): Rename as...
6857 (nitemset): for consistency with the rest of the project.
6858
68592001-12-05 Akim Demaille <akim@epita.fr>
6860
6861 * src/closure.c (print_closure): Improve.
6862 (closure): Use it for printing input and output.
6863
68642001-12-05 Akim Demaille <akim@epita.fr>
6865
6866 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6867 indexed by nonterminals.
6868
68692001-12-05 Akim Demaille <akim@epita.fr>
6870
6871 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
6872 what it was!).
6873 * src/warshall.h: Remove accidental duplication of the content.
6874
68752001-12-05 Akim Demaille <akim@epita.fr>
6876
6877 * src/closure.c (set_fderives): De-obfuscate.
6878
68792001-12-05 Akim Demaille <akim@epita.fr>
6880
6881 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
6882
68832001-12-05 Akim Demaille <akim@epita.fr>
6884
6885 * src/closure.c (set_firsts): De-obfuscate.
6886
68872001-12-05 Akim Demaille <akim@epita.fr>
6888
6889 * src/output.c (action_row): De-obfuscate
6890 using the good o' techniques: arrays not pointers, variable
6891 locality, BITISSET, RESETBIT etc.
6892
68932001-12-05 Akim Demaille <akim@epita.fr>
6894
6895 Pessimize the code to simplify it: from now on, all the states
6896 have a valid SHIFTS, which NSHIFTS is possibly 0.
6897
6898 * src/LR0.c (shifts_new): Be global and move to..
6899 * src/state.c, src/state.h: here.
6900 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
6901 * src/print_graph: Adjust.
6902
69032001-12-05 Akim Demaille <akim@epita.fr>
6904
6905 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
6906 * src/conflicts.c: Use it.
6907 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
6908 incorrectly ``simplified''.
6909
69102001-12-05 Akim Demaille <akim@epita.fr>
6911
6912 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
6913 using the good o' techniques: arrays not pointers, variable
6914 locality, BITISSET, RESETBIT etc.
6915
69162001-12-05 Akim Demaille <akim@epita.fr>
6917
6918 * src/state.h (SHIFT_SYMBOL): New.
6919 * src/conflicts.c: Use it to deobfuscate.
6920
69212001-12-05 Akim Demaille <akim@epita.fr>
6922
6923 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
6924 (print_reductions): De-obfuscate using the good o' techniques:
6925 arrays not pointers, variable locality, BITISSET.
6926
69272001-12-05 Akim Demaille <akim@epita.fr>
6928
6929 * src/conflicts.c (print_reductions): Arrays, not pointers.
6930 Use BITISSET.
6931
69322001-12-05 Akim Demaille <akim@epita.fr>
6933
6934 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6935
69362001-12-05 Akim Demaille <akim@epita.fr>
6937
6938 * src/conflicts.c (print_reductions): Improve variable locality.
6939
69402001-12-05 Akim Demaille <akim@epita.fr>
6941
6942 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6943
69442001-12-05 Akim Demaille <akim@epita.fr>
6945
6946 * src/conflicts.c (print_reductions): Improve variable locality.
6947
69482001-12-05 Akim Demaille <akim@epita.fr>
6949
6950 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
6951 * src/lalr.c: Use them.
6952
69532001-12-05 Akim Demaille <akim@epita.fr>
6954
6955 * src/LR0.c (augment_automaton): Formatting changes.
6956 Better variable locality.
6957
69582001-12-05 Akim Demaille <akim@epita.fr>
6959
6960 * src/lalr.c (matrix_print): New.
6961 (transpose): Use it.
6962 Use arrays instead of pointers.
6963
69642001-12-05 Akim Demaille <akim@epita.fr>
6965
6966 * src/lalr.c (maxrhs): Move to...
6967 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
6968 * src/lalr.c (build_relations): Adjust.
6969
69702001-12-05 Akim Demaille <akim@epita.fr>
6971
6972 * src/lalr.c (transpose): Free the memory allocated to the
6973 argument, as it is replaced by the results by the unique caller.
6974 (build_relations): Merely invoke transpose: it handles the memory
6975 deallocation.
6976 Improve variable locality.
6977 Avoid variables used as mere abbreviations.
6978 (compute_lookaheads): Use arrays instead of pointers.
6979
69802001-12-05 Akim Demaille <akim@epita.fr>
6981
6982 * src/lalr.c (initialize_F): Improve variable locality.
6983 Avoid variables used as mere abbreviations.
6984
69852001-12-05 Akim Demaille <akim@epita.fr>
6986
6987 * src/derives.c (print_derives): Display the ruleno.
6988 * src/lalr.c (initialize_F, transpose): Better variable locality
6989 to improve readability.
6990 Avoid variables used as mere abbreviations.
6991
69922001-12-05 Akim Demaille <akim@epita.fr>
6993
6994 * src/lalr.c (traverse): Use arrays instead of pointers.
6995
69962001-12-05 Akim Demaille <akim@epita.fr>
6997
6998 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
6999 the handling of squeue.
7000 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7001
70022001-12-05 Akim Demaille <akim@epita.fr>
7003
7004 Because useless nonterminals are now kept alive (instead of being
7005 `destroyed'), we now sometimes examine them, and store information
7006 related to them. Hence we need to know their number, and adjust
7007 memory allocations.
7008
7009 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
7010 static.
7011 * src/LR0.c (allocate_itemsets): The memory allocated to
7012 `symbol_count' was used for two different purpose: once to count
7013 the number of occurrences of each symbol, and later reassigned to
7014 `shift_symbol', containing the symbol that can be shifted from a
7015 given state.
7016 Deobfuscate, i.e., allocate, use and free `symbol_count' here
7017 only, and...
7018 (new_itemsets): Allocate `shift_symbol' here.
7019 (allocate_itemsets): symbol_count includes useless nonterminals.
7020 Make room for them.
7021 (free_storage): Use `free', not `XFREE', for pointers that cannot
7022 be null.
7023
70242001-12-05 Akim Demaille <akim@epita.fr>
7025
7026 * src/nullable.c (set_nullable): Deobfuscate the handling of
7027 ritem.
7028 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7029
70302001-12-05 Akim Demaille <akim@epita.fr>
7031
7032 * src/gram.c, src/gram.h (ritem_print): New.
7033 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
7034 (This useless function was defined only to work around VMS linkers
7035 that can't handle compilation units with variables only).
7036 * src/reduce.c (dump_grammar): Use it to trace the construction of
7037 ritem.
7038
70392001-12-04 Paul Eggert <eggert@twinsun.com>
7040
7041 * src/bison.simple (union yyalloc): Change member names
7042 to be the same as the stack names.
7043 (yyparse): yyptr is now union yyalloc *, not char *.
7044 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
7045 and may generate better code on some machines.
7046 (yystpcpy): Use prototype if __STDC__ is defined, not just
7047 if __cplusplus is defined.
7048
70492001-11-30 Akim Demaille <akim@epita.fr>
7050
7051 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
7052 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
7053 Gettext doesn't compile cleanly, and dies with -Werror.
7054 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
7055 Include WARNING_CFLAGS here.
7056 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
7057 before being defined.
7058
70592001-11-27 Paul Eggert <eggert@twinsun.com>
7060
7061 * lib/quotearg.h (quotearg_n, quotearg_n_style):
7062 First arg is int, not unsigned.
7063 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
7064 (SIZE_MAX, UINT_MAX): New macros.
7065 (quotearg_n_options): Abort if N is negative.
7066 Avoid overflow check on hosts where size_t is 64 bits and int
7067 is 32 bits, as overflow is impossible there.
7068 Fix off-by-one typo that caused unnecessary reallocation.
7069
70702001-11-29 Paul Eggert <eggert@twinsun.com>
7071
7072 Name space cleanup in generated parser.
7073
7074 * doc/bison.texinfo (Bison Parser): Discuss system headers
7075 and their effect on the user name space.
7076
7077 * src/bison.simple:
7078 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7079 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7080 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7081
7082 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7083 on user names when possible.
7084
7085 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7086 Simplify test for whather <alloca.h> exists.
7087
7088 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7089
7090 (<stdio.h>): Include if YYDEBUG.
7091
7092 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7093 ! defined (yyoverflow) && ! defined (yymemcpy).
7094
7095 (yymemcpy, yyparse): Rename local variables as needed so that
7096 they all begin with 'yy'.
7097
7098 (yystrlen, yystpcpy): New functions.
7099
7100 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7101 All uses changed.
7102
7103 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7104 instead of relying on string.h functions. Use YYSTACK_ALLOC
7105 and YYSTACK_FREE instead of malloc and free.
7106
71072001-11-30 Akim Demaille <akim@epita.fr>
7108
7109 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7110 before their first uses.
7111 (YYBISON, YYPURE): Move to the top of the output.
7112
71132001-11-30 Akim Demaille <akim@epita.fr>
7114
7115 * tests/reduce.at (Useless Nonterminals): Fix.
7116
71172001-11-30 Akim Demaille <akim@epita.fr>
7118
7119 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7120 if body instead of `;' to pacify GCC's warnings.
7121
71222001-11-30 Akim Demaille <akim@epita.fr>
7123
7124 Instead of mapping the LHS of unused rules to -1, keep the LHS
7125 valid, but flag the rules as invalid.
7126
7127 * src/gram.h (rule_t): `useful' is a new member.
7128 * src/print.c (print_grammar): Adjust.
7129 * src/derives.c (set_derives): Likewise.
7130 * src/reader.c (packgram, reduce_output): Likewise.
7131 * src/reduce.c (reduce_grammar_tables): Likewise.
7132 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7133
71342001-11-30 Akim Demaille <akim@epita.fr>
7135
7136 * src/reduce.c (reduce_output): Formatting changes.
7137 * src/print.c (print_results, print_grammar): Likewise.
7138 * tests/regression.at (Rule Line Numbers)
7139 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7140
71412001-11-30 Akim Demaille <akim@epita.fr>
7142
7143 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7144 useless nonterminals, move them at the end of the symbol arrays.
7145 (reduce_output): Adjust.
7146 * tests/reduce.at (Useless Nonterminals): Adjust.
7147
71482001-11-30 Akim Demaille <akim@epita.fr>
7149
7150 * src/reduce.c: Various comment/formatting changes.
7151 (nonterminals_reduce): New, extracted from...
7152 (reduce_grammar_tables): here.
7153 (reduce_grammar): Call nonterminals_reduce.
7154
71552001-11-29 Paul Eggert <eggert@twinsun.com>
7156
7157 * src/bison.simple (YYSTACK_REALLOC): Remove.
7158 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7159 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7160 New macros.
7161 (union yyalloc): New type.
7162 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7163 an arbitrary restriction on hosts where size_t is wider than int.
7164
7165 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7166 a parser stack overflow. Allocate just one block of memory for all
7167 three stacks, instead of allocating three blocks; this typically is
7168 faster and reduces fragmentation.
7169
7170 Do not limit the number of items in the stack to a value that fits
7171 in 'int', as this is an arbitrary limit on hosts with 64-bit
7172 size_t and 32-bit int.
7173
71742001-11-29 Marc Autret <autret_m@epita.fr>
7175
7176 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7177 of defining YYERROR_VERBOSE.
7178 [AT_DATA]: $4 is now out of C declarations in the prologue.
7179
71802001-11-28 Marc Autret <autret_m@epita.fr>
7181
7182 * src/reader.c (parse_dquoted_param): New.
7183 (parse_skel_decl): Use it.
7184 * src/lex.h: Add its prototype.
7185 * src/lex.c (literalchar): Become not static.
7186
71872001-11-28 Marc Autret <autret_m@epita.fr>
7188
7189 * src/output.h: And put its extern declaration here.
7190 * src/output.c (error_verbose): Define here.
7191 (prepare): Echo name modification.
7192 * src/getargs.h: Clean its extern declaration.
7193 * src/getargs.c (error_verbose_flag): Remove.
7194 (getargs): Remove case 'e'.
7195 * src/options.c (option_table): 'error-verbose' is now seen as simple
7196 percent option.
7197 Include output.h.
7198
7199 * src/reader.c (read_declarations): Remove case tok_include.
7200 (parse_include_decl): Remove.
7201 * src/lex.h (token_t): Remove tok_include.
7202 * src/options.c (option_table): 'include' is now a simple command line
7203 option.
7204
72052001-11-28 Marc Autret <autret_m@epita.fr>
7206
7207 * src/bison.simple: Adjust muscle names.
7208 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7209 * src/output.c (prepare): s/_/-/ for the muscles names.
7210 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7211
72122001-11-28 Marc Autret <autret_m@epita.fr>
7213
7214 * src/bison.simple: Fix debug.
7215 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7216
72172001-11-28 Akim Demaille <akim@epita.fr>
7218
7219 * src/LR0.c (shifts_new): New.
7220 (save_shifts, insert_start_shift, augment_automaton): Use it.
7221
72222001-11-28 Akim Demaille <akim@epita.fr>
7223
7224 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7225 keep ruleno only.
7226
72272001-11-28 Akim Demaille <akim@epita.fr>
7228
7229 * src/closure.c (closure): Instead of looping over word in array
7230 then bits in words, loop over bits in array.
7231
72322001-11-28 Akim Demaille <akim@epita.fr>
7233
7234 * src/closure.c (closure): No longer optimize the special case
7235 where all the bits of `ruleset[r]' are set to 0, to make the code
7236 clearer.
7237
72382001-11-28 Akim Demaille <akim@epita.fr>
7239
7240 * src/closure.c (closure): `r' and `c' are new variables, used to
7241 de-obfuscate accesses to RULESET and CORE.
7242
72432001-11-28 Akim Demaille <akim@epita.fr>
7244
7245 * src/reduce.c (reduce_print): Use ngettext.
7246 (dump_grammar): Improve the trace accuracy.
7247
72482001-11-28 Akim Demaille <akim@epita.fr>
7249
7250 * src/reduce.c (dump_grammar): Don't translate trace messages.
7251
72522001-11-28 Akim Demaille <akim@epita.fr>
7253
7254 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7255 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7256 as all tags are free'ed afterwards.
7257 From Enrico Scholz.
7258
72592001-11-27 Paul Eggert <eggert@twinsun.com>
7260
7261 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7262 use alloca when we didn't want to, and vice versa.
7263
72642001-11-27 Marc Autret <autret_m@epita.fr>
7265
7266 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7267 initialization.
7268 * src/output.c (prepare): Remove its update.
7269
72702001-11-27 Marc Autret <autret_m@epita.fr>
7271
7272 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7273 Use %error-verbose.
7274
72752001-11-27 Marc Autret <autret_m@epita.fr>
7276
7277 * src/bison.simple: Remove YYERROR_VERBOSE using.
7278 Use %%error_verbose.
7279 (yyparse): Likewise.
7280 * src/output.c (prepare): Give its final value.
7281 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7282 * src/getargs.h: Add its extern declaration.
7283 * src/getargs.c (error_verbose_flag): New int.
7284 (getargs): Update to catch new case.
7285 * src/options.c (option_table): 'error-verbose' is a new option.
7286 (shortopts): Update.
7287
72882001-11-27 Akim Demaille <akim@epita.fr>
7289
7290 * src/system.h: Use intl/libgettext.h.
7291 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7292
72932001-11-27 Akim Demaille <akim@epita.fr>
7294
7295 * tests/torture.at (Exploding the Stack Size with Malloc):
7296 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7297
72982001-11-27 Akim Demaille <akim@epita.fr>
7299
7300 * src/files.c: Include error.h.
7301 Reported by Hans Aberg.
7302
73032001-11-26 Marc Autret <autret_m@epita.fr>
7304
7305 * src/reader.c (parse_include_decl): New, not yet implemented.
7306 (read_declarations): Add case tok_include.
7307 * src/getargs.h (include): Add its extern definition.
7308 * src/getargs.c (include): New const char *.
7309 (getargs): Add case '-I'.
7310 * src/options.c (option_table): Add include as command line and
7311 percent option.
7312 * src/lex.h (token_t): Add tok_include.
7313
73142001-11-26 Akim Demaille <akim@epita.fr>
7315
7316 * src/reader.c (readgram): Make sure rules for mid-rule actions
7317 have a lineno equal to that of their host rule.
7318 Reported by Hans Aberg.
7319 * tests/regression.at (Rule Line Numbers): New.
7320
73212001-11-26 Akim Demaille <akim@epita.fr>
7322
7323 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7324 size_ts.
7325
73262001-11-26 Akim Demaille <akim@epita.fr>
7327
7328 * src/complain.c, src/complain.h (error): Remove, provided by
7329 lib/error.[ch].
7330
73312001-11-26 Akim Demaille <akim@epita.fr>
7332
7333 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7334 issue an error message.
7335 * tests/regression.at (Invalid %directive): New.
7336 Reported by Hans Aberg.
7337
73382001-11-26 Akim Demaille <akim@epita.fr>
7339
7340 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7341 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7342
73432001-11-26 Akim Demaille <akim@epita.fr>
7344
7345 * src/conflicts.c (conflicts_print): Don't complain at all when
7346 there are no reduce/reduce conflicts, and as many shift/reduce
7347 conflicts as expected.
7348 * tests/regression.at (%expect right): Adjust.
7349
73502001-11-23 Akim Demaille <akim@epita.fr>
7351
7352 * lib/alloca.c: Update, from fileutils.
7353
73542001-11-23 Akim Demaille <akim@epita.fr>
7355
7356 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7357
73582001-11-23 Akim Demaille <akim@epita.fr>
7359
7360 * src/system.h: Include alloca.h.
7361 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7362
73632001-11-23 Akim Demaille <akim@epita.fr>
7364
7365 * src/print_graph.c (print_actions): Remove `rule', unused.
7366 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7367 pacify GCC's signed < unsigned warnings.
7368 * src/closure.c (itemsetsize): Likewise.
7369 * src/reader.c (symbol_list_new): Static.
7370
73712001-11-23 Akim Demaille <akim@epita.fr>
7372
7373 Attaching lineno to buckets is stupid, since only one copy of each
7374 symbol is kept, only the line of the first occurrence is kept too.
7375
7376 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7377 * src/reader.c (rline_allocated): Remove, unused.
7378 (symbol_list): Have a `line' member.
7379 (symbol_list_new): New.
7380 (readgram): Use it.
7381 * src/print.c (print_grammar): Output the rule line numbers.
7382 * tests/regression.at (Solved SR Conflicts)
7383 (Unresolved SR Conflicts): Adjust.
7384 Reported by Hans Aberg.
7385
73862001-11-22 Marc Autret <autret_m@epita.fr>
7387
7388 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7389
73902001-11-22 Marc Autret <autret_m@epita.fr>
7391
7392 * src/muscle_tab.c (muscle_init): Remove initialization of
7393 skeleton muscle.
7394 * src/output.c (output_master_parser): Do it here.
7395
73962001-11-20 Akim Demaille <akim@epita.fr>
7397
7398 * po/sv.po: New.
7399 * configure.in (ALL_LINGUAS): Adjust.
7400 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7401 longer contains strings to translate.
7402
74032001-11-19 Akim Demaille <akim@epita.fr>
7404
7405 * src/conflicts.c (conflicts_print): Add a missing \n.
7406
74072001-11-19 Akim Demaille <akim@epita.fr>
7408
7409 * src/nullable.c (nullable_print): New.
7410 (set_nullable): Call it when tracing.
7411 Better locality of variables.
7412
74132001-11-19 Akim Demaille <akim@epita.fr>
7414
7415 * src/print.c (print_actions): Better locality of variables.
7416
74172001-11-19 Akim Demaille <akim@epita.fr>
7418
7419 * src/derives.c (print_derives): Fix and enrich.
7420 * src/closure.c (print_fderives): Likewise.
7421
74222001-11-19 Akim Demaille <akim@epita.fr>
7423
7424 * src/closure.c (itemsetend): Remove, replaced with...
7425 (itemsetsize): new.
7426
74272001-11-19 Akim Demaille <akim@epita.fr>
7428
7429 * src/LR0.c (kernel_end): Remove, replaced with...
7430 (kernel_size): new.
7431
74322001-11-19 Akim Demaille <akim@epita.fr>
7433
7434 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7435 to clarify.
7436
74372001-11-19 Akim Demaille <akim@epita.fr>
7438
7439 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7440
74412001-11-19 Akim Demaille <akim@epita.fr>
7442
7443 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7444 trace messages.
7445 * src/LR0.c: Likewise.
7446 (allocate_itemsets): Use arrays instead of pointers to clarify.
7447
74482001-11-19 Akim Demaille <akim@epita.fr>
7449
7450 * src/getargs.c (statistics_flag): Replace with...
7451 (trace_flag): New.
7452 (longopts): Accept --trace instead of --statistics.
7453 * src/getargs.h, src/options.c: Adjust.
7454 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7455 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7456
74572001-11-19 Akim Demaille <akim@epita.fr>
7458
7459 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7460 pointers to clarify the code.
7461 (save_reductions, save_shifts): Factor common parts of alternatives.
7462
74632001-11-19 Akim Demaille <akim@epita.fr>
7464
7465 * src/LR0.c (new_state, get_state): Complete TRACE code.
7466 * src/closure.c: Include `reader.h' to get `tags', needed by the
7467 trace code.
7468 Rename the conditional DEBUG as TRACE.
7469 Output consistently TRACEs to stderr, not stdout.
7470 * src/derives.c: Likewise.
7471 * src/reduce.c: (inaccessable_symbols): Using if is better style
7472 than goto.
7473 Use `#if TRACE' instead of `#if 0' for tracing code.
7474
74752001-11-19 Akim Demaille <akim@epita.fr>
7476
7477 * src/system.h (LIST_FREE, shortcpy): New.
7478 * src/LR0.c: Use them.
7479 * src/output.c (free_itemsets, free_reductions, free_shifts):
7480 Remove, replaced by LIST_FREE.
7481
74822001-11-19 Akim Demaille <akim@epita.fr>
7483
7484 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7485 (REDUCTIONS_ALLOC): New.
7486 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7487 allocation.
7488
74892001-11-19 Akim Demaille <akim@epita.fr>
7490
7491 * src/LR0.c (new_state): Complete trace code.
7492 * src/nullable.c (set_nullable): Don't translate traces.
7493
74942001-11-19 Akim Demaille <akim@epita.fr>
7495
7496 * src/print_graph.c (print_core): Better locality of variables.
7497 * src/print.c (print_core): Likewise.
7498
74992001-11-19 Akim Demaille <akim@epita.fr>
7500
7501 * src/vcg.c: You do the output, so you are responsible of the
7502 handling of VCG syntax, in particular: use quotearg.
7503 * src/print_graph.c: Don't.
7504 (print_actions): Don't output the actions as part of the nodes,
7505 since that's the job of the edges.
7506 (print_state): Don't output by hand: fill the node description,
7507 and ask for its output.
7508
75092001-11-19 Akim Demaille <akim@epita.fr>
7510
7511 * src/bison.simple (yyparse): When verbosely reporting an error,
7512 no longer put additional quotes around token names.
7513 * tests/calc.at: Adjust.
7514
75152001-11-19 Akim Demaille <akim@epita.fr>
7516
7517 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7518 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7519 * src/output.c: Adjust.
7520
75212001-11-19 Akim Demaille <akim@epita.fr>
7522
7523 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7524 (rule_t): this.
7525 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7526
75272001-11-19 Akim Demaille <akim@epita.fr>
7528
7529 * src/gram.h (rule_t): New.
7530 (rule_table): New.
7531 (rrhs, rlhs): Remove, part of state_t.
7532 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7533 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7534 * src/reader.c, src/reduce.c: Adjust.
7535
75362001-11-19 Akim Demaille <akim@epita.fr>
7537
7538 * src/reader.c (symbols_output): New, extracted from...
7539 (packsymbols): Here.
7540 (reader): Call it.
7541
75422001-11-19 Akim Demaille <akim@epita.fr>
7543
7544 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7545 (maxrhs): this new function.
7546
75472001-11-19 Akim Demaille <akim@epita.fr>
7548
7549 * src/lalr.c (F): New macro to access the variable F.
7550 Adjust.
7551
75522001-11-19 Akim Demaille <akim@epita.fr>
7553
7554 * src/lalr.h (LA): New macro to access the variable LA.
7555 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7556 * src/lalr.c: Adjust.
7557
75582001-11-19 Akim Demaille <akim@epita.fr>
7559
7560 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7561 (set_state_table): handle the `lookaheads' members.
7562
75632001-11-19 Akim Demaille <akim@epita.fr>
7564
7565 * src/lalr.h (lookaheads): Removed array, whose contents is now
7566 a member of...
7567 (state_t): this structure.
7568 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7569 Adjust.
7570
75712001-11-19 Akim Demaille <akim@epita.fr>
7572
7573 * src/lalr.h (consistent): Removed array, whose contents is now
7574 a member of...
7575 (state_t): this structure.
7576 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7577 Adjust.
7578
75792001-11-19 Akim Demaille <akim@epita.fr>
7580
7581 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7582 contents are now members of...
7583 (state_t): this structure.
7584 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7585 Adjust.
7586
75872001-11-19 Akim Demaille <akim@epita.fr>
7588
7589 * src/lalr.h (state_t): New.
7590 (state_table): Be a state_t * instead of a core **.
7591 (accessing_symbol): Remove, part of state_t.
7592 * src/lalr.c: Adjust.
7593 (set_accessing_symbol): Merge into...
7594 (set_state_table): this.
7595 * src/print_graph.c, src/conflicts.c: Adjust.
7596
75972001-11-14 Akim Demaille <akim@epita.fr>
7598
7599 * tests/calc.at, tests/output.at, tests/regression.at,
7600 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7601 now the tests are run in private dirs, therefore AC_CLEANUP and
7602 family can be simplified to 0-ary.
7603 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7604 use abs. path to find config.h.
7605 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7606 stderr, there can be way too much random noise.
7607 Instead pass -Werror to GCC and rely on the exit status.
7608 Reported by Wolfram Wagner.
7609
76102001-11-14 Akim Demaille <akim@epita.fr>
7611
7612 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7613 defined only if yyoverflow is defined, to avoid `warning: unused
7614 variable `yyvs1''.
7615 Reported by The Test Suite.
7616
76172001-11-14 Akim Demaille <akim@epita.fr>
7618
7619 * src/print.c: Include reduce.h.
7620 Reported by Hans Aberg.
7621
76222001-11-14 Akim Demaille <akim@epita.fr>
7623
7624 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7625 Revert a previous patch: these are really const.
7626 * src/conflicts.c (conflict_report): Additional useless pair of
7627 braces to pacify GCC's warnings for `if () if () {} else {}'.
7628 * src/lex.c (parse_percent_token): Replace equal_offset with
7629 arg_offset.
7630 arg is const.
7631 Be sure to strdup `arg' when used, since there is no reason for
7632 token_buffer not to change.
7633
76342001-11-14 Akim Demaille <akim@epita.fr>
7635
7636 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7637 definition.
7638 * src/main.c (main): Use them.
7639 Suggested by Hans Aberg.
7640
76412001-11-12 Akim Demaille <akim@epita.fr>
7642
7643 * src/system.h (ngettext): Now that we use ngettext, be sure to
7644 provide a default definition when NLS are not used.
7645
76462001-11-12 Akim Demaille <akim@epita.fr>
7647
7648 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7649 Use @kbd to denote user input.
7650 (Language and Grammar): ANSIfy the example.
7651 Adjust its layout for info/notinfo.
7652 (Location Tracking Calc): Output error messages to stderr.
7653 Output locations in a more GNUtically correct way.
7654 Fix a couple of Englishos.
7655 Adjust @group/@end group pairs.
7656
76572001-11-12 Akim Demaille <akim@epita.fr>
7658
7659 %expect was not functioning at all.
7660
7661 * src/conflicts.c (expected_conflicts): Set to -1.
7662 (conflict_report): Use ngettext.
7663 (conflicts_print): Check %expect and make its violation an error.
7664 * doc/bison.texinfo (Expect Decl): Adjust.
7665 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7666 * tests/regression.at (%expect not enough, %expect right)
7667 (%expect too much): New.
7668
76692001-11-12 Akim Demaille <akim@epita.fr>
7670
7671 * tests/regression.at (Conflicts): Rename as...
7672 (Unresolved SR Conflicts): this.
7673 (Solved SR Conflicts): New.
7674
76752001-11-12 Akim Demaille <akim@epita.fr>
7676
7677 * src/reduce.c (print_results): Rename as...
7678 (reduce_output): This.
7679 Output to OUT, passed as argument, instead of output_obstack.
7680 (dump_grammar): Likewise.
7681 (reduce_free): New.
7682 Also free V1.
7683 (reduce_grammar): No longer call reduce_output, since...
7684 * src/print.c (print_results): do it.
7685 * src/main.c (main): Call reduce_free;
7686
76872001-11-12 Akim Demaille <akim@epita.fr>
7688
7689 * src/conflicts.c (print_reductions): Accept OUT as argument.
7690 Output to it, not to output_obstack.
7691 * src/print.c (print_actions): Adjust.
7692
76932001-11-12 Akim Demaille <akim@epita.fr>
7694
7695 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
7696 the result instead of using...
7697 (src_total, rrc_total, src_count, rrc_count): Remove.
7698 (any_conflicts): Remove.
7699 (print_conflicts): Split into...
7700 (conflicts_print, conflicts_output): New.
7701 * src/conflicts.h: Adjust.
7702 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
7703 * src/print.c (print_grammar): Issue `\n' between two rules.
7704 * tests/regression.at (Conflicts): New.
7705 Reported by Tom Lane.
7706
77072001-11-12 Akim Demaille <akim@epita.fr>
7708
7709 * tests/regression.at (Invalid input): Remove, duplicate with
7710 ``Invalid input: 1''.
7711
77122001-11-12 Akim Demaille <akim@epita.fr>
7713
7714 * tests/torture.at (AT_DATA_STACK_TORTURE)
7715 (Exploding the Stack Size with Alloca)
7716 (Exploding the Stack Size with Malloc): New.
7717
77182001-11-12 Akim Demaille <akim@epita.fr>
7719
7720 * src/bison.simple (YYSTACK_REALLOC): New.
7721 (yyparse) [!yyoverflow]: Use it and free the old stack.
7722 Reported by Per Allansson.
7723
77242001-11-12 Pascal Bart <pascal.bart@epita.fr>
7725
7726 * src/bison.simple: Define type yystype instead of YYSTYPE, and
7727 define CPP macro, which substitute YYSTYPE by yystype.
7728 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
7729 with yyltype/YYLTYPE. This allows inclusion of the generated
7730 header within the parser if the compiler, such as GGC, accepts
7731 multiple equivalent #defines.
7732 From Akim.
7733
77342001-11-05 Akim Demaille <akim@epita.fr>
7735
7736 * src/reader.c (symbols_output): New, extracted from...
7737 (packsymbols): here.
7738 (reader): Adjust.
7739
77402001-11-05 Akim Demaille <akim@epita.fr>
7741
7742 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7743
77442001-11-05 Akim Demaille <akim@epita.fr>
7745
7746 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7747 pattern.
7748
77492001-11-05 Akim Demaille <akim@epita.fr>
7750
7751 * src/options.h (struct option_table_struct): set_flags is void*.
7752 * src/options.c (longopts): Support `--output' and `%output'.
7753 (usage): Adjust.
7754 * src/lex.h (tok_setopt): Remove, replaced with...
7755 (tok_intopt, tok_stropt): these new guys.
7756 * src/lex.c (getopt.h): Not needed.
7757 (token_buffer, unlexed_token_buffer): Not const.
7758 (percent_table): Promote `-' over `_' in directive names.
7759 Active `%name-prefix', `file-prefix', and `output'.
7760 (parse_percent_token): Accept possible arguments to directives.
7761 Promote `-' over `_' in directive names.
7762
77632001-11-04 Akim Demaille <akim@epita.fr>
7764
7765 * doc/bison.texinfo (Decl Summary): Split the list into
7766 `directives for grammars' and `directives for bison'.
7767 Sort'em.
7768 Add description of `%name-prefix', `file-prefix', and `output'.
7769 Promote `-' over `_' in directive names.
7770 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
7771 Simplify the description of `--name-prefix'.
7772 Promote `-' over `_' in directive names.
7773 Promote `--output' over `--output-file'.
7774 Fix the description of `--defines'.
7775 * tests/output.at: Exercise %file-prefix and %output.
7776
77772001-11-02 Akim Demaille <akim@epita.fr>
7778
7779 * doc/refcard.tex: Update.
7780
77812001-11-02 Akim Demaille <akim@epita.fr>
7782
7783 * src/symtab.h (SUNDEF): New.
7784 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
7785 stand for `uninitialized', instead of 0.
7786 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
7787 * src/lex.c (lex): Adjust.
7788
7789 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
7790 Number it 0.
7791 Let yylex return it instead of a plain 0.
7792 Reported by Dick Streefland.
7793
77942001-11-02 Akim Demaille <akim@epita.fr>
7795
7796 * tests/regression.at (Mixing %token styles): New test.
7797
77982001-11-02 Akim Demaille <akim@epita.fr>
7799
7800 * src/reader.c (parse_thong_decl): Formatting changes.
7801 (token_translations_init): New, extracted from...
7802 (packsymbols): Here.
7803 Adjust.
7804
78052001-11-01 Akim Demaille <akim@epita.fr>
7806
7807 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
7808 Check that `9foo.y' produces correct cpp guards.
7809 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
7810 guards.
7811 Reported by Wwp.
7812
78132001-11-01 Akim Demaille <akim@epita.fr>
7814
7815 * tests/regression.at (Invalid input: 2): New.
7816 * src/lex.c (unlexed_token_buffer): New.
7817 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
7818 too.
7819 Reported by Wwp.
7820
78212001-11-01 Akim Demaille <akim@epita.fr>
7822
7823 * tests/calc.at: Catch up with 1.30.
7824 * configure.in: Bump to 1.49a.
7825 Adjust to newer Autotest.
7826
78272001-10-19 Pascal Bart <pascal.bart@epita.fr>
7828
7829 * src/conflicts.c: Move global variables rrc_total and src_total ...
7830 (print_conflicts): here.
7831 * src/output.c (output): Free global variable user_toknums.
7832 * src/lex.c (token_obstack): Become static.
7833
78342001-10-18 Akim Demaille <akim@epita.fr>
7835
7836 * tests/atlocal.in (GCC): Add.
7837 * tests/calc.at: s/m4_match/m4_bmatch/.
7838 s/m4_patsubst/m4_bpatsubst/.
7839 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
7840 * configure.in: AC_SUBST(GCC).
7841
78422001-10-14 Marc Autret <autret_m@epita.fr>
7843
7844 * src/options.c (create_long_option_table): Fix.
7845
78462001-10-10 Akim Demaille <akim@epita.fr>
7847
7848 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7849
78502001-10-04 Akim Demaille <akim@epita.fr>
7851
7852 * src/reader.c (parse_union_decl): Push the caracters in
7853 union_obstack, not attrs_obstack.
7854
78552001-10-04 Akim Demaille <akim@epita.fr>
7856
7857 Merge in the branch 1.29.
7858
7859 * src/reader.c (packsymbols): Use a temporary obstack for
7860 `%%tokendef', since output_stack is already used elsewhere.
7861
7862 2001-10-02 Akim Demaille <akim@epita.fr>
7863
7864 Bump 1.29d.
7865
7866 2001-10-02 Akim Demaille <akim@epita.fr>
7867
7868 Version 1.29c.
7869
7870 2001-10-02 Akim Demaille <akim@epita.fr>
7871
7872 * tests/regression.at (Invalid CPP headers): New.
7873 From Alexander Belopolsky.
7874 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
7875
7876 2001-10-02 Akim Demaille <akim@epita.fr>
7877
7878 * tests/regression.at (Invalid input): New.
7879 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
7880 Reported by Shura.
7881
7882 2001-10-02 Akim Demaille <akim@epita.fr>
7883
7884 * tests/calc.at: Now that --debug works, the tests must be adjusted.
7885
7886 2001-10-02 Akim Demaille <akim@epita.fr>
7887
7888 * src/output.c (output_parser): Assert `skeleton'.
7889 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
7890 systems.
7891 From Shura.
7892
7893 2001-10-01 Marc Autret <autret_m@epita.fr>
7894
7895 * src/lex.h: Echo modifications.
7896 * src/lex.c (unlex): Parameter is now token_t.
7897 From Hans Aberg.
7898
7899 2001-10-01 Marc Autret <autret_m@epita.fr>
7900
7901 * src/main.c: Include lex.h.
7902 From Hans Aberg.
7903
7904 2001-09-29 Akim Demaille <akim@epita.fr>
7905
7906 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
7907
7908 2001-09-28 Akim Demaille <akim@epita.fr>
7909
7910 * tests/testsuite.at: Update to newer Autotest.
7911 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
7912
7913 2001-09-27 Akim Demaille <akim@epita.fr>
7914
7915 Position independent wrapper.
7916
7917 * tests/bison: Remove.
7918 * tests/bison.in: New.
7919 * configure.in: Adjust.
7920
7921 2001-09-27 Paul Eggert <eggert@twinsun.com>
7922
7923 Port quotearg fixes from tar 1.13.24.
7924
7925 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
7926 tm to be declared.
7927 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
7928 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
7929
7930 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
7931 * m4/mbrtowc.m4: New file.
7932 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
7933 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
7934
7935 2001-09-27 Akim Demaille <akim@epita.fr>
7936
7937 Bump to 1.29c.
7938
7939 2001-09-27 Akim Demaille <akim@epita.fr>
7940
7941 Version 1.29b.
7942
7943 2001-09-25 Akim Demaille <akim@epita.fr>
7944
7945 * src/system.h: Include `xalloc.h'.
7946 Remove it from the C files.
7947 * src/files.c (output_files): Free the obstacks.
7948 * src/lex.c (init_lex): Rename as...
7949 (lex_init): this.
7950 (lex_free): New.
7951 * src/main.c (main): Use it.
7952
7953 2001-09-24 Marc Autret <autret_m@epita.fr>
7954
7955 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
7956 to output informations in fout (FILE*).
7957 (open_graph, close_graph): Likewise.
7958 (output_graph, output_edge, output_node): Likewise.
7959 * src/vcg.h: Update function prototypes.
7960 * src/print_graph.c (print_graph): Open output graph file.
7961 (print_actions): Adjust.
7962 * src/files.h: Remove extern declaration.
7963 * src/files.c: Remove graph_obstack declaration.
7964 (open_files): Remove graph_obstack initialization.
7965 (output_files): Remove graph_obstack saving.
7966
7967 2001-09-24 Marc Autret <autret_m@epita.fr>
7968
7969 * src/files.c (compute_output_file_names): Fix.
7970
7971 2001-09-24 Marc Autret <autret_m@epita.fr>,
7972 Akim Demaille <akim@epita.fr>
7973
7974 * src/reader.c (reader): Remove call to free_symtab ().
7975 * src/main.c (main): Call it here.
7976 Include symtab.h.
7977 * src/conflicts.c (initialize_conflicts): Rename as...
7978 (solve_conflicts): this.
7979 * src/print.c (print_core, print_actions, print_state)
7980 (print_grammar): Dump to a file instead a `output_obstack'.
7981 (print_results): Dump `output_obstack', and then proceed with the
7982 FILE *.
7983 * src/files.c (compute_output_file_names, close_files): New.
7984 (output_files): Adjust.
7985 * src/main.c (main): Adjust.
7986
7987 2001-09-23 Marc Autret <autret_m@epita.fr>
7988
7989 * src/files.c (compute_header_macro): Computes header macro name
7990 from spec_defines_file when given.
7991
7992 2001-09-23 Marc Autret <autret_m@epita.fr>
7993
7994 * src/files.c (output_files): Add default extensions.
7995
7996 2001-09-22 Akim Demaille <akim@epita.fr>
7997
7998 * src/conflicts.c (finalize_conflicts): Rename as...
7999 (free_conflicts): this.
8000
8001 2001-09-22 Akim Demaille <akim@epita.fr>
8002
8003 * src/gram.c (gram_free): Rename back as...
8004 (dummy): this.
8005 (output_token_translations): Free `token_translations'.
8006 * src/symtab.c (free_symtab): Free the tag field.
8007
8008 2001-09-22 Akim Demaille <akim@epita.fr>
8009
8010 Remove `translations' as it is always set to true.
8011
8012 * src/gram.h: Adjust.
8013 * src/reader.c (packsymbols, parse_token_decl): Adjust
8014 * src/print.c (print_grammar): Adjust.
8015 * src/output.c (output_token_translations): Adjust.
8016 * src/lex.c (lex): Adjust.
8017 * src/gram.c: Be sure the set pointers to NULL.
8018 (dummy): Rename as...
8019 (gram_free): this.
8020
8021 2001-09-22 Akim Demaille <akim@epita.fr>
8022
8023 * configure.in: Invoke AM_LIB_DMALLOC.
8024 * src/system.h: Use dmalloc.
8025 * src/LR0.c: Be sure to have pointers initialized to NULL.
8026 (allocate_itemsets): Allocate kernel_items only if needed.
8027
8028 2001-09-22 Akim Demaille <akim@epita.fr>
8029
8030 * configure.in: Bump to 1.29b.
8031 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
8032 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
8033 need xmalloc.c in calc.y.
8034 From Pascal Bart.
8035
8036 2001-09-21 Akim Demaille <akim@epita.fr>
8037
8038 Version 1.29a.
8039 * Makefile.maint, config/config.guess, config/config.sub,
8040 * config/missing: Update from masters.
8041 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
8042 upon package.m4.
8043 * configure.in (ALL_LINGUAS): Add `tr'.
8044
8045 2001-09-21 Akim Demaille <akim@epita.fr>
8046
8047 * tests/Makefile.am (package.m4): Move to...
8048 ($(srcdir)/$(TESTSUITE)): here.
8049
8050 2001-09-20 Akim Demaille <akim@epita.fr>
8051
8052 * src/complain.c: No longer try to be standalone: use system.h.
8053 Don't assume __STDC__ is defined to 1. Just test if it is defined.
8054 * src/complain.h: Likewise.
8055 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
8056 Remove the unused variable `n'.
8057 From Albert Chin-A-Young.
8058
8059 2001-09-18 Marc Autret <autret_m@epita.fr>
8060
8061 * doc/bison.1: Update.
8062 * doc/bison.texinfo (Bison Options): Update --defines and --graph
8063 descriptions.
8064 (Option Cross Key): Update.
8065 Add --graph.
8066
8067 2001-09-18 Marc Autret <autret_m@epita.fr>
8068
8069 * tests/regression.at: New test (comment in %union).
8070
8071 2001-09-18 Marc Autret <autret_m@epita.fr>
8072
8073 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8074 do that.
8075 Reported by Keith Browne.
8076
8077 2001-09-18 Marc Autret <autret_m@epita.fr>
8078
8079 * tests/output.at: Add tests for --defines and --graph.
8080
8081 2001-09-18 Marc Autret <autret_m@epita.fr>
8082
8083 * tests/output.at: Removes tests of %{header,src}_extension features.
8084
8085 2001-09-18 Akim Demaille <akim@epita.fr>
8086
8087 * tests/Makefile.am (package.m4): New.
8088 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8089 (_AT_CHECK_CALC_ERROR): Likewise.
8090 Factor the `, ' part of verbose error messages.
8091
8092 2001-09-18 Marc Autret <autret_m@epita.fr>
8093
8094 * src/getargs.c (longopts): Declare --defines and --graph as options
8095 with optional arguments.
8096 * src/files.h: Add extern declarations.
8097 * src/files.c (spec_graph_file, spec_defines_file): New.
8098 (output_files): Update.
8099 Remove CPP-outed code.
8100
8101 2001-09-18 Marc Autret <autret_m@epita.fr>
8102
8103 Turn off %{source,header}_extension feature.
8104
8105 * src/files.c (compute_exts_from_gf): Update.
8106 (compute_exts_from_src): Update.
8107 (output_files): CPP-out useless code.
8108 * src/files.h: Remove {header,source}_extension extern declarations.
8109 * src/reader.c (parse_dquoted_param): CPP-out.
8110 (parse_header_extension_decl): Remove.
8111 (parse_source_extension_decl): Remove.
8112 (read_declarations): Remove cases tok_{hdrext,srcext}.
8113 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8114 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8115
8116 2001-09-10 Akim Demaille <akim@epita.fr>
8117
8118 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8119 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8120 (AT_CHECK_OUTPUT): this.
8121 Merely check ls' exit status, its output is useless.
8122
8123 2001-09-10 Akim Demaille <akim@epita.fr>
8124
8125 * tests/calc.at: Use m4_match.
8126 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8127
8128 2001-09-10 Marc Autret <autret_m@epita.fr>,
8129 Akim Demaille <akim@epita.fr>
8130
8131 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8132 enum color_e.
8133 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8134 to `normal'.
8135 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8136 * src/lex.h: Adjust prototype.
8137 (token_t): Add `tok_undef'.
8138 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8139 (parse_percent_token): Now returns token_t.
8140 Add default statement in switch.
8141 (lex): Separate `c' as an input variable, from the token_t result
8142 part.
8143 (unlexed): Is a token_t.
8144
8145 2001-09-10 Akim Demaille <akim@epita.fr>
8146
8147 * configure.in: Bump to 1.29a.
8148
8149 2001-09-07 Akim Demaille <akim@epita.fr>
8150
8151 Version 1.29.
8152
8153 2001-08-30 Akim Demaille <akim@epita.fr>
8154
8155 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8156 * m4/atconfig.m4: Remove.
8157 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8158 * tests/bison: New.
8159 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8160 m4_if, m4_patsubst, and m4_regexp.
8161 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8162 `input' file instead of echo.
8163
8164 2001-08-29 Akim Demaille <akim@epita.fr>
8165
8166 Bump to 1.28e.
8167
8168 2001-08-29 Akim Demaille <akim@epita.fr>
8169
8170 Version 1.28d.
8171
8172 2001-08-29 Paul Eggert <eggert@twinsun.com>
8173
8174 * src/bison.simple (yyparse): Don't take the address of an
8175 item before the start of an array, as that doesn't conform to
8176 the C Standard.
8177
8178 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8179
8180 * doc/bison.texinfo (Location Tracking Calc): New node.
8181
8182 2001-08-29 Paul Eggert <eggert@twinsun.com>
8183
8184 * src/output.c (output): Do not define const, as this now
8185 causes more problems than it cures.
8186
8187 2001-08-29 Akim Demaille <akim@epita.fr>
8188
8189 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8190 the nodes.
8191 Be sure to tag the `detailmenu'.
8192
8193 2001-08-29 Akim Demaille <akim@epita.fr>
8194
8195 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8196 download in a tmp dir.
8197
8198 2001-08-28 Marc Autret <autret_m@epita.fr>
8199
8200 * config/depcomp: New file.
8201
8202 2001-08-28 Marc Autret <autret_m@epita.fr>
8203
8204 * doc/bison.1 (mandoc): Adjust.
8205 From Juan Manuel Guerrero.
8206
8207 2001-08-28 Marc Autret <autret_m@epita.fr>
8208
8209 * src/print_graph.c (print_state): Fix.
8210
8211 2001-08-27 Marc Autret <autret_m@epita.fr>
8212
8213 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8214 char * members.
8215 Echo modifications to the functions prototypes.
8216 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8217
8218 2001-08-27 Marc Autret <autret_m@epita.fr>
8219
8220 * src/vcg.c: Include `xalloc.h'.
8221 (add_colorentry): New.
8222 (add_classname): New.
8223 (add_infoname): New.
8224 * src/vcg.h: Add new prototypes.
8225
8226 2001-08-27 Akim Demaille <akim@epita.fr>
8227
8228 * Makefile.maint: Sync. again with CVS Autoconf.
8229
8230 2001-08-27 Akim Demaille <akim@epita.fr>
8231
8232 * Makefile.maint: Formatting changes.
8233 (po-update, cvs-update, update): New targets.
8234 (AMTAR): Remove.
8235
8236 2001-08-27 Akim Demaille <akim@epita.fr>
8237
8238 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8239 * Makefile.maint: Sync. with CVS Autoconf.
8240
8241 2001-08-27 Marc Autret <autret_m@epita.fr>
8242
8243 * src/vcg.h (struct infoname_s): New.
8244 (struct colorentry_s): New.
8245 (graph_s): New fields {vertical,horizontal}_order in structure.
8246 Add `infoname' field.
8247 Add `colorentry' field;
8248 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8249 (G_HORIZONTAL_ORDER): New.
8250 (G_INFONAME): New.
8251 (G_COLORENTRY): New.
8252 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8253 Add output of `infoname'.
8254 Add output of `colorentry'.
8255
8256 2001-08-27 Marc Autret <autret_m@epita.fr>
8257
8258 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8259 This one shadowed a global parameter.
8260
8261 2001-08-24 Marc Autret <autret_m@epita.fr>
8262
8263 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8264 instead of `unsigned'.
8265 (print_state): Do not call obstack_object_size () in obstack_grow ()
8266 to avoid macro variables shadowing.
8267
8268 2001-08-23 Marc Autret <autret_m@epita.fr>
8269
8270 * src/lex.c (percent_table): Typo: s/naem/name/.
8271 Add graph option.
8272 Normalize new options declarations.
8273
8274 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8275
8276 * tests/suite.at: Exercise %header_extension and %source_extension.
8277
8278 2001-08-16 Marc Autret <autret_m@epita.fr>
8279
8280 * src/reader.c (parse_dquoted_param): New.
8281 (parse_header_extension_decl): Use it.
8282 (parse_source_extension_decl): Likewise.
8283
8284 2001-08-16 Marc Autret <autret_m@epita.fr>
8285
8286 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8287 (get_xxxx_str): Use assert () instead of complain ().
8288 Remove return invokations in default cases.
8289 (get_decision_str): Modify default behaviour. Remove second argument.
8290 Echo modifications on calls.
8291 (output_graph): Fix.
8292
8293 2001-08-16 Marc Autret <autret_m@epita.fr>
8294
8295 * src/getargs.c (usage): Update with ``-g, --graph''.
8296
8297 2001-08-16 Marc Autret <autret_m@epita.fr>
8298
8299 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8300 (Option Cross Key): Likewise.
8301 * doc/bison.1: Update.
8302
83032001-09-25 Pascal Bart <pascal.bart@epita.fr>
8304
8305 * src/output.c (output_master_parser): Don't finish action_obstack.
8306 (output_parser): Don't care about the muscle action, here.
8307 (prepare): Copy the action_obstack in the action muscle.
8308 (output): Free action_obstack.
8309
83102001-09-23 Pascal Bart <pascal.bart@epita.fr>
8311
8312 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8313 will contain `%union' declaration.
8314 (parse_union_decl): Delete #line directive output.
8315 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8316 informations about %union.
8317 (parse_union_decl): Copy the union_obstack in the muscle stype.
8318 * src/bison.simple: Add new #line directive.
8319 Add typdef %%stype YYSTYPE.
8320
83212001-09-23 Pascal Bart <pascal.bart@epita.fr>
8322
8323 * src/bison.simple: Add new `#line' directive.
8324
83252001-09-22 Pascal Bart <pascal.bart@epita.fr>
8326
8327 * src/bison.simple: New `#line' directive.
8328 * src/output.c (output_parser): Support new dynamic muscle input_line.
8329
83302001-09-22 Marc Autret <autret_m@epita.fr>
8331
8332 * src/output.c (output_master_parser): New.
8333 (output_parser): Be more re-entrant.
8334
83352001-09-21 Marc Autret <autret_m@epita.fr>
8336
8337 * src/reader.c (copy_definition, parse_union_decl): Update and use
8338 `linef' muscle.
8339 (copy_action): Likewise.
8340 Use obstack_1grow ().
8341 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8342
83432001-09-21 Marc Autret <autret_m@epita.fr>
8344
8345 * src/options.c (option_table): Adjust.
8346 * src/lex.c (parse_percent_token): Fix.
8347
83482001-09-20 Pascal Bart <pascal.bart@epita.fr>
8349
8350 * src/options.c (symtab.h): Include it, need by lex.h.
8351
83522001-09-20 Pascal Bart <pascal.bart@epita.fr>
8353
8354 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8355 is now an option_table_struct*.
8356 (option_strcmp): New function option_strcmp.
8357 (parse_percent_token): Call option_strcmp.
8358 * src/getargs.c (xalloc.h, options.h): Include it.
8359 (getargs): Call create_long_option_table.
8360 (getargs): Free longopts at the end of the function.
8361 (shortopts): Move in options.c.
8362 * src/options.c (create_long_option_table): New function. Convert
8363 information from option_table to option structure.
8364 * src/reader.c (options.h): Include it.
8365
8366 * src/Makefile.am: Adjust.
8367 * src/options.c (option_table): Create from longopts and percent_table.
8368 * src/getargs.c (longopts): Delete.
8369 * src/lex.c (struct percent_table_struct): Delete.
8370 (percent_table): Delete.
8371 (options.h): Include it.
8372 * src/options.c: Create.
8373 * src/options.h: Create.
8374 Declare enum opt_access_e.
8375 Define struct option_table_struct.
8376
83772001-09-20 Marc Autret <autret_m@epita.fr>
8378
8379 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8380 sections of Bison.
8381
83822001-09-19 Pascal Bart <pascal.bart@epita.fr>
8383
8384 * src/bison.simple: s/%%filename/%%skeleton.
8385 * src/muscle_tab.c (getargs.h): Include it.
8386 (muscle_init): Insert new muscle skeleton.
8387
83882001-09-18 Pascal Bart <pascal.bart@epita.fr>
8389
8390 * src/output.c (output_parser): Delete unused variable actions_dumped.
8391
83922001-09-07 Pascal Bart <pascal.bart@epita.fr>
8393
8394 * src/output.c (output): Delete call to reader_output_yylsp.
8395 * src/reader.c (reader): Likewise.
8396 * src/reader.h: Delete declaration of reader_output_yylsp.
8397
83982001-09-02 Marc Autret <autret_m@epita.fr>
8399
8400 * src/reader.c: Include muscle_tab.h.
8401 (parse_union_decl): Update.
8402 (parse_macro_decl): Rename parse_muscle_decl.
8403 Update to use renamed functions and variable.
8404 (read_declarations, copy_action, read_additionnal_code, : Updated
8405 with correct variables and functions names.
8406 (packsymbols, reader): Likewise.
8407
8408 * src/reader.h (muscle_obstack): Extern declaration update.
8409
8410 * src/output.c: Include muscle_tab.h
8411 In all functions using macro_insert, change by using muscle_insert ().
8412 (macro_obstack): Rename muscle_obstack.
8413 Echo modifications in the whole file.
8414 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8415 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8416 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8417
8418 * src/muscle_tab.h: Update double inclusion macros.
8419 (macro_entry_s): Rename muscle_entry_s.
8420 Update prototypes.
8421
8422 * src/muscle_tab.c: Include muscle_tab.h.
8423 Rename macro_tabble to muscle_table.
8424 (mhash1, mhash2, mcmp): Use muscle_entry.
8425 (macro_init): Rename muscle_init. Update.
8426 (macro_insert): Rename muscle_insert. Update.
8427 (macro_find): Rename muscle_find. Update.
8428
8429 * src/main.c: Include muscle_tab.h.
8430 (main): Call muscle_init ().
8431 * src/Makefile.am (bison_SOURCES): Echo modifications.
8432
84332001-09-02 Marc Autret <autret_m@epita.fr>
8434
8435 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8436
8437 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8438
84392001-09-02 Marc Autret <autret_m@epita.fr>
8440
8441 * src/macrotab.c, src/macrotab.h: Remove.
8442
84432001-09-01 Pascal Bart <pascal.bart@epita.fr>
8444
8445 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8446 filename.
8447
84482001-09-01 Marc Autret <autret_m@epita.fr>
8449
8450 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8451 to an explicit value to activate the feature. We do it here.
8452
84532001-08-31 Pascal Bart <pascal.bart@epita.fr>
8454
8455 * src/output.c (prepare): Delete the `filename' muscule insertion.
8456 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8457 (parse_union_decl): Likewise.
8458 * src/macrotab.c (macro_init): Initialize filename by infile.
8459
84602001-08-31 Marc Autret <autret_m@epita.fr>
8461
8462 * src/bison.simple (YYLSP_NEEDED): New definition.
8463 * src/output.c (prepare): Add macro insertion of `locations_flag'
8464
84652001-08-31 Pascal Bart <pascal.bart@epita.fr>
8466
8467 * src/output.c (prepare): Delete insertion of previous muscles,
8468 and insert the `prefix' muscles.
8469 * src/macrotab.c (macro_init): Likewise.
8470 (macro_init): Initialization prefix directive by `yy'.
8471 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8472 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8473 yylval, yydebug, yyerror, yynerrs and yyparse.
8474 New directive `#define' to substitute yydebug, ... with option
8475 name_prefix.
8476
84772001-08-31 Pascal Bart <pascal.bart@epita.fr>
8478
8479 * src/main.c (main): Standardize.
8480 * src/output.c (output_table_data, output_parser): Likewise.
8481 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8482
84832001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8484
8485 * src/reader.c (read_additionnal_code): Rename %%user_code to
8486 %%epilogue.
8487 * src/output.c (output): Rename %%declarations to %%prologue.
8488 * src/bison.simple: Echo modifications.
8489
84902001-08-31 Marc Autret <autret_m@epita.fr>
8491
8492 * src/reader.c (readgram): CleanUp.
8493 (output_token_defines): Likewise.
8494 (packsymbols): Likewise.
8495 (reader): Likewise.
8496 * src/output.c (output): CPP-out useless code.
8497
84982001-08-31 Pascal Bart <pascal.bart@epita.fr>
8499
8500 * src/reader.c (reader): Delete obsolete call to function
8501 output_trailers and output_headers.
8502 * src/output.h: Remove obsolete functions prototypes of output_headers
8503 and output_trailers.
8504
85052001-08-30 Pascal Bart <pascal.bart@epita.fr>
8506
8507 * src/main.c: Include macrotab.h.
8508 * src/macrotab.h (macro_entry_s): Constify fields.
8509 Adjust functions prototypes.
8510 * src/macrotab.c (macro_insert): Constify key and value.
8511 (macro_find): Constify key.
8512 (macro_insert): Include 'xalloc.h'
8513 (macro_insert): Use XMALLOC.
8514 (macro_find): Constify return value.
8515 * src/output.c (output_table_data): Rename table to table_data.
8516 (output_parser): Constify macro_key, macro_value.
8517
85182001-08-30 Marc Autret <autret_m@epita.fr>
8519
8520 * src/reader.c (parse_skel_decl): New.
8521 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
8522 * src/lex.h (token_t): New token `tok_skel'.
8523 * src/lex.c (percent_table): Add skeleton option entry.
8524 Standardize.
8525
85262001-08-29 Marc Autret <autret_m@epita.fr>
8527
8528 * src/bison.simple: Add %%user_code directive at the end.
8529 * src/reader.c (read_additionnal_code): New.
8530 (reader): Use it.
8531 * src/output.c (output_program): Remove.
8532 (output): Update.
8533
85342001-08-28 Marc Autret <autret_m@epita.fr>
8535
8536 * src/output.c (output_actions): Clean up.
8537 (output_gram): CPP-out useless code.
8538 * src/reader.c (reader): Clean up, CPP-out useless code.
8539
85402001-08-28 Pascal Bart <pascal.bart@epita.fr>
8541
8542 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
8543 directive.
8544 * src/bison.simple: Add `%%definitions'.
8545
85462001-08-28 Marc Autret <autret_m@epita.fr>
8547
8548 * config/depcomp: New file.
8549
85502001-08-27 Paul Eggert <eggert@twinsun.com>
8551
8552 * src/bison.simple (yyparse): Don't take the address of an
8553 item before the start of an array, as that doesn't conform to
8554 the C Standard.
8555
85562001-08-27 Robert Anisko <robert.anisko@epita.fr>
8557
8558 * src/output.c (output): Remove the initialization of the macro
8559 obstack. It was done too late here.
8560
8561 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8562 completely wrong.
8563 (reader): Initialize the macro obstack here, since we need it to grow
8564 '%define' directives.
8565
8566 * src/reader.h: Declare the macro obstack as extern.
8567
85682001-08-27 Robert Anisko <robert.anisko@epita.fr>
8569
8570 * src/output.c (output_parser): Fix. Store single '%' characters in
8571 the output obstack instead of throwing them away.
8572
85732001-08-27 Akim Demaille <akim@epita.fr>
8574
8575 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8576
85772001-08-25 Robert Anisko <robert.anisko@epita.fr>
8578
8579 * lib/Makefile.am: Adjust.
8580
85812001-08-25 Robert Anisko <robert.anisko@epita.fr>
8582
8583 * src/bison.simple: Update and add '%%' directives.
8584
85852001-08-25 Robert Anisko <robert.anisko@epita.fr>
8586
8587 * src/reader.c (reader): Remove calls to 'output_headers' and
8588 'output_trailers'. Remove some C output.
8589 (readgram): Disable a piece of code that was writing a default
8590 definition for 'YYSTYPE'.
8591 (reader_output_yylsp): Remove.
8592 (packsymbols): Output token defintions to a macro.
8593 (copy_definition): Disable C output.
8594
8595 * src/reader.c (parse_macro_decl): New function used to parse macro
8596 declarations.
8597 (copy_string2): Put the body of copy_string into this new function.
8598 Add a parameter to let the caller choose whether he wants to copy the
8599 string delimiters or not.
8600 (copy_string): Be a simple call to copy_string2 with the last argument
8601 bound to true.
8602 (read_declarations): Add case for macro definition.
8603 (copy_identifier): New.
8604 (parse_macro_decl): Read macro identifiers using copy_identifier
8605 rather than lex.
8606
86072001-08-25 Robert Anisko <robert.anisko@epita.fr>
8608
8609 * src/output.c (prepare): Add prefixed names.
8610 (output_parser): Output semantic actions.
8611 (output_parser): Fix bug on '%%line' directives.
8612
8613 * src/output.c (output_headers): Remove. The C code printed by this
8614 function should now be in the skeletons.
8615 (output_trailers): Remove.
8616 (output): Disable call to 'reader_output_yylsp'.
8617 (output_rule_data): Do not output tables to the table obstack.
8618
8619 * src/output.c: Remove some C dedicated output.
8620 Improve the use of macro and output obstacks.
8621 (output_defines): Remove.
8622
8623 * src/output.c (output_token_translations): Associate 'translate'
8624 table with a macro. No output to the table obstack.
8625 (output_gram): Same for 'rhs' and 'prhs'.
8626 (output_stos): Same for 'stos'.
8627 (output_rule_data): Same for 'r1' and 'r2'.
8628 (token_actions): Same for 'defact'.
8629 (goto_actions): Same for 'defgoto'.
8630 (output_base): Same for 'pact' and 'pgoto'.
8631 (output_table): Same for 'table'.
8632 (output_check): Same for 'check'.
8633
8634 * src/output.c (output_table_data): New function.
8635 (output_short_table): Remove.
8636 (output_short_or_char_table): Remove.
8637
8638 * src/output.c (output_parser): Replace most of the skeleton copy code
8639 with something new. Skeletons are now processed character by character
8640 rather than line by line, and Bison looks for '%%' macros. This is the
8641 first step in making Bison's output process (a lot) more flexible.
8642 (output_parser): Use the macro table.
8643
86442001-08-25 Robert Anisko <robert.anisko@epita.fr>
8645
8646 * src/main.c (main): Initialize the macro table.
8647
86482001-08-25 Robert Anisko <robert.anisko@epita.fr>
8649
8650 * src/lex.c (percent_table): Add tok_define.
8651 * src/lex.h: Add tok_define.
8652
86532001-08-25 Robert Anisko <robert.anisko@epita.fr>
8654
8655 * src/macrotab.c: New file.
8656 * src/macrotab.h: New file.
8657 * src/Makefile.am: Update.
8658
86592001-08-25 Robert Anisko <robert.anisko@epita.fr>
8660
8661 * lib/hash.c: New file.
8662 * lib/hash.h: New file.
8663 * lib/Makefile.am: Update.
8664
86652001-08-15 Akim Demaille <akim@epita.fr>
8666
8667 Version 1.28c.
8668
86692001-08-15 Marc Autret <autret_m@epita.fr>
8670
8671 * src/reader.c (readgram): Indent output macro YYSTYPE.
8672 (packsymbols): Likewise.
8673 (output_token_defines): Likewise.
8674 * src/files.c: Standardize.
8675 (compute_header_macro): New.
8676 (defines_obstack_save): New. Use compute_header_macro.
8677 (output_files): Update. Use defines_obstack_save.
8678
86792001-08-15 Akim Demaille <akim@epita.fr>
8680
8681 * doc/bison.texinfo (Table of Symbols): Document
8682 YYSTACK_USE_ALLOCA.
8683
86842001-08-15 Akim Demaille <akim@epita.fr>
8685
8686 * missing: Update from CVS Automake.
8687 * config/config.guess, config/config.sub, config/texinfo.tex:
8688 Update from gnu.org.
8689
86902001-08-15 Akim Demaille <akim@epita.fr>
8691
8692 * Makefile.maint: Sync with CVS Autoconf.
8693
86942001-08-14 Pascal Bart <pascal.bart@epita.fr>
8695
8696 * doc/bison.texinfo: Include GNU Free Documentation License from
8697 `fdl.texi'.
8698 * doc/fdl.texi: Add to package.
8699
87002001-08-14 Marc Autret <autret_m@epita.fr>
8701
8702 Turn on %{source,header}_extension features.
8703
8704 * src/lex.c (percent_table): Un-CPP out header_extension and
8705 source_extension.
8706 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
8707 (compute_exts_from_src): Remove conditions. It restores priorities
8708 between options.
8709
87102001-08-14 Marc Autret <autret_m@epita.fr>
8711
8712 * src/files.c (compute_base_names): Add extensions computing when
8713 `--file-prefix' used.
8714 Standardize function calls.
8715
87162001-08-13 Marc Autret <autret_m@epita.fr>
8717
8718 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
8719 defining it (defined but null disables alloca).
8720
87212001-08-13 Marc Autret <autret_m@epita.fr>
8722
8723 * src/bison.simple (_yy_memcpy): CPP reformat.
8724
87252001-08-13 Pascal Bart <pascal.bart@epita.fr>
8726
8727 * tests/atconfig.in (CPPFLAGS): Fix.
8728
87292001-08-10 Pascal Bart <pascal.bart@epita.fr>
8730
8731 * doc/bison.texinfo: Include GNU General Public License from
8732 `gpl.texi'.
8733 * doc/gpl.texi: Add to package.
8734
87352001-08-10 Marc Autret <autret_m@epita.fr>
8736
8737 * src/print_graph.h: Fix.
8738 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
8739
87402001-08-10 Akim Demaille <akim@epita.fr>
8741
8742 * src/system.h: Provide default declarations for stpcpy, strndup,
8743 and strnlen.
8744
87452001-08-10 Robert Anisko <anisko_r@epita.fr>
8746
8747 * doc/bison.texinfo (Locations): Update @$ stuff.
8748
87492001-08-09 Robert Anisko <anisko_r@epita.fr>
8750
8751 * src/bison.simple (YYLLOC_DEFAULT): Update.
8752 (yyparse): Adjust.
8753
87542001-08-08 Marc Autret <autret_m@epita.fr>
8755
8756 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
8757 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8758 Reported by Fabrice Bauzac.
8759
87602001-08-08 Marc Autret <autret_m@epita.fr>
8761
8762 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
8763 * src/vcg.c (output_node): Fix.
8764 * src/vcg.h: Cleanup.
8765 * src/print_graph.c: Add comments.
8766 (node_output_size): New global variable. Simplify the formatting of
8767 the VCG graph output.
8768 (print_actions): Unused code is now used. It notifies the final state
8769 and no action states in the VCG graph. It also give the reduce actions.
8770 The `shift and goto' edges are red and the `go to state' edges are
8771 blue.
8772 Get the current node name and node_obstack by argument.
8773 (node_obstack): New variable.
8774 (print_state): Manage node_obstack.
8775 (print_core): Use node_obstack given by argument.
8776 A node is not only computed here but in print_actions also.
8777 (print_graph): CPP out useless code instead of commenting it.
8778
87792001-08-07 Pascal Bart <pascal.bart@epita.fr>
8780
8781 * tests/atconfig.in (CPPFLAGS): Fix.
8782
87832001-08-07 Akim Demaille <akim@epita.fr>
8784
8785 * src/print_graph.c (quote): New.
8786 (print_core): Use it.
8787
87882001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
8789
8790 * src/vcg.c (complain.h): Include it.
8791 Unepitaize `return' invocations.
8792 [NDEBUG] (main): Remove.
8793 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
8794 * src/files.c (open_files): Initialize graph_obstack.
8795 * src/print_graph.c (print_actions): CPP out useless code.
8796 (print_core): Don't output the last `\n' in labels.
8797 Use `quote'.
8798 * src/files.c (output_files): Output the VCG file.
8799 * src/main.c (main): Invoke print_graph ();
8800
88012001-08-06 Marc Autret <autret_m@epita.fr>
8802
8803 Automaton VCG graph output.
8804 Using option ``-g'' or long option ``--graph'', you can generate
8805 a gram_filename.vcg file containing a VCG description of the LALR (1)
8806 automaton of your grammar.
8807
8808 * src/main.c: Call to print_graph() function.
8809 * src/getargs.h: Update.
8810 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
8811 (graph_flag): New flag.
8812 (longopts): Update.
8813 (getargs): Add case `g'.
8814 * src/files.c (graph_obstack): New obstack struct.
8815 (open_files): Initialize new obstack.
8816 (output_files): Saves graph_obstack if required.
8817 * src/files.h (graph_obstack): New extern declaration.
8818 * src/Makefile.am: Add new source files.
8819
88202001-08-06 Marc Autret <autret_m@epita.fr>
8821
8822 * src/print_graph.c, src/print_graph.h (graph): New.
8823 * src/vcg.h: New file.
8824 * src/vcg.c: New file, VCG graph handling.
8825
88262001-08-06 Marc Autret <autret_m@epita.fr>
8827
8828 Add of %source_extension and %header_extension which specify
8829 the source or/and the header output file extension.
8830
8831 * src/files.c (compute_base_names): Remove initialisation of
8832 src_extension and header_extension.
8833 (compute_exts_from_gf): Update.
8834 (compute_exts_from_src): Update.
8835 (output_files): Update.
8836 * src/reader.c (parse_header_extension_decl): New.
8837 (parse_source_extension_decl): New.
8838 (read_declarations): New case statements for the new tokens.
8839 * src/lex.c (percent_table): Add entries for %source_extension
8840 and %header_extension.
8841 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
8842
88432001-08-06 Marc Autret <autret_m@epita.fr>
8844
8845 * configure.in: Bump to 1.28c.
8846 * doc/bison.texinfo: Texinfo thingies.
8847
88482001-08-04 Pascal Bart <pascal.bart@epita.fr>
8849
8850 * tests/atconfig.in (CPPFLAGS): Add.
8851 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8852
88532001-08-03 Akim Demaille <akim@epita.fr>
8854
8855 Version 1.28b.
8856
88572001-08-03 Akim Demaille <akim@epita.fr>
8858
8859 * tests/Makefile.am (check-local): Ship testsuite.
8860 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
8861 Include `string.h'.
8862
88632001-08-03 Akim Demaille <akim@epita.fr>
8864
8865 * configure.in: Try using -Wformat when compiling.
8866
88672001-08-03 Akim Demaille <akim@epita.fr>
8868
8869 * configure.in: Bump to 1.28b.
8870
88712001-08-03 Akim Demaille <akim@epita.fr>
8872
8873 * src/complain.c: Adjust strerror_r portability issues.
8874
88752001-08-03 Akim Demaille <akim@epita.fr>
8876
8877 Version 1.28a.
8878
88792001-08-03 Akim Demaille <akim@epita.fr>
8880
8881 * src/getargs.c, src/getarg.h (skeleton)): Constify.
8882 * src/lex.c (literalchar): Avoid name clashes on `buf'.
8883 * src/getargs.c: Include complain.h.
8884 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
8885 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
8886
88872001-08-03 Akim Demaille <akim@epita.fr>
8888
8889 * src/reader.c (readgram): Display hidden chars in error messages.
8890
88912001-08-03 Akim Demaille <akim@epita.fr>
8892
8893 Update to gettext 0.10.39.
8894
88952001-08-03 Akim Demaille <akim@epita.fr>
8896
8897 * lib/strspn.c: New.
8898
88992001-08-01 Marc Autret <autret_m@epita.fr>
8900
8901 * doc/bison.texinfo: Update.
8902 * doc/bison.1 (mandoc): Update.
8903 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
8904 * src/files.c: Support output files extensions computing.
8905 (src_extension): New static variable.
8906 (header_extension): New static variable.
8907 (tr): New function.
8908 (get_extension_index): New function, gets the index of an extension
8909 filename in a string.
8910 (compute_exts_from_gf): New function, computes extensions from the
8911 grammar file extension.
8912 (compute_exts_from_src): New functions, computes extensions from the
8913 C source file extension, file given by ``-o'' option.
8914 (compute_base_names): Update.
8915 (output_files): Update.
8916
89172001-08-01 Robert Anisko <anisko_r@epita.fr>
8918
8919 * doc/bison.texi: Document @$.
8920 (Locations): New section.
8921
89222001-07-18 Akim Demaille <akim@epita.fr>
8923
8924 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
8925 * config/prev-version.txt, config/move-if-change: New.
8926 * Makefile.am: Adjust.
8927
89282001-07-08 Pascal Bart <pascal.bart@epita.fr>
8929
8930 * src/bison.simple (yyparse): Suppress warning `comparaison
8931 between signed and unsigned'.
8932
89332001-07-05 Pascal Bart <pascal.bart@epita.fr>
8934
8935 * src/getargs.h (raw_flag): Remove.
8936 * src/getargs.c: Die on `-r'/`--raw'.
8937 * src/lex.c (parse_percent_token): Die on `%raw'.
8938 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
8939 * tests/calc.at: Suppress test with option `--raw'.
8940
89412001-07-14 Akim Demaille <akim@epita.fr>
8942
8943 * config/: New.
8944 * configure.in: Require Autoconf 2.50.
8945 Update to gettext 0.10.38.
8946
89472001-03-16 Akim Demaille <akim@epita.fr>
8948
8949 * doc/bison.texinfo: ANSIfy the examples.
8950
89512001-03-16 Akim Demaille <akim@epita.fr>
8952
8953 * getargs.c (skeleton): New variable.
8954 (longopts): --skeleton is a new option.
8955 (shortopts, getargs): -S is a new option.
8956 * getargs.h: Declare skeleton.
8957 * output.c (output_parser): Use it.
8958
89592001-03-16 Akim Demaille <akim@epita.fr>
8960
8961 * m4/strerror_r.m4: New.
8962 * m4/error.m4: Run AC_FUNC_STRERROR_R.
8963 * lib/error.h, lib/error.c: Update.
8964
89652001-03-16 Akim Demaille <akim@epita.fr>
8966
8967 * src/getargs.c (longopts): Clean up.
8968
89692001-02-21 Akim Demaille <akim@epita.fr>
8970
8971 * src/reader.c (gensym): `gensym_count' is your own.
8972 Use a static buf to create the symbol name, as token_buffer is no
8973 longer a buffer.
8974
89752001-02-08 Akim Demaille <akim@epita.fr>
8976
8977 * src/conflicts.c (conflict_report): Be sure not to append to res
8978 between two calls, which could happen if both first sprintf were
8979 skipped, but not the first cp += strlen.
8980
89812001-02-08 Akim Demaille <akim@epita.fr>
8982
8983 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
8984 New, from fileutils 4.0.37.
8985 * configure.in: Require Autoconf 2.49c. I took some time before
8986 making this decision. This is the only way out for portability
8987 issues in Bison, it would mean way too much duplicate effort to
8988 import in Bison features implemented in 2.49c since 2.13.
8989 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
8990
89912001-02-02 Akim Demaille <akim@epita.fr>
8992
8993 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
8994 * lib/xalloc.h, lib/xmalloc.c: Update.
8995
89962001-01-19 Akim Demaille <akim@epita.fr>
8997
8998 Get rid of the ad hoc handling of token_buffer in the scanner: use
8999 the obstacks.
9000
9001 * src/lex.c (token_obstack): New.
9002 (init_lex): Initialize it. No longer call...
9003 (grow_token_buffer): this. Remove it.
9004 Adjust all the places which used it to use the obstack.
9005
90062001-01-19 Akim Demaille <akim@epita.fr>
9007
9008 * src/lex.h: Rename all the tokens:
9009 s/\bENDFILE\b/tok_eof/g;
9010 s/\bIDENTIFIER\b/tok_identifier/g;
9011 etc.
9012 Let them be enums, not #define, to ease debugging.
9013 Adjust all the code.
9014
90152001-01-18 Akim Demaille <akim@epita.fr>
9016
9017 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
9018 * src/lex.c (maxtoken, grow_token_buffer): Static.
9019
90202001-01-18 Akim Demaille <akim@epita.fr>
9021
9022 Since we now use obstacks, more % directives can be enabled.
9023
9024 * src/lex.c (percent_table): Also accept `%yacc',
9025 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
9026 `%debug'.
9027 Handle the actions for `%semantic_parser' and `%pure_parser' here,
9028 instead of returning a token.
9029 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
9030 * src/reader.c (read_declarations): Adjust.
9031 * src/files.c (open_files): Don't call `compute_base_names', don't
9032 compute `attrsfile' since they depend upon data which might be
9033 *in* the input file now.
9034 (output_files): Do it here.
9035 * src/output.c (output_headers): Document the fact that this patch
9036 introduces a guaranteed SEGV for semantic parsers.
9037 * doc/bison.texinfo: Document them.
9038 * tests/suite.at: Exercise these %options.
9039
90402000-12-20 Akim Demaille <akim@epita.fr>
9041
9042 Also handle the output file (--verbose) with obstacks.
9043
9044 * files.c (foutput): Remove.
9045 (output_obstack): New.
9046 Adjust all dependencies.
9047 * src/conflicts.c: Return a string.
9048 * src/system.h (obstack_grow_string): Rename as...
9049 (obstack_sgrow): this. Be ready to work with non literals.
9050 (obstack_fgrow4): New.
9051
90522000-12-20 Akim Demaille <akim@epita.fr>
9053
9054 * src/files.c (open_files): Fix the computation of short_base_name
9055 in the case of `-o foo.tab.c'.
9056
90572000-12-20 Akim Demaille <akim@epita.fr>
9058
9059 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
9060 (copy_dollar): Now that everything uses obstacks, get rid of the
9061 FILE * parameters.
9062
90632000-12-20 Akim Demaille <akim@epita.fr>
9064
9065 * src/files.c (open_files): Actually the `.output' file is based
9066 on the short_base_name, not base_name.
9067 * tests/suite.at (Checking output file names): Adjust.
9068
90692000-12-20 Akim Demaille <akim@epita.fr>
9070
9071 * src/bison.s1: Remove, we now use directly...
9072 * src/bison.simple: this.
9073 * src/Makefile.am: Use pkgdata instead of data.
9074
90752000-12-20 Akim Demaille <akim@epita.fr>
9076
9077 * src/files.c (guard_obstack): New.
9078 (open_files): Initialize it.
9079 (output_files): Dump it...
9080 * src/files.h: Export it.
9081 * src/reader.c (copy_guard): Use it.
9082
90832000-12-19 Akim Demaille <akim@epita.fr>
9084
9085 * src/files.c (outfile, defsfile, actfile): Removed as global
9086 vars.
9087 (open_files): Don't compute them.
9088 (output_files): Adjust.
9089 (base_name, short_base_name): Be global.
9090 Adjust dependencies.
9091
90922000-12-19 Akim Demaille <akim@epita.fr>
9093
9094 * src/files.c (strsuffix): New.
9095 (stringappend): Be just like strcat but allocate.
9096 (base_names): Eve out from open_files.
9097 Try to simplify the rather hairy computation of base_name and
9098 short_base_name.
9099 (open_files): Use it.
9100 * tests/suite.at (Checking output file names): New test.
9101
91022000-12-19 Akim Demaille <akim@epita.fr>
9103
9104 * src/system.h (obstack_grow_literal_string): Rename as...
9105 (obstack_grow_string): this.
9106 * src/output.c (output_parser): Recognize `%% actions' instead of
9107 `$'.
9108 * src/bison.s1: s/$/%% actions/.
9109 * src/bison.hairy: Likewise.
9110
91112000-12-19 Akim Demaille <akim@epita.fr>
9112
9113 * src/output.c (output_parser): Compute the `#line' lines when
9114 there are.
9115 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9116 Suggested by Hans Aberg.
9117
91182000-12-19 Akim Demaille <akim@epita.fr>
9119
9120 Let the handling of the skeleton files be local to the procedures
9121 that use it.
9122
9123 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9124 longer static.
9125 (fparser, open_extra_files): Remove.
9126 (open_files, output_files): Don't take care of fparser.
9127 * src/files.h: Adjust.
9128 * src/output.c (output_parser): Open and close the file to the
9129 skeleton.
9130 * src/reader.c (read_declarations): When %semantic_parser, open
9131 fguard.
9132
91332000-12-19 Akim Demaille <akim@epita.fr>
9134
9135 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9136 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9137
91382000-12-19 Akim Demaille <akim@epita.fr>
9139
9140 * src/files.c (open_files): Yipee! We no longer need all the code
9141 looking for `/tmp' since we have no tmp file.
9142
91432000-12-19 Akim Demaille <akim@epita.fr>
9144
9145 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9146 New macros.
9147 * src/files.c (open_files): Less dependency on MSDOS etc.
9148
91492000-12-14 Akim Demaille <akim@epita.fr>
9150
9151 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9152 Provide a default definition.
9153 Use it when executing the default @ action.
9154 * src/reader.c (reader_output_yylsp): No longer include
9155 `timestamp' and `text' in the default YYLTYPE.
9156
91572000-12-12 Akim Demaille <akim@epita.fr>
9158
9159 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9160 (copy_guard): Quote the file names.
9161 Reported by Laurent Mascherpa.
9162
91632000-12-12 Akim Demaille <akim@epita.fr>
9164
9165 * src/output.c (output_headers, output_program, output): Be sure
9166 to escape special characters when outputting filenames.
9167 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9168 (output_headers): Don't depend on them, Use ACTSTR.
9169
91702000-11-17 Akim Demaille <akim@epita.fr>
9171
9172 * lib/obstack.h: Formatting changes.
9173 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9174 prevents type checking.
9175 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9176 cast the value to (void *): assigning a `foo *' to a `void *'
9177 variable is valid.
9178 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9179 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9180 append characters.
9181
91822000-11-17 Akim Demaille <akim@epita.fr>
9183
9184 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9185 as...
9186 (suite.m4, regression.m4, calc.m4): these.
9187 * tests/atgeneral.m4: Update from CVS Autoconf.
9188
91892000-11-17 Akim Demaille <akim@epita.fr>
9190
9191 * tests/regression.m4 (%union and --defines): New test,
9192 demonstrating a current bug in the obstack implementation.
9193
91942000-11-17 Akim Demaille <akim@epita.fr>
9195
9196 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9197 macros.
9198 Use them to declare the variables which are global or local to
9199 `yyparse'.
9200
92012000-11-17 Akim Demaille <akim@epita.fr>
9202
9203 * acconfig.h: Remove, no longer used.
9204
92052000-11-07 Akim Demaille <akim@epita.fr>
9206
9207 * src: s/Copyright (C)/Copyright/g.
9208
92092000-11-07 Akim Demaille <akim@epita.fr>
9210
9211 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9212 defining.
9213 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9214
92152000-11-07 Akim Demaille <akim@epita.fr>
9216
9217 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9218 Merge in a single CPP if/else.
9219
92202000-11-07 Akim Demaille <akim@epita.fr>
9221
9222 * src/output.c (output): Remove useless variables.
9223 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9224 argument `data' for consistency with the prototypes.
9225 Qualify it `const'.
9226 (obstack_copy, obstack_copy0): Rename the second argument as
9227 `address' for consistency. Qualify it `const'.
9228 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9229 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9230 `const' their input argument (`data' or `address').
9231 Adjust the corresponding macros to include `const' in casts.
9232
92332000-11-03 Akim Demaille <akim@epita.fr>
9234
9235 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9236 s/PFILE1/BISON_HAIRY/.
9237 Adjust dependencies.
9238
92392000-11-03 Akim Demaille <akim@epita.fr>
9240
9241 For some reason, this was not applied.
9242
9243 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9244 `unlink': it's no longer used.
9245
92462000-11-03 Akim Demaille <akim@epita.fr>
9247
9248 * src/files.c (skeleton_find): New function, eved out of...
9249 (open_files, open_extra_files): here.
9250
92512000-11-03 Akim Demaille <akim@epita.fr>
9252
9253 Don't use `atexit'.
9254
9255 * src/files.c (obstack_save): New function.
9256 (done): Rename as...
9257 (output_files): this.
9258 Use `obstack_save'.
9259 * src/main.c (main): Don't use `atexit' to register `done', since
9260 it no longer has to remove tmp files, just call `output_files'
9261 when there are no errors.
9262
92632000-11-02 Akim Demaille <akim@epita.fr>
9264
9265 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9266 `unlink': it's no longer used.
9267 * src/files.h: Formatting changes.
9268
92692000-11-02 Akim Demaille <akim@epita.fr>
9270
9271 Remove the last uses of mktemp and unlink/delete.
9272
9273 * src/files.c (fdefines, ftable): Removed.
9274 (defines_ostack, table_obstack): New.
9275 Adjust dependencies of the former into uses of the latter.
9276 * src/output.c (output_short_or_char_table, output_short_table):
9277 Convert to using obstacks.
9278 * src/reader.c (copy_comment2): Accept one FILE * and two
9279 obstacks.
9280 (output_token_defines, reader_output_yylsp): Use obstacks.
9281 * src/system.h (obstack_fgrow3): New.
9282
92832000-11-01 Akim Demaille <akim@epita.fr>
9284
9285 Change each use of `fattrs' into a use of `attrs_obstack'.
9286
9287 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9288 * src/files.c (fattrs): Remove.
9289 (attrs_obstack): New.
9290 Adjust all dependencies.
9291 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9292
92932000-11-01 Akim Demaille <akim@epita.fr>
9294
9295 Introduce obstacks.
9296 Change each use of `faction' into a use of `action_obstack'.
9297
9298 * lib/obstack.h, lib/obstack.c: New files.
9299 * src/files.c (faction): Remove.
9300 (action_obstack): New.
9301 Adjust all dependencies.
9302
93032000-10-20 Akim Demaille <akim@epita.fr>
9304
9305 * lib/quote.h (PARAMS): New macro. Use it.
9306
93072000-10-16 Akim Demaille <akim@epita.fr>
9308
9309 * src/output.c (output_short_or_char_table): New function.
9310 (output_short_table, output_token_translations): Use it.
9311 (goto_actions): Use output_short_table.
9312
93132000-10-16 Akim Demaille <akim@epita.fr>
9314
9315 * src/symtab.c (bucket_new): New function.
9316 (getsym): Use it.
9317
9318 * src/output.c (output_short_table): New argument to display the
9319 comment associated with the table.
9320 Adjust dependencies.
9321 (output_gram): Use it.
9322 (output_rule_data): Nicer output layout for YYTNAME.
9323
93242000-10-16 Akim Demaille <akim@epita.fr>
9325
9326 * src/lex.c (read_typename): New function.
9327 (lex): Use it.
9328 * src/reader.c (copy_dollar): Likewise.
9329
93302000-10-16 Akim Demaille <akim@epita.fr>
9331
9332 * src/reader.c (copy_comment2): Expect the input stream to be on
9333 the `/' which is suspected to open a comment, instead of being
9334 called after `//' or `/*' was read.
9335 (copy_comment, copy_definition, parse_union_decl, copy_action)
9336 (copy_guard): Adjust.
9337
93382000-10-16 Akim Demaille <akim@epita.fr>
9339
9340 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9341 `read_signed_integer'.
9342
93432000-10-16 Akim Demaille <akim@epita.fr>
9344
9345 * src/reader.c (copy_dollar): New function.
9346 (copy_guard, copy_action): Use it.
9347
93482000-10-16 Akim Demaille <akim@epita.fr>
9349
9350 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9351 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9352 New files, from Fileutils 4.0.27.
9353 * src/main.c (printable_version): Remove.
9354 * src/lex.c, src/reader.c: Use `quote'.
9355
93562000-10-04 Akim Demaille <akim@epita.fr>
9357
9358 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9359
93602000-10-04 Akim Demaille <akim@epita.fr>
9361
9362 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9363
93642000-10-04 Akim Demaille <akim@epita.fr>
9365
9366 When a literal string is used to define two different tokens,
9367 `bison -v' segfaults.
9368 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9369
9370 * tests/regression.m4: New file.
9371 Include the core of the sample provided by Piotr Gackiewicz.
9372 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9373 properly.
9374
93752000-10-04 Akim Demaille <akim@epita.fr>
9376
9377 * src/reader.c (parse_expect_decl): Keep `count' within the size
9378 of `buffer'.
9379 From Neil Booth.
9380
93812000-10-02 Paul Eggert <eggert@twinsun.com>
9382
9383 * bison.s1 (yyparse): Assign the default value
9384 unconditionally, to avoid a GCC warning and make the parser a
9385 tad smaller.
9386
93872000-10-02 Akim Demaille <akim@epita.fr>
9388
9389 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9390 options.
9391
93922000-10-02 Akim Demaille <akim@epita.fr>
9393
9394 * src/derives.c, src/print.c, src/reduce.c: To ease the
9395 translation, move some `\n' out of the translated strings.
9396
93972000-10-02 Akim Demaille <akim@epita.fr>
9398
9399 The location tracking mechanism is precious for parse error
9400 messages. Nevertheless, it is enabled only when `@n' is used in
9401 the grammar, which is a different issue (you can use it in error
9402 message, but not in the grammar per se). Therefore, there should
9403 be another means to enable it.
9404
9405 * src/getargs.c (getargs): Support `--locations'.
9406 (usage): Report it.
9407 * src/getargs.h (locationsflag): Export it.
9408 * src/lex.c (percent_table): Support `%locations'.
9409 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9410 with `locationsflag'.
9411 * doc/bison.texinfo: Document `--locations' and `%locations'.
9412 Sort the options.
9413 * tests/calc.m4: Test it.
9414
9415 For regularity of the names, replace each
9416 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9417 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9418 In addition replace each `flag' with `_flag'.
9419
94202000-10-02 Akim Demaille <akim@epita.fr>
9421
9422 Also test parse error messages, including with YYERROR_VERBOSE.
9423
9424 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9425 associative).
9426 Use it to check the computations.
9427 Use it to check `nonassoc' is honored.
9428 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9429 `--yyerror-verbose'.
9430 (_AT_CHECK_CALC): Adjust to this option.
9431 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9432
94332000-10-02 Akim Demaille <akim@epita.fr>
9434
9435 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9436 the latter demonstrates a flaw in the handling of non debugging
9437 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9438 was used in order to simplify:
9439
9440 #if YYDEBUG
9441 if (yydebug)
9442 {
9443 ...
9444 }
9445 #endif
9446
9447 into
9448
9449 if (yydebug)
9450 {
9451 ...
9452 }
9453
9454 unfortunately this leads to a CPP conflict when
9455 `--name-prefix=foo' is used since it produces `#define yydebug
9456 foodebug'.
9457
9458 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9459 (YYDPRINTF): New macro.
9460 Spread its use.
9461 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9462 the bison options.
9463 Also test `--verbose', `--defines' and `--name-prefix'.
9464
94652000-10-02 Akim Demaille <akim@epita.fr>
9466
9467 Improve the readability of the produced parsers.
9468
9469 * src/bison.s1: Formatting changes.
9470 Improve the comment related to the `$' mark.
9471 (yydefault): Don't fall through to `yyresume': `goto' there.
9472 * src/output.c (output_parser): When the `$' is met, skip the end
9473 of its line.
9474 New variable, `number_of_dollar_signs', to check there's exactly
9475 one `$' in the parser skeleton.
9476
94772000-10-02 Akim Demaille <akim@epita.fr>
9478
9479 * lib/xstrdup.c: New file, from the fileutils.
9480 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9481 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9482 instead of strlen + xmalloc + strcpy.
9483 * src/symtab.c (copys): Remove, use xstrdup instead.
9484
94852000-10-02 Akim Demaille <akim@epita.fr>
9486
9487 * src/gram.h (associativity): New enum type which replaces the
9488 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9489 `right_assoc', `left_assoc' and `non_assoc'.
9490 Adjust all dependencies.
9491 * src/reader.c: Formatting changes.
9492 (LTYPESTR): Don't define it, use it as a literal in
9493 `reader_output_yylsp'.
9494 * src/symtab.h (symbol_class): New enum type which replaces the
9495 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9496 `sunknown', `stoken and `snterm'.
9497
94982000-10-02 Akim Demaille <akim@epita.fr>
9499
9500 * src/getargs.c (fixed_outfiles): Rename as...
9501 (yaccflag): for consistency and accuracy.
9502 Adjust dependencies.
9503
95042000-10-02 Akim Demaille <akim@epita.fr>
9505
9506 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9507 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9508 difficult and introduced a lot of core dump. It turns out that
9509 Bison used an implementation of `xmalloc' based on `calloc', and
9510 at various places it does depend upon the initialization to 0. I
9511 have not tried to isolate the pertinent places, and all the former
9512 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9513 someone should address this issue.
9514
9515 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9516 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9517 files.
9518 Adjust dependencies.
9519 * src/warshall.h: New file.
9520 Propagate.
9521
95222000-10-02 Akim Demaille <akim@epita.fr>
9523
9524 Various anti-`extern in *.c' changes.
9525
9526 * src/system.h: Include `assert.h'.
9527
95282000-10-02 Akim Demaille <akim@epita.fr>
9529
9530 * src/state.h (nstates, final_state, first_state, first_shift)
9531 (first_reduction): Move their exportation from here...
9532 * src/LR0.h: to here.
9533 Adjust dependencies.
9534 * src/getargs.c (statisticsflag): New variable.
9535 Add support for `--statistics'.
9536 Adjust dependencies.
9537
9538 Remove a lot of now useless `extern' statements in most files.
9539
95402000-10-02 Akim Demaille <akim@epita.fr>
9541
9542 * src/LR0.h: New file.
9543 Propagate its use.
9544
95452000-10-02 Akim Demaille <akim@epita.fr>
9546
9547 * src/print.h: New file.
9548 Propagate its use.
9549 * src/print.c: Formatting and ordering changes.
9550 (verbose, terse): Replace with...
9551 (print_results): this new function.
9552 Adjust dependencies.
9553
95542000-10-02 Akim Demaille <akim@epita.fr>
9555
9556 * src/conflicts.c (conflict_report): New function.
9557 (conflict_log, verbose_conflict_log): Replace with...
9558 (print_conflicts): this function.
9559 Adjust dependencies.
9560 * src/conflicts.h: New file.
9561 Propagate its inclusion.
9562
95632000-10-02 Akim Demaille <akim@epita.fr>
9564
9565 * src/nullable.h: New file.
9566 Propagate its inclusion.
9567 * src/nullable.c: Formatting changes.
9568
95692000-10-02 Akim Demaille <akim@epita.fr>
9570
9571 * src/reduce.h: New file.
9572 Propagate its inclusion.
9573 * src/reduce.c: Topological sort and other formatting changes.
9574 (bool, TRUE, FALSE): Move their definition to...
9575 * src/system.h: here.
9576
95772000-10-02 Akim Demaille <akim@epita.fr>
9578
9579 * src/files.c: Formatting changes.
9580 (tryopen, tryclose, openfiles): Rename as...
9581 (xfopen, xfclose, open_files): this.
9582 (stringappend): static.
9583 * src/files.h: Complete the list of exported symbols.
9584 Propagate its use.
9585
95862000-10-02 Akim Demaille <akim@epita.fr>
9587
9588 * src/reader.h: New file.
9589 Propagate its use instead of tedious list of `extern' and
9590 prototypes.
9591 * src/reader.c: Formatting changes, topological sort,
9592 s/register//.
9593
95942000-10-02 Akim Demaille <akim@epita.fr>
9595
9596 * src/lex.h: Prototype `lex.c' exported functions.
9597 * src/reader.c: Adjust.
9598 * src/lex.c: Formatting changes.
9599 (safegetc): Rename as...
9600 (xgetc): this.
9601
96022000-10-02 Akim Demaille <akim@epita.fr>
9603
9604 * src/lalr.h: New file.
9605 Propagate its inclusion instead of prototypes and `extern'.
9606 * src/lalr.c: Formatting changes, topological sorting etc.
9607
96082000-10-02 Akim Demaille <akim@epita.fr>
9609
9610 * src/output.c (token_actions): Introduce a temporary array,
9611 YYDEFACT, that makes it possible for this function to use
9612 output_short_table.
9613
96142000-10-02 Akim Demaille <akim@epita.fr>
9615
9616 `user_toknums' is output as a `short[]' in `output.c', while it is
9617 defined as a `int[]' in `reader.c'. For consistency with the
9618 other output tables, `user_toknums' is now defined as a table of
9619 shorts.
9620
9621 * src/reader.c (user_toknums): Be a short table instead of an int
9622 table.
9623 Adjust dependencies.
9624
9625 Factor the short table outputs.
9626
9627 * src/output.c (output_short_table): New function.
9628 * src/output.c (output_gram, output_stos, output_rule_data)
9629 (output_base, output_table, output_check): Use it.
9630
96312000-10-02 Akim Demaille <akim@epita.fr>
9632
9633 * src/output.c (output): Topological sort of the functions, in
9634 order to get rid of the `static' prototypes.
9635 No longer use `register'.
9636 * src/output.h: New file.
9637 Propagate its inclusion in files explicitly prototyping functions
9638 from output.c.
9639
96402000-09-21 Akim Demaille <akim@epita.fr>
9641
9642 * src/atgeneral.m4: Update from Autoconf.
9643
96442000-09-21 Akim Demaille <akim@epita.fr>
9645
9646 * src/closure.h: New file.
9647 * src/closure.c: Formatting changes, topological sort over the
9648 functions, use of closure.h.
9649 (initialize_closure, finalize_closure): Rename as...
9650 (new_closure, free_closure): these. Adjust dependencies.
9651 * src/LR0.c: Formatting changes, topological sort, use of
9652 cloture.h.
9653 (initialize_states): Rename as...
9654 (new_states): this.
9655 * src/Makefile.am (noinst_HEADERS): Adjust.
9656
96572000-09-20 Akim Demaille <akim@epita.fr>
9658
9659 * src/acconfig.h: Don't protect config.h against multiple
9660 inclusion.
9661 Don't define PARAMS.
9662 * src/system.h: Define PARAMS.
9663 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9664 purpose of config.h. system.h must not try to fix wrong
9665 definitions in config.h.
9666
96672000-09-20 Akim Demaille <akim@epita.fr>
9668
9669 * src/derives.h: New file.
9670 * src/main.c, src/derives.h: Use it.
9671 Formatting changes.
9672 * src/Makefile.am (noinst_HEADERS): Adjust.
9673
96742000-09-20 Akim Demaille <akim@epita.fr>
9675
9676 * tests/atgeneral.m4: Update from Autoconf.
9677 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9678 (AT_CHECK_CALC): New macros.
9679 Use these macros to test bison with options `', `--raw',
9680 `--debug', `--yacc', `--yacc --debug'.
9681
96822000-09-19 Akim Demaille <akim@epita.fr>
9683
9684 * src/output.c: Formatting changes.
9685 * src/machine.h: Remove, leaving its contents in...
9686 * src/system.h: here.
9687 Include stdio.h.
9688 Adjust all dependencies on stdio.h and machine.h.
9689 * src/getargs.h: New file.
9690 Let all `extern' declarations about getargs.c be replaced with
9691 inclusion of `getargs.h'.
9692 * src/Makefile.am (noinst_HEADERS): Adjust.
9693
9694 * tests/calc.m4 (yyin): Be initialized in main, not on the global
9695 scope.
9696 (yyerror): Returns void, not int.
9697 * doc/bison.texinfo: Formatting changes.
9698
96992000-09-19 Akim Demaille <akim@epita.fr>
9700
9701 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
9702 portable.
9703
97042000-09-18 Akim Demaille <akim@epita.fr>
9705
9706 * configure.in: Append WARNING_CFLAGS to CFLAGS.
9707 * src/Makefile.am (INCLUDES): Don't.
9708 Be ready to fetch headers in lib/.
9709
97102000-09-18 Akim Demaille <akim@epita.fr>
9711
9712 * doc/bison.texinfo: Update the copyright.
9713 ANSIfy and GNUify the examples.
9714 Remove the old menu.
9715
97162000-09-18 Akim Demaille <akim@epita.fr>
9717
9718 First set of tests: use the `calc' example from the documentation.
9719
9720 * src/bison.s1 (yyparse): Condition the code using `yytname' which
9721 is defined only when YYDEBUG is.
9722 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
9723 * src/files.c (tryopen, tryclose): Formatting changes.
9724 Move to the top and be static.
9725 * src/reader.c (read_signed_integer): Likewise.
9726 * tests/calc.m4: New file.
9727 * Makefile.am, suite.m4: Adjust.
9728 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
9729
97302000-09-18 Akim Demaille <akim@epita.fr>
9731
9732 Add support for an Autotest test suite for Bison.
9733
9734 * m4/m4.m4, m4/atconfig.m4: New files.
9735 * m4/Makefile.am (EXTRA_DIST): Adjust.
9736 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
9737 files.
9738 * src/getargs.c: Display a more standard --version message.
9739 * src/reader.c (reader): Formatting changes.
9740 No longer depend upon VERSION_STRING.
9741 * configure.in: No longer use `dnl'.
9742 Set up the test suite and the new directory `tests/.
9743 (VERSION_STRING): Remove.
9744
97452000-04-14 Akim Demaille <akim@epita.fr>
9746
9747 * src/reader.c (copy_comment2): New function, same as former
9748 `copy_comment', but outputs into two FILE *.
9749 (copy_comment): Use it.
9750 (parse_union_decl): Use it.
9751 (get_type, parse_start_decl): Use the same `invalid' message.
9752 (parse_start_decl, parse_union_decl): Use the same `multiple'
9753 message.
9754 (parse_union_decl, copy_guard, copy_action): Use the same
9755 `unmatched' message.
9756 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
9757
97582000-03-31 Akim Demaille <akim@epita.fr>
9759
9760 * src/files.c (tryopen, tryclose): Move to the top.
9761 Be static.
9762
97632000-03-31 Akim Demaille <akim@epita.fr>
9764
9765 * src/main.c (main): Don't call `done', exit does it.
9766
97672000-03-31 Akim Demaille <akim@epita.fr>
9768
9769 * allocate.c: s/return (foo)/return foo/.
9770 * lalr.c: Likewise.
9771 * LR0.c: Likewise.
9772 * output.c: Likewise.
9773 * reader.c: Likewise.
9774 * symtab.c: Likewise.
9775 * vmsgetargs.c: Likewise.
9776
97772000-03-31 Akim Demaille <akim@epita.fr>
9778
9779 Clean up the error reporting functions.
9780
9781 * src/report.c: New file.
9782 * src/report.h: Likewise.
9783 * src/Makefile.am: Adjust.
9784 * m4/error.m4: New file.
9785 * m4/Makefile.am: Adjust.
9786 * configure.in (jm_PREREQ_ERROR): Call it.
9787 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
9788 Remove.
9789 (fatal, fatals): Remove. All callers use complain.c::fatal.
9790 (warn, warni, warns, warnss, warnss): Remove. All callers use
9791 complain.c::complain.
9792 (toomany): Remove, use fatal instead.
9793 * src/files.c (done): No argument, use complain_message_count.
9794 * src/main.c (main): Register `done' to `atexit'.
9795
9796 * src/getargs.c (usage): More `fputs', less `fprintf'.
9797
97982000-03-28 Akim Demaille <akim@epita.fr>
9799
9800 * lib/: New directory.
9801 * Makefile.am (SUBDIRS): Adjust.
9802 * configure.in: Adjust.
9803 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
9804 useless.
9805 * src/alloca.c: Moved to lib/.
9806 * src/getopt.c: Likewise.
9807 * src/getopt1.c: Likewise.
9808 * src/getopt.h: Likewise.
9809 * src/ansi2knr.c: Likewise.
9810 * src/ansi2knr.1: Likewise.
9811 * src/Makefile.am: Adjust.
9812 * lib/Makefile.am: New file.
9813
98142000-03-28 Akim Demaille <akim@epita.fr>
9815
9816 * src/getargs.c (usage): Refresh the help message.
9817
98182000-03-17 Akim Demaille <akim@epita.fr>
9819
9820 * src/getopt1.c: Updated from textutils 2.0e
9821 * src/getopt.c: Likewise.
9822 * src/getopt.h: Likewise.
9823
98242000-03-17 Akim Demaille <akim@epita.fr>
9825
9826 * src/Makefile.am (bison.simple): Fix the awk program: quote only
9827 the file name, not the whole `#line LINE FILE'.
9828
98292000-03-17 Akim Demaille <akim@epita.fr>
9830
9831 On syntax errors, report the token on which we choked.
9832
9833 * src/bison.s1 (yyparse): In the label yyerrlab, when
9834 YYERROR_VERBOSE, add yychar in msg.
9835
98362000-03-17 Akim Demaille <akim@epita.fr>
9837
9838 * src/reader.c (copy_at): New function.
9839 (copy_guard): Use it.
9840 (copy_action): Use it.
9841
98422000-03-17 Akim Demaille <akim@epita.fr>
9843
9844 Be kind to translators, save some useless translations.
9845
9846 * src/main.c (banner): New function.
9847 (fatal_banner): Use it.
9848 (warn_banner): Use it.
9849
98502000-03-17 Akim Demaille <akim@epita.fr>
9851
9852 * src/reader.c (copy_definition): Use copy_string and
9853 copy_comment. Removed now unused `match', `ended',
9854 `cplus_comment'.
9855 (copy_comment, copy_string): Moved, to be visible from
9856 copy_definition.
9857
98582000-03-17 Akim Demaille <akim@epita.fr>
9859
9860 * src/reader.c (copy_string): Declare `static inline'. No
9861 problems with inline, since it is checked by configure.
9862 (copy_comment): Likewise.
9863
98642000-03-17 Akim Demaille <akim@epita.fr>
9865
9866 * src/reader.c (packsymbols): Formatting changes.
9867
98682000-03-17 Akim Demaille <akim@epita.fr>
9869
9870 * src/reader.c (copy_comment): New function, factored out from:
9871 (copy_action): Use it. Removed now unused `match', `ended',
9872 `cplus_comment'.
9873 (copy_guard): Likewise.
9874
98752000-03-17 Akim Demaille <akim@epita.fr>
9876
9877 * src/reader.c (copy_string): New function, factored out from:
9878 (copy_action): Use it.
9879 (copy_guard): Likewise.
9880
98812000-03-17 Akim Demaille <akim@epita.fr>
9882
9883 Change the handling of @s so that they behave exactly like $s.
9884 There is now a pseudo variable @$ (readble and writable), location
9885 of the lhs of the rule (by default ranging from the location of
9886 the first symbol of the rhs, to the location of the last symbol,
9887 or, if the rhs is empty, YYLLOC).
9888
9889 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
9890 yyval.
9891 (yyparse): When providing a default semantic action, provide a
9892 default location action.
9893 (after the $): No longer change `*YYLSP', just stack YYLOC the
9894 same way you stack YYVAL.
9895 * src/reader.c (read_declarations): Use warns.
9896 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
9897 (copy_action, case '@'): Likewise.
9898 Use a standard error message, to save useless work from
9899 translators.
9900
99012000-03-17 Akim Demaille <akim@epita.fr>
9902
9903 * src/bison.s1: Formatting and cosmetics changes.
9904 * src/reader.c: Likewise.
9905 Update the Copyright notice.
9906
99072000-03-17 Akim Demaille <akim@epita.fr>
9908
9909 * src/bison.s1 (#line): All set to `#line' only, since the
9910 Makefile now handles them.
9911
99122000-03-16 Akim Demaille <akim@epita.fr>
9913
9914 * src/output.c (output_rule_data): Output the documentation of
9915 some of the tables.
9916 (Copyright notice): Update.
9917 Formatting changes.
9918
99192000-03-16 Akim Demaille <akim@epita.fr>
9920
9921 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
9922 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
9923 One `#if YYDEBUG' remains, since it uses variables which are
9924 defined only if `YYDEBUG != 0'.
9925
99262000-03-16 Akim Demaille <akim@epita.fr>
9927
9928 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
9929 and related variables so that the similarities are highlighted.
9930
99312000-03-16 Akim Demaille <akim@epita.fr>
9932
9933 * src/bison.s1: Properly indent CPP directives.
9934
99352000-03-16 Akim Demaille <akim@epita.fr>
9936
9937 * src/bison.s1: Properly indent the `alloca' CPP section.
9938
99392000-03-16 Akim Demaille <akim@epita.fr>
9940
9941 Do not hard code values of directories in `configure.in'.
9942 Update the `configure' tool chain.
9943
9944 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
9945 src/makefile.am.
9946 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
9947 (AC_OUTPUT): Add m4/Makefile.
9948 Bump to bison 1.28a, 1.29 has never been released.
9949 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
9950 handled via src/Makefile.am.
9951 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
9952 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
9953 autoheader.
9954 * Makefile.am (SUBDIRS): Add m4.
9955 (ACLOCAL_AM_FLAGS): New variable.
9956 (AUTOMAKE_OPTIONS): Add check-news.
9957 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
9958 the proper line number and file name.
9959 (DEFS): Propagate the location of bison library files and of the
9960 locale files.
9961 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
9962 builddir.
9963 * acinclude.m4: Remove, replaced by the directory m4.
9964 * m4/Makefile.am (EXTRA_DIST): New variable.
9965 * m4/gettext.m4: New file, from the fileutils.
9966 * m4/lcmessage.m4: Likewise
9967 * m4/progtest.m4: Likewise.
9968 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
9969
99702000-03-10 Akim Demaille <akim@epita.fr>
9971
9972 * src/closure.c:
9973 Formatting changes of various comments.
9974 Respect the GNU coding standards at various places.
9975 Don't use `_()' when no translation is needed.
9976
99771999-12-13 Jesse Thilo <jthilo@gnu.org>
9978
9979 * src/files.c:
9980 OS/2 honors TMPDIR environment variable.
9981
99821999-12-13 Jesse Thilo <jthilo@gnu.org>
9983
9984 * doc/bison.texinfo: Tweaked spelling and grammar.
9985 Updated ISBN.
9986 Removed reference to price of printed copy.
9987 Mention BISON_SIMPLE and BISON_HAIRY.
9988
99891999-12-13 Jesse Thilo <jthilo@gnu.org>
9990
9991 * configure.in, NEWS:
9992 Bison 1.29 released.
9993
99941999-10-27 Jesse Thilo <jthilo@gnu.org>
9995
9996 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
9997 Added reference card.
9998
99991999-07-26 Jesse Thilo <jthilo@gnu.org>
10000
10001 * po/ru.po: Added Russian translation.
10002
100031999-07-26 Jesse Thilo <jthilo@gnu.org>
10004
10005 * configure.in: Added Russian translation.
10006
100071999-07-06 Jesse Thilo <jthilo@gnu.org>
10008
10009 * configure.in, NEWS, README:
10010 Released version 1.28.
10011
100121999-06-14 Jesse Thilo <jthilo@gnu.org>
10013
10014 * src/system.h:
10015 Squashed redefinition warning on some systems.
10016
10017 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
10018 Have configure build version string instead of relying on ANSI string
10019 concatentation.
10020
100211999-06-14 Jesse Thilo <jthilo@gnu.org>
10022
10023 * po/POTFILES.in: Got rid of version.c.
10024
100251999-06-14 Jesse Thilo <jthilo@gnu.org>
10026
10027 * acconfig.h, configure.in:
10028 Have configure build version string instead of relying on ANSI string
10029 concatentation.
10030
100311999-06-08 Jesse Thilo <jthilo@gnu.org>
10032
10033 * doc/bison.1:
10034 Dropped mention of `+' for long-named options.
10035
100361999-05-30 Jesse Thilo <jthilo@gnu.org>
10037
10038 * src/files.c: Added <unistd.h> for unlink().
10039
10040 * src/Makefile.am, src/system.h:
10041 I18n fixes.
10042
100431999-05-30 Jesse Thilo <jthilo@gnu.org>
10044
10045 * README: Added a FAQ list.
10046
10047 * configure.in, acconfig.h:
10048 I18n fixes.
10049
100501999-05-30 Jesse Thilo <jthilo@gnu.org>
10051
10052 * doc/FAQ, doc/Makefile.am:
10053 Added a FAQ list.
10054
100551999-05-19 Jesse Thilo <jthilo@gnu.org>
10056
10057 * src/alloc.h, src/symtab.h, src/version.c:
10058 Protected inclusion of "config.h" with HAVE_CONFIG_H.
10059
100601999-04-18 Jesse Thilo <jthilo@gnu.org>
10061
10062 * src/.cvsignore, src/Makefile.am:
10063 Reorganized: sources in `src', documentation in `doc'.
10064
10065 * src/lex.c (literalchar):
10066 fixed the code for escaping double quotes (thanks
10067 Jonathan Czisny.)
10068
100691999-04-18 Jesse Thilo <jthilo@gnu.org>
10070
10071 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10072 Adjusted paths to reflect directory reorganization.
10073
100741999-04-18 Jesse Thilo <jthilo@gnu.org>
10075
10076 * doc/.cvsignore, doc/Makefile.am:
10077 Reorganized: sources in `src', documentation in `doc'.
10078
100791999-04-18 Jesse Thilo <jthilo@gnu.org>
10080
10081 * configure.in:
10082 Updated AC_INIT file to reflect directory reorganization.
10083
10084 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10085 Reorganized: sources in `src', documentation in `doc'.
10086
100871999-04-13 Jesse Thilo <jthilo@gnu.org>
10088
10089 * src/allocate.c:
10090 Don't declare calloc() and realloc() if not necessary.
10091
100921999-04-13 Jesse Thilo <jthilo@gnu.org>
10093
10094 * configure.in, acconfig.h, acinclude.m4:
10095 Don't declare calloc() and realloc() if not necessary.
10096
100971999-03-23 Jesse Thilo <jthilo@gnu.org>
10098
10099 * po/.cvsignore: Added i18n support.
10100
101011999-03-23 Jesse Thilo <jthilo@gnu.org>
10102
10103 * acconfig.h, configure.in, Makefile.am:
10104 Added i18n support.
10105
101061999-03-22 Jesse Thilo <jthilo@gnu.org>
10107
10108 * src/bison.s1: Fixed #line numbers.
10109
101101999-03-15 Jesse Thilo <jthilo@gnu.org>
10111
10112 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10113 Added PO files from Translation Project.
10114
101151999-03-03 Jesse Thilo <jthilo@gnu.org>
10116
10117 * Makefile.am:
10118 Added support for non-ANSI compilers (ansi2knr).
10119
101201999-02-16 Jesse Thilo <jthilo@gnu.org>
10121
10122 * configure.in: Bumped version number to 1.27.
10123
10124 * Makefile.am:
10125 Added `bison.simple' to list of files removed by `make distclean'.
10126
101271999-02-12 Jesse Thilo <jthilo@gnu.org>
10128
10129 * src/files.c, src/files.h:
10130 Defined locations of parser files in config.h instead of Makefile.
10131
101321999-02-12 Jesse Thilo <jthilo@gnu.org>
10133
10134 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10135 Defined locations of parser files in config.h instead of Makefile.
10136
101371999-02-09 Jesse Thilo <jthilo@gnu.org>
10138
10139 * Makefile.am:
10140 Removed inappropriate use of $< macro.
10141
101421999-02-05 Jesse Thilo <jthilo@gnu.org>
10143
10144 * po/Makefile.in.in, po/POTFILES.in:
10145 Add `po' directory skeleton.
10146
101471999-01-27 Jesse Thilo <jthilo@gnu.org>
10148
10149 * README: Document help-bison list.
10150
10151 * configure.in: Add check for mkstemp().
10152
101531999-01-20 Jesse Thilo <jthilo@gnu.org>
10154
10155 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10156 Hush a few compiler warnings.
10157
10158 * src/files.c:
10159 Add tryclose(), which verifies that fclose was successful.
10160 Hush a couple of compiler warnings.
10161
101621999-01-20 Jesse Thilo <jthilo@gnu.org>
10163
10164 * Makefile.am, OChangeLog:
10165 ChangeLog is now automatically generated. Include the old version as
10166 OChangeLog.
10167
101681999-01-14 Jesse Thilo <jthilo@gnu.org>
10169
10170 * 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:
10171 Update FSF address.
10172
101731999-01-14 Jesse Thilo <jthilo@gnu.org>
10174
10175 * doc/bison.texinfo: Fix formatting glitch.
10176
10177 * doc/bison.texinfo: Update FSF address.
10178
101791999-01-14 Jesse Thilo <jthilo@gnu.org>
10180
10181 * acconfig.h: Update FSF address.
10182
101831999-01-08 Jesse Thilo <jthilo@gnu.org>
10184
10185 * src/system.h:
10186 Don't define PACKAGE here, since config.h defines it.
10187
101881998-12-30 Jesse Thilo <jthilo@gnu.org>
10189
10190 * src/reader.c: Update copyright date.
10191
10192 * src/main.c:
10193 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10194 favor of output directly to stderr (avoids buffer overruns).
10195
10196 * src/reader.c: Some checks for premature EOF.
10197
10198 * 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:
10199 Use prototypes if the compiler understands them.
10200
10201 * src/files.c: Honor TMPDIR on Unix hosts.
10202 Use prototypes if the compiler understands them.
10203
10204 * src/reader.c:
10205 Fix a couple of buffer overrun bugs.
10206 Use prototypes if the compiler understands them.
10207
10208 * src/system.h: Include unistd.h and ctype.h.
10209 Use #ifdef instead of #if for NLS symbols.
10210
102111998-12-30 Jesse Thilo <jthilo@gnu.org>
10212
10213 * doc/bison.texinfo:
10214 Delete comment "consider using @set for edition number, etc..." since
10215 we now are doing so.
10216
102171998-12-30 Jesse Thilo <jthilo@gnu.org>
10218
10219 * configure.in:
10220 Use prototypes if the compiler understands them.
10221
10222 * NEWS: Document 1.26 highlights.
10223
10224 * Makefile.am: Require Automake 1.3 or later.
10225
10226 * acconfig.h:
10227 Use prototypes if the compiler understands them.
10228
102291998-12-29 Jesse Thilo <jthilo@gnu.org>
10230
10231 * src/version.c:
10232 Use VERSION symbol from automake for version number.
10233
102341998-12-29 Jesse Thilo <jthilo@gnu.org>
10235
10236 * acconfig.h, configure.in, version.cin:
10237 Use VERSION symbol from automake for version number.
10238
102391998-11-28 Jesse Thilo <jthilo@gnu.org>
10240
10241 * Makefile.am:
10242 Distribute original version of simple parser (bison.s1), not built
10243 version (bison.simple).
10244
102451998-11-28 Jesse Thilo <jthilo@gnu.org>
10246
10247 * doc/bison.texinfo: Add info dir entry.
10248
10249 * doc/bison.texinfo:
10250 Let automake put version number into documentation.
10251
102521998-11-26 Jesse Thilo <jthilo@gnu.org>
10253
10254 * src/bison.cld, src/build.com, src/vmshlp.mar:
10255 Add non-RCS files from /gd/gnu/bison.
10256
102571998-11-26 Jesse Thilo <jthilo@gnu.org>
10258
10259 * doc/bison.1:
10260 Document the BISON_HAIRY and BISON_SIMPLE variables.
10261
102621998-11-25 Jesse Thilo <jthilo@gnu.org>
10263
10264 * src/version.c: Build version.c automatically.
10265
10266 * src/reader.c:
10267 Fix token numbering (used to start at 258, not 257).
10268
10269 * src/system.h: Include config.h.
10270
10271 * src/getargs.c: Update bug report address.
10272
10273 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10274 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10275
102761998-11-25 Jesse Thilo <jthilo@gnu.org>
10277
10278 * Makefile.am:
10279 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10280
10281 * configure.in, version.cin:
10282 Build version.c automatically.
10283
10284 * AUTHORS: Add AUTHORS file.
10285
10286 * README: Update bug report address.
10287
10288 * bison.simple:
10289 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10290
10291 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10292 Add automake stuff.
10293
102941998-11-25 Jesse Thilo <jthilo@gnu.org>
10295
10296 * doc/bison.texinfo: Clean up some formatting.
10297
102981998-05-05 Richard Stallman <rms@gnu.org>
10299
10300 * doc/bison.texinfo:
10301 Explain better why to make a pure parser.
10302
103031998-01-05 Richard Stallman <rms@gnu.org>
10304
10305 * src/files.c (openfiles):
10306 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10307 find a temporary directory, if possible. Do not unlink files while
10308 they are open.
10309
103101997-08-25 Richard Stallman <rms@gnu.org>
10311
10312 * src/reader.c (stack_offset;):
10313 Change some warni to warns.
10314
10315 * src/lex.c (literalchar): Use warns, not warni.
10316
103171997-06-28 Richard Stallman <rms@gnu.org>
10318
10319 * src/bison.s1: Add a Bison version comment.
10320
10321 * src/main.c (fatal, warn, berror):
10322 Use program_name.
10323
103241997-06-28 Richard Stallman <rms@gnu.org>
10325
10326 * Makefile.in (bison_version): New variable.
10327 (dist): Use that variable.
10328 (bison.s1): Substitute the Bison version into bison.simple.
10329
10330 * bison.simple: Add a Bison version comment.
10331
103321997-06-18 Richard Stallman <rms@gnu.org>
10333
10334 * src/main.c (fatal, warn, berror):
10335 Make error messages standard.
10336 (toomany): Improve error message text.
10337
10338 * 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:
10339 new.h renamed to alloc.h.
10340
103411997-06-18 Richard Stallman <rms@gnu.org>
10342
10343 * Makefile.in: new.h renamed to alloc.h.
10344
103451997-05-24 Richard Stallman <rms@gnu.org>
10346
10347 * src/lex.c (literalchar):
10348 Fix the code for escaping \, " and '.
10349
10350 (lex): Avoid trouble when there are many chars
10351 to discard in a char literal with just several chars in it.
10352
103531997-05-17 Richard Stallman <rms@gnu.org>
10354
10355 * src/bison.s1:
10356 Use malloc, if using alloca is troublesome.
10357 (YYSTACK_USE_ALLOCA): New flag macro.
10358 Define it for some systems and compilers.
10359 (YYSTACK_ALLOC): New macro.
10360 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10361 If it was malloc'd, free it.
10362
103631997-05-17 Richard Stallman <rms@gnu.org>
10364
10365 * bison.simple:
10366 Use malloc, if using alloca is troublesome.
10367 (YYSTACK_USE_ALLOCA): New flag macro.
10368 Define it for some systems and compilers.
10369 (YYSTACK_ALLOC): New macro.
10370 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10371 If it was malloc'd, free it.
10372
103731997-04-23 Richard Stallman <rms@gnu.org>
10374
10375 * src/bison.s1:
10376 (alloca) [__hpux]: Always define as __builtin_alloca.
10377
103781997-04-23 Richard Stallman <rms@gnu.org>
10379
10380 * bison.simple:
10381 (alloca) [__hpux]: Always define as __builtin_alloca.
10382
103831997-04-22 Richard Stallman <rms@gnu.org>
10384
10385 * src/bison.s1:
10386 [__hpux]: Include alloca.h (right for HPUX 10)
10387 instead of declaring alloca (right for HPUX 9).
10388
10389 * src/bison.s1 (__yy_memcpy):
10390 Declare arg `count' as unsigned int.
10391 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10392
103931997-04-22 Richard Stallman <rms@gnu.org>
10394
10395 * bison.simple:
10396 [__hpux]: Include alloca.h (right for HPUX 10)
10397 instead of declaring alloca (right for HPUX 9).
10398
10399 * bison.simple (__yy_memcpy):
10400 Declare arg `count' as unsigned int.
10401 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10402
104031997-01-03 Richard Stallman <rms@gnu.org>
10404
10405 * src/allocate.c: [__STDC__ or _MSC_VER]:
10406 Declare calloc and realloc to return void *.
10407
104081997-01-02 Richard Stallman <rms@gnu.org>
10409
10410 * src/system.h:
10411 [_MSC_VER]: Include stdlib.h and process.h.
10412 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10413
10414 * src/main.c (main): Return FAILURE as a value.
10415 (printable_version): Declare arg as int, not char.
10416
104171997-01-02 Richard Stallman <rms@gnu.org>
10418
10419 * Makefile.in (dist):
10420 Explicitly check for symlinks, and copy them.
10421
104221996-12-19 Richard Stallman <rms@gnu.org>
10423
10424 * src/files.c:
10425 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10426
104271996-12-18 Paul Eggert <eggert@gnu.org>
10428
10429 * src/bison.s1 (yyparse):
10430 If __GNUC__ and YYPARSE_PARAM are both defined,
10431 declare yyparse to have a void * argument.
10432
104331996-12-18 Paul Eggert <eggert@gnu.org>
10434
10435 * bison.simple (yyparse):
10436 If __GNUC__ and YYPARSE_PARAM are both defined,
10437 declare yyparse to have a void * argument.
10438
104391996-12-17 Richard Stallman <rms@gnu.org>
10440
10441 * src/reduce.c (nbits): Add some casts.
10442
104431996-08-12 Richard Stallman <rms@gnu.org>
10444
10445 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10446
104471996-08-12 Richard Stallman <rms@gnu.org>
10448
10449 * bison.simple: Test _MSDOS as well as _MSDOS_.
10450
104511996-07-31 Richard Stallman <rms@gnu.org>
10452
10453 * src/bison.s1:
10454 [__sun && __i386]: Include alloca.h.
10455
104561996-07-31 Richard Stallman <rms@gnu.org>
10457
10458 * bison.simple:
10459 [__sun && __i386]: Include alloca.h.
10460
104611996-07-30 Richard Stallman <rms@gnu.org>
10462
10463 * src/bison.s1: Comment change.
10464
10465 * src/bison.s1: Test _MSDOS_, not MSDOS.
10466
104671996-07-30 Richard Stallman <rms@gnu.org>
10468
10469 * bison.simple: Comment change.
10470
10471 * bison.simple: Test _MSDOS_, not MSDOS.
10472
104731996-06-01 Richard Stallman <rms@gnu.org>
10474
10475 * 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:
10476 Insert `_' macro around many string constants.
10477
10478 * src/main.c:
10479 Insert `_' macro around many string constants.
10480
10481 (main): Call setlocale, bindtextdomain and textdomain.
10482
10483 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10484 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10485 [ENABLE_NLS]: Include libintl.h.
10486 [ENABLE_NLS] (gettext): Define.
10487 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10488 (N_, PACKAGE, LOCALEDIR): New macros.
10489
104901996-06-01 Richard Stallman <rms@gnu.org>
10491
10492 * POTFILES.in: New file.
10493
10494 * Makefile.in (allocate.o):
10495 Define target explicitly.
10496
10497 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10498 (LDFLAGS): Set to @LDFLAGS@.
10499 (configure): Run autoconf only if preceding `cd' succeeds.
10500 (bison.s1): Redirect output to temporary file then move the
10501 temporary to the target, rather than redirecting directly to bison.s1.
10502 (clean): Remove config.status and config.log.
10503 (distclean): Don't remove config.status here.
10504
105051996-05-12 Richard Stallman <rms@gnu.org>
10506
10507 * src/bison.s1:
10508 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10509
105101996-05-12 Richard Stallman <rms@gnu.org>
10511
10512 * bison.simple:
10513 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10514
105151996-05-11 Richard Stallman <rms@gnu.org>
10516
10517 * src/bison.s1 (__yy_memcpy):
10518 Really reorder the args, as was supposedly done on Feb 14 1995.
10519 (yyparse): Calls changed accordingly.
10520
105211996-05-11 Richard Stallman <rms@gnu.org>
10522
10523 * Makefile.in (dist): Don't use $(srcdir).
10524
10525 * bison.simple (__yy_memcpy):
10526 Really reorder the args, as was supposedly done on Feb 14 1995.
10527 (yyparse): Calls changed accordingly.
10528
105291996-01-27 Richard Stallman <rms@gnu.org>
10530
10531 * src/output.c (output_rule_data):
10532 Test YYERROR_VERBOSE in the conditional
10533 around the definition of ttyname.
10534
105351995-12-29 Richard Stallman <rms@gnu.org>
10536
10537 * src/bison.s1:
10538 Fix line numbers in #line commands.
10539
105401995-12-29 Richard Stallman <rms@gnu.org>
10541
10542 * bison.simple:
10543 Fix line numbers in #line commands.
10544
105451995-12-27 Richard Stallman <rms@gnu.org>
10546
10547 * src/bison.s1 (YYPARSE_PARAM_DECL):
10548 In C++, make it always null.
10549 (YYPARSE_PARAM_ARG): New macro.
10550 (yyparse): Use YYPARSE_PARAM_ARG.
10551
105521995-12-27 Richard Stallman <rms@gnu.org>
10553
10554 * bison.simple (YYPARSE_PARAM_DECL):
10555 In C++, make it always null.
10556 (YYPARSE_PARAM_ARG): New macro.
10557 (yyparse): Use YYPARSE_PARAM_ARG.
10558
105591995-11-29 Richard Stallman <rms@gnu.org>
10560
10561 * doc/bison.texinfo:
10562 Describe literal string tokens, %raw, %no_lines, %token_table.
10563
105641995-11-29 Daniel Hagerty <hag@gnu.org>
10565
10566 * doc/bison.texinfo: Fixed update date
10567
105681995-10-16 Richard Stallman <rms@gnu.org>
10569
10570 * src/version.c: Version 1.25.
10571
105721995-10-16 Richard Stallman <rms@gnu.org>
10573
10574 * NEWS: *** empty log message ***
10575
105761995-10-16 Richard Stallman <rms@gnu.org>
10577
10578 * doc/bison.1, doc/bison.rnh:
10579 Add new options.
10580
105811995-10-15 Richard Stallman <rms@gnu.org>
10582
10583 * src/vmsgetargs.c, src/getargs.c:
10584 Added -n, -k, and -raw switches.
10585 (noparserflag, toknumflag, rawtoknumflag): New variables.
10586
10587 * src/symtab.h (SALIAS):
10588 New #define for adding aliases to %token.
10589 (struct bucket): Added `alias' field.
10590
10591 * src/reduce.c (reduce_grammar):
10592 Revise error message.
10593 (print_notices): Remove final `.' from error message.
10594
10595 * src/reader.c (reader_output_yylsp):
10596 New function.
10597 (readgram): Use `#if 0' around code that accepted %command
10598 inside grammar rules: The documentation doesn't allow it,
10599 and it will fail since the %command processors scan for the next %.
10600 (parse_token_decl): Extended the %token
10601 declaration to allow a multi-character symbol as an alias.
10602 (parse_thong_decl): New function.
10603 (read_declarations): Added %thong declarations.
10604 (read_declarations): Handle NOOP to deal with allowing
10605 % declarations as another means to specify the flags.
10606 (readgram): Allow %prec prior to semantics embedded in a rule.
10607 (skip_to_char, read_declarations, copy_definition)
10608 (parse_token_decl, parse_start_decl, parse_type_decl)
10609 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10610 (get_type_name, copy_guard, copy_action, readgram)
10611 (get_type, packsymbols): Revised most error messages.
10612 Changed `fatal' to `warnxxx' to avoid aborting for error.
10613 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10614 (read_declarations): Improve the error message for
10615 an invalid character. Do not abort.
10616 (read_declarations, copy_guard, copy_action): Use
10617 printable_version to avoid unprintable characters in printed output.
10618 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10619 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10620 Allow the type of a non-terminal can be given
10621 more than once, as long as all specifications give the same type.
10622
10623 * src/output.c:
10624 (output_headers, output_trailers, output, output_gram)
10625 (output_rule_data): Implement noparserflag variable.
10626 Implement toknumflag variable.
10627 (output): Call reader_output_yylsp to output LTYPESTR.
10628
10629 * src/main.c (main):
10630 If reader sees an error, don't process the grammar.
10631 (fatals): Updated to not use VARARGS1.
10632 (printable_version, int_to_string, warn, warni, warns, warnss)
10633 (warnsss): New error reporting functions. Avoid abort for error.
10634
10635 * src/lex.h:
10636 Added THONG and NOOP for alias processing.
10637 Added SETOPT for the new code that allows setting options with %flags.
10638
10639 * src/lex.c:
10640 Include getopt.h. Add some extern decls.
10641 (safegetc): New function to deal with EOF gracefully.
10642 (literalchar); new function to deal with reading \ escapes.
10643 (lex): Use literalchar.
10644 (lex): Implemented "..." tokens.
10645 (literalchar, lex, parse_percent_token): Made tokenbuffer
10646 always contain the token. This includes growing the token
10647 buffer while reading an integer.
10648 (parse_percent_token): Replaced if-else statement with percent_table.
10649 (parse_percent_token): Added % declarations as another
10650 way to specify the flags -n, -l, and -r. Also added hooks for
10651 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10652 major changes to files.c.
10653 (lex) Retain in the incoming stream a character following
10654 an incorrect '/'.
10655 (skip_white_space, lex): Revised most error messages
10656 and changed fatal to warn to avoid aborting.
10657 (percent_table): Added %thong declarations.
10658
10659 * src/gram.h: Comment changes.
10660
10661 * src/files.c (openfiles, open_extra_files, done):
10662 Add faction flag
10663 and actfile file. Handle noparserflag. Both for -n switch.
10664
10665 * src/conflicts.c (resolve_sr_conflict):
10666 Remove use of alloca.
10667
106681995-06-01 Jim Meyering <meyering@gnu.org>
10669
10670 * doc/bison.texinfo: *** empty log message ***
10671
106721995-05-06 Richard Stallman <rms@gnu.org>
10673
10674 * src/bison.s1: Comment change.
10675
106761995-05-06 Richard Stallman <rms@gnu.org>
10677
10678 * bison.simple: Comment change.
10679
106801995-05-03 Richard Stallman <rms@gnu.org>
10681
10682 * src/version.c: Version now 1.24.
10683
10684 * src/bison.s1: Change distribution terms.
10685
10686 * src/version.c: Version now 1.23.
10687
106881995-05-03 Richard Stallman <rms@gnu.org>
10689
10690 * doc/bison.texinfo:
10691 Rewrite "Conditions for Using Bison".
10692 Update version to 1.24.
10693
106941995-05-03 Richard Stallman <rms@gnu.org>
10695
10696 * bison.simple: Change distribution terms.
10697
106981995-02-23 Richard Stallman <rms@gnu.org>
10699
10700 * src/files.c: Test __VMS_POSIX as well as VMS.
10701
107021995-02-14 Jim Meyering <meyering@gnu.org>
10703
10704 * src/bison.s1 (__yy_memcpy):
10705 Renamed from __yy_bcopy to avoid
10706 confusion. Reverse FROM and TO arguments to be consistent with
10707 those of memcpy.
10708
107091995-02-14 Jim Meyering <meyering@gnu.org>
10710
10711 * bison.simple (__yy_memcpy):
10712 Renamed from __yy_bcopy to avoid
10713 confusion. Reverse FROM and TO arguments to be consistent with
10714 those of memcpy.
10715
107161994-11-10 David J. MacKenzie <djm@gnu.org>
10717
10718 * NEWS: reformat
10719
10720 * NEWS: New file.
10721
10722 * Makefile.in (DISTFILES): Include NEWS.
10723
10724 * Makefile.in (DISTFILES):
10725 Include install-sh, not install.sh.
10726
10727 * configure.in: Update to Autoconf v2 macro names.
10728
107291994-10-05 David J. MacKenzie <djm@gnu.org>
10730
10731 * Makefile.in: fix typo
10732
10733 * Makefile.in (prefix, exec_prefix):
10734 Let configure set them.
10735
107361994-09-28 David J. MacKenzie <djm@gnu.org>
10737
10738 * Makefile.in: Set datadir to $(prefix)/share.
10739
107401994-09-15 Richard Stallman <rms@gnu.org>
10741
10742 * src/bison.s1:
10743 Update copyright notice and GPL version.
10744
107451994-09-15 Richard Stallman <rms@gnu.org>
10746
10747 * bison.simple:
10748 Update copyright notice and GPL version.
10749
107501994-07-12 Richard Stallman <rms@gnu.org>
10751
10752 * src/reduce.c, src/reader.c:
10753 entered into RCS
10754
107551994-05-05 David J. MacKenzie <djm@gnu.org>
10756
10757 * Makefile.in: entered into RCS
10758
107591994-03-26 Richard Stallman <rms@gnu.org>
10760
10761 * src/bison.s1: entered into RCS
10762
107631994-03-26 Richard Stallman <rms@gnu.org>
10764
10765 * bison.simple: entered into RCS
10766
107671994-03-25 Richard Stallman <rms@gnu.org>
10768
10769 * src/main.c: entered into RCS
10770
107711994-03-24 Richard Stallman <rms@gnu.org>
10772
10773 * src/conflicts.c: entered into RCS
10774
107751994-01-02 Richard Stallman <rms@gnu.org>
10776
10777 * Makefile.in: *** empty log message ***
10778
107791993-11-21 Richard Stallman <rms@gnu.org>
10780
10781 * src/bison.s1: *** empty log message ***
10782
107831993-11-21 Richard Stallman <rms@gnu.org>
10784
10785 * doc/bison.texinfo: entered into RCS
10786
10787 * doc/bison.texinfo: *** empty log message ***
10788
107891993-11-21 Richard Stallman <rms@gnu.org>
10790
10791 * bison.simple: *** empty log message ***
10792
107931993-10-25 David J. MacKenzie <djm@gnu.org>
10794
10795 * doc/bison.texinfo: *** empty log message ***
10796
107971993-10-19 Richard Stallman <rms@gnu.org>
10798
10799 * src/bison.s1: *** empty log message ***
10800
108011993-10-19 Richard Stallman <rms@gnu.org>
10802
10803 * bison.simple: *** empty log message ***
10804
108051993-10-14 Richard Stallman <rms@gnu.org>
10806
10807 * src/bison.s1: *** empty log message ***
10808
108091993-10-14 Richard Stallman <rms@gnu.org>
10810
10811 * bison.simple: *** empty log message ***
10812
108131993-09-14 David J. MacKenzie <djm@gnu.org>
10814
10815 * doc/bison.texinfo: *** empty log message ***
10816
108171993-09-13 Noah Friedman <friedman@gnu.org>
10818
10819 * Makefile.in: *** empty log message ***
10820
108211993-09-10 Richard Stallman <rms@gnu.org>
10822
10823 * src/conflicts.c: *** empty log message ***
10824
10825 * src/system.h: entered into RCS
10826
108271993-09-10 Richard Stallman <rms@gnu.org>
10828
10829 * doc/bison.1: entered into RCS
10830
108311993-09-06 Noah Friedman <friedman@gnu.org>
10832
10833 * src/version.c: entered into RCS
10834
108351993-09-06 Noah Friedman <friedman@gnu.org>
10836
10837 * Makefile.in: *** empty log message ***
10838
108391993-07-30 David J. MacKenzie <djm@gnu.org>
10840
10841 * Makefile.in: *** empty log message ***
10842
108431993-07-24 Richard Stallman <rms@gnu.org>
10844
10845 * src/bison.s1: *** empty log message ***
10846
108471993-07-24 Richard Stallman <rms@gnu.org>
10848
10849 * bison.simple: *** empty log message ***
10850
108511993-07-08 David J. MacKenzie <djm@gnu.org>
10852
10853 * Makefile.in: *** empty log message ***
10854
108551993-07-04 Richard Stallman <rms@gnu.org>
10856
10857 * src/bison.s1: *** empty log message ***
10858
108591993-07-04 Richard Stallman <rms@gnu.org>
10860
10861 * bison.simple: *** empty log message ***
10862
108631993-06-26 David J. MacKenzie <djm@gnu.org>
10864
10865 * src/getargs.c: entered into RCS
10866
108671993-06-26 David J. MacKenzie <djm@gnu.org>
10868
10869 * doc/bison.texinfo: *** empty log message ***
10870
10871 * doc/bison.1: New file.
10872
108731993-06-25 Richard Stallman <rms@gnu.org>
10874
10875 * src/getargs.c: New file.
10876
108771993-06-16 Richard Stallman <rms@gnu.org>
10878
10879 * src/bison.s1: *** empty log message ***
10880
108811993-06-16 Richard Stallman <rms@gnu.org>
10882
10883 * bison.simple: *** empty log message ***
10884
108851993-06-03 Richard Stallman <rms@gnu.org>
10886
10887 * src/bison.s1: New file.
10888
108891993-06-03 Richard Stallman <rms@gnu.org>
10890
10891 * doc/bison.texinfo: *** empty log message ***
10892
108931993-06-03 Richard Stallman <rms@gnu.org>
10894
10895 * bison.simple: New file.
10896
108971993-05-19 Richard Stallman <rms@gnu.org>
10898
10899 * doc/bison.texinfo: New file.
10900
109011993-05-07 Noah Friedman <friedman@gnu.org>
10902
10903 * Makefile.in: *** empty log message ***
10904
109051993-04-28 Noah Friedman <friedman@gnu.org>
10906
10907 * src/reader.c: *** empty log message ***
10908
109091993-04-23 Noah Friedman <friedman@gnu.org>
10910
10911 * src/alloc.h: entered into RCS
10912
109131993-04-20 David J. MacKenzie <djm@gnu.org>
10914
10915 * src/version.c: *** empty log message ***
10916
10917 * src/files.c, src/allocate.c:
10918 entered into RCS
10919
10920 * src/reader.c: *** empty log message ***
10921
10922 * src/lex.c: entered into RCS
10923
10924 * src/conflicts.c: New file.
10925
10926 * src/symtab.c: entered into RCS
10927
10928 * src/alloc.h: New file.
10929
10930 * src/LR0.c: entered into RCS
10931
109321993-04-18 Noah Friedman <friedman@gnu.org>
10933
10934 * src/reader.c: New file.
10935
10936 * src/version.c: *** empty log message ***
10937
109381993-04-18 Noah Friedman <friedman@gnu.org>
10939
10940 * Makefile.in: *** empty log message ***
10941
109421993-04-17 Noah Friedman <friedman@gnu.org>
10943
10944 * Makefile.in: *** empty log message ***
10945
109461993-04-15 Richard Stallman <rms@gnu.org>
10947
10948 * src/main.c, src/files.c:
10949 New file.
10950
109511993-04-15 Noah Friedman <friedman@gnu.org>
10952
10953 * configure.in: entered into RCS
10954
10955 * configure.in: *** empty log message ***
10956
10957 * configure.in: New file.
10958
109591993-04-14 Richard Stallman <rms@gnu.org>
10960
10961 * Makefile.in: New file.
10962
109631993-04-13 Richard Stallman <rms@gnu.org>
10964
10965 * src/version.c: New file.
10966
109671993-03-25 Richard Stallman <rms@gnu.org>
10968
10969 * src/output.c: entered into RCS
10970
109711992-09-25 Richard Stallman <rms@gnu.org>
10972
10973 * configure.bat: entered into RCS
10974
109751992-06-22 Richard Stallman <rms@gnu.org>
10976
10977 * src/vmsgetargs.c: entered into RCS
10978
109791992-06-22 Richard Stallman <rms@gnu.org>
10980
10981 * doc/bison.rnh: entered into RCS
10982
109831992-04-20 David J. MacKenzie <djm@gnu.org>
10984
10985 * README: entered into RCS
10986
109871992-01-22 Richard Stallman <rms@gnu.org>
10988
10989 * src/machine.h: entered into RCS
10990
109911991-12-21 Richard Stallman <rms@gnu.org>
10992
10993 * src/lalr.c, src/closure.c:
10994 entered into RCS
10995
109961991-12-20 Richard Stallman <rms@gnu.org>
10997
10998 * src/state.h: entered into RCS
10999
110001991-12-18 Richard Stallman <rms@gnu.org>
11001
11002 * src/print.c, src/nullable.c, src/derives.c:
11003 entered into RCS
11004
110051991-11-03 David J. MacKenzie <djm@gnu.org>
11006
11007 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
11008 entered into RCS
11009
110101988-09-09 Richard Stallman <rms@gnu.org>
11011
11012 * src/bison.hairy: entered into RCS
11013
110141987-12-16 Richard Stallman <rms@gnu.org>
11015
11016 * REFERENCES: entered into RCS
11017
11018-----
11019
11020Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
110211998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
11022
11023This file is part of Bison, the GNU Compiler Compiler.
11024
11025Bison is free software; you can redistribute it and/or modify
11026it under the terms of the GNU General Public License as published by
11027the Free Software Foundation; either version 2, or (at your option)
11028any later version.
11029
11030Bison is distributed in the hope that it will be useful,
11031but WITHOUT ANY WARRANTY; without even the implied warranty of
11032MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11033GNU General Public License for more details.
11034
11035You should have received a copy of the GNU General Public License
11036along with Bison; see the file COPYING. If not, write to
11037the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11038Boston, MA 02111-1307, USA.