]> git.saurik.com Git - bison.git/blame - ChangeLog
Include <wchar.h> before "mbswidth.h", to work around a UnixWare 7.1.1
[bison.git] / ChangeLog
CommitLineData
c3d25e01
PE
12003-02-26 Paul Eggert <eggert@twinsun.com>
2
3 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
4 Remove Sequent/Pyramid discussion (nobody uses them any more).
5 Merge VMS and MS-DOS discussion; these ports may well be dead
6 but let's keep mentioning them for now. Put <> around email
7 addresses. Add copyright notice.
8
c267ffbc
PE
92003-02-24 Paul Eggert <eggert@twinsun.com>
10
11 * data/glr.c (yy_reduce_print): yylineno -> yylno,
12 to avoid collision with flex use of yylineno.
13 Problem reported by Bruce Lilly in
14 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
15 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
16 * data/yacc.c (yy_reduce_print): Likewise.
17
18 * config/depcomp: Sync with Automake 1.7.3.
19
f939fc12
AD
202003-02-21 Akim Demaille <akim@epita.fr>
21
22 * data/lalr1.cc: Use temporary variables instead of casts to
23 change integer types.
24 Suggested by Paul Eggert.
25
95923bd6
AD
262003-02-21 Akim Demaille <akim@epita.fr>
27
28 * doc/bison.texinfo: Use "location" consistently to refer to @n,
29 to avoid confusions with lalr1.cc's notion of Position.
30 Suggested by Paul Eggert.
31
2cdc240e
AD
322003-02-20 Akim Demaille <akim@epita.fr>
33
34 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
35 before initial_columns.
36 (location.hh): Use consistent variable names when defining the
37 operator<<.
38 Use "last" so that we subtract from Positions, not from unsigned.
39
5d003116
AD
402003-02-20 Akim Demaille <akim@epita.fr>
41
42 * data/lalr1.cc (position.hh): New subfile, including the extended
43 and Doxygen'ed documentation of class Position.
44 (location.hh): Use it.
45 Document a` la Doxygen.
ba1ecc07 46 With the help of Benoit Perrot.
5d003116 47
d02b25f9
AD
482003-02-20 Akim Demaille <akim@epita.fr>
49
50 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
51 AT_YACC_IF.
52 Redefine AT_YYERROR_SEES_LOC_IF using it.
53 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
54 not defined.
55 Don't use the location in yy::Parser::error_ and
56 yy::Parser::print_ when not %locations.
57 Activate more lalr1.cc tests.
58
0d1c3a04
AD
592003-02-19 Akim Demaille <akim@epita.fr>
60
61 * data/lalr1.cc: When displaying a line number, be sure to make it
62 an int.
63
60a777aa
AD
642003-02-19 Akim Demaille <akim@epita.fr>
65
66 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
67 Remove, useless.
68 (YYABORT, YYACCEPT, YYERROR): New.
69 * tests/calc.at: Renable the lalr1.cc test.
70
0b86fc41
AD
712003-02-19 Akim Demaille <akim@epita.fr>
72
73 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
74 error recovery, mixing with/without pops and discarding of the
75 lookahead.
76 Exercise YYERROR.
77 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
78
da99a5dc
PE
792003-02-17 Paul Eggert <eggert@twinsun.com>
80
81 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
82 * tests/testsuite.at (AT_COMPILE): Use them.
83 This fixes the testsuite problem reported by Robert Lentz in
84 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
85
93b8c255
PE
862003-02-12 Paul Eggert <eggert@twinsun.com>
87
88 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
89 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
90 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
91 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
92 Check for malloc failure, for consistency with yacc.c.
93 (yytname_size): Remove, for consistency with yacc.c.
94
95 The bug still remains in data/lalr1.cc, as I didn't have time
96 to fix it there.
97
7548fed2
AD
982003-02-06 Akim Demaille <akim@epita.fr>
99
100 * configure.ac (GXX): Rename as...
101 (CXX): this, to keep the original Autoconf semantics.
102 Require 2.57.
103 * data/lalr1.cc: Fix b4_copyright invocations.
104 If YYDEBUG is not defined, don't depend upon name_ being defined.
105 (location.hh): Include string and iostream.
106 (Position::filename): New member.
107 (Position::Position ()): New.
108 (operator<< (Position)): New.
109 (operator- (Position, int)): New.
110 (Location::first, Location::last): Rename as...
111 (Location::begin, Location::end): these, to mock the conventional
112 iterator names.
113 (operator<< (Location)): New.
114 * tests/atlocal.in (CXX): New.
115 * tests/testsuite.at (AT_COMPILE_CXX): New.
116 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
117 locations in a more synthetic way.
118 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
119 lalr1.cc is used.
120 Adjust the C locations to match those from Emacs: first column is
121 column 0.
122 Change all the expected results.
123 Conform to the GCS: simplify the locations when applicable.
124 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
125 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
126 these CPP macros with the m4 macros new defined by...
127 (AT_CHECK_PUSHDEFS): this, i.e.:
128 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 129 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
130 New macros.
131 (AT_CHECK_POPDEFS): Undefine them.
132 (AT_CHECK_CALC_LALR1_CC): New.
133 Use it for the first lalr1.cc test.
134
43a176ef
AD
1352003-02-04 Akim Demaille <akim@epita.fr>
136
137 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
138 Location as is defined.
139
fc049e9c
AD
1402003-02-04 Akim Demaille <akim@epita.fr>
141
142 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
143 name_ being defined.
144
a737b216
PE
1452003-02-03 Paul Eggert <eggert@twinsun.com>
146
147 * src/gram.h (start_symbol): Remove unused decl.
148
149 Use more-consistent naming conventions for local vars.
150
151 * src/derives.c (derives_compute): Change type of local var from
152 int to rule_number.
153 * src/gram.c (grammar_rules_partial_print): Likewise.
154 * src/print.c (print_core): Likewise.
155 * src/reduce.c (reduce_grammar_tables): Likewise.
156
157 * src/gram.c (grammar_dump): Change name of item_number *
158 local var from r to rp.
159 * src/nullable.c (nullable_compute): Likewise.
160
161 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
162
163 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
164 for symbol or symbol_number var.
165 * src/reader.c (grammar_start_symbol_set): Likewise.
166 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
167 Likewise.
168 * src/state.c (transitions_to): Likewise.
169 * src/state.h: Likewise.
170 * src/tables.c (symbol_number_to_vector_number): Likewise.
171
172 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
173 char * var.
174
175 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
176 var.
177
178 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
179 var.
180
181 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
182 Use str, not s, for char * var. Use ch, not c, for character var.
183 Use size for size var.
184
185 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
186 char * var.
187 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
188 uniqstr var.
189 * src/uniqstr.h: Likewise.
190
191 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
192 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
193 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
194 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
195 param to have same name as that of enum, so that we don't use
196 "s" to stand for a non-state.
197
68e93ad5
AD
1982003-02-02 Akim Demaille <akim@epita.fr>
199
200 * src/scan-skel.l: Scan more than one inert character per yylex
201 invocation.
202
92898986
PE
2032003-02-01 Paul Eggert <eggert@twinsun.com>
204
205 Version 1.875a.
206
1d9d5d71
PE
207 * po/LINGUAS: Add ms.
208
0435d061
AD
2092003-01-30 Akim Demaille <akim@epita.fr>
210
211 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
212
6029a57f
PH
2132003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
214
215 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
216 of $1.
0435d061
AD
217
218 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
219 handle negative $ indices or $ indices in embedded rules correctly.
220 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 221
6029a57f
PH
222 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
223 (b4_rhs_location): Ditto.
0435d061 224 (yyfill): New function to copy from stack tree into array
6029a57f 225 incrementally.
0435d061
AD
226 (yyuserAction): Modify to allow incremental move of semantic values
227 to rhs array when in GLR mode.
228 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
229 as needed.
230 Remove dummy use of yystack, as there is now a guaranteed use.
231 (yydoAction): Modify to allow incremental move of semantic values
232 to rhs array when in GLR mode.
233 (yyresolveAction): Ditto.
234 (yyglrShiftDefer): Update comment.
0435d061 235 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
236 (yyglrReduce): Ditto.
237 (yydoAction): Ditto
0435d061 238
6029a57f
PH
239 * tests/glr-regr1.at: Rename to ...
240 * tests/glr-regression.at: Add new regression test for the problems
241 described above (adapted from S. Eken).
242 Update copyright notice.
243 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
244 * tests/Makefile.am: Ditto.
245
6cee6297
PE
2462003-01-28 Paul Eggert <eggert@twinsun.com>
247
248 * data/lalr1.cc: Do not use @output_header_name@ unless
249 b4_defines_flag is set. This fixes two bugs reported by
250 Tim Van Holder in
251 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
252 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
253
b2a836b5
PE
2542003-01-21 Paul Eggert <eggert@twinsun.com>
255
256 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
257 we don't need to worry about yyerrlab1 being reported as an
258 "unused label" by non-GCC C compilers. The downside is that if
259 locations are used then a couple of statements are duplicated each
260 time YYERROR is invoked, but the upside is that the warnings
261 should vanish.
262 (yyerrlab1): Move code to YERROR.
263 (yyerrlab2): Remove. Change uses back to yyerrlab1.
264 This reverts some of the 2002-12-27 change.
265
4196b931
PE
2662003-01-17 Paul Eggert <eggert@twinsun.com>
267
268 * src/output.c (symbol_printers_output): Fix typo that led
269 to core dump. Problem reported by Antonio Rus in
270 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
271
3ae831b4
AD
2722003-01-13 Akim Demaille <akim@epita.fr>,
273 Quoc Peyrot <chojin@lrde.epita.fr>,
274 Robert Anisko <anisko_r@lrde.epita.fr>
275
276 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
277 when the stacks contain one element, as the loop would otherwise
278 free the last state, and then use the top state (the one we just
279 popped). This means that the initial elements will not be freed
280 explicitly, as is the case in yacc.c; it is not a problem, as
281 these elements have fake values.
282
e3aa65c5
PE
2832003-01-11 Paul Eggert <eggert@twinsun.com>
284
285 * NEWS: %expect-violations are now just warnings, reverting
286 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
287 bootstrapping problem reported by Matthias Klose; see
288 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
289 * src/conflicts.c (conflicts_print): Likewise.
290 * tests/conflicts.at (%expect not enough, %expect too much,
291 %expect with reduce conflicts): Likewise.
292 * doc/bison.texinfo (Expect Decl): Document this. Also mention
293 that the warning is enabled if the number of conflicts changes
294 (not necessarily increases).
295
296 * src/getargs.c (version): Update copyright year.
297
f0057011
AD
2982003-01-09 Akim Demaille <akim@epita.fr>
299
300 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
301
1ee6d2a0
PE
3022003-01-08 Paul Eggert <eggert@twinsun.com>
303
304 * Makefile.maint (WGETFLAGS):
305 New macro, containing "-C off" to disable proxy caches.
306 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
307 (rel-check): Use $(WGET) instead of wget.
308
d4fd77c4
PE
3092003-01-06 Paul Eggert <eggert@twinsun.com>
310
311 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
312 the GLR paper of Scott, Johnstone and Hussain.
313
464c6927
PE
3142003-01-04 Paul Eggert <eggert@twinsun.com>
315
d600ee67
PE
316 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
317 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
318 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
319 (EXTRA_LIBRARIES): New var, for liby.a.
320 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
321 (EXTRA_SCRIPTS): New var, for yacc.
322
464c6927
PE
323 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
324 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
325 Problem reported by Nelson H. F. Beebe.
326
3272003-01-03 Paul Eggert <eggert@twinsun.com>
328
329 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
330 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
331 when compiling Bison 1.875's `bitset bset = obstack_alloc
332 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
333
334 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
335 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
336 grow to a huge size with typical invocation.
d600ee67 337
464c6927
PE
338 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
339 Use the pattern recommended by Autoconf 2.57, except also protect
340 against double-definition.
341 * src/system.h: Likewise.
342 Portability issues reported by Nelson H. F. Beebe.
d600ee67 343
464c6927
PE
344 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
345 All uses changed. Provide a definition in both C and C++.
346 (yytrue, yyfalse): Define even if defined (__cplusplus).
347
348 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
349 Reported by Nelson H. F. Beebe.
d600ee67 350
464c6927
PE
351 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
352
0f42c7d5
PE
3532003-01-02 Paul Eggert <eggert@twinsun.com>
354
355 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
356 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
357 Bug reported by Nelson H. F. Beebe.
358
dc546b0f
PE
3592003-01-01 Paul Eggert <eggert@twinsun.com>
360
361 * Version 1.875.
362
2c09b6a7
PE
3632002-12-30 Paul Eggert <eggert@twinsun.com>
364
365 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
366 Moved here from...
367 (<INITIAL>","): Here. This causes stray "," to be treated
368 more uniformly.
369
dc546b0f 370 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
371 last brace in braced code when not in Yacc mode, for compatibility
372 with Bison 1.35. This resurrects the 2001-12-15 patch to
373 src/reader.c.
374
375 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
376 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
377
535c0f63
PE
3782002-12-28 Paul Eggert <eggert@twinsun.com>
379
380 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
381 that of SYM's type. This fixes Debian bug 168069, reported by
382 Thomas Olsson.
d600ee67 383
963fcc17
PE
3842002-12-28 Paul Eggert <eggert@twinsun.com>
385
386 Version 1.75f.
387
388 Switch back to the Yacc style of conflict reports, undoing some
389 of the 2002-07-30 change.
390 * doc/bison.texinfo (Understanding): Use Yacc style for
391 conflict reports. Also, use new way of locating rules.
392 * src/conflicts.c (conflict_report):
393 Renamed from conflict_report_yacc, removing the old
394 'conflict_report'. Translate the entire conflict report at once,
395 so that we don't assume that "," has the same interpretation in
396 all languages.
397 (conflicts_output): Use Yacc-style conflict report for each state,
398 instead of our more-complicated style.
399 (conflicts_print): Use Yacc-style conflict report, except print
400 the input file name when not emulating Yacc.
401 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
402 Conflicted Reduction, %expect not enough, %expect too much,
403 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
404 * tests/existing.at (GNU Cim Grammar): Likewise.
405 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
406
407 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
408 fatal): Don't invoke fflush; it's not needed and it might even be
409 harmful for stdout, as stdout might not be open.
410 * src/reduce.c (reduce_print): Likewise.
411
b1efe548
PE
4122002-12-27 Paul Eggert <eggert@twinsun.com>
413
414 Fix a bug where error locations were not being recorded correctly.
415 This problem was originally reported by Paul Hilfinger in
e3aa65c5 416 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
417
418 * data/yacc.c (yyparse): New local var yylerrsp, to record the
419 top of the location stack's error locations.
420 (yyerrlab): Set it. When discarding a token, push its location
421 onto yylerrsp so that we don't lose track of the error's end.
422 (yyerrlab1): Now is only the target of YYERROR, so that we can
423 properly record the location of the action that failed. For GCC
424 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
425 GCC warning about yyerrlab1 being unused if YYERROR is unused.
426 (yyerrlab2): New label, which yyerrlab now falls through to.
427 Compute the error's location by applying YYLLOC_DEFAULT to
428 the locations of all the symbols that went into the error.
429 * doc/bison.texinfo (Location Default Action): Mention that
430 YYLLOC_DEFAULT is also invoked for syntax errors.
431 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
432 Error locations include the locations of all the tokens that were
433 discarded, not just the last token.
d600ee67 434
983c5c2c
PE
4352002-12-26 Paul Eggert <eggert@twinsun.com>
436
b1efe548
PE
437 * src/files.c: Include quote.h.
438 (compute_output_file_names): Warn if we detect conflicting
439 outputs to the same file. This should catch the misunderstanding
440 exemplified by Debian Bug 165349, reported by Bruce Stephens..
441
442 * src/conflicts.c (conflicts_print): If the user specifies
443 "%expect N", report an error if there are any reduce/reduce
444 conflicts. This is what the manual says should happen.
445 This fixes Debian bug 130890, reported by Anthony DeRobertis.
446 * tests/conflicts.at (%expect with reduce conflicts): New test.
447
983c5c2c
PE
448 Don't use m4_include on relative file names, as it doesn't work as
449 desired if there happens to be a file with that name under ".".
d600ee67 450
983c5c2c
PE
451 * m4sugar/version.m4: Remove; it was included but it wasn't used.
452 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
453 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
454 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
455 * src/output.c (output_skeleton): Use full path names when
456 specifying a file to include; don't rely on include path, as
457 it's unreliable when the working file contains a file with
458 that name.
d600ee67 459
983c5c2c
PE
4602002-12-25 Paul Eggert <eggert@twinsun.com>
461
462 Remove obsolete references to bison.simple and bison.hairy.
463 Problem mentioned by Aubin Mahe in
e3aa65c5 464 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
465 * data/glr.c: Comment fix.
466 * doc/bison.1: Remove references. Also, mention "yacc".
467
468 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
469 with -g option.
470
471 * src/parse-gram.y (declaration): Use enum "report_states" rather
472 than its numeric value 1.
473
474 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
475 opening a new one. This fixes Debian bug 165349, reported by
476 Bruce Stephens.
477
23f2d9dc
PE
4782002-12-24 Paul Eggert <eggert@twinsun.com>
479
480 Version 1.75e.
481
482 * Makefile.maint (cvs-update): Don't assume that the shell
483 supports $(...), as Solaris sh doesn't.
484
485 * src/parse-gram.y (lloc_default): Remove test for empty
486 nonterminals at the end, since it didn't change the result.
487
4882002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
489
490 If the user does not define YYSTYPE as a macro, Bison now declares it
491 using typedef instead of defining it as a macro. POSIX requires this.
492 For consistency, YYLTYPE is also declared instead of defined.
493
494 %union directives can now have a tag before the `{', e.g., the
495 directive `%union foo {...}' now generates the C code
496 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
497 The default union tag is `YYSTYPE', for compatibility with Solaris 9
498 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
499 instead of `yyltype'.
500
501 `yystype' and `yyltype' are now obsolescent macros instead of being
502 typedefs or tags; they are no longer documented and will be
503 withdrawn in a future release.
504
505 * data/glr.c (b4_location_type): Remove.
506 (YYSTYPE): Renamed from yystype.
507 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
508 (struct YYLTYPE): Renamed from struct yyltype.
509 (YYLTYPE): Renamed from yyltype.
510 (yyltype, yystype): New (and obsolescent) macros,
511 for backward compatibility.
512 * data/yacc.c: Likewise.
513
514 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
515 does not specify a union tag. This is for compatibility with
516 Solaris 9 yacc.
517
518 * src/parse-gram.y (add_param): 2nd arg is now char * not char
519 const *, since it is now modified by stripping surrounding { }.
520 (current_braced_code): Remove.
521 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
522 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
523 trailing " {...}". Now of type <chars>.
524 (grammar_declaration): Adjust to bundled tokens.
525 (code_content): Remove; stripping is now done by add_param.
526 (print_token_value): Print contents of bundled tokens.
527 (token_name): New function.
528
529 * src/reader.h (braced_code, current_braced_code): Remove.
530 (token_name): New decl.
531
532 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
533 token_type, not braced_code code_kind. All uses changed.
534 (SC_PRE_CODE): New state, for scanning after a keyword that
535 has (or usually has) an immediately-following braced code.
536 (token_type): New local var, to keep track of which token type
537 to return when scanning braced code.
538 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 539 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
540 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
541 instead of returning a token type immediately.
542 (<INITIAL>"{"): Set token type.
543 (<SC_BRACED_CODE>"}"): Use it.
544 (handle_action_dollar, handle_action_at): Now returns bool
545 indicating success. Fail if ! current_rule; this prevents a core dump.
546 (handle_symbol_code_dollar, handle_symbol_code_at):
547 Remove; merge body into caller.
548 (handle_dollar, handle_at): Complain in invalid contexts.
549
550 * NEWS, doc/bison.texinfo: Document the above.
551 * NEWS: Fix years and program names in copyright notice.
552
879ca4f8
PE
5532002-12-17 Paul Eggert <eggert@twinsun.com>
554
555 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
556 Reporting, Table of Symbols): Omit mentions of %lex-param and
557 %parse-param from the documentation for now.
558
1c5fe69d
PE
5592002-12-15 Paul Eggert <eggert@twinsun.com>
560
561 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
562 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
563 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
564 disagreed with the Bison documentation. Bug
565 reported by Andrew Walrond.
d600ee67 566
1c5fe69d
PE
567 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
568 as the caller now does that.
569 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
570 (YYEMPTY): Parenthesize right hand side, since others use it.
571 (yyparse): Don't assume that our generated code is the only code
572 that sets yychar.
573
d1de5372
PE
5742002-12-13 Paul Eggert <eggert@twinsun.com>
575
576 Version 1.75d.
577
578 POSIX requires a "yacc" command.
579 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
580 (MOSTLYCLEANFILES): Add yacc.
581 (yacc): New rule.
1c5fe69d 582 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
583 as an alias for bison y.
584
585 * po/LINGUAS: Add da.
d600ee67 586
d1de5372
PE
587 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
588 problem with latest <getopt.h>.
589 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
590
591 * doc/fdl.texi: Upgrade to 1.2.
592 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
593 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
594 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
595 gnulib.
596 * config/install-sh: Sync with autotools.
597
598 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
e3aa65c5 599 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
600 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
601 locations are requested.
602 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
603 locations are requested.
604
d0f3fe23
PE
6052002-12-12 Paul Eggert <eggert@twinsun.com>
606
607 Remove unportable casts and storage allocation tricks.
608 While we're at it, remove almost all casts, since they
609 usually aren't needed and are a sign of trouble.
610
611 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
612
613 * src/derives.c (derives_compute): Do not subtract NTOKENS from
614 the pointer DSET returned by malloc; this isn't portable.
615 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
616 Similarly for DERIVES.
617 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
618 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
619 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
620
621 * src/derives.c (derives_compute): Do not bother invoking
622 int_of_rule_number, since rule numbers are integers.
623
624 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
625 rather than XMALLOC (char, N).
626
627 * src/files.c (filename_split): Rewrite to avoid cast.
628
629 * src/gram.h (symbol_number_as_item_number,
630 item_number_as_symbol_number, rule_number_as_item_number,
631 item_number_as_rule_number):
632 Now inline functions rather than macros, to avoid casts.
633 * src/state.h (state_number_as_int): Likewise.
634 * src/tables.c (state_number_to_vector_number,
635 symbol_number_to_vector_number): Likewise.
636
637 * src/gram.h (int_of_rule_number): Remove; no longer used.
638
639 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
640 since the resulting storage is always stored into.
641
642 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
643 where it's needed.
644
645 * src/muscle_tab.c (muscle_m4_output):
646 Now inline. Return bool, not int.
647 * src/state.c (state_compare): Likewise.
648 * src/symtab.c (symbol_check_defined,
649 symbol_check_alias_consistency, symbol_pack, symbol_translation,
650 hash_compare_symbol, hash_symbol):
651 Likewise.
652 * src/uniqstr.c (uniqstr_print): Likewise.
653 * src/muscle_tab.c (muscle_m4_output_processor):
654 New function, to avoid casts.
655 * src/state.c (state_comparator, stage_hasher): Likewise.
656 * src/symtab.c (symbol_check_defined_processor,
657 symbol_check_alias_consistency_processor, symbol_pack_processor,
658 symbol_translation_processor, hash_symbol_comparator,
659 hash_symbol_hasher): Likewise.
660 * src/uniqstr.c (uniqstr_print_processor): Likewise.
661 * src/muscle_tab.c (muscles_m4_output):
662 Use new functions instead of casting old functions unportably.
663 * src/state.c (state_hash_new): Likewise.
664 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
665 symbols_token_translations_init):
666 Likewise.
667 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
668
669 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
670 var instead of casting to long, to avoid casts.
671 (prepare_states): Use MALLOC rather than alloca, so that we don't
672 have to worry about alloca.
673 * src/state.c (state_hash_lookup): Likewise.
674
675 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
676 local var instead of casting to unsigned char, to avoid casts.
677
678 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
679 STATE_ALLOC): Remove.
680 (transitions_new, errs_new, reductions_new, state_new): Use malloc
681 rather than calloc, and use offsetof to avoid allocating slightly
682 too much storage.
683 (state_new): Initialize all members.
684
685 * src/state.c (state_hash): Use unsigned accumulator, not signed.
686
687 * src/symtab.c (symbol_free): Remove; unused.
688 (symbol_get): Remove cast in lhs of assignment.
689 (symbols_do): Now static. Accept generic arguments, not
690 hashing-related ones.
691
692 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
693 (symbol_processor): Remove.
694 (symbols_do): Remove decl; now static.
695
696 * src/system.h (alloca): Remove; decl no longer needed.
697 (<stddef.h>): Include, for offsetof.
698 (<inttypes.>, <stdint.h>): Include if available.
699 (uintptr_t): New type, if system lacks it.
700 (CALLOC, MALLOC, REALLOC): New macros.
701 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
702 new macros.
703
704 * src/tables.c (table_size): Now int, to pacify GCC.
705 (table_grow, table_ninf_remap): Use signed table size.
706 (save_row): Don't bother initializing locals when not needed.
707 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
708 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
709
710 * src/vcg.h: Correct misspellings.
711
712 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
713
714
715 * src/getargs.c (getargs): Don't assume EOF == -1.
716
26b4a969
PE
7172002-12-09 Paul Eggert <eggert@twinsun.com>
718
719 Change identifier spellings to avoid collisions with names
720 that are reserved by POSIX.
721
722 Don't use names ending in _t, since POSIX reserves them.
723 For consistency, remove _e and _s endings -- they're weren't
724 needed to remove ambiguity. All uses changed.
725 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
726 turn was just renamed from struniq_t.
727 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
728 which in turn was just renamed from struniq_processor_t.
729 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
730 in turn was renamed from hash_compare_struniq_t.
731 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
732 (state_list): Renamed from state_list_t.
733 * src/assoc.h (assoc): Renamed from assoc_t.
734 * src/conflicts.c (enum conflict_resolution): Renamed from
735 enum conflict_resolution_e.
736 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
737 (rule_list): Renamed from rule_list_t.
738 * src/getargs.h (enum trace): Renamed from enum trace_e.
739 (enum report): Renamed from enum report_e.
740 * src/gram.h (item_number): Renamed from item_number_t.
741 (rule_number): Renamed from rule_number_t.
742 (struct rule_s): Remove the "rule_s" part; not used.
743 (rule): Renamed from rule_t.
744 (rule_filter): Renamed from rule_filter_t.
745 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
746 (goto_list): Renamed from goto_list_t.
747 * src/lalr.h (goto_number): Renamed from goto_number_t.
748 * src/location.h (location): Renamed from location_t.
749 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
750 and moved here from:
751 * src/muscle_tab.h (muscle_entry_t): here.
752 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
753 (rule_list): Renamed from rule_list_t.
754 * src/print_graph.c (static_graph): Renamed from graph.
755 * src/reader.h (braced_code): Renamed from braced_code_t.
756 Remove brace_code_e tag.
757 * src/relation.h (relation_node): Renamed from relation_node_t.
758 (relation_nodes): Renamed from relation_nodes_t.
759 (relation): Renamed from relation_t.
760 * src/state.h (state_number): Renamed from state_number_t.
761 (struct state): Renamed from struct state_s.
762 (state): Renamed from state_t.
763 (transitions): Renamed from transitions_t. Unused (and
764 misspelled) transtion_s tag removed.
765 (errs): Renamed from errs_t. Unused errs_s tag removed.
766 (reductions): Renamed from reductions_t. Unused tag
767 reductions_s removed.
768 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
769 (struct symbol_list): Renamed from struct symbol_list_s.
770 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
771 (struct symbol): Renamed from struct symbol_s.
772 (symbol): Renamed from symbol_t.
773 * src/tables.c (vector_number): Renamed from vector_number_t.
774 (action_number): Renamed from action_t.
775 * src/tables.h (base_number): Renamed from base_t.
776 * src/vcg.h (enum color): Renamed from enum color_e.
777 (enum textmode): Renamed from enum textmode_e.
778 (enum shape): Renamed from enum shape_e.
779 (struct colorentry): Renamed from struct colorentry_s.
780 (struct classname): Renamed from struct classname_s.
781 (struct infoname): Renamed from struct infoname_s.
782 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
783 (enum decision): Renamed from enum decision_e.
784 (enum orientation): Renamed from enum orientation_e.
785 (enum alignment): Renamed from enum alignment_e.
786 (enum arrow_mode): Renamed from enum arrow_mode_e.
787 (enum crossing_type): Renamed from enum crossing_type_e.
788 (enum view): Renamed from enum view_e.
789 (struct node): Renamed from struct node_s.
790 (node): Renamed from node_t.
791 (enum linestyle): Renamed from enum linestyle_e.
792 (enum arrowstyle): Renamed from enum arrowstyle_e.
793 (struct edge): Renamed from struct edge.
794 (edge): Renamed from edge_t.
795 (struct graph): Renamed from struct graph_s.
796 (graph): Renamed from graph_t.
797 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
798 Rename value_t -> value.
799 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
800 value_t_as_yystype -> value_as_yystype.
801
802 Don't include <errno.h> in the mainstream code, since it
803 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
804 * lib/get-errno.c, lib/get-errno.h: New files.
805 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
806 get-errno.c.
807 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
808 * src/output.c (output_skeleton): Likewise.
809 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
810 instead of errno.
811 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
812 Likewise.
813 (handle_action_dollar, handle_action_at): Likewise.
814 * src/system.h: Do not include <errno.h>.
815 (TAB_EXT): Renamed from EXT_TAB.
816 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
817
818 Avoid str[a-z]*, since <string.h> reserves that name space.
819 Change all instances of "struniq" in names to "uniqstr", and
820 likewise for "STRUNIQ" and "UNIQSTR".
821 * src/uniqstr.c: Renamed from src/struniq.c.
822 * src/uniqstr.h: Renamed from src/struniq.h.
823 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
824 * src/files.c (strsuffix): Remove; unused.
825 (concat2): Renamed from stringappend. Now static.
826 * src/files.h (strsuffix, stringappend): Remove; unused.
827 * src/parse-gram.y (<chars>): Renamed from <string>.
828 (<uniqstr>): Renamed from <struniq>.
829 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
830 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
831 (struct graph_s.expand): Renamed from struct graph_s.stretch.
832 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
833 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
834 (N_EXPAND): Renamed from N_STRETCH.
835
836 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
837 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
838 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
839 Remove; unused.
840 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
841 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
842 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
843 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
844 (BASE_MAXIMUM): Renamed from BASE_MAX.
845 (BASE_MINIMUM): Renamed from BASE_MIN.
846 (ACTION_MAX): Remove; unused.
847 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
848 Unnecessary casts removed from above defines.
849
850
851 Fix misspelling in names.
852 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
853 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
854 G_NODE_ALIGNEMENT.
855
856
857 * lib/timevar.c (timevar_report): Renamed from time_report,
858 for consistency with other names.
859 * lib/timevar.h (timevar_report): New decl.
860 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
861
862
863 Sort include-file uses.
864
865 Reorder all include files under src to be in the order "system.h".
866 then the ../lib include files in angle brackets (alphabetized),
867 then the . include files in double-quotes (alphabetized). Fix
868 dependency breakages encountered in this process, as follows:
869 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
870 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
871 * src/state.h: Include "symtab.h".
872
996b1c7e
PE
8732002-12-08 Paul Eggert <eggert@twinsun.com>
874
875 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
876 since this causes problems when __file__ contains character
877 sequences like "@" that are treated specially by src/scan-skel.l.
878 Instead, just use the file's basename. This fixes the bug
879 reported by Martin Mokrejs in
e3aa65c5 880 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 881
e19c4e5d
PE
8822002-12-06 Paul Eggert <eggert@twinsun.com>
883
884 Add support for rules that do not have trailing semicolons, as
885 POSIX requires. Improve the quality of locations in Bison
886 diagnostics.
26b4a969 887
e19c4e5d
PE
888 * src/location.c: Include <quotearg.h>.
889 (empty_location): Now const.
890 (location_print): New function. Follow the recommendation of the
891 GNU Coding Standards for locations that span file boundaries.
892 * src/location.h: Do not include <quotearg.h>; no longer needed.
893 (boundary): New type.
894 (location_t): Use it. This allows locations to span file boundaries.
895 All member uses changed: file -> start.file or end.file (as needed),
896 first_line -> start.line, first_column -> start.column,
897 last_line -> end.line, last_column -> end.column.
898 (equal_boundaries): New function.
899 (LOCATION_RESET, LOCATION_STEP): Remove.
900 (LOCATION_PRINT): Remove. All callers changed to use location_print.
901 (empty_location): Now const.
902 (location_print): New decl.
903 * src/parse-gram.y (lloc_default): New function, which handles
904 empty locations more accurately.
905 (YYLLOC_DEFAULT): Use it.
906 (%token COLON): Remove.
907 (%token ID_COLON): New token.
26b4a969 908 (rules): Use it.
e19c4e5d
PE
909 (declarations, rules): Remove trailing semicolon.
910 (declaration, rules_or_grammar_declaration):
911 Allow empty (";") declaration.
912 (symbol_def): Remove empty actions; no longer needed.
913 (rules_or_grammar_declaration): Remove trailing semicolon.
914 (semi_colon.opt): Remove.
915 * src/reader.h: Include location.h.
916 (scanner_cursor): New decl.
917 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
918 rolling our own.
919 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
920 of *loc.
921 (STEP): Remove. No longer needed, now that adjust_location does
922 the work. All uses removed.
923 (scanner_cursor): New var.
924 (adjust_location): Renamed from extend_location. It now sets
925 *loc and adjusts the scanner cursor. All uses changed.
926 Don't bother testing for CR.
927 (handle_syncline): Remove location arg; now updates scanner cursor.
928 All callers changed.
929 (unexpected_end_of_file): Now accepts start boundary of token or
930 comment, not location. All callers changed. Update scanner cursor,
931 not the location.
932 (SC_AFTER_IDENTIFIER): New state.
933 (context_state): Renamed from c_context. All uses changed.
934 (id_loc, code_start, token_start): New local vars.
935 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
936 processing of Yacc white space and equivalents here.
937 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
938 instead of returning ID immediately, since we need to search for
939 a subsequent colon.
940 (<INITIAL>"'", "\""): Save token_start.
941 (<INITIAL>"%{", "{", "%%"): Save code_start.
942 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
943 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
944 BEGIN context_state at end, not INITIAL.
945 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
946 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
947 Return correct token start.
948 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
949 the start of a character, string or multiline comment is found.
950 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
951 Reduction): Adjust reported locations to match the more-precise
952 results now expected.
953 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
954 * tests/reduce.at (Useless Rules, Reduced Automaton,
955 Underivable Rules): Likewise.
956 * tests/regression.at (Invalid inputs): No longer `expecting ";"
957 or "|"' now that so many other tokens are allowed by the new grammar.
958
959 * src/complain.h (current_file): Remove duplicate decl;
960 current_file is now owned by files.h.
961 * src/complain.c, src/scan-gram.l: Include files.h.
962
9632002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 964
e19c4e5d
PE
965 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
966 promotes to int; it might be unsigned int.
967 * data/yacc.c (yy_reduce_print): Likewise.
968
969 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
970 be #defined in the prologue, not in the Bison declarations.
971 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 972
b64755e3
PE
9732002-12-02 Paul Eggert <eggert@twinsun.com>
974
975 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
976 * lib/strtoul.c: New file, from gnulib.
977 This fixes a porting bug reported by Peter Klein in
e3aa65c5 978 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 979
6e746484
PE
9802002-11-30 Paul Eggert <eggert@twinsun.com>
981
b64755e3
PE
982 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
983 and put only a forward declaration in the prologue. This is for
984 consistency with the other scanner helper functions.
985
6ba55592
PE
986 Type clashes now generate warnings, not errors, since it
987 appears that POSIX may allow some grammars with type clashes.
988 * src/reader.c (grammar_current_rule_check): Warn about
989 type clashes instead of complaining.
990 * tests/input.at (Type Clashes): Expect warnings, not complaints.
991
6e746484
PE
992 Add Yacc library, since POSIX requires it.
993 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
994 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
995 * lib/main.c, lib/yyerror.c: New files.
996
997 gram_error can be static; it need not be extern.
998 * src/reader.h (gram_error): Remove decl.
999 * src/parse-gram.y (gram_error): Now static. Add static decl.
1000 (print_token_value): Omit parameter names from forward decl,
1001 for consistency.
1002
88510f9c
PE
10032002-11-29 Paul Eggert <eggert@twinsun.com>
1004
6e746484
PE
1005 * doc/bison.texinfo: Emphasize that yylex and yyerror must
1006 be declared before being used. E.g., one should typically
1007 declare them in the prologue. Use GNU coding style in examples.
1008 Put "const" consistently after the type it modifies. Mention
1009 that C99 supports "inline". Mention that yyerror traditionally
1010 returns "int".
1011
88510f9c
PE
1012 %parse-param and %lex-param now take just one argument, the
1013 declaration; the argument name is deduced from the declaration.
1014
1015 * doc/bison.texinfo (Parser Function, Pure Calling, Error
1016 Reporting, Table of Symbols): Document this.
1017 * src/parse-gram.y (add_param): New function.
1018 (COMMA): Remove.
1019 (declaration): Implement new rule for %parse-param and %lex-param.
1020 * src/scan-gram.l: "," now elicits a warning, rather than being
1021 a token; this is more compatible with byacc.
1022 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1023
bb92250c
PE
10242002-11-27 Paul Eggert <eggert@twinsun.com>
1025
1026 Rename identifiers to avoid real and potential collisions.
1027
1028 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1029 to avoid collision with lex macro described by Bruce Lilly in
e3aa65c5 1030 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
1031 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1032 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1033 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1034 All uses changed.
1035 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1036 The name "yycontrol" violates the name space rules, and this stuff
1037 wasn't being used anyway.
1038 (input): Remove action; this stuff wasn't being used.
1039 (gram_error): Rename local variable yylloc -> loc.
1040 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1041 (YY_DECL): Don't use "yy" at start of local variables.
1042 All uses changed, e.g., yylloc -> loc.
1043 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1044 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1045 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1046 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1047
1048 * src/parse-gram.y (gram_error): loc is now const *.
1049 * src/reader.h (gram_error): Likewise.
1050
3af4feb2
PE
10512002-11-24 Paul Eggert <eggert@twinsun.com>
1052
1053 Version 1.75c.
1054
1055 * tests/actions.at (Actions after errors): Use an output format
1056 more similar to that of the Printers and Destructors test.
1057 Test the position of the ';' token too.
1058 (Printers and Destructors): Likewise.
1059 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1060 unnecessarily alarming people when the test fails.
1061
1062 * data/yacc.c (yyerrlab1): Move this label down, so that the
1063 parser does not discard the lookahead token if the user code
1064 invokes YYERROR. This change is required for POSIX conformance.
1065
1066 * lib/error.c: Sync with gnulib.
1067
10682002-11-22 Paul Eggert <eggert@twinsun.com>
1069
1070 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1071 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1072 * lib/xmalloc.c: Likewise.
26b4a969 1073
58004308
PE
10742002-11-20 Paul Eggert <eggert@twinsun.com>
1075
1076 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1077
10782002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 1079
58004308
PE
1080 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1081 should use `if (! x) abort ();' rather than `assert (x);', and
1082 anyway it's one less thing to worry about configuring.
1083
1084 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1085 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1086 and replace all instances of assert with abort.
1087 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1088 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1089
1090 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1091 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1092 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1093 hash_find_entry, hash_rehash, hash_insert): Likewise.
1094 * src/conflicts.c (resolve_sr_conflict): Likewise.
1095 * src/lalr.c (set_goto_map, map_goto): Likewise.
1096 * src/nullable.c (nullable_compute): Likewise.
1097 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1098 * src/reader.c (packgram, reader): Likewise.
1099 * src/state.c (state_new, state_free, state_transitions_set,
1100 state_reduction_find): Likewise.
1101 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1102 symbol_pack): Likewise.
1103 * src/tables.c (conflict_row, pack_vector): Likewise.
1104 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1105 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1106 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1107 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1108
1109 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1110 (ARGMATCH_CONSTRAINT): New macro.
1111 (ARGMATCH_ASSERT): Use it.
1112
1113 * src/system.h (verify): New macro.
1114 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1115 rather than assert.
1116 * src/tables.c (tables_generate): Likewise.
1117
1118 * src/struniq.c (struniq_assert): Now returns void, and aborts
1119 if the assertion is false.
1120 (struniq_assert_p): Remove.
1121 * src/struniq.h: Likewise.
1122
76ae8198
PE
11232002-11-18 Paul Eggert <eggert@twinsun.com>
1124
1125 * data/glr.c (yygetLRActions): Replace `yyindex' with
1126 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1127 This fixes the regression with Sun ONE Studio 7 cc that I reported in
e3aa65c5 1128 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 1129
d3c4e709
AD
11302002-11-18 Akim Demaille <akim@epita.fr>
1131
1132 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1133 space.
1134 From Tim Van Holder.
1135
8d8a7238
PE
11362002-11-17 Paul Eggert <eggert@twinsun.com>
1137
1138 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1139 to "SyntaxError" for consistency with my 2002-11-15 change.
1140
1141 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1142 not define to {}, since this breaks the common use of `YYDPRINTF
1143 ((...));' if a single statement is desired (e.g. before `else').
1144 Work around GCC warnings by surrounding corresponding calls with
1145 {} if needed.
1146 (yyhasResolvedValue): Remove unused function.
1147 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1148 loop body.
1149 (yyreportSyntaxError): Renamed from yyreportParseError.
1150 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1151 All uses changed.
1152 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1153 extern when possible. Remove unused initializations.
1154
b0937b22
AD
11552002-11-16 Akim Demaille <akim@epita.fr>
1156
1157 Augment the similarity between GLR and LALR traces.
1158
1159 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1160 (YY_REDUCE_PRINT): New.
1161 (yyparse): Use them.
1162 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1163 YYDPRINT here.
1164 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1165 state reached after the reduction/recovery, since...
1166 (yyparse, yyprocessOneStack): Report the state we are entering in.
1167
c5e3e510
AD
11682002-11-16 Akim Demaille <akim@epita.fr>
1169
1170 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1171 Add support for --trace=skeleton.
1172 * src/scan-skel.l: %option debug.
1173 Scan strings of non-@ or \n instead of character by character.
1174 (scan_skel): Handle trace_skeleton.
1175 (QPUTS): New.
1176 (@output_parser_name@, @output_header_name@): ``Restore'' their
1177 support (used to be M4 macros).
1178 * data/yacc.c: Quote larger chunks, a la glr.c.
1179 * data/lalr1.cc: Likewise.
1180 The header guards are no longer available, so use some other
1181 string than `YYLSP_NEEDED'.
1182
4c6cc1db
AD
11832002-11-16 Akim Demaille <akim@epita.fr>
1184
1185 Make the ``Printers and Destructors'' test more verbose, taking
1186 `yacc.c''s behavior as (possibly wrong) reference.
1187
1188 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1189 instead of fprint on stdout.
1190 Set and report the last_line of the symbols.
1191 Consistently display values and locations.
1192
6d9e8019
PE
11932002-11-16 Paul Eggert <eggert@twinsun.com>
1194
1195 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1196
6e649e65
PE
11972002-11-15 Paul Eggert <eggert@twinsun.com>
1198
b25d88f6
PE
1199 * tests/actions.at (Actions after errors): New test case.
1200
6e649e65
PE
1201 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1202 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1203 tests/action.at, tests/calc.at, tests/conflicts.at,
1204 tests/cxx-type.at, tests/regression.at:
1205 "parse error" -> "syntax error" for POSIX compatibility.
1206 "parsing stack overflow..." -> "parser stack overflow" so
1207 that code matches Bison documentation.
1208
0f39aab9
AD
12092002-11-15 Akim Demaille <akim@epita.fr>
1210
1211 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1212 take two BRACED_CODE, not two string_content.
1213 Free the scanner's obstack when we are done.
1214 (code_content): New.
1215 * tests/calc.at: Adjust.
1216 * doc/bison.texinfo: Adjust.
1217 Also, make sure to include the `,' for these declarations.
1218
761c1926
AD
12192002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1220
1221 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1222 definition; avoids potential autoreconf problems.
1223
b0f98b10
AD
12242002-11-15 Akim Demaille <akim@epita.fr>
1225
1226 Always check the value returned by yyparse.
1227
1228 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1229 returned by yyparse.
1230 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1231 Adjust calls.
1232 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1233 returned by yyparse.
1234
970785f1
PH
12352002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1236
1237 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1238 on input.at test.
1239
8fcc7db1
PE
12402002-11-14 Paul Eggert <eggert@twinsun.com>
1241
7ec1b48e
PE
1242 * src/output.c (output_skeleton): Call xfopen instead of
1243 duplicating xfopen's body.
1244
cfff7583 1245 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 1246 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 1247
8fcc7db1
PE
1248 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1249 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1250 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1251 file twice in the grammar, as an extra check.
1252
1253 * tests/input.at (Torturing the Scanner): Surround the
1254 backslash-newline tests with "#if 0", to make it less likely that
1255 we'll run into compiler bugs. Bring back solitary \ inside
1256 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 1257 test backslash-newline in C character constant.
8fcc7db1 1258
4e8d992c
AD
12592002-11-14 Akim Demaille <akim@epita.fr>
1260
1261 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1262 status of the compiler.
f32b346d 1263 Calling `exit 1' is no longer needed.
4e8d992c
AD
1264 Reported by Nelson H. F. Beebe.
1265
9501dc6e
AD
12662002-11-14 Akim Demaille <akim@epita.fr>
1267
1268 * tests/atlocal.in (CPPFLAGS): We have config.h.
1269 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1270 New.
1271 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1272 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1273 * tests/regression.at, tests/torture.at: Use them for all the
1274 grammars that are to be compiled.
1275 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1276 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1277 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1278
18b519c0
AD
12792002-11-14 Akim Demaille <akim@epita.fr>
1280
1281 * doc/bison.texinfo: Various formatting changes (alignments in
1282 samples, additional @group/@end group, GCS in samples.
1283 Use @deffn instead of simple @table to define the directives,
1284 macros, variables etc.
1285
9a86cdb9
PE
12862002-11-13 Paul Eggert <eggert@twinsun.com>
1287
daa33def 1288 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 1289 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 1290
daa33def 1291 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 1292 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
1293 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1294 * tests/headers.at (export YYLTYPE): Likewise.
1295
1296 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 1297 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 1298
9a86cdb9
PE
1299 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1300 comments, since they're not portable. Use GNU coding style.
1301
9c1e26bd
AD
13022002-11-13 Akim Demaille <akim@epita.fr>
1303
1304 * data/yacc.c: Leave bigger chunks of quoted text.
1305 (YYDSYMPRINTF): New.
1306 Use it to report symbol activities.
1307 * data/glr.c (YYDSYMPRINTF): New.
1308 Use it.
1309
87f721cc
PE
13102002-11-12 Paul Eggert <eggert@twinsun.com>
1311
1312 Version 1.75b.
1313
1314 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1315 (yyglrReduce): Return yyok, not 0.
1316 This should avoid the enumerated-type warnings reported
464c6927 1317 by Nelson H. F. Beebe in
e3aa65c5 1318 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
1319
1320 * lib/bbitset.h (BITSET_INLINE): Remove.
1321 * lib/bitset.h [! BITSET_INLINE]: Remove.
1322 (bitset_set, bitset_reset, bitset_test): Rename local vars
1323 to avoid shadowing warnings by GCC.
1324
1325 * data/glr.c (inline): Remove #define. It's the user's
1326 responsibility to #define it away, just like 'const'.
464c6927 1327 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 1328 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 1329
87f721cc
PE
1330 * Makefile.maint (po-check): Scan .l and .y files instead of the
1331 .c and the .h files that they generate. This fixes the bug
1332 reported by Tim Van Holder in:
e3aa65c5 1333 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
1334 Look for N_ as well as for _. Try to avoid matching #define for
1335 N_ and _.
1336 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1337 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1338 * src/scan-gram.l: Revamp regular expressions so that " and '
1339 do not confuse xgettext.
1340
1341 * src/struniq.h (struniq_new): Do not declare the return type
1342 to be 'const'; this violates the C standard.
1343 * src/struniq.c (struniq_new): Likewise.
1344
be14ade5
AD
13452002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1346
1347 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1348 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1349 linker.
1350
05291fbc
AD
13512002-11-12 Akim Demaille <akim@epita.fr>
1352
1353 * Makefile.maint: Sync with Autoconf:
1354 (local_updates): New.
1355
1f5fd52e
AD
13562002-11-12 Akim Demaille <akim@epita.fr>
1357
1358 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1359
283f1e64
AD
13602002-11-12 Akim Demaille <akim@epita.fr>
1361
1362 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1363 locations.
1364
886b69d1
AD
13652002-11-12 Akim Demaille <akim@epita.fr>
1366
1367 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1368 not yyvalue.
1369
3df37415
AD
13702002-11-12 Akim Demaille <akim@epita.fr>
1371
1372 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1373 Use it to test the GLR parser.
1374
7bd6c77e
AD
13752002-11-12 Akim Demaille <akim@epita.fr>
1376
1377 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1378 defines it.
1379 * data/glr.c (yystos): New.
1380 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1381 (YYDSYMPRINT): New.
1382 (yyval): Don't define it, it is handled via M4.
1383 (yyrecoverParseError): Free verbosely the discarded symbols.
1384 * data/yacc.c (yysymprint): Remove, rather...
1385 (b4_yysymprint_generate): invoke.
1386 * data/c.m4 (b4_yysymprint_generate): New.
1387 Accept pointers as arguments, as opposed to the version from
1388 yacc.c.
1389 (b4_yydestruct_generate): Likewise.
1390 * tests/cations.at (Printers and Destructors): Use Bison directives
1391 instead of CPP macros.
1392 Don't rely on internal details.
1393
b0400cc6
AD
13942002-11-12 Akim Demaille <akim@epita.fr>
1395
1396 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1397 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1398 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1399 it against YYEMPTY and so forth), work on yytoken (i.e., set
1400 it to YYEMPTY etc.).
1401 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1402 (b4_symbol_actions): Remove.
1403 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1404 for 0, end-of-input.
1405
72f889cc
AD
14062002-11-12 Akim Demaille <akim@epita.fr>
1407
1408 * doc/bison.texinfo (Destructor Decl): New.
1409
b1ae9233
AD
14102002-11-12 Akim Demaille <akim@epita.fr>
1411
1412 * src/tables.c (tables_generate): Use free for pointers that
1413 cannot be NULL, not XFREE.
1414 (pack_vector): Use assert, not fatal, for bound violations.
1415 * src/state.c (state_new): Likewise.
1416 * src/reader.c (reader): Likewise.
1417 * src/lalr.c (set_goto_map): Likewise.
72f889cc 1418 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
1419 the file name.
1420
7ec2d4cd
AD
14212002-11-12 Akim Demaille <akim@epita.fr>
1422
1423 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1424 Restore.
1425 * src/scan-gram.l (last_string): Is global to the file, not to
1426 yylex.
1427 * src/parse-gram.y (input): Don't append the epilogue here,
1428 (epilogue.opt): do it here, and free the scanner's obstack.
1429 * src/reader.c (epilogue_set): Rename as...
1430 (epilogue_augment): this.
1431 * data/c.m4 (b4_epilogue): Defaults to empty.
1432
573a6cd3
AD
14332002-11-12 Akim Demaille <akim@epita.fr>
1434
1435 * src/getargs.c (long_options): Remove duplicates.
1436 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1437 Remove.
1438 * doc/bison.rnh: Remove.
1439 * doc/bison.texinfo (VMS Invocation): Remove.
1440
95612cfa
AD
14412002-11-12 Akim Demaille <akim@epita.fr>
1442
1443 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1444 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1445
1446 Use struniq for symbols.
1447
1448 * src/symtab.h (symbol_t): The tag member is a struniq.
1449 (symbol_type_set): Adjust.
1450 * src/symtab.c (symbol_new): Takes a struniq.
1451 (symbol_free): Don't free the tag member.
1452 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1453 (hash_compare_symbol, hash_symbol): these.
1454 Use the fact that tags as struniqs.
1455 (symbol_get): Use struniq_new.
1456 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1457 Returns a strniq.
1458 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1459 and type members are struniqs.
1460 * src/reader.c (get_merge_function)
1461 (grammar_current_rule_merge_set): Adjust.
1462 (TYPE, current_type): Are struniq.
1463
1464 Use struniq for file names.
1465
1466 * src/files.h, src/files.c (infile): Split into...
1467 (grammar_file, current_file): these.
1468 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1469 * src/reduce.c (reduce_print): Likewise.
1470 * src/getargs.c (getargs): Likewise.
1471 * src/complain.h, src/complain.c: Likewise.
1472 * src/main.c (main): Call struniqs_new early enough to use it for
1473 file names.
1474 Don't free the input file name.
1475
3e6656f9
AD
14762002-11-12 Akim Demaille <akim@epita.fr>
1477
1478 * src/symtab.c (symbol_free): Remove dead deactivated code:
1479 type_name are properly removed.
1480 Don't use XFREE to free items that cannot be NULL.
1481 * src/struniq.h, src/struniq.c: New.
1482 * src/main.c (main): Initialize/free struniqs.
1483 * src/parse-gram.y (%union): Add astruniq member.
1484 (yyprint): Adjust.
1485 * src/scan-gram.l (<{tag}>): Return a struniq.
1486 Free the obstack bit that used to store it.
1487 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1488
7672019c
PE
14892002-11-11 Paul Eggert <eggert@twinsun.com>
1490
1491 Revamp to fix many (but not all) of the C- and M4-related quoting
1492 problems. Among other things, this fixes the Bison bug reported
1493 by Jan Hubicka when processing the Bash grammar; see:
e3aa65c5 1494 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
1495
1496 Use new @ escapes consistently. Represent brackets with @{ and @}
1497 rather than @<:@ and @:>@, since this works a bit better with dumb
1498 editors like vi. Represent @ with @@, since @ is now consistently
1499 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1500 __ofile__, to avoid unexpected expansions. Similarly, use @output
1501 rather than #output.
1502
1503 * data/c.m4 (b4_copyright): Omit file name from comment, since
1504 the file name could contain "*/".
1505 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1506 be quoted. All uses changed.
1507
1508 * data/glr.c: Use new @ escapes consistently.
1509 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1510 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1511 Remove, since they couldn't handle arbitrary characters in file
1512 names.
1513 * data/lalr1.cc: Likewise.
1514 * data/yacc.c: Likewise.
1515
1516 * src/files.c (output_infix): Remove; all uses removed.
1517 * src/files.h: Likewise.
1518
1519 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1520 mishandled funny characters in file names, and anyway it isn't
1521 needed any more.
1522 * data/yacc.c: Likewise.
1523 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1524
1525 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1526 * data/yacc.c: Likewise.
1527
1528 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1529 strings now.
1530 (muscle_init): Quote filename as a C string.
1531 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1532 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1533 * src/output.c (escaped_file_name_output): New function.
1534 (prepare_symbols): Quote tokens for M4.
1535 (prepare): Don't insert output_infix, output_prefix,
1536 output_parser_name, output_header_name; this is now down by scan-skel.
1537 Insert skeleton as a C string.
1538
1539 * src/output.c (user_actions_output, symbol_destructors_output,
1540 symbol_printers_output): Quote filenames for C and M4.
1541 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1542
1543 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1544 escapes other than \\ and \'; this simplifies the code.
1545 (<SC_STRING>): Likewise, for \\ and \".
1546 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1547 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1548 Use new escapes @{ and @} for [ and ].
1549
1550 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1551 them with auto vars.
1552 Switch to new escape scheme, where @ is the escape character uniformly.
1553 Abort if a stray escape character is found. Avoid unbounded input
1554 buffer when parsing non-escaped text.
1555
1556 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1557 __oline__, #output, $@, and @{ do not have unintended meanings.
1558
acea4f3b
PE
15592002-11-09 Paul Eggert <eggert@twinsun.com>
1560
1561 Fix the test failure due to GCC warnings described in
e3aa65c5 1562 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
1563 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1564 evaluate to 0 if it's impossible for NINF to be in the respective
1565 table.
1566 (yygetLRActions, yyrecoverParseError): Use them.
1567
1568 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1569 counted in the token inserted at end of file. Now takes
1570 location_t *, not location_t, so that the location can be
1571 adjusted. All uses changed.
1572
1573 * tests/regression.at (Invalid inputs): Adjust wording in
1574 diagnostic to match the new behavior.
1575
1576 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1577 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1578 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1579 abort ();'. This reduces the runtime of the "Many lookaheads"
1580 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1581 GCC 3.2.
1582
20ef1ad5
PE
15832002-11-07 Paul Eggert <eggert@twinsun.com>
1584
1585 * src/parse-gram.y (CHARACTER): Remove unused token.
1586 All uses removed.
1587
1588 * src/scan-gram.l: Remove stack option. We no longer use the
1589 stack, since the stack was never deeper than 1; instead, use the
1590 new auto var c_context to record the stacked value.
1591
1592 Remove nounput option. At an unexpected end of file, we now unput
1593 the minimal input necessary to end cleanly; this simplifies the
1594 code.
1595
1596 Avoid unbounded token sizes where this is easy.
1597
1598 (unexpected_end_of_file): New function.
1599 Use it to systematize the error message on unexpected EOF.
1600 (last-string): Now auto, not static.
1601 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1602 (scanner_last_string_free): Remove; not used.
1603 (percent_percent_count): Move decl to just before use.
1604 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1605 not the (never otherwised-used) CHARACTER.
1606
93724f13
AD
16072002-11-07 Akim Demaille <akim@epita.fr>
1608
1609 Let yyerror always receive the msg as last argument, so that
1610 yyerror can be variadic.
1611
1612 * data/yacc.c (b4_yyerror_args): New.
1613 Use it when calling yyerror.
1614 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1615 Use it when calling yyerror.
1616 * doc/bison.texinfo (Error Reporting): Adjust.
1617 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1618 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1619
6e40b4eb
AD
16202002-11-06 Akim Demaille <akim@epita.fr>
1621
1622 #line should have quoted strings.
1623 Ideally, this should be done by m4_quotearg.
1624
1625 * src/scan-skel.l: Include quotearg.h.
1626 Quote __ofile__.
1627 * src/output.c (symbol_printers_output)
1628 (symbol_destructors_output): Quote the file name.
1629
2dfbfc12
AD
16302002-11-06 Akim Demaille <akim@epita.fr>
1631
1632 * tests/regression.at (Invalid inputs): Adjust to the recent
1633 messages.
1634
437c2d80
AD
16352002-11-06 Akim Demaille <akim@epita.fr>
1636
1637 Restore --no-lines.
1638 Reported by Jim Kent.
1639
1640 * data/c.m4 (b4_syncline): New.
1641 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1642 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1643 * src/output.c (user_actions_output): Likewise.
1644 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 1645 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 1646
900c5db5
AD
16472002-11-06 Akim Demaille <akim@epita.fr>
1648
1649 * src/main.c (main): Free `infile'.
1650 * src/scan-gram.l (handle_syncline): New.
1651 Recognize `#line'.
1652 * src/output.c (user_actions_output, symbol_destructors_output)
1653 (symbol_printers_output): Use the location's file name, not
1654 infile.
1655 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1656
e183b123 16572002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 1658
e183b123 1659 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 1660 either has GLR conflict entries.
e183b123 1661
193eb6b7
PE
16622002-11-05 Paul Eggert <eggert@twinsun.com>
1663
e183b123
PE
1664 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1665 "integer out of range" rather than "invalid value".
1666 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1667 accordingly.
1668
193eb6b7
PE
1669 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1670 Also, remove one static variable in the scanner.
1671
1672 * src/scan-gram.l (braces_level): Now auto, not static.
1673 Initialize to zero if the compiler is being picky.
1674 (INITIAL): Clear braces_level instead of incrementing it.
1675 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1676 as POSIX 1003.1-2001 requires.
1677 * src/system.h (IF_LINT): New macro, taken from coreutils.
1678 * configure.ac: Define "lint" if --enable-gcc-warnings.
1679
29c01725
AD
16802002-11-05 Akim Demaille <akim@epita.fr>
1681
1682 * src/scan-gram.l: When it starts with `%', complain about the
1683 whole directive, not just that `invalid character: %'.
1684
8aeac3ca
AD
16852002-11-04 Akim Demaille <akim@epita.fr>
1686
1687 * Makefile.maint: Update from Autoconf.
1688 (update, cvs-update, po-update, do-po-update): New.
1689
793a58bb
AD
16902002-11-04 Akim Demaille <akim@epita.fr>
1691
1692 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1693 and yyerror.
1694 Have yyerror `use' its arguments.
1695 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1696 returns true when location & yacc & pure & parse-param.
1697 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1698
c4d720cd
AD
16992002-11-04 Akim Demaille <akim@epita.fr>
1700
1701 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1702 clashes.
1703 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1704 font-lock-mode.
1705 Use complain_at.
1706 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1707 slot 0.
1708
613a0dc5
PE
17092002-11-03 Paul Eggert <eggert@twinsun.com>
1710
1711 * src/reader.c (get_merge_function, grammar_current_rule_check):
1712 Use consistent diagnostics for reporting type name clashes.
1713 Quote the types with <>, for consistency with Yacc.
1714 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1715
2a8d363a
AD
17162002-11-03 Akim Demaille <akim@epita.fr>
1717
1718 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1719 New.
1720 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1721 (b4_parse_param): Remove.
1722 Use b4_identification.
1723 Propagate b4_pure_args where needed to pass them to yyerror.
1724 * data/glr.m4 (b4_parse_param): Remove.
1725 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1726 (b4_lpure_formals): New.
1727 Use b4_identification.
1728 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1729 b4_user_formals and b4_user_args.
1730 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1731 (yyreportAmbiguity): When using a pure parser, also need
1732 the location, and the parse-params.
1733 Adjust callers.
1734 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1735 When using a pure parser, also need the parse-params.
1736 Adjust callers.
1737 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1738 (%pure-parser + %parse-param) LALR and GLR parsers.
1739 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1740 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1741 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1742 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1743 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1744 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1745 * doc/bison.texinfo: Untabify the whole file.
1746 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1747 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1748 (Error Reporting): Adjust to these new directives.
1749 Document %error-verbose, deprecate YYERROR_VERBOSE.
1750
9e32add8
AD
17512002-11-03 Akim Demaille <akim@epita.fr>
1752
1753 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1754 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1755 command line options.
1756 * tests/cxx-type.at: Formatting changes.
1757
b02d90a5
PE
17582002-11-03 Paul Eggert <eggert@twinsun.com>
1759
1760 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1761 to count columns correctly, and to check for invalid inputs.
9e32add8 1762
b02d90a5
PE
1763 Use mbsnwidth to count columns correctly. Account for tabs, too.
1764 Include mbswidth.h.
1765 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1766 (extend_location): New function.
1767 (YY_LINES): Remove.
1768
1769 Handle CRLF in C code rather than in Lex code.
1770 (YY_INPUT): New macro.
1771 (no_cr_read): New function.
1772
1773 Scan UCNs, even though we don't fully handle them yet.
1774 (convert_ucn_to_byte): New function.
1775
1776 Handle backslash-newline correctly in C code.
1777 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1778 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1779 all uses changed.
1780 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1781 Use {splice} wherever C allows backslash-newline.
1782 YY_STEP after space, newline, vertical-tab.
1783 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 1784
b02d90a5
PE
1785 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1786
1787 ({int}, handle_action_dollar, handle_action_at): Check for integer
1788 overflow.
9e32add8 1789
b02d90a5
PE
1790 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1791
1792 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1793 as well as \000. Check for UCHAR_MAX, not 255.
1794 Allow \x with an arbitrary positive number of digits, as in C.
1795 Check for overflow here.
1796 Allow \? and UCNs, for compatibility with C.
1797
1798 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1799 with quote slot used by complain_at.
1800
1801 * tests/input.at: Add tests for backslash-newline, m4 quotes
1802 in symbols, long literals, and funny escapes in strings.
1803
1804 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1805 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1806 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1807 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1808 * m4/mbswidth.m4: New file, from GNU coreutils.
1809
1810 * doc/bison.texinfo (Grammar Outline): Document // comments.
1811 (Symbols): Document that trigraphs have no special meaning in Bison,
1812 nor is backslash-newline allowed.
1813 (Actions): Document that trigraphs have no special meaning.
1814
1815 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1816 no longer used.
1817
18182002-11-02 Paul Eggert <eggert@twinsun.com>
1819
1820 * src/reader.c: Don't include quote.h; not needed.
1821 (get_merge_function): Reword warning to be consistent with
1822 type clash diagnostic in grammar_current_rule_check.
1823
1824 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
1825 bug in trigraph handling.
1826
1827 * src/output.c (prepare_symbols): When printing token names,
1828 escape "[" as "@<:@" and likewise for "]".
1829
1830 * src/system.h (errno): Remove declaration, as we are now
1831 assuming C89 or better, and C89 guarantees errno.
1832
762b212b
PE
18332002-10-30 Paul Eggert <eggert@twinsun.com>
1834
1835 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
1836 Check for close failures.
1837 * src/files.h (xfclose): Return void, not int, since it always
1838 returned zero.
1839 * src/files.c (xfclose): Likewise. Report I/O error if ferror
1840 indicates one.
1841 * src/output.c (output_skeleton): Use xfclose rather than fclose
1842 and ferror. xfclose now checks ferror.
1843
1844 * data/glr.c (YYLEFTMOST_STATE): Remove.
1845 (yyreportTree): Use a stack-based leftmost state. This avoids
1846 our continuing battles with bogus warnings about initializers.
1847
56100c60
AD
18482002-10-30 Akim Demaille <akim@epita.fr>
1849
1850 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
1851 #if.
1852
51b4a04c
PH
18532002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1854
1855 * tests/glr-regr1.at: New test for reported regressions.
1856 * tests/testsuite.at: Add glr-regr1.at test.
1857 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 1858
bf1ebda2
PE
18592002-10-24 Paul Eggert <eggert@twinsun.com>
1860
5c16c6b1
PE
1861 Version 1.75a.
1862
bf1ebda2
PE
1863 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
1864 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
1865 we use malloc. Don't assume 'A' through 'Z' are contiguous.
1866 Don't assume strdup exists; POSIX says its an XSI extension.
1867 Check for buffer overflow on input.
1868
b526ee61
AD
18692002-10-24 Akim Demaille <akim@epita.fr>
1870
1871 * src/output.c (output_skeleton): Don't disable M4sugar comments
1872 too soon: it results in comments being expanded.
1873 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
1874 first output.
1875
f1886bb2
AD
18762002-10-24 Akim Demaille <akim@epita.fr>
1877
1878 * data/yacc.c (m4_int_type): New.
1879 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
1880 char' as only yacc.c wants K&R portability.
1881 * data/glr.c (yysigned_char): Remove.
1882 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
1883 Reported by Quoc Peyrot.
1884
c5576256
PE
18852002-10-23 Paul Eggert <eggert@twinsun.com>
1886
1887 * src/main.c (main): With --trace=time, report times even if a
1888 non-fatal error occurs. Formerly, the times were reported in some
1889 such cases but not in others.
1890 * src/reader.c (reader): Just return if a complaint has been issued,
1891 instead of exiting, so that 'main' can report times.
1892
27b0ffea
AD
18932002-10-22 Akim Demaille <akim@epita.fr>
1894
1895 * src/system.h: Include sys/types.
1896 Reported by Bert Deknuydt.
1897
223a7883
PE
18982002-10-23 Paul Eggert <eggert@twinsun.com>
1899
1900 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
1901 Suggested by Art Haas.
1902
19032002-10-22 Paul Eggert <eggert@twinsun.com>
1904
1905 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
1906 decl; not needed any more.
1907 * src/main.c (main): Use return to exit, undoing yesterday's change.
1908 The last OS that we could find where this wouldn't work is
1909 SunOS 3.5, and that's too old to worry about now.
1910
1911 * data/glr.c (struct yyltype): Define members even when not
1912 doing locations. This is more consistent with yacc.c, and it
1913 works around the following bug reports:
e3aa65c5
PE
1914 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
1915 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 1916
223a7883
PE
1917 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
1918 @acronym consistently. Standardize on "Yacc" instead of "YACC",
1919 "Algol" instead of "ALGOL". Give a bit more history about BNF.
1920
8b76775a
AD
19212002-10-22 Akim Demaille <akim@epita.fr>
1922
1923 * data/README: New.
1924
6db10d14
PE
19252002-10-21 Paul Eggert <eggert@twinsun.com>
1926
1927 Be consistent about 'bool'; the old code used an enum in one
1928 module and an int in another, and this violates the C standard.
1929 * m4/stdbool.m4: New file, from coreutils 4.5.3.
1930 * configure.ac (AC_HEADER_STDBOOL): Add.
1931 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
1932 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
1933 * src/symtab.c (hash_compare_symbol_t): Likewise.
1934 * src/system.h (bool, false, true): Use a definition consistent
1935 with ../lib/hash.c. All uses changed.
1936
1937 * src/complain.c (warning_issued): Renamed from warn_message_count,
1938 so that we needn't worry about integer overflow (!).
1939 Now of type bool. All uses changed.
1940 (complaint_issued): Renamed from complain_message_count; likewise.
1941
1942 * src/main.c (main): Use exit to exit with failure.
27b0ffea 1943
6db10d14
PE
1944 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
1945 rather than 1 and 0.
1946 * src/main.c (main): Likewise.
1947 * src/getargs.c (getargs): Likewise.
1948 * src/reader.c (reader): Likewise.
1949
1950 * src/getarg.c (getargs): Remove duplicate code for
1951 "Try `bison --help'".
1952
1953 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
1954 What was that "2" for?
1955
1956 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
1957 * src/getargs.c (usage): Likewise.
1958
1959 * src/getargs.c (getargs): When there are too few operands, report
1960 the last one. When there are too many, report the first extra
1961 one. This is how diffutils does it.
1962
92a060fd
PE
19632002-10-20 Paul Eggert <eggert@twinsun.com>
1964
1965 Remove K&R vestiges.
1966 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
1967 * src/complain.c (VA_START): Remove. Assume prototypes.
1968 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
1969 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
1970 fatal): Assume prototypes.
1971 * src/complain.h: Assume prototypes.
1972 * src/system.h (PARAMS): Remove.
1973 Include <limits.h> unconditionally, since it's guaranteeed even
1974 for a freestanding C89 compiler.
1975 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
1976 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 1977
e7cb57c0
AD
19782002-10-20 Akim Demaille <akim@epita.fr>
1979
1980 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
1981 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
1982 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
1983 (yyresolveStates, yyresolveAction, yyresolveStack)
1984 (yyprocessOneStack): Use them.
1985 (yy_reduce_print): New.
1986 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
1987
0245f82d
AD
19882002-10-20 Akim Demaille <akim@epita.fr>
1989
1990 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
1991 arguments and output `void'.
1992 (b4_c_function): Rename as...
1993 (b4_c_function_def): this.
1994 (b4_c_function_decl, b4_c_ansi_function_def)
1995 (b4_c_ansi_function_decl): New.
1996 Change the interpretation of the arguments: before `int, foo', now
1997 `int foo, foo'.
1998 * data/yacc.c (yyparse): Prototype and define thanks to these.
1999 Adjust b4_c_function_def uses.
2000 * data/glr.c (yyparse): Likewise, but ANSI only.
2001
39912f52
AD
20022002-10-20 Akim Demaille <akim@epita.fr>
2003
2004 * src/output.c (prepare): Move the definition of `tokens_number',
2005 `nterms_number', `undef_token_number', `user_token_number_max'
2006 to...
2007 (prepare_tokens): Here.
2008 (prepare_tokens): Rename as...
2009 (prepare_symbols): this.
2010 (prepare): Move the definition of `rules_number' to...
2011 (prepare_rules): here.
2012 (prepare): Move the definition of `last', `final_state_number',
2013 `states_number' to...
2014 (prepare_states): here.
2015 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
2016
20c1e2ad
AD
20172002-10-20 Akim Demaille <akim@epita.fr>
2018
2019 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2020
21964f43
AD
20212002-10-20 Akim Demaille <akim@epita.fr>
2022
2023 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2024 * data/c.m4: here.
2025
66d30cd4
AD
20262002-10-20 Akim Demaille <akim@epita.fr>
2027
2028 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2029 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2030 `pair'.
2031 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2032 `name' to...
2033 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2034 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2035 These.
2036
95f2c9fe
PE
20372002-10-19 Paul Eggert <eggert@twinsun.com>
2038
2039 Do not create a temporary file, as that involves security and
2040 cleanup headaches. Instead, use a pair of pipes.
2041 Derived from a suggestion by Florian Krohm.
2042 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2043 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2044 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2045 (BISON_PREREQ_SUBPIPE): Add.
2046 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2047 Add subpipe.h, subpipe.c.
2048 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2049 * po/POTFILES.in: Add lib/subpipe.c.
2050 * src/output.c: Include "subpipe.h".
2051 (m4_invoke): Remove decl.
2052 (scan_skel): New decl.
2053 (output_skeleton): Use pipe rather than temporary file for m4 input.
2054 Check that m4sugar.m4 is readable, to avoid deadlock.
2055 Check for pipe I/O error.
2056 * src/scan-skel.l (readpipe): Remove decl.
2057 (scan_skel): New function, to be used in place of m4_invoke.
2058 Read from stream rather than file.
66d30cd4 2059
95f2c9fe
PE
2060 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2061 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2062 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2063 this generates a more-accurate value anyway.
2064
2065 * lib/timevar.c (timervar_accumulate): Rename locals to
2066 avoid confusion with similarly-named more-global.
2067 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2068
2069 * src/output.c (prepare): Use xstrdup to convert char const *
2070 to char *, to avoid GCC warning.
2071
c19988b7
AD
20722002-10-19 Akim Demaille <akim@epita.fr>
2073
2074 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2075 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2076 Use them to have `calc.y' ready for %pure-parser.
2077 * data/yacc.c (YYLEX): Pass a yylex return type to
2078 b4_c_function_call.
2079
ae7453f2
AD
20802002-10-19 Akim Demaille <akim@epita.fr>
2081
2082 Prototype support of %lex-param and %parse-param.
2083
2084 * src/parse-gram.y: Add the definition of the %lex-param and
2085 %parse-param tokens, plus their rules.
2086 Drop the `_' version of %glr-parser.
2087 Add the "," token.
2088 * src/scan-gram.l (INITIAL): Scan them.
2089 * src/muscle_tab.c: Comment changes.
2090 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2091 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2092 (muscle_entry_s): The `value' member is no longer const.
2093 Adjust all dependencies.
2094 * src/muscle_tab.c (muscle_init): Adjust: use
2095 MUSCLE_INSERT_STRING.
2096 Initialize the obstack earlier.
2097 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2098 (muscle_pair_list_grow): New.
2099 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2100 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2101 * tests/calc.at: Use %locations, not --locations.
2102 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2103
0e575721
AD
21042002-10-19 Akim Demaille <akim@epita.fr>
2105
2106 * src/getargs.c (usage): Take status as argument and exit
2107 accordingly.
2108 Report the traditional `Try ... --help' message when status != 0.
2109 (usage, version): Don't take a FILE * as arg, it is pointless.
2110 (getargs): When there is an incorrect number of arguments, make it
2111 an error, and report it GNUlically thanks to `usage ()'.
2112
724ce7f5
PE
21132002-10-18 Paul Eggert <eggert@twinsun.com>
2114
3a781eb2
PE
2115 * data/glr.c (yyreportParseError): Don't assume that sprintf
2116 yields the length of the printed string, as this is not true
2117 on SunOS 4.1.4. Reported by Peter Klein.
2118
724ce7f5
PE
2119 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2120 * tests/conflicts.at (%nonassoc and eof): Likewise.
2121 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2122
473d0a75
AD
21232002-10-17 Akim Demaille <akim@epita.fr>
2124
2125 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2126 * src/getargs.c (trace_types, trace_args): Adjust.
2127 * src/reader.c (grammar_current_rule_prec_set)
2128 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2129 Standardize error messages.
2130 And s/@prec/%prec/!
2131 (reader): Use trace_flag to enable scanner/parser debugging,
2132 instead of an adhoc scheme.
2133 * src/scan-gram.l: Remove trailing debugging code.
2134
e76d2469
PE
21352002-10-16 Paul Eggert <eggert@twinsun.com>
2136
93e2236a
PE
2137 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2138 MUSCLE_TAB_H.
2139
e76d2469
PE
2140 * NEWS: Officially drop support for building Bison with K&R C,
2141 since it didn't work anyway and it's not worth worrying about.
2142 * Makefile.maint (wget_files): Remove ansi2knr.c.
2143 (ansi2knr.c-url_prefix): Remove.
2144 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2145 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2146 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2147
5bd1c419
PE
21482002-10-15 Paul Eggert <eggert@twinsun.com>
2149
2150 Stop using the "enum_" trick for K&R-style function definitions;
2151 it confused me, and I was the author! Instead, assume that people
2152 who want to use K&R C compilers (when using these modules in GCC,
2153 perhaps?) will run ansi2knr.
2154
2155 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2156 All uses of "enum_" changed to "enum ".
2157 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2158 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 2159
5bd1c419
PE
2160 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2161 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2162 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2163 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2164 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2165 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2166 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2167 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2168 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2169 Use function prototypes; this removes the need for declaring
2170 static functions simply to provide their prototypes.
2171 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2172 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2173 bitset_count_, bitset_create, bitset_dump, bitset_first,
2174 bitset_free, bitset_init, bitset_last, bitset_next,
2175 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2176 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2177 bitset_print, bitset_release_memory, bitset_toggle_,
2178 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2179 debug_bitset): Likewise.
2180 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2181 * lib/bitset_stats.c (bitset_log_histogram_print,
2182 bitset_percent_histogram_print, bitset_stats_and,
2183 bitset_stats_and_cmp, bitset_stats_and_or,
2184 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2185 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2186 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2187 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2188 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2189 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2190 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2191 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2192 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2193 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2194 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2195 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2196 bitset_stats_zero): Likewise.
2197 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2198 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2199 bitsetv_dump, debug_bitsetv): Likewise.
2200 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2201 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2202 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2203 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2204 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2205 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2206 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2207 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2208 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2209 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2210 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2211 Likewise.
2212 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2213 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2214 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2215 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2216 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2217 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2218 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2219 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2220 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2221 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2222 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 2223
ae26e1f0
AD
22242002-10-14 Akim Demaille <akim@epita.fr>
2225
2226 Version 1.75.
2227
d43baf71
AD
22282002-10-14 Akim Demaille <akim@epita.fr>
2229
2230 * tests/Makefile.am (maintainer-check-posix): New.
2231
7ebc83e3
AD
22322002-10-14 Akim Demaille <akim@epita.fr>
2233
2234 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2235 member.
2236
05846dae
AD
22372002-10-14 Akim Demaille <akim@epita.fr>
2238
2239 * src/tables.c (table_ninf_remap): base -> tab.
2240 Reported by Matt Rosing.
2241
1318e37d
PE
22422002-10-14 Paul Eggert <eggert@twinsun.com>
2243
447fbb17
PE
2244 * tests/action.at, tests/calc.at, tests/conflicts.at,
2245 tests/cxx-type.at, tests/headers.at, tests/input.at,
2246 tests/regression.at, tests/synclines.at, tests/torture.at:
2247 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2248 so that the tests still work even if POSIXLY_CORRECT is set.
2249 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 2250
1318e37d
PE
2251 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2252 for portability to K&R hosts. Fix typo: signed char is guaranteed
2253 only to 127, not to 128.
2254 * data/glr.c (yysigned_char): New type.
2255 * data/yacc.c (yysigned_char): Likewise.
2256 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2257
cc0f0794
PE
22582002-10-13 Paul Eggert <eggert@twinsun.com>
2259
5038f418
PE
2260 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2261 true due to limited range of data type" warning from GCC.
2262
cc0f0794
PE
2263 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2264 by wrapping enum yytokentype's definition inside #ifndef
2265 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2266
6fed0802
AD
22672002-10-13 Akim Demaille <akim@epita.fr>
2268
2269 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2270 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2271
32f0598d
AD
22722002-10-13 Akim Demaille <akim@epita.fr>
2273
2274 * Makefile.maint: Update from Autoconf 2.54.
2275 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2276
7ea9a33f
AD
22772002-10-13 Akim Demaille <akim@epita.fr>
2278
2279 * src/print.c (print_state): Separate the list of solved conflicts
2280 from the other items.
2281 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2282
ea99527d
AD
22832002-10-13 Akim Demaille <akim@epita.fr>
2284
2285 Let nondeterministic skeletons be usable with deterministic
2286 tables.
2287
2288 With the patch, GAWK compiled by GCC without -O2 passes its test
2289 suite using a GLR parser driven by LALR tables. It fails with -O2
2290 because `struct stat' gives two different answers on my machine:
2291 88 (definition of an auto var) and later 96 (memset on this var).
2292 Hence the stack is badly corrumpted. The headers inclusion is to
2293 blame: if I move the awk.h inclusion before GLR's system header
2294 inclusion, the two struct stat have the same size.
2295
2296 * src/tables.c (pack_table): Always create conflict_table.
2297 (token_actions): Always create conflict_list.
2298 * data/glr.c (YYFLAG): Remove, unused.
2299
f377f69f
AD
23002002-10-13 Akim Demaille <akim@epita.fr>
2301
2302 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2303 (O0FLAGS): New.
2304 (VALGRIND, GXX): New.
2305 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2306 * tests/bison.in: Run $PREBISON a pre-command.
2307 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2308 (maintainer-check-g++): New.
2309 * Makefile.am (maintainer-check): New.
2310
2a1fe6ed
AD
23112002-10-13 Akim Demaille <akim@epita.fr>
2312
2313 * data/glr.c: Formatting changes.
2314 Tweak some trace messages to match yacc.c's.
2315
f50adbbd
AD
23162002-10-13 Akim Demaille <akim@epita.fr>
2317
2318 GLR parsers sometimes raise parse errors instead of performing the
2319 default reduction.
2320 Reported by Charles-Henry de Boysson.
2321
2322 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2323 check the length of the traces when %glr.
2324 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2325 GLR's traces.
2326 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2327 Test GLR parsers.
2328 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2329 (yyltype): Remove the yy prefix from the member names.
2330 (yytable): Complete its comment.
2331 (yygetLRActions): Map error action number from YYTABLE from
2332 YYTABLE_NINF to 0.
2333 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2334 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2335 not satisfying as we could compare an YYACTION computed from
2336 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2337 only value for error actions.
2338 (yyreportParseError): In verbose parse error messages, don't issue
2339 `error' in the list of expected tokens.
2340 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2341 next action to perform to match glr.c's decoding.
2342 (yytable): Complete its comment.
2343
bcbad5b9
PE
23442002-10-13 Paul Eggert <eggert@twinsun.com>
2345
2346 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 2347 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
2348 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2349 because the Bison parser reads the second action before reducing
2350 the first one.
2351 * src/scan-gram.l (rule_length): New static var.
2352 Use it to keep track of the rule length in the scanner, since
2353 we can't expect the parser to be in lock-step sync with the scanner.
2354 (handle_action_dollar, handle_action_at): Use this var.
2355 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 2356
14904b89
PE
23572002-10-12 Paul Eggert <eggert@twinsun.com>
2358
1fe611e5
PE
2359 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2360 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2361 Include <sys/time.h> when checking for clock_t and struct tms.
2362 Use same include order as source.
2363 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
e3aa65c5 2364 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 2365
1fe611e5
PE
2366 * lib/timevar.c: Update copyright date and clarify comments.
2367 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 2368
1fe611e5
PE
2369 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2370 GCC version as of today, then merge Bison's changes.
2371 Change "GCC" to "Bison" in copyright notice. timevar.def's
2372 author is Akim, so change that too.
2373
98194095
PE
2374 * src/reader.c (grammar_current_rule_check):
2375 Don't worry about the default action if $$ is untyped.
2376 Prevents bogus warnings reported by Jim Gifford in
e3aa65c5 2377 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 2378
14904b89
PE
2379 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2380 * data/glr.c, data/lalr1.cc, data/yacc.c:
2381 Output token definitions before the first part of user declarations.
2382 Fixes compatibility problem reported by Jim Gifford for kbd in
e3aa65c5 2383 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 2384
ff6dca18
PE
23852002-10-11 Paul Eggert <eggert@twinsun.com>
2386
2387 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2388 (yyparse): here. This undoes some of the 2002-07-25 change.
2389 Compatibility problem reported by Ralf S. Engelschall with
2390 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2391
eb714592
AD
23922002-10-11 Akim Demaille <akim@epita.fr>
2393
2394 * tests/regression.at Characters Escapes): New.
2395 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2396 characters.
2397 Reported by Jan Nieuwenhuizen.
2398
b7195100
AD
23992002-10-11 Akim Demaille <akim@epita.fr>
2400
2401 * po/id.po: New.
2402
f28a0f2d
PE
24032002-10-10 Paul Eggert <eggert@twinsun.com>
2404
2405 Portability fixes for bitsets; this also avoids several GCC
2406 warnings.
2407
2408 * lib/abitset.c: Include <stddef.h>, for offsetof.
2409 * lib/lbitset.c: Likewise.
2410
2411 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2412 properly for vectors of objects. Do not assume that adding a
2413 header size to a multiple of a word size yields a value that is
2414 properly aligned for the whole union.
2415 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2416
2417 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2418 unique names for structures.
2419 * lib/ebitset.c (ebitset_bytes): Likewise.
2420 * lib/lbitset.c (lbitset_bytes): Likewise.
2421
2422 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2423 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2424 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2425 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2426 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2427 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2428 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2429 to improve the type-checking that GCC can do.
2430 * lib/bitset.c (bitset_op4_cmp): Likewise.
2431 * lib/bitset_stats.c (bitset_stats_count,
2432 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2433 bitset_stats_copy, bitset_stats_disjoint_p,
2434 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2435 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2436 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2437 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2438 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2439 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2440 bitset_stats_or_and_cmp): Likewise.
2441 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2442 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2443 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2444 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2445
2446 * lib/abitset.h: Include bitset.h, not bbitset.h.
2447 * lib/ebitset.h: Likewise.
2448 * lib/lbitset.h: Likewise.
2449
2450 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2451 All instances of parameters of type enum bitset_opts are now of
2452 type enum_bitset_opts, to conform to the C Standard, and similarly
2453 for enum_bitset_type.
2454 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2455 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2456
2457 Do not use "struct bitset_struct" to mean different things in
2458 different modules. Not only is this confusing, it violates
2459 the C Standard, which requires that structure types in different
2460 modules must be compatible if one is to be passed to the other.
2461 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2462 All instances of "struct bitset_struct *" replaced with "bitset".
2463 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2464 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2465 struct lbitset_struct, struct bitset_stats_struct): New types.
2466 All uses of struct bitset_struct changed to union bitset_union,
2467 etc.
2468 * lib/abitset.c (struct abitset_struct, abitset,
2469 struct bitset_struct): Remove.
2470 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2471 struct bitset_struct): Remove.
2472 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2473 bitset_struct): Remove.
2474 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2475 Likewise.
2476
2477 Do not call a function of type T using a call that assumes the
2478 function is of a different type U. Standard C requires that a
2479 function must be called with a type that is compatible with its
2480 definition.
2481 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2482 New decls.
2483 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2484 New functions.
2485 * lib/ebitset.c (PFV): Remove.
2486 * lib/lbitset.c (PFV): Likewise.
2487 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2488 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2489 decls.
2490 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2491 (ebitset_vtable): Use them.
2492 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2493 lbitset_xor): New functions.
2494 (lbitset_vtable): Use them.
2495
2496 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2497 Declare.
2498
2499 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2500 GCC warning.
2501 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2502 Use offsetof, for simplicity.
2503
6fbe4984
PE
25042002-10-06 Paul Eggert <eggert@twinsun.com>
2505
2506 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2507 the same width as int. This reapplies a hunk of the 2002-08-12 patch
e3aa65c5 2508 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
2509 which was inadvertently undone by the 2002-09-30 patch.
2510 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2511 the same width as int.
2512
420f93c8
PE
25132002-10-04 Paul Eggert <eggert@twinsun.com>
2514
2515 Version 1.50.
2516
2517 * configure.ac (AC_INIT), NEWS: Increment version number.
2518
2519 * doc/bison.texinfo: Minor spelling, grammar, and white space
2520 fixes.
2521 (Symbols): Mention that any negative value returned from yylex
2522 signifies end-of-input. Warn about negative chars. Mention
2523 the portable Standard C character set.
2524
2525 The GNU coding standard says CFLAGS and YFLAGS are reserved
2526 for the installer to set.
2527 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2528 * src/Makefile.am (AM_CFLAGS): Likewise.
2529 (AM_YFLAGS): Renamed from YFLAGS.
2530
2531 Fix some MAX and MIN problems.
2532 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2533 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2534 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2535 * src/reader.c (reader): Use it.
2536
2537 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2538 POSIX 1003.1-2001 has removed fgrep.
2539
25402002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2541
2542 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2543 interpreted as signed.
2544 * lib/ebitset.c (ebitset_list): Fix bug.
2545
ff68026d
PE
25462002-10-01 Paul Eggert <eggert@twinsun.com>
2547
2548 More fixes for 64-bit hosts and large bitsets.
2549
2550 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2551 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2552 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2553 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2554 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2555 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2556 bitset_count_): Likewise.
2557 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2558 bitset_first, bitset_last): Likewise.
2559 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2560 bitset_stats_list_reverse, bitset_stats_size,
2561 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2562 Likewise.
2563 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2564 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2565 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2566 bitsetv_reflexive_transitive_closure): Likewise.
2567 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2568 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2569 Likewise.
2570 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2571 Likewise.
420f93c8 2572
ff68026d
PE
2573 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2574 Use size_t, not unsigned int, to count bytes.
2575 * lib/abitset.h (abitset_bytes): Likewise.
2576 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2577 Likewise.
2578 * lib/bitset.h (bitset_bytes): Likewise.
2579 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2580 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2581 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2582 * lib/ebitset.c (ebitset_bytes): Likewise.
2583 * lib/ebitset.h (ebitset_bytes): Likewise.
2584 * lib/lbitset.c (lbitset_bytes): Likewise.
2585 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 2586
ff68026d
PE
2587 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2588 abitset_subset_p, abitset_disjoint_p, abitset_and,
2589 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2590 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2591 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2592 abitset_or_and, abitset_or_and_cmp):
2593 Use bitset_windex instead of unsigned int.
2594 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2595 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2596 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2597 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2598 Likewise.
2599 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 2600
ff68026d
PE
2601 * lib/bitset.c (bitset_print):
2602 Use proper printf formats for widths of integer types.
2603 * lib/bitset_stats.c (bitset_percent_histogram_print,
2604 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2605 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2606 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2607 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 2608
ff68026d
PE
2609 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2610 BITSET_SIZE_MAX): New macros.
2611 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2612 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2613 to BITSET_WINDEX_MAX.
2614
2615 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2616 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2617 since we now return the bitset_bindex type (not int).
2618
2619 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2620 when computing sizes.
2621 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2622
2623 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2624 and avoid cast to unsigned.
2625
6aa452a6
AD
26262002-09-30 Akim Demaille <akim@epita.fr>
2627
2628 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2629 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2630 Updates from Michael Hayes.
2631
927f7817
AD
26322002-09-30 Art Haas <ahaas@neosoft.com>
2633
2634 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2635 invocations.
2636 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2637 defined.
2638
9738f41e
AD
26392002-09-27 Akim Demaille <akim@epita.fr>
2640
2641 Version 1.49c.
2642
a5c75d7f
AD
26432002-09-27 Akim Demaille <akim@epita.fr>
2644
2645 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2646 (Because of AC_LIBSOURCE).
2647
8280e179
AD
26482002-09-27 Akim Demaille <akim@epita.fr>
2649
2650 Playing with Autoscan.
2651
2652 * configure.ac: Remove the old LIBOBJ tweaks.
2653 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2654 * lib/strrchr.c: New.
2655 * lib/strtol.c: New, from the Coreutils 4.5.1.
2656
ae64af35
AD
26572002-09-27 Akim Demaille <akim@epita.fr>
2658
2659 Playing with Autoscan.
2660
2661 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2662 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2663 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2664 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2665 Coreutils 4.5.1.
2666
d1a1114f
AD
26672002-09-24 Akim Demaille <akim@epita.fr>
2668
2669 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2670 (Frequently Asked Questions, Parser Stack Overflow): New.
2671
b906441c
AD
26722002-09-13 Akim Demaille <akim@epita.fr>
2673
2674 Playing with autoscan.
2675
2676 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2677 * src/files.c (skeleton_find): Remove, unused.
2678 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2679 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2680
bd701811
AD
26812002-09-13 Akim Demaille <akim@epita.fr>
2682
2683 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2684 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2685
e0a13e7b
AD
26862002-09-13 Akim Demaille <akim@epita.fr>
2687
2688 * configure.ac: Require 2.54.
2689 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2690 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2691 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2692 Remove, provided by Autoconf macros.
2693
c97011bf
AD
26942002-09-12 Akim Demaille <akim@epita.fr>
2695
2696 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2697
d862b1be
AD
26982002-09-12 Akim Demaille <akim@epita.fr>
2699
2700 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2701 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2702 Reported by Martin Mokrejs.
2703
3d38c03a
AD
27042002-09-10 Akim Demaille <akim@epita.fr>
2705
2706 * src/parse-gram.y: Associate a human readable string to each
2707 token type.
2708 * tests/regression.at (Invalid inputs): Adjust.
2709
b6347355
AD
27102002-09-10 Gary V. Vaughan <gary@gnu.org>
2711
2712 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2713 with an Autoconf-2.5x style configure.ac.
2714
09ba4ab2
PE
27152002-09-06 Paul Eggert <eggert@twinsun.com>
2716
2717 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2718 exception applies only to yacc.c. This is a modification of a
2719 patch originally suggested by Akim Demaille.
2720
21846f69
AD
27212002-09-06 Akim Demaille <akim@epita.fr>
2722
09ba4ab2
PE
2723 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2724 here to...
2725 * data/yacc.c: here.
2726
21846f69
AD
2727 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2728 LocationType.
2729 (b4_ltype): Default to yy::Location from location.hh.
2730
c0ad8bf3
AD
27312002-09-04 Jim Meyering <jim@meyering.net>
2732
2733 * data/yacc.c: Guard the declaration of yytoknum also with
2734 `#ifdef YYPRINT', so it is declared only when used.
2735
3a93251e
AD
27362002-09-04 Akim Demaille <akim@epita.fr>
2737
2738 * configure.in: Rename as...
2739 * configure.ac: this.
2740 Bump to 1.49c.
2741
427c0dda
AD
27422002-09-04 Akim Demaille <akim@epita.fr>
2743
2744 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2745 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2746 translate maintainer only messages.
2747
6a254321
PE
27482002-08-12 Paul Eggert <eggert@twinsun.com>
2749
645e30d1
PE
2750 Version 1.49b.
2751
6a254321
PE
2752 * Makefile.am (SUBDIRS): Remove intl.
2753 (DISTCLEANFILES): Remove.
2754 * NEWS: Mention that GNU M4 is now required. Clarify what is
2755 meant by "larger grammars". Mention the pt_BR translation.
2756 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2757 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2758 Bump version from 0.11.2 to 0.11.5.
2759 (BISON_PREREQ_STAGE): Remove.
2760 (AM_GNU_GETTEXT): Use external gettext.
2761 (AC_OUTPUT): Remove intl/Makefile.
2762
2763 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2764
2765 * data/glr.c: Include string.h, for strlen.
2766 (yyreportParseError): Use size_t for yysize.
2767 (yy_yypstack): No longer nested inside yypstates, as nested
2768 functions are not portable. Do not assume size_t is the
2769 same width as int.
2770 (yypstates): Do not assume that ptrdiff_t is the same width
2771 as int, and similarly for yyposn and YYINDEX.
2772
2773 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2774
2775 * lib/Makefile.am (INCLUDES): Do not include from the intl
2776 directory, which has been removed.
2777 * src/Makefile.am (INCLUDES): Likewise.
2778
2779 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2780 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2781 New vars.
2782
2783 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2784 * tests/Makefile.am (EXTRA_DIST): Likewise.
2785
2786 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2787 Do not assume that bitset_windex is the same width as unsigned.
2788
2789 * lib/abitset.c (abitset_unused_clear): Do not assume that
2790 bitset_word is the same width as int.
2791 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2792 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2793 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2794 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2795 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2796
2797 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2798 portability to one's complement hosts!).
2799 * lib/ebitset.c (ebitset_op1): Likewise.
2800 * lib/lbitset.c (lbitset_op1): Likewise.
2801
2802 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2803 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2804 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2805 Sync with fileutils.
2806 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2807 lib/gettext.h: Sync with diffutils.
2808
2809 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2810 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2811
2812 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2813 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2814 check for void *.
2815
2816 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2817 size_t; the old version tried to do this but casted improperly.
2818 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2819 (bitset_test): Now returns int, not unsigned long.
2820
2821 * lib/bitset_stats.c: Include "gettext.h".
2822 (_): New macro.
2823 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
2824 name locals "index", as it generates unnecessary warnings on some
2825 hosts that have an "index" function.
2826
2827 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
2828 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
2829 they need translation.
2830 * src/LR0.c (state_list_append, new_itemsets, get_state,
2831 append_states, generate_states): Likewise.
2832 * src/assoc.c (assoc_to_string): Likewise.
2833 * src/closure.c (print_closure, set_firsts, closure): Likewise.
2834 * src/gram.c (grammar_dump): Likewise.
2835 * src/injections.c (injections_compute): Likewise.
2836 * src/lalr.c (lookaheads_print): Likewise.
2837 * src/relation.c (relation_transpose): Likewise.
2838 * src/scan-gram.l: Likewise.
2839 * src/tables.c (table_grow, pack_vector): Likewise.
2840
2841 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
2842 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
2843 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
2844 * m4/mbstate_t.m4: Sync with fileutils.
2845 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
2846
2847 * po/LINGUAS: Add pt_BR.
2848 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
2849 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
2850 lib/timevar.c.
2851 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
2852 manual recommends.
2853 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
2854
2855 * src/complain.c (strerror_r): Remove decl; not needed.
2856 (strerror): Use same pattern as ../lib/error.c.
2857
2858 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
2859
2860 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
2861
2862 * src/main.c (main): Cast result of bindtextdomain and textdomain
2863 to void, to avoid a GCC warning when --disable-nls is in effect.
2864
2865 * src/scan-gram.l: Use strings rather than escapes when possible,
2866 to minimize the number of warnings from xgettext.
2867 (handle_action_dollar, handle_action_at): Don't use isdigit,
2868 as it mishandles negative chars and it may not work as expected
2869 outside the C locale.
2870
2871 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
2872 this is a GCC extension and is not portable to other compilers.
2873
2874 * src/system.h (alloca): Use same pattern as ../lib/error.c.
2875 Do not include <ctype.h>; no longer needed.
2876 Do not include <malloc.h>; no longer needed (and generates
2877 warnings on OpenBSD 3.0).
2878
2879 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
2880 it's not portable.
2881
2882 * tests/regression.at: Do not use 'cc -c input.c -o input';
2883 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
2884
2885 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
2886 exit status as failure, not just exit status 1. Sun C exits
2887 with status 2 sometimes.
2888
2889 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
2890 Use it for the two large tests.
2891
c8f002c7
AD
28922002-08-02 Akim Demaille <akim@epita.fr>
2893
2894 * src/conflicts.c (conflicts_output): Don't output rules never
2895 reduced here, since anyway that computation doesn't work.
2896 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
2897 (rule_useless_p, rule_never_reduced_p): New.
2898 (grammar_rules_partial_print): Use a filter instead of a range.
2899 Display the title only if needed.
2900 (grammar_rules_print): Adjust.
2901 (grammar_rules_never_reduced_report): New.
2902 * src/tables.c (action_row): Move the computation of rules never
2903 reduced to...
2904 (token_actions): here.
2905 * src/main.c (main): Make the parser before making the report, so
2906 that rules never reduced are computed.
2907 Call grammar_rules_never_reduced_report.
2908 * src/print.c (print_results): Report rules never reduced.
2909 * tests/conflicts.at, tests/reduce.at: Adjust.
2910
cd08e51e
AD
29112002-08-01 Akim Demaille <akim@epita.fr>
2912
2913 Instead of attaching lookaheads and duplicating the rules being
2914 reduced by a state, attach the lookaheads to the reductions.
2915
2916 * src/state.h (state_t): Remove the `lookaheads',
2917 `lookaheads_rule' member.
2918 (reductions_t): Add a `lookaheads' member.
2919 Use a regular array for the `rules'.
2920 * src/state.c (reductions_new): Initialize the lookaheads member
2921 to 0.
2922 (state_rule_lookaheads_print): Adjust.
2923 * src/state.h, src/state.c (state_reductions_find): New.
2924 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
2925 (count_rr_conflicts): Adjust.
2926 * src/lalr.c (LArule): Remove.
2927 (add_lookback_edge): Adjust.
2928 (state_lookaheads_count): New.
2929 (states_lookaheads_initialize): Merge into...
2930 (initialize_LA): this.
2931 (lalr_free): Adjust.
2932 * src/main.c (main): Don't free nullable and derives too early: it
2933 is used by --verbose.
2934 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
2935
bb0027a9
AD
29362002-08-01 Akim Demaille <akim@epita.fr>
2937
2938 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
2939 `rule_number_t**'.
2940 (set_derives, free_derives): Rename as...
2941 (derives_compute, derives_free): this.
2942 Adjust all dependencies.
2943 * src/nullable.c (set_nullable, free_nullable): Rename as...
2944 (nullable_compute, nullable_free): these.
2945 (rule_list_t): Store rule_t *, not rule_number_t.
2946 * src/state.c (state_rule_lookaheads_print): Directly compare rule
2947 pointers, instead of their numbers.
2948 * src/main.c (main): Call nullable_free, and derives_free earlier,
2949 as they were lo longer used.
2950
3325ddc4
AD
29512002-08-01 Akim Demaille <akim@epita.fr>
2952
2953 * lib/timevar.c (get_time): Include children time.
2954 * src/lalr.h (LA, LArule): Don't export them: used with the
2955 state_t.
2956 * src/lalr.c (LA, LArule): Static.
2957 * src/lalr.h, src/lalr.c (lalr_free): New.
2958 * src/main.c (main): Call it.
2959 * src/tables.c (pack_vector): Check whether loc is >= to the
2960 table_size, not >.
2961 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
2962 (tables_generate): do it, since that's also it which allocates
2963 them.
2964 Don't free LA and LArule, main does.
2965
c6f1a33c
AD
29662002-07-31 Akim Demaille <akim@epita.fr>
2967
2968 Separate parser tables computation and output.
2969
2970 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
2971 (conflict_list, conflict_list_cnt, table, check, table_ninf)
2972 (yydefgoto, yydefact, high): Move to...
2973 * src/tables.h, src/tables.c: here.
2974 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2975 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2976 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
2977 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
2978 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
2979 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
2980 (action_row, save_row, token_actions, save_column, default_goto)
2981 (goto_actions, sort_actions, matching_state, pack_vector)
2982 (table_ninf_remap, pack_table, prepare_actions): Move to...
2983 * src/tables.c: here.
2984 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
2985 * src/output.c (token_actions, output_base, output_conflicts)
2986 (output_check): Merge into...
2987 (prepare_actions): this.
2988 (actions_output): Rename as...
2989 (user_actions_output): this.
2990 * src/main.c (main): Call tables_generate and tables_free.
2991
1509d42f
AD
29922002-07-31 Akim Demaille <akim@epita.fr>
2993
2994 Steal GCC's --time-report support.
2995
2996 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
2997 stolen/adjusted from GCC.
2998 * m4/stage.m4: Remove time related checks.
2999 * m4/timevar.m4: New.
3000 * configure.in: Adjust.
3001 * src/system.h: Adjust to using timevar.h.
3002 * src/getargs.h, src/getargs.c: Support trace_time for
3003 --trace=time.
3004 * src/main.c (stage): Remove.
3005 (main): Replace `stage' invocations with timevar calls.
3006 * src/output.c: Insert pertinent timevar calls.
3007
273a74fa
AD
30082002-07-31 Akim Demaille <akim@epita.fr>
3009
3010 Let --trace have arguments.
3011
3012 * src/getargs.h (enum trace_e): New.
3013 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
3014 (long_options, short_options): --trace/-T takes an optional
3015 argument.
3016 Change all the uses of trace_flag to reflect the new flags.
3017 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
3018
3019 Strengthen `stage' portability.
3020
3021 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3022 * configure.in: Use it.
3023 Don't check for malloc.h and sys/times.h.
3024 * src/system.h: Include them when appropriate.
3025 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3026 times and struct tms are available.
3027
217598da
AD
30282002-07-30 Akim Demaille <akim@epita.fr>
3029
3030 In verbose parse error message, don't report `error' as an
3031 expected token.
3032 * tests/actions.at (Printers and Destructors): Adjust.
3033 * tests/calc.at (Calculator $1): Adjust.
3034 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3035 error message, do not report the parser accepts the error token in
3036 that state.
3037
52489d44
AD
30382002-07-30 Akim Demaille <akim@epita.fr>
3039
3040 Normalize conflict related messages.
3041
3042 * src/complain.h, src/complain.c (warn, complain): New.
3043 * src/conflicts.c (conflicts_print): Use them.
3044 (conflict_report_yacc): New, extracted from...
3045 (conflicts_print): here.
3046 * tests/conflicts.at, tests/existing.at: Adjust.
3047
e8832397
AD
30482002-07-30 Akim Demaille <akim@epita.fr>
3049
3050 Report rules which are never reduced by the parser: those hidden
3051 by conflicts.
3052
3053 * src/LR0.c (save_reductions): Don't make the final state too
3054 different: save its reduction (accept) instead of having a state
3055 without any action (no shift or goto, no reduce).
3056 Note: the final state is now a ``regular'' state, i.e., the
3057 parsers now contain `reduce 0' as default reduction.
3058 Nevertheless, since they decide to `accept' when yystate =
3059 final_state, they still will not reduce rule 0.
3060 * src/print.c (print_actions, print_reduction): Adjust.
3061 * src/output.c (action_row): Track reduced rules.
3062 (token_actions): Report rules never reduced.
3063 * tests/conflicts.at, tests/regression.at: Adjust.
3064
caf23d24
AD
30652002-07-30 Akim Demaille <akim@epita.fr>
3066
3067 `stage' was accidently included in a previous patch.
3068 Initiate its autoconfiscation.
3069
3070 * configure.in: Look for malloc.h and sys/times.h.
3071 * src/main.c (stage): Adjust.
3072 Report only when trace_flag.
3073
640748ee
AD
30742002-07-29 Akim Demaille <akim@epita.fr>
3075
3076 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3077 state_number_t.
3078 (errs_t): symbol_t*, not symbol_number_t.
3079 (reductions_t): rule_t*, not rule_number_t.
3080 (FOR_EACH_SHIFT): New.
3081 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3082 * src/print.c, src/print_graph.c: Adjust.
3083
88bce5a2
AD
30842002-07-29 Akim Demaille <akim@epita.fr>
3085
3086 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3087
3088 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3089 (endtoken, accept): these.
3090 * src/reader.c (reader): Set endtoken's default tag to "$end".
3091 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3092 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3093 Adjust.
3094
1bfb97db
AD
30952002-07-29 Akim Demaille <akim@epita.fr>
3096
3097 * src/reduce.c (reduce_grammar): When the language is empty,
3098 complain about the start symbol, not the axiom.
3099 Use its location.
3100 * tests/reduce.at (Empty Language): New.
3101
fc5734fe
AD
31022002-07-26 Akim Demaille <akim@epita.fr>
3103
3104 * src/reader.h, src/reader.c (gram_error): ... can't get
3105 yycontrol without making too strong assumptions on the parser
3106 itself.
3107 * src/output.c (prepare_tokens): Use the real 0th value of
3108 token_translations instead of `0'.
3109 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3110 visible here.
3111 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3112 for the time being: %locations ought to provide it to yyerror.
3113
3650b4b8
AD
31142002-07-25 Akim Demaille <akim@epita.fr>
3115
3116 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3117 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3118 * tests/regression.at (Web2c Actions): Adjust.
3119
4b3d3a8e
AD
31202002-07-25 Akim Demaille <akim@epita.fr>
3121
3122 Stop storing rules from 1 to nrules + 1.
3123
3124 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3125 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3126 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3127 Iterate from 0 to nrules.
3128 Use rule_number_as_item_number and item_number_as_rule_number.
3129 Adjust to `derive' now containing possibly 0.
3130 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3131 Handle the `- 1' part in rule numbers from/to item numbers.
3132 * src/conflicts.c (log_resolution): Fix the message which reversed
3133 shift and reduce.
3134 * src/output.c (action_row): Initialize default_rule to -1.
3135 (token_actions): Adjust.
3136 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3137 expected output.
3138 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3139
4a2a22f4
AD
31402002-07-25 Akim Demaille <akim@epita.fr>
3141
3142 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3143 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3144 (b4_c_knr_arg_decl): New.
3145 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3146 yyreport_parse_error.
3147
b8df3223
AD
31482002-07-25 Akim Demaille <akim@epita.fr>
3149
3150 * data/yacc.c (yyreport_parse_error): New, extracted from...
3151 (yyparse): here.
3152 (yydestruct, yysymprint): Move above yyparse.
3153 Be K&R compliant.
3154
a762e609
AD
31552002-07-25 Akim Demaille <akim@epita.fr>
3156
3157 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3158 replace...
3159 (b4_sint_type, b4_uint_type): these.
3160 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3161 * tests/regression.at (Web2c Actions): Adjust.
3162
12b0043a
AD
31632002-07-25 Akim Demaille <akim@epita.fr>
3164
3165 * src/gram.h (TIEM_NUMBER_MAX): New.
3166 (item_number_of_rule_number, rule_number_of_item_number): Rename
3167 as...
3168 (rule_number_as_item_number, item_number_as_rule_number): these.
3169 Adjust dependencies.
3170 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3171 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3172 (symbol_number_to_vector_number): New.
3173 (order): Of vector_number_t* type.
3174 (base_t, BASE_MAX, BASE_MIN): New.
3175 (froms, tos, width, pos, check): Of base_t type.
3176 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3177 (actrow): Of action_number_t type.
3178 (conflrow): Of unsigned int type.
3179 (table_ninf, base_ninf): New.
3180 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3181 (muscle_insert_int_table, muscle_insert_base_table)
3182 (muscle_insert_rule_number_table): New.
3183 (prepare_tokens): Output `toknum' as int_table.
3184 (action_row): Returns a rule_number_t.
3185 Use ACTION_MIN, not SHRT_MIN.
3186 (token_actions): yydefact is rule_number_t*.
3187 (table_ninf_remap): New.
3188 (pack_table): Use it for `base' and `table'.
3189 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3190 replaced with...
3191 (YYPACT_NINF, YYTABLE_NINF): these.
3192 (yypact, yytable): Compute their types instead of hard-coded
3193 `short'.
3194 * tests/regression.at (Web2c Actions): Adjust.
3195
5dde258a
AD
31962002-07-19 Akim Demaille <akim@epita.fr>
3197
3198 * src/scan-gram.l (id): Can start with an underscore.
3199
a945ec39
AD
32002002-07-16 Akim Demaille <akim@epita.fr>
3201
3202 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3203 Adjust all former `associativity' dependencies.
3204 * src/symtab.c (symbol_new): Default associativity is `undef', not
3205 `right'.
3206 (symbol_check_alias_consistence): Adjust.
3207
fae437e8
AD
32082002-07-09 Akim Demaille <akim@epita.fr>
3209
3210 * doc/bison.texinfo: Properly set the ``header'' part.
3211 Use @dircategory ``GNU programming tools'' as per Texinfo's
3212 documentation.
3213 Use @copying.
3214
1a715ef2
AD
32152002-07-09 Akim Demaille <akim@epita.fr>
3216
3217 * lib/quotearg.h: Protect against multiple inclusions.
3218 * src/location.h (location_t): Add a `file' member.
3219 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3220 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3221 `error_one_per_line' support.
3222
a5d50994
AD
32232002-07-09 Akim Demaille <akim@epita.fr>
3224
3225 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3226 * src/reader.c (lineno): Remove.
3227 Adjust all dependencies.
3228 (get_merge_function): Take a location and use complain_at.
3229 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3230 * tests/regression.at (Invalid inputs, Mixing %token styles):
3231 Adjust.
3232
b275314e
AD
32332002-07-09 Akim Demaille <akim@epita.fr>
3234
3235 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3236 recovery rule, and forbid extensions when --yacc.
3237 (gram_error): Use complain_at.
3238 * src/reader.c (reader): Exit if there were parse errors.
3239
865b9df1
AD
32402002-07-09 Akim Demaille <akim@epita.fr>
3241
3242 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3243 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3244 Reported by R Blake <blakers@mac.com>.
3245
c76e14da
AD
32462002-07-09 Akim Demaille <akim@epita.fr>
3247
3248 * data/yacc.c: Output the copyright notive in the header.
3249
7db2ed2d
AD
32502002-07-03 Akim Demaille <akim@epita.fr>
3251
3252 * src/output.c (froms, tos): Are state_number_t.
3253 (save_column): sp, sp1, and sp2 are state_number_t.
3254 (prepare): Rename `final' as `final_state_number', `nnts' as
3255 `nterms_number', `nrules' as `rules_number', `nstates' as
3256 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3257 unused.
3258 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3259 * data/lalr1.cc (nsym_): Remove, unused.
3260
e68e0410
AD
32612002-07-03 Akim Demaille <akim@epita.fr>
3262
3263 * src/lalr.h, src/lalr.c (goto_number_t): New.
3264 * src/lalr.c (goto_list_t): New.
3265 Propagate them.
3266 * src/nullable.c (rule_list_t): New.
3267 Propagate.
3268 * src/types.h: Remove.
3269
e1a4f3a4
AD
32702002-07-03 Akim Demaille <akim@epita.fr>
3271
3272 * src/closure.c (print_fderives): Use rule_rhs_print.
3273 * src/derives.c (print_derives): Use rule_rhs_print.
3274 (rule_list_t): New, replaces `shorts'.
3275 (set_derives): Add comments.
3276 * tests/sets.at (Nullable, Firsts): Adjust.
3277
536545f3
AD
32782002-07-03 Akim Demaille <akim@epita.fr>
3279
3280 * src/output.c (prepare_actions): Free `tally' and `width'.
3281 (prepare_actions): Allocate and free `order'.
3282 * src/symtab.c (symbols_free): Free `symbols'.
3283 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3284 * src/output.c (m4_invoke): Move to...
3285 * src/scan-skel.l: here.
3286 (<<EOF>>): Close yyout, and free its name.
3287
8b752b00
AD
32882002-07-03 Akim Demaille <akim@epita.fr>
3289
3290 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3291
3292 * src/LR0.c (new_state): Merge into...
3293 (state_list_append): this.
3294 (new_states): Merge into...
3295 (generate_states): here.
3296 (set_states): Don't ensure a proper `errs' state member here, do it...
3297 * src/conflicts.c (conflicts_solve): here.
3298 * src/state.h, src/state.c: Comment changes.
3299 (state_t): Rename member `shifts' as `transitions'.
3300 Adjust all dependencies.
3301 (errs_new): For consistency, also take the values as argument.
3302 (errs_dup): Remove.
3303 (state_errs_set): New.
3304 (state_reductions_set, state_transitions_set): Assert that no
3305 previous value was assigned.
3306 (state_free): New.
3307 (states_free): Use it.
3308 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3309 temporary storage: use `errs' and `nerrs' as elsewhere.
3310 (set_conflicts): Allocate and free this `errs'.
3311
613f5e1a
AD
33122002-07-02 Akim Demaille <akim@epita.fr>
3313
3314 * lib/libiberty.h: New.
3315 * lib: Update the bitset implementation from upstream.
3316 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3317 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3318 * src/main.c: Adjust bitset stats calls.
3319
26e0cadc
PE
33202002-07-01 Paul Eggert <eggert@twinsun.com>
3321
3322 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3323 char, so that negative chars don't collide with $.
3324
1154cced
AD
33252002-06-30 Akim Demaille <akim@epita.fr>
3326
3327 Have the GLR tests be `warning' checked, and fix the warnings.
3328
3329 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3330 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3331 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3332 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3333 (yyaddDeferredAction): static.
3334 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3335 (yyreportParseError): yyprefix is const.
3336 yytokenp is used only when verbose.
3337 (yy__GNUC__): Replace with __GNUC__.
3338 (yypdumpstack): yyi is size_t.
3339 (yypreference): Un-yy local variables and arguments, to avoid
3340 clashes with `yyr1'. Anyway, we are not in the user name space.
3341 (yytname_size): be an int, as is compared with ints.
3342 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3343 Use them.
3344 * tests/cxx-gram.at: Use quotation to protect $1.
3345 Use AT_COMPILE to enable warnings hunts.
3346 Prototype yylex and yyerror.
3347 `Use' argc.
3348 Include `string.h', not `strings.h'.
3349 Produce and prototype stmtMerge only when used.
3350 yylex takes a location.
3351
97650f4e
AD
33522002-06-30 Akim Demaille <akim@epita.fr>
3353
3354 We spend a lot of time in quotearg, in particular when --verbose.
3355
3356 * src/symtab.c (symbol_get): Store a quoted version of the key.
3357 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3358 Adjust all callers.
3359
d2576365
AD
33602002-06-30 Akim Demaille <akim@epita.fr>
3361
3362 * src/state.h (reductions_t): Rename member `nreds' as num.
3363 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3364 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3365
ccaf65bc
AD
33662002-06-30 Akim Demaille <akim@epita.fr>
3367
3368 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3369 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3370 (shifts_to): Rename as...
3371 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3372 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3373 (TRANSITION_IS_DISABLED, transitions_to): these.
3374
87675353
AD
33752002-06-30 Akim Demaille <akim@epita.fr>
3376
3377 * src/print.c (print_shifts, print_gotos): Merge into...
3378 (print_transitions): this.
3379 (print_transitions, print_errs, print_reductions): Align the
3380 lookaheads columns.
3381 (print_core, print_transitions, print_errs, print_state,
3382 print_grammar): Output empty lines separator before, not after.
3383 (state_default_rule_compute): Rename as...
3384 (state_default_rule): this.
3385 * tests/conflicts.at (Defaulted Conflicted Reduction),
3386 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3387 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3388
ce4ccb4b
AD
33892002-06-30 Akim Demaille <akim@epita.fr>
3390
3391 Display items as we display rules.
3392
3393 * src/gram.h, src/gram.c (rule_lhs_print): New.
3394 * src/gram.c (grammar_rules_partial_print): Use it.
3395 * src/print.c (print_core): Likewise.
3396 * tests/conflicts.at (Defaulted Conflicted Reduction),
3397 (Unresolved SR Conflicts): Adjust.
3398 (Unresolved SR Conflicts): Adjust and rename as...
3399 (Resolved SR Conflicts): this, as was meant.
3400 * tests/regression.at (Web2c Report): Adjust.
3401
bc933ef1
AD
34022002-06-30 Akim Demaille <akim@epita.fr>
3403
3404 * src/print.c (state_default_rule_compute): New, extracted from...
3405 (print_reductions): here.
3406 Pessimize, but clarify the code.
3407 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3408
53d4308d
AD
34092002-06-30 Akim Demaille <akim@epita.fr>
3410
3411 * src/output.c (action_row): Let default_rule be always a rule
3412 number.
3413
574fb2d5
AD
34142002-06-30 Akim Demaille <akim@epita.fr>
3415
3416 * src/closure.c (print_firsts, print_fderives, closure):
3417 Use BITSET_EXECUTE.
3418 * src/lalr.c (lookaheads_print): Likewise.
3419 * src/state.c (state_rule_lookaheads_print): Likewise.
3420 * src/print_graph.c (print_core): Likewise.
3421 * src/print.c (print_reductions): Likewise.
3422 * src/output.c (action_row): Likewise.
3423 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3424
05811fd7
AD
34252002-06-30 Akim Demaille <akim@epita.fr>
3426
3427 * src/print_graph.c: Use report_flag.
3428
0e4d5753
AD
34292002-06-30 Akim Demaille <akim@epita.fr>
3430
3431 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3432 to...
3433 * src/relation.h, src/relation.c (traverse, relation_digraph)
3434 (relation_print, relation_transpose): New.
3435
24c7d800
AD
34362002-06-30 Akim Demaille <akim@epita.fr>
3437
3438 * src/state.h, src/state.c (shifts_to): New.
3439 * src/lalr.c (build_relations): Use it.
3440
9222837b
AD
34412002-06-30 Akim Demaille <akim@epita.fr>
3442
3443 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3444 (item_number_of_rule_number, rule_number_of_item_number): New.
3445 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3446 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3447 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3448 Propagate their use.
3449 Much remains to be done, in particular wrt `shorts' from types.h.
3450
260008e5
AD
34512002-06-30 Akim Demaille <akim@epita.fr>
3452
3453 * src/symtab.c (symbol_new): Initialize the `printer' member.
3454
8a731ca8
AD
34552002-06-30 Akim Demaille <akim@epita.fr>
3456
3457 * src/LR0.c (save_reductions): Remove, replaced by...
3458 * src/state.h, src/state.c (state_reductions_set): New.
3459 (reductions, errs): Rename as...
3460 (reductions_t, errs_t): these.
3461 Adjust all dependencies.
3462
32e1e0a4
AD
34632002-06-30 Akim Demaille <akim@epita.fr>
3464
3465 * src/LR0.c (state_list_t, state_list_append): New.
3466 (first_state, last_state): Now symbol_list_t.
3467 (this_state): Remove.
3468 (new_itemsets, append_states, save_reductions): Take a state_t as
3469 argument.
3470 (set_states, generate_states): Adjust.
3471 (save_shifts): Remove, replaced by...
3472 * src/state.h, src/state.c (state_shifts_set): New.
3473 (shifts): Rename as...
3474 (shifts_t): this.
3475 Adjust all dependencies.
3476 * src/state.h (state_t): Remove the `next' member.
3477
e5fb6710
AD
34782002-06-30 Akim Demaille <akim@epita.fr>
3479
3480 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3481 escaped in slot 0.
3482
c7ca99d4
AD
34832002-06-30 Akim Demaille <akim@epita.fr>
3484
3485 Use hash.h for the state hash table.
3486
3487 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3488 (allocate_storage): Use state_hash_new.
3489 (free_storage): Use state_hash_free.
3490 (new_state, get_state): Adjust.
3491 * src/lalr.h, src/lalr.c (states): Move to...
3492 * src/states.h (state_t): Remove the `link' member, no longer
3493 used.
3494 * src/states.h, src/states.c: here.
3495 (state_hash_new, state_hash_free, state_hash_lookup)
3496 (state_hash_insert, states_free): New.
3497 * src/states.c (state_table, state_compare, state_hash): New.
3498 * src/output.c (output_actions): Do not free states now, since we
3499 still need to know the final_state number in `prepare', called
3500 afterwards. Do it...
3501 * src/main.c (main): here: call states_free after `output'.
3502
df0e7316
AD
35032002-06-30 Akim Demaille <akim@epita.fr>
3504
3505 * src/state.h, src/state.c (state_new): New, extracted from...
3506 * src/LR0.c (new_state): here.
3507 * src/state.h (STATE_ALLOC): Move to...
3508 * src/state.c: here.
3509 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3510 * src/state.h, src/state.c: here.
3511
39f41916
AD
35122002-06-30 Akim Demaille <akim@epita.fr>
3513
3514 * src/reader.c (gensym): Rename as...
3515 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3516 (getsym): Rename as...
3517 (symbol_get): this.
3518
d57650a5
AD
35192002-06-30 Akim Demaille <akim@epita.fr>
3520
3521 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3522 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3523 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3524 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3525
5a08f1ce
AD
35262002-06-30 Akim Demaille <akim@epita.fr>
3527
3528 Make the test suite pass with warnings checked.
3529
3530 * tests/actions.at (Printers and Destructors): Improve.
3531 Avoid unsigned vs. signed issues.
3532 * tests/calc.at: Don't exercise the scanner here, do it...
3533 * tests/input.at (Torturing the Scanner): here.
3534
720623af
PH
35352002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3536
88e7e941 3537 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
3538 reorganize first lines parallel to yacc.c.
3539
fb8135fa
AD
35402002-06-28 Akim Demaille <akim@epita.fr>
3541
3542 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3543 (b4_token_enum, b4_token_defines): New, factored from...
3544 * data/lalr1.cc, data/yacc.c, glr.c: here.
3545
41442480
AD
35462002-06-28 Akim Demaille <akim@epita.fr>
3547
3548 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3549 unused variables.
3550 * src/output.c (merger_output): static.
3551
e0e5bf84
AD
35522002-06-28 Akim Demaille <akim@epita.fr>
3553
3554 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3555 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3556 pacify GCC.
3557 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 3558
676385e2
PH
35592002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3560
3561 Accumulated changelog for new GLR parsing features.
3562
6a254321 3563 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
3564 conflicts_total_count.
3565 * src/conflicts.h: Ditto.
3566 * src/output.c (token_actions): Use the new name.
3567 (output_conflicts): Change conflp => conflict_list_heads, and
3568 confl => conflict_list for better readability.
3569 * data/glr.c: Use the new names.
3570 * NEWS: Add self to GLR announcement.
e0e5bf84 3571
676385e2
PH
3572 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3573
3574 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3575 Akim Demaille.
3576
3577 * data/bison.glr: Change name to glr.c
3578 * data/glr.c: Renamed from bison.glr.
3579 * data/Makefile.am: Add glr.c
e0e5bf84
AD
3580
3581 * src/getargs.c:
3582
676385e2
PH
3583 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3584 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 3585
676385e2
PH
3586 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3587
3588 * data/bison.glr: Be sure to restore the
3589 current #line when returning to the skeleton contents after having
3590 exposed the input file's #line.
3591
3592 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3593
3594 * data/bison.glr: Bring up to date with changes to bison.simple.
3595
3596 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3597
3598 * data/bison.glr: Correct definitions that use b4_prefix.
3599 Various reformatting.
3600 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3601 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3602 yytokenp argument; now part of stack.
3603 (yychar): Define to behave as documented.
3604 (yyclearin): Ditto.
e0e5bf84 3605
676385e2
PH
3606 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3607
3608 * src/reader.h: Add declaration for free_merger_functions.
3609
3610 * src/reader.c (merge_functions): New variable.
3611 (get_merge_function): New function.
3612 (free_merger_functions): New function.
3613 (readgram): Check for %prec that is not followed by a symbol.
3614 Handle %dprec and %merge declarations.
3615 (packgram): Initialize dprec and merger fields in rules array.
3616
3617 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3618 conflict_list_cnt, conflict_list_free): New variables.
3619 (table_grow): Also grow conflict_table.
e0e5bf84 3620 (prepare_rules): Output dprec and merger tables.
676385e2 3621 (conflict_row): New function.
e0e5bf84 3622 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
3623 default reduction in conflicted states for GLR parser so that there
3624 are spaces for the conflict lists.
3625 (save_row): Also save conflict information.
3626 (token_actions): Allocate conflict list.
3627 (merger_output): New function.
3628 (pack_vector): Pack conflict table, too.
3629 (output_conflicts): New function to output yyconflp and yyconfl.
3630 (output_check): Allocate conflict_tos.
3631 (output_actions): Output conflict tables, also.
3632 (output_skeleton): Output b4_mergers definition.
3633 (prepare): Output b4_max_rhs_length definition.
3634 Use 'bison.glr' as default skeleton for GLR parsers.
3635
3636 * src/gram.c (glr_parser): New flag.
3637 (grammar_free): Call free_merger_functions.
3638
3639 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3640 all pairs of conflicting reductions, rather than just all tokens
3641 causing conflicts. Needed to size conflict tables.
e0e5bf84 3642 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
3643 interface.
3644 (conflicts_print): Ditto.
3645 (count_total_conflicts): New function.
3646
3647 * src/reader.h (merger_list): New type.
3648 (merge_functions): New variable.
3649
3650 * src/lex.h (tok_dprec, tok_merge): New token types.
3651
3652 * src/gram.h (rule_s): Add dprec and merger fields.
3653 (glr_parser): New flag.
3654
3655 * src/conflicts.h (count_total_conflicts): New function.
3656
3657 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3658
3659 * doc/bison.texinfo (Generalized LR Parsing): New section.
3660 (GLR Parsers): New section.
3661 (Language and Grammar): Mention GLR parsing.
3662 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3663 Correct typo ("tge" -> "the").
3664
3665 * data/bison.glr: New skeleton for GLR parsing.
3666
3667 * tests/cxx-gram.at: New tests for GLR parsing.
3668
3669 * tests/testsuite.at: Include cxx-gram.at.
3670
3671 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 3672
676385e2
PH
3673 * src/parse-gram.y:
3674
3675 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3676
3677 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 3678
b5480d74 36792002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
3680
3681 * src/options.h, src/options.c: Remove.
3682 * src/getargs.c (short_options, long_options): New.
3683
60491a94
AD
36842002-06-27 Akim Demaille <akim@epita.fr>
3685
3686 * data/bison.simple, data/bison.c++: Rename as...
3687 * data/yacc.c, data/lalr1.cc: these.
3688 * doc/bison.texinfo (Environment Variables): Remove.
3689
9be0c25b
AD
36902002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3691
3692 * src/getargs.c (report_argmatch): Initialize strtok().
3693
1ae72863
AD
36942002-06-20 Akim Demaille <akim@epita.fr>
3695
3696 * data/bison.simple (b4_symbol_actions): New, replaces...
3697 (b4_symbol_destructor, b4_symbol_printer): these.
3698 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3699 user token numbers.
3700
87542d29
AD
37012002-06-20 Akim Demaille <akim@epita.fr>
3702
3703 * data/bison.simple (yydestructor): Rename as...
3704 (yydestruct): this.
3705
1a31ed21
AD
37062002-06-20 Akim Demaille <akim@epita.fr>
3707
3708 * src/symtab.h, src/symtab.c (symbol_type_set)
3709 (symbol_destructor_set, symbol_precedence_set): The location is
3710 the last argument.
3711 Adjust all callers.
3712
e776192e
AD
37132002-06-20 Akim Demaille <akim@epita.fr>
3714
3715 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3716 internals.
3717 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3718 Takes a location.
3719 * src/symtab.h, src/symtab.c (symbol_class_set)
3720 (symbol_user_token_number_set): Likewise.
3721 Adjust all callers.
3722 Promote complain_at.
3723 * tests/input.at (Type Clashes): Adjust.
3724
5c1180b3
AD
37252002-06-20 Akim Demaille <akim@epita.fr>
3726
3727 * data/bison.simple (YYLEX): Fix the declaration when
3728 %pure-parser.
3729
e3170060
AD
37302002-06-20 Akim Demaille <akim@epita.fr>
3731
3732 * data/bison.simple (yysymprint): Don't print the token number,
3733 just its name.
3734 * tests/actions.at (Destructors): Rename as...
3735 (Printers and Destructors): this.
3736 Also exercise %printer.
3737
253862fd
AD
37382002-06-20 Akim Demaille <akim@epita.fr>
3739
3740 * data/bison.simple (YYDSYMPRINT): New.
3741 Use it to remove many of the #if YYDEBUG/if (yydebug).
3742
366eea36
AD
37432002-06-20 Akim Demaille <akim@epita.fr>
3744
3745 * src/symtab.h, src/symtab.c (symbol_t): printer and
3746 printer_location are new members.
3747 (symbol_printer_set): New.
3748 * src/parse-gram.y (PERCENT_PRINTER): New token.
3749 Handle its associated rule.
3750 * src/scan-gram.l: Adjust.
3751 (handle_destructor_at, handle_destructor_dollar): Rename as...
3752 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3753 * src/output.c (symbol_printers_output): New.
3754 (output_skeleton): Call it.
3755 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3756 since there are already many grammar files with a user `yyprint'.
3757 Replace the calls to YYPRINT to calls to yysymprint.
3758 * tests/calc.at: Adjust.
3759 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3760 taking advantage of parser very internal details (stack size!).
3761
4f25ebb0
AD
37622002-06-20 Akim Demaille <akim@epita.fr>
3763
3764 * src/scan-gram.l: Complete the scanner with the missing patterns
3765 to pacify Flex.
3766 Use `quote' and `symbol_tag_get' where appropriate.
3767
93b68a0e
AD
37682002-06-19 Akim Demaille <akim@epita.fr>
3769
3770 * tests/actions.at (Destructors): Augment to test locations.
3771 * data/bison.simple (yydestructor): Pass it the current location
3772 if locations are enabled.
3773 Prototype only when __STDC__ or C++.
3774 Change the argument names to move into the yy name space: there is
3775 user code here.
3776
58612f1d
AD
37772002-06-19 Akim Demaille <akim@epita.fr>
3778
74310291
AD
3779 * data/bison.simple (b4_pure_if): New.
3780 Use it instead of #ifdef YYPURE.
3781
37822002-06-19 Akim Demaille <akim@epita.fr>
3783
3784 * data/bison.simple (b4_location_if): New.
58612f1d
AD
3785 Use it instead of #ifdef YYLSP_NEEDED.
3786
f25bfb75
AD
37872002-06-19 Akim Demaille <akim@epita.fr>
3788
3789 Prepare @$ in %destructor, but currently don't bind it in the
3790 skeleton, as %location use is not cleaned up yet.
3791
3792 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3793 (handle_action_at): New.
3794 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3795 a braced_code_t and a location as additional arguments.
3796 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3797 unquote one when outputting `b4_dollar_dollar'.
3798 Adjust callers.
3799 * data/bison.simple (b4_eval): Remove.
3800 (b4_symbol_destructor): Adjust.
3801 * tests/input.at (Invalid @n): Adjust.
3802
c732d2c6
AD
38032002-06-19 Zack Weinberg <zack@codesourcery.com>
3804
3805 * doc/bison.texinfo: Document ability to have multiple
3806 prologue sections.
3807
8c165d89
AD
38082002-06-18 Akim Demaille <akim@epita.fr>
3809
3810 * src/files.c (compute_base_names): When computing the output file
3811 names from the input file name, strip the directory part.
3812
ca98bf57
AD
38132002-06-18 Akim Demaille <akim@epita.fr>
3814
3815 * data/bison.simple.new: Comment changes.
3816 Reported by Andreas Schwab.
3817
0bfb02ff
AD
38182002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3819
3820 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3821 there are no `label `yyoverflowlab' defined but not used' warnings
3822 when yyoverflow is defined.
3823
24c0aad7
AD
38242002-06-18 Akim Demaille <akim@epita.fr>
3825
3826 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
3827 new member.
3828 (symbol_destructor_set): Adjust.
3829 * src/output.c (symbol_destructors_output): Output the destructor
3830 locations.
3831 Output the symbol name.
3832 * data/bison.simple (b4_symbol_destructor): Adjust.
3833
5719c109
AD
38342002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
3835 and Akim Demaille <akim@epita.fr>
3836
3837 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
3838 what's left on the stack when the error recovery hits EOF.
3839 * tests/actions.at (Destructors): Complete to exercise this case.
3840
9280d3ef
AD
38412002-06-17 Akim Demaille <akim@epita.fr>
3842
3843 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
3844 arguments is really empty, not only equal to `[]'.
3845 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
3846 member.
3847 (symbol_destructor_set): New.
3848 * src/output.c (symbol_destructors_output): New.
3849 * src/reader.h (brace_code_t, current_braced_code): New.
3850 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
3851 (handle_dollar): Rename as...
3852 (handle_action_dollar): this.
3853 (handle_destructor_dollar): New.
3854 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
3855 (grammar_declaration): Use it.
3856 * data/bison.simple (yystos): Is always defined.
3857 (yydestructor): New.
3858 * tests/actions.at (Destructors): New.
3859 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
3860
dafdc66f
AD
38612002-06-17 Akim Demaille <akim@epita.fr>
3862
3863 * src/symlist.h, src/symlist.c (symbol_list_length): New.
3864 * src/scan-gram.l (handle_dollar, handle_at): Compute the
3865 rule_length only when needed.
3866 * src/output.c (actions_output, token_definitions_output): Output
3867 the full M4 block.
3868 * src/symtab.c: Don't access directly to the symbol tag, use
3869 symbol_tag_get.
3870 * src/parse-gram.y: Use symbol_list_free.
3871
56c47203
AD
38722002-06-17 Akim Demaille <akim@epita.fr>
3873
3874 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
3875 (symbol_list_prepend, get_type_name): Move to...
3876 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
3877 (symbol_list_prepend, symbol_list_n_type_name_get): here.
3878 Adjust all callers.
3879 (symbol_list_free): New.
3880 * src/scan-gram.l (handle_dollar): Takes a location.
3881 * tests/input.at (Invalid $n): Adjust.
3882
1e0bab92
AD
38832002-06-17 Akim Demaille <akim@epita.fr>
3884
3885 * src/reader.h, src/reader.c (symbol_list_new): Export it.
3886 (symbol_list_prepend): New.
3887 * src/parse-gram.y (%union): `list' is a new member.
3888 (symbols.1): New, replaces...
3889 (terms_to_prec.1, nterms_to_type.1): these.
3890 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
3891 Take a location as additional argument.
3892 Adjust all callers.
3893
04e60654
AD
38942002-06-15 Akim Demaille <akim@epita.fr>
3895
3896 * src/parse-gram.y: Move %token in the declaration section so that
3897 we don't depend upon CVS Bison.
3898
10e5b8bd
AD
38992002-06-15 Akim Demaille <akim@epita.fr>
3900
3901 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
3902 * src/print.c (print_core): Use it.
3903
9801d40c
AD
39042002-06-15 Akim Demaille <akim@epita.fr>
3905
3906 * src/conflicts.c (log_resolution): Accept the rule involved in
3907 the sr conflicts instead of the lookahead number that points to
3908 that rule.
3909 (flush_reduce): Accept the current lookahead vector as argument,
3910 instead of the index in LA.
3911 (resolve_sr_conflict): Accept the current number of lookahead
3912 bitset to consider for the STATE, instead of the index in LA.
3913 (set_conflicts): Adjust.
3914 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
3915
c0263492
AD
39162002-06-15 Akim Demaille <akim@epita.fr>
3917
3918 * src/state.h (state_t): Replace the `lookaheadsp' member, a
3919 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
3920 Adjust all dependencies.
3921 * src/lalr.c (initialize_lookaheads): Split into...
3922 (states_lookaheads_count, states_lookaheads_initialize): these.
3923 (lalr): Adjust.
3924
9757c359
AD
39252002-06-15 Akim Demaille <akim@epita.fr>
3926
3927 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
3928 out of...
3929 (grammar_rules_print): here.
3930 * src/reduce.c (reduce_output): Use it.
3931 * tests/reduce.at (Useless Rules, Reduced Automaton)
3932 (Underivable Rules): Adjust.
3933
6b98e4b5
AD
39342002-06-15 Akim Demaille <akim@epita.fr>
3935
3936 Copy BYacc's nice way to report the grammar.
3937
3938 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
3939 New.
3940 Don't print the rules' location, it is confusing and useless.
3941 (rule_print): Use grammar_rhs_print.
3942 * src/print.c (print_grammar): Use grammar_rules_print.
3943
6b98e4b5
AD
39442002-06-15 Akim Demaille <akim@epita.fr>
3945
3946 Complete and rationalize `useless thing' warnings.
3947
3948 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
3949 (symbol_tag_print): New.
3950 Use them everywhere in place of accessing directly the tag member.
3951 * src/gram.h, src/gram.c (rule_print): New.
3952 Use it where a rule used to be printed `by hand'.
3953 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
3954 (reduce_grammar_tables): Report the useless rules.
3955 (reduce_print): Useless things are a warning, not an error.
3956 Report it as such.
3957 * tests/reduce.at (Useless Nonterminals, Useless Rules):
3958 (Reduced Automaton, Underivable Rules): Adjust.
3959 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
3960 * tests/conflicts.at (Unresolved SR Conflicts)
3961 (Solved SR Conflicts): Adjust.
3962
ee000ba4
AD
39632002-06-15 Akim Demaille <akim@epita.fr>
3964
3965 Let symbols have a location.
3966
3967 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
3968 (getsym): Adjust.
3969 Adjust all callers.
3970 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
3971 Use location_t, not int.
3972 * src/symtab.c (symbol_check_defined): Take advantage of the
3973 location.
3974 * tests/regression.at (Invalid inputs): Adjust.
3975
8efe435c
AD
39762002-06-15 Akim Demaille <akim@epita.fr>
3977
3978 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
3979 (input): Don't try to initialize yylloc here, do it in the
3980 scanner.
3981 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
3982 * src/gram.h (rule_t): Change line and action_line into location
3983 and action_location, of location_t type.
3984 Adjust all dependencies.
3985 * src/location.h, src/location.c (empty_location): New.
3986 * src/reader.h, src/reader.c (grammar_start_symbol_set)
3987 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
3988 (grammar_current_rule_symbol_append)
3989 (grammar_current_rule_action_append): Expect a location as argument.
3990 * src/reader.c (grammar_midrule_action): Adjust to attach an
3991 action's location as dummy symbol location.
3992 * src/symtab.h, src/symtab.c (startsymbol_location): New.
3993 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
3994 the line numbers.
3995
1921f1d7
AD
39962002-06-14 Akim Demaille <akim@epita.fr>
3997
3998 Grammar declarations may be found in the grammar section.
3999
4000 * src/parse-gram.y (rules_or_grammar_declaration): New.
4001 (declarations): Each declaration may end with a semicolon, not
4002 just...
4003 (grammar_declaration): `"%union"'.
4004 (grammar): Branch to rules_or_grammar_declaration.
4005
4515534c
AD
40062002-06-14 Akim Demaille <akim@epita.fr>
4007
4008 * src/main.c (main): Invoke scanner_free.
4009
f958596b
AD
40102002-06-14 Akim Demaille <akim@epita.fr>
4011
4012 * src/output.c (m4_invoke): Extracted from...
4013 (output_skeleton): here.
4014 Free tempfile.
4015
2c569025
AD
40162002-06-14 Akim Demaille <akim@epita.fr>
4017
4018 * src/parse-gram.y (directives, directive, gram)
4019 (grammar_directives, precedence_directives, precedence_directive):
4020 Rename as...
4021 (declarations, declaration, grammar, grammar_declaration)
4022 (precedence_declaration, precedence_declarator): these.
4023 (symbol_declaration): New.
4024
592e8d4d
AD
40252002-06-14 Akim Demaille <akim@epita.fr>
4026
4027 * src/files.c (action_obstack): Remove, unused.
4028 (output_obstack): Remove it, and all its dependencies, as it is no
4029 longer needed.
4030 * src/reader.c (epilogue_set): Build the epilogue in the
4031 muscle_obstack.
4032 * src/output.h, src/output.c (muscle_obstack): Move to...
4033 * src/muscle_tab.h, src/muscle_tab.h: here.
4034 (muscle_init): Initialize muscle_obstack.
4035 (muscle_free): New.
4036 * src/main.c (main): Call it.
4037
0c15323d
AD
40382002-06-14 Akim Demaille <akim@epita.fr>
4039
4040 * src/location.h: New, extracted from...
4041 * src/reader.h: here.
4042 * src/Makefile.am (noinst_HEADERS): Merge into
4043 (bison_SOURCES): this.
4044 Add location.h.
4045 * src/parse-gram.y: Use location_t instead of Bison's.
4046 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4047 Use location_t instead of ints.
4048
e96c9728
AD
40492002-06-14 Akim Demaille <akim@epita.fr>
4050
4051 * data/bison.simple, data/bison.c++: Be sure to restore the
4052 current #line when returning to the skeleton contents after having
4053 exposed the input file's #line.
4054
75d1fe16
AD
40552002-06-12 Akim Demaille <akim@epita.fr>
4056
4057 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4058 eager.
4059 * tests/actions.at (Exotic Dollars): New.
4060
6c35d22c
AD
40612002-06-12 Akim Demaille <akim@epita.fr>
4062
4063 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4064 ['"/] too eagerly.
4065 * tests/input.at (Torturing the Scanner): New.
4066
1d6412ad
AD
40672002-06-11 Akim Demaille <akim@epita.fr>
4068
4069 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4070 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4071 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4072 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4073 * src/reader.c (reader): Use it.
4074
4cdb01db
AD
40752002-06-11 Akim Demaille <akim@epita.fr>
4076
4077 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4078 Adjust all callers.
4079 (scanner_last_string_free): New.
4080
44995b2e
AD
40812002-06-11 Akim Demaille <akim@epita.fr>
4082
4083 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4084 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4085 (last_string, YY_OBS_FREE): New.
4086 Use them when returning an ID.
4087
e9955c83
AD
40882002-06-11 Akim Demaille <akim@epita.fr>
4089
4090 Have Bison grammars parsed by a Bison grammar.
4091
4092 * src/reader.c, src/reader.h (prologue_augment): New.
4093 * src/reader.c (copy_definition): Remove.
4094
4095 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4096 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4097 (grammar_current_rule_prec_set, grammar_current_rule_check)
4098 (grammar_current_rule_symbol_append)
4099 (grammar_current_rule_action_append): Export.
4100 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4101 (symbol_list_action_append): Remove.
4102 Hook the routines from reader.
4103 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4104 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4105
4106 * src/reader.c (read_declarations): Remove, unused.
4107
4108 * src/parse-gram.y: Handle the epilogue.
4109 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4110 (grammar_start_symbol_set): this.
4111 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4112 * src/reader.c (readgram): Remove, unused.
4113 (reader): Adjust to insert eoftoken and axiom where appropriate.
4114
4115 * src/reader.c (copy_dollar): Replace with...
4116 * src/scan-gram.h (handle_dollar): this.
4117 * src/parse-gram.y: Remove `%thong'.
4118
4119 * src/reader.c (copy_at): Replace with...
4120 * src/scan-gram.h (handle_at): this.
4121
4122 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4123 New.
4124
4125 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4126 time being.
4127
4128 * src/reader.h, src/reader.c (grammar_rule_end): New.
4129
4130 * src/parse.y (current_type, current_class): New.
4131 Implement `%nterm', `%token' support.
4132 Merge `%term' into `%token'.
4133 (string_as_id): New.
4134 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4135 type name.
4136
4137 * src/parse-gram.y: Be sure to handle properly the beginning of
4138 rules.
4139
4140 * src/parse-gram.y: Handle %type.
4141 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4142
4143 * src/parse-gram.y: More directives support.
4144 * src/options.c: No longer handle source directives.
4145
4146 * src/parse-gram.y: Fix %output.
4147
4148 * src/parse-gram.y: Handle %union.
4149 Use the prologue locations.
4150 * src/reader.c (parse_union_decl): Remove.
4151
4152 * src/reader.h, src/reader.c (epilogue_set): New.
4153 * src/parse-gram.y: Use it.
4154
4155 * data/bison.simple, data/bison.c++: b4_stype is now either not
4156 defined, then default to int, or to the contents of %union,
4157 without `union' itself.
4158 Adjust.
4159 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4160
4161 * src/output.c (actions_output): Don't output braces, as they are
4162 already handled by the scanner.
4163
4164 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4165 characters to themselves.
4166
4167 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4168 that the epilogue has a proper #line.
4169
4170 * src/parse-gram.y: Handle precedence/associativity.
4171
4172 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4173 a terminal.
4174 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4175 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4176 at all to define terminals that cannot be emitted.
4177
4178 * src/scan-gram.l: Escape M4 characters.
4179
4180 * src/scan-gram.l: Working properly with escapes in user
4181 strings/characters.
4182
4183 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4184 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4185 grammar.
4186 Use more modest sizes, as for the time being the parser does not
4187 release memory, and therefore the process swallows a huge amount
4188 of memory.
4189
4190 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4191 stricter %token grammar.
4192
4193 * src/symtab.h (associativity): Add `undef_assoc'.
4194 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4195 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4196
4197 * tests/regression.at (Invalid %directive): Remove, as it is now
4198 meaningless.
4199 (Invalid inputs): Adjust to the new error messages.
4200 (Token definitions): The new grammar doesn't allow too many
4201 eccentricities.
4202
4203 * src/lex.h, src/lex.c: Remove.
4204 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4205 (copy_character, copy_string2, copy_string, copy_identifier)
4206 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4207 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4208 (parse_action): Remove.
4209 * po/POTFILES.in: Adjust.
4210
2e047461
AD
42112002-06-11 Akim Demaille <akim@epita.fr>
4212
4213 * src/reader.c (parse_action): Don't store directly into the
4214 rule's action member: return the action as a string.
4215 Don't require `rule_length' as an argument: compute it.
4216 (grammar_current_rule_symbol_append)
4217 (grammar_current_rule_action_append): New, eved out from
4218 (readgram): here.
4219 Remove `action_flag', `rulelength', unused now.
4220
9af3fbce
AD
42212002-06-11 Akim Demaille <akim@epita.fr>
4222
4223 * src/reader.c (grammar_current_rule_prec_set).
4224 (grammar_current_rule_check): New, eved out from...
4225 (readgram): here.
4226 Remove `xaction', `first_rhs': useless.
4227 * tests/input.at (Type clashes): New.
4228 * tests/existing.at (GNU Cim Grammar): Adjust.
4229
1485e106
AD
42302002-06-11 Akim Demaille <akim@epita.fr>
4231
4232 * src/reader.c (grammar_midrule_action): New, Eved out from
4233 (readgram): here.
4234
da4160c3
AD
42352002-06-11 Akim Demaille <akim@epita.fr>
4236
4237 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4238 New.
4239 (readgram): Use them as replacement of inlined code, crule and
4240 crule1.
4241
f6d0f937
AD
42422002-06-11 Akim Demaille <akim@epita.fr>
4243
4244 * src/reader.c (grammar_end, grammar_symbol_append): New.
4245 (readgram): Use them.
4246 Make the use of `p' as local as possible.
4247
69078d4b
AD
42482002-06-10 Akim Demaille <akim@epita.fr>
4249
4250 GCJ's parser requires the tokens to be defined before the prologue.
4251
4252 * data/bison.simple: Output the token definition before the user's
4253 prologue.
4254 * tests/regression.at (Braces parsing, Duplicate string)
4255 (Mixing %token styles): Check the output from bison.
4256 (Early token definitions): New.
4257
5e424082
AD
42582002-06-10 Akim Demaille <akim@epita.fr>
4259
4260 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4261 assigning twice the same user number to a token, so that we can
4262 use it in...
4263 * src/lex.c (lex): here.
4264 Also use `symbol_class_set' instead of hand written code.
4265 * src/reader.c (parse_assoc_decl): Likewise.
4266
44536b35
AD
42672002-06-10 Akim Demaille <akim@epita.fr>
4268
4269 * src/symtab.c, src/symtab.c (symbol_class_set)
4270 (symbol_user_token_number_set): New.
4271 * src/reader.c (parse_token_decl): Use them.
4272 Use a switch instead of ifs.
4273 Use a single argument.
4274
8b9f2372
AD
42752002-06-10 Akim Demaille <akim@epita.fr>
4276
4277 Remove `%thong' support as it is undocumented, unused, duplicates
4278 `%token's job, and creates useless e-mail traffic with people who
4279 want to know what it is, why it is undocumented, unused, and
4280 duplicates `%token's job.
4281
4282 * src/reader.c (parse_thong_decl): Remove.
4283 * src/options.c (option_table): Remove "thong".
4284 * src/lex.h (tok_thong): Remove.
4285
3ae2b51f
AD
42862002-06-10 Akim Demaille <akim@epita.fr>
4287
4288 * src/symtab.c, src/symtab.c (symbol_type_set)
4289 (symbol_precedence_set): New.
4290 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4291 (value_components_used): Remove, unused.
4292
2f1afb73
AD
42932002-06-09 Akim Demaille <akim@epita.fr>
4294
4295 Move symbols handling code out of the reader.
4296
4297 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4298 (axiom): Move to...
4299 * src/symtab.h, src/symtab.c: here.
4300
4301 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4302 * src/reader.c (startval): Rename as...
4303 * src/symtab.h, src/symtab.c (startsymbol): this.
4304 * src/reader.c: Adjust.
4305
4306 * src/reader.c (symbol_check_defined, symbol_make_alias)
4307 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4308 (token_translations_init)
4309 Move to...
4310 * src/symtab.c: here.
4311 * src/reader.c (packsymbols): Move to...
4312 * src/symtab.h, src/symtab.c (symbols_pack): here.
4313 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4314 argument.
4315
e9bca3ad
AD
43162002-06-03 Akim Demaille <akim@epita.fr>
4317
4318 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4319 then statements.
4320
86eff183
AD
43212002-06-03 Akim Demaille <akim@epita.fr>
4322
4323 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4324 structs with non literals.
4325 * src/scan-skel.l: never-interactive.
4326 * src/conflicts.c (enum conflict_resolution_e): No trailing
4327 comma.
4328 * src/getargs.c (usage): Split long literal strings.
4329 Reported by Hans Aberg.
4330
717be197
AD
43312002-05-28 Akim Demaille <akim@epita.fr>
4332
4333 * data/bison.c++: Use C++ ostreams.
4334 (cdebug_): New member.
4335
670ddffd
AD
43362002-05-28 Akim Demaille <akim@epita.fr>
4337
4338 * src/output.c (output_skeleton): Be sure to allocate enough room
4339 for `/' _and_ for `\0' in full_skeleton.
4340
769b430f
AD
43412002-05-28 Akim Demaille <akim@epita.fr>
4342
4343 * data/bison.c++: Catch up with bison.simple:
4344 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4345 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4346 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4347 and popping traces.
4348
7067cb36
PH
43492002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4350
4351 * src/output.c (output_skeleton): Put an explicit path in front of
4352 the skeleton file name, rather than relying on the -I directory,
4353 to partially alleviate effects of having a skeleton file lying around
4354 in the current directory.
769b430f 4355
4a713ec2
PH
43562002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4357
769b430f 4358 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
4359 obstack_printf should be obstack_fgrow1.
4360
b408954b
AD
43612002-05-26 Akim Demaille <akim@epita.fr>
4362
4363 * src/state.h (state_t): `solved_conflicts' is a new member.
4364 * src/LR0.c (new_state): Set it to 0.
4365 * src/conflicts.h, src/conflicts.c (print_conflicts)
4366 (free_conflicts, solve_conflicts): Rename as...
4367 (conflicts_print, conflicts_free, conflicts_solve): these.
4368 Adjust callers.
4369 * src/conflicts.c (enum conflict_resolution_e)
4370 (solved_conflicts_obstack): New, used by...
4371 (log_resolution): this.
4372 Adjust to attach the conflict resolution to each state.
4373 Complete the description with the precedence/associativity
4374 information.
4375 (resolve_sr_conflict): Adjust.
4376 * src/print.c (print_state): Output its solved_conflicts.
4377 * tests/conflicts.at (Unresolved SR Conflicts)
4378 (Solved SR Conflicts): Exercise --report=all.
4379
a49aecd5
AD
43802002-05-26 Akim Demaille <akim@epita.fr>
4381
4382 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4383 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4384 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4385 (token_number_t, item_number_as_token_number)
4386 (token_number_as_item_number, muscle_insert_token_number_table):
4387 Rename as...
4388 (symbol_number_t, item_number_as_symbol_number)
4389 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4390 these, since it is more appropriate.
4391
5504898e
AD
43922002-05-26 Akim Demaille <akim@epita.fr>
4393
4394 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4395 `Error:' lines.
4396 * data/bison.simple (yystos) [YYDEBUG]: New.
4397 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4398 error recovery.
4399 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4400
ec3bc396
AD
44012002-05-25 Akim Demaille <akim@epita.fr>
4402
4403 * doc/bison.texinfo (Debugging): Split into...
4404 (Tracing): this new section, its former contents, and...
4405 (Understanding): this new section.
4406 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4407 by...
4408 (report_flag): this.
4409 Adjust all dependencies.
4410 (report_args, report_types, report_argmatch): New.
4411 (usage, getargs): Report/support -r, --report.
4412 * src/options.h
4413 (struct option_table_struct): Rename as..,
4414 (struct option_table_s): this.
4415 Rename the `set_flag' member to `flag' to match with getopt_long's
4416 struct.
4417 * src/options.c (option_table): Split verbose into an entry for
4418 %verbose, and another for --verbose.
4419 Support --report/-r, so remove -r from the obsolete --raw.
4420 * src/print.c: Attach full item sets and lookaheads reports to
4421 report_flag instead of trace_flag.
4422 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4423
78df8250
PE
44242002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4425 and Paul Eggert <eggert@twinsun.com>
769b430f 4426
78df8250
PE
4427 * data/bison.simple (yyparse): Correct error handling to conform to
4428 POSIX and yacc. Specifically, after syntax error is discovered,
4429 do not reduce further before shifting the error token.
4430 Clean up the code a bit by removing the labels yyerrdefault,
4431 yyerrhandle, yyerrpop.
4432 * NEWS: Document the above.
4433
c0c9ea05
PH
44342002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4435
4436 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4437 type; it isn't always big enough, since it doesn't necessarily
4438 include non-terminals.
769b430f 4439 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
4440 the latter can be removed.
4441 (yy_token_number_type): Remove, only one use.
4442 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4443 don't use TokenNumberType as element type.
769b430f 4444
c0c9ea05
PH
4445 * tests/regression.at: Modify expected output to agree with change
4446 to yyr1 and yytranslate.
769b430f 4447
6390a83f
FK
44482002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4449
4450 * src/reader.c (parse_action): Use copy_character instead of
4451 obstack_1grow.
4452
db7c8e9a
AD
44532002-05-13 Akim Demaille <akim@epita.fr>
4454
4455 * tests/regression.at (Token definitions): Prototype yylex and
4456 yyerror.
4457
fcc61800
PH
44582002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4459
158c687b 4460 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
4461 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4462 32-bit arithmetic.
4463 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4464
5683e9b2
AD
44652002-05-07 Akim Demaille <akim@epita.fr>
4466
4467 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4468 avoid GCC warnings.
4469
0c2d3f4c
AD
44702002-05-07 Akim Demaille <akim@epita.fr>
4471
4472 Kill GCC warnings.
4473
4474 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4475 over the RHS of each rule.
4476 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4477 * src/state.h (state_t): Member `nitems' is unsigned short.
4478 * src/LR0.c (get_state): Adjust.
4479 * src/reader.c (packgram): Likewise.
4480 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4481 `Type'.
4482 (muscle_insert_int_table): Remove, unused.
4483 (prepare_rules): Remove `max'.
4484
1565b720
AD
44852002-05-06 Akim Demaille <akim@epita.fr>
4486
4487 * src/closure.c (print_firsts): Display of the symbol tags.
4488 (bitmatrix_print): Move to...
4489 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4490 here.
4491 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4492
cfaee611
AD
44932002-05-06 Akim Demaille <akim@epita.fr>
4494
4495 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4496 hash_do_for_each.
4497
458be8e0
AD
44982002-05-06 Akim Demaille <akim@epita.fr>
4499
4500 * src/LR0.c (new_state, get_state): Instead of using the global
4501 `kernel_size' and `kernel_base', have two new arguments:
4502 `core_size' and `core'.
4503 Adjust callers.
4504
a900a624
AD
45052002-05-06 Akim Demaille <akim@epita.fr>
4506
4507 * src/reader.c (packgram): No longer end `ritem' with a 0
4508 sentinel: it is not used.
4509
d4e7d3a1
AD
45102002-05-05 Akim Demaille <akim@epita.fr>
4511
4512 New experimental feature: display the lookaheads in the report and
4513 graph.
4514
4515 * src/print (print_core): When --trace-flag, display the rules
4516 lookaheads.
4517 * src/print_graph.c (print_core): Likewise.
4518 Swap the arguments.
4519 Adjust caller.
4520
39ceb25b
AD
45212002-05-05 Akim Demaille <akim@epita.fr>
4522
4523 * tests/torture.at (Many lookaheads): New test.
4524
5372019f
AD
45252002-05-05 Akim Demaille <akim@epita.fr>
4526
4527 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4528 (GENERATE_MUSCLE_INSERT_TABLE): this.
4529 (output_int_table, output_unsigned_int_table, output_short_table)
4530 (output_token_number_table, output_item_number_table): Replace with...
4531 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4532 (muscle_insert_short_table, muscle_insert_token_number_table)
4533 (muscle_insert_item_number_table): these.
4534 Adjust all callers.
4535 (prepare_tokens): Don't free `translations', since...
4536 * src/reader.h, src/reader.c (grammar_free): do it.
4537 Move to...
4538 * src/gram.h, src/gram.c (grammar_free): here.
4539 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4540 b4_translate_max.
4541
5df5f6d5
AD
45422002-05-05 Akim Demaille <akim@epita.fr>
4543
4544 * src/output.c (output_unsigned_int_table): New.
4545 (prepare_rules): `i' is unsigned.
4546 `prhs', `rline', `r2' are unsigned int.
4547 Rename muscle `rhs_number_max' as `rhs_max'.
4548 Output muscles `prhs_max', `rline_max', and `r2_max'.
4549 Free rline and r1.
4550 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4551 to compute types instead of constant types.
4552 * tests/regression.at (Web2c Actions): Adjust.
4553
b87f8b21
AD
45542002-05-04 Akim Demaille <akim@epita.fr>
4555
4556 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4557 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4558 Adjust dependencies.
4559 * src/output.c (token_definitions_output): Be sure not to output a
4560 `#define 'a'' when fed with `%token 'a' "a"'.
4561 * tests/regression.at (Token definitions): New.
4562
8bb936e4
PE
45632002-05-03 Paul Eggert <eggert@twinsun.com>
4564
4565 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4566 for K&R C.
4567
45682002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4569
4570 * Makefile.am (SUBDIRS): Remove intl.
4571 (EXTRA_DIST): Add config/config.rpath.
4572
53c71a12
AD
45732002-05-03 Akim Demaille <akim@epita.fr>
4574
4575 * data/bison.simple (m4_if): Don't output empty enums.
4576 And actually, output valid enum definitions :(.
4577
289dd0cf
AD
45782002-05-03 Akim Demaille <akim@epita.fr>
4579
4580 * configure.bat: Remove, completely obsolete.
4581 * Makefile.am (EXTRA_DIST): Adjust.
4582 Don't distribute config.rpath...
4583 * config/Makefile.am (EXTRA_DIST): Do it.
4584
db85e524
AD
45852002-05-03 Akim Demaille <akim@epita.fr>
4586
4587 * configure.in (GETTEXT_VERSION): New.
4588 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4589
83ccf991
AD
45902002-05-03 Akim Demaille <akim@epita.fr>
4591
4592 * data/bison.simple (b4_token_enum): New.
4593 (b4_token_defines): Use it to output tokens both as #define and
4594 enums.
4595 Suggested by Paul Eggert.
4596 * src/output.c (token_definitions_output): Don't output spurious
4597 white spaces.
4598
1f418995
AD
45992002-05-03 Akim Demaille <akim@epita.fr>
4600
4601 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4602
45119f04
RA
46032002-05-02 Robert Anisko <robert@lrde.epita.fr>
4604
4605 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4606 Update the stack class, give a try to deque as the default container.
4607
b2d52318
AD
46082002-05-02 Akim Demaille <akim@epita.fr>
4609
4610 * data/bison.simple (yyparse): Do not implement @$ = @1.
4611 (YYLLOC_DEFAULT): Adjust to do it.
4612 * doc/bison.texinfo (Location Default Action): Fix.
4613
3a8b4109
AD
46142002-05-02 Akim Demaille <akim@epita.fr>
4615
4616 * src/reader.c (parse_braces): Merge into...
4617 (parse_action): this.
4618
84614e13
AD
46192002-05-02 Akim Demaille <akim@epita.fr>
4620
4621 * configure.in (ALL_LINGUAS): Remove.
4622 * po/LINGUAS, hr.po: New.
4623
fdbcd8e2
AD
46242002-05-02 Akim Demaille <akim@epita.fr>
4625
4626 Remove the so called hairy (semantic) parsers.
4627
4628 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4629 * src/gram.h, src/gram.c (semantic_parser): Remove.
4630 (rule_t): Remove the guard and guard_line members.
4631 * src/lex.h (token_t): remove tok_guard.
4632 * src/options.c (option_table): Remove %guard and %semantic_parser
4633 support.
4634 * src/output.c, src/output.h (guards_output): Remove.
4635 (prepare): Adjust.
4636 (token_definitions_output): Don't output the `T'
4637 tokens (???).
4638 (output_skeleton): Don't output the guards.
4639 * src/files.c, src/files.c (attrsfile): Remove.
4640 * src/reader.c (symbol_list): Remove the guard and guard_line
4641 members.
4642 Adjust dependencies.
4643 (parse_guard): Remove.
4644 * data/bison.hairy: Remove.
4645 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4646 BISON_HAIRY.
4647
82b6cb3f
AD
46482002-05-02 Akim Demaille <akim@epita.fr>
4649
4650 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4651 (parse_guard): Rename the formal argument `stack_offset' as
4652 `rule_length', which is more readable.
4653 Adjust callers.
4654 (copy_at, copy_dollar): Instead of outputting the hard coded
4655 values of $$, $n and so forth, output invocation to b4_lhs_value,
4656 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
4657 Note: this patch partially drops `semantic-parser' support: it
4658 always does `rule_length - n', where semantic parsers ought to
4659 always use `-n'.
82b6cb3f
AD
4660 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4661 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4662
6cbfbcc5
AD
46632002-05-02 Akim Demaille <akim@epita.fr>
4664
4665 * configure.in (AC_INIT): Bump to 1.49b.
4666 (AM_INIT_AUTOMAKE): Short invocation.
4667
b8548114
AD
46682002-05-02 Akim Demaille <akim@epita.fr>
4669
4670 Version 1.49a.
4671
c20cd1fa
AD
46722002-05-01 Akim Demaille <akim@epita.fr>
4673
4674 * src/skeleton.h: Remove.
4675
8a9566d4
AD
46762002-05-01 Akim Demaille <akim@epita.fr>
4677
4678 * src/skeleton.h: Fix the #endif.
4679 Reported by Magnus Fromreide.
4680
8c6d399a
PE
46812002-04-26 Paul Eggert <eggert@twinsun.com>
4682
4683 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4684 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 4685 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 4686
2b7ed18a
RA
46872002-04-25 Robert Anisko <robert@lrde.epita.fr>
4688
4689 * src/scan-skel.l: Postprocess quadrigraphs.
4690
4691 * src/reader.c (copy_character): New function, used to output
4692 single characters while replacing `[' and `]' with quadrigraphs, to
4693 avoid troubles with M4 quotes.
4694 (copy_comment): Output characters with copy_character.
4695 (read_additionnal_code): Likewise.
4696 (copy_string2): Likewise.
4697 (copy_definition): Likewise.
4698
4699 * tests/calc.at: Exercise M4 quoting.
4700
34a89c50
AD
47012002-04-25 Akim Demaille <akim@epita.fr>
4702
4703 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4704 between `!' and the command.
4705 Reported by Paul Eggert.
4706
0dd1580a
RA
47072002-04-24 Robert Anisko <robert@lrde.epita.fr>
4708
4709 * tests/calc.at: Exercise prologue splitting.
4710
4711 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4712 `b4_post_prologue' instead of `b4_prologue'.
4713
4714 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4715 muscles.
4716 (output): Free pre_prologue_obstack and post_prologue_obstack.
4717 * src/files.h, src/files.c (attrs_obstack): Remove.
4718 (pre_prologue_obstack, post_prologue_obstack): New.
4719 * src/reader.c (copy_definition): Add a parameter to specify the
4720 obstack to fill, instead of using attrs_obstack unconditionally.
4721 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4722 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4723
83c1796f
PE
47242002-04-23 Paul Eggert <eggert@twinsun.com>
4725
4726 * data/bison.simple: Remove unnecessary commentary and white
4727 space differences from 1_29-branch.
4728 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4729
4730 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4731 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4732 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4733 constructors or destructors.
4734
4735 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4736
1207eeac
AD
47372002-04-23 Akim Demaille <akim@epita.fr>
4738
4739 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4740 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4741 location with columns.
4742 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4743 All reported by Paul Eggert.
4744
78ab8f67
AD
47452002-04-22 Akim Demaille <akim@epita.fr>
4746
4747 * src/reduce.c (dump_grammar): Move to...
4748 * src/gram.h, src/gram.c (grammar_dump): here.
4749 Be sure to separate long item numbers.
4750 Don't read the members of a rule's prec if its nil.
4751
133c20e2
AD
47522002-04-22 Akim Demaille <akim@epita.fr>
4753
4754 * src/output.c (table_size, table_grow): New.
4755 (MAXTABLE): Remove, replace uses with table_size.
4756 (pack_vector): Instead of dying when the table is too big, grow it.
4757
9515e8a7
AD
47582002-04-22 Akim Demaille <akim@epita.fr>
4759
4760 * data/bison.simple (yyr1): Its type is that of a token number.
4761 * data/bison.c++ (r1_): Likewise.
4762 * tests/regression.at (Web2c Actions): Adjust.
4763
23c5a174
AD
47642002-04-22 Akim Demaille <akim@epita.fr>
4765
4766 * src/reader.c (token_translations_init): 256 is now the default
4767 value for the error token, i.e., it will be assigned another
4768 number if the user assigned 256 to one of her tokens.
4769 (reader): Don't force 256 to error.
4770 * doc/bison.texinfo (Symbols): Adjust.
4771 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4772 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4773 etc. instead of 10, 20, 30 (which was used to `jump' over error
4774 (256) and undefined (2)).
4775
5fbb0954
AD
47762002-04-22 Akim Demaille <akim@epita.fr>
4777
4778 Propagate more token_number_t.
4779
4780 * src/gram.h (token_number_as_item_number)
4781 (item_number_as_token_number): New.
4782 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4783 Use it to create output_item_number_table and
4784 output_token_number_table.
4785 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4786 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4787 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4788 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4789
4f940944
AD
47902002-04-22 Akim Demaille <akim@epita.fr>
4791
4792 * src/output.h, src/output.c (get_lines_number): Remove.
4793
3ded9a63
AD
47942002-04-19 Akim Demaille <akim@epita.fr>
4795
4796 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4797 as Lex/Flex'.
4798 (Debugging): More details about enabling the debugging features.
4799 (Table of Symbols): Describe $$, $n, @$, and @n.
4800 Suggested by Tim Josling.
4801
e0c471a9
AD
48022002-04-19 Akim Demaille <akim@epita.fr>
4803
4804 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4805
fecc10cd
AD
48062002-04-10 Akim Demaille <akim@epita.fr>
4807
4808 * src/system.h: Rely on HAVE_LIMITS_H.
4809 Suggested by Paul Eggert.
4810
51dec47b
AD
48112002-04-09 Akim Demaille <akim@epita.fr>
4812
4813 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4814 full stderr, and strip it according to the bison options, instead
4815 of composing the error message from different bits.
4816 This makes it easier to check for several error messages.
4817 Adjust all the invocations.
4818 Add an invocation exercising the error token.
4819 Add an invocation demonstrating a stupid error message.
4820 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4821 Adjust the tests.
4822 Error message are for stderr, not stdout.
4823
007a50a4
AD
48242002-04-09 Akim Demaille <akim@epita.fr>
4825
4826 * src/gram.h, src/gram.c (error_token_number): Remove, use
4827 errtoken->number.
4828 * src/reader.c (reader): Don't specify the user token number (2)
4829 for $undefined, as it uselessly prevents using it.
4830 * src/gram.h (token_number_t): Move to...
4831 * src/symtab.h: here.
4832 (state_t.number): Is a token_number_t.
4833 * src/print.c, src/reader.c: Use undeftoken->number instead of
4834 hard coded 2.
4835 (Even though this 2 is not the same as above: the number of the
4836 undeftoken remains being 2, it is its user token number which
4837 might not be 2).
4838 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
4839 `user_token_number_max'.
4840 Output `undef_token_number'.
4841 * data/bison.simple, data/bison.c++: Use them.
4842 Be sure to map invalid yylex return values to
4843 `undef_token_number'. This saves us from gratuitous SEGV.
4844
4845 * tests/conflicts.at (Solved SR Conflicts)
4846 (Unresolved SR Conflicts): Adjust.
4847 * tests/regression.at (Web2c Actions): Adjust.
4848
06446ccf
AD
48492002-04-08 Akim Demaille <akim@epita.fr>
4850
4851 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
4852 Adding #line.
4853 Remove the duplicate `typedefs'.
4854 (RhsNumberType): Fix the declaration and various other typos.
4855 Use __ofile__.
4856 * data/bison.simple: Use __ofile__.
4857 * src/scan-skel.l: Handle __ofile__.
4858
62a3e4f0
AD
48592002-04-08 Akim Demaille <akim@epita.fr>
4860
4861 * src/gram.h (item_number_t): New, the type of item numbers in
4862 RITEM. Note that it must be able to code symbol numbers as
4863 positive number, and the negation of rule numbers as negative
4864 numbers.
4865 Adjust all dependencies (pretty many).
4866 * src/reduce.c (rule): Remove this `short *' pointer: use
4867 item_number_t.
4868 * src/system.h (MINSHORT, MAXSHORT): Remove.
4869 Include `limits.h'.
4870 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
4871 (shortcpy): Remove.
4872 (MAXTABLE): Move to...
4873 * src/output.c (MAXTABLE): here.
4874 (prepare_rules): Use output_int_table to output rhs.
4875 * data/bison.simple, data/bison.c++: Adjust.
4876 * tests/torture.at (Big triangle): Move the limit from 254 to
4877 500.
4878 * tests/regression.at (Web2c Actions): Ajust.
4879
4880 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
4881 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
4882 passes, but produces negative #line number, once fixed, GCC is
4883 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
4884 C), it passes.
4885 * src/state.h (state_h): Code input lines on ints, not shorts.
4886
bb88b0fc
AD
48872002-04-08 Akim Demaille <akim@epita.fr>
4888
4889 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
4890 and then the grammar.
4891
9a636f47
AD
48922002-04-08 Akim Demaille <akim@epita.fr>
4893
4894 * src/system.h: No longer using strndup.
4895
680e8701
AD
48962002-04-07 Akim Demaille <akim@epita.fr>
4897
4898 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
4899 * src/output.c (output_table_data): Return the longest number.
4900 (prepare_tokens): Output `token_number_max').
4901 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
4902 New.
4903 Use them to define yy_token_number_type/TokenNumberType.
4904 Use this type for yytranslate.
4905 * tests/torture.at (Big triangle): Push the limit from 124 to
4906 253.
4907 * tests/regression.at (Web2c Actions): Adjust.
4908
817e9f41
AD
49092002-04-07 Akim Demaille <akim@epita.fr>
4910
4911 * tests/torture.at (Big triangle): New.
4912 (GNU AWK Grammar, GNU Cim Grammar): Move to...
4913 * tests/existing.at: here.
4914
5123689b
AD
49152002-04-07 Akim Demaille <akim@epita.fr>
4916
4917 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
4918 nritems.
4919 Adjust dependencies.
4920
f3849179
AD
49212002-04-07 Akim Demaille <akim@epita.fr>
4922
4923 * src/reader.c: Normalize increments to prefix form.
4924
bd02036a
AD
49252002-04-07 Akim Demaille <akim@epita.fr>
4926
4927 * src/reader.c, symtab.c: Remove debugging code.
4928
db8837cb
AD
49292002-04-07 Akim Demaille <akim@epita.fr>
4930
4931 Rename all the `bucket's as `symbol_t'.
4932
4933 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
4934 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
4935 * src/symtab.c, src/symtab.h (bucket): Rename as...
4936 (symbol_t): this.
4937 (symbol_list_new, bucket_check_defined, bucket_make_alias)
4938 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
4939 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4940 (buckets_new, buckets_free, buckets_do): Rename as...
4941 (symbol_list_new, symbol_check_defined, symbol_make_alias)
4942 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4943 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
4944 (symbols_new, symbols_free, symbols_do): these.
4945
72a23c97
AD
49462002-04-07 Akim Demaille <akim@epita.fr>
4947
4948 Use lib/hash for the symbol table.
4949
4950 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
4951 EOF.
4952 * src/lex.c (lex): Set the `number' member of new terminals.
4953 * src/reader.c (bucket_check_defined, bucket_make_alias)
4954 (bucket_check_alias_consistence, bucket_translation): New.
4955 (reader, grammar_free, readgram, token_translations_init)
4956 (packsymbols): Adjust.
4957 (reader): Number the predefined tokens.
4958 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
4959 for predefined tokens.
4960 * src/symtab.h (bucket): Remove all the hash table related
4961 members.
4962 * src/symtab.c (symtab): Replace by...
4963 (bucket_table): this.
4964 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4965 (buckets_new, buckets_do): New.
4966
280a38c3
AD
49672002-04-07 Akim Demaille <akim@epita.fr>
4968
4969 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
4970 (start_symbol, max_user_token_number, semantic_parser)
4971 (error_token_number): Initialize.
4972 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
4973 Initialize.
4974 (reader): Don't.
4975 (errtoken, eoftoken, undeftoken, axiom): Extern.
4976
03b31c0c
AD
49772002-04-07 Akim Demaille <akim@epita.fr>
4978
4979 * src/gram.h (rule_s): prec and precsym are now pointers
4980 to the bucket giving the priority/associativity.
4981 Member `associativity' removed: useless.
4982 * src/reduce.c, src/conflicts.c: Adjust.
4983
8b3df748
AD
49842002-04-07 Akim Demaille <akim@epita.fr>
4985
4986 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
4987 Properly escape the symbols' TAG when outputting them.
4988
e601aa1d
AD
49892002-04-07 Akim Demaille <akim@epita.fr>
4990
4991 * src/lalr.h (LA): Is a bitsetv, not bitset*.
4992
b0299a2e
AD
49932002-04-07 Akim Demaille <akim@epita.fr>
4994
4995 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
4996 (LArule): this, which is an array to rule_t*.
4997 * src/print.c, src/conflicts.c: Adjust.
4998
d7e1f00c
AD
49992002-04-07 Akim Demaille <akim@epita.fr>
5000
5001 * src/gram.h (rule_t): Rename `number' as `user_number'.
5002 `number' is a new member.
5003 Adjust dependencies.
5004 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
5005
cc9305dd
AD
50062002-04-07 Akim Demaille <akim@epita.fr>
5007
5008 As a result of the previous patch, it is no longer needed
5009 to reorder ritem itself.
5010
5011 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
5012
b0940840
AD
50132002-04-07 Akim Demaille <akim@epita.fr>
5014
5015 Be sure never to walk through RITEMS, but use only data related to
5016 the rules themselves. RITEMS should be banished.
5017
5018 * src/output.c (output_token_translations): Rename as...
5019 (prepare_tokens): this.
5020 In addition to `translate', prepare the muscles `tname' and
5021 `toknum', which were handled by...
5022 (output_rule_data): this.
5023 Remove, and move the remainder of its outputs into...
5024 (prepare_rules): this new routines, which also merges content from
5025 (output_gram): this.
5026 (prepare_rules): Be sure never to walk through RITEMS.
5027 (output_stos): Rename as...
5028 (prepare_stos): this.
5029 (output): Always invoke prepare_states, after all, just don't use it
5030 in the output if you don't need it.
5031
643a5994
AD
50322002-04-07 Akim Demaille <akim@epita.fr>
5033
5034 * src/LR0.c (new_state): Display `nstates' as the name of the
5035 newly created state.
5036 Adjust to initialize first_state and last_state if needed.
5037 Be sure to distinguish the initial from the final state.
5038 (new_states): Create the itemset of the initial state, and use
5039 new_state.
5040 * src/closure.c (closure): Now that the initial state has its
5041 items properly set, there is no need for a special case when
5042 creating `ruleset'.
5043
5044 As a result, now the rule 0, reducing to $axiom, is visible in the
5045 outputs. Adjust the test suite.
5046
5047 * tests/conflicts.at (Solved SR Conflicts)
5048 (Unresolved SR Conflicts): Adjust.
5049 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5050 * tests/conflicts.at (S/R in initial): New.
5051
b4c4ccc2
AD
50522002-04-07 Akim Demaille <akim@epita.fr>
5053
5054 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5055 the RHS of the rules.
5056 * src/output.c (output_gram): Likewise.
5057
bba97eb2
AD
50582002-04-07 Akim Demaille <akim@epita.fr>
5059
5060 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5061 bucket.
5062 Adjust all dependencies.
5063 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5064 `number' of the buckets too.
5065 * src/gram.h: Include `symtab.h'.
5066 (associativity): Move to...
5067 * src/symtab.h: here.
5068 No longer include `gram.h'.
5069
c3b407f4
AD
50702002-04-07 Akim Demaille <akim@epita.fr>
5071
5072 * src/gram.h, src/gram.c (rules_rhs_length): New.
5073 (ritem_longest_rhs): Use it.
5074 * src/gram.h (rule_t): `number' is a new member.
5075 * src/reader.c (packgram): Set it.
5076 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5077 the end of `rules', and count them out of `nrules'.
5078 (reduce_output, dump_grammar): Adjust.
5079 * src/print.c (print_grammar): It is no longer needed to check for
5080 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5081 * tests/reduce.at (Reduced Automaton): New test.
5082
11652ab3
AD
50832002-04-07 Akim Demaille <akim@epita.fr>
5084
5085 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5086 lacking `+ 1' to nrules, Bison reported as useless a token if it
5087 was used solely to set the precedence of the last rule...
5088
26b23c1a
AD
50892002-04-07 Akim Demaille <akim@epita.fr>
5090
5091 * data/bison.c++, data/bison.simple: Don't output the current file
5092 name in #line, to avoid useless diffs between two identical
5093 outputs under different names.
5094
18bcecb0
AD
50952002-04-07 Akim Demaille <akim@epita.fr>
5096
5097 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5098 Normalize loops to using `< nrules + 1', not `<= nrules'.
5099
fa770c86
AD
51002002-04-07 Akim Demaille <akim@epita.fr>
5101
5102 * TODO: Update.
5103
d9b739c3
AD
51042002-04-07 Akim Demaille <akim@epita.fr>
5105
5106 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5107 bucket.value as bucket.number.
5108
99013900
AD
51092002-04-07 Akim Demaille <akim@epita.fr>
5110
5111 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5112 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5113 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5114 RHS, instead of being an index in RITEMS.
5115
e966383b
PE
51162002-04-04 Paul Eggert <eggert@twinsun.com>
5117
5118 * doc/bison.texinfo: Update copyright date.
5119 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5120 (Symbols): Warn about running Bison in one character set,
5121 but compiling and/or running in an incompatible one.
5122 Warn about character code 256, too.
5123
51242002-04-03 Paul Eggert <eggert@twinsun.com>
5125
5126 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5127 YYERROR_VERBOSE is nonzero, not whether it is defined.
5128
5129 Merge changes from bison-1_29-branch.
c307773e 5130
8d6c48b9
PE
51312002-03-20 Paul Eggert <eggert@twinsun.com>
5132
5133 Merge fixes from Debian bison_1.34-1.diff.
5134
5135 * configure.in (AC_PREREQ): 2.53.
5136
e53c6322
AD
51372002-03-20 Akim Demaille <akim@epita.fr>
5138
5139 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5140
9ffbeca7
PE
51412002-03-19 Paul Eggert <eggert@twinsun.com>
5142
21db0b2a
PE
5143 * src/bison.simple (YYCOPY): New macro.
5144 (YYSTACK_RELOCATE): Use it.
5145 Remove Type arg; no longer needed. All callers changed.
5146 (yymemcpy): Remove; no longer needed.
5147
9ffbeca7
PE
5148 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5149 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5150
642cb8f8
AD
51512002-03-19 Akim Demaille <akim@epita.fr>
5152
5153 Test and fix the #line outputs.
5154
5155 * tests/atlocal.at (GCC): New.
5156 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5157 (Prologue synch line, ,%union synch line, Postprologue synch line)
5158 (Action synch line, Epilogue synch line): New tests.
5159 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5160 * data/bison.simple, data/bison.c++: Use it.
5161
3c31a486
AD
51622002-03-19 Akim Demaille <akim@epita.fr>
5163
5164 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5165 (Solved SR Conflicts, %expect not enough, %expect right)
5166 (%expect too much): Move to...
5167 * tests/conflicts.at: this new file.
5168
0d8bed56
AD
51692002-03-19 Akim Demaille <akim@epita.fr>
5170
5171 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5172 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5173 that we can move to enums for instance.
5174 * src/output.c (token_definitions_output): Output a list of
5175 `token-name, token-number' instead of the #define.
5176 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5177
9208d17f
AD
51782002-03-14 Akim Demaille <akim@epita.fr>
5179
5180 Use Gettext 0.11.1.
5181
af27eacb
RA
51822002-03-09 Robert Anisko <robert@lrde.epita.fr>
5183
5184 * data/bison.c++: Make the user able to add members to the generated
5185 parser by subclassing.
5186
9101a310
RA
51872002-03-05 Robert Anisko <robert@lrde.epita.fr>
5188
5189 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5190 a character.
5191 Reported by Nicolas Tisserand and Nicolas Burrus.
5192
fff9bf0b
RA
51932002-03-04 Robert Anisko <robert@lrde.epita.fr>
5194
5195 * src/reader.c: Warn about lacking semi-colons, do not complain.
5196
64dba31e
RA
51972002-03-04 Robert Anisko <robert@lrde.epita.fr>
5198
5199 * data/bison.c++: Remove a debug line.
5200
374f5a14
RA
52012002-03-04 Robert Anisko <robert@lrde.epita.fr>
5202
5203 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5204 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5205 provide a default implementation.
5206
bfcf1f3a
AD
52072002-03-04 Akim Demaille <akim@epita.fr>
5208
5209 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5210 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5211 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5212 * tests/semantic.at (Parsing Guards): Similarly.
5213 * src/reader.at (readgram): Complain if the last rule is not ended
5214 with a semi-colon.
5215
65ccf9fc
AD
52162002-03-04 Akim Demaille <akim@epita.fr>
5217
5218 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5219 * src/closure.c: here.
5220 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5221 RTC.
5222 * src/warshall.h, src/warshall.c: Remove.
5223 * tests/sets.at (Broken Closure): Adjust.
5224
d0039cbc
AD
52252002-03-04 Akim Demaille <akim@epita.fr>
5226
5227 * src/output.c (output_skeleton): tempdir is const.
5228 bytes_read is unused.
5229
345cea78
AD
52302002-03-04 Akim Demaille <akim@epita.fr>
5231
5232 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5233 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5234 Update.
5235 From Michael Hayes.
5236
564801f7
AD
52372002-03-04 Akim Demaille <akim@epita.fr>
5238
5239 * src/closure.c (closure): `r' is unused.
5240
e5352bc7
AD
52412002-03-04 Akim Demaille <akim@epita.fr>
5242
5243 * tests/sets.at (Broken Closure): Add the ending `;'.
5244 * src/reader.at (readgram): Complain if a rule is not ended with a
5245 semi-colon.
5246
914feea9
AD
52472002-03-04 Akim Demaille <akim@epita.fr>
5248
5249 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5250 (count_sr_conflicts): Use bitset_count.
5251 * src/reduce.c (inaccessable_symbols): Ditto.
5252 (bits_size): Remove.
5253 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5254
f0250de6
AD
52552002-03-04 Akim Demaille <akim@epita.fr>
5256
5257 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5258 * src/reduce.c: Remove the `bitset_zero's following the
5259 `bitset_create's, as now it is performed by the latter.
5260
ef017502
AD
52612002-03-04 Akim Demaille <akim@epita.fr>
5262
5263 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5264 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5265 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5266 latest sources from Michael.
5267
76514394
AD
52682002-03-04 Akim Demaille <akim@epita.fr>
5269
5270 * src/output.c (output): Don't free the grammar.
5271 * src/reader.c (grammar_free): New.
5272 * src/main.c (main): Call it and don't free symtab here.
5273
55024580
AD
52742002-03-04 Akim Demaille <akim@epita.fr>
5275
5276 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5277 before returning.
5278 Reported by Benoit Perrot.
5279
f9abaa2c
AD
52802002-03-04 Akim Demaille <akim@epita.fr>
5281
5282 Use bitset operations when possible, not loops over bits.
5283
5284 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5285 bitset_or.
5286 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5287 * src/reduce.c (useless_nonterminals): Formatting changes.
5288 * src/warshall.c (TC): Use bitset_or.
5289
0e721e75
AD
52902002-03-04 Akim Demaille <akim@epita.fr>
5291
5292 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5293 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5294 Ditto.
5295
0fb1ffb1
AD
52962002-03-04 Akim Demaille <akim@epita.fr>
5297
5298 * src/lalr.c (F): Now a bitset*.
5299 Adjust all dependencies.
5300
b86796bf
AD
53012002-03-04 Akim Demaille <akim@epita.fr>
5302
5303 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5304 Adjust all dependencies.
5305
602bbf31
AD
53062002-03-04 Akim Demaille <akim@epita.fr>
5307
5308 * src/L0.c, src/LR0.h (nstates): Be size_t.
5309 Adjust comparisons (signed vs unsigned).
5310 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5311 bitset*.
5312 Adjust all dependencies.
5313
d8a0245c
AD
53142002-03-04 Akim Demaille <akim@epita.fr>
5315
5316 * src/closure.c (firsts): Now, also a bitset.
5317 Adjust all dependencies.
5318 (varsetsize): Remove, now unused.
5319 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5320
34ba9743
AD
53212002-03-04 Akim Demaille <akim@epita.fr>
5322
5323 * src/print.c: Convert to use bitset.h, not hand coded iterations
5324 over ints.
5325
ed86e78c
AD
53262002-03-04 Akim Demaille <akim@epita.fr>
5327
5328 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5329
dfdb1797
AD
53302002-03-04 Akim Demaille <akim@epita.fr>
5331
5332 * src/closure.c (ruleset): Be a bitset.
5333 (rulesetsize): Remove.
5334
7086e707
AD
53352002-03-04 Akim Demaille <akim@epita.fr>
5336
5337 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5338 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5339 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5340 * src/closure.c (fderives): Be an array of bitsets.
5341
98254360
RA
53422002-02-28 Robert Anisko <robert@lrde.epita.fr>
5343
5344 * data/bison.c++: Merge the two generated headers. Insert a copyright
5345 notice in each output file.
5346
a75c057f
AD
53472002-02-28 Akim Demaille <akim@epita.fr>
5348
5349 * data/bison.c++: Copy the prologue of bison.simple to fetch
5350 useful M4 definitions, such as b4_header_guard.
5351
06b00abc
AD
53522002-02-25 Akim Demaille <akim@epita.fr>
5353
5354 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
5355 translator friendly scheme for the bgr
5356 copyright notice.
06b00abc 5357
70e7d534
AD
53582002-02-25 Akim Demaille <akim@epita.fr>
5359
5360 * src/output.c (header_output): Remove, now handled completely via
5361 M4.
5362
abe017f6
AD
53632002-02-25 Akim Demaille <akim@epita.fr>
5364
5365 * m4/m4.m4: New, from CVS Autoconf.
5366 * configure.in: Invoke it.
5367 * src/output.c (output_skeleton): Use its result instead of the
5368 hard coded name.
5369
381fb12e
AD
53702002-02-25 Akim Demaille <akim@epita.fr>
5371
5372 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5373 Fileutils 4.1.5.
5374 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5375 * src/output.c (output_skeleton): Use mkstemp to create a real
5376 temporary file.
5377 Move the filling of `skeleton' and its muscle to...
5378 (prepare): here.
5379 (output): Move the definition of the prologue muscle to...
5380 (prepare): here.
5381 * src/system.h (DEFAULT_TMPDIR): New.
5382
6f38107f
PE
53832002-02-14 Paul Eggert <eggert@twinsun.com>
5384
5385 Remove the support for C++ namespace cleanliness; it was
5386 causing more problems than it was curing, since it didn't work
5387 properly on some nonstandard C++ compilers. This can wait
5388 for a proper C++ parser.
5389
5390 * NEWS: Document this.
5391 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5392 of C++, as it's treated like C now.
5393 * src/bison.simple (YYSTD): Remove.
5394 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5395 Treat C++ just like Standard C instead of trying to support
5396 namespace cleanliness.
5397
80cce3da
AD
53982002-02-14 Akim Demaille <akim@epita.fr>
5399
5400 * tests/regression.at (else): Adjust to Andreas' change.
5401
842e8679
AD
54022002-02-14 Akim Demaille <akim@epita.fr>
5403
5404 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5405
4bda3f10
AD
54062002-02-13 Andreas Schwab <schwab@suse.de>
5407
5408 * src/output.c (output_rule_data): Don't output NULL, it might
5409 not be defined yet.
5410
4162fa07 54112002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 5412
4162fa07
RA
5413 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5414 (Copyright notice): Update.
b418ecd8 5415
bd16a5dc
AD
54162002-02-11 Akim Demaille <akim@epita.fr>
5417
5418 * tests/regression.at (%nonassoc and eof): Don't include
5419 nonportable headers.
5420
8d69a1a3
RA
54212002-02-08 Robert Anisko <robert@lrde.epita.fr>
5422
5423 * data/bison.c++: Correct error recovery. Make the user able to
5424 initialize the starting location.
5425
9b2d0677
AD
54262002-02-07 Akim Demaille <akim@epita.fr>
5427
5428 * tests/input.at: New.
5429
69e2658b
RA
54302002-02-07 Robert Anisko <robert@lrde.epita.fr>
5431
5432 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 5433 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
5434 directives around tables only needed for debugging.
5435
4aacc3a7
RA
54362002-02-07 Robert Anisko <robert@lrde.epita.fr>
5437
5438 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5439 C++ parsers.
5440 (yy::b4_name::parse): Use print_.
5441
762a801e
RA
54422002-02-07 Robert Anisko <robert@lrde.epita.fr>
5443
5444 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5445
4bb2bc3f
RA
54462002-02-07 Robert Anisko <robert@lrde.epita.fr>
5447
5448 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5449 C++ parsers.
5450 (yy::b4_name::parse): Build verbose error messages, and use error_.
5451
6b45a3ca
RA
54522002-02-06 Robert Anisko <robert@lrde.epita.fr>
5453
5454 * data/bison.c++: Fix m4 quoting in comments.
5455
50997c6e
RA
54562002-02-06 Robert Anisko <robert@lrde.epita.fr>
5457
5458 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5459 not expanded by m4.
5460
3f3eed27
AD
54612002-02-05 Akim Demaille <akim@epita.fr>
5462
5463 * data/bison.c++: Adjust to the M4 back end.
5464 More is certainly needed.
5465
be2a1a68
AD
54662002-02-05 Akim Demaille <akim@epita.fr>
5467
5468 Give a try to M4 as a back end.
5469
5470 * lib/readpipe.c: New, from wdiff.
5471 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5472 BISON_HAIRY.
5473 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5474 specific values. Now it is m4 that performs the lookup.
5475 * src/parse-skel.y: Remove.
5476 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5477 * src/output.c (actions_output, guards_output)
5478 (token_definitions_output): No longer keeps track of the output
5479 line number, hence remove the second argument.
5480 (guards_output): Check against the guard member of a rule, not the
5481 action member.
5482 Adjust callers.
5483 (output_skeleton): Don't look for the skeleton location, let m4 do
5484 that.
5485 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5486 file will be used.
5487 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5488 (prepare): Given that for the time being changesyntax is not
5489 usable in M4, rename the muscles using `-' to `_'.
5490 Define `defines_flag', `output_parser_name' and `output_header_name'.
5491 * src/output.h (actions_output, guards_output)
5492 (token_definitions_output): Adjust prototypes.
5493 * src/scan-skel.l: Instead of scanning the skeletons, it now
5494 processes the output of m4: `__oline__' and `#output'.
5495 * data/bison.simple: Adjust to be used by M4(sugar).
5496 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5497 to date.
5498 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5499 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5500 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5501 shamelessly stolen from CVS Autoconf.
5502
beda758b
AD
55032002-02-05 Akim Demaille <akim@epita.fr>
5504
5505 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5506 * configure.in: Check for the declarations of free and malloc.
5507 * src/muscle_tab.c: Adjust.
5508
5ece6d43
AD
55092002-02-05 Akim Demaille <akim@epita.fr>
5510
5511 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5512 which have no values.
5513
5bb18f9a
AD
55142002-02-05 Akim Demaille <akim@epita.fr>
5515
5516 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5517 * data/: here.
5518
894dd62e
PE
55192002-01-29 Paul Eggert <eggert@twinsun.com>
5520
5521 * src/bison.simple (YYSIZE_T): Do not define merely because
5522 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5523 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5524
82841af7
AD
55252002-01-27 Akim Demaille <akim@epita.fr>
5526
5527 Fix `%nonassoc and eof'.
5528
5529 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5530 which were not properly copied! Replace
5531 memcpy (res->errs, src->errs, src->nerrs);
5532 with
5533 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5534 !!!
5535 * tests/regression.at (%nonassoc and eof): Adjust to newest
5536 Autotest: `.' is not in the PATH.
5537
318b76e9
AD
55382002-01-27 Akim Demaille <akim@epita.fr>
5539
5540 * tests/sets.at (AT_EXTRACT_SETS): New.
5541 (Nullable): Use it.
5542 (Firsts): New.
5543
30d2f3d5
AD
55442002-01-26 Akim Demaille <akim@epita.fr>
5545
5546 * tests/actions.at, tests/calc.at, tests/headers.at,
5547 * tests/torture.at: Adjust to the newest Autotest which no longer
5548 forces `.' in the PATH.
5549
30f8c395
AD
55502002-01-25 Akim Demaille <akim@epita.fr>
5551
5552 * tests/regression.at (%nonassoc and eof): New.
5553 Suggested by Robert Anisko.
5554
29ae55f1
AD
55552002-01-24 Akim Demaille <akim@epita.fr>
5556
5557 Bison dumps core when trying to complain about broken input files.
5558 Reported by Cris van Pelt.
5559
5560 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5561 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5562 into...
5563 (Invalid inputs): Strengthen: exercise parse_percent_token.
5564
2b548aa6
RA
55652002-01-24 Robert Anisko <robert.anisko@epita.fr>
5566
5567 * src/Makefile.am: Add bison.c++.
5568 * src/bison.c++: New skeleton.
5569
bb0146c2
AD
55702002-01-21 Paolo Bonzini <bonzini@gnu.org>
5571
5572 * po/it.po: New.
5573
bec30531
AD
55742002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5575
5576 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5577
fc6edc45
MA
55782002-01-20 Marc Autret <marc@gnu.org>
5579
5580 * src/files.c (compute_output_file_names): Fix
5581
5e5d5415
MA
55822002-01-20 Marc Autret <marc@gnu.org>
5583
5584 * tests/output.at: New test.
5585 * src/files.c (compute_base_names): Don't map extensions when
5586 the YACC flag is set, use defaults.
5587 Reported by Evgeny Stambulchik.
5588
44ea3fbd
MA
55892002-01-20 Marc Autret <marc@gnu.org>
5590
bb0146c2 5591 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
5592 compilers as well (i.e. the vendor C compiler).
5593 Suggested by Albert Chin-A-Young.
5594
338963d1
TVH
55952002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5596
5597 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5598 canonical definition.
5599 * src/system.h: Use the canonical definition for PARAMS (avoids
5600 a conflict with the macro from lib/hash.h).
5601
c57b2479
AD
56022002-01-11 Akim Demaille <akim@epita.fr>
5603
5604 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 5605 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 5606
b85810ae
AD
56072002-01-09 Akim Demaille <akim@epita.fr>
5608
5609 * src/files.c, src/files.h (output_infix): New.
5610 (tab_extension): Remove.
5611 (compute_base_names): Compute the former, drop the latter.
5612 * src/output.c (prepare): Insert the muscles `output-infix', and
5613 `output-suffix'.
5614 * src/parse-skel.y (string, string.1): New.
5615 (section.header): Use it.
5616 (section.yacc): Remove.
5617 (prefix): Remove too.
5618 * src/scan-skel.l: Adjust.
5619 * src/bison.simple, src/bison.hairy: Adjust.
5620
cae60122
AD
56212002-01-09 Akim Demaille <akim@epita.fr>
5622
5623 * configure.in (WERROR_CFLAGS): Compute it.
5624 * src/Makefile.am (CFLAGS): Pass it.
5625 * tests/atlocal.in (CFLAGS): Idem.
5626 * src/files.c: Fix a few warnings.
5627 (get_extension_index): Remove, unused.
5628
ae404801
AD
56292002-01-08 Akim Demaille <akim@epita.fr>
5630
5631 * src/getargs.c (AS_FILE_NAME): New.
5632 (getargs): Use it to convert DOSish file names.
5633 * src/files.c (base_name): Rename as full_base_name to avoid
5634 clashes with `base_name ()'.
5635 (filename_split): New.
5636 (compute_base_names): N-th rewrite, using filename_split.
5637
22312b71
AD
56382002-01-08 Akim Demaille <akim@epita.fr>
5639
5640 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5641 New, stolen from the Fileutils 4.1.
5642 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5643 * configure.in: Check for the presence of memrchr, and of its
5644 prototype.
5645
a67cef01
TVH
56462002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5647
5648 * lib/hash.h (__P): Added definition for this macro.
5649 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5650 BUILT_SOURCES, to ensure they are generated first.
5651 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5652 %error-verbose to allow bootstrapping with bison 1.30x.
5653
2b25d624
AD
56542002-01-06 Akim Demaille <akim@epita.fr>
5655
5656 * src/reader.c (parse_braces): Don't fetch the next char, the
5657 convention is to fetch on entry.
5658 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5659 'switch' without a following semicolon.
5660 * tests/regression.at (braces parsing): New.
5661
3460813b
AD
56622002-01-06 Akim Demaille <akim@epita.fr>
5663
5664 Bison is dead wrong in its RR conflict reports.
5665
5666 * tests/torture.at (GNU Cim Grammar): New.
5667 * src/conflicts.c (count_rr_conflicts): Fix.
5668
73784c64
AD
56692002-01-06 Akim Demaille <akim@epita.fr>
5670
5671 Creating package.m4 from configure.ac causes too many problems.
5672
5673 * tests/Makefile.am (package.m4): Create it by hand,
5674 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5675
25d81090
AD
56762002-01-06 Akim Demaille <akim@epita.fr>
5677
5678 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5679 skeleton.h.
5680
a9b8959e
PE
56812002-01-04 Paul Eggert <eggert@twinsun.com>
5682
5683 * doc/bison.texinfo (Debugging):
5684 Remove YYSTDERR; it's no longer defined or used.
5685 Also, s/cstdio.h/cstdio/.
5686
25d81090
AD
56872002-01-03 Akim Demaille <akim@epita.fr>
5688
5689 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5690
1109455c
AD
56912002-01-03 Akim Demaille <akim@epita.fr>
5692
5693 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5694 tracing code to --trace, wait for a better --trace option, with
5695 args.
5696
7ea5e977
AD
56972002-01-03 Akim Demaille <akim@epita.fr>
5698
5699 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5700 The ISO C++ standard is extremely clear about it: stderr is
5701 considered a macro, not a regular symbol (see table 94 `Header
5702 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5703 Therefore std:: does not apply to it. It still does with fprintf.
5704 Also, s/cstdio.h/cstdio/.
5705
fab5b110
AD
57062002-01-03 Akim Demaille <akim@epita.fr>
5707
5708 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5709 for non system headers.
5710
aed7fd9b
AD
57112002-01-02 Akim Demaille <akim@epita.fr>
5712
5713 Equip the skeleton chain with location tracking, runtime trace,
5714 pure parser and scanner.
5715
5716 * src/parse-skel.y: Request a pure parser, locations, and prefix
5717 renaming.
5718 (%union): Having several members with the same type does not help
5719 type mismatches, simplify.
5720 (YYPRINT, yyprint): New.
5721 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5722 (skel_error): this.
5723 Handle locations.
5724 * src/scan-skel.l: Adjust to these changes.
5725 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5726 (LOCATION_PRINT, skel_control_t): New.
5727
24fad99e
AD
57282001-12-30 Akim Demaille <akim@epita.fr>
5729
5730 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5731 replace `gb' with BLANKS.
5732 * src/scan-skel.l: Adjust.
5733
a4b36db4
AD
57342001-12-30 Akim Demaille <akim@epita.fr>
5735
5736 * src/system.h: We don't need nor want bcopy.
5737 Throw away MS-DOS crap: we don't need getpid.
5738 * configure.in: We don't need strndup. It was even causing
5739 problems: because Flex includes the headers *before* us,
5740 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5741 not visible.
5742 * lib/xstrndup.c: New.
5743 * src/scan-skel.l: Use it.
5744 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5745 * src/parse-skel.y: Use %directives instead of #defines.
5746
1239777d
AD
57472001-12-30 Akim Demaille <akim@epita.fr>
5748
5749 * src/skeleton.h: New.
5750 * src/output.c (output_parser, output_master_parser): Remove, dead
5751 code.
5752 * src/output.h (get_lines_number, actions_output, guards_output)
5753 (token_definitions_output): Prototype them.
5754 * src/parse-skel.y: Add the license notice.
5755 Include output.h and skeleton.h.
5756 (process_skeleton): Returns void, and takes a single parameter.
5757 * src/scan-skel.l: Add the license notice.
5758 Include skeleton.h.
5759 Don't use %option yylineno: it seems that then Flex imagines
5760 REJECT has been used, and therefore it won't reallocate its
5761 buffers (which makes no other sense to me than a bug). It results
5762 in warnings for `unused: yy_flex_realloc'.
5763
9b3add5b
RA
57642001-12-30 Robert Anisko <robert.anisko@epita.fr>
5765
5766 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5767 (MUSCLE_INSERT_PREFIX): ...to there.
5768 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5769 (MUSCLE_INSERT_PREFIX): Move from here...
5770
5771 * src/bison.hairy: Add a section directive. Put braces around muscle
5772 names. This parser skeleton is still broken, but Bison should not
5773 choke on a bad muscle 'syntax'.
5774 * src/bison.simple: Add a section directive. Put braces around muscle
5775 names.
5776
5777 * src/files.h (strsuffix, stringappend): Add declarations.
5778 (tab_extension): Add declaration.
5779 (short_base_name): Add declaration.
5780
5781 * src/files.c (strsuffix, stringappend): No longer static. These
5782 functions are used in the skeleton parser.
5783 (tab_extension): New.
5784 (compute_base_names): Use the computations done in this function
fab5b110 5785 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
5786 names.
5787 (short_base_name): No longer static.
5788
5789 * src/output.c (output_skeleton): New.
5790 (output): Disable call to output_master_parser, and give a try to
5791 a new skeleton handling system.
5792 (guards_output, actions_output): No longer static.
5793 (token_definitions_output, get_lines_number): No longer static.
5794
5795 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5796
fab5b110 5797 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
5798 parse-skel.y.
5799
5800 * src/parse-skel.y: New file.
5801 * src/scan-skel.l: New file.
5802
b5b61c61
AD
58032001-12-29 Akim Demaille <akim@epita.fr>
5804
5805 %name-prefix is broken.
5806
5807 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5808 Adjust all dependencies.
5809 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5810 %name-prefix.
5811
5812 Renaming yylval but not yylloc is not consistent. Now we do.
5813
5814 * src/bison.simple: Prefix yylloc if used.
5815 * doc/bison.texinfo (Decl Summary): Document that.
5816
8c9a50be
AD
58172001-12-29 Akim Demaille <akim@epita.fr>
5818
5819 * doc/bison.texinfo: Promote `%long-directive' over
5820 `%long_directive'.
5821 Remove all references to fixed-output-files, yacc is enough.
5822
d99361e6
AD
58232001-12-29 Akim Demaille <akim@epita.fr>
5824
5825 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
5826 user prologue. These are defaults.
5827 * tests/actions.at (Mid-rule actions): Make sure the user can
5828 define YYDEBUG and YYERROR_VERBOSE.
5829
b9cecb91
AD
58302001-12-29 Akim Demaille <akim@epita.fr>
5831
5832 * src/output.c (header_output): Don't forget to export YYLTYPE and
5833 yylloc.
5834 * tests/headers.at (export YYLTYPE): New, make sure it does.
5835 * tests/regression.at (%union and --defines, Invalid CPP headers):
5836 Move to...
5837 * tests/headers.at: here.
5838
aea13e97
AD
58392001-12-29 Akim Demaille <akim@epita.fr>
5840
5841 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
5842
931394cb
AD
58432001-12-29 Akim Demaille <akim@epita.fr>
5844
5845 * tests/actions.at (Mid-rule actions): Output on a single line
5846 instead of several.
5847
704a47c4
AD
58482001-12-29 Akim Demaille <akim@epita.fr>
5849
5850 * doc/bison.texinfo: Formatting changes.
5851
091e20bb
AD
58522001-12-29 Akim Demaille <akim@epita.fr>
5853
5854 Don't store the token defs in a muscle, just be ready to output it
5855 on command. Now possible via `symbols'. Fixes a memory leak.
5856
5857 * src/output.c (token_definitions_output): New.
5858 (output_parser, header_output): Use it.
5859 * src/reader.c (symbols_save): Remove.
5860
cce71710
AD
58612001-12-29 Akim Demaille <akim@epita.fr>
5862
5863 * src/bison.simple: Do not provide a default for YYSTYPE and
5864 YYLTYPE before the user's prologue. Otherwise it's hardly... a
5865 default.
5866
82c035a8
AD
58672001-12-29 Akim Demaille <akim@epita.fr>
5868
5869 Mid-rule actions are simply... ignored!
5870
5871 * src/reader.c (readgram): Be sure to attach mid-rule actions to
5872 the empty-rule associated to the dummy symbol, not to the host
5873 rule.
5874 * tests/actions.at (Mid-rule actions): New.
5875
8419d367
AD
58762001-12-29 Akim Demaille <akim@epita.fr>
5877
5878 Memory leak.
5879
5880 * src/reader.c (reader): Free grammar.
5881
375d5806
AD
58822001-12-29 Akim Demaille <akim@epita.fr>
5883
5884 Memory leak.
5885
5886 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
5887 since it allocates it for each state, although only one is needed.
5888 (allocate_storage): Do it here.
5889
f51cb8ff
AD
58902001-12-29 Akim Demaille <akim@epita.fr>
5891
5892 * src/options.h, src/options.c (create_long_option_table): Rename
5893 as...
5894 (long_option_table_new): this, with a clearer prototype.
5895 (percent_table): Remove, unused,
5896 * src/getargs.c (getargs): Adjust.
5897
29e88316
AD
58982001-12-29 Akim Demaille <akim@epita.fr>
5899
5900 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
5901 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
5902 as states.
5903
b9f71f19
AD
59042001-12-29 Akim Demaille <akim@epita.fr>
5905
5906 * src/lalr.c (build_relations): Rename `states' as `states1'.
5907 Sorry, I don't understand exactly what it is, no better name...
5908
1a2b5d37
AD
59092001-12-29 Akim Demaille <akim@epita.fr>
5910
5911 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
5912 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
5913 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
5914 as rules.
5915
1cca533e
AD
59162001-12-29 Akim Demaille <akim@epita.fr>
5917
5918 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
5919 ago.
5920
c03ae966
AD
59212001-12-29 Akim Demaille <akim@epita.fr>
5922
5923 * src/reader.c, src/reader.h (user_toknums): Remove.
5924 Adjust all users to use symbols[i]->user_token_number.
5925
5a670b1e
AD
59262001-12-29 Akim Demaille <akim@epita.fr>
5927
5928 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
5929 Adjust all users to use symbols[i]->prec or ->assoc.
5930
ad949da9
AD
59312001-12-29 Akim Demaille <akim@epita.fr>
5932
5933 * src/reader.c, src/reader.h (tags): Remove.
5934 Adjust all users to use symbols[i]->tag.
5935
0e78e603
AD
59362001-12-29 Akim Demaille <akim@epita.fr>
5937
5938 * src/gram.h, src/gram.c (symbols): New, similar to state_table
5939 and rule_table.
5940 * src/reader.c (packsymbols): Fill this table.
5941 Drop sprec.
5942 * src/conflicts.c (resolve_sr_conflict): Adjust.
5943 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
5944 single table.
5945 Use symbols[i]->tag instead of tags[i].
5946
213e640e
AD
59472001-12-29 Akim Demaille <akim@epita.fr>
5948
5949 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
5950 In addition, put a comment in there, to replace...
5951 * tests/regression.at (%union and C comments): Remove.
5952
e7b8bef1
AD
59532001-12-29 Akim Demaille <akim@epita.fr>
5954
5955 * tests/regression.at (Web2c Actions): Blindly move the actual
5956 output as expected output. The contents *seem* right to me, but I
5957 can't pretend reading perfectly parser tables... Nonetheless, all
5958 the other tests pass correctly, the table look OK, even though the
5959 presence of `$axiom' is to be noted: AFAICS it is useless (but
5960 harmless).
5961
b68e7744
AD
59622001-12-29 Akim Demaille <akim@epita.fr>
5963
5964 * src/reader.c (readgram): Don't add the rule 0 if there were no
5965 rules read. In other words, add it _after_ having performed
5966 grammar sanity checks.
5967 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
5968
78d5bae9
AD
59692001-12-29 Akim Demaille <akim@epita.fr>
5970
5971 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
5972 visible, and some states have now a different number.
5973
ff442794
AD
59742001-12-29 Akim Demaille <akim@epita.fr>
5975
5976 * src/reader.c (readgram): Bind the initial rule's lineno to that
5977 of the first rule.
5978 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
5979 (Solved SR Conflicts): Adjust rule 0's line number.
5980
610ab194
AD
59812001-12-29 Akim Demaille <akim@epita.fr>
5982
5983 Fix the `GAWK Grammar' failure.
5984
5985 * src/LR0.c (final_state): Initialize to -1 so that we do compute
5986 the reductions of the first state which was mistakenly confused
5987 with the final state because precisely final_state was initialized
5988 to 0.
5989 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
5990 now noticed by Bison.
5991 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
5992 have a reduction on $default.
5993
29d29c8f
AD
59942001-12-29 Akim Demaille <akim@epita.fr>
5995
5996 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
5997 rule line numbers.
5998 * src/closure.c (print_closure): Likewise.
5999 * src/derives.c (print_derives): Likewise.
6000 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
6001 now.
6002
7c6b64d0
AD
60032001-12-29 Akim Demaille <akim@epita.fr>
6004
6005 * src/lalr.c (lookaheads_print): New.
6006 (lalr): Call it when --trace-flag.
6007 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
6008 are dumped.
6009
3d4daee3
AD
60102001-12-29 Akim Demaille <akim@epita.fr>
6011
6012 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
6013 when walking through ritem, even via rule->rhs.
6014 * src/reduce.c (dump_grammar, useful_production, reduce_output)
6015 (useful_production, useless_nonterminals): Likewise.
6016 (reduce_grammar_tables): Likewise, plus update nritems.
6017 * src/nullable.c (set_nullable): Likewise.
6018 * src/lalr.c (build_relations): Likewise.
6019 * tests/sets.at (Nullable): Adjust.
6020 Fortunately, now, the $axiom is no longer nullable.
6021
9e7f6bbd
AD
60222001-12-29 Akim Demaille <akim@epita.fr>
6023
6024 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6025 the 0-sentinel.
6026 * src/gram.c (ritem_longest_rhs): Likewise.
6027 * src/reduce.c (nonterminals_reduce): Likewise.
6028 * src/print_graph.c (print_graph): Likewise.
6029 * src/output.c (output_rule_data): Likewise.
6030 * src/nullable.c (set_nullable): Likewise.
6031
255ef638
AD
60322001-12-29 Akim Demaille <akim@epita.fr>
6033
6034 * src/output.c: Comment changes.
6035
0d8a7363
AD
60362001-12-27 Paul Eggert <eggert@twinsun.com>
6037
6038 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6039 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6040 Sparc, as they were causing more porting problems than the
6041 (minor) performance improvement was worth.
6042
6043 Also, catch up with 1.31's YYSTD.
6044
3db472b9
AD
60452001-12-27 Akim Demaille <akim@epita.fr>
6046
6047 * src/output.c (output_gram): Rely on nritems, not the
6048 0-sentinel. See below.
6049 Use -1 as separator, not 0.
6050 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6051 Rely on -1 as separator in yyrhs, instead of 0.
6052 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6053 twice `Now at end of input', therefore there are two lines less to
6054 expect.
6055
b365aa05
AD
60562001-12-27 Akim Demaille <akim@epita.fr>
6057
6058 * tests/regression.at (Unresolved SR Conflicts):
6059 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6060 below.
6061
30171f79
AD
60622001-12-27 Akim Demaille <akim@epita.fr>
6063
6064 * src/LR0.c (new_state): Recognize the final state by the fact it
6065 is reached by eoftoken.
6066 (insert_start_shifting_state, insert_eof_shifting_state)
6067 (insert_accepting_state, augment_automaton): Remove, since now
6068 these states are automatically computed from the initial state.
6069 (generate_states): Adjust.
6070 * src/print.c: When reporting a rule number to the user, substract
6071 1, so that the axiom rule is rule 0, and the first user rule is 1.
6072 * src/reduce.c: Likewise.
6073 * src/print_graph.c (print_core): For the time being, just as for
6074 the report, depend upon --trace-flags to dump the full set of
6075 items.
6076 * src/reader.c (readgram): Once the grammar read, insert the rule
6077 0: `$axiom: START-SYMBOL $'.
6078 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6079 number of the states has changed (the final state is no longer
6080 necessarily the last), catch up.
6081
75142d45
AD
60822001-12-27 Akim Demaille <akim@epita.fr>
6083
6084 Try to make the use of the eoftoken valid. Given that its value
6085 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6086 is used instead of > 0 where appropriate, (ii), depend upon nritems
6087 instead of the 0-sentinel.
6088
6089 * src/gram.h, src/gram.c (nritems): New.
6090 Expected to be duplication of nitems, but for the time being...
6091 * src/reader.c (packgram): Assert nritems and nitems are equal.
6092 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6093 * src/closure.c (print_closure, print_fderives): Likewise.
6094 * src/gram.c (ritem_print): Likewise.
6095 * src/print.c (print_core, print_grammar): Likewise.
6096 * src/print_graph.c: Likewise.
6097
b7c49edf
AD
60982001-12-27 Akim Demaille <akim@epita.fr>
6099
6100 * src/main.c (main): If there are complains after grammar
6101 reductions, then output the report anyway if requested, then die.
6102 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6103 * src/reader.c (eoftoken): New.
6104 (parse_token_decl): If the token being defined has value `0', it
6105 is the eoftoken.
6106 (packsymbols): No longer hack `tags' to insert `$' by hand.
6107 Be sure to preserve the value of the eoftoken.
6108 (reader): Make sure eoftoken is defined.
6109 Initialize nsyms to 0: now eoftoken is created just like the others.
6110 * src/print.c (print_grammar): Don't special case the eof token.
6111 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6112 lie anyway, albeit pleasant.
6113 * tests/calc.at: Exercise error messages with eoftoken.
6114 Change the grammar so that empty input is invalid.
6115 Adjust expectations.
6116 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6117
ec2da99f
AD
61182001-12-27 Akim Demaille <akim@epita.fr>
6119
6120 * configure.in: Check the protos of strchr ans strspn.
6121 Replace strchr if needed.
6122 * src/system.h: Provide the protos of strchr, strspn and memchr if
6123 missing.
6124 * lib/strchr.c: New.
6125 * src/reader.c (symbols_save): Use strchr.
6126
8adfa272
AD
61272001-12-27 Akim Demaille <akim@epita.fr>
6128
6129 * src/print.c, src/print_graph.c (escape): New.
6130 Use it to quote the TAGS outputs.
6131 * src/print_graph.c (print_state): Now errors are in red, and
6132 reductions in green.
6133 Prefer high to wide: output the state number on a line of its own.
6134
80dac38c
AD
61352001-12-27 Akim Demaille <akim@epita.fr>
6136
6137 * src/state.h, src/state.c (reductions_new): New.
6138 * src/LR0.c (set_state_table): Let all the states have a
6139 `reductions', even if reduced to 0.
6140 (save_reductions): Adjust.
6141 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6142 * src/print.c (print_reductions, print_actions): Adjust.
6143 * src/output.c (action_row): Adjust.
6144
2cec70b9
AD
61452001-12-27 Akim Demaille <akim@epita.fr>
6146
6147 * src/state.h, src/state.c (errs_new, errs_dup): New.
6148 * src/LR0.c (set_state_table): Let all the states have an errs,
6149 even if reduced to 0.
6150 * src/print.c (print_errs, print_reductions): Adjust.
6151 * src/output.c (output_actions, action_row): Adjust.
6152 * src/conflicts.c (resolve_sr_conflict): Adjust.
6153
13ca549a
AD
61542001-12-27 Akim Demaille <akim@epita.fr>
6155
6156 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6157
5092aba5
AD
61582001-12-27 Akim Demaille <akim@epita.fr>
6159
6160 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6161 * src/print.c: here.
6162 (lookaheadset, shiftset): New, used as additional storage by
6163 print_reductions.
6164 (print_results): Adjust.
6165 (print_shifts, print_gotos, print_errs): New, extracted from...
6166 (print_actions): here.
6167 * src/print_graph.c (print_actions): Remove dead code.
6168
11e2beca
AD
61692001-12-27 Akim Demaille <akim@epita.fr>
6170
6171 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6172 `$n' and `@n'.
6173
dac3c910
AD
61742001-12-27 Akim Demaille <akim@epita.fr>
6175
6176 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6177 (build_relations): Adjust.
6178
d0b0fefa
AD
61792001-12-27 Akim Demaille <akim@epita.fr>
6180
6181 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6182 duplication.
6183
adc8c848
AD
61842001-12-27 Akim Demaille <akim@epita.fr>
6185
6186 * src/reader.c (packgram): Catch nitems overflows.
6187
14d293ac
AD
61882001-12-27 Akim Demaille <akim@epita.fr>
6189
6190 * src/files.c, src/files.h (guard_obstack): Remove.
6191 * src/output.c (output): Adjust.
6192 * src/reader.c (parse_braces): New, factoring...
6193 (copy_action, copy_guard): these two which are renamed as...
6194 (parse_action, parse_guard): these.
6195 As a voluntary consequence, using braces around guards is now
6196 mandatory.
6197
f499b062
AD
61982001-12-27 Akim Demaille <akim@epita.fr>
6199
6200 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6201 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6202 members.
6203 (symbol_list_new): Adjust.
6204 (copy_action): action_line is the first line, not the last.
6205 (copy_guard): Just as for actions, store the `action' only, not
6206 the switch/case/break flesh.
6207 Don't parse the user action that might follow the guard, let...
6208 (readgram): do it, i.e., now, there can be an action after a
6209 guard.
6210 In other words the guard is just explicitly optional.
6211 (packgram): Adjust.
6212 * src/output.c (guards_output): New.
6213 (output_parser): Call it when needed.
6214 (output): Also free the guard and attrs obstacks.
6215 * src/files.c, src/files.h (obstack_save): Remove.
6216 (output_files): Remove.
6217 As a result, if one needs the former `.act' file, using an
6218 appropriate skeleton which requires actions and guards is now
6219 required.
6220 * src/main.c (main): Adjust.
6221 * tests/semantic.at: New.
6222 * tests/regression.at: Use `input.y' as input file name.
6223 Avoid 8+3 problems by requiring input.c when the test needs the
6224 parser.
6225
d945f5cd
AD
62262001-12-27 Akim Demaille <akim@epita.fr>
6227
6228 * src/reader.c (symbol_list_new): Be sure to initialize all the
6229 fields.
6230
d200e455
AD
62312001-12-27 Akim Demaille <akim@epita.fr>
6232
6233 All the hacks using a final pseudo state are now useless.
6234
6235 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6236 * src/lalr.c (nLA): New.
6237 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6238 instead of lookaheadsp from the pseudo state (nstate + 1).
6239
f9507c28
AD
62402001-12-27 Akim Demaille <akim@epita.fr>
6241
6242 * src/output.c (action_row, token_actions): Use a state_t instead
6243 of a integer, and nlookaheads instead of the following state's
6244 lookaheadsp.
6245
065fbd27
AD
62462001-12-27 Akim Demaille <akim@epita.fr>
6247
6248 * src/conflicts.c (log_resolution, flush_shift)
6249 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6250 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6251 (conflicts_print, print_reductions): Use a state_t instead of an
6252 integer when referring to a state.
6253 As much as possible, depend upon nlookaheads, instead of the
6254 `lookaheadsp' member of the following state (since lookaheads of
6255 successive states are successive, the difference between state n + 1
6256 and n served as the number of lookaheads for state n).
6257 * src/lalr.c (add_lookback_edge): Likewise.
6258 * src/print.c (print_core, print_actions, print_state)
6259 (print_results): Likewise.
6260 * src/print_graph.c (print_core, print_actions, print_state)
6261 (print_graph): Likewise.
6262 * src/conflicts.h: Adjust.
6263
1b177bd7
AD
62642001-12-27 Akim Demaille <akim@epita.fr>
6265
6266 * src/bison.hairy: Formatting/comment changes.
6267 ANSIfy.
6268 Remove `register' indications.
6269 Add plenty of `static'.
6270
7742ddeb
AD
62712001-12-27 Akim Demaille <akim@epita.fr>
6272
6273 * src/output.c (prepare): Drop the muscle `ntbase' which
6274 duplicates ntokens.
6275 * src/bison.simple: Formatting/comment changes.
6276 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6277 is an undocumented synonym.
6278
1fa14068
AD
62792001-12-22 Akim Demaille <akim@epita.fr>
6280
6281 * src/output.c (output_table_data): Change the prototype to use
6282 `int' for array ranges: some invocations do pass an int, not a
6283 short.
6284 Reported by Wayne Green.
6285
b9752825
AD
62862001-12-22 Akim Demaille <akim@epita.fr>
6287
6288 Some actions of web2c.y are improperly triggered.
6289 Reported by Mike Castle.
6290
6291 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6292 * tests/regression.at (Web2c): Rename as...
6293 (Web2c Report): this.
6294 (Web2c Actions): New.
6295
776209d6
AD
62962001-12-22 Akim Demaille <akim@epita.fr>
6297
6298 Reductions in web2c.y are improperly reported.
6299 Reported by Mike Castle.
6300
6301 * src/conflicts.c (print_reductions): Fix.
6302 * tests/regression.at (Web2c): New.
6303
275fc3ad
AD
63042001-12-18 Akim Demaille <akim@epita.fr>
6305
6306 Some host fail on `assert (!"foo")', which expands to
6307 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6308 Reported by Nelson Beebee.
6309
6310 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6311 `#define it_succeeded 0' and `assert (it_succeeded)'.
6312
897668ee
MA
63132001-12-17 Marc Autret <autret_m@epita.fr>
6314
6315 * src/bison.simple: Don't hard code the skeleton line and filename.
6316 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6317 New line counter 'skeleton_line' (skeleton-line muscle).
6318
ab3399e0
PE
63192001-12-17 Paul Eggert <eggert@twinsun.com>
6320
6321 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6322 YYDEBUG must be defined to a nonzero value.
6323
6324 * src/bison.simple (yytname): Do not assume that the user defines
6325 YYDEBUG to a properly parenthesized expression.
6326
3877f72b
AD
63272001-12-17 Akim Demaille <akim@epita.fr>
6328
6329 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6330 nlookaheads is a new member.
6331 Adjust all users.
6332 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6333 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6334 state.
776209d6 6335
331dbc1b
AD
63362001-12-17 Akim Demaille <akim@epita.fr>
6337
6338 * src/files.h, src/files.c (open_files, close_files): Remove.
6339 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6340 let...
6341 * src/reader.c (reader): Do it.
776209d6 6342
be750e4c
AD
63432001-12-17 Akim Demaille <akim@epita.fr>
6344
6345 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 6346
709ae8c6
AD
63472001-12-17 Akim Demaille <akim@epita.fr>
6348
6349 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6350 (flush_reduce): New.
6351 (resolve_sr_conflict): Adjust.
776209d6 6352
f87685c3
AD
63532001-12-17 Akim Demaille <akim@epita.fr>
6354
6355 * src/output.c (output_obstack): Be static and rename as...
6356 (format_obstack): this, to avoid any confusion with files.c's
6357 output_obstack.
6358 * src/reader.h (muscle_obstack): Move to...
6359 * src/output.h: here, since it's defined in output.c.
6360
837491d8
AD
63612001-12-17 Akim Demaille <akim@epita.fr>
6362
6363 * src/output.c (action_row, save_column, default_goto)
6364 (sort_actions, matching_state, pack_vector): Better variable
6365 locality.
6366
796d61fb
AD
63672001-12-17 Akim Demaille <akim@epita.fr>
6368
6369 * src/output.c: Various formatting changes.
776209d6 6370
64d15509
AD
63712001-12-17 Akim Demaille <akim@epita.fr>
6372
6373 * src/files.c (output_files): Free the output_obstack.
6374 * src/main.c (main): Call print and print_graph conditionally.
6375 * src/print.c (print): Work unconditionally.
6376 * src/print_graph.c (print_graph): Work unconditionally.
6377 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6378
fbc8ecb7
MA
63792001-12-16 Marc Autret <autret_m@epita.fr>
6380
6381 * src/output.c (actions_output): Fix. When we use %no-lines,
6382 there is one less line per action.
6383
f0440388
MA
63842001-12-16 Marc Autret <autret_m@epita.fr>
6385
6386 * src/bison.simple: Remove a useless #line directive.
6387 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6388 * src/output.c (get_lines_number): New.
776209d6 6389 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
6390 output muscles.
6391 Fix line numbering.
6392 (actions_output): Computes the number of lines taken by actions.
6393 (output_master_parser): Insert new skeleton which is the name of
6394 the output parser file name.
6395
a79986b8
MA
63962001-12-15 Marc Autret <autret_m@epita.fr>
6397
6398 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6399
4ec8e00f
MA
64002001-12-15 Marc Autret <autret_m@epita.fr>
6401
6402 * src/output.c (output_gram): Keep track of the hairy one.
6403
1a4648ff
AD
64042001-12-15 Akim Demaille <akim@epita.fr>
6405
6406 Make `make distcheck' work.
6407
6408 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6409 system.h which uses libgettext.h.
6410
9c2c67e6
AD
64112001-12-15 Akim Demaille <akim@epita.fr>
6412
6413 * src/nullable.c (set_nullable): Useless rules must be skipped,
6414 otherwise, since we range over their symbols, we might look at a
6415 nonterminal which no longer ``exists'', i.e., it is not counted in
6416 `nvars', hence we overflow our arrays.
6417
93ede233
AD
64182001-12-15 Akim Demaille <akim@epita.fr>
6419
6420 The header can also be produced directly, without any obstack!
6421 Yahoo!
6422
6423 * src/files.c, src/files.h (defines_obstack): Remove.
6424 (compute_header_macro): Global.
6425 (defines_obstack_save): Remove.
6426 * src/reader.c (parse_union_decl): No longer output to
6427 defines_obstack: its content can be found in the `stype' muscle
6428 anyway.
6429 (output_token_translations): Merge into...
6430 (symbols_output): this.
6431 Rename as...
6432 (symbols_save): this.
6433 (reader): Adjust.
6434 * src/output.c (header_output): New.
6435 (output): Call it.
6436
2666f928
AD
64372001-12-15 Akim Demaille <akim@epita.fr>
6438
6439 * src/reader.c (parse_union_decl): Instead of handling two obstack
6440 simultaneously, use one to define the `stype' muscle, and use the
6441 value of the latter to fill defines_obstack.
6442 (copy_comment): Remove.
6443 (copy_comment2): Work for a single obstack.
6444 Rename as...
6445 (copy_comment): this.
6446
428046f8
AD
64472001-12-15 Akim Demaille <akim@epita.fr>
6448
6449 * src/lex.c, src/lex.h (xgetc): No longer static.
6450 * src/reader.c (parse_union_decl): Revamp.
6451
ea52d706
AD
64522001-12-15 Akim Demaille <akim@epita.fr>
6453
6454 Still making progress in separating Bison into (i) input, (ii)
6455 process, (iii) output: now we can directly output the parser file
6456 without using table_obstack at all.
6457
6458 * src/files.c, src/files.h (table_obstack): Bye bye.
6459 (parser_file_name): New.
6460 * src/files.c (compute_output_file_names): Compute it.
6461 * src/output.c (actions_output, output_parser)
6462 (output_master_parser): To a file instead of an obstack.
6463
3f96f4dc
AD
64642001-12-15 Akim Demaille <akim@epita.fr>
6465
6466 Attach actions to rules, instead of pre-outputting them to
6467 actions_obstack.
6468
6469 * src/gram.h (rule_t): action and action_line are new members.
6470 * src/reader.c (symbol_list): Likewise.
6471 (copy_action): Save the actions within the rule.
6472 (packgram): Save them in rule_table.
6473 * src/output.c (actions_output): New.
6474 (output_parser): Use it on `%%actions'.
6475 (output_rule_data): Don't free rule_table.
6476 (output): Do it.
6477 (prepare): Don't save the `action' muscle.
6478 * src/bison.simple: s/%%action/%%actions/.
6479
51576fb3
AD
64802001-12-15 Akim Demaille <akim@epita.fr>
6481
6482 * src/reader.c (copy_action): When --yacc, don't append a `;'
6483 to the user action: let it fail if lacking.
dee049eb 6484 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 6485
2648a72d
AD
64862001-12-14 Akim Demaille <akim@epita.fr>
6487
6488 * src/lex.c (literalchar): Simply return the char you decoded, non
6489 longer mess around with obstacks and int pointers.
6490 Adjust all callers.
6491
92790e5b
AD
64922001-12-14 Akim Demaille <akim@epita.fr>
6493
6494 * src/lex.c (literalchar): Don't escape the special characters,
6495 just decode them, and keep them as char (before, eol was output as
6496 the 2 char string `\n' etc.).
6497 * src/output.c (output_rule_data): Use quotearg to output the
6498 token strings.
6499
927c1557
PE
65002001-12-13 Paul Eggert <eggert@twinsun.com>
6501
6502 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6503 Do not infringe on the global user namespace when using C++.
6504 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6505 All uses of `fprintf' and `stderr' changed.
6506
6507 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6508
ed8e1f68
AD
65092001-12-13 Akim Demaille <akim@epita.fr>
6510
6511 The computation of nullable is broken: it doesn't handle empty
6512 RHS's properly.
6513
6514 * tests/torture.at (GNU AWK Grammar): New.
6515 * tests/sets.at (Nullable): New.
6516 * src/nullable.c (set_nullable): Instead of blindly looping over
6517 `ritems', loop over the rules, and then over their rhs's.
6518
6519 Work around Autotest bugs.
6520
6521 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6522 frame, because Autotest understand lines starting with a `+' as
6523 traces from the shell. Then, they are not processed properly.
6524 Admittedly an Autotest bug, but we don't have time to wait for
6525 Autotest to catch up.
6526 * tests/regression.at (Broken Closure): Adjust to the new table
6527 frames.
6528 Move to...
6529 * tests/sets.at: here.
6530
cb581495
AD
65312001-12-13 Akim Demaille <akim@epita.fr>
6532
6533 * src/closure.c (closure): Use nrules instead of playing tricks
6534 with BITS_PER_WORD.
6535
2e729273
AD
65362001-12-13 Akim Demaille <akim@epita.fr>
6537
6538 * src/print.c (print_actions): Output the handling of `$' as the
6539 traces do: shifting the token EOF. Before EOF was treated as a
6540 nonterminal.
6541 * tests/regression.at: Adjust some tests.
6542 * src/print_graph.c (print_core): Complete the set of items via
6543 closure. The next-to-final and final states are still unsatisfying,
6544 but that's to be addressed elsewhere.
6545 No longer output the rule numbers, but do output the state number.
6546 A single loop for the shifts + gotos is enough, but picked a
6547 distinct color for each.
6548 (print_graph): Initialize and finalize closure.
6549
107f7dfb
AD
65502001-12-13 Akim Demaille <akim@epita.fr>
6551
6552 * src/reader.c (readgram): Remove dead code, an strip useless
6553 braces.
6554 (get_type): Remove, unused.
6555
9b53a24f
AD
65562001-12-12 Akim Demaille <akim@epita.fr>
6557
6558 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6559 on that of lib/error.c.
6560
dbfb6dcd
AD
65612001-12-12 Akim Demaille <akim@epita.fr>
6562
6563 Some hosts don't like `/' in includes.
6564
6565 * src/system.h: Include libgettext.h without qualifying the path.
6566 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6567 $(top_srcdir).
6568
c25fb648
MA
65692001-12-11 Marc Autret <autret_m@epita.fr>
6570
6571 * src/output.c (output_parser): Remove useless muscle.
6572
710ddc4f
MA
65732001-12-11 Marc Autret <autret_m@epita.fr>
6574
6575 * src/bison.simple: Remove #line just before %%epilogue. It
6576 is now handled in ...
6577 * src/reader.c (read_additionnal_code): Add the output of a
6578 #line for the epilogue.
6579
e83d80b8
MA
65802001-12-10 Marc Autret <autret_m@epita.fr>
6581
927c1557 6582 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
6583 replace precedent remove.
6584 * src/bison.simple: Remove #line before %%prologue because
6585 %%input-line is wrong at this time.
6586
971d5158
MA
65872001-12-10 Marc Autret <autret_m@epita.fr>
6588
6589 * src/reader.c (symbols_output): Clean up.
927c1557 6590 * src/output.c (output_gram, output): Clean up.
971d5158 6591
5edafffd
AD
65922001-12-10 Akim Demaille <akim@epita.fr>
6593
6594 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6595 * src/LR0.c (set_state_table): here.
6596 * src/lalr.c (lalr): Call it.
6597
0279f8e9
AD
65982001-12-10 Akim Demaille <akim@epita.fr>
6599
6600 * src/state.h (shifts): Remove the `number' member: shifts are
6601 attached to state, hence no longer need to be labelled with a
6602 state number.
6603
190c4f5f
AD
66042001-12-10 Akim Demaille <akim@epita.fr>
6605
6606 Now that states have a complete set of members, the linked list of
6607 shifts is useless: just fill directly the state's shifts member.
6608
6609 * src/state.h (shifts): Remove the `next' member.
6610 * src/LR0.c (first_state, last_state): Remove.
6611 Adjust the callers.
6612 (augment_automaton): Don't look for the shifts that must be added
6613 a shift on EOF: it is those of the state we looked for! But now,
6614 since shifts are attached, it is no longer needed to looking
6615 merely by its id: its number.
6616
2a73b93d
AD
66172001-12-10 Akim Demaille <akim@epita.fr>
6618
6619 * src/LR0.c (augment_automaton): Better variable locality.
6620 Remove an impossible branch: if there is a state corresponding to
6621 the start symbol being shifted, then there is shift for the start
6622 symbol from the initial state.
6623
74392f6a
AD
66242001-12-10 Akim Demaille <akim@epita.fr>
6625
6626 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6627 only when appropriate: when insert_start_shifting_state' is not
6628 invoked.
6629 * tests/regression.at (Rule Line Numbers): Adjust.
6630
37c82725
AD
66312001-12-10 Akim Demaille <akim@epita.fr>
6632
6633 * src/LR0.c (augment_automaton): Now that all states have shifts,
6634 merge the two cases addition shifts to the initial state.
6635
6a164e0c
AD
66362001-12-10 Akim Demaille <akim@epita.fr>
6637
6638 * src/lalr.c (set_state_table): Move to...
6639 * src/LR0.c: here.
6640 * src/lalr.c (lalr): Don't call it...
6641 * src/LR0.c (generate_states): do it.
6642 * src/LR0.h (first_state): Remove, only the table is used.
6643
7215de24
AD
66442001-12-10 Akim Demaille <akim@epita.fr>
6645
6646 * src/LR0.h (first_shift, first_reduction): Remove.
6647 * src/lalr.c: Don't use first_shift: find shifts through the
6648 states.
6649
80e25d4d
AD
66502001-12-10 Akim Demaille <akim@epita.fr>
6651
6652 * src/LR0.c: Attach shifts to states as soon as they are
6653 computed.
6654 * src/lalr.c (set_state_table): Instead of assigning shifts to
6655 state, just assert that the mapping was properly done.
6656
0ab3728b
AD
66572001-12-10 Akim Demaille <akim@epita.fr>
6658
6659 * src/LR0.c (insert_start_shift): Rename as...
6660 (insert_start_shifting_state): this.
6661 (insert_eof_shifting_state, insert_accepting_state): New.
6662 (augment_automaton): Adjust.
6663 Better locality of the variables.
6664 When looking if the start_symbol is shifted from the initial
6665 state, using `while (... symbol != start_symbol ...)' sounds
6666 better than `while (... symbol < start_symbol ...)': If fail
6667 to see how the order between symbols could be relevant!
6668
78af9bbc
AD
66692001-12-10 Akim Demaille <akim@epita.fr>
6670
6671 * src/getargs.h: Don't declare `spec_name_prefix' and
6672 `spec_file_prefix', declared by src/files.h.
6673 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6674 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6675 * src/output.c (prepare): Adjust.
6676 * src/reader.c (symbols_output): Likewise.
6677 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6678
bdef2a41
AD
66792001-12-10 Akim Demaille <akim@epita.fr>
6680
6681 * src/muscle_tab.c (muscle_init): NULL is a better default than
6682 `"0"'.
6683
3735969c
AD
66842001-12-10 Akim Demaille <akim@epita.fr>
6685
6686 * src/reader.c (reader): Calling symbols_output once is enough.
6687
49701457
AD
66882001-12-10 Akim Demaille <akim@epita.fr>
6689
6690 Now that states have a complete set of members, the linked list of
6691 reductions is useless: just fill directly the state's reductions
6692 member.
6693
6694 * src/state.h (struct reductions): Remove member `number' and
6695 `next'.
6696 * src/LR0.c (first_reduction, last_reduction): Remove.
6697 (save_reductions): Don't link the new reductions, store them in
6698 this_state.
6699 * src/lalr.c (set_state_table): No need to attach reductions to
6700 states, it's already done.
6701 * src/output.c (output_actions): No longer free the shifts, then
6702 the reductions, then the states: free all the states and their
6703 members.
6704
0edad749
AD
67052001-12-10 Akim Demaille <akim@epita.fr>
6706
6707 * src/options.c (OPTN, DRTV, BOTH): New.
6708 (option_table): Use them.
6709
0edad749
AD
6710 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6711 the job of system.h.
6712 * src/options.c: Don't include stdio.h and xalloc.h for the same
6713 reasons.
6714
5449dd0f
AD
67152001-12-10 Akim Demaille <akim@epita.fr>
6716
6717 * src/output.c (output, prepare): Make sure the values of the
6718 muscles `action' and `prologue' are 0-terminated.
6719
a870c567
AD
67202001-12-10 Akim Demaille <akim@epita.fr>
6721
6722 Clean up GCC warnings.
6723
6724 * src/reader.c (copy_action): `buf' is not used.
6725 (parse_skel_decl): Be static.
6726 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6727 * src/options.h (create_long_option_table): Have a real prototype.
6728 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6729 (hash_delete_at): Return const void *.
6730 Adjust casts to preserve the const.
6731
80df8768
AD
67322001-12-10 Akim Demaille <akim@epita.fr>
6733
6734 * configure.in: Require 2.52g.
6735 M4 is not needed, but AUTOM4TE is.
6736 * m4/m4.m4: Remove.
6737 * tests/Makefile.am: Adjust.
6738
f693ad14
AD
67392001-12-10 Akim Demaille <akim@epita.fr>
6740
6741 One structure for states is enough, even though theoretically
6742 there are LR(0) states and LALR(1) states.
6743
6744 * src/lalr.h (state_t): Remove.
6745 (state_table): Be state_t **, not state_t *.
6746 * src/state.h (core, CORE_ALLOC): Rename as...
6747 (state_t, STATE_ALLOC): this.
6748 Add the LALR(1) members: shifts, reductions, errs.
6749 * src/LR0.c (state_table): Rename as...
6750 (state_hash): this, to avoid name clashes with the global
6751 `state_table'.
6752 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6753 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6754
74ffbcb6
AD
67552001-12-10 Akim Demaille <akim@epita.fr>
6756
6757 Bison dumps core on bash.y.
6758 Reported by Pascal Bart.
6759
6760 * src/warshall.c (bitmatrix_print): New.
6761 (TC): Use it.
6762 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6763 j must be the outer loop.
6764 * tests/regression.at (Broken Closure): New.
6765
07708e19
AD
67662001-12-05 Akim Demaille <akim@epita.fr>
6767
6768 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6769 its argument.
ba1ecc07 6770 Reported by Peter Hamorsky.
07708e19 6771
92b16366
AD
67722001-12-05 Akim Demaille <akim@epita.fr>
6773
6774 * src/conflicts.c (err_table): Remove.
6775 (resolve_sr_conflict): Adjust.
6776 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
6777 Rename as...
6778 (state_t.reductions, state_t.shifts): this.
6779
076ab033
AD
67802001-12-05 Akim Demaille <akim@epita.fr>
6781
6782 * src/reduce.c (reduce_grammar_tables): No longer disable the
6783 removal of useless rules via CPP but via `if (0)', so that the
6784 compiler still check the code is valid.
6785 For instance, it should have noticed `rline' no longer exists: use
6786 the `line' member of rule_t.
6787 * src/gram.c (dummy, rline): Remove, unused.
6788
3843c413
AD
67892001-12-05 Akim Demaille <akim@epita.fr>
6790
6791 * src/output.c (pack_vector): Use assert, not berror.
6792 * src/main.c (berror): Remove, unused.
6793
43168960
AD
67942001-12-05 Akim Demaille <akim@epita.fr>
6795
6796 New experimental feature: if --verbose --trace output all the
6797 items of a state, not only its kernel.
6798
6799 * src/print.c (print_core): If `trace_flag', then invoke closure
6800 before outputting the items of the state (print_core is no longer
6801 a correct name them).
6802 (print_results): Invoke new_closure/free_closure if needed.
6803
b2872512
AD
68042001-12-05 Akim Demaille <akim@epita.fr>
6805
6806 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
6807 * src/closure.c, src/closure.h (itemsetsize): Rename as...
6808 (nitemset): for consistency with the rest of the project.
6809
23cbcc6c
AD
68102001-12-05 Akim Demaille <akim@epita.fr>
6811
6812 * src/closure.c (print_closure): Improve.
6813 (closure): Use it for printing input and output.
6814
03ec521c
AD
68152001-12-05 Akim Demaille <akim@epita.fr>
6816
6817 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6818 indexed by nonterminals.
6819
3a7456dd
AD
68202001-12-05 Akim Demaille <akim@epita.fr>
6821
6822 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
6823 what it was!).
6824 * src/warshall.h: Remove accidental duplication of the content.
6825
1cbcf2e7
AD
68262001-12-05 Akim Demaille <akim@epita.fr>
6827
6828 * src/closure.c (set_fderives): De-obfuscate.
6829
84182270
AD
68302001-12-05 Akim Demaille <akim@epita.fr>
6831
6832 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
6833
3f6f053c
AD
68342001-12-05 Akim Demaille <akim@epita.fr>
6835
6836 * src/closure.c (set_firsts): De-obfuscate.
6837
7a5350ba
AD
68382001-12-05 Akim Demaille <akim@epita.fr>
6839
6840 * src/output.c (action_row): De-obfuscate
6841 using the good o' techniques: arrays not pointers, variable
6842 locality, BITISSET, RESETBIT etc.
6843
d954473d
AD
68442001-12-05 Akim Demaille <akim@epita.fr>
6845
6846 Pessimize the code to simplify it: from now on, all the states
6847 have a valid SHIFTS, which NSHIFTS is possibly 0.
6848
6849 * src/LR0.c (shifts_new): Be global and move to..
6850 * src/state.c, src/state.h: here.
6851 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
6852 * src/print_graph: Adjust.
6853
9839bbe5
AD
68542001-12-05 Akim Demaille <akim@epita.fr>
6855
6856 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
6857 * src/conflicts.c: Use it.
6858 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
6859 incorrectly ``simplified''.
6860
9f136c07
AD
68612001-12-05 Akim Demaille <akim@epita.fr>
6862
6863 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
6864 using the good o' techniques: arrays not pointers, variable
6865 locality, BITISSET, RESETBIT etc.
6866
b608206e
AD
68672001-12-05 Akim Demaille <akim@epita.fr>
6868
6869 * src/state.h (SHIFT_SYMBOL): New.
6870 * src/conflicts.c: Use it to deobfuscate.
6871
52afa962
AD
68722001-12-05 Akim Demaille <akim@epita.fr>
6873
6874 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
6875 (print_reductions): De-obfuscate using the good o' techniques:
6876 arrays not pointers, variable locality, BITISSET.
6877
e74dc321
AD
68782001-12-05 Akim Demaille <akim@epita.fr>
6879
6880 * src/conflicts.c (print_reductions): Arrays, not pointers.
6881 Use BITISSET.
6882
768fca83
AD
68832001-12-05 Akim Demaille <akim@epita.fr>
6884
6885 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6886
a17e599f
AD
68872001-12-05 Akim Demaille <akim@epita.fr>
6888
6889 * src/conflicts.c (print_reductions): Improve variable locality.
6890
a04bc341
AD
68912001-12-05 Akim Demaille <akim@epita.fr>
6892
6893 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6894
c8ea038e
AD
68952001-12-05 Akim Demaille <akim@epita.fr>
6896
6897 * src/conflicts.c (print_reductions): Improve variable locality.
6898
aa2aab3c
AD
68992001-12-05 Akim Demaille <akim@epita.fr>
6900
6901 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
6902 * src/lalr.c: Use them.
6903
b178c8cc
AD
69042001-12-05 Akim Demaille <akim@epita.fr>
6905
6906 * src/LR0.c (augment_automaton): Formatting changes.
6907 Better variable locality.
6908
f67d13aa
AD
69092001-12-05 Akim Demaille <akim@epita.fr>
6910
6911 * src/lalr.c (matrix_print): New.
6912 (transpose): Use it.
6913 Use arrays instead of pointers.
6914
c2713865
AD
69152001-12-05 Akim Demaille <akim@epita.fr>
6916
6917 * src/lalr.c (maxrhs): Move to...
6918 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
6919 * src/lalr.c (build_relations): Adjust.
6920
9887c18a
AD
69212001-12-05 Akim Demaille <akim@epita.fr>
6922
6923 * src/lalr.c (transpose): Free the memory allocated to the
6924 argument, as it is replaced by the results by the unique caller.
6925 (build_relations): Merely invoke transpose: it handles the memory
6926 deallocation.
6927 Improve variable locality.
6928 Avoid variables used as mere abbreviations.
6929 (compute_lookaheads): Use arrays instead of pointers.
6930
4d4f699c
AD
69312001-12-05 Akim Demaille <akim@epita.fr>
6932
6933 * src/lalr.c (initialize_F): Improve variable locality.
6934 Avoid variables used as mere abbreviations.
6935
80a69750
AD
69362001-12-05 Akim Demaille <akim@epita.fr>
6937
6938 * src/derives.c (print_derives): Display the ruleno.
6939 * src/lalr.c (initialize_F, transpose): Better variable locality
6940 to improve readability.
6941 Avoid variables used as mere abbreviations.
6942
fe961097
AD
69432001-12-05 Akim Demaille <akim@epita.fr>
6944
6945 * src/lalr.c (traverse): Use arrays instead of pointers.
6946
e3e4e814
AD
69472001-12-05 Akim Demaille <akim@epita.fr>
6948
6949 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
6950 the handling of squeue.
6951 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6952
630e182b
AD
69532001-12-05 Akim Demaille <akim@epita.fr>
6954
6955 Because useless nonterminals are now kept alive (instead of being
6956 `destroyed'), we now sometimes examine them, and store information
6957 related to them. Hence we need to know their number, and adjust
6958 memory allocations.
6959
6960 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
6961 static.
6962 * src/LR0.c (allocate_itemsets): The memory allocated to
6963 `symbol_count' was used for two different purpose: once to count
6964 the number of occurrences of each symbol, and later reassigned to
6965 `shift_symbol', containing the symbol that can be shifted from a
6966 given state.
6967 Deobfuscate, i.e., allocate, use and free `symbol_count' here
6968 only, and...
6969 (new_itemsets): Allocate `shift_symbol' here.
6970 (allocate_itemsets): symbol_count includes useless nonterminals.
6971 Make room for them.
6972 (free_storage): Use `free', not `XFREE', for pointers that cannot
6973 be null.
6974
81b51460
AD
69752001-12-05 Akim Demaille <akim@epita.fr>
6976
6977 * src/nullable.c (set_nullable): Deobfuscate the handling of
6978 ritem.
6979 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6980
3067fbef
AD
69812001-12-05 Akim Demaille <akim@epita.fr>
6982
6983 * src/gram.c, src/gram.h (ritem_print): New.
6984 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
6985 (This useless function was defined only to work around VMS linkers
6986 that can't handle compilation units with variables only).
6987 * src/reduce.c (dump_grammar): Use it to trace the construction of
6988 ritem.
6989
c2bea5f9
PE
69902001-12-04 Paul Eggert <eggert@twinsun.com>
6991
7d27c823
PE
6992 * src/bison.simple (union yyalloc): Change member names
6993 to be the same as the stack names.
6994 (yyparse): yyptr is now union yyalloc *, not char *.
6995 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
6996 and may generate better code on some machines.
c2bea5f9
PE
6997 (yystpcpy): Use prototype if __STDC__ is defined, not just
6998 if __cplusplus is defined.
35687a9d 6999
2c8a9dfa
AD
70002001-11-30 Akim Demaille <akim@epita.fr>
7001
7002 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
7003 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
7004 Gettext doesn't compile cleanly, and dies with -Werror.
7005 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
7006 Include WARNING_CFLAGS here.
7007 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
7008 before being defined.
7009
f4e421e6
AD
70102001-11-27 Paul Eggert <eggert@twinsun.com>
7011
7012 * lib/quotearg.h (quotearg_n, quotearg_n_style):
7013 First arg is int, not unsigned.
7014 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
7015 (SIZE_MAX, UINT_MAX): New macros.
7016 (quotearg_n_options): Abort if N is negative.
7017 Avoid overflow check on hosts where size_t is 64 bits and int
7018 is 32 bits, as overflow is impossible there.
7019 Fix off-by-one typo that caused unnecessary reallocation.
7020
7093d0f5
AD
70212001-11-29 Paul Eggert <eggert@twinsun.com>
7022
7023 Name space cleanup in generated parser.
7024
7025 * doc/bison.texinfo (Bison Parser): Discuss system headers
7026 and their effect on the user name space.
7027
7028 * src/bison.simple:
7029 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7030 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7031 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7032
7033 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7034 on user names when possible.
7035
7036 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7037 Simplify test for whather <alloca.h> exists.
7038
7039 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7040
7041 (<stdio.h>): Include if YYDEBUG.
7042
7043 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7044 ! defined (yyoverflow) && ! defined (yymemcpy).
7045
7046 (yymemcpy, yyparse): Rename local variables as needed so that
7047 they all begin with 'yy'.
7048
7049 (yystrlen, yystpcpy): New functions.
7050
7051 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7052 All uses changed.
7053
7054 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7055 instead of relying on string.h functions. Use YYSTACK_ALLOC
7056 and YYSTACK_FREE instead of malloc and free.
7057
fd51e5ff
AD
70582001-11-30 Akim Demaille <akim@epita.fr>
7059
7060 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7061 before their first uses.
7062 (YYBISON, YYPURE): Move to the top of the output.
7063
7d13ff5f
AD
70642001-11-30 Akim Demaille <akim@epita.fr>
7065
7066 * tests/reduce.at (Useless Nonterminals): Fix.
7067
892a3995
AD
70682001-11-30 Akim Demaille <akim@epita.fr>
7069
7070 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7071 if body instead of `;' to pacify GCC's warnings.
7072
68f1e3ed
AD
70732001-11-30 Akim Demaille <akim@epita.fr>
7074
7075 Instead of mapping the LHS of unused rules to -1, keep the LHS
7076 valid, but flag the rules as invalid.
7077
7078 * src/gram.h (rule_t): `useful' is a new member.
7079 * src/print.c (print_grammar): Adjust.
7080 * src/derives.c (set_derives): Likewise.
7081 * src/reader.c (packgram, reduce_output): Likewise.
7082 * src/reduce.c (reduce_grammar_tables): Likewise.
7083 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7084
d2d1b42b
AD
70852001-11-30 Akim Demaille <akim@epita.fr>
7086
7087 * src/reduce.c (reduce_output): Formatting changes.
7088 * src/print.c (print_results, print_grammar): Likewise.
7089 * tests/regression.at (Rule Line Numbers)
7090 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7091
760b53a8
AD
70922001-11-30 Akim Demaille <akim@epita.fr>
7093
7094 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7095 useless nonterminals, move them at the end of the symbol arrays.
7096 (reduce_output): Adjust.
7097 * tests/reduce.at (Useless Nonterminals): Adjust.
7098
00238958
AD
70992001-11-30 Akim Demaille <akim@epita.fr>
7100
7101 * src/reduce.c: Various comment/formatting changes.
7102 (nonterminals_reduce): New, extracted from...
7103 (reduce_grammar_tables): here.
7104 (reduce_grammar): Call nonterminals_reduce.
7105
396452de
PE
71062001-11-29 Paul Eggert <eggert@twinsun.com>
7107
7108 * src/bison.simple (YYSTACK_REALLOC): Remove.
7109 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7110 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7111 New macros.
7112 (union yyalloc): New type.
7113 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7114 an arbitrary restriction on hosts where size_t is wider than int.
7115
7116 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7117 a parser stack overflow. Allocate just one block of memory for all
7118 three stacks, instead of allocating three blocks; this typically is
7119 faster and reduces fragmentation.
7120
7121 Do not limit the number of items in the stack to a value that fits
7122 in 'int', as this is an arbitrary limit on hosts with 64-bit
7123 size_t and 32-bit int.
7124
147e184c
MA
71252001-11-29 Marc Autret <autret_m@epita.fr>
7126
7127 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7128 of defining YYERROR_VERBOSE.
7129 [AT_DATA]: $4 is now out of C declarations in the prologue.
7130
426cf563
MA
71312001-11-28 Marc Autret <autret_m@epita.fr>
7132
7133 * src/reader.c (parse_dquoted_param): New.
7134 (parse_skel_decl): Use it.
7135 * src/lex.h: Add its prototype.
7136 * src/lex.c (literalchar): Become not static.
7137
c7925b99
MA
71382001-11-28 Marc Autret <autret_m@epita.fr>
7139
7140 * src/output.h: And put its extern declaration here.
7141 * src/output.c (error_verbose): Define here.
7142 (prepare): Echo name modification.
7143 * src/getargs.h: Clean its extern declaration.
7144 * src/getargs.c (error_verbose_flag): Remove.
7145 (getargs): Remove case 'e'.
7146 * src/options.c (option_table): 'error-verbose' is now seen as simple
7147 percent option.
7148 Include output.h.
7149
7150 * src/reader.c (read_declarations): Remove case tok_include.
7151 (parse_include_decl): Remove.
7152 * src/lex.h (token_t): Remove tok_include.
7153 * src/options.c (option_table): 'include' is now a simple command line
7154 option.
7155
5b5d1929
MA
71562001-11-28 Marc Autret <autret_m@epita.fr>
7157
7158 * src/bison.simple: Adjust muscle names.
7159 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7160 * src/output.c (prepare): s/_/-/ for the muscles names.
7161 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7162
8850be4b
MA
71632001-11-28 Marc Autret <autret_m@epita.fr>
7164
7165 * src/bison.simple: Fix debug.
7166 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7167
4a38e613
AD
71682001-11-28 Akim Demaille <akim@epita.fr>
7169
7170 * src/LR0.c (shifts_new): New.
7171 (save_shifts, insert_start_shift, augment_automaton): Use it.
7172
4b35e1c1
AD
71732001-11-28 Akim Demaille <akim@epita.fr>
7174
7175 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7176 keep ruleno only.
7177
d2b04478
AD
71782001-11-28 Akim Demaille <akim@epita.fr>
7179
7180 * src/closure.c (closure): Instead of looping over word in array
7181 then bits in words, loop over bits in array.
7182
2c4c30aa
AD
71832001-11-28 Akim Demaille <akim@epita.fr>
7184
7185 * src/closure.c (closure): No longer optimize the special case
7186 where all the bits of `ruleset[r]' are set to 0, to make the code
7187 clearer.
7188
576890b7
AD
71892001-11-28 Akim Demaille <akim@epita.fr>
7190
7191 * src/closure.c (closure): `r' and `c' are new variables, used to
7192 de-obfuscate accesses to RULESET and CORE.
7193
cb487d7d
AD
71942001-11-28 Akim Demaille <akim@epita.fr>
7195
7196 * src/reduce.c (reduce_print): Use ngettext.
7197 (dump_grammar): Improve the trace accuracy.
7198
6013d43f
AD
71992001-11-28 Akim Demaille <akim@epita.fr>
7200
7201 * src/reduce.c (dump_grammar): Don't translate trace messages.
7202
cb4956ee
AD
72032001-11-28 Akim Demaille <akim@epita.fr>
7204
7205 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7206 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7207 as all tags are free'ed afterwards.
7208 From Enrico Scholz.
7209
648185ab
PE
72102001-11-27 Paul Eggert <eggert@twinsun.com>
7211
7212 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7213 use alloca when we didn't want to, and vice versa.
7214
68254a03
MA
72152001-11-27 Marc Autret <autret_m@epita.fr>
7216
9113b58f
AD
7217 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7218 initialization.
68254a03
MA
7219 * src/output.c (prepare): Remove its update.
7220
04d843a2
MA
72212001-11-27 Marc Autret <autret_m@epita.fr>
7222
7223 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7224 Use %error-verbose.
7225
d2079671 72262001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
7227
7228 * src/bison.simple: Remove YYERROR_VERBOSE using.
7229 Use %%error_verbose.
7230 (yyparse): Likewise.
7231 * src/output.c (prepare): Give its final value.
7232 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7233 * src/getargs.h: Add its extern declaration.
7234 * src/getargs.c (error_verbose_flag): New int.
7235 (getargs): Update to catch new case.
7236 * src/options.c (option_table): 'error-verbose' is a new option.
7237 (shortopts): Update.
7238
e0327bc8
AD
72392001-11-27 Akim Demaille <akim@epita.fr>
7240
7241 * src/system.h: Use intl/libgettext.h.
7242 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7243
000f1a3c
AD
72442001-11-27 Akim Demaille <akim@epita.fr>
7245
7246 * tests/torture.at (Exploding the Stack Size with Malloc):
7247 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7248
26cfe0be
AD
72492001-11-27 Akim Demaille <akim@epita.fr>
7250
7251 * src/files.c: Include error.h.
7252 Reported by Hans Aberg.
7253
f6bd5427
MA
72542001-11-26 Marc Autret <autret_m@epita.fr>
7255
d2079671 7256 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
7257 (read_declarations): Add case tok_include.
7258 * src/getargs.h (include): Add its extern definition.
7259 * src/getargs.c (include): New const char *.
7260 (getargs): Add case '-I'.
7261 * src/options.c (option_table): Add include as command line and
7262 percent option.
7263 * src/lex.h (token_t): Add tok_include.
7264
2ca209c1
AD
72652001-11-26 Akim Demaille <akim@epita.fr>
7266
7267 * src/reader.c (readgram): Make sure rules for mid-rule actions
7268 have a lineno equal to that of their host rule.
7269 Reported by Hans Aberg.
7270 * tests/regression.at (Rule Line Numbers): New.
7271
0e41b407
AD
72722001-11-26 Akim Demaille <akim@epita.fr>
7273
7274 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7275 size_ts.
7276
72772001-11-26 Akim Demaille <akim@epita.fr>
7278
7279 * src/complain.c, src/complain.h (error): Remove, provided by
7280 lib/error.[ch].
7281
e0c40012
AD
72822001-11-26 Akim Demaille <akim@epita.fr>
7283
7284 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7285 issue an error message.
7286 * tests/regression.at (Invalid %directive): New.
7287 Reported by Hans Aberg.
7288
5e147124
AD
72892001-11-26 Akim Demaille <akim@epita.fr>
7290
7291 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7292 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7293
a034c8b8
AD
72942001-11-26 Akim Demaille <akim@epita.fr>
7295
7296 * src/conflicts.c (conflicts_print): Don't complain at all when
7297 there are no reduce/reduce conflicts, and as many shift/reduce
7298 conflicts as expected.
7299 * tests/regression.at (%expect right): Adjust.
7300
c64a20f3
AD
73012001-11-23 Akim Demaille <akim@epita.fr>
7302
7303 * lib/alloca.c: Update, from fileutils.
7304
5b0d29bb
AD
73052001-11-23 Akim Demaille <akim@epita.fr>
7306
7307 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7308
722c4bfe
AD
73092001-11-23 Akim Demaille <akim@epita.fr>
7310
7311 * src/system.h: Include alloca.h.
7312 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7313
6255b435
AD
73142001-11-23 Akim Demaille <akim@epita.fr>
7315
7316 * src/print_graph.c (print_actions): Remove `rule', unused.
7317 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7318 pacify GCC's signed < unsigned warnings.
7319 * src/closure.c (itemsetsize): Likewise.
7320 * src/reader.c (symbol_list_new): Static.
7321
b29b2ed5
AD
73222001-11-23 Akim Demaille <akim@epita.fr>
7323
7324 Attaching lineno to buckets is stupid, since only one copy of each
7325 symbol is kept, only the line of the first occurrence is kept too.
7326
7327 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7328 * src/reader.c (rline_allocated): Remove, unused.
7329 (symbol_list): Have a `line' member.
7330 (symbol_list_new): New.
7331 (readgram): Use it.
7332 * src/print.c (print_grammar): Output the rule line numbers.
7333 * tests/regression.at (Solved SR Conflicts)
7334 (Unresolved SR Conflicts): Adjust.
7335 Reported by Hans Aberg.
7336
a81b1d4a
MA
73372001-11-22 Marc Autret <autret_m@epita.fr>
7338
7339 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7340
c1ecb3c1
MA
73412001-11-22 Marc Autret <autret_m@epita.fr>
7342
7343 * src/muscle_tab.c (muscle_init): Remove initialization of
7344 skeleton muscle.
7345 * src/output.c (output_master_parser): Do it here.
7346
fbe01355
AD
73472001-11-20 Akim Demaille <akim@epita.fr>
7348
7349 * po/sv.po: New.
7350 * configure.in (ALL_LINGUAS): Adjust.
7351 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7352 longer contains strings to translate.
7353
81e895c0
AD
73542001-11-19 Akim Demaille <akim@epita.fr>
7355
7356 * src/conflicts.c (conflicts_print): Add a missing \n.
7357
6bb1878b
AD
73582001-11-19 Akim Demaille <akim@epita.fr>
7359
7360 * src/nullable.c (nullable_print): New.
7361 (set_nullable): Call it when tracing.
7362 Better locality of variables.
7363
d9ec2d07
AD
73642001-11-19 Akim Demaille <akim@epita.fr>
7365
7366 * src/print.c (print_actions): Better locality of variables.
7367
720e5c1b
AD
73682001-11-19 Akim Demaille <akim@epita.fr>
7369
7370 * src/derives.c (print_derives): Fix and enrich.
7371 * src/closure.c (print_fderives): Likewise.
7372
fb908786
AD
73732001-11-19 Akim Demaille <akim@epita.fr>
7374
7375 * src/closure.c (itemsetend): Remove, replaced with...
7376 (itemsetsize): new.
7377
125ecb56
AD
73782001-11-19 Akim Demaille <akim@epita.fr>
7379
7380 * src/LR0.c (kernel_end): Remove, replaced with...
7381 (kernel_size): new.
7382
d8cf039f
AD
73832001-11-19 Akim Demaille <akim@epita.fr>
7384
7385 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7386 to clarify.
7387
7bec0760
AD
73882001-11-19 Akim Demaille <akim@epita.fr>
7389
7390 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7391
c87d4863
AD
73922001-11-19 Akim Demaille <akim@epita.fr>
7393
7394 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7395 trace messages.
7396 * src/LR0.c: Likewise.
7397 (allocate_itemsets): Use arrays instead of pointers to clarify.
7398
9bfe901c
AD
73992001-11-19 Akim Demaille <akim@epita.fr>
7400
7401 * src/getargs.c (statistics_flag): Replace with...
7402 (trace_flag): New.
7403 (longopts): Accept --trace instead of --statistics.
7404 * src/getargs.h, src/options.c: Adjust.
7405 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7406 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7407
97db7bd4
AD
74082001-11-19 Akim Demaille <akim@epita.fr>
7409
cc72668c 7410 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
7411 pointers to clarify the code.
7412 (save_reductions, save_shifts): Factor common parts of alternatives.
7413
2c5f66ed
AD
74142001-11-19 Akim Demaille <akim@epita.fr>
7415
7416 * src/LR0.c (new_state, get_state): Complete TRACE code.
7417 * src/closure.c: Include `reader.h' to get `tags', needed by the
7418 trace code.
7419 Rename the conditional DEBUG as TRACE.
7420 Output consistently TRACEs to stderr, not stdout.
7421 * src/derives.c: Likewise.
7422 * src/reduce.c: (inaccessable_symbols): Using if is better style
7423 than goto.
7424 Use `#if TRACE' instead of `#if 0' for tracing code.
7425
300f275f
AD
74262001-11-19 Akim Demaille <akim@epita.fr>
7427
7428 * src/system.h (LIST_FREE, shortcpy): New.
7429 * src/LR0.c: Use them.
7430 * src/output.c (free_itemsets, free_reductions, free_shifts):
7431 Remove, replaced by LIST_FREE.
7432
f59c437a
AD
74332001-11-19 Akim Demaille <akim@epita.fr>
7434
7435 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7436 (REDUCTIONS_ALLOC): New.
7437 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7438 allocation.
7439
6986fd9e
AD
74402001-11-19 Akim Demaille <akim@epita.fr>
7441
7442 * src/LR0.c (new_state): Complete trace code.
7443 * src/nullable.c (set_nullable): Don't translate traces.
7444
4bc30f78
AD
74452001-11-19 Akim Demaille <akim@epita.fr>
7446
7447 * src/print_graph.c (print_core): Better locality of variables.
7448 * src/print.c (print_core): Likewise.
7449
08a946e0
AD
74502001-11-19 Akim Demaille <akim@epita.fr>
7451
7452 * src/vcg.c: You do the output, so you are responsible of the
7453 handling of VCG syntax, in particular: use quotearg.
7454 * src/print_graph.c: Don't.
7455 (print_actions): Don't output the actions as part of the nodes,
7456 since that's the job of the edges.
7457 (print_state): Don't output by hand: fill the node description,
9bfe901c 7458 and ask for its output.
08a946e0 7459
f0473484
AD
74602001-11-19 Akim Demaille <akim@epita.fr>
7461
cc72668c
AD
7462 * src/bison.simple (yyparse): When verbosely reporting an error,
7463 no longer put additional quotes around token names.
f0473484
AD
7464 * tests/calc.at: Adjust.
7465
e41dc700
AD
74662001-11-19 Akim Demaille <akim@epita.fr>
7467
7468 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7469 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7470 * src/output.c: Adjust.
7471
652a871c
AD
74722001-11-19 Akim Demaille <akim@epita.fr>
7473
7474 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7475 (rule_t): this.
7476 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7477
b2ed6e58
AD
74782001-11-19 Akim Demaille <akim@epita.fr>
7479
7480 * src/gram.h (rule_t): New.
7481 (rule_table): New.
7482 (rrhs, rlhs): Remove, part of state_t.
7483 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7484 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7485 * src/reader.c, src/reduce.c: Adjust.
7486
edad7067
AD
74872001-11-19 Akim Demaille <akim@epita.fr>
7488
7489 * src/reader.c (symbols_output): New, extracted from...
7490 (packsymbols): Here.
7491 (reader): Call it.
7492
3feec034
AD
74932001-11-19 Akim Demaille <akim@epita.fr>
7494
7495 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7496 (maxrhs): this new function.
7497
ddcd5fdf
AD
74982001-11-19 Akim Demaille <akim@epita.fr>
7499
cc72668c 7500 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
7501 Adjust.
7502
bb527fc2
AD
75032001-11-19 Akim Demaille <akim@epita.fr>
7504
cc72668c 7505 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
7506 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7507 * src/lalr.c: Adjust.
7508
a845a697
AD
75092001-11-19 Akim Demaille <akim@epita.fr>
7510
7511 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7512 (set_state_table): handle the `lookaheads' members.
7513
f004bf6a
AD
75142001-11-19 Akim Demaille <akim@epita.fr>
7515
cc72668c
AD
7516 * src/lalr.h (lookaheads): Removed array, whose contents is now
7517 a member of...
f004bf6a
AD
7518 (state_t): this structure.
7519 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7520 Adjust.
7521
de326cc0
AD
75222001-11-19 Akim Demaille <akim@epita.fr>
7523
cc72668c
AD
7524 * src/lalr.h (consistent): Removed array, whose contents is now
7525 a member of...
de326cc0
AD
7526 (state_t): this structure.
7527 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7528 Adjust.
7529
90b4416b
AD
75302001-11-19 Akim Demaille <akim@epita.fr>
7531
cc72668c
AD
7532 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7533 contents are now members of...
90b4416b
AD
7534 (state_t): this structure.
7535 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7536 Adjust.
7537
9703cc49
AD
75382001-11-19 Akim Demaille <akim@epita.fr>
7539
7540 * src/lalr.h (state_t): New.
7541 (state_table): Be a state_t * instead of a core **.
7542 (accessing_symbol): Remove, part of state_t.
7543 * src/lalr.c: Adjust.
7544 (set_accessing_symbol): Merge into...
7545 (set_state_table): this.
7546 * src/print_graph.c, src/conflicts.c: Adjust.
7547
d803322e
AD
75482001-11-14 Akim Demaille <akim@epita.fr>
7549
7550 * tests/calc.at, tests/output.at, tests/regression.at,
7551 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7552 now the tests are run in private dirs, therefore AC_CLEANUP and
7553 family can be simplified to 0-ary.
7554 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7555 use abs. path to find config.h.
7556 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7557 stderr, there can be way too much random noise.
7558 Instead pass -Werror to GCC and rely on the exit status.
7559 Reported by Wolfram Wagner.
7560
3d76b07d
AD
75612001-11-14 Akim Demaille <akim@epita.fr>
7562
7563 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7564 defined only if yyoverflow is defined, to avoid `warning: unused
7565 variable `yyvs1''.
7566 Reported by The Test Suite.
7567
09b503c8
AD
75682001-11-14 Akim Demaille <akim@epita.fr>
7569
7570 * src/print.c: Include reduce.h.
7571 Reported by Hans Aberg.
7572
75732001-11-14 Akim Demaille <akim@epita.fr>
7574
7575 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7576 Revert a previous patch: these are really const.
7577 * src/conflicts.c (conflict_report): Additional useless pair of
7578 braces to pacify GCC's warnings for `if () if () {} else {}'.
7579 * src/lex.c (parse_percent_token): Replace equal_offset with
7580 arg_offset.
7581 arg is const.
7582 Be sure to strdup `arg' when used, since there is no reason for
7583 token_buffer not to change.
7584
0f37a994
AD
75852001-11-14 Akim Demaille <akim@epita.fr>
7586
7587 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7588 definition.
7589 * src/main.c (main): Use them.
7590 Suggested by Hans Aberg.
7591
d39d93b8
AD
75922001-11-12 Akim Demaille <akim@epita.fr>
7593
7594 * src/system.h (ngettext): Now that we use ngettext, be sure to
7595 provide a default definition when NLS are not used.
7596
9edcd895
AD
75972001-11-12 Akim Demaille <akim@epita.fr>
7598
7599 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7600 Use @kbd to denote user input.
7601 (Language and Grammar): ANSIfy the example.
7602 Adjust its layout for info/notinfo.
7603 (Location Tracking Calc): Output error messages to stderr.
7604 Output locations in a more GNUtically correct way.
7605 Fix a couple of Englishos.
7606 Adjust @group/@end group pairs.
7607
7da99ede
AD
76082001-11-12 Akim Demaille <akim@epita.fr>
7609
e3aa65c5 7610 %expect was not functioning at all.
7da99ede
AD
7611
7612 * src/conflicts.c (expected_conflicts): Set to -1.
7613 (conflict_report): Use ngettext.
7614 (conflicts_print): Check %expect and make its violation an error.
7615 * doc/bison.texinfo (Expect Decl): Adjust.
7616 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7617 * tests/regression.at (%expect not enough, %expect right)
7618 (%expect too much): New.
7619
ba9dda1a
AD
76202001-11-12 Akim Demaille <akim@epita.fr>
7621
7622 * tests/regression.at (Conflicts): Rename as...
7623 (Unresolved SR Conflicts): this.
7624 (Solved SR Conflicts): New.
7625
337c5bd1
AD
76262001-11-12 Akim Demaille <akim@epita.fr>
7627
7628 * src/reduce.c (print_results): Rename as...
7629 (reduce_output): This.
7630 Output to OUT, passed as argument, instead of output_obstack.
7631 (dump_grammar): Likewise.
7632 (reduce_free): New.
7633 Also free V1.
7634 (reduce_grammar): No longer call reduce_output, since...
7635 * src/print.c (print_results): do it.
7636 * src/main.c (main): Call reduce_free;
7637
c73a41af
AD
76382001-11-12 Akim Demaille <akim@epita.fr>
7639
7640 * src/conflicts.c (print_reductions): Accept OUT as argument.
7641 Output to it, not to output_obstack.
7642 * src/print.c (print_actions): Adjust.
7643
0df87bb6
AD
76442001-11-12 Akim Demaille <akim@epita.fr>
7645
7646 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
7647 the result instead of using...
7648 (src_total, rrc_total, src_count, rrc_count): Remove.
7649 (any_conflicts): Remove.
7650 (print_conflicts): Split into...
7651 (conflicts_print, conflicts_output): New.
7652 * src/conflicts.h: Adjust.
7653 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 7654 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
7655 * tests/regression.at (Conflicts): New.
7656 Reported by Tom Lane.
7657
e4d3d4de
AD
76582001-11-12 Akim Demaille <akim@epita.fr>
7659
7660 * tests/regression.at (Invalid input): Remove, duplicate with
7661 ``Invalid input: 1''.
7662
6d7d248e
AD
76632001-11-12 Akim Demaille <akim@epita.fr>
7664
7665 * tests/torture.at (AT_DATA_STACK_TORTURE)
7666 (Exploding the Stack Size with Alloca)
7667 (Exploding the Stack Size with Malloc): New.
7668
e9e4c321
AD
76692001-11-12 Akim Demaille <akim@epita.fr>
7670
7671 * src/bison.simple (YYSTACK_REALLOC): New.
7672 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 7673 Reported by Per Allansson.
e9e4c321 7674
5f7e0832
AD
76752001-11-12 Pascal Bart <pascal.bart@epita.fr>
7676
7677 * src/bison.simple: Define type yystype instead of YYSTYPE, and
7678 define CPP macro, which substitute YYSTYPE by yystype.
7679 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
7680 with yyltype/YYLTYPE. This allows inclusion of the generated
7681 header within the parser if the compiler, such as GGC, accepts
7682 multiple equivalent #defines.
7683 From Akim.
7684
e3f1699f
AD
76852001-11-05 Akim Demaille <akim@epita.fr>
7686
7687 * src/reader.c (symbols_output): New, extracted from...
7688 (packsymbols): here.
7689 (reader): Adjust.
7690
65be0866
AD
76912001-11-05 Akim Demaille <akim@epita.fr>
7692
7693 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7694
e4d910bf
AD
76952001-11-05 Akim Demaille <akim@epita.fr>
7696
7697 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7698 pattern.
7699
951366c1
AD
77002001-11-05 Akim Demaille <akim@epita.fr>
7701
7702 * src/options.h (struct option_table_struct): set_flags is void*.
7703 * src/options.c (longopts): Support `--output' and `%output'.
7704 (usage): Adjust.
7705 * src/lex.h (tok_setopt): Remove, replaced with...
7706 (tok_intopt, tok_stropt): these new guys.
7707 * src/lex.c (getopt.h): Not needed.
7708 (token_buffer, unlexed_token_buffer): Not const.
7709 (percent_table): Promote `-' over `_' in directive names.
7710 Active `%name-prefix', `file-prefix', and `output'.
7711 (parse_percent_token): Accept possible arguments to directives.
7712 Promote `-' over `_' in directive names.
7713
d8988b2f
AD
77142001-11-04 Akim Demaille <akim@epita.fr>
7715
7716 * doc/bison.texinfo (Decl Summary): Split the list into
7717 `directives for grammars' and `directives for bison'.
7718 Sort'em.
7719 Add description of `%name-prefix', `file-prefix', and `output'.
7720 Promote `-' over `_' in directive names.
7721 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
7722 Simplify the description of `--name-prefix'.
7723 Promote `-' over `_' in directive names.
7724 Promote `--output' over `--output-file'.
7725 Fix the description of `--defines'.
7726 * tests/output.at: Exercise %file-prefix and %output.
7727
6468d18e
AD
77282001-11-02 Akim Demaille <akim@epita.fr>
7729
7730 * doc/refcard.tex: Update.
7731
6b7e85b9
AD
77322001-11-02 Akim Demaille <akim@epita.fr>
7733
7734 * src/symtab.h (SUNDEF): New.
7735 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
7736 stand for `uninitialized', instead of 0.
7737 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
7738 * src/lex.c (lex): Adjust.
7739
7740 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
7741 Number it 0.
7742 Let yylex return it instead of a plain 0.
7743 Reported by Dick Streefland.
7744
cd5aafcf
AD
77452001-11-02 Akim Demaille <akim@epita.fr>
7746
7747 * tests/regression.at (Mixing %token styles): New test.
7748
037ca2f1
AD
77492001-11-02 Akim Demaille <akim@epita.fr>
7750
7751 * src/reader.c (parse_thong_decl): Formatting changes.
7752 (token_translations_init): New, extracted from...
7753 (packsymbols): Here.
7754 Adjust.
7755
270a173c
AD
77562001-11-01 Akim Demaille <akim@epita.fr>
7757
7758 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
7759 Check that `9foo.y' produces correct cpp guards.
7760 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
7761 guards.
7762 Reported by Wwp.
7763
561f9a30
AD
77642001-11-01 Akim Demaille <akim@epita.fr>
7765
7766 * tests/regression.at (Invalid input: 2): New.
7767 * src/lex.c (unlexed_token_buffer): New.
7768 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
7769 too.
7770 Reported by Wwp.
7771
f987e9d2
AD
77722001-11-01 Akim Demaille <akim@epita.fr>
7773
7774 * tests/calc.at: Catch up with 1.30.
7775 * configure.in: Bump to 1.49a.
7776 Adjust to newer Autotest.
7777
0846f581
PB
77782001-10-19 Pascal Bart <pascal.bart@epita.fr>
7779
7780 * src/conflicts.c: Move global variables rrc_total and src_total ...
7781 (print_conflicts): here.
7782 * src/output.c (output): Free global variable user_toknums.
7783 * src/lex.c (token_obstack): Become static.
7784
3c1a79b3
AD
77852001-10-18 Akim Demaille <akim@epita.fr>
7786
7787 * tests/atlocal.in (GCC): Add.
7788 * tests/calc.at: s/m4_match/m4_bmatch/.
7789 s/m4_patsubst/m4_bpatsubst/.
7790 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
7791 * configure.in: AC_SUBST(GCC).
7792
5d52e7d0
MA
77932001-10-14 Marc Autret <autret_m@epita.fr>
7794
7795 * src/options.c (create_long_option_table): Fix.
7796
631aa1d3
AD
77972001-10-10 Akim Demaille <akim@epita.fr>
7798
7799 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7800
f6ec6d13
AD
78012001-10-04 Akim Demaille <akim@epita.fr>
7802
7803 * src/reader.c (parse_union_decl): Push the caracters in
7804 union_obstack, not attrs_obstack.
7805
342b8b6e
AD
78062001-10-04 Akim Demaille <akim@epita.fr>
7807
7808 Merge in the branch 1.29.
7809
7810 * src/reader.c (packsymbols): Use a temporary obstack for
7811 `%%tokendef', since output_stack is already used elsewhere.
7812
7813 2001-10-02 Akim Demaille <akim@epita.fr>
7814
7815 Bump 1.29d.
7816
7817 2001-10-02 Akim Demaille <akim@epita.fr>
7818
7819 Version 1.29c.
7820
7821 2001-10-02 Akim Demaille <akim@epita.fr>
7822
7823 * tests/regression.at (Invalid CPP headers): New.
7824 From Alexander Belopolsky.
7825 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
7826
7827 2001-10-02 Akim Demaille <akim@epita.fr>
7828
7829 * tests/regression.at (Invalid input): New.
7830 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
7831 Reported by Shura.
7832
7833 2001-10-02 Akim Demaille <akim@epita.fr>
7834
7835 * tests/calc.at: Now that --debug works, the tests must be adjusted.
7836
7837 2001-10-02 Akim Demaille <akim@epita.fr>
7838
7839 * src/output.c (output_parser): Assert `skeleton'.
7840 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
7841 systems.
7842 From Shura.
7843
7844 2001-10-01 Marc Autret <autret_m@epita.fr>
7845
7846 * src/lex.h: Echo modifications.
7847 * src/lex.c (unlex): Parameter is now token_t.
7848 From Hans Aberg.
7849
7850 2001-10-01 Marc Autret <autret_m@epita.fr>
7851
7852 * src/main.c: Include lex.h.
7853 From Hans Aberg.
7854
7855 2001-09-29 Akim Demaille <akim@epita.fr>
7856
7857 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
7858
7859 2001-09-28 Akim Demaille <akim@epita.fr>
7860
7861 * tests/testsuite.at: Update to newer Autotest.
7862 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
7863
7864 2001-09-27 Akim Demaille <akim@epita.fr>
7865
7866 Position independent wrapper.
7867
7868 * tests/bison: Remove.
7869 * tests/bison.in: New.
7870 * configure.in: Adjust.
7871
7872 2001-09-27 Paul Eggert <eggert@twinsun.com>
7873
7874 Port quotearg fixes from tar 1.13.24.
7875
7876 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
7877 tm to be declared.
7878 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
7879 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
7880
7881 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
7882 * m4/mbrtowc.m4: New file.
7883 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
7884 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
7885
7886 2001-09-27 Akim Demaille <akim@epita.fr>
7887
7888 Bump to 1.29c.
7889
7890 2001-09-27 Akim Demaille <akim@epita.fr>
7891
7892 Version 1.29b.
7893
7894 2001-09-25 Akim Demaille <akim@epita.fr>
7895
7896 * src/system.h: Include `xalloc.h'.
7897 Remove it from the C files.
7898 * src/files.c (output_files): Free the obstacks.
7899 * src/lex.c (init_lex): Rename as...
7900 (lex_init): this.
7901 (lex_free): New.
7902 * src/main.c (main): Use it.
7903
7904 2001-09-24 Marc Autret <autret_m@epita.fr>
7905
7906 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
7907 to output informations in fout (FILE*).
7908 (open_graph, close_graph): Likewise.
7909 (output_graph, output_edge, output_node): Likewise.
7910 * src/vcg.h: Update function prototypes.
7911 * src/print_graph.c (print_graph): Open output graph file.
7912 (print_actions): Adjust.
7913 * src/files.h: Remove extern declaration.
7914 * src/files.c: Remove graph_obstack declaration.
7915 (open_files): Remove graph_obstack initialization.
7916 (output_files): Remove graph_obstack saving.
7917
7918 2001-09-24 Marc Autret <autret_m@epita.fr>
7919
7920 * src/files.c (compute_output_file_names): Fix.
7921
7922 2001-09-24 Marc Autret <autret_m@epita.fr>,
7923 Akim Demaille <akim@epita.fr>
7924
7925 * src/reader.c (reader): Remove call to free_symtab ().
7926 * src/main.c (main): Call it here.
7927 Include symtab.h.
7928 * src/conflicts.c (initialize_conflicts): Rename as...
7929 (solve_conflicts): this.
7930 * src/print.c (print_core, print_actions, print_state)
7931 (print_grammar): Dump to a file instead a `output_obstack'.
7932 (print_results): Dump `output_obstack', and then proceed with the
7933 FILE *.
7934 * src/files.c (compute_output_file_names, close_files): New.
7935 (output_files): Adjust.
7936 * src/main.c (main): Adjust.
7937
7938 2001-09-23 Marc Autret <autret_m@epita.fr>
7939
7940 * src/files.c (compute_header_macro): Computes header macro name
7941 from spec_defines_file when given.
7942
7943 2001-09-23 Marc Autret <autret_m@epita.fr>
7944
7945 * src/files.c (output_files): Add default extensions.
7946
7947 2001-09-22 Akim Demaille <akim@epita.fr>
7948
7949 * src/conflicts.c (finalize_conflicts): Rename as...
7950 (free_conflicts): this.
7951
7952 2001-09-22 Akim Demaille <akim@epita.fr>
7953
7954 * src/gram.c (gram_free): Rename back as...
7955 (dummy): this.
7956 (output_token_translations): Free `token_translations'.
7957 * src/symtab.c (free_symtab): Free the tag field.
7958
7959 2001-09-22 Akim Demaille <akim@epita.fr>
7960
7961 Remove `translations' as it is always set to true.
7962
7963 * src/gram.h: Adjust.
7964 * src/reader.c (packsymbols, parse_token_decl): Adjust
7965 * src/print.c (print_grammar): Adjust.
7966 * src/output.c (output_token_translations): Adjust.
7967 * src/lex.c (lex): Adjust.
7968 * src/gram.c: Be sure the set pointers to NULL.
7969 (dummy): Rename as...
7970 (gram_free): this.
7971
7972 2001-09-22 Akim Demaille <akim@epita.fr>
7973
7974 * configure.in: Invoke AM_LIB_DMALLOC.
7975 * src/system.h: Use dmalloc.
7976 * src/LR0.c: Be sure to have pointers initialized to NULL.
7977 (allocate_itemsets): Allocate kernel_items only if needed.
7978
7979 2001-09-22 Akim Demaille <akim@epita.fr>
7980
7981 * configure.in: Bump to 1.29b.
7982 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
7983 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
7984 need xmalloc.c in calc.y.
7985 From Pascal Bart.
7986
7987 2001-09-21 Akim Demaille <akim@epita.fr>
7988
7989 Version 1.29a.
7990 * Makefile.maint, config/config.guess, config/config.sub,
7991 * config/missing: Update from masters.
7992 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
7993 upon package.m4.
7994 * configure.in (ALL_LINGUAS): Add `tr'.
7995
7996 2001-09-21 Akim Demaille <akim@epita.fr>
7997
7998 * tests/Makefile.am (package.m4): Move to...
7999 ($(srcdir)/$(TESTSUITE)): here.
8000
8001 2001-09-20 Akim Demaille <akim@epita.fr>
8002
8003 * src/complain.c: No longer try to be standalone: use system.h.
8004 Don't assume __STDC__ is defined to 1. Just test if it is defined.
8005 * src/complain.h: Likewise.
8006 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
8007 Remove the unused variable `n'.
8008 From Albert Chin-A-Young.
8009
8010 2001-09-18 Marc Autret <autret_m@epita.fr>
8011
8012 * doc/bison.1: Update.
8013 * doc/bison.texinfo (Bison Options): Update --defines and --graph
8014 descriptions.
8015 (Option Cross Key): Update.
8016 Add --graph.
8017
8018 2001-09-18 Marc Autret <autret_m@epita.fr>
8019
8020 * tests/regression.at: New test (comment in %union).
8021
8022 2001-09-18 Marc Autret <autret_m@epita.fr>
8023
8024 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8025 do that.
8026 Reported by Keith Browne.
8027
8028 2001-09-18 Marc Autret <autret_m@epita.fr>
8029
8030 * tests/output.at: Add tests for --defines and --graph.
8031
8032 2001-09-18 Marc Autret <autret_m@epita.fr>
8033
8034 * tests/output.at: Removes tests of %{header,src}_extension features.
8035
8036 2001-09-18 Akim Demaille <akim@epita.fr>
8037
8038 * tests/Makefile.am (package.m4): New.
8039 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8040 (_AT_CHECK_CALC_ERROR): Likewise.
8041 Factor the `, ' part of verbose error messages.
8042
8043 2001-09-18 Marc Autret <autret_m@epita.fr>
8044
8045 * src/getargs.c (longopts): Declare --defines and --graph as options
8046 with optional arguments.
8047 * src/files.h: Add extern declarations.
8048 * src/files.c (spec_graph_file, spec_defines_file): New.
8049 (output_files): Update.
8050 Remove CPP-outed code.
8051
8052 2001-09-18 Marc Autret <autret_m@epita.fr>
8053
8054 Turn off %{source,header}_extension feature.
8055
8056 * src/files.c (compute_exts_from_gf): Update.
8057 (compute_exts_from_src): Update.
8058 (output_files): CPP-out useless code.
8059 * src/files.h: Remove {header,source}_extension extern declarations.
8060 * src/reader.c (parse_dquoted_param): CPP-out.
8061 (parse_header_extension_decl): Remove.
8062 (parse_source_extension_decl): Remove.
8063 (read_declarations): Remove cases tok_{hdrext,srcext}.
8064 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8065 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8066
8067 2001-09-10 Akim Demaille <akim@epita.fr>
8068
8069 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8070 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8071 (AT_CHECK_OUTPUT): this.
8072 Merely check ls' exit status, its output is useless.
8073
8074 2001-09-10 Akim Demaille <akim@epita.fr>
8075
8076 * tests/calc.at: Use m4_match.
8077 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8078
8079 2001-09-10 Marc Autret <autret_m@epita.fr>,
8080 Akim Demaille <akim@epita.fr>
8081
8082 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8083 enum color_e.
8084 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8085 to `normal'.
8086 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8087 * src/lex.h: Adjust prototype.
8088 (token_t): Add `tok_undef'.
8089 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8090 (parse_percent_token): Now returns token_t.
8091 Add default statement in switch.
8092 (lex): Separate `c' as an input variable, from the token_t result
8093 part.
8094 (unlexed): Is a token_t.
8095
8096 2001-09-10 Akim Demaille <akim@epita.fr>
8097
8098 * configure.in: Bump to 1.29a.
8099
8100 2001-09-07 Akim Demaille <akim@epita.fr>
8101
8102 Version 1.29.
8103
8104 2001-08-30 Akim Demaille <akim@epita.fr>
8105
8106 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8107 * m4/atconfig.m4: Remove.
8108 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8109 * tests/bison: New.
8110 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8111 m4_if, m4_patsubst, and m4_regexp.
8112 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8113 `input' file instead of echo.
8114
8115 2001-08-29 Akim Demaille <akim@epita.fr>
8116
8117 Bump to 1.28e.
8118
8119 2001-08-29 Akim Demaille <akim@epita.fr>
8120
8121 Version 1.28d.
8122
8123 2001-08-29 Paul Eggert <eggert@twinsun.com>
8124
8125 * src/bison.simple (yyparse): Don't take the address of an
8126 item before the start of an array, as that doesn't conform to
8127 the C Standard.
8128
8129 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8130
8131 * doc/bison.texinfo (Location Tracking Calc): New node.
8132
8133 2001-08-29 Paul Eggert <eggert@twinsun.com>
8134
8135 * src/output.c (output): Do not define const, as this now
8136 causes more problems than it cures.
8137
8138 2001-08-29 Akim Demaille <akim@epita.fr>
8139
8140 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8141 the nodes.
8142 Be sure to tag the `detailmenu'.
8143
8144 2001-08-29 Akim Demaille <akim@epita.fr>
8145
8146 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8147 download in a tmp dir.
8148
8149 2001-08-28 Marc Autret <autret_m@epita.fr>
8150
8151 * config/depcomp: New file.
8152
8153 2001-08-28 Marc Autret <autret_m@epita.fr>
8154
8155 * doc/bison.1 (mandoc): Adjust.
8156 From Juan Manuel Guerrero.
8157
8158 2001-08-28 Marc Autret <autret_m@epita.fr>
8159
8160 * src/print_graph.c (print_state): Fix.
8161
8162 2001-08-27 Marc Autret <autret_m@epita.fr>
8163
8164 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8165 char * members.
8166 Echo modifications to the functions prototypes.
8167 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8168
8169 2001-08-27 Marc Autret <autret_m@epita.fr>
8170
8171 * src/vcg.c: Include `xalloc.h'.
8172 (add_colorentry): New.
8173 (add_classname): New.
8174 (add_infoname): New.
8175 * src/vcg.h: Add new prototypes.
8176
8177 2001-08-27 Akim Demaille <akim@epita.fr>
8178
8179 * Makefile.maint: Sync. again with CVS Autoconf.
8180
8181 2001-08-27 Akim Demaille <akim@epita.fr>
8182
8183 * Makefile.maint: Formatting changes.
8184 (po-update, cvs-update, update): New targets.
8185 (AMTAR): Remove.
8186
8187 2001-08-27 Akim Demaille <akim@epita.fr>
8188
8189 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8190 * Makefile.maint: Sync. with CVS Autoconf.
8191
8192 2001-08-27 Marc Autret <autret_m@epita.fr>
8193
8194 * src/vcg.h (struct infoname_s): New.
8195 (struct colorentry_s): New.
8196 (graph_s): New fields {vertical,horizontal}_order in structure.
8197 Add `infoname' field.
8198 Add `colorentry' field;
8199 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8200 (G_HORIZONTAL_ORDER): New.
8201 (G_INFONAME): New.
8202 (G_COLORENTRY): New.
8203 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8204 Add output of `infoname'.
8205 Add output of `colorentry'.
8206
8207 2001-08-27 Marc Autret <autret_m@epita.fr>
8208
8209 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8210 This one shadowed a global parameter.
8211
8212 2001-08-24 Marc Autret <autret_m@epita.fr>
8213
8214 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8215 instead of `unsigned'.
8216 (print_state): Do not call obstack_object_size () in obstack_grow ()
8217 to avoid macro variables shadowing.
8218
8219 2001-08-23 Marc Autret <autret_m@epita.fr>
8220
8221 * src/lex.c (percent_table): Typo: s/naem/name/.
8222 Add graph option.
8223 Normalize new options declarations.
8224
8225 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8226
8227 * tests/suite.at: Exercise %header_extension and %source_extension.
8228
8229 2001-08-16 Marc Autret <autret_m@epita.fr>
8230
8231 * src/reader.c (parse_dquoted_param): New.
8232 (parse_header_extension_decl): Use it.
8233 (parse_source_extension_decl): Likewise.
8234
8235 2001-08-16 Marc Autret <autret_m@epita.fr>
8236
8237 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8238 (get_xxxx_str): Use assert () instead of complain ().
8239 Remove return invokations in default cases.
8240 (get_decision_str): Modify default behaviour. Remove second argument.
8241 Echo modifications on calls.
8242 (output_graph): Fix.
8243
8244 2001-08-16 Marc Autret <autret_m@epita.fr>
8245
8246 * src/getargs.c (usage): Update with ``-g, --graph''.
8247
8248 2001-08-16 Marc Autret <autret_m@epita.fr>
8249
8250 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8251 (Option Cross Key): Likewise.
8252 * doc/bison.1: Update.
8253
1c8c2190
PB
82542001-09-25 Pascal Bart <pascal.bart@epita.fr>
8255
8256 * src/output.c (output_master_parser): Don't finish action_obstack.
8257 (output_parser): Don't care about the muscle action, here.
8258 (prepare): Copy the action_obstack in the action muscle.
8259 (output): Free action_obstack.
8260
180d45ba
PB
82612001-09-23 Pascal Bart <pascal.bart@epita.fr>
8262
8263 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8264 will contain `%union' declaration.
8265 (parse_union_decl): Delete #line directive output.
8266 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8267 informations about %union.
8268 (parse_union_decl): Copy the union_obstack in the muscle stype.
8269 * src/bison.simple: Add new #line directive.
8270 Add typdef %%stype YYSTYPE.
8271
c51d1a19
PB
82722001-09-23 Pascal Bart <pascal.bart@epita.fr>
8273
8274 * src/bison.simple: Add new `#line' directive.
8275
6f9344da
PB
82762001-09-22 Pascal Bart <pascal.bart@epita.fr>
8277
8278 * src/bison.simple: New `#line' directive.
8279 * src/output.c (output_parser): Support new dynamic muscle input_line.
8280
652def80
MA
82812001-09-22 Marc Autret <autret_m@epita.fr>
8282
8283 * src/output.c (output_master_parser): New.
8284 (output_parser): Be more re-entrant.
8285
25b222fa
MA
82862001-09-21 Marc Autret <autret_m@epita.fr>
8287
8288 * src/reader.c (copy_definition, parse_union_decl): Update and use
8289 `linef' muscle.
8290 (copy_action): Likewise.
8291 Use obstack_1grow ().
8292 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8293
6bc35ae5
MA
82942001-09-21 Marc Autret <autret_m@epita.fr>
8295
8296 * src/options.c (option_table): Adjust.
8297 * src/lex.c (parse_percent_token): Fix.
8298
c0629aa1
PB
82992001-09-20 Pascal Bart <pascal.bart@epita.fr>
8300
8301 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 8302
82b6d266
PB
83032001-09-20 Pascal Bart <pascal.bart@epita.fr>
8304
8305 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8306 is now an option_table_struct*.
8307 (option_strcmp): New function option_strcmp.
8308 (parse_percent_token): Call option_strcmp.
8309 * src/getargs.c (xalloc.h, options.h): Include it.
8310 (getargs): Call create_long_option_table.
8311 (getargs): Free longopts at the end of the function.
8312 (shortopts): Move in options.c.
8313 * src/options.c (create_long_option_table): New function. Convert
8314 information from option_table to option structure.
8315 * src/reader.c (options.h): Include it.
8316
8317 * src/Makefile.am: Adjust.
8318 * src/options.c (option_table): Create from longopts and percent_table.
8319 * src/getargs.c (longopts): Delete.
8320 * src/lex.c (struct percent_table_struct): Delete.
8321 (percent_table): Delete.
8322 (options.h): Include it.
8323 * src/options.c: Create.
8324 * src/options.h: Create.
8325 Declare enum opt_access_e.
8326 Define struct option_table_struct.
8327
75f5aaea
MA
83282001-09-20 Marc Autret <autret_m@epita.fr>
8329
8330 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8331 sections of Bison.
8332
f508cb0a
PB
83332001-09-19 Pascal Bart <pascal.bart@epita.fr>
8334
8335 * src/bison.simple: s/%%filename/%%skeleton.
8336 * src/muscle_tab.c (getargs.h): Include it.
8337 (muscle_init): Insert new muscle skeleton.
8338
13105fc1
PB
83392001-09-18 Pascal Bart <pascal.bart@epita.fr>
8340
8341 * src/output.c (output_parser): Delete unused variable actions_dumped.
8342
b0c4483e
PB
83432001-09-07 Pascal Bart <pascal.bart@epita.fr>
8344
8345 * src/output.c (output): Delete call to reader_output_yylsp.
8346 * src/reader.c (reader): Likewise.
8347 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 8348
11d82f03
MA
83492001-09-02 Marc Autret <autret_m@epita.fr>
8350
8351 * src/reader.c: Include muscle_tab.h.
8352 (parse_union_decl): Update.
8353 (parse_macro_decl): Rename parse_muscle_decl.
8354 Update to use renamed functions and variable.
8355 (read_declarations, copy_action, read_additionnal_code, : Updated
8356 with correct variables and functions names.
8357 (packsymbols, reader): Likewise.
342b8b6e 8358
11d82f03 8359 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 8360
11d82f03
MA
8361 * src/output.c: Include muscle_tab.h
8362 In all functions using macro_insert, change by using muscle_insert ().
8363 (macro_obstack): Rename muscle_obstack.
8364 Echo modifications in the whole file.
8365 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8366 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8367 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8368
8369 * src/muscle_tab.h: Update double inclusion macros.
8370 (macro_entry_s): Rename muscle_entry_s.
8371 Update prototypes.
342b8b6e 8372
11d82f03
MA
8373 * src/muscle_tab.c: Include muscle_tab.h.
8374 Rename macro_tabble to muscle_table.
8375 (mhash1, mhash2, mcmp): Use muscle_entry.
8376 (macro_init): Rename muscle_init. Update.
8377 (macro_insert): Rename muscle_insert. Update.
8378 (macro_find): Rename muscle_find. Update.
8379
8380 * src/main.c: Include muscle_tab.h.
8381 (main): Call muscle_init ().
8382 * src/Makefile.am (bison_SOURCES): Echo modifications.
8383
93a37297
MA
83842001-09-02 Marc Autret <autret_m@epita.fr>
8385
f753cd62 8386 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 8387
f753cd62
MA
8388 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8389
83902001-09-02 Marc Autret <autret_m@epita.fr>
8391
8392 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 8393
682d48cd
PB
83942001-09-01 Pascal Bart <pascal.bart@epita.fr>
8395
342b8b6e 8396 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
8397 filename.
8398
087c8fda
MA
83992001-09-01 Marc Autret <autret_m@epita.fr>
8400
8401 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8402 to an explicit value to activate the feature. We do it here.
8403
dda680cb
PB
84042001-08-31 Pascal Bart <pascal.bart@epita.fr>
8405
8406 * src/output.c (prepare): Delete the `filename' muscule insertion.
8407 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8408 (parse_union_decl): Likewise.
8409 * src/macrotab.c (macro_init): Initialize filename by infile.
8410
9e644e64
MA
84112001-08-31 Marc Autret <autret_m@epita.fr>
8412
8413 * src/bison.simple (YYLSP_NEEDED): New definition.
8414 * src/output.c (prepare): Add macro insertion of `locations_flag'
8415
17da6427
PB
84162001-08-31 Pascal Bart <pascal.bart@epita.fr>
8417
8418 * src/output.c (prepare): Delete insertion of previous muscles,
8419 and insert the `prefix' muscles.
8420 * src/macrotab.c (macro_init): Likewise.
8421 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 8422 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
8423 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8424 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 8425 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
8426 name_prefix.
8427
e8cb70b9
PB
84282001-08-31 Pascal Bart <pascal.bart@epita.fr>
8429
8430 * src/main.c (main): Standardize.
8431 * src/output.c (output_table_data, output_parser): Likewise.
8432 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8433
63c2d5de
MA
84342001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8435
342b8b6e 8436 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
8437 %%epilogue.
8438 * src/output.c (output): Rename %%declarations to %%prologue.
8439 * src/bison.simple: Echo modifications.
342b8b6e 8440
d8cb5183
MA
84412001-08-31 Marc Autret <autret_m@epita.fr>
8442
8443 * src/reader.c (readgram): CleanUp.
8444 (output_token_defines): Likewise.
8445 (packsymbols): Likewise.
8446 (reader): Likewise.
8447 * src/output.c (output): CPP-out useless code.
8448
6c686258
PB
84492001-08-31 Pascal Bart <pascal.bart@epita.fr>
8450
342b8b6e 8451 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
8452 output_trailers and output_headers.
8453 * src/output.h: Remove obsolete functions prototypes of output_headers
8454 and output_trailers.
8455
8f451ef7
PB
84562001-08-30 Pascal Bart <pascal.bart@epita.fr>
8457
8458 * src/main.c: Include macrotab.h.
342b8b6e 8459 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
8460 Adjust functions prototypes.
8461 * src/macrotab.c (macro_insert): Constify key and value.
8462 (macro_find): Constify key.
8463 (macro_insert): Include 'xalloc.h'
8464 (macro_insert): Use XMALLOC.
8465 (macro_find): Constify return value.
8466 * src/output.c (output_table_data): Rename table to table_data.
8467 (output_parser): Constify macro_key, macro_value.
8468
997b6fd0 84692001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
8470
8471 * src/reader.c (parse_skel_decl): New.
342b8b6e 8472 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
8473 * src/lex.h (token_t): New token `tok_skel'.
8474 * src/lex.c (percent_table): Add skeleton option entry.
8475 Standardize.
8476
ff48177d
MA
84772001-08-29 Marc Autret <autret_m@epita.fr>
8478
8479 * src/bison.simple: Add %%user_code directive at the end.
8480 * src/reader.c (read_additionnal_code): New.
8481 (reader): Use it.
8482 * src/output.c (output_program): Remove.
8483 (output): Update.
8484
b33160bf
MA
84852001-08-28 Marc Autret <autret_m@epita.fr>
8486
8487 * src/output.c (output_actions): Clean up.
4e5caae2 8488 (output_gram): CPP-out useless code.
b33160bf
MA
8489 * src/reader.c (reader): Clean up, CPP-out useless code.
8490
d1a2daf7
PB
84912001-08-28 Pascal Bart <pascal.bart@epita.fr>
8492
342b8b6e 8493 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 8494 directive.
d1a2daf7
PB
8495 * src/bison.simple: Add `%%definitions'.
8496
2b763dfe
MA
84972001-08-28 Marc Autret <autret_m@epita.fr>
8498
8499 * config/depcomp: New file.
8500
f1a87ef6
PE
85012001-08-27 Paul Eggert <eggert@twinsun.com>
8502
8503 * src/bison.simple (yyparse): Don't take the address of an
8504 item before the start of an array, as that doesn't conform to
8505 the C Standard.
8506
82e236e2
RA
85072001-08-27 Robert Anisko <robert.anisko@epita.fr>
8508
f1a87ef6 8509 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
8510 obstack. It was done too late here.
8511
8512 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8513 completely wrong.
8514 (reader): Initialize the macro obstack here, since we need it to grow
8515 '%define' directives.
8516
8517 * src/reader.h: Declare the macro obstack as extern.
8518
b0cfa28a
RA
85192001-08-27 Robert Anisko <robert.anisko@epita.fr>
8520
8521 * src/output.c (output_parser): Fix. Store single '%' characters in
8522 the output obstack instead of throwing them away.
8523
6fc74234
AD
85242001-08-27 Akim Demaille <akim@epita.fr>
8525
8526 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8527
9c76d118
RA
85282001-08-25 Robert Anisko <robert.anisko@epita.fr>
8529
8530 * lib/Makefile.am: Adjust.
8531
a8289c62
RA
85322001-08-25 Robert Anisko <robert.anisko@epita.fr>
8533
8534 * src/bison.simple: Update and add '%%' directives.
8535
b6610515
RA
85362001-08-25 Robert Anisko <robert.anisko@epita.fr>
8537
8538 * src/reader.c (reader): Remove calls to 'output_headers' and
8539 'output_trailers'. Remove some C output.
8540 (readgram): Disable a piece of code that was writing a default
8541 definition for 'YYSTYPE'.
8542 (reader_output_yylsp): Remove.
8543 (packsymbols): Output token defintions to a macro.
8544 (copy_definition): Disable C output.
6fc74234 8545
b6610515
RA
8546 * src/reader.c (parse_macro_decl): New function used to parse macro
8547 declarations.
8548 (copy_string2): Put the body of copy_string into this new function.
8549 Add a parameter to let the caller choose whether he wants to copy the
8550 string delimiters or not.
8551 (copy_string): Be a simple call to copy_string2 with the last argument
8552 bound to true.
8553 (read_declarations): Add case for macro definition.
8554 (copy_identifier): New.
6fc74234 8555 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
8556 rather than lex.
8557
26f609ff
RA
85582001-08-25 Robert Anisko <robert.anisko@epita.fr>
8559
8560 * src/output.c (prepare): Add prefixed names.
8561 (output_parser): Output semantic actions.
8562 (output_parser): Fix bug on '%%line' directives.
6fc74234 8563
26f609ff
RA
8564 * src/output.c (output_headers): Remove. The C code printed by this
8565 function should now be in the skeletons.
8566 (output_trailers): Remove.
8567 (output): Disable call to 'reader_output_yylsp'.
8568 (output_rule_data): Do not output tables to the table obstack.
8569
8570 * src/output.c: Remove some C dedicated output.
8571 Improve the use of macro and output obstacks.
8572 (output_defines): Remove.
6fc74234 8573
26f609ff
RA
8574 * src/output.c (output_token_translations): Associate 'translate'
8575 table with a macro. No output to the table obstack.
8576 (output_gram): Same for 'rhs' and 'prhs'.
8577 (output_stos): Same for 'stos'.
8578 (output_rule_data): Same for 'r1' and 'r2'.
8579 (token_actions): Same for 'defact'.
8580 (goto_actions): Same for 'defgoto'.
8581 (output_base): Same for 'pact' and 'pgoto'.
8582 (output_table): Same for 'table'.
8583 (output_check): Same for 'check'.
6fc74234 8584
26f609ff
RA
8585 * src/output.c (output_table_data): New function.
8586 (output_short_table): Remove.
8587 (output_short_or_char_table): Remove.
6fc74234 8588
26f609ff
RA
8589 * src/output.c (output_parser): Replace most of the skeleton copy code
8590 with something new. Skeletons are now processed character by character
8591 rather than line by line, and Bison looks for '%%' macros. This is the
8592 first step in making Bison's output process (a lot) more flexible.
8593 (output_parser): Use the macro table.
8594
6f43b113
RA
85952001-08-25 Robert Anisko <robert.anisko@epita.fr>
8596
8597 * src/main.c (main): Initialize the macro table.
8598
dd3127cf
RA
85992001-08-25 Robert Anisko <robert.anisko@epita.fr>
8600
8601 * src/lex.c (percent_table): Add tok_define.
8602 * src/lex.h: Add tok_define.
8603
aa321494
RA
86042001-08-25 Robert Anisko <robert.anisko@epita.fr>
8605
8606 * src/macrotab.c: New file.
8607 * src/macrotab.h: New file.
8608 * src/Makefile.am: Update.
8609
68bd3b6b
RA
86102001-08-25 Robert Anisko <robert.anisko@epita.fr>
8611
8612 * lib/hash.c: New file.
8613 * lib/hash.h: New file.
8614 * lib/Makefile.am: Update.
8615
45f8dd1e
AD
86162001-08-15 Akim Demaille <akim@epita.fr>
8617
8618 Version 1.28c.
8619
40a64a7a 86202001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
8621
8622 * src/reader.c (readgram): Indent output macro YYSTYPE.
8623 (packsymbols): Likewise.
8624 (output_token_defines): Likewise.
8625 * src/files.c: Standardize.
8626 (compute_header_macro): New.
8627 (defines_obstack_save): New. Use compute_header_macro.
8628 (output_files): Update. Use defines_obstack_save.
8629
f9a8293a
AD
86302001-08-15 Akim Demaille <akim@epita.fr>
8631
8632 * doc/bison.texinfo (Table of Symbols): Document
8633 YYSTACK_USE_ALLOCA.
8634
150ca7a7
AD
86352001-08-15 Akim Demaille <akim@epita.fr>
8636
8637 * missing: Update from CVS Automake.
8638 * config/config.guess, config/config.sub, config/texinfo.tex:
8639 Update from gnu.org.
8640
69b5cec4
AD
86412001-08-15 Akim Demaille <akim@epita.fr>
8642
8643 * Makefile.maint: Sync with CVS Autoconf.
8644
f2b5126e
PB
86452001-08-14 Pascal Bart <pascal.bart@epita.fr>
8646
69b5cec4 8647 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
8648 `fdl.texi'.
8649 * doc/fdl.texi: Add to package.
8650
4ecbf796
MA
86512001-08-14 Marc Autret <autret_m@epita.fr>
8652
8653 Turn on %{source,header}_extension features.
8654
69b5cec4 8655 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
8656 source_extension.
8657 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 8658 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
8659 between options.
8660
95fb5662
MA
86612001-08-14 Marc Autret <autret_m@epita.fr>
8662
8663 * src/files.c (compute_base_names): Add extensions computing when
8664 `--file-prefix' used.
8665 Standardize function calls.
8666
78d09da9
MA
86672001-08-13 Marc Autret <autret_m@epita.fr>
8668
69b5cec4 8669 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
8670 defining it (defined but null disables alloca).
8671
5a009f2c
MA
86722001-08-13 Marc Autret <autret_m@epita.fr>
8673
8674 * src/bison.simple (_yy_memcpy): CPP reformat.
8675
1e41465a
PB
86762001-08-13 Pascal Bart <pascal.bart@epita.fr>
8677
8678 * tests/atconfig.in (CPPFLAGS): Fix.
8679
c67a198d
PB
86802001-08-10 Pascal Bart <pascal.bart@epita.fr>
8681
79282c6c 8682 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
8683 `gpl.texi'.
8684 * doc/gpl.texi: Add to package.
8685
09a6de7e
MA
86862001-08-10 Marc Autret <autret_m@epita.fr>
8687
8688 * src/print_graph.h: Fix.
8689 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
8690
b77b9ee0
AD
86912001-08-10 Akim Demaille <akim@epita.fr>
8692
8693 * src/system.h: Provide default declarations for stpcpy, strndup,
8694 and strnlen.
8695
3e259915
MA
86962001-08-10 Robert Anisko <anisko_r@epita.fr>
8697
8698 * doc/bison.texinfo (Locations): Update @$ stuff.
8699
ca96bc2d
MA
87002001-08-09 Robert Anisko <anisko_r@epita.fr>
8701
8702 * src/bison.simple (YYLLOC_DEFAULT): Update.
8703 (yyparse): Adjust.
8704
fdc6758b
MA
87052001-08-08 Marc Autret <autret_m@epita.fr>
8706
b77b9ee0 8707 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
8708 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8709 Reported by Fabrice Bauzac.
957d4dbf 8710
600cad3b
MA
87112001-08-08 Marc Autret <autret_m@epita.fr>
8712
8713 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
8714 * src/vcg.c (output_node): Fix.
8715 * src/vcg.h: Cleanup.
8716 * src/print_graph.c: Add comments.
b77b9ee0 8717 (node_output_size): New global variable. Simplify the formatting of
600cad3b 8718 the VCG graph output.
b77b9ee0 8719 (print_actions): Unused code is now used. It notifies the final state
600cad3b 8720 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 8721 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
8722 blue.
8723 Get the current node name and node_obstack by argument.
8724 (node_obstack): New variable.
8725 (print_state): Manage node_obstack.
8726 (print_core): Use node_obstack given by argument.
8727 A node is not only computed here but in print_actions also.
8728 (print_graph): CPP out useless code instead of commenting it.
8729
976e528f
AD
87302001-08-07 Pascal Bart <pascal.bart@epita.fr>
8731
8732 * tests/atconfig.in (CPPFLAGS): Fix.
8733
20e8e5ca
AD
87342001-08-07 Akim Demaille <akim@epita.fr>
8735
8736 * src/print_graph.c (quote): New.
8737 (print_core): Use it.
8738
957d4dbf 87392001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 8740
3e3da797
AD
8741 * src/vcg.c (complain.h): Include it.
8742 Unepitaize `return' invocations.
c4b66126 8743 [NDEBUG] (main): Remove.
79282c6c 8744 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
8745 * src/files.c (open_files): Initialize graph_obstack.
8746 * src/print_graph.c (print_actions): CPP out useless code.
8747 (print_core): Don't output the last `\n' in labels.
8748 Use `quote'.
8749 * src/files.c (output_files): Output the VCG file.
8750 * src/main.c (main): Invoke print_graph ();
3e3da797 8751
957d4dbf 87522001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
8753
8754 Automaton VCG graph output.
8755 Using option ``-g'' or long option ``--graph'', you can generate
8756 a gram_filename.vcg file containing a VCG description of the LALR (1)
8757 automaton of your grammar.
8758
8759 * src/main.c: Call to print_graph() function.
8760 * src/getargs.h: Update.
8761 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
8762 (graph_flag): New flag.
8763 (longopts): Update.
8764 (getargs): Add case `g'.
8765 * src/files.c (graph_obstack): New obstack struct.
8766 (open_files): Initialize new obstack.
8767 (output_files): Saves graph_obstack if required.
8768 * src/files.h (graph_obstack): New extern declaration.
8769 * src/Makefile.am: Add new source files.
8770
927c1557 87712001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
8772
8773 * src/print_graph.c, src/print_graph.h (graph): New.
8774 * src/vcg.h: New file.
8775 * src/vcg.c: New file, VCG graph handling.
8776
7333d403
AD
87772001-08-06 Marc Autret <autret_m@epita.fr>
8778
8779 Add of %source_extension and %header_extension which specify
8780 the source or/and the header output file extension.
8781
8782 * src/files.c (compute_base_names): Remove initialisation of
8783 src_extension and header_extension.
8784 (compute_exts_from_gf): Update.
8785 (compute_exts_from_src): Update.
8786 (output_files): Update.
8787 * src/reader.c (parse_header_extension_decl): New.
8788 (parse_source_extension_decl): New.
8789 (read_declarations): New case statements for the new tokens.
8790 * src/lex.c (percent_table): Add entries for %source_extension
8791 and %header_extension.
8792 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
8793
84163231
AD
87942001-08-06 Marc Autret <autret_m@epita.fr>
8795
8796 * configure.in: Bump to 1.28c.
8797 * doc/bison.texinfo: Texinfo thingies.
8798
8303fc42
AD
87992001-08-04 Pascal Bart <pascal.bart@epita.fr>
8800
8801 * tests/atconfig.in (CPPFLAGS): Add.
8802 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8803
70a84437
AD
88042001-08-03 Akim Demaille <akim@epita.fr>
8805
8806 Version 1.28b.
8807
2ce10144
AD
88082001-08-03 Akim Demaille <akim@epita.fr>
8809
8810 * tests/Makefile.am (check-local): Ship testsuite.
8811 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
8812 Include `string.h'.
8813
1e3e4bc1
AD
88142001-08-03 Akim Demaille <akim@epita.fr>
8815
8816 * configure.in: Try using -Wformat when compiling.
8817
42b45b7f
AD
88182001-08-03 Akim Demaille <akim@epita.fr>
8819
8820 * configure.in: Bump to 1.28b.
8821
8f13fe33
AD
88222001-08-03 Akim Demaille <akim@epita.fr>
8823
8824 * src/complain.c: Adjust strerror_r portability issues.
8825
b37ba92c
AD
88262001-08-03 Akim Demaille <akim@epita.fr>
8827
8828 Version 1.28a.
8829
b0ce6046
AD
88302001-08-03 Akim Demaille <akim@epita.fr>
8831
8832 * src/getargs.c, src/getarg.h (skeleton)): Constify.
8833 * src/lex.c (literalchar): Avoid name clashes on `buf'.
8834 * src/getargs.c: Include complain.h.
8835 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
8836 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
8837
d01c415b
AD
88382001-08-03 Akim Demaille <akim@epita.fr>
8839
8840 * src/reader.c (readgram): Display hidden chars in error messages.
8841
459dd1a6
AD
88422001-08-03 Akim Demaille <akim@epita.fr>
8843
8844 Update to gettext 0.10.39.
8845
53b74c0c
AD
88462001-08-03 Akim Demaille <akim@epita.fr>
8847
8848 * lib/strspn.c: New.
8849
234a3be3
AD
88502001-08-01 Marc Autret <autret_m@epita.fr>
8851
8852 * doc/bison.texinfo: Update.
8853 * doc/bison.1 (mandoc): Update.
8854 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
8855 * src/files.c: Support output files extensions computing.
8856 (src_extension): New static variable.
8857 (header_extension): New static variable.
8858 (tr): New function.
8859 (get_extension_index): New function, gets the index of an extension
8860 filename in a string.
8861 (compute_exts_from_gf): New function, computes extensions from the
8862 grammar file extension.
8863 (compute_exts_from_src): New functions, computes extensions from the
8864 C source file extension, file given by ``-o'' option.
8865 (compute_base_names): Update.
8866 (output_files): Update.
8867
847bf1f5
AD
88682001-08-01 Robert Anisko <anisko_r@epita.fr>
8869
d995fee7 8870 * doc/bison.texi: Document @$.
847bf1f5
AD
8871 (Locations): New section.
8872
d074a105
AD
88732001-07-18 Akim Demaille <akim@epita.fr>
8874
8875 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
8876 * config/prev-version.txt, config/move-if-change: New.
8877 * Makefile.am: Adjust.
8878
3419715d
AD
88792001-07-08 Pascal Bart <pascal.bart@epita.fr>
8880
8881 * src/bison.simple (yyparse): Suppress warning `comparaison
8882 between signed and unsigned'.
8883
62ab6972
AD
88842001-07-05 Pascal Bart <pascal.bart@epita.fr>
8885
8886 * src/getargs.h (raw_flag): Remove.
8887 * src/getargs.c: Die on `-r'/`--raw'.
8888 * src/lex.c (parse_percent_token): Die on `%raw'.
8889 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
8890 * tests/calc.at: Suppress test with option `--raw'.
8891
1e24cc5b
AD
88922001-07-14 Akim Demaille <akim@epita.fr>
8893
8894 * config/: New.
8895 * configure.in: Require Autoconf 2.50.
8896 Update to gettext 0.10.38.
8897
32dfccf8
AD
88982001-03-16 Akim Demaille <akim@epita.fr>
8899
8900 * doc/bison.texinfo: ANSIfy the examples.
8901
cd5bd6ac
AD
89022001-03-16 Akim Demaille <akim@epita.fr>
8903
8904 * getargs.c (skeleton): New variable.
8905 (longopts): --skeleton is a new option.
8906 (shortopts, getargs): -S is a new option.
8907 * getargs.h: Declare skeleton.
8908 * output.c (output_parser): Use it.
8909
5141b016
AD
89102001-03-16 Akim Demaille <akim@epita.fr>
8911
8912 * m4/strerror_r.m4: New.
8913 * m4/error.m4: Run AC_FUNC_STRERROR_R.
8914 * lib/error.h, lib/error.c: Update.
8915
447992b9
AD
89162001-03-16 Akim Demaille <akim@epita.fr>
8917
8918 * src/getargs.c (longopts): Clean up.
8919
274d42ce
AD
89202001-02-21 Akim Demaille <akim@epita.fr>
8921
8922 * src/reader.c (gensym): `gensym_count' is your own.
8923 Use a static buf to create the symbol name, as token_buffer is no
8924 longer a buffer.
8925
22c821f3
AD
89262001-02-08 Akim Demaille <akim@epita.fr>
8927
8928 * src/conflicts.c (conflict_report): Be sure not to append to res
8929 between two calls, which could happen if both first sprintf were
8930 skipped, but not the first cp += strlen.
8931
18569462
AD
89322001-02-08 Akim Demaille <akim@epita.fr>
8933
8934 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
8935 New, from fileutils 4.0.37.
8936 * configure.in: Require Autoconf 2.49c. I took some time before
8937 making this decision. This is the only way out for portability
8938 issues in Bison, it would mean way too much duplicate effort to
8939 import in Bison features implemented in 2.49c since 2.13.
8940 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
8941
0d8f3c8a
AD
89422001-02-02 Akim Demaille <akim@epita.fr>
8943
8944 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 8945 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 8946
f17bcd1f
AD
89472001-01-19 Akim Demaille <akim@epita.fr>
8948
8949 Get rid of the ad hoc handling of token_buffer in the scanner: use
8950 the obstacks.
8951
8952 * src/lex.c (token_obstack): New.
8953 (init_lex): Initialize it. No longer call...
8954 (grow_token_buffer): this. Remove it.
8955 Adjust all the places which used it to use the obstack.
8956
511e79b3
AD
89572001-01-19 Akim Demaille <akim@epita.fr>
8958
8959 * src/lex.h: Rename all the tokens:
8960 s/\bENDFILE\b/tok_eof/g;
8961 s/\bIDENTIFIER\b/tok_identifier/g;
8962 etc.
8963 Let them be enums, not #define, to ease debugging.
8964 Adjust all the code.
8965
0d6508ef
AD
89662001-01-18 Akim Demaille <akim@epita.fr>
8967
8968 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
8969 * src/lex.c (maxtoken, grow_token_buffer): Static.
8970
6deb4447
AD
89712001-01-18 Akim Demaille <akim@epita.fr>
8972
8973 Since we now use obstacks, more % directives can be enabled.
8974
8975 * src/lex.c (percent_table): Also accept `%yacc',
8976 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
8977 `%debug'.
8978 Handle the actions for `%semantic_parser' and `%pure_parser' here,
8979 instead of returning a token.
8980 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
8981 * src/reader.c (read_declarations): Adjust.
8982 * src/files.c (open_files): Don't call `compute_base_names', don't
8983 compute `attrsfile' since they depend upon data which might be
8984 *in* the input file now.
8985 (output_files): Do it here.
8986 * src/output.c (output_headers): Document the fact that this patch
8987 introduces a guaranteed SEGV for semantic parsers.
8988 * doc/bison.texinfo: Document them.
8989 * tests/suite.at: Exercise these %options.
8990
ff4423cc
AD
89912000-12-20 Akim Demaille <akim@epita.fr>
8992
8993 Also handle the output file (--verbose) with obstacks.
8994
8995 * files.c (foutput): Remove.
8996 (output_obstack): New.
8997 Adjust all dependencies.
8998 * src/conflicts.c: Return a string.
8999 * src/system.h (obstack_grow_string): Rename as...
9000 (obstack_sgrow): this. Be ready to work with non literals.
9001 (obstack_fgrow4): New.
9002
956dba3a
AD
90032000-12-20 Akim Demaille <akim@epita.fr>
9004
9005 * src/files.c (open_files): Fix the computation of short_base_name
9006 in the case of `-o foo.tab.c'.
9007
337bab46
AD
90082000-12-20 Akim Demaille <akim@epita.fr>
9009
9010 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
9011 (copy_dollar): Now that everything uses obstacks, get rid of the
9012 FILE * parameters.
9013
5d3214b8
AD
90142000-12-20 Akim Demaille <akim@epita.fr>
9015
9016 * src/files.c (open_files): Actually the `.output' file is based
9017 on the short_base_name, not base_name.
9018 * tests/suite.at (Checking output file names): Adjust.
9019
29092a57
AD
90202000-12-20 Akim Demaille <akim@epita.fr>
9021
9022 * src/bison.s1: Remove, we now use directly...
9023 * src/bison.simple: this.
9024 * src/Makefile.am: Use pkgdata instead of data.
9025
ea5607fd
AD
90262000-12-20 Akim Demaille <akim@epita.fr>
9027
9028 * src/files.c (guard_obstack): New.
9029 (open_files): Initialize it.
9030 (output_files): Dump it...
9031 * src/files.h: Export it.
9032 * src/reader.c (copy_guard): Use it.
9033
27110317
AD
90342000-12-19 Akim Demaille <akim@epita.fr>
9035
9036 * src/files.c (outfile, defsfile, actfile): Removed as global
9037 vars.
9038 (open_files): Don't compute them.
9039 (output_files): Adjust.
9040 (base_name, short_base_name): Be global.
9041 Adjust dependencies.
9042
19c50364
AD
90432000-12-19 Akim Demaille <akim@epita.fr>
9044
9045 * src/files.c (strsuffix): New.
9046 (stringappend): Be just like strcat but allocate.
9047 (base_names): Eve out from open_files.
9048 Try to simplify the rather hairy computation of base_name and
9049 short_base_name.
9050 (open_files): Use it.
9051 * tests/suite.at (Checking output file names): New test.
9052
573c1d9f
AD
90532000-12-19 Akim Demaille <akim@epita.fr>
9054
9055 * src/system.h (obstack_grow_literal_string): Rename as...
9056 (obstack_grow_string): this.
9057 * src/output.c (output_parser): Recognize `%% actions' instead of
9058 `$'.
9059 * src/bison.s1: s/$/%% actions/.
9060 * src/bison.hairy: Likewise.
9061
ef7ddedd
AD
90622000-12-19 Akim Demaille <akim@epita.fr>
9063
9064 * src/output.c (output_parser): Compute the `#line' lines when
9065 there are.
9066 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9067 Suggested by Hans Aberg.
9068
ff61dabd
AD
90692000-12-19 Akim Demaille <akim@epita.fr>
9070
9071 Let the handling of the skeleton files be local to the procedures
9072 that use it.
9073
9074 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9075 longer static.
9076 (fparser, open_extra_files): Remove.
9077 (open_files, output_files): Don't take care of fparser.
9078 * src/files.h: Adjust.
9079 * src/output.c (output_parser): Open and close the file to the
9080 skeleton.
9081 * src/reader.c (read_declarations): When %semantic_parser, open
9082 fguard.
9083
55b96341
AD
90842000-12-19 Akim Demaille <akim@epita.fr>
9085
9086 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9087 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9088
358c15b7
AD
90892000-12-19 Akim Demaille <akim@epita.fr>
9090
9091 * src/files.c (open_files): Yipee! We no longer need all the code
9092 looking for `/tmp' since we have no tmp file.
9093
7de3329e
AD
90942000-12-19 Akim Demaille <akim@epita.fr>
9095
9096 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9097 New macros.
9098 * src/files.c (open_files): Less dependency on MSDOS etc.
9099
3abcd459
AD
91002000-12-14 Akim Demaille <akim@epita.fr>
9101
9102 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9103 Provide a default definition.
9104 Use it when executing the default @ action.
9105 * src/reader.c (reader_output_yylsp): No longer include
9106 `timestamp' and `text' in the default YYLTYPE.
9107
2a91a95e
AD
91082000-12-12 Akim Demaille <akim@epita.fr>
9109
9110 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9111 (copy_guard): Quote the file names.
9112 Reported by Laurent Mascherpa.
9113
14d3eb9b
AD
91142000-12-12 Akim Demaille <akim@epita.fr>
9115
9116 * src/output.c (output_headers, output_program, output): Be sure
9117 to escape special characters when outputting filenames.
9118 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9119 (output_headers): Don't depend on them, Use ACTSTR.
9120
d7045ec6
AD
91212000-11-17 Akim Demaille <akim@epita.fr>
9122
9123 * lib/obstack.h: Formatting changes.
9124 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9125 prevents type checking.
9126 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9127 cast the value to (void *): assigning a `foo *' to a `void *'
9128 variable is valid.
9129 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9130 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9131 append characters.
9132
6fd54b73
AD
91332000-11-17 Akim Demaille <akim@epita.fr>
9134
9135 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9136 as...
9137 (suite.m4, regression.m4, calc.m4): these.
9138 * tests/atgeneral.m4: Update from CVS Autoconf.
9139
4c50eae6
AD
91402000-11-17 Akim Demaille <akim@epita.fr>
9141
9142 * tests/regression.m4 (%union and --defines): New test,
9143 demonstrating a current bug in the obstack implementation.
9144
a35f64ea
AD
91452000-11-17 Akim Demaille <akim@epita.fr>
9146
9147 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9148 macros.
9149 Use them to declare the variables which are global or local to
9150 `yyparse'.
9151
7de23534
AD
91522000-11-17 Akim Demaille <akim@epita.fr>
9153
9154 * acconfig.h: Remove, no longer used.
9155
aa7815f5
AD
91562000-11-07 Akim Demaille <akim@epita.fr>
9157
9158 * src: s/Copyright (C)/Copyright/g.
9159
5af1f549
AD
91602000-11-07 Akim Demaille <akim@epita.fr>
9161
9162 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9163 defining.
9164 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9165
553e2b22
AD
91662000-11-07 Akim Demaille <akim@epita.fr>
9167
9168 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9169 Merge in a single CPP if/else.
9170
8a4f41d6
AD
91712000-11-07 Akim Demaille <akim@epita.fr>
9172
9173 * src/output.c (output): Remove useless variables.
9174 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9175 argument `data' for consistency with the prototypes.
9176 Qualify it `const'.
9177 (obstack_copy, obstack_copy0): Rename the second argument as
9178 `address' for consistency. Qualify it `const'.
9179 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9180 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9181 `const' their input argument (`data' or `address').
9182 Adjust the corresponding macros to include `const' in casts.
9183
095a3fb5
AD
91842000-11-03 Akim Demaille <akim@epita.fr>
9185
9186 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9187 s/PFILE1/BISON_HAIRY/.
9188 Adjust dependencies.
9189
d1cdce7c
AD
91902000-11-03 Akim Demaille <akim@epita.fr>
9191
090c5ebf 9192 For some reason, this was not applied.
d1cdce7c
AD
9193
9194 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9195 `unlink': it's no longer used.
9196
9311529b
AD
91972000-11-03 Akim Demaille <akim@epita.fr>
9198
9199 * src/files.c (skeleton_find): New function, eved out of...
9200 (open_files, open_extra_files): here.
9201
d8880f69
AD
92022000-11-03 Akim Demaille <akim@epita.fr>
9203
9204 Don't use `atexit'.
9205
9206 * src/files.c (obstack_save): New function.
9207 (done): Rename as...
9208 (output_files): this.
9209 Use `obstack_save'.
9210 * src/main.c (main): Don't use `atexit' to register `done', since
9211 it no longer has to remove tmp files, just call `output_files'
9212 when there are no errors.
9213
0dbb648e
AD
92142000-11-02 Akim Demaille <akim@epita.fr>
9215
9216 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9217 `unlink': it's no longer used.
9218 * src/files.h: Formatting changes.
9219
896fe5c1
AD
92202000-11-02 Akim Demaille <akim@epita.fr>
9221
9222 Remove the last uses of mktemp and unlink/delete.
9223
9224 * src/files.c (fdefines, ftable): Removed.
9225 (defines_ostack, table_obstack): New.
9226 Adjust dependencies of the former into uses of the latter.
9227 * src/output.c (output_short_or_char_table, output_short_table):
9228 Convert to using obstacks.
9229 * src/reader.c (copy_comment2): Accept one FILE * and two
9230 obstacks.
9231 (output_token_defines, reader_output_yylsp): Use obstacks.
9232 * src/system.h (obstack_fgrow3): New.
9233
dd60faec
AD
92342000-11-01 Akim Demaille <akim@epita.fr>
9235
9236 Change each use of `fattrs' into a use of `attrs_obstack'.
9237
9238 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9239 * src/files.c (fattrs): Remove.
9240 (attrs_obstack): New.
9241 Adjust all dependencies.
9242 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9243
8c7ebe49
AD
92442000-11-01 Akim Demaille <akim@epita.fr>
9245
9246 Introduce obstacks.
9247 Change each use of `faction' into a use of `action_obstack'.
9248
9249 * lib/obstack.h, lib/obstack.c: New files.
9250 * src/files.c (faction): Remove.
9251 (action_obstack): New.
9252 Adjust all dependencies.
9253
77aee789
AD
92542000-10-20 Akim Demaille <akim@epita.fr>
9255
9256 * lib/quote.h (PARAMS): New macro. Use it.
9257
43591cec
AD
92582000-10-16 Akim Demaille <akim@epita.fr>
9259
9260 * src/output.c (output_short_or_char_table): New function.
9261 (output_short_table, output_token_translations): Use it.
9262 (goto_actions): Use output_short_table.
9263
1e9798d5
AD
92642000-10-16 Akim Demaille <akim@epita.fr>
9265
9266 * src/symtab.c (bucket_new): New function.
9267 (getsym): Use it.
9268
9269 * src/output.c (output_short_table): New argument to display the
9270 comment associated with the table.
9271 Adjust dependencies.
9272 (output_gram): Use it.
9273 (output_rule_data): Nicer output layout for YYTNAME.
9274
f282676b
AD
92752000-10-16 Akim Demaille <akim@epita.fr>
9276
9277 * src/lex.c (read_typename): New function.
9278 (lex): Use it.
9279 * src/reader.c (copy_dollar): Likewise.
9280
550a72a3
AD
92812000-10-16 Akim Demaille <akim@epita.fr>
9282
9283 * src/reader.c (copy_comment2): Expect the input stream to be on
9284 the `/' which is suspected to open a comment, instead of being
9285 called after `//' or `/*' was read.
9286 (copy_comment, copy_definition, parse_union_decl, copy_action)
9287 (copy_guard): Adjust.
9288
131e2fef
AD
92892000-10-16 Akim Demaille <akim@epita.fr>
9290
9291 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9292 `read_signed_integer'.
9293
79282c5a
AD
92942000-10-16 Akim Demaille <akim@epita.fr>
9295
9296 * src/reader.c (copy_dollar): New function.
9297 (copy_guard, copy_action): Use it.
9298
ff4a34be
AD
92992000-10-16 Akim Demaille <akim@epita.fr>
9300
9301 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9302 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9303 New files, from Fileutils 4.0.27.
9304 * src/main.c (printable_version): Remove.
9305 * src/lex.c, src/reader.c: Use `quote'.
9306
93072000-10-04 Akim Demaille <akim@epita.fr>
9308
9309 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9310
14ded682
AD
93112000-10-04 Akim Demaille <akim@epita.fr>
9312
9313 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9314
8e03724b
AD
93152000-10-04 Akim Demaille <akim@epita.fr>
9316
9317 When a literal string is used to define two different tokens,
9318 `bison -v' segfaults.
9319 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9320
9321 * tests/regression.m4: New file.
9322 Include the core of the sample provided by Piotr Gackiewicz.
9323 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9324 properly.
9325
a9e64249
AD
93262000-10-04 Akim Demaille <akim@epita.fr>
9327
9328 * src/reader.c (parse_expect_decl): Keep `count' within the size
9329 of `buffer'.
9330 From Neil Booth.
9331
da9abf43
AD
93322000-10-02 Paul Eggert <eggert@twinsun.com>
9333
9334 * bison.s1 (yyparse): Assign the default value
9335 unconditionally, to avoid a GCC warning and make the parser a
9336 tad smaller.
9337
c33638bb
AD
93382000-10-02 Akim Demaille <akim@epita.fr>
9339
9340 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9341 options.
9342
444c570a
AD
93432000-10-02 Akim Demaille <akim@epita.fr>
9344
9345 * src/derives.c, src/print.c, src/reduce.c: To ease the
9346 translation, move some `\n' out of the translated strings.
9347
89cab50d
AD
93482000-10-02 Akim Demaille <akim@epita.fr>
9349
9350 The location tracking mechanism is precious for parse error
9351 messages. Nevertheless, it is enabled only when `@n' is used in
9352 the grammar, which is a different issue (you can use it in error
9353 message, but not in the grammar per se). Therefore, there should
9354 be another means to enable it.
9355
9356 * src/getargs.c (getargs): Support `--locations'.
9357 (usage): Report it.
9358 * src/getargs.h (locationsflag): Export it.
9359 * src/lex.c (percent_table): Support `%locations'.
9360 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9361 with `locationsflag'.
9362 * doc/bison.texinfo: Document `--locations' and `%locations'.
9363 Sort the options.
9364 * tests/calc.m4: Test it.
9365
9366 For regularity of the names, replace each
9367 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9368 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9369 In addition replace each `flag' with `_flag'.
9370
d6c2cba0
AD
93712000-10-02 Akim Demaille <akim@epita.fr>
9372
9373 Also test parse error messages, including with YYERROR_VERBOSE.
9374
9375 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9376 associative).
9377 Use it to check the computations.
9378 Use it to check `nonassoc' is honored.
9379 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9380 `--yyerror-verbose'.
9381 (_AT_CHECK_CALC): Adjust to this option.
9382 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9383
5a35a6cb
AD
93842000-10-02 Akim Demaille <akim@epita.fr>
9385
9386 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9387 the latter demonstrates a flaw in the handling of non debugging
9388 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9389 was used in order to simplify:
9390
9391 #if YYDEBUG
9392 if (yydebug)
9393 {
9394 ...
9395 }
9396 #endif
9397
9398 into
9399
9400 if (yydebug)
9401 {
9402 ...
9403 }
9404
9405 unfortunately this leads to a CPP conflict when
9406 `--name-prefix=foo' is used since it produces `#define yydebug
9407 foodebug'.
9408
9409 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9410 (YYDPRINTF): New macro.
9411 Spread its use.
9412 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9413 the bison options.
9414 Also test `--verbose', `--defines' and `--name-prefix'.
9415
71da9eea
AD
94162000-10-02 Akim Demaille <akim@epita.fr>
9417
9418 Improve the readability of the produced parsers.
9419
9420 * src/bison.s1: Formatting changes.
9421 Improve the comment related to the `$' mark.
9422 (yydefault): Don't fall through to `yyresume': `goto' there.
9423 * src/output.c (output_parser): When the `$' is met, skip the end
9424 of its line.
9425 New variable, `number_of_dollar_signs', to check there's exactly
9426 one `$' in the parser skeleton.
9427
95e36146
AD
94282000-10-02 Akim Demaille <akim@epita.fr>
9429
9430 * lib/xstrdup.c: New file, from the fileutils.
9431 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9432 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9433 instead of strlen + xmalloc + strcpy.
9434 * src/symtab.c (copys): Remove, use xstrdup instead.
9435
d7020c20
AD
94362000-10-02 Akim Demaille <akim@epita.fr>
9437
9438 * src/gram.h (associativity): New enum type which replaces the
9439 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9440 `right_assoc', `left_assoc' and `non_assoc'.
9441 Adjust all dependencies.
9442 * src/reader.c: Formatting changes.
9443 (LTYPESTR): Don't define it, use it as a literal in
9444 `reader_output_yylsp'.
9445 * src/symtab.h (symbol_class): New enum type which replaces the
9446 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9447 `sunknown', `stoken and `snterm'.
9448
1916f98e
AD
94492000-10-02 Akim Demaille <akim@epita.fr>
9450
9451 * src/getargs.c (fixed_outfiles): Rename as...
9452 (yaccflag): for consistency and accuracy.
9453 Adjust dependencies.
9454
d7913476
AD
94552000-10-02 Akim Demaille <akim@epita.fr>
9456
9457 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9458 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9459 difficult and introduced a lot of core dump. It turns out that
9460 Bison used an implementation of `xmalloc' based on `calloc', and
9461 at various places it does depend upon the initialization to 0. I
9462 have not tried to isolate the pertinent places, and all the former
9463 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9464 someone should address this issue.
9465
9466 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9467 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9468 files.
9469 Adjust dependencies.
9470 * src/warshall.h: New file.
9471 Propagate.
9472
340ef489
AD
94732000-10-02 Akim Demaille <akim@epita.fr>
9474
9475 Various anti-`extern in *.c' changes.
9476
9477 * src/system.h: Include `assert.h'.
9478
b2ca4022
AD
94792000-10-02 Akim Demaille <akim@epita.fr>
9480
9481 * src/state.h (nstates, final_state, first_state, first_shift)
9482 (first_reduction): Move their exportation from here...
9483 * src/LR0.h: to here.
9484 Adjust dependencies.
9485 * src/getargs.c (statisticsflag): New variable.
9486 Add support for `--statistics'.
9487 Adjust dependencies.
9488
9489 Remove a lot of now useless `extern' statements in most files.
9490
403b315b
AD
94912000-10-02 Akim Demaille <akim@epita.fr>
9492
9493 * src/LR0.h: New file.
9494 Propagate its use.
9495
07a58c13
AD
94962000-10-02 Akim Demaille <akim@epita.fr>
9497
9498 * src/print.h: New file.
9499 Propagate its use.
9500 * src/print.c: Formatting and ordering changes.
9501 (verbose, terse): Replace with...
9502 (print_results): this new function.
9503 Adjust dependencies.
9504
0619caf0
AD
95052000-10-02 Akim Demaille <akim@epita.fr>
9506
9507 * src/conflicts.c (conflict_report): New function.
9508 (conflict_log, verbose_conflict_log): Replace with...
9509 (print_conflicts): this function.
9510 Adjust dependencies.
9511 * src/conflicts.h: New file.
9512 Propagate its inclusion.
9513
3519ec76
AD
95142000-10-02 Akim Demaille <akim@epita.fr>
9515
9516 * src/nullable.h: New file.
9517 Propagate its inclusion.
9518 * src/nullable.c: Formatting changes.
9519
015acc48
AD
95202000-10-02 Akim Demaille <akim@epita.fr>
9521
9522 * src/reduce.h: New file.
9523 Propagate its inclusion.
9524 * src/reduce.c: Topological sort and other formatting changes.
9525 (bool, TRUE, FALSE): Move their definition to...
9526 * src/system.h: here.
9527
8963a27b
AD
95282000-10-02 Akim Demaille <akim@epita.fr>
9529
9530 * src/files.c: Formatting changes.
9531 (tryopen, tryclose, openfiles): Rename as...
9532 (xfopen, xfclose, open_files): this.
9533 (stringappend): static.
9534 * src/files.h: Complete the list of exported symbols.
9535 Propagate its use.
9536
a70083a3
AD
95372000-10-02 Akim Demaille <akim@epita.fr>
9538
9539 * src/reader.h: New file.
9540 Propagate its use instead of tedious list of `extern' and
9541 prototypes.
9542 * src/reader.c: Formatting changes, topological sort,
9543 s/register//.
9544
abadc117
AD
95452000-10-02 Akim Demaille <akim@epita.fr>
9546
9547 * src/lex.h: Prototype `lex.c' exported functions.
9548 * src/reader.c: Adjust.
9549 * src/lex.c: Formatting changes.
9550 (safegetc): Rename as...
9551 (xgetc): this.
9552
720d742f
AD
95532000-10-02 Akim Demaille <akim@epita.fr>
9554
9555 * src/lalr.h: New file.
9556 Propagate its inclusion instead of prototypes and `extern'.
9557 * src/lalr.c: Formatting changes, topological sorting etc.
9558
f2acea59
AD
95592000-10-02 Akim Demaille <akim@epita.fr>
9560
9561 * src/output.c (token_actions): Introduce a temporary array,
9562 YYDEFACT, that makes it possible for this function to use
9563 output_short_table.
9564
d019d655
AD
95652000-10-02 Akim Demaille <akim@epita.fr>
9566
9567 `user_toknums' is output as a `short[]' in `output.c', while it is
9568 defined as a `int[]' in `reader.c'. For consistency with the
9569 other output tables, `user_toknums' is now defined as a table of
9570 shorts.
9571
9572 * src/reader.c (user_toknums): Be a short table instead of an int
9573 table.
9574 Adjust dependencies.
9575
9576 Factor the short table outputs.
9577
9578 * src/output.c (output_short_table): New function.
9579 * src/output.c (output_gram, output_stos, output_rule_data)
9580 (output_base, output_table, output_check): Use it.
9581
6c89f1c1
AD
95822000-10-02 Akim Demaille <akim@epita.fr>
9583
9584 * src/output.c (output): Topological sort of the functions, in
9585 order to get rid of the `static' prototypes.
9586 No longer use `register'.
9587 * src/output.h: New file.
9588 Propagate its inclusion in files explicitly prototyping functions
9589 from output.c.
9590
d9efd181
AD
95912000-09-21 Akim Demaille <akim@epita.fr>
9592
9593 * src/atgeneral.m4: Update from Autoconf.
9594
c29240e7 95952000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
9596
9597 * src/closure.h: New file.
9598 * src/closure.c: Formatting changes, topological sort over the
9599 functions, use of closure.h.
9600 (initialize_closure, finalize_closure): Rename as...
9601 (new_closure, free_closure): these. Adjust dependencies.
9602 * src/LR0.c: Formatting changes, topological sort, use of
9603 cloture.h.
9604 (initialize_states): Rename as...
9605 (new_states): this.
9606 * src/Makefile.am (noinst_HEADERS): Adjust.
9607
499daa50
AD
96082000-09-20 Akim Demaille <akim@epita.fr>
9609
9610 * src/acconfig.h: Don't protect config.h against multiple
9611 inclusion.
9612 Don't define PARAMS.
9613 * src/system.h: Define PARAMS.
9614 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9615 purpose of config.h. system.h must not try to fix wrong
9616 definitions in config.h.
9617
cc84fd5d
AD
96182000-09-20 Akim Demaille <akim@epita.fr>
9619
9620 * src/derives.h: New file.
9621 * src/main.c, src/derives.h: Use it.
9622 Formatting changes.
9623 * src/Makefile.am (noinst_HEADERS): Adjust.
9624
db5b3a89
AD
96252000-09-20 Akim Demaille <akim@epita.fr>
9626
9627 * tests/atgeneral.m4: Update from Autoconf.
9628 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9629 (AT_CHECK_CALC): New macros.
9630 Use these macros to test bison with options `', `--raw',
9631 `--debug', `--yacc', `--yacc --debug'.
9632
ceed8467
AD
96332000-09-19 Akim Demaille <akim@epita.fr>
9634
9635 * src/output.c: Formatting changes.
9636 * src/machine.h: Remove, leaving its contents in...
9637 * src/system.h: here.
9638 Include stdio.h.
9639 Adjust all dependencies on stdio.h and machine.h.
9640 * src/getargs.h: New file.
9641 Let all `extern' declarations about getargs.c be replaced with
9642 inclusion of `getargs.h'.
9643 * src/Makefile.am (noinst_HEADERS): Adjust.
9644
9645 * tests/calc.m4 (yyin): Be initialized in main, not on the global
9646 scope.
9647 (yyerror): Returns void, not int.
9648 * doc/bison.texinfo: Formatting changes.
9649
05a1d24b
AD
96502000-09-19 Akim Demaille <akim@epita.fr>
9651
9652 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
9653 portable.
9654
cbd25751
AD
96552000-09-18 Akim Demaille <akim@epita.fr>
9656
9657 * configure.in: Append WARNING_CFLAGS to CFLAGS.
9658 * src/Makefile.am (INCLUDES): Don't.
9659 Be ready to fetch headers in lib/.
9660
13863333
AD
96612000-09-18 Akim Demaille <akim@epita.fr>
9662
9663 * doc/bison.texinfo: Update the copyright.
9664 ANSIfy and GNUify the examples.
9665 Remove the old menu.
9666
0d533154
AD
96672000-09-18 Akim Demaille <akim@epita.fr>
9668
9669 First set of tests: use the `calc' example from the documentation.
9670
9671 * src/bison.s1 (yyparse): Condition the code using `yytname' which
9672 is defined only when YYDEBUG is.
9673 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
9674 * src/files.c (tryopen, tryclose): Formatting changes.
9675 Move to the top and be static.
9676 * src/reader.c (read_signed_integer): Likewise.
9677 * tests/calc.m4: New file.
9678 * Makefile.am, suite.m4: Adjust.
9679 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
9680
e79137ac
AD
96812000-09-18 Akim Demaille <akim@epita.fr>
9682
9683 Add support for an Autotest test suite for Bison.
9684
9685 * m4/m4.m4, m4/atconfig.m4: New files.
9686 * m4/Makefile.am (EXTRA_DIST): Adjust.
9687 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
9688 files.
9689 * src/getargs.c: Display a more standard --version message.
9690 * src/reader.c (reader): Formatting changes.
9691 No longer depend upon VERSION_STRING.
9692 * configure.in: No longer use `dnl'.
9693 Set up the test suite and the new directory `tests/.
9694 (VERSION_STRING): Remove.
9695
27821bff
AD
96962000-04-14 Akim Demaille <akim@epita.fr>
9697
9698 * src/reader.c (copy_comment2): New function, same as former
9699 `copy_comment', but outputs into two FILE *.
9700 (copy_comment): Use it.
9701 (parse_union_decl): Use it.
9702 (get_type, parse_start_decl): Use the same `invalid' message.
9703 (parse_start_decl, parse_union_decl): Use the same `multiple'
9704 message.
9705 (parse_union_decl, copy_guard, copy_action): Use the same
9706 `unmatched' message.
9707 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
9708
cfe5fbc0
AD
97092000-03-31 Akim Demaille <akim@epita.fr>
9710
9711 * src/files.c (tryopen, tryclose): Move to the top.
9712 Be static.
9713
cb7db13e
AD
97142000-03-31 Akim Demaille <akim@epita.fr>
9715
9716 * src/main.c (main): Don't call `done', exit does it.
9717
a0f6b076
AD
97182000-03-31 Akim Demaille <akim@epita.fr>
9719
36281465
AD
9720 * allocate.c: s/return (foo)/return foo/.
9721 * lalr.c: Likewise.
9722 * LR0.c: Likewise.
9723 * output.c: Likewise.
9724 * reader.c: Likewise.
9725 * symtab.c: Likewise.
9726 * vmsgetargs.c: Likewise.
9727
97282000-03-31 Akim Demaille <akim@epita.fr>
9729
9730 Clean up the error reporting functions.
a0f6b076
AD
9731
9732 * src/report.c: New file.
9733 * src/report.h: Likewise.
9734 * src/Makefile.am: Adjust.
9735 * m4/error.m4: New file.
9736 * m4/Makefile.am: Adjust.
9737 * configure.in (jm_PREREQ_ERROR): Call it.
9738 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
9739 Remove.
9740 (fatal, fatals): Remove. All callers use complain.c::fatal.
9741 (warn, warni, warns, warnss, warnss): Remove. All callers use
9742 complain.c::complain.
9743 (toomany): Remove, use fatal instead.
9744 * src/files.c (done): No argument, use complain_message_count.
9745 * src/main.c (main): Register `done' to `atexit'.
9746
9747 * src/getargs.c (usage): More `fputs', less `fprintf'.
9748
18539825
AD
97492000-03-28 Akim Demaille <akim@epita.fr>
9750
9751 * lib/: New directory.
9752 * Makefile.am (SUBDIRS): Adjust.
9753 * configure.in: Adjust.
9754 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
9755 useless.
9756 * src/alloca.c: Moved to lib/.
9757 * src/getopt.c: Likewise.
9758 * src/getopt1.c: Likewise.
9759 * src/getopt.h: Likewise.
9760 * src/ansi2knr.c: Likewise.
9761 * src/ansi2knr.1: Likewise.
9762 * src/Makefile.am: Adjust.
9763 * lib/Makefile.am: New file.
9764
9f306f2a
AD
97652000-03-28 Akim Demaille <akim@epita.fr>
9766
9767 * src/getargs.c (usage): Refresh the help message.
9768
0ba347b6
AD
97692000-03-17 Akim Demaille <akim@epita.fr>
9770
9771 * src/getopt1.c: Updated from textutils 2.0e
9772 * src/getopt.c: Likewise.
9773 * src/getopt.h: Likewise.
9774
dbe7f271
AD
97752000-03-17 Akim Demaille <akim@epita.fr>
9776
9777 * src/Makefile.am (bison.simple): Fix the awk program: quote only
9778 the file name, not the whole `#line LINE FILE'.
9779
75bbe78d
AD
97802000-03-17 Akim Demaille <akim@epita.fr>
9781
9782 On syntax errors, report the token on which we choked.
9783
aa5fd0ee
AD
9784 * src/bison.s1 (yyparse): In the label yyerrlab, when
9785 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 9786
7b306f52
AD
97872000-03-17 Akim Demaille <akim@epita.fr>
9788
aa5fd0ee 9789 * src/reader.c (copy_at): New function.
7b306f52
AD
9790 (copy_guard): Use it.
9791 (copy_action): Use it.
9792
e87b5700
AD
97932000-03-17 Akim Demaille <akim@epita.fr>
9794
9795 Be kind to translators, save some useless translations.
9796
aa5fd0ee 9797 * src/main.c (banner): New function.
e87b5700
AD
9798 (fatal_banner): Use it.
9799 (warn_banner): Use it.
9800
ae3c3164
AD
98012000-03-17 Akim Demaille <akim@epita.fr>
9802
aa5fd0ee
AD
9803 * src/reader.c (copy_definition): Use copy_string and
9804 copy_comment. Removed now unused `match', `ended',
9805 `cplus_comment'.
ae3c3164
AD
9806 (copy_comment, copy_string): Moved, to be visible from
9807 copy_definition.
9808
4dc58e7c
AD
98092000-03-17 Akim Demaille <akim@epita.fr>
9810
aa5fd0ee
AD
9811 * src/reader.c (copy_string): Declare `static inline'. No
9812 problems with inline, since it is checked by configure.
4dc58e7c
AD
9813 (copy_comment): Likewise.
9814
0a6384c4
AD
98152000-03-17 Akim Demaille <akim@epita.fr>
9816
aa5fd0ee 9817 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 9818
3cef001a
AD
98192000-03-17 Akim Demaille <akim@epita.fr>
9820
aa5fd0ee 9821 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
9822 (copy_action): Use it. Removed now unused `match', `ended',
9823 `cplus_comment'.
9824 (copy_guard): Likewise.
9825
ca36d2ef
AD
98262000-03-17 Akim Demaille <akim@epita.fr>
9827
aa5fd0ee 9828 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
9829 (copy_action): Use it.
9830 (copy_guard): Likewise.
9831
6666f98f
AD
98322000-03-17 Akim Demaille <akim@epita.fr>
9833
9834 Change the handling of @s so that they behave exactly like $s.
9835 There is now a pseudo variable @$ (readble and writable), location
9836 of the lhs of the rule (by default ranging from the location of
9837 the first symbol of the rhs, to the location of the last symbol,
9838 or, if the rhs is empty, YYLLOC).
9839
9840 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
9841 yyval.
9842 (yyparse): When providing a default semantic action, provide a
9843 default location action.
9844 (after the $): No longer change `*YYLSP', just stack YYLOC the
9845 same way you stack YYVAL.
9846 * src/reader.c (read_declarations): Use warns.
9847 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
9848 (copy_action, case '@'): Likewise.
9849 Use a standard error message, to save useless work from
9850 translators.
9851
41aca2e0
AD
98522000-03-17 Akim Demaille <akim@epita.fr>
9853
aa5fd0ee
AD
9854 * src/bison.s1: Formatting and cosmetics changes.
9855 * src/reader.c: Likewise.
41aca2e0
AD
9856 Update the Copyright notice.
9857
dc08c1d5
AD
98582000-03-17 Akim Demaille <akim@epita.fr>
9859
aa5fd0ee
AD
9860 * src/bison.s1 (#line): All set to `#line' only, since the
9861 Makefile now handles them.
dc08c1d5 9862
9ee3c97b
AD
98632000-03-16 Akim Demaille <akim@epita.fr>
9864
9865 * src/output.c (output_rule_data): Output the documentation of
9866 some of the tables.
9867 (Copyright notice): Update.
9868 Formatting changes.
9869
0de741ca
AD
98702000-03-16 Akim Demaille <akim@epita.fr>
9871
9872 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
9873 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
9874 One `#if YYDEBUG' remains, since it uses variables which are
9875 defined only if `YYDEBUG != 0'.
9876
bb10be54
AD
98772000-03-16 Akim Demaille <akim@epita.fr>
9878
9879 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
9880 and related variables so that the similarities are highlighted.
9881
b07b484a
AD
98822000-03-16 Akim Demaille <akim@epita.fr>
9883
9884 * src/bison.s1: Properly indent CPP directives.
9885
361f60b3
AD
98862000-03-16 Akim Demaille <akim@epita.fr>
9887
9888 * src/bison.s1: Properly indent the `alloca' CPP section.
9889
8c44d3ec
AD
98902000-03-16 Akim Demaille <akim@epita.fr>
9891
9892 Do not hard code values of directories in `configure.in'.
9893 Update the `configure' tool chain.
9894
9895 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
9896 src/makefile.am.
9897 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
9898 (AC_OUTPUT): Add m4/Makefile.
9899 Bump to bison 1.28a, 1.29 has never been released.
9900 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
9901 handled via src/Makefile.am.
9902 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
9903 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
9904 autoheader.
9905 * Makefile.am (SUBDIRS): Add m4.
9906 (ACLOCAL_AM_FLAGS): New variable.
9907 (AUTOMAKE_OPTIONS): Add check-news.
9908 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
9909 the proper line number and file name.
9910 (DEFS): Propagate the location of bison library files and of the
9911 locale files.
9912 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
9913 builddir.
9914 * acinclude.m4: Remove, replaced by the directory m4.
9915 * m4/Makefile.am (EXTRA_DIST): New variable.
9916 * m4/gettext.m4: New file, from the fileutils.
9917 * m4/lcmessage.m4: Likewise
9918 * m4/progtest.m4: Likewise.
9919 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
9920
f95997e7
AD
99212000-03-10 Akim Demaille <akim@epita.fr>
9922
9923 * src/closure.c:
9924 Formatting changes of various comments.
9925 Respect the GNU coding standards at various places.
9926 Don't use `_()' when no translation is needed.
9927
99281999-12-13 Jesse Thilo <jthilo@gnu.org>
9929
9930 * src/files.c:
9931 OS/2 honors TMPDIR environment variable.
9932
99331999-12-13 Jesse Thilo <jthilo@gnu.org>
9934
9935 * doc/bison.texinfo: Tweaked spelling and grammar.
9936 Updated ISBN.
9937 Removed reference to price of printed copy.
9938 Mention BISON_SIMPLE and BISON_HAIRY.
9939
99401999-12-13 Jesse Thilo <jthilo@gnu.org>
9941
9942 * configure.in, NEWS:
9943 Bison 1.29 released.
9944
99451999-10-27 Jesse Thilo <jthilo@gnu.org>
9946
9947 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
9948 Added reference card.
9949
99501999-07-26 Jesse Thilo <jthilo@gnu.org>
9951
9952 * po/ru.po: Added Russian translation.
9953
99541999-07-26 Jesse Thilo <jthilo@gnu.org>
9955
9956 * configure.in: Added Russian translation.
9957
99581999-07-06 Jesse Thilo <jthilo@gnu.org>
9959
9960 * configure.in, NEWS, README:
9961 Released version 1.28.
9962
99631999-06-14 Jesse Thilo <jthilo@gnu.org>
9964
9965 * src/system.h:
9966 Squashed redefinition warning on some systems.
9967
9968 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
9969 Have configure build version string instead of relying on ANSI string
9970 concatentation.
9971
99721999-06-14 Jesse Thilo <jthilo@gnu.org>
9973
9974 * po/POTFILES.in: Got rid of version.c.
9975
99761999-06-14 Jesse Thilo <jthilo@gnu.org>
9977
9978 * acconfig.h, configure.in:
9979 Have configure build version string instead of relying on ANSI string
9980 concatentation.
9981
99821999-06-08 Jesse Thilo <jthilo@gnu.org>
9983
9984 * doc/bison.1:
9985 Dropped mention of `+' for long-named options.
9986
99871999-05-30 Jesse Thilo <jthilo@gnu.org>
9988
9989 * src/files.c: Added <unistd.h> for unlink().
9990
9991 * src/Makefile.am, src/system.h:
9992 I18n fixes.
9993
99941999-05-30 Jesse Thilo <jthilo@gnu.org>
9995
9996 * README: Added a FAQ list.
9997
9998 * configure.in, acconfig.h:
9999 I18n fixes.
10000
100011999-05-30 Jesse Thilo <jthilo@gnu.org>
10002
10003 * doc/FAQ, doc/Makefile.am:
10004 Added a FAQ list.
10005
100061999-05-19 Jesse Thilo <jthilo@gnu.org>
10007
10008 * src/alloc.h, src/symtab.h, src/version.c:
10009 Protected inclusion of "config.h" with HAVE_CONFIG_H.
10010
100111999-04-18 Jesse Thilo <jthilo@gnu.org>
10012
10013 * src/.cvsignore, src/Makefile.am:
10014 Reorganized: sources in `src', documentation in `doc'.
10015
10016 * src/lex.c (literalchar):
10017 fixed the code for escaping double quotes (thanks
10018 Jonathan Czisny.)
10019
100201999-04-18 Jesse Thilo <jthilo@gnu.org>
10021
10022 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10023 Adjusted paths to reflect directory reorganization.
10024
100251999-04-18 Jesse Thilo <jthilo@gnu.org>
10026
10027 * doc/.cvsignore, doc/Makefile.am:
10028 Reorganized: sources in `src', documentation in `doc'.
10029
100301999-04-18 Jesse Thilo <jthilo@gnu.org>
10031
10032 * configure.in:
10033 Updated AC_INIT file to reflect directory reorganization.
10034
10035 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10036 Reorganized: sources in `src', documentation in `doc'.
10037
100381999-04-13 Jesse Thilo <jthilo@gnu.org>
10039
10040 * src/allocate.c:
10041 Don't declare calloc() and realloc() if not necessary.
10042
100431999-04-13 Jesse Thilo <jthilo@gnu.org>
10044
10045 * configure.in, acconfig.h, acinclude.m4:
10046 Don't declare calloc() and realloc() if not necessary.
10047
100481999-03-23 Jesse Thilo <jthilo@gnu.org>
10049
10050 * po/.cvsignore: Added i18n support.
10051
100521999-03-23 Jesse Thilo <jthilo@gnu.org>
10053
10054 * acconfig.h, configure.in, Makefile.am:
10055 Added i18n support.
10056
100571999-03-22 Jesse Thilo <jthilo@gnu.org>
10058
10059 * src/bison.s1: Fixed #line numbers.
10060
100611999-03-15 Jesse Thilo <jthilo@gnu.org>
10062
10063 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10064 Added PO files from Translation Project.
10065
100661999-03-03 Jesse Thilo <jthilo@gnu.org>
10067
10068 * Makefile.am:
10069 Added support for non-ANSI compilers (ansi2knr).
10070
100711999-02-16 Jesse Thilo <jthilo@gnu.org>
10072
10073 * configure.in: Bumped version number to 1.27.
10074
10075 * Makefile.am:
10076 Added `bison.simple' to list of files removed by `make distclean'.
10077
100781999-02-12 Jesse Thilo <jthilo@gnu.org>
10079
10080 * src/files.c, src/files.h:
10081 Defined locations of parser files in config.h instead of Makefile.
10082
100831999-02-12 Jesse Thilo <jthilo@gnu.org>
10084
10085 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10086 Defined locations of parser files in config.h instead of Makefile.
10087
100881999-02-09 Jesse Thilo <jthilo@gnu.org>
10089
10090 * Makefile.am:
10091 Removed inappropriate use of $< macro.
10092
100931999-02-05 Jesse Thilo <jthilo@gnu.org>
10094
10095 * po/Makefile.in.in, po/POTFILES.in:
10096 Add `po' directory skeleton.
10097
100981999-01-27 Jesse Thilo <jthilo@gnu.org>
10099
10100 * README: Document help-bison list.
10101
10102 * configure.in: Add check for mkstemp().
10103
101041999-01-20 Jesse Thilo <jthilo@gnu.org>
10105
10106 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10107 Hush a few compiler warnings.
10108
10109 * src/files.c:
10110 Add tryclose(), which verifies that fclose was successful.
10111 Hush a couple of compiler warnings.
10112
101131999-01-20 Jesse Thilo <jthilo@gnu.org>
10114
10115 * Makefile.am, OChangeLog:
10116 ChangeLog is now automatically generated. Include the old version as
10117 OChangeLog.
10118
101191999-01-14 Jesse Thilo <jthilo@gnu.org>
10120
10121 * 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:
10122 Update FSF address.
10123
101241999-01-14 Jesse Thilo <jthilo@gnu.org>
10125
10126 * doc/bison.texinfo: Fix formatting glitch.
10127
10128 * doc/bison.texinfo: Update FSF address.
10129
101301999-01-14 Jesse Thilo <jthilo@gnu.org>
10131
10132 * acconfig.h: Update FSF address.
10133
101341999-01-08 Jesse Thilo <jthilo@gnu.org>
10135
10136 * src/system.h:
10137 Don't define PACKAGE here, since config.h defines it.
10138
101391998-12-30 Jesse Thilo <jthilo@gnu.org>
10140
10141 * src/reader.c: Update copyright date.
10142
10143 * src/main.c:
10144 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10145 favor of output directly to stderr (avoids buffer overruns).
10146
10147 * src/reader.c: Some checks for premature EOF.
10148
10149 * 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:
10150 Use prototypes if the compiler understands them.
10151
10152 * src/files.c: Honor TMPDIR on Unix hosts.
10153 Use prototypes if the compiler understands them.
10154
10155 * src/reader.c:
10156 Fix a couple of buffer overrun bugs.
10157 Use prototypes if the compiler understands them.
10158
10159 * src/system.h: Include unistd.h and ctype.h.
10160 Use #ifdef instead of #if for NLS symbols.
10161
101621998-12-30 Jesse Thilo <jthilo@gnu.org>
10163
10164 * doc/bison.texinfo:
10165 Delete comment "consider using @set for edition number, etc..." since
10166 we now are doing so.
10167
101681998-12-30 Jesse Thilo <jthilo@gnu.org>
10169
10170 * configure.in:
10171 Use prototypes if the compiler understands them.
10172
10173 * NEWS: Document 1.26 highlights.
10174
10175 * Makefile.am: Require Automake 1.3 or later.
10176
10177 * acconfig.h:
10178 Use prototypes if the compiler understands them.
10179
101801998-12-29 Jesse Thilo <jthilo@gnu.org>
10181
10182 * src/version.c:
10183 Use VERSION symbol from automake for version number.
10184
101851998-12-29 Jesse Thilo <jthilo@gnu.org>
10186
10187 * acconfig.h, configure.in, version.cin:
10188 Use VERSION symbol from automake for version number.
10189
101901998-11-28 Jesse Thilo <jthilo@gnu.org>
10191
10192 * Makefile.am:
10193 Distribute original version of simple parser (bison.s1), not built
10194 version (bison.simple).
10195
101961998-11-28 Jesse Thilo <jthilo@gnu.org>
10197
10198 * doc/bison.texinfo: Add info dir entry.
10199
10200 * doc/bison.texinfo:
10201 Let automake put version number into documentation.
10202
102031998-11-26 Jesse Thilo <jthilo@gnu.org>
10204
10205 * src/bison.cld, src/build.com, src/vmshlp.mar:
10206 Add non-RCS files from /gd/gnu/bison.
10207
102081998-11-26 Jesse Thilo <jthilo@gnu.org>
10209
10210 * doc/bison.1:
10211 Document the BISON_HAIRY and BISON_SIMPLE variables.
10212
102131998-11-25 Jesse Thilo <jthilo@gnu.org>
10214
10215 * src/version.c: Build version.c automatically.
10216
10217 * src/reader.c:
10218 Fix token numbering (used to start at 258, not 257).
10219
10220 * src/system.h: Include config.h.
10221
10222 * src/getargs.c: Update bug report address.
10223
10224 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10225 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10226
102271998-11-25 Jesse Thilo <jthilo@gnu.org>
10228
10229 * Makefile.am:
10230 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10231
10232 * configure.in, version.cin:
10233 Build version.c automatically.
10234
10235 * AUTHORS: Add AUTHORS file.
10236
10237 * README: Update bug report address.
10238
10239 * bison.simple:
10240 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10241
10242 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10243 Add automake stuff.
10244
102451998-11-25 Jesse Thilo <jthilo@gnu.org>
10246
10247 * doc/bison.texinfo: Clean up some formatting.
10248
102491998-05-05 Richard Stallman <rms@gnu.org>
10250
10251 * doc/bison.texinfo:
10252 Explain better why to make a pure parser.
10253
102541998-01-05 Richard Stallman <rms@gnu.org>
10255
10256 * src/files.c (openfiles):
10257 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10258 find a temporary directory, if possible. Do not unlink files while
10259 they are open.
10260
102611997-08-25 Richard Stallman <rms@gnu.org>
10262
10263 * src/reader.c (stack_offset;):
10264 Change some warni to warns.
10265
10266 * src/lex.c (literalchar): Use warns, not warni.
10267
102681997-06-28 Richard Stallman <rms@gnu.org>
10269
10270 * src/bison.s1: Add a Bison version comment.
10271
10272 * src/main.c (fatal, warn, berror):
10273 Use program_name.
10274
102751997-06-28 Richard Stallman <rms@gnu.org>
10276
10277 * Makefile.in (bison_version): New variable.
10278 (dist): Use that variable.
10279 (bison.s1): Substitute the Bison version into bison.simple.
10280
10281 * bison.simple: Add a Bison version comment.
10282
102831997-06-18 Richard Stallman <rms@gnu.org>
10284
10285 * src/main.c (fatal, warn, berror):
10286 Make error messages standard.
10287 (toomany): Improve error message text.
10288
10289 * 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:
10290 new.h renamed to alloc.h.
10291
102921997-06-18 Richard Stallman <rms@gnu.org>
10293
10294 * Makefile.in: new.h renamed to alloc.h.
10295
102961997-05-24 Richard Stallman <rms@gnu.org>
10297
10298 * src/lex.c (literalchar):
10299 Fix the code for escaping \, " and '.
10300
10301 (lex): Avoid trouble when there are many chars
10302 to discard in a char literal with just several chars in it.
10303
103041997-05-17 Richard Stallman <rms@gnu.org>
10305
10306 * src/bison.s1:
10307 Use malloc, if using alloca is troublesome.
10308 (YYSTACK_USE_ALLOCA): New flag macro.
10309 Define it for some systems and compilers.
10310 (YYSTACK_ALLOC): New macro.
10311 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10312 If it was malloc'd, free it.
10313
103141997-05-17 Richard Stallman <rms@gnu.org>
10315
10316 * bison.simple:
10317 Use malloc, if using alloca is troublesome.
10318 (YYSTACK_USE_ALLOCA): New flag macro.
10319 Define it for some systems and compilers.
10320 (YYSTACK_ALLOC): New macro.
10321 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10322 If it was malloc'd, free it.
10323
103241997-04-23 Richard Stallman <rms@gnu.org>
10325
10326 * src/bison.s1:
10327 (alloca) [__hpux]: Always define as __builtin_alloca.
10328
103291997-04-23 Richard Stallman <rms@gnu.org>
10330
10331 * bison.simple:
10332 (alloca) [__hpux]: Always define as __builtin_alloca.
10333
103341997-04-22 Richard Stallman <rms@gnu.org>
10335
10336 * src/bison.s1:
10337 [__hpux]: Include alloca.h (right for HPUX 10)
10338 instead of declaring alloca (right for HPUX 9).
10339
10340 * src/bison.s1 (__yy_memcpy):
10341 Declare arg `count' as unsigned int.
10342 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10343
103441997-04-22 Richard Stallman <rms@gnu.org>
10345
10346 * bison.simple:
10347 [__hpux]: Include alloca.h (right for HPUX 10)
10348 instead of declaring alloca (right for HPUX 9).
10349
10350 * bison.simple (__yy_memcpy):
10351 Declare arg `count' as unsigned int.
10352 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10353
103541997-01-03 Richard Stallman <rms@gnu.org>
10355
10356 * src/allocate.c: [__STDC__ or _MSC_VER]:
10357 Declare calloc and realloc to return void *.
10358
103591997-01-02 Richard Stallman <rms@gnu.org>
10360
10361 * src/system.h:
10362 [_MSC_VER]: Include stdlib.h and process.h.
10363 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10364
10365 * src/main.c (main): Return FAILURE as a value.
10366 (printable_version): Declare arg as int, not char.
10367
103681997-01-02 Richard Stallman <rms@gnu.org>
10369
10370 * Makefile.in (dist):
10371 Explicitly check for symlinks, and copy them.
10372
103731996-12-19 Richard Stallman <rms@gnu.org>
10374
10375 * src/files.c:
10376 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10377
103781996-12-18 Paul Eggert <eggert@gnu.org>
10379
10380 * src/bison.s1 (yyparse):
10381 If __GNUC__ and YYPARSE_PARAM are both defined,
10382 declare yyparse to have a void * argument.
10383
103841996-12-18 Paul Eggert <eggert@gnu.org>
10385
10386 * bison.simple (yyparse):
10387 If __GNUC__ and YYPARSE_PARAM are both defined,
10388 declare yyparse to have a void * argument.
10389
103901996-12-17 Richard Stallman <rms@gnu.org>
10391
10392 * src/reduce.c (nbits): Add some casts.
10393
103941996-08-12 Richard Stallman <rms@gnu.org>
10395
10396 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10397
103981996-08-12 Richard Stallman <rms@gnu.org>
10399
10400 * bison.simple: Test _MSDOS as well as _MSDOS_.
10401
104021996-07-31 Richard Stallman <rms@gnu.org>
10403
10404 * src/bison.s1:
10405 [__sun && __i386]: Include alloca.h.
10406
104071996-07-31 Richard Stallman <rms@gnu.org>
10408
10409 * bison.simple:
10410 [__sun && __i386]: Include alloca.h.
10411
104121996-07-30 Richard Stallman <rms@gnu.org>
10413
10414 * src/bison.s1: Comment change.
10415
10416 * src/bison.s1: Test _MSDOS_, not MSDOS.
10417
104181996-07-30 Richard Stallman <rms@gnu.org>
10419
10420 * bison.simple: Comment change.
10421
10422 * bison.simple: Test _MSDOS_, not MSDOS.
10423
104241996-06-01 Richard Stallman <rms@gnu.org>
10425
10426 * 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:
10427 Insert `_' macro around many string constants.
10428
10429 * src/main.c:
10430 Insert `_' macro around many string constants.
10431
10432 (main): Call setlocale, bindtextdomain and textdomain.
10433
10434 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10435 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10436 [ENABLE_NLS]: Include libintl.h.
10437 [ENABLE_NLS] (gettext): Define.
10438 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10439 (N_, PACKAGE, LOCALEDIR): New macros.
10440
104411996-06-01 Richard Stallman <rms@gnu.org>
10442
10443 * POTFILES.in: New file.
10444
10445 * Makefile.in (allocate.o):
10446 Define target explicitly.
10447
10448 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10449 (LDFLAGS): Set to @LDFLAGS@.
10450 (configure): Run autoconf only if preceding `cd' succeeds.
10451 (bison.s1): Redirect output to temporary file then move the
10452 temporary to the target, rather than redirecting directly to bison.s1.
10453 (clean): Remove config.status and config.log.
10454 (distclean): Don't remove config.status here.
10455
104561996-05-12 Richard Stallman <rms@gnu.org>
10457
10458 * src/bison.s1:
10459 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10460
104611996-05-12 Richard Stallman <rms@gnu.org>
10462
10463 * bison.simple:
10464 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10465
104661996-05-11 Richard Stallman <rms@gnu.org>
10467
10468 * src/bison.s1 (__yy_memcpy):
10469 Really reorder the args, as was supposedly done on Feb 14 1995.
10470 (yyparse): Calls changed accordingly.
10471
104721996-05-11 Richard Stallman <rms@gnu.org>
10473
10474 * Makefile.in (dist): Don't use $(srcdir).
10475
10476 * bison.simple (__yy_memcpy):
10477 Really reorder the args, as was supposedly done on Feb 14 1995.
10478 (yyparse): Calls changed accordingly.
10479
104801996-01-27 Richard Stallman <rms@gnu.org>
10481
10482 * src/output.c (output_rule_data):
10483 Test YYERROR_VERBOSE in the conditional
10484 around the definition of ttyname.
10485
104861995-12-29 Richard Stallman <rms@gnu.org>
10487
10488 * src/bison.s1:
10489 Fix line numbers in #line commands.
10490
104911995-12-29 Richard Stallman <rms@gnu.org>
10492
10493 * bison.simple:
10494 Fix line numbers in #line commands.
10495
104961995-12-27 Richard Stallman <rms@gnu.org>
10497
10498 * src/bison.s1 (YYPARSE_PARAM_DECL):
10499 In C++, make it always null.
10500 (YYPARSE_PARAM_ARG): New macro.
10501 (yyparse): Use YYPARSE_PARAM_ARG.
10502
105031995-12-27 Richard Stallman <rms@gnu.org>
10504
10505 * bison.simple (YYPARSE_PARAM_DECL):
10506 In C++, make it always null.
10507 (YYPARSE_PARAM_ARG): New macro.
10508 (yyparse): Use YYPARSE_PARAM_ARG.
10509
105101995-11-29 Richard Stallman <rms@gnu.org>
10511
10512 * doc/bison.texinfo:
10513 Describe literal string tokens, %raw, %no_lines, %token_table.
10514
105151995-11-29 Daniel Hagerty <hag@gnu.org>
10516
10517 * doc/bison.texinfo: Fixed update date
10518
105191995-10-16 Richard Stallman <rms@gnu.org>
10520
10521 * src/version.c: Version 1.25.
10522
105231995-10-16 Richard Stallman <rms@gnu.org>
10524
10525 * NEWS: *** empty log message ***
10526
105271995-10-16 Richard Stallman <rms@gnu.org>
10528
10529 * doc/bison.1, doc/bison.rnh:
10530 Add new options.
10531
105321995-10-15 Richard Stallman <rms@gnu.org>
10533
10534 * src/vmsgetargs.c, src/getargs.c:
10535 Added -n, -k, and -raw switches.
10536 (noparserflag, toknumflag, rawtoknumflag): New variables.
10537
10538 * src/symtab.h (SALIAS):
10539 New #define for adding aliases to %token.
10540 (struct bucket): Added `alias' field.
10541
10542 * src/reduce.c (reduce_grammar):
10543 Revise error message.
10544 (print_notices): Remove final `.' from error message.
10545
10546 * src/reader.c (reader_output_yylsp):
10547 New function.
10548 (readgram): Use `#if 0' around code that accepted %command
10549 inside grammar rules: The documentation doesn't allow it,
10550 and it will fail since the %command processors scan for the next %.
10551 (parse_token_decl): Extended the %token
10552 declaration to allow a multi-character symbol as an alias.
10553 (parse_thong_decl): New function.
10554 (read_declarations): Added %thong declarations.
10555 (read_declarations): Handle NOOP to deal with allowing
10556 % declarations as another means to specify the flags.
10557 (readgram): Allow %prec prior to semantics embedded in a rule.
10558 (skip_to_char, read_declarations, copy_definition)
10559 (parse_token_decl, parse_start_decl, parse_type_decl)
10560 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10561 (get_type_name, copy_guard, copy_action, readgram)
10562 (get_type, packsymbols): Revised most error messages.
10563 Changed `fatal' to `warnxxx' to avoid aborting for error.
10564 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10565 (read_declarations): Improve the error message for
10566 an invalid character. Do not abort.
10567 (read_declarations, copy_guard, copy_action): Use
10568 printable_version to avoid unprintable characters in printed output.
10569 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10570 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10571 Allow the type of a non-terminal can be given
10572 more than once, as long as all specifications give the same type.
10573
10574 * src/output.c:
10575 (output_headers, output_trailers, output, output_gram)
10576 (output_rule_data): Implement noparserflag variable.
10577 Implement toknumflag variable.
10578 (output): Call reader_output_yylsp to output LTYPESTR.
10579
10580 * src/main.c (main):
10581 If reader sees an error, don't process the grammar.
10582 (fatals): Updated to not use VARARGS1.
10583 (printable_version, int_to_string, warn, warni, warns, warnss)
10584 (warnsss): New error reporting functions. Avoid abort for error.
10585
10586 * src/lex.h:
10587 Added THONG and NOOP for alias processing.
10588 Added SETOPT for the new code that allows setting options with %flags.
10589
10590 * src/lex.c:
10591 Include getopt.h. Add some extern decls.
10592 (safegetc): New function to deal with EOF gracefully.
10593 (literalchar); new function to deal with reading \ escapes.
10594 (lex): Use literalchar.
10595 (lex): Implemented "..." tokens.
10596 (literalchar, lex, parse_percent_token): Made tokenbuffer
10597 always contain the token. This includes growing the token
10598 buffer while reading an integer.
10599 (parse_percent_token): Replaced if-else statement with percent_table.
10600 (parse_percent_token): Added % declarations as another
10601 way to specify the flags -n, -l, and -r. Also added hooks for
10602 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10603 major changes to files.c.
10604 (lex) Retain in the incoming stream a character following
10605 an incorrect '/'.
10606 (skip_white_space, lex): Revised most error messages
10607 and changed fatal to warn to avoid aborting.
10608 (percent_table): Added %thong declarations.
10609
10610 * src/gram.h: Comment changes.
10611
10612 * src/files.c (openfiles, open_extra_files, done):
10613 Add faction flag
10614 and actfile file. Handle noparserflag. Both for -n switch.
10615
10616 * src/conflicts.c (resolve_sr_conflict):
10617 Remove use of alloca.
10618
106191995-06-01 Jim Meyering <meyering@gnu.org>
10620
10621 * doc/bison.texinfo: *** empty log message ***
10622
106231995-05-06 Richard Stallman <rms@gnu.org>
10624
10625 * src/bison.s1: Comment change.
10626
106271995-05-06 Richard Stallman <rms@gnu.org>
10628
10629 * bison.simple: Comment change.
10630
106311995-05-03 Richard Stallman <rms@gnu.org>
10632
10633 * src/version.c: Version now 1.24.
10634
10635 * src/bison.s1: Change distribution terms.
10636
10637 * src/version.c: Version now 1.23.
10638
106391995-05-03 Richard Stallman <rms@gnu.org>
10640
10641 * doc/bison.texinfo:
10642 Rewrite "Conditions for Using Bison".
10643 Update version to 1.24.
10644
106451995-05-03 Richard Stallman <rms@gnu.org>
10646
10647 * bison.simple: Change distribution terms.
10648
106491995-02-23 Richard Stallman <rms@gnu.org>
10650
10651 * src/files.c: Test __VMS_POSIX as well as VMS.
10652
106531995-02-14 Jim Meyering <meyering@gnu.org>
10654
10655 * src/bison.s1 (__yy_memcpy):
10656 Renamed from __yy_bcopy to avoid
10657 confusion. Reverse FROM and TO arguments to be consistent with
10658 those of memcpy.
10659
106601995-02-14 Jim Meyering <meyering@gnu.org>
10661
10662 * bison.simple (__yy_memcpy):
10663 Renamed from __yy_bcopy to avoid
10664 confusion. Reverse FROM and TO arguments to be consistent with
10665 those of memcpy.
10666
106671994-11-10 David J. MacKenzie <djm@gnu.org>
10668
10669 * NEWS: reformat
10670
10671 * NEWS: New file.
10672
10673 * Makefile.in (DISTFILES): Include NEWS.
10674
10675 * Makefile.in (DISTFILES):
10676 Include install-sh, not install.sh.
10677
10678 * configure.in: Update to Autoconf v2 macro names.
10679
106801994-10-05 David J. MacKenzie <djm@gnu.org>
10681
10682 * Makefile.in: fix typo
10683
10684 * Makefile.in (prefix, exec_prefix):
10685 Let configure set them.
10686
106871994-09-28 David J. MacKenzie <djm@gnu.org>
10688
10689 * Makefile.in: Set datadir to $(prefix)/share.
10690
106911994-09-15 Richard Stallman <rms@gnu.org>
10692
10693 * src/bison.s1:
10694 Update copyright notice and GPL version.
10695
106961994-09-15 Richard Stallman <rms@gnu.org>
10697
10698 * bison.simple:
10699 Update copyright notice and GPL version.
10700
107011994-07-12 Richard Stallman <rms@gnu.org>
10702
10703 * src/reduce.c, src/reader.c:
10704 entered into RCS
10705
107061994-05-05 David J. MacKenzie <djm@gnu.org>
10707
10708 * Makefile.in: entered into RCS
10709
107101994-03-26 Richard Stallman <rms@gnu.org>
10711
10712 * src/bison.s1: entered into RCS
10713
107141994-03-26 Richard Stallman <rms@gnu.org>
10715
10716 * bison.simple: entered into RCS
10717
107181994-03-25 Richard Stallman <rms@gnu.org>
10719
10720 * src/main.c: entered into RCS
10721
107221994-03-24 Richard Stallman <rms@gnu.org>
10723
10724 * src/conflicts.c: entered into RCS
10725
107261994-01-02 Richard Stallman <rms@gnu.org>
10727
10728 * Makefile.in: *** empty log message ***
10729
107301993-11-21 Richard Stallman <rms@gnu.org>
10731
10732 * src/bison.s1: *** empty log message ***
10733
107341993-11-21 Richard Stallman <rms@gnu.org>
10735
10736 * doc/bison.texinfo: entered into RCS
10737
10738 * doc/bison.texinfo: *** empty log message ***
10739
107401993-11-21 Richard Stallman <rms@gnu.org>
10741
10742 * bison.simple: *** empty log message ***
10743
107441993-10-25 David J. MacKenzie <djm@gnu.org>
10745
10746 * doc/bison.texinfo: *** empty log message ***
10747
107481993-10-19 Richard Stallman <rms@gnu.org>
10749
10750 * src/bison.s1: *** empty log message ***
10751
107521993-10-19 Richard Stallman <rms@gnu.org>
10753
10754 * bison.simple: *** empty log message ***
10755
107561993-10-14 Richard Stallman <rms@gnu.org>
10757
10758 * src/bison.s1: *** empty log message ***
10759
107601993-10-14 Richard Stallman <rms@gnu.org>
10761
10762 * bison.simple: *** empty log message ***
10763
107641993-09-14 David J. MacKenzie <djm@gnu.org>
10765
10766 * doc/bison.texinfo: *** empty log message ***
10767
107681993-09-13 Noah Friedman <friedman@gnu.org>
10769
10770 * Makefile.in: *** empty log message ***
10771
107721993-09-10 Richard Stallman <rms@gnu.org>
10773
10774 * src/conflicts.c: *** empty log message ***
10775
10776 * src/system.h: entered into RCS
10777
107781993-09-10 Richard Stallman <rms@gnu.org>
10779
10780 * doc/bison.1: entered into RCS
10781
107821993-09-06 Noah Friedman <friedman@gnu.org>
10783
10784 * src/version.c: entered into RCS
10785
107861993-09-06 Noah Friedman <friedman@gnu.org>
10787
10788 * Makefile.in: *** empty log message ***
10789
107901993-07-30 David J. MacKenzie <djm@gnu.org>
10791
10792 * Makefile.in: *** empty log message ***
10793
107941993-07-24 Richard Stallman <rms@gnu.org>
10795
10796 * src/bison.s1: *** empty log message ***
10797
107981993-07-24 Richard Stallman <rms@gnu.org>
10799
10800 * bison.simple: *** empty log message ***
10801
108021993-07-08 David J. MacKenzie <djm@gnu.org>
10803
10804 * Makefile.in: *** empty log message ***
10805
108061993-07-04 Richard Stallman <rms@gnu.org>
10807
10808 * src/bison.s1: *** empty log message ***
10809
108101993-07-04 Richard Stallman <rms@gnu.org>
10811
10812 * bison.simple: *** empty log message ***
10813
108141993-06-26 David J. MacKenzie <djm@gnu.org>
10815
10816 * src/getargs.c: entered into RCS
10817
108181993-06-26 David J. MacKenzie <djm@gnu.org>
10819
10820 * doc/bison.texinfo: *** empty log message ***
10821
10822 * doc/bison.1: New file.
10823
108241993-06-25 Richard Stallman <rms@gnu.org>
10825
10826 * src/getargs.c: New file.
10827
108281993-06-16 Richard Stallman <rms@gnu.org>
10829
10830 * src/bison.s1: *** empty log message ***
10831
108321993-06-16 Richard Stallman <rms@gnu.org>
10833
10834 * bison.simple: *** empty log message ***
10835
108361993-06-03 Richard Stallman <rms@gnu.org>
10837
10838 * src/bison.s1: New file.
10839
108401993-06-03 Richard Stallman <rms@gnu.org>
10841
10842 * doc/bison.texinfo: *** empty log message ***
10843
108441993-06-03 Richard Stallman <rms@gnu.org>
10845
10846 * bison.simple: New file.
10847
108481993-05-19 Richard Stallman <rms@gnu.org>
10849
10850 * doc/bison.texinfo: New file.
10851
108521993-05-07 Noah Friedman <friedman@gnu.org>
10853
10854 * Makefile.in: *** empty log message ***
10855
108561993-04-28 Noah Friedman <friedman@gnu.org>
10857
10858 * src/reader.c: *** empty log message ***
10859
108601993-04-23 Noah Friedman <friedman@gnu.org>
10861
10862 * src/alloc.h: entered into RCS
10863
108641993-04-20 David J. MacKenzie <djm@gnu.org>
10865
10866 * src/version.c: *** empty log message ***
10867
10868 * src/files.c, src/allocate.c:
10869 entered into RCS
10870
10871 * src/reader.c: *** empty log message ***
10872
10873 * src/lex.c: entered into RCS
10874
10875 * src/conflicts.c: New file.
10876
10877 * src/symtab.c: entered into RCS
10878
10879 * src/alloc.h: New file.
10880
10881 * src/LR0.c: entered into RCS
10882
108831993-04-18 Noah Friedman <friedman@gnu.org>
10884
10885 * src/reader.c: New file.
10886
10887 * src/version.c: *** empty log message ***
10888
108891993-04-18 Noah Friedman <friedman@gnu.org>
10890
10891 * Makefile.in: *** empty log message ***
10892
108931993-04-17 Noah Friedman <friedman@gnu.org>
10894
10895 * Makefile.in: *** empty log message ***
10896
108971993-04-15 Richard Stallman <rms@gnu.org>
10898
10899 * src/main.c, src/files.c:
10900 New file.
10901
109021993-04-15 Noah Friedman <friedman@gnu.org>
10903
10904 * configure.in: entered into RCS
10905
10906 * configure.in: *** empty log message ***
10907
10908 * configure.in: New file.
10909
109101993-04-14 Richard Stallman <rms@gnu.org>
10911
10912 * Makefile.in: New file.
10913
109141993-04-13 Richard Stallman <rms@gnu.org>
10915
10916 * src/version.c: New file.
10917
109181993-03-25 Richard Stallman <rms@gnu.org>
10919
10920 * src/output.c: entered into RCS
10921
109221992-09-25 Richard Stallman <rms@gnu.org>
10923
10924 * configure.bat: entered into RCS
10925
109261992-06-22 Richard Stallman <rms@gnu.org>
10927
10928 * src/vmsgetargs.c: entered into RCS
10929
109301992-06-22 Richard Stallman <rms@gnu.org>
10931
10932 * doc/bison.rnh: entered into RCS
10933
109341992-04-20 David J. MacKenzie <djm@gnu.org>
10935
10936 * README: entered into RCS
10937
109381992-01-22 Richard Stallman <rms@gnu.org>
10939
10940 * src/machine.h: entered into RCS
10941
109421991-12-21 Richard Stallman <rms@gnu.org>
10943
10944 * src/lalr.c, src/closure.c:
10945 entered into RCS
10946
109471991-12-20 Richard Stallman <rms@gnu.org>
10948
10949 * src/state.h: entered into RCS
10950
109511991-12-18 Richard Stallman <rms@gnu.org>
10952
10953 * src/print.c, src/nullable.c, src/derives.c:
10954 entered into RCS
10955
109561991-11-03 David J. MacKenzie <djm@gnu.org>
10957
10958 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
10959 entered into RCS
10960
109611988-09-09 Richard Stallman <rms@gnu.org>
10962
10963 * src/bison.hairy: entered into RCS
10964
109651987-12-16 Richard Stallman <rms@gnu.org>
10966
10967 * REFERENCES: entered into RCS
dc546b0f 10968
f294a2c2
AD
10969-----
10970
33167b8b 10971Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dc546b0f 109721998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
f294a2c2 10973
33167b8b 10974This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 10975
33167b8b 10976Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
10977it under the terms of the GNU General Public License as published by
10978the Free Software Foundation; either version 2, or (at your option)
10979any later version.
10980
33167b8b 10981Bison is distributed in the hope that it will be useful,
f294a2c2
AD
10982but WITHOUT ANY WARRANTY; without even the implied warranty of
10983MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10984GNU General Public License for more details.
10985
10986You should have received a copy of the GNU General Public License
33167b8b 10987along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
10988the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
10989Boston, MA 02111-1307, USA.