]> git.saurik.com Git - bison.git/blob - ChangeLog
0d891aa3f788b027bbb773afb9309afed2b90a6c
[bison.git] / ChangeLog
1 2003-02-21 Akim Demaille <akim@epita.fr>
2
3 * data/lalr1.cc: Use temporary variables instead of casts to
4 change integer types.
5 Suggested by Paul Eggert.
6
7 2003-02-21 Akim Demaille <akim@epita.fr>
8
9 * doc/bison.texinfo: Use "location" consistently to refer to @n,
10 to avoid confusions with lalr1.cc's notion of Position.
11 Suggested by Paul Eggert.
12
13 2003-02-20 Akim Demaille <akim@epita.fr>
14
15 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
16 before initial_columns.
17 (location.hh): Use consistent variable names when defining the
18 operator<<.
19 Use "last" so that we subtract from Positions, not from unsigned.
20
21 2003-02-20 Akim Demaille <akim@epita.fr>
22
23 * data/lalr1.cc (position.hh): New subfile, including the extended
24 and Doxygen'ed documentation of class Position.
25 (location.hh): Use it.
26 Document a` la Doxygen.
27 With the help of BenoƮt Perrot.
28
29 2003-02-20 Akim Demaille <akim@epita.fr>
30
31 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
32 AT_YACC_IF.
33 Redefine AT_YYERROR_SEES_LOC_IF using it.
34 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
35 not defined.
36 Don't use the location in yy::Parser::error_ and
37 yy::Parser::print_ when not %locations.
38 Activate more lalr1.cc tests.
39
40 2003-02-19 Akim Demaille <akim@epita.fr>
41
42 * data/lalr1.cc: When displaying a line number, be sure to make it
43 an int.
44
45 2003-02-19 Akim Demaille <akim@epita.fr>
46
47 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
48 Remove, useless.
49 (YYABORT, YYACCEPT, YYERROR): New.
50 * tests/calc.at: Renable the lalr1.cc test.
51
52 2003-02-19 Akim Demaille <akim@epita.fr>
53
54 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
55 error recovery, mixing with/without pops and discarding of the
56 lookahead.
57 Exercise YYERROR.
58 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
59
60 2003-02-17 Paul Eggert <eggert@twinsun.com>
61
62 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
63 * tests/testsuite.at (AT_COMPILE): Use them.
64 This fixes the testsuite problem reported by Robert Lentz in
65 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
66
67 2003-02-12 Paul Eggert <eggert@twinsun.com>
68
69 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
70 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
71 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
72 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
73 Check for malloc failure, for consistency with yacc.c.
74 (yytname_size): Remove, for consistency with yacc.c.
75
76 The bug still remains in data/lalr1.cc, as I didn't have time
77 to fix it there.
78
79 2003-02-06 Akim Demaille <akim@epita.fr>
80
81 * configure.ac (GXX): Rename as...
82 (CXX): this, to keep the original Autoconf semantics.
83 Require 2.57.
84 * data/lalr1.cc: Fix b4_copyright invocations.
85 If YYDEBUG is not defined, don't depend upon name_ being defined.
86 (location.hh): Include string and iostream.
87 (Position::filename): New member.
88 (Position::Position ()): New.
89 (operator<< (Position)): New.
90 (operator- (Position, int)): New.
91 (Location::first, Location::last): Rename as...
92 (Location::begin, Location::end): these, to mock the conventional
93 iterator names.
94 (operator<< (Location)): New.
95 * tests/atlocal.in (CXX): New.
96 * tests/testsuite.at (AT_COMPILE_CXX): New.
97 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
98 locations in a more synthetic way.
99 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
100 lalr1.cc is used.
101 Adjust the C locations to match those from Emacs: first column is
102 column 0.
103 Change all the expected results.
104 Conform to the GCS: simplify the locations when applicable.
105 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
106 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
107 these CPP macros with the m4 macros new defined by...
108 (AT_CHECK_PUSHDEFS): this, i.e.:
109 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
110 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
111 New macros.
112 (AT_CHECK_POPDEFS): Undefine them.
113 (AT_CHECK_CALC_LALR1_CC): New.
114 Use it for the first lalr1.cc test.
115
116 2003-02-04 Akim Demaille <akim@epita.fr>
117
118 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
119 Location as is defined.
120
121 2003-02-04 Akim Demaille <akim@epita.fr>
122
123 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
124 name_ being defined.
125
126 2003-02-03 Paul Eggert <eggert@twinsun.com>
127
128 * src/gram.h (start_symbol): Remove unused decl.
129
130 Use more-consistent naming conventions for local vars.
131
132 * src/derives.c (derives_compute): Change type of local var from
133 int to rule_number.
134 * src/gram.c (grammar_rules_partial_print): Likewise.
135 * src/print.c (print_core): Likewise.
136 * src/reduce.c (reduce_grammar_tables): Likewise.
137
138 * src/gram.c (grammar_dump): Change name of item_number *
139 local var from r to rp.
140 * src/nullable.c (nullable_compute): Likewise.
141
142 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
143
144 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
145 for symbol or symbol_number var.
146 * src/reader.c (grammar_start_symbol_set): Likewise.
147 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
148 Likewise.
149 * src/state.c (transitions_to): Likewise.
150 * src/state.h: Likewise.
151 * src/tables.c (symbol_number_to_vector_number): Likewise.
152
153 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
154 char * var.
155
156 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
157 var.
158
159 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
160 var.
161
162 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
163 Use str, not s, for char * var. Use ch, not c, for character var.
164 Use size for size var.
165
166 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
167 char * var.
168 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
169 uniqstr var.
170 * src/uniqstr.h: Likewise.
171
172 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
173 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
174 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
175 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
176 param to have same name as that of enum, so that we don't use
177 "s" to stand for a non-state.
178
179 2003-02-02 Akim Demaille <akim@epita.fr>
180
181 * src/scan-skel.l: Scan more than one inert character per yylex
182 invocation.
183
184 2003-02-01 Paul Eggert <eggert@twinsun.com>
185
186 Version 1.875a.
187
188 * po/LINGUAS: Add ms.
189
190 2003-01-30 Akim Demaille <akim@epita.fr>
191
192 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
193
194 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
195
196 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
197 of $1.
198
199 Changes in response to error report by S. Eken: GLR mode does not
200 handle negative $ indices or $ indices in embedded rules correctly.
201 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
202
203 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
204 (b4_rhs_location): Ditto.
205 (yyfill): New function to copy from stack tree into array
206 incrementally.
207 (yyuserAction): Modify to allow incremental move of semantic values
208 to rhs array when in GLR mode.
209 Define YYFILL to use in user-defined actions to fill semantic array
210 as needed.
211 Remove dummy use of yystack, as there is now a guaranteed use.
212 (yydoAction): Modify to allow incremental move of semantic values
213 to rhs array when in GLR mode.
214 (yyresolveAction): Ditto.
215 (yyglrShiftDefer): Update comment.
216 (yyresolveStates): Use X == NULL for pointers, not !X.
217 (yyglrReduce): Ditto.
218 (yydoAction): Ditto
219
220 * tests/glr-regr1.at: Rename to ...
221 * tests/glr-regression.at: Add new regression test for the problems
222 described above (adapted from S. Eken).
223 Update copyright notice.
224 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
225 * tests/Makefile.am: Ditto.
226
227 2003-01-28 Paul Eggert <eggert@twinsun.com>
228
229 * data/lalr1.cc: Do not use @output_header_name@ unless
230 b4_defines_flag is set. This fixes two bugs reported by
231 Tim Van Holder in
232 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
233 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
234
235 2003-01-21 Paul Eggert <eggert@twinsun.com>
236
237 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
238 we don't need to worry about yyerrlab1 being reported as an
239 "unused label" by non-GCC C compilers. The downside is that if
240 locations are used then a couple of statements are duplicated each
241 time YYERROR is invoked, but the upside is that the warnings
242 should vanish.
243 (yyerrlab1): Move code to YERROR.
244 (yyerrlab2): Remove. Change uses back to yyerrlab1.
245 This reverts some of the 2002-12-27 change.
246
247 2003-01-17 Paul Eggert <eggert@twinsun.com>
248
249 * src/output.c (symbol_printers_output): Fix typo that led
250 to core dump. Problem reported by Antonio Rus in
251 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
252
253 2003-01-13 Akim Demaille <akim@epita.fr>,
254 Quoc Peyrot <chojin@lrde.epita.fr>,
255 Robert Anisko <anisko_r@lrde.epita.fr>
256
257 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
258 when the stacks contain one element, as the loop would otherwise
259 free the last state, and then use the top state (the one we just
260 popped). This means that the initial elements will not be freed
261 explicitly, as is the case in yacc.c; it is not a problem, as
262 these elements have fake values.
263
264 2003-01-11 Paul Eggert <eggert@twinsun.com>
265
266 * NEWS: %expect-violations are now just warnings, reverting
267 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
268 bootstrapping problem reported by Matthias Klose; see
269 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
270 * src/conflicts.c (conflicts_print): Likewise.
271 * tests/conflicts.at (%expect not enough, %expect too much,
272 %expect with reduce conflicts): Likewise.
273 * doc/bison.texinfo (Expect Decl): Document this. Also mention
274 that the warning is enabled if the number of conflicts changes
275 (not necessarily increases).
276
277 * src/getargs.c (version): Update copyright year.
278
279 2003-01-09 Akim Demaille <akim@epita.fr>
280
281 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
282
283 2003-01-08 Paul Eggert <eggert@twinsun.com>
284
285 * Makefile.maint (WGETFLAGS):
286 New macro, containing "-C off" to disable proxy caches.
287 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
288 (rel-check): Use $(WGET) instead of wget.
289
290 2003-01-06 Paul Eggert <eggert@twinsun.com>
291
292 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
293 the GLR paper of Scott, Johnstone and Hussain.
294
295 2003-01-04 Paul Eggert <eggert@twinsun.com>
296
297 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
298 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
299 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
300 (EXTRA_LIBRARIES): New var, for liby.a.
301 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
302 (EXTRA_SCRIPTS): New var, for yacc.
303
304 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
305 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
306 Problem reported by Nelson H. F. Beebe.
307
308 2003-01-03 Paul Eggert <eggert@twinsun.com>
309
310 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
311 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
312 when compiling Bison 1.875's `bitset bset = obstack_alloc
313 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
314
315 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
316 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
317 grow to a huge size with typical invocation.
318
319 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
320 Use the pattern recommended by Autoconf 2.57, except also protect
321 against double-definition.
322 * src/system.h: Likewise.
323 Portability issues reported by Nelson H. F. Beebe.
324
325 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
326 All uses changed. Provide a definition in both C and C++.
327 (yytrue, yyfalse): Define even if defined (__cplusplus).
328
329 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
330 Reported by Nelson H. F. Beebe.
331
332 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
333
334 2003-01-02 Paul Eggert <eggert@twinsun.com>
335
336 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
337 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
338 Bug reported by Nelson H. F. Beebe.
339
340 2003-01-01 Paul Eggert <eggert@twinsun.com>
341
342 * Version 1.875.
343
344 2002-12-30 Paul Eggert <eggert@twinsun.com>
345
346 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
347 Moved here from...
348 (<INITIAL>","): Here. This causes stray "," to be treated
349 more uniformly.
350
351 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
352 last brace in braced code when not in Yacc mode, for compatibility
353 with Bison 1.35. This resurrects the 2001-12-15 patch to
354 src/reader.c.
355
356 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
357 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
358
359 2002-12-28 Paul Eggert <eggert@twinsun.com>
360
361 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
362 that of SYM's type. This fixes Debian bug 168069, reported by
363 Thomas Olsson.
364
365 2002-12-28 Paul Eggert <eggert@twinsun.com>
366
367 Version 1.75f.
368
369 Switch back to the Yacc style of conflict reports, undoing some
370 of the 2002-07-30 change.
371 * doc/bison.texinfo (Understanding): Use Yacc style for
372 conflict reports. Also, use new way of locating rules.
373 * src/conflicts.c (conflict_report):
374 Renamed from conflict_report_yacc, removing the old
375 'conflict_report'. Translate the entire conflict report at once,
376 so that we don't assume that "," has the same interpretation in
377 all languages.
378 (conflicts_output): Use Yacc-style conflict report for each state,
379 instead of our more-complicated style.
380 (conflicts_print): Use Yacc-style conflict report, except print
381 the input file name when not emulating Yacc.
382 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
383 Conflicted Reduction, %expect not enough, %expect too much,
384 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
385 * tests/existing.at (GNU Cim Grammar): Likewise.
386 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
387
388 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
389 fatal): Don't invoke fflush; it's not needed and it might even be
390 harmful for stdout, as stdout might not be open.
391 * src/reduce.c (reduce_print): Likewise.
392
393 2002-12-27 Paul Eggert <eggert@twinsun.com>
394
395 Fix a bug where error locations were not being recorded correctly.
396 This problem was originally reported by Paul Hilfinger in
397 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
398
399 * data/yacc.c (yyparse): New local var yylerrsp, to record the
400 top of the location stack's error locations.
401 (yyerrlab): Set it. When discarding a token, push its location
402 onto yylerrsp so that we don't lose track of the error's end.
403 (yyerrlab1): Now is only the target of YYERROR, so that we can
404 properly record the location of the action that failed. For GCC
405 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
406 GCC warning about yyerrlab1 being unused if YYERROR is unused.
407 (yyerrlab2): New label, which yyerrlab now falls through to.
408 Compute the error's location by applying YYLLOC_DEFAULT to
409 the locations of all the symbols that went into the error.
410 * doc/bison.texinfo (Location Default Action): Mention that
411 YYLLOC_DEFAULT is also invoked for syntax errors.
412 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
413 Error locations include the locations of all the tokens that were
414 discarded, not just the last token.
415
416 2002-12-26 Paul Eggert <eggert@twinsun.com>
417
418 * src/files.c: Include quote.h.
419 (compute_output_file_names): Warn if we detect conflicting
420 outputs to the same file. This should catch the misunderstanding
421 exemplified by Debian Bug 165349, reported by Bruce Stephens..
422
423 * src/conflicts.c (conflicts_print): If the user specifies
424 "%expect N", report an error if there are any reduce/reduce
425 conflicts. This is what the manual says should happen.
426 This fixes Debian bug 130890, reported by Anthony DeRobertis.
427 * tests/conflicts.at (%expect with reduce conflicts): New test.
428
429 Don't use m4_include on relative file names, as it doesn't work as
430 desired if there happens to be a file with that name under ".".
431
432 * m4sugar/version.m4: Remove; it was included but it wasn't used.
433 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
434 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
435 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
436 * src/output.c (output_skeleton): Use full path names when
437 specifying a file to include; don't rely on include path, as
438 it's unreliable when the working file contains a file with
439 that name.
440
441 2002-12-25 Paul Eggert <eggert@twinsun.com>
442
443 Remove obsolete references to bison.simple and bison.hairy.
444 Problem mentioned by Aubin Mahe in
445 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
446 * data/glr.c: Comment fix.
447 * doc/bison.1: Remove references. Also, mention "yacc".
448
449 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
450 with -g option.
451
452 * src/parse-gram.y (declaration): Use enum "report_states" rather
453 than its numeric value 1.
454
455 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
456 opening a new one. This fixes Debian bug 165349, reported by
457 Bruce Stephens.
458
459 2002-12-24 Paul Eggert <eggert@twinsun.com>
460
461 Version 1.75e.
462
463 * Makefile.maint (cvs-update): Don't assume that the shell
464 supports $(...), as Solaris sh doesn't.
465
466 * src/parse-gram.y (lloc_default): Remove test for empty
467 nonterminals at the end, since it didn't change the result.
468
469 2002-12-24 Paul Eggert <eggert@twinsun.com>
470
471 If the user does not define YYSTYPE as a macro, Bison now declares it
472 using typedef instead of defining it as a macro. POSIX requires this.
473 For consistency, YYLTYPE is also declared instead of defined.
474
475 %union directives can now have a tag before the `{', e.g., the
476 directive `%union foo {...}' now generates the C code
477 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
478 The default union tag is `YYSTYPE', for compatibility with Solaris 9
479 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
480 instead of `yyltype'.
481
482 `yystype' and `yyltype' are now obsolescent macros instead of being
483 typedefs or tags; they are no longer documented and will be
484 withdrawn in a future release.
485
486 * data/glr.c (b4_location_type): Remove.
487 (YYSTYPE): Renamed from yystype.
488 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
489 (struct YYLTYPE): Renamed from struct yyltype.
490 (YYLTYPE): Renamed from yyltype.
491 (yyltype, yystype): New (and obsolescent) macros,
492 for backward compatibility.
493 * data/yacc.c: Likewise.
494
495 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
496 does not specify a union tag. This is for compatibility with
497 Solaris 9 yacc.
498
499 * src/parse-gram.y (add_param): 2nd arg is now char * not char
500 const *, since it is now modified by stripping surrounding { }.
501 (current_braced_code): Remove.
502 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
503 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
504 trailing " {...}". Now of type <chars>.
505 (grammar_declaration): Adjust to bundled tokens.
506 (code_content): Remove; stripping is now done by add_param.
507 (print_token_value): Print contents of bundled tokens.
508 (token_name): New function.
509
510 * src/reader.h (braced_code, current_braced_code): Remove.
511 (token_name): New decl.
512
513 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
514 token_type, not braced_code code_kind. All uses changed.
515 (SC_PRE_CODE): New state, for scanning after a keyword that
516 has (or usually has) an immediately-following braced code.
517 (token_type): New local var, to keep track of which token type
518 to return when scanning braced code.
519 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
520 <INITIAL>"%parse-param", <INITIAL>"%printer",
521 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
522 instead of returning a token type immediately.
523 (<INITIAL>"{"): Set token type.
524 (<SC_BRACED_CODE>"}"): Use it.
525 (handle_action_dollar, handle_action_at): Now returns bool
526 indicating success. Fail if ! current_rule; this prevents a core dump.
527 (handle_symbol_code_dollar, handle_symbol_code_at):
528 Remove; merge body into caller.
529 (handle_dollar, handle_at): Complain in invalid contexts.
530
531 * NEWS, doc/bison.texinfo: Document the above.
532 * NEWS: Fix years and program names in copyright notice.
533
534 2002-12-17 Paul Eggert <eggert@twinsun.com>
535
536 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
537 Reporting, Table of Symbols): Omit mentions of %lex-param and
538 %parse-param from the documentation for now.
539
540 2002-12-15 Paul Eggert <eggert@twinsun.com>
541
542 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
543 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
544 lookahead symbol, and which sets yychar in parser actions) and it
545 disagreed with the Bison documentation. Bug
546 reported by Andrew Walrond.
547
548 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
549 as the caller now does that.
550 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
551 (YYEMPTY): Parenthesize right hand side, since others use it.
552 (yyparse): Don't assume that our generated code is the only code
553 that sets yychar.
554
555 2002-12-13 Paul Eggert <eggert@twinsun.com>
556
557 Version 1.75d.
558
559 POSIX requires a "yacc" command.
560 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
561 (MOSTLYCLEANFILES): Add yacc.
562 (yacc): New rule.
563 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
564 as an alias for bison y.
565
566 * po/LINGUAS: Add da.
567
568 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
569 problem with latest <getopt.h>.
570 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
571
572 * doc/fdl.texi: Upgrade to 1.2.
573 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
574 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
575 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
576 gnulib.
577 * config/install-sh: Sync with autotools.
578
579 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
580 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
581 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
582 locations are requested.
583 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
584 locations are requested.
585
586 2002-12-12 Paul Eggert <eggert@twinsun.com>
587
588 Remove unportable casts and storage allocation tricks.
589 While we're at it, remove almost all casts, since they
590 usually aren't needed and are a sign of trouble.
591
592 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
593
594 * src/derives.c (derives_compute): Do not subtract NTOKENS from
595 the pointer DSET returned by malloc; this isn't portable.
596 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
597 Similarly for DERIVES.
598 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
599 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
600 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
601
602 * src/derives.c (derives_compute): Do not bother invoking
603 int_of_rule_number, since rule numbers are integers.
604
605 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
606 rather than XMALLOC (char, N).
607
608 * src/files.c (filename_split): Rewrite to avoid cast.
609
610 * src/gram.h (symbol_number_as_item_number,
611 item_number_as_symbol_number, rule_number_as_item_number,
612 item_number_as_rule_number):
613 Now inline functions rather than macros, to avoid casts.
614 * src/state.h (state_number_as_int): Likewise.
615 * src/tables.c (state_number_to_vector_number,
616 symbol_number_to_vector_number): Likewise.
617
618 * src/gram.h (int_of_rule_number): Remove; no longer used.
619
620 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
621 since the resulting storage is always stored into.
622
623 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
624 where it's needed.
625
626 * src/muscle_tab.c (muscle_m4_output):
627 Now inline. Return bool, not int.
628 * src/state.c (state_compare): Likewise.
629 * src/symtab.c (symbol_check_defined,
630 symbol_check_alias_consistency, symbol_pack, symbol_translation,
631 hash_compare_symbol, hash_symbol):
632 Likewise.
633 * src/uniqstr.c (uniqstr_print): Likewise.
634 * src/muscle_tab.c (muscle_m4_output_processor):
635 New function, to avoid casts.
636 * src/state.c (state_comparator, stage_hasher): Likewise.
637 * src/symtab.c (symbol_check_defined_processor,
638 symbol_check_alias_consistency_processor, symbol_pack_processor,
639 symbol_translation_processor, hash_symbol_comparator,
640 hash_symbol_hasher): Likewise.
641 * src/uniqstr.c (uniqstr_print_processor): Likewise.
642 * src/muscle_tab.c (muscles_m4_output):
643 Use new functions instead of casting old functions unportably.
644 * src/state.c (state_hash_new): Likewise.
645 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
646 symbols_token_translations_init):
647 Likewise.
648 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
649
650 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
651 var instead of casting to long, to avoid casts.
652 (prepare_states): Use MALLOC rather than alloca, so that we don't
653 have to worry about alloca.
654 * src/state.c (state_hash_lookup): Likewise.
655
656 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
657 local var instead of casting to unsigned char, to avoid casts.
658
659 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
660 STATE_ALLOC): Remove.
661 (transitions_new, errs_new, reductions_new, state_new): Use malloc
662 rather than calloc, and use offsetof to avoid allocating slightly
663 too much storage.
664 (state_new): Initialize all members.
665
666 * src/state.c (state_hash): Use unsigned accumulator, not signed.
667
668 * src/symtab.c (symbol_free): Remove; unused.
669 (symbol_get): Remove cast in lhs of assignment.
670 (symbols_do): Now static. Accept generic arguments, not
671 hashing-related ones.
672
673 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
674 (symbol_processor): Remove.
675 (symbols_do): Remove decl; now static.
676
677 * src/system.h (alloca): Remove; decl no longer needed.
678 (<stddef.h>): Include, for offsetof.
679 (<inttypes.>, <stdint.h>): Include if available.
680 (uintptr_t): New type, if system lacks it.
681 (CALLOC, MALLOC, REALLOC): New macros.
682 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
683 new macros.
684
685 * src/tables.c (table_size): Now int, to pacify GCC.
686 (table_grow, table_ninf_remap): Use signed table size.
687 (save_row): Don't bother initializing locals when not needed.
688 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
689 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
690
691 * src/vcg.h: Correct misspellings.
692
693 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
694
695
696 * src/getargs.c (getargs): Don't assume EOF == -1.
697
698 2002-12-09 Paul Eggert <eggert@twinsun.com>
699
700 Change identifier spellings to avoid collisions with names
701 that are reserved by POSIX.
702
703 Don't use names ending in _t, since POSIX reserves them.
704 For consistency, remove _e and _s endings -- they're weren't
705 needed to remove ambiguity. All uses changed.
706 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
707 turn was just renamed from struniq_t.
708 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
709 which in turn was just renamed from struniq_processor_t.
710 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
711 in turn was renamed from hash_compare_struniq_t.
712 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
713 (state_list): Renamed from state_list_t.
714 * src/assoc.h (assoc): Renamed from assoc_t.
715 * src/conflicts.c (enum conflict_resolution): Renamed from
716 enum conflict_resolution_e.
717 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
718 (rule_list): Renamed from rule_list_t.
719 * src/getargs.h (enum trace): Renamed from enum trace_e.
720 (enum report): Renamed from enum report_e.
721 * src/gram.h (item_number): Renamed from item_number_t.
722 (rule_number): Renamed from rule_number_t.
723 (struct rule_s): Remove the "rule_s" part; not used.
724 (rule): Renamed from rule_t.
725 (rule_filter): Renamed from rule_filter_t.
726 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
727 (goto_list): Renamed from goto_list_t.
728 * src/lalr.h (goto_number): Renamed from goto_number_t.
729 * src/location.h (location): Renamed from location_t.
730 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
731 and moved here from:
732 * src/muscle_tab.h (muscle_entry_t): here.
733 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
734 (rule_list): Renamed from rule_list_t.
735 * src/print_graph.c (static_graph): Renamed from graph.
736 * src/reader.h (braced_code): Renamed from braced_code_t.
737 Remove brace_code_e tag.
738 * src/relation.h (relation_node): Renamed from relation_node_t.
739 (relation_nodes): Renamed from relation_nodes_t.
740 (relation): Renamed from relation_t.
741 * src/state.h (state_number): Renamed from state_number_t.
742 (struct state): Renamed from struct state_s.
743 (state): Renamed from state_t.
744 (transitions): Renamed from transitions_t. Unused (and
745 misspelled) transtion_s tag removed.
746 (errs): Renamed from errs_t. Unused errs_s tag removed.
747 (reductions): Renamed from reductions_t. Unused tag
748 reductions_s removed.
749 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
750 (struct symbol_list): Renamed from struct symbol_list_s.
751 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
752 (struct symbol): Renamed from struct symbol_s.
753 (symbol): Renamed from symbol_t.
754 * src/tables.c (vector_number): Renamed from vector_number_t.
755 (action_number): Renamed from action_t.
756 * src/tables.h (base_number): Renamed from base_t.
757 * src/vcg.h (enum color): Renamed from enum color_e.
758 (enum textmode): Renamed from enum textmode_e.
759 (enum shape): Renamed from enum shape_e.
760 (struct colorentry): Renamed from struct colorentry_s.
761 (struct classname): Renamed from struct classname_s.
762 (struct infoname): Renamed from struct infoname_s.
763 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
764 (enum decision): Renamed from enum decision_e.
765 (enum orientation): Renamed from enum orientation_e.
766 (enum alignment): Renamed from enum alignment_e.
767 (enum arrow_mode): Renamed from enum arrow_mode_e.
768 (enum crossing_type): Renamed from enum crossing_type_e.
769 (enum view): Renamed from enum view_e.
770 (struct node): Renamed from struct node_s.
771 (node): Renamed from node_t.
772 (enum linestyle): Renamed from enum linestyle_e.
773 (enum arrowstyle): Renamed from enum arrowstyle_e.
774 (struct edge): Renamed from struct edge.
775 (edge): Renamed from edge_t.
776 (struct graph): Renamed from struct graph_s.
777 (graph): Renamed from graph_t.
778 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
779 Rename value_t -> value.
780 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
781 value_t_as_yystype -> value_as_yystype.
782
783 Don't include <errno.h> in the mainstream code, since it
784 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
785 * lib/get-errno.c, lib/get-errno.h: New files.
786 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
787 get-errno.c.
788 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
789 * src/output.c (output_skeleton): Likewise.
790 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
791 instead of errno.
792 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
793 Likewise.
794 (handle_action_dollar, handle_action_at): Likewise.
795 * src/system.h: Do not include <errno.h>.
796 (TAB_EXT): Renamed from EXT_TAB.
797 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
798
799 Avoid str[a-z]*, since <string.h> reserves that name space.
800 Change all instances of "struniq" in names to "uniqstr", and
801 likewise for "STRUNIQ" and "UNIQSTR".
802 * src/uniqstr.c: Renamed from src/struniq.c.
803 * src/uniqstr.h: Renamed from src/struniq.h.
804 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
805 * src/files.c (strsuffix): Remove; unused.
806 (concat2): Renamed from stringappend. Now static.
807 * src/files.h (strsuffix, stringappend): Remove; unused.
808 * src/parse-gram.y (<chars>): Renamed from <string>.
809 (<uniqstr>): Renamed from <struniq>.
810 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
811 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
812 (struct graph_s.expand): Renamed from struct graph_s.stretch.
813 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
814 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
815 (N_EXPAND): Renamed from N_STRETCH.
816
817 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
818 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
819 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
820 Remove; unused.
821 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
822 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
823 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
824 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
825 (BASE_MAXIMUM): Renamed from BASE_MAX.
826 (BASE_MINIMUM): Renamed from BASE_MIN.
827 (ACTION_MAX): Remove; unused.
828 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
829 Unnecessary casts removed from above defines.
830
831
832 Fix misspelling in names.
833 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
834 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
835 G_NODE_ALIGNEMENT.
836
837
838 * lib/timevar.c (timevar_report): Renamed from time_report,
839 for consistency with other names.
840 * lib/timevar.h (timevar_report): New decl.
841 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
842
843
844 Sort include-file uses.
845
846 Reorder all include files under src to be in the order "system.h".
847 then the ../lib include files in angle brackets (alphabetized),
848 then the . include files in double-quotes (alphabetized). Fix
849 dependency breakages encountered in this process, as follows:
850 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
851 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
852 * src/state.h: Include "symtab.h".
853
854 2002-12-08 Paul Eggert <eggert@twinsun.com>
855
856 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
857 since this causes problems when __file__ contains character
858 sequences like "@" that are treated specially by src/scan-skel.l.
859 Instead, just use the file's basename. This fixes the bug
860 reported by Martin Mokrejs in
861 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
862
863 2002-12-06 Paul Eggert <eggert@twinsun.com>
864
865 Add support for rules that do not have trailing semicolons, as
866 POSIX requires. Improve the quality of locations in Bison
867 diagnostics.
868
869 * src/location.c: Include <quotearg.h>.
870 (empty_location): Now const.
871 (location_print): New function. Follow the recommendation of the
872 GNU Coding Standards for locations that span file boundaries.
873 * src/location.h: Do not include <quotearg.h>; no longer needed.
874 (boundary): New type.
875 (location_t): Use it. This allows locations to span file boundaries.
876 All member uses changed: file -> start.file or end.file (as needed),
877 first_line -> start.line, first_column -> start.column,
878 last_line -> end.line, last_column -> end.column.
879 (equal_boundaries): New function.
880 (LOCATION_RESET, LOCATION_STEP): Remove.
881 (LOCATION_PRINT): Remove. All callers changed to use location_print.
882 (empty_location): Now const.
883 (location_print): New decl.
884 * src/parse-gram.y (lloc_default): New function, which handles
885 empty locations more accurately.
886 (YYLLOC_DEFAULT): Use it.
887 (%token COLON): Remove.
888 (%token ID_COLON): New token.
889 (rules): Use it.
890 (declarations, rules): Remove trailing semicolon.
891 (declaration, rules_or_grammar_declaration):
892 Allow empty (";") declaration.
893 (symbol_def): Remove empty actions; no longer needed.
894 (rules_or_grammar_declaration): Remove trailing semicolon.
895 (semi_colon.opt): Remove.
896 * src/reader.h: Include location.h.
897 (scanner_cursor): New decl.
898 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
899 rolling our own.
900 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
901 of *loc.
902 (STEP): Remove. No longer needed, now that adjust_location does
903 the work. All uses removed.
904 (scanner_cursor): New var.
905 (adjust_location): Renamed from extend_location. It now sets
906 *loc and adjusts the scanner cursor. All uses changed.
907 Don't bother testing for CR.
908 (handle_syncline): Remove location arg; now updates scanner cursor.
909 All callers changed.
910 (unexpected_end_of_file): Now accepts start boundary of token or
911 comment, not location. All callers changed. Update scanner cursor,
912 not the location.
913 (SC_AFTER_IDENTIFIER): New state.
914 (context_state): Renamed from c_context. All uses changed.
915 (id_loc, code_start, token_start): New local vars.
916 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
917 processing of Yacc white space and equivalents here.
918 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
919 instead of returning ID immediately, since we need to search for
920 a subsequent colon.
921 (<INITIAL>"'", "\""): Save token_start.
922 (<INITIAL>"%{", "{", "%%"): Save code_start.
923 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
924 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
925 BEGIN context_state at end, not INITIAL.
926 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
927 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
928 Return correct token start.
929 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
930 the start of a character, string or multiline comment is found.
931 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
932 Reduction): Adjust reported locations to match the more-precise
933 results now expected.
934 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
935 * tests/reduce.at (Useless Rules, Reduced Automaton,
936 Underivable Rules): Likewise.
937 * tests/regression.at (Invalid inputs): No longer `expecting ";"
938 or "|"' now that so many other tokens are allowed by the new grammar.
939
940 * src/complain.h (current_file): Remove duplicate decl;
941 current_file is now owned by files.h.
942 * src/complain.c, src/scan-gram.l: Include files.h.
943
944 2002-12-06 Paul Eggert <eggert@twinsun.com>
945
946 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
947 promotes to int; it might be unsigned int.
948 * data/yacc.c (yy_reduce_print): Likewise.
949
950 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
951 be #defined in the prologue, not in the Bison declarations.
952 This fixes Debian Bug 102878, reported by Shaul Karl.
953
954 2002-12-02 Paul Eggert <eggert@twinsun.com>
955
956 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
957 * lib/strtoul.c: New file, from gnulib.
958 This fixes a porting bug reported by Peter Klein in
959 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
960
961 2002-11-30 Paul Eggert <eggert@twinsun.com>
962
963 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
964 and put only a forward declaration in the prologue. This is for
965 consistency with the other scanner helper functions.
966
967 Type clashes now generate warnings, not errors, since it
968 appears that POSIX may allow some grammars with type clashes.
969 * src/reader.c (grammar_current_rule_check): Warn about
970 type clashes instead of complaining.
971 * tests/input.at (Type Clashes): Expect warnings, not complaints.
972
973 Add Yacc library, since POSIX requires it.
974 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
975 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
976 * lib/main.c, lib/yyerror.c: New files.
977
978 gram_error can be static; it need not be extern.
979 * src/reader.h (gram_error): Remove decl.
980 * src/parse-gram.y (gram_error): Now static. Add static decl.
981 (print_token_value): Omit parameter names from forward decl,
982 for consistency.
983
984 2002-11-29 Paul Eggert <eggert@twinsun.com>
985
986 * doc/bison.texinfo: Emphasize that yylex and yyerror must
987 be declared before being used. E.g., one should typically
988 declare them in the prologue. Use GNU coding style in examples.
989 Put "const" consistently after the type it modifies. Mention
990 that C99 supports "inline". Mention that yyerror traditionally
991 returns "int".
992
993 %parse-param and %lex-param now take just one argument, the
994 declaration; the argument name is deduced from the declaration.
995
996 * doc/bison.texinfo (Parser Function, Pure Calling, Error
997 Reporting, Table of Symbols): Document this.
998 * src/parse-gram.y (add_param): New function.
999 (COMMA): Remove.
1000 (declaration): Implement new rule for %parse-param and %lex-param.
1001 * src/scan-gram.l: "," now elicits a warning, rather than being
1002 a token; this is more compatible with byacc.
1003 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1004
1005 2002-11-27 Paul Eggert <eggert@twinsun.com>
1006
1007 Rename identifiers to avoid real and potential collisions.
1008
1009 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1010 to avoid collision with lex macro described by Bruce Lilly in
1011 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1012 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1013 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1014 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1015 All uses changed.
1016 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1017 The name "yycontrol" violates the name space rules, and this stuff
1018 wasn't being used anyway.
1019 (input): Remove action; this stuff wasn't being used.
1020 (gram_error): Rename local variable yylloc -> loc.
1021 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1022 (YY_DECL): Don't use "yy" at start of local variables.
1023 All uses changed, e.g., yylloc -> loc.
1024 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1025 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1026 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1027 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1028
1029 * src/parse-gram.y (gram_error): loc is now const *.
1030 * src/reader.h (gram_error): Likewise.
1031
1032 2002-11-24 Paul Eggert <eggert@twinsun.com>
1033
1034 Version 1.75c.
1035
1036 * tests/actions.at (Actions after errors): Use an output format
1037 more similar to that of the Printers and Destructors test.
1038 Test the position of the ';' token too.
1039 (Printers and Destructors): Likewise.
1040 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1041 unnecessarily alarming people when the test fails.
1042
1043 * data/yacc.c (yyerrlab1): Move this label down, so that the
1044 parser does not discard the lookahead token if the user code
1045 invokes YYERROR. This change is required for POSIX conformance.
1046
1047 * lib/error.c: Sync with gnulib.
1048
1049 2002-11-22 Paul Eggert <eggert@twinsun.com>
1050
1051 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1052 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1053 * lib/xmalloc.c: Likewise.
1054
1055 2002-11-20 Paul Eggert <eggert@twinsun.com>
1056
1057 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1058
1059 2002-11-20 Paul Eggert <eggert@twinsun.com>
1060
1061 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1062 should use `if (! x) abort ();' rather than `assert (x);', and
1063 anyway it's one less thing to worry about configuring.
1064
1065 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1066 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1067 and replace all instances of assert with abort.
1068 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1069 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1070
1071 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1072 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1073 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1074 hash_find_entry, hash_rehash, hash_insert): Likewise.
1075 * src/conflicts.c (resolve_sr_conflict): Likewise.
1076 * src/lalr.c (set_goto_map, map_goto): Likewise.
1077 * src/nullable.c (nullable_compute): Likewise.
1078 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1079 * src/reader.c (packgram, reader): Likewise.
1080 * src/state.c (state_new, state_free, state_transitions_set,
1081 state_reduction_find): Likewise.
1082 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1083 symbol_pack): Likewise.
1084 * src/tables.c (conflict_row, pack_vector): Likewise.
1085 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1086 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1087 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1088 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1089
1090 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1091 (ARGMATCH_CONSTRAINT): New macro.
1092 (ARGMATCH_ASSERT): Use it.
1093
1094 * src/system.h (verify): New macro.
1095 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1096 rather than assert.
1097 * src/tables.c (tables_generate): Likewise.
1098
1099 * src/struniq.c (struniq_assert): Now returns void, and aborts
1100 if the assertion is false.
1101 (struniq_assert_p): Remove.
1102 * src/struniq.h: Likewise.
1103
1104 2002-11-18 Paul Eggert <eggert@twinsun.com>
1105
1106 * data/glr.c (yygetLRActions): Replace `yyindex' with
1107 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1108 This fixes the regression with Sun ONE Studio 7 cc that I reported in
1109 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
1110
1111 2002-11-18 Akim Demaille <akim@epita.fr>
1112
1113 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1114 space.
1115 From Tim Van Holder.
1116
1117 2002-11-17 Paul Eggert <eggert@twinsun.com>
1118
1119 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1120 to "SyntaxError" for consistency with my 2002-11-15 change.
1121
1122 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1123 not define to {}, since this breaks the common use of `YYDPRINTF
1124 ((...));' if a single statement is desired (e.g. before `else').
1125 Work around GCC warnings by surrounding corresponding calls with
1126 {} if needed.
1127 (yyhasResolvedValue): Remove unused function.
1128 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1129 loop body.
1130 (yyreportSyntaxError): Renamed from yyreportParseError.
1131 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1132 All uses changed.
1133 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1134 extern when possible. Remove unused initializations.
1135
1136 2002-11-16 Akim Demaille <akim@epita.fr>
1137
1138 Augment the similarity between GLR and LALR traces.
1139
1140 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1141 (YY_REDUCE_PRINT): New.
1142 (yyparse): Use them.
1143 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1144 YYDPRINT here.
1145 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1146 state reached after the reduction/recovery, since...
1147 (yyparse, yyprocessOneStack): Report the state we are entering in.
1148
1149 2002-11-16 Akim Demaille <akim@epita.fr>
1150
1151 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1152 Add support for --trace=skeleton.
1153 * src/scan-skel.l: %option debug.
1154 Scan strings of non-@ or \n instead of character by character.
1155 (scan_skel): Handle trace_skeleton.
1156 (QPUTS): New.
1157 (@output_parser_name@, @output_header_name@): ``Restore'' their
1158 support (used to be M4 macros).
1159 * data/yacc.c: Quote larger chunks, a la glr.c.
1160 * data/lalr1.cc: Likewise.
1161 The header guards are no longer available, so use some other
1162 string than `YYLSP_NEEDED'.
1163
1164 2002-11-16 Akim Demaille <akim@epita.fr>
1165
1166 Make the ``Printers and Destructors'' test more verbose, taking
1167 `yacc.c''s behavior as (possibly wrong) reference.
1168
1169 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1170 instead of fprint on stdout.
1171 Set and report the last_line of the symbols.
1172 Consistently display values and locations.
1173
1174 2002-11-16 Paul Eggert <eggert@twinsun.com>
1175
1176 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1177
1178 2002-11-15 Paul Eggert <eggert@twinsun.com>
1179
1180 * tests/actions.at (Actions after errors): New test case.
1181
1182 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1183 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1184 tests/action.at, tests/calc.at, tests/conflicts.at,
1185 tests/cxx-type.at, tests/regression.at:
1186 "parse error" -> "syntax error" for POSIX compatibility.
1187 "parsing stack overflow..." -> "parser stack overflow" so
1188 that code matches Bison documentation.
1189
1190 2002-11-15 Akim Demaille <akim@epita.fr>
1191
1192 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1193 take two BRACED_CODE, not two string_content.
1194 Free the scanner's obstack when we are done.
1195 (code_content): New.
1196 * tests/calc.at: Adjust.
1197 * doc/bison.texinfo: Adjust.
1198 Also, make sure to include the `,' for these declarations.
1199
1200 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1201
1202 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1203 definition; avoids potential autoreconf problems.
1204
1205 2002-11-15 Akim Demaille <akim@epita.fr>
1206
1207 Always check the value returned by yyparse.
1208
1209 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1210 returned by yyparse.
1211 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1212 Adjust calls.
1213 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1214 returned by yyparse.
1215
1216 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1217
1218 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1219 on input.at test.
1220
1221 2002-11-14 Paul Eggert <eggert@twinsun.com>
1222
1223 * src/output.c (output_skeleton): Call xfopen instead of
1224 duplicating xfopen's body.
1225
1226 Fix bugs reported by Nelson H. F. Beebe in
1227 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1228
1229 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1230 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1231 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1232 file twice in the grammar, as an extra check.
1233
1234 * tests/input.at (Torturing the Scanner): Surround the
1235 backslash-newline tests with "#if 0", to make it less likely that
1236 we'll run into compiler bugs. Bring back solitary \ inside
1237 comment, but add a closing comment to work around HP C bug. Don't
1238 test backslash-newline in C character constant.
1239
1240 2002-11-14 Akim Demaille <akim@epita.fr>
1241
1242 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1243 status of the compiler.
1244 Calling `exit 1' is no longer needed.
1245 Reported by Nelson H. F. Beebe.
1246
1247 2002-11-14 Akim Demaille <akim@epita.fr>
1248
1249 * tests/atlocal.in (CPPFLAGS): We have config.h.
1250 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1251 New.
1252 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1253 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1254 * tests/regression.at, tests/torture.at: Use them for all the
1255 grammars that are to be compiled.
1256 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1257 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1258 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1259
1260 2002-11-14 Akim Demaille <akim@epita.fr>
1261
1262 * doc/bison.texinfo: Various formatting changes (alignments in
1263 samples, additional @group/@end group, GCS in samples.
1264 Use @deffn instead of simple @table to define the directives,
1265 macros, variables etc.
1266
1267 2002-11-13 Paul Eggert <eggert@twinsun.com>
1268
1269 Fix some bugs reported by Albert Chin-A-Young in
1270 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1271
1272 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1273 -o c"; the HP C compiler chatters during compilation.
1274 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1275 * tests/headers.at (export YYLTYPE): Likewise.
1276
1277 * tests/input.at (Torturing the Scanner): Remove lines containing
1278 solitary backslashes, as they tickle a bug in the HP C compiler.
1279
1280 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1281 comments, since they're not portable. Use GNU coding style.
1282
1283 2002-11-13 Akim Demaille <akim@epita.fr>
1284
1285 * data/yacc.c: Leave bigger chunks of quoted text.
1286 (YYDSYMPRINTF): New.
1287 Use it to report symbol activities.
1288 * data/glr.c (YYDSYMPRINTF): New.
1289 Use it.
1290
1291 2002-11-12 Paul Eggert <eggert@twinsun.com>
1292
1293 Version 1.75b.
1294
1295 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1296 (yyglrReduce): Return yyok, not 0.
1297 This should avoid the enumerated-type warnings reported
1298 by Nelson H. F. Beebe in
1299 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1300
1301 * lib/bbitset.h (BITSET_INLINE): Remove.
1302 * lib/bitset.h [! BITSET_INLINE]: Remove.
1303 (bitset_set, bitset_reset, bitset_test): Rename local vars
1304 to avoid shadowing warnings by GCC.
1305
1306 * data/glr.c (inline): Remove #define. It's the user's
1307 responsibility to #define it away, just like 'const'.
1308 This fixes one of the bugs reported by Nelson H. F. Beebe in
1309 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1310
1311 * Makefile.maint (po-check): Scan .l and .y files instead of the
1312 .c and the .h files that they generate. This fixes the bug
1313 reported by Tim Van Holder in:
1314 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1315 Look for N_ as well as for _. Try to avoid matching #define for
1316 N_ and _.
1317 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1318 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1319 * src/scan-gram.l: Revamp regular expressions so that " and '
1320 do not confuse xgettext.
1321
1322 * src/struniq.h (struniq_new): Do not declare the return type
1323 to be 'const'; this violates the C standard.
1324 * src/struniq.c (struniq_new): Likewise.
1325
1326 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1327
1328 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1329 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1330 linker.
1331
1332 2002-11-12 Akim Demaille <akim@epita.fr>
1333
1334 * Makefile.maint: Sync with Autoconf:
1335 (local_updates): New.
1336
1337 2002-11-12 Akim Demaille <akim@epita.fr>
1338
1339 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1340
1341 2002-11-12 Akim Demaille <akim@epita.fr>
1342
1343 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1344 locations.
1345
1346 2002-11-12 Akim Demaille <akim@epita.fr>
1347
1348 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1349 not yyvalue.
1350
1351 2002-11-12 Akim Demaille <akim@epita.fr>
1352
1353 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1354 Use it to test the GLR parser.
1355
1356 2002-11-12 Akim Demaille <akim@epita.fr>
1357
1358 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1359 defines it.
1360 * data/glr.c (yystos): New.
1361 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1362 (YYDSYMPRINT): New.
1363 (yyval): Don't define it, it is handled via M4.
1364 (yyrecoverParseError): Free verbosely the discarded symbols.
1365 * data/yacc.c (yysymprint): Remove, rather...
1366 (b4_yysymprint_generate): invoke.
1367 * data/c.m4 (b4_yysymprint_generate): New.
1368 Accept pointers as arguments, as opposed to the version from
1369 yacc.c.
1370 (b4_yydestruct_generate): Likewise.
1371 * tests/cations.at (Printers and Destructors): Use Bison directives
1372 instead of CPP macros.
1373 Don't rely on internal details.
1374
1375 2002-11-12 Akim Demaille <akim@epita.fr>
1376
1377 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1378 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1379 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1380 it against YYEMPTY and so forth), work on yytoken (i.e., set
1381 it to YYEMPTY etc.).
1382 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1383 (b4_symbol_actions): Remove.
1384 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1385 for 0, end-of-input.
1386
1387 2002-11-12 Akim Demaille <akim@epita.fr>
1388
1389 * doc/bison.texinfo (Destructor Decl): New.
1390
1391 2002-11-12 Akim Demaille <akim@epita.fr>
1392
1393 * src/tables.c (tables_generate): Use free for pointers that
1394 cannot be NULL, not XFREE.
1395 (pack_vector): Use assert, not fatal, for bound violations.
1396 * src/state.c (state_new): Likewise.
1397 * src/reader.c (reader): Likewise.
1398 * src/lalr.c (set_goto_map): Likewise.
1399 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1400 the file name.
1401
1402 2002-11-12 Akim Demaille <akim@epita.fr>
1403
1404 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1405 Restore.
1406 * src/scan-gram.l (last_string): Is global to the file, not to
1407 yylex.
1408 * src/parse-gram.y (input): Don't append the epilogue here,
1409 (epilogue.opt): do it here, and free the scanner's obstack.
1410 * src/reader.c (epilogue_set): Rename as...
1411 (epilogue_augment): this.
1412 * data/c.m4 (b4_epilogue): Defaults to empty.
1413
1414 2002-11-12 Akim Demaille <akim@epita.fr>
1415
1416 * src/getargs.c (long_options): Remove duplicates.
1417 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1418 Remove.
1419 * doc/bison.rnh: Remove.
1420 * doc/bison.texinfo (VMS Invocation): Remove.
1421
1422 2002-11-12 Akim Demaille <akim@epita.fr>
1423
1424 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1425 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1426
1427 Use struniq for symbols.
1428
1429 * src/symtab.h (symbol_t): The tag member is a struniq.
1430 (symbol_type_set): Adjust.
1431 * src/symtab.c (symbol_new): Takes a struniq.
1432 (symbol_free): Don't free the tag member.
1433 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1434 (hash_compare_symbol, hash_symbol): these.
1435 Use the fact that tags as struniqs.
1436 (symbol_get): Use struniq_new.
1437 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1438 Returns a strniq.
1439 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1440 and type members are struniqs.
1441 * src/reader.c (get_merge_function)
1442 (grammar_current_rule_merge_set): Adjust.
1443 (TYPE, current_type): Are struniq.
1444
1445 Use struniq for file names.
1446
1447 * src/files.h, src/files.c (infile): Split into...
1448 (grammar_file, current_file): these.
1449 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1450 * src/reduce.c (reduce_print): Likewise.
1451 * src/getargs.c (getargs): Likewise.
1452 * src/complain.h, src/complain.c: Likewise.
1453 * src/main.c (main): Call struniqs_new early enough to use it for
1454 file names.
1455 Don't free the input file name.
1456
1457 2002-11-12 Akim Demaille <akim@epita.fr>
1458
1459 * src/symtab.c (symbol_free): Remove dead deactivated code:
1460 type_name are properly removed.
1461 Don't use XFREE to free items that cannot be NULL.
1462 * src/struniq.h, src/struniq.c: New.
1463 * src/main.c (main): Initialize/free struniqs.
1464 * src/parse-gram.y (%union): Add astruniq member.
1465 (yyprint): Adjust.
1466 * src/scan-gram.l (<{tag}>): Return a struniq.
1467 Free the obstack bit that used to store it.
1468 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1469
1470 2002-11-11 Paul Eggert <eggert@twinsun.com>
1471
1472 Revamp to fix many (but not all) of the C- and M4-related quoting
1473 problems. Among other things, this fixes the Bison bug reported
1474 by Jan Hubicka when processing the Bash grammar; see:
1475 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
1476
1477 Use new @ escapes consistently. Represent brackets with @{ and @}
1478 rather than @<:@ and @:>@, since this works a bit better with dumb
1479 editors like vi. Represent @ with @@, since @ is now consistently
1480 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1481 __ofile__, to avoid unexpected expansions. Similarly, use @output
1482 rather than #output.
1483
1484 * data/c.m4 (b4_copyright): Omit file name from comment, since
1485 the file name could contain "*/".
1486 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1487 be quoted. All uses changed.
1488
1489 * data/glr.c: Use new @ escapes consistently.
1490 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1491 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1492 Remove, since they couldn't handle arbitrary characters in file
1493 names.
1494 * data/lalr1.cc: Likewise.
1495 * data/yacc.c: Likewise.
1496
1497 * src/files.c (output_infix): Remove; all uses removed.
1498 * src/files.h: Likewise.
1499
1500 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1501 mishandled funny characters in file names, and anyway it isn't
1502 needed any more.
1503 * data/yacc.c: Likewise.
1504 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1505
1506 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1507 * data/yacc.c: Likewise.
1508
1509 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1510 strings now.
1511 (muscle_init): Quote filename as a C string.
1512 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1513 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1514 * src/output.c (escaped_file_name_output): New function.
1515 (prepare_symbols): Quote tokens for M4.
1516 (prepare): Don't insert output_infix, output_prefix,
1517 output_parser_name, output_header_name; this is now down by scan-skel.
1518 Insert skeleton as a C string.
1519
1520 * src/output.c (user_actions_output, symbol_destructors_output,
1521 symbol_printers_output): Quote filenames for C and M4.
1522 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1523
1524 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1525 escapes other than \\ and \'; this simplifies the code.
1526 (<SC_STRING>): Likewise, for \\ and \".
1527 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1528 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1529 Use new escapes @{ and @} for [ and ].
1530
1531 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1532 them with auto vars.
1533 Switch to new escape scheme, where @ is the escape character uniformly.
1534 Abort if a stray escape character is found. Avoid unbounded input
1535 buffer when parsing non-escaped text.
1536
1537 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1538 __oline__, #output, $@, and @{ do not have unintended meanings.
1539
1540 2002-11-09 Paul Eggert <eggert@twinsun.com>
1541
1542 Fix the test failure due to GCC warnings described in
1543 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
1544 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1545 evaluate to 0 if it's impossible for NINF to be in the respective
1546 table.
1547 (yygetLRActions, yyrecoverParseError): Use them.
1548
1549 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1550 counted in the token inserted at end of file. Now takes
1551 location_t *, not location_t, so that the location can be
1552 adjusted. All uses changed.
1553
1554 * tests/regression.at (Invalid inputs): Adjust wording in
1555 diagnostic to match the new behavior.
1556
1557 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1558 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1559 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1560 abort ();'. This reduces the runtime of the "Many lookaheads"
1561 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1562 GCC 3.2.
1563
1564 2002-11-07 Paul Eggert <eggert@twinsun.com>
1565
1566 * src/parse-gram.y (CHARACTER): Remove unused token.
1567 All uses removed.
1568
1569 * src/scan-gram.l: Remove stack option. We no longer use the
1570 stack, since the stack was never deeper than 1; instead, use the
1571 new auto var c_context to record the stacked value.
1572
1573 Remove nounput option. At an unexpected end of file, we now unput
1574 the minimal input necessary to end cleanly; this simplifies the
1575 code.
1576
1577 Avoid unbounded token sizes where this is easy.
1578
1579 (unexpected_end_of_file): New function.
1580 Use it to systematize the error message on unexpected EOF.
1581 (last-string): Now auto, not static.
1582 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1583 (scanner_last_string_free): Remove; not used.
1584 (percent_percent_count): Move decl to just before use.
1585 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1586 not the (never otherwised-used) CHARACTER.
1587
1588 2002-11-07 Akim Demaille <akim@epita.fr>
1589
1590 Let yyerror always receive the msg as last argument, so that
1591 yyerror can be variadic.
1592
1593 * data/yacc.c (b4_yyerror_args): New.
1594 Use it when calling yyerror.
1595 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1596 Use it when calling yyerror.
1597 * doc/bison.texinfo (Error Reporting): Adjust.
1598 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1599 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1600
1601 2002-11-06 Akim Demaille <akim@epita.fr>
1602
1603 #line should have quoted strings.
1604 Ideally, this should be done by m4_quotearg.
1605
1606 * src/scan-skel.l: Include quotearg.h.
1607 Quote __ofile__.
1608 * src/output.c (symbol_printers_output)
1609 (symbol_destructors_output): Quote the file name.
1610
1611 2002-11-06 Akim Demaille <akim@epita.fr>
1612
1613 * tests/regression.at (Invalid inputs): Adjust to the recent
1614 messages.
1615
1616 2002-11-06 Akim Demaille <akim@epita.fr>
1617
1618 Restore --no-lines.
1619 Reported by Jim Kent.
1620
1621 * data/c.m4 (b4_syncline): New.
1622 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1623 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1624 * src/output.c (user_actions_output): Likewise.
1625 (prepare): Define 'b4_synclines_flag'.
1626 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
1627
1628 2002-11-06 Akim Demaille <akim@epita.fr>
1629
1630 * src/main.c (main): Free `infile'.
1631 * src/scan-gram.l (handle_syncline): New.
1632 Recognize `#line'.
1633 * src/output.c (user_actions_output, symbol_destructors_output)
1634 (symbol_printers_output): Use the location's file name, not
1635 infile.
1636 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1637
1638 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1639
1640 * src/tables.c (matching_state): Don't allow states to match if
1641 either has GLR conflict entries.
1642
1643 2002-11-05 Paul Eggert <eggert@twinsun.com>
1644
1645 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1646 "integer out of range" rather than "invalid value".
1647 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1648 accordingly.
1649
1650 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1651 Also, remove one static variable in the scanner.
1652
1653 * src/scan-gram.l (braces_level): Now auto, not static.
1654 Initialize to zero if the compiler is being picky.
1655 (INITIAL): Clear braces_level instead of incrementing it.
1656 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1657 as POSIX 1003.1-2001 requires.
1658 * src/system.h (IF_LINT): New macro, taken from coreutils.
1659 * configure.ac: Define "lint" if --enable-gcc-warnings.
1660
1661 2002-11-05 Akim Demaille <akim@epita.fr>
1662
1663 * src/scan-gram.l: When it starts with `%', complain about the
1664 whole directive, not just that `invalid character: %'.
1665
1666 2002-11-04 Akim Demaille <akim@epita.fr>
1667
1668 * Makefile.maint: Update from Autoconf.
1669 (update, cvs-update, po-update, do-po-update): New.
1670
1671 2002-11-04 Akim Demaille <akim@epita.fr>
1672
1673 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1674 and yyerror.
1675 Have yyerror `use' its arguments.
1676 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1677 returns true when location & yacc & pure & parse-param.
1678 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1679
1680 2002-11-04 Akim Demaille <akim@epita.fr>
1681
1682 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1683 clashes.
1684 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1685 font-lock-mode.
1686 Use complain_at.
1687 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1688 slot 0.
1689
1690 2002-11-03 Paul Eggert <eggert@twinsun.com>
1691
1692 * src/reader.c (get_merge_function, grammar_current_rule_check):
1693 Use consistent diagnostics for reporting type name clashes.
1694 Quote the types with <>, for consistency with Yacc.
1695 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1696
1697 2002-11-03 Akim Demaille <akim@epita.fr>
1698
1699 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1700 New.
1701 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1702 (b4_parse_param): Remove.
1703 Use b4_identification.
1704 Propagate b4_pure_args where needed to pass them to yyerror.
1705 * data/glr.m4 (b4_parse_param): Remove.
1706 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1707 (b4_lpure_formals): New.
1708 Use b4_identification.
1709 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1710 b4_user_formals and b4_user_args.
1711 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1712 (yyreportAmbiguity): When using a pure parser, also need
1713 the location, and the parse-params.
1714 Adjust callers.
1715 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1716 When using a pure parser, also need the parse-params.
1717 Adjust callers.
1718 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1719 (%pure-parser + %parse-param) LALR and GLR parsers.
1720 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1721 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1722 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1723 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1724 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1725 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1726 * doc/bison.texinfo: Untabify the whole file.
1727 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1728 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1729 (Error Reporting): Adjust to these new directives.
1730 Document %error-verbose, deprecate YYERROR_VERBOSE.
1731
1732 2002-11-03 Akim Demaille <akim@epita.fr>
1733
1734 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1735 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1736 command line options.
1737 * tests/cxx-type.at: Formatting changes.
1738
1739 2002-11-03 Paul Eggert <eggert@twinsun.com>
1740
1741 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1742 to count columns correctly, and to check for invalid inputs.
1743
1744 Use mbsnwidth to count columns correctly. Account for tabs, too.
1745 Include mbswidth.h.
1746 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1747 (extend_location): New function.
1748 (YY_LINES): Remove.
1749
1750 Handle CRLF in C code rather than in Lex code.
1751 (YY_INPUT): New macro.
1752 (no_cr_read): New function.
1753
1754 Scan UCNs, even though we don't fully handle them yet.
1755 (convert_ucn_to_byte): New function.
1756
1757 Handle backslash-newline correctly in C code.
1758 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1759 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1760 all uses changed.
1761 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1762 Use {splice} wherever C allows backslash-newline.
1763 YY_STEP after space, newline, vertical-tab.
1764 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
1765
1766 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1767
1768 ({int}, handle_action_dollar, handle_action_at): Check for integer
1769 overflow.
1770
1771 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1772
1773 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1774 as well as \000. Check for UCHAR_MAX, not 255.
1775 Allow \x with an arbitrary positive number of digits, as in C.
1776 Check for overflow here.
1777 Allow \? and UCNs, for compatibility with C.
1778
1779 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1780 with quote slot used by complain_at.
1781
1782 * tests/input.at: Add tests for backslash-newline, m4 quotes
1783 in symbols, long literals, and funny escapes in strings.
1784
1785 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1786 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1787 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1788 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1789 * m4/mbswidth.m4: New file, from GNU coreutils.
1790
1791 * doc/bison.texinfo (Grammar Outline): Document // comments.
1792 (Symbols): Document that trigraphs have no special meaning in Bison,
1793 nor is backslash-newline allowed.
1794 (Actions): Document that trigraphs have no special meaning.
1795
1796 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1797 no longer used.
1798
1799 2002-11-02 Paul Eggert <eggert@twinsun.com>
1800
1801 * src/reader.c: Don't include quote.h; not needed.
1802 (get_merge_function): Reword warning to be consistent with
1803 type clash diagnostic in grammar_current_rule_check.
1804
1805 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
1806 bug in trigraph handling.
1807
1808 * src/output.c (prepare_symbols): When printing token names,
1809 escape "[" as "@<:@" and likewise for "]".
1810
1811 * src/system.h (errno): Remove declaration, as we are now
1812 assuming C89 or better, and C89 guarantees errno.
1813
1814 2002-10-30 Paul Eggert <eggert@twinsun.com>
1815
1816 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
1817 Check for close failures.
1818 * src/files.h (xfclose): Return void, not int, since it always
1819 returned zero.
1820 * src/files.c (xfclose): Likewise. Report I/O error if ferror
1821 indicates one.
1822 * src/output.c (output_skeleton): Use xfclose rather than fclose
1823 and ferror. xfclose now checks ferror.
1824
1825 * data/glr.c (YYLEFTMOST_STATE): Remove.
1826 (yyreportTree): Use a stack-based leftmost state. This avoids
1827 our continuing battles with bogus warnings about initializers.
1828
1829 2002-10-30 Akim Demaille <akim@epita.fr>
1830
1831 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
1832 #if.
1833
1834 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1835
1836 * tests/glr-regr1.at: New test for reported regressions.
1837 * tests/testsuite.at: Add glr-regr1.at test.
1838 * tests/Makefile.am: Add glr-regr1.at test.
1839
1840 2002-10-24 Paul Eggert <eggert@twinsun.com>
1841
1842 Version 1.75a.
1843
1844 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
1845 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
1846 we use malloc. Don't assume 'A' through 'Z' are contiguous.
1847 Don't assume strdup exists; POSIX says its an XSI extension.
1848 Check for buffer overflow on input.
1849
1850 2002-10-24 Akim Demaille <akim@epita.fr>
1851
1852 * src/output.c (output_skeleton): Don't disable M4sugar comments
1853 too soon: it results in comments being expanded.
1854 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
1855 first output.
1856
1857 2002-10-24 Akim Demaille <akim@epita.fr>
1858
1859 * data/yacc.c (m4_int_type): New.
1860 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
1861 char' as only yacc.c wants K&R portability.
1862 * data/glr.c (yysigned_char): Remove.
1863 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
1864 Reported by Quoc Peyrot.
1865
1866 2002-10-23 Paul Eggert <eggert@twinsun.com>
1867
1868 * src/main.c (main): With --trace=time, report times even if a
1869 non-fatal error occurs. Formerly, the times were reported in some
1870 such cases but not in others.
1871 * src/reader.c (reader): Just return if a complaint has been issued,
1872 instead of exiting, so that 'main' can report times.
1873
1874 2002-10-22 Akim Demaille <akim@epita.fr>
1875
1876 * src/system.h: Include sys/types.
1877 Reported by Bert Deknuydt.
1878
1879 2002-10-23 Paul Eggert <eggert@twinsun.com>
1880
1881 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
1882 Suggested by Art Haas.
1883
1884 2002-10-22 Paul Eggert <eggert@twinsun.com>
1885
1886 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
1887 decl; not needed any more.
1888 * src/main.c (main): Use return to exit, undoing yesterday's change.
1889 The last OS that we could find where this wouldn't work is
1890 SunOS 3.5, and that's too old to worry about now.
1891
1892 * data/glr.c (struct yyltype): Define members even when not
1893 doing locations. This is more consistent with yacc.c, and it
1894 works around the following bug reports:
1895 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
1896 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
1897
1898 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
1899 @acronym consistently. Standardize on "Yacc" instead of "YACC",
1900 "Algol" instead of "ALGOL". Give a bit more history about BNF.
1901
1902 2002-10-22 Akim Demaille <akim@epita.fr>
1903
1904 * data/README: New.
1905
1906 2002-10-21 Paul Eggert <eggert@twinsun.com>
1907
1908 Be consistent about 'bool'; the old code used an enum in one
1909 module and an int in another, and this violates the C standard.
1910 * m4/stdbool.m4: New file, from coreutils 4.5.3.
1911 * configure.ac (AC_HEADER_STDBOOL): Add.
1912 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
1913 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
1914 * src/symtab.c (hash_compare_symbol_t): Likewise.
1915 * src/system.h (bool, false, true): Use a definition consistent
1916 with ../lib/hash.c. All uses changed.
1917
1918 * src/complain.c (warning_issued): Renamed from warn_message_count,
1919 so that we needn't worry about integer overflow (!).
1920 Now of type bool. All uses changed.
1921 (complaint_issued): Renamed from complain_message_count; likewise.
1922
1923 * src/main.c (main): Use exit to exit with failure.
1924
1925 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
1926 rather than 1 and 0.
1927 * src/main.c (main): Likewise.
1928 * src/getargs.c (getargs): Likewise.
1929 * src/reader.c (reader): Likewise.
1930
1931 * src/getarg.c (getargs): Remove duplicate code for
1932 "Try `bison --help'".
1933
1934 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
1935 What was that "2" for?
1936
1937 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
1938 * src/getargs.c (usage): Likewise.
1939
1940 * src/getargs.c (getargs): When there are too few operands, report
1941 the last one. When there are too many, report the first extra
1942 one. This is how diffutils does it.
1943
1944 2002-10-20 Paul Eggert <eggert@twinsun.com>
1945
1946 Remove K&R vestiges.
1947 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
1948 * src/complain.c (VA_START): Remove. Assume prototypes.
1949 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
1950 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
1951 fatal): Assume prototypes.
1952 * src/complain.h: Assume prototypes.
1953 * src/system.h (PARAMS): Remove.
1954 Include <limits.h> unconditionally, since it's guaranteeed even
1955 for a freestanding C89 compiler.
1956 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
1957 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
1958
1959 2002-10-20 Akim Demaille <akim@epita.fr>
1960
1961 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
1962 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
1963 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
1964 (yyresolveStates, yyresolveAction, yyresolveStack)
1965 (yyprocessOneStack): Use them.
1966 (yy_reduce_print): New.
1967 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
1968
1969 2002-10-20 Akim Demaille <akim@epita.fr>
1970
1971 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
1972 arguments and output `void'.
1973 (b4_c_function): Rename as...
1974 (b4_c_function_def): this.
1975 (b4_c_function_decl, b4_c_ansi_function_def)
1976 (b4_c_ansi_function_decl): New.
1977 Change the interpretation of the arguments: before `int, foo', now
1978 `int foo, foo'.
1979 * data/yacc.c (yyparse): Prototype and define thanks to these.
1980 Adjust b4_c_function_def uses.
1981 * data/glr.c (yyparse): Likewise, but ANSI only.
1982
1983 2002-10-20 Akim Demaille <akim@epita.fr>
1984
1985 * src/output.c (prepare): Move the definition of `tokens_number',
1986 `nterms_number', `undef_token_number', `user_token_number_max'
1987 to...
1988 (prepare_tokens): Here.
1989 (prepare_tokens): Rename as...
1990 (prepare_symbols): this.
1991 (prepare): Move the definition of `rules_number' to...
1992 (prepare_rules): here.
1993 (prepare): Move the definition of `last', `final_state_number',
1994 `states_number' to...
1995 (prepare_states): here.
1996 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
1997
1998 2002-10-20 Akim Demaille <akim@epita.fr>
1999
2000 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2001
2002 2002-10-20 Akim Demaille <akim@epita.fr>
2003
2004 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2005 * data/c.m4: here.
2006
2007 2002-10-20 Akim Demaille <akim@epita.fr>
2008
2009 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2010 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2011 `pair'.
2012 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2013 `name' to...
2014 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2015 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2016 These.
2017
2018 2002-10-19 Paul Eggert <eggert@twinsun.com>
2019
2020 Do not create a temporary file, as that involves security and
2021 cleanup headaches. Instead, use a pair of pipes.
2022 Derived from a suggestion by Florian Krohm.
2023 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2024 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2025 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2026 (BISON_PREREQ_SUBPIPE): Add.
2027 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2028 Add subpipe.h, subpipe.c.
2029 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2030 * po/POTFILES.in: Add lib/subpipe.c.
2031 * src/output.c: Include "subpipe.h".
2032 (m4_invoke): Remove decl.
2033 (scan_skel): New decl.
2034 (output_skeleton): Use pipe rather than temporary file for m4 input.
2035 Check that m4sugar.m4 is readable, to avoid deadlock.
2036 Check for pipe I/O error.
2037 * src/scan-skel.l (readpipe): Remove decl.
2038 (scan_skel): New function, to be used in place of m4_invoke.
2039 Read from stream rather than file.
2040
2041 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2042 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2043 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2044 this generates a more-accurate value anyway.
2045
2046 * lib/timevar.c (timervar_accumulate): Rename locals to
2047 avoid confusion with similarly-named more-global.
2048 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2049
2050 * src/output.c (prepare): Use xstrdup to convert char const *
2051 to char *, to avoid GCC warning.
2052
2053 2002-10-19 Akim Demaille <akim@epita.fr>
2054
2055 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2056 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2057 Use them to have `calc.y' ready for %pure-parser.
2058 * data/yacc.c (YYLEX): Pass a yylex return type to
2059 b4_c_function_call.
2060
2061 2002-10-19 Akim Demaille <akim@epita.fr>
2062
2063 Prototype support of %lex-param and %parse-param.
2064
2065 * src/parse-gram.y: Add the definition of the %lex-param and
2066 %parse-param tokens, plus their rules.
2067 Drop the `_' version of %glr-parser.
2068 Add the "," token.
2069 * src/scan-gram.l (INITIAL): Scan them.
2070 * src/muscle_tab.c: Comment changes.
2071 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2072 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2073 (muscle_entry_s): The `value' member is no longer const.
2074 Adjust all dependencies.
2075 * src/muscle_tab.c (muscle_init): Adjust: use
2076 MUSCLE_INSERT_STRING.
2077 Initialize the obstack earlier.
2078 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2079 (muscle_pair_list_grow): New.
2080 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2081 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2082 * tests/calc.at: Use %locations, not --locations.
2083 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2084
2085 2002-10-19 Akim Demaille <akim@epita.fr>
2086
2087 * src/getargs.c (usage): Take status as argument and exit
2088 accordingly.
2089 Report the traditional `Try ... --help' message when status != 0.
2090 (usage, version): Don't take a FILE * as arg, it is pointless.
2091 (getargs): When there is an incorrect number of arguments, make it
2092 an error, and report it GNUlically thanks to `usage ()'.
2093
2094 2002-10-18 Paul Eggert <eggert@twinsun.com>
2095
2096 * data/glr.c (yyreportParseError): Don't assume that sprintf
2097 yields the length of the printed string, as this is not true
2098 on SunOS 4.1.4. Reported by Peter Klein.
2099
2100 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2101 * tests/conflicts.at (%nonassoc and eof): Likewise.
2102 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2103
2104 2002-10-17 Akim Demaille <akim@epita.fr>
2105
2106 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2107 * src/getargs.c (trace_types, trace_args): Adjust.
2108 * src/reader.c (grammar_current_rule_prec_set)
2109 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2110 Standardize error messages.
2111 And s/@prec/%prec/!
2112 (reader): Use trace_flag to enable scanner/parser debugging,
2113 instead of an adhoc scheme.
2114 * src/scan-gram.l: Remove trailing debugging code.
2115
2116 2002-10-16 Paul Eggert <eggert@twinsun.com>
2117
2118 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2119 MUSCLE_TAB_H.
2120
2121 * NEWS: Officially drop support for building Bison with K&R C,
2122 since it didn't work anyway and it's not worth worrying about.
2123 * Makefile.maint (wget_files): Remove ansi2knr.c.
2124 (ansi2knr.c-url_prefix): Remove.
2125 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2126 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2127 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2128
2129 2002-10-15 Paul Eggert <eggert@twinsun.com>
2130
2131 Stop using the "enum_" trick for K&R-style function definitions;
2132 it confused me, and I was the author! Instead, assume that people
2133 who want to use K&R C compilers (when using these modules in GCC,
2134 perhaps?) will run ansi2knr.
2135
2136 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2137 All uses of "enum_" changed to "enum ".
2138 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2139 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2140
2141 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2142 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2143 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2144 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2145 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2146 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2147 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2148 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2149 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2150 Use function prototypes; this removes the need for declaring
2151 static functions simply to provide their prototypes.
2152 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2153 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2154 bitset_count_, bitset_create, bitset_dump, bitset_first,
2155 bitset_free, bitset_init, bitset_last, bitset_next,
2156 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2157 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2158 bitset_print, bitset_release_memory, bitset_toggle_,
2159 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2160 debug_bitset): Likewise.
2161 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2162 * lib/bitset_stats.c (bitset_log_histogram_print,
2163 bitset_percent_histogram_print, bitset_stats_and,
2164 bitset_stats_and_cmp, bitset_stats_and_or,
2165 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2166 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2167 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2168 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2169 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2170 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2171 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2172 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2173 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2174 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2175 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2176 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2177 bitset_stats_zero): Likewise.
2178 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2179 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2180 bitsetv_dump, debug_bitsetv): Likewise.
2181 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2182 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2183 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2184 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2185 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2186 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2187 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2188 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2189 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2190 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2191 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2192 Likewise.
2193 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2194 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2195 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2196 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2197 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2198 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2199 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2200 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2201 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2202 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2203 lbitset_xor_cmp, lbitset_zero): Likewise.
2204
2205 2002-10-14 Akim Demaille <akim@epita.fr>
2206
2207 Version 1.75.
2208
2209 2002-10-14 Akim Demaille <akim@epita.fr>
2210
2211 * tests/Makefile.am (maintainer-check-posix): New.
2212
2213 2002-10-14 Akim Demaille <akim@epita.fr>
2214
2215 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2216 member.
2217
2218 2002-10-14 Akim Demaille <akim@epita.fr>
2219
2220 * src/tables.c (table_ninf_remap): base -> tab.
2221 Reported by Matt Rosing.
2222
2223 2002-10-14 Paul Eggert <eggert@twinsun.com>
2224
2225 * tests/action.at, tests/calc.at, tests/conflicts.at,
2226 tests/cxx-type.at, tests/headers.at, tests/input.at,
2227 tests/regression.at, tests/synclines.at, tests/torture.at:
2228 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2229 so that the tests still work even if POSIXLY_CORRECT is set.
2230 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2231
2232 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2233 for portability to K&R hosts. Fix typo: signed char is guaranteed
2234 only to 127, not to 128.
2235 * data/glr.c (yysigned_char): New type.
2236 * data/yacc.c (yysigned_char): Likewise.
2237 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2238
2239 2002-10-13 Paul Eggert <eggert@twinsun.com>
2240
2241 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2242 true due to limited range of data type" warning from GCC.
2243
2244 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2245 by wrapping enum yytokentype's definition inside #ifndef
2246 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2247
2248 2002-10-13 Akim Demaille <akim@epita.fr>
2249
2250 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2251 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2252
2253 2002-10-13 Akim Demaille <akim@epita.fr>
2254
2255 * Makefile.maint: Update from Autoconf 2.54.
2256 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2257
2258 2002-10-13 Akim Demaille <akim@epita.fr>
2259
2260 * src/print.c (print_state): Separate the list of solved conflicts
2261 from the other items.
2262 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2263
2264 2002-10-13 Akim Demaille <akim@epita.fr>
2265
2266 Let nondeterministic skeletons be usable with deterministic
2267 tables.
2268
2269 With the patch, GAWK compiled by GCC without -O2 passes its test
2270 suite using a GLR parser driven by LALR tables. It fails with -O2
2271 because `struct stat' gives two different answers on my machine:
2272 88 (definition of an auto var) and later 96 (memset on this var).
2273 Hence the stack is badly corrumpted. The headers inclusion is to
2274 blame: if I move the awk.h inclusion before GLR's system header
2275 inclusion, the two struct stat have the same size.
2276
2277 * src/tables.c (pack_table): Always create conflict_table.
2278 (token_actions): Always create conflict_list.
2279 * data/glr.c (YYFLAG): Remove, unused.
2280
2281 2002-10-13 Akim Demaille <akim@epita.fr>
2282
2283 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2284 (O0FLAGS): New.
2285 (VALGRIND, GXX): New.
2286 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2287 * tests/bison.in: Run $PREBISON a pre-command.
2288 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2289 (maintainer-check-g++): New.
2290 * Makefile.am (maintainer-check): New.
2291
2292 2002-10-13 Akim Demaille <akim@epita.fr>
2293
2294 * data/glr.c: Formatting changes.
2295 Tweak some trace messages to match yacc.c's.
2296
2297 2002-10-13 Akim Demaille <akim@epita.fr>
2298
2299 GLR parsers sometimes raise parse errors instead of performing the
2300 default reduction.
2301 Reported by Charles-Henry de Boysson.
2302
2303 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2304 check the length of the traces when %glr.
2305 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2306 GLR's traces.
2307 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2308 Test GLR parsers.
2309 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2310 (yyltype): Remove the yy prefix from the member names.
2311 (yytable): Complete its comment.
2312 (yygetLRActions): Map error action number from YYTABLE from
2313 YYTABLE_NINF to 0.
2314 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2315 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2316 not satisfying as we could compare an YYACTION computed from
2317 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2318 only value for error actions.
2319 (yyreportParseError): In verbose parse error messages, don't issue
2320 `error' in the list of expected tokens.
2321 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2322 next action to perform to match glr.c's decoding.
2323 (yytable): Complete its comment.
2324
2325 2002-10-13 Paul Eggert <eggert@twinsun.com>
2326
2327 Fix problem reported by Henrik Grubbstroem in
2328 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2329 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2330 because the Bison parser reads the second action before reducing
2331 the first one.
2332 * src/scan-gram.l (rule_length): New static var.
2333 Use it to keep track of the rule length in the scanner, since
2334 we can't expect the parser to be in lock-step sync with the scanner.
2335 (handle_action_dollar, handle_action_at): Use this var.
2336 * tests/actions.at (Exotic Dollars): Test for the problem.
2337
2338 2002-10-12 Paul Eggert <eggert@twinsun.com>
2339
2340 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2341 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2342 Include <sys/time.h> when checking for clock_t and struct tms.
2343 Use same include order as source.
2344 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2345 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2346
2347 * lib/timevar.c: Update copyright date and clarify comments.
2348 (get_time) [IN_GCC]: Keep the GCC version for reference.
2349
2350 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2351 GCC version as of today, then merge Bison's changes.
2352 Change "GCC" to "Bison" in copyright notice. timevar.def's
2353 author is Akim, so change that too.
2354
2355 * src/reader.c (grammar_current_rule_check):
2356 Don't worry about the default action if $$ is untyped.
2357 Prevents bogus warnings reported by Jim Gifford in
2358 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2359
2360 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2361 * data/glr.c, data/lalr1.cc, data/yacc.c:
2362 Output token definitions before the first part of user declarations.
2363 Fixes compatibility problem reported by Jim Gifford for kbd in
2364 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2365
2366 2002-10-11 Paul Eggert <eggert@twinsun.com>
2367
2368 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2369 (yyparse): here. This undoes some of the 2002-07-25 change.
2370 Compatibility problem reported by Ralf S. Engelschall with
2371 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2372
2373 2002-10-11 Akim Demaille <akim@epita.fr>
2374
2375 * tests/regression.at Characters Escapes): New.
2376 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2377 characters.
2378 Reported by Jan Nieuwenhuizen.
2379
2380 2002-10-11 Akim Demaille <akim@epita.fr>
2381
2382 * po/id.po: New.
2383
2384 2002-10-10 Paul Eggert <eggert@twinsun.com>
2385
2386 Portability fixes for bitsets; this also avoids several GCC
2387 warnings.
2388
2389 * lib/abitset.c: Include <stddef.h>, for offsetof.
2390 * lib/lbitset.c: Likewise.
2391
2392 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2393 properly for vectors of objects. Do not assume that adding a
2394 header size to a multiple of a word size yields a value that is
2395 properly aligned for the whole union.
2396 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2397
2398 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2399 unique names for structures.
2400 * lib/ebitset.c (ebitset_bytes): Likewise.
2401 * lib/lbitset.c (lbitset_bytes): Likewise.
2402
2403 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2404 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2405 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2406 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2407 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2408 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2409 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2410 to improve the type-checking that GCC can do.
2411 * lib/bitset.c (bitset_op4_cmp): Likewise.
2412 * lib/bitset_stats.c (bitset_stats_count,
2413 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2414 bitset_stats_copy, bitset_stats_disjoint_p,
2415 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2416 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2417 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2418 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2419 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2420 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2421 bitset_stats_or_and_cmp): Likewise.
2422 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2423 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2424 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2425 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2426
2427 * lib/abitset.h: Include bitset.h, not bbitset.h.
2428 * lib/ebitset.h: Likewise.
2429 * lib/lbitset.h: Likewise.
2430
2431 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2432 All instances of parameters of type enum bitset_opts are now of
2433 type enum_bitset_opts, to conform to the C Standard, and similarly
2434 for enum_bitset_type.
2435 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2436 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2437
2438 Do not use "struct bitset_struct" to mean different things in
2439 different modules. Not only is this confusing, it violates
2440 the C Standard, which requires that structure types in different
2441 modules must be compatible if one is to be passed to the other.
2442 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2443 All instances of "struct bitset_struct *" replaced with "bitset".
2444 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2445 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2446 struct lbitset_struct, struct bitset_stats_struct): New types.
2447 All uses of struct bitset_struct changed to union bitset_union,
2448 etc.
2449 * lib/abitset.c (struct abitset_struct, abitset,
2450 struct bitset_struct): Remove.
2451 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2452 struct bitset_struct): Remove.
2453 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2454 bitset_struct): Remove.
2455 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2456 Likewise.
2457
2458 Do not call a function of type T using a call that assumes the
2459 function is of a different type U. Standard C requires that a
2460 function must be called with a type that is compatible with its
2461 definition.
2462 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2463 New decls.
2464 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2465 New functions.
2466 * lib/ebitset.c (PFV): Remove.
2467 * lib/lbitset.c (PFV): Likewise.
2468 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2469 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2470 decls.
2471 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2472 (ebitset_vtable): Use them.
2473 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2474 lbitset_xor): New functions.
2475 (lbitset_vtable): Use them.
2476
2477 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2478 Declare.
2479
2480 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2481 GCC warning.
2482 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2483 Use offsetof, for simplicity.
2484
2485 2002-10-06 Paul Eggert <eggert@twinsun.com>
2486
2487 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2488 the same width as int. This reapplies a hunk of the 2002-08-12 patch
2489 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
2490 which was inadvertently undone by the 2002-09-30 patch.
2491 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2492 the same width as int.
2493
2494 2002-10-04 Paul Eggert <eggert@twinsun.com>
2495
2496 Version 1.50.
2497
2498 * configure.ac (AC_INIT), NEWS: Increment version number.
2499
2500 * doc/bison.texinfo: Minor spelling, grammar, and white space
2501 fixes.
2502 (Symbols): Mention that any negative value returned from yylex
2503 signifies end-of-input. Warn about negative chars. Mention
2504 the portable Standard C character set.
2505
2506 The GNU coding standard says CFLAGS and YFLAGS are reserved
2507 for the installer to set.
2508 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2509 * src/Makefile.am (AM_CFLAGS): Likewise.
2510 (AM_YFLAGS): Renamed from YFLAGS.
2511
2512 Fix some MAX and MIN problems.
2513 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2514 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2515 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2516 * src/reader.c (reader): Use it.
2517
2518 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2519 POSIX 1003.1-2001 has removed fgrep.
2520
2521 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2522
2523 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2524 interpreted as signed.
2525 * lib/ebitset.c (ebitset_list): Fix bug.
2526
2527 2002-10-01 Paul Eggert <eggert@twinsun.com>
2528
2529 More fixes for 64-bit hosts and large bitsets.
2530
2531 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2532 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2533 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2534 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2535 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2536 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2537 bitset_count_): Likewise.
2538 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2539 bitset_first, bitset_last): Likewise.
2540 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2541 bitset_stats_list_reverse, bitset_stats_size,
2542 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2543 Likewise.
2544 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2545 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2546 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2547 bitsetv_reflexive_transitive_closure): Likewise.
2548 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2549 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2550 Likewise.
2551 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2552 Likewise.
2553
2554 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2555 Use size_t, not unsigned int, to count bytes.
2556 * lib/abitset.h (abitset_bytes): Likewise.
2557 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2558 Likewise.
2559 * lib/bitset.h (bitset_bytes): Likewise.
2560 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2561 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2562 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2563 * lib/ebitset.c (ebitset_bytes): Likewise.
2564 * lib/ebitset.h (ebitset_bytes): Likewise.
2565 * lib/lbitset.c (lbitset_bytes): Likewise.
2566 * lib/lbitset.h (lbitset_bytes): Likewise.
2567
2568 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2569 abitset_subset_p, abitset_disjoint_p, abitset_and,
2570 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2571 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2572 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2573 abitset_or_and, abitset_or_and_cmp):
2574 Use bitset_windex instead of unsigned int.
2575 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2576 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2577 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2578 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2579 Likewise.
2580 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
2581
2582 * lib/bitset.c (bitset_print):
2583 Use proper printf formats for widths of integer types.
2584 * lib/bitset_stats.c (bitset_percent_histogram_print,
2585 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2586 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2587 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2588 * lib/lbitset.c (lbitset_bytes): Likewise.
2589
2590 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2591 BITSET_SIZE_MAX): New macros.
2592 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2593 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2594 to BITSET_WINDEX_MAX.
2595
2596 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2597 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2598 since we now return the bitset_bindex type (not int).
2599
2600 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2601 when computing sizes.
2602 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2603
2604 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2605 and avoid cast to unsigned.
2606
2607 2002-09-30 Akim Demaille <akim@epita.fr>
2608
2609 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2610 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2611 Updates from Michael Hayes.
2612
2613 2002-09-30 Art Haas <ahaas@neosoft.com>
2614
2615 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2616 invocations.
2617 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2618 defined.
2619
2620 2002-09-27 Akim Demaille <akim@epita.fr>
2621
2622 Version 1.49c.
2623
2624 2002-09-27 Akim Demaille <akim@epita.fr>
2625
2626 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2627 (Because of AC_LIBSOURCE).
2628
2629 2002-09-27 Akim Demaille <akim@epita.fr>
2630
2631 Playing with Autoscan.
2632
2633 * configure.ac: Remove the old LIBOBJ tweaks.
2634 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2635 * lib/strrchr.c: New.
2636 * lib/strtol.c: New, from the Coreutils 4.5.1.
2637
2638 2002-09-27 Akim Demaille <akim@epita.fr>
2639
2640 Playing with Autoscan.
2641
2642 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2643 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2644 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2645 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2646 Coreutils 4.5.1.
2647
2648 2002-09-24 Akim Demaille <akim@epita.fr>
2649
2650 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2651 (Frequently Asked Questions, Parser Stack Overflow): New.
2652
2653 2002-09-13 Akim Demaille <akim@epita.fr>
2654
2655 Playing with autoscan.
2656
2657 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2658 * src/files.c (skeleton_find): Remove, unused.
2659 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2660 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2661
2662 2002-09-13 Akim Demaille <akim@epita.fr>
2663
2664 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2665 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2666
2667 2002-09-13 Akim Demaille <akim@epita.fr>
2668
2669 * configure.ac: Require 2.54.
2670 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2671 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2672 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2673 Remove, provided by Autoconf macros.
2674
2675 2002-09-12 Akim Demaille <akim@epita.fr>
2676
2677 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2678
2679 2002-09-12 Akim Demaille <akim@epita.fr>
2680
2681 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2682 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2683 Reported by Martin Mokrejs.
2684
2685 2002-09-10 Akim Demaille <akim@epita.fr>
2686
2687 * src/parse-gram.y: Associate a human readable string to each
2688 token type.
2689 * tests/regression.at (Invalid inputs): Adjust.
2690
2691 2002-09-10 Gary V. Vaughan <gary@gnu.org>
2692
2693 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2694 with an Autoconf-2.5x style configure.ac.
2695
2696 2002-09-06 Paul Eggert <eggert@twinsun.com>
2697
2698 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2699 exception applies only to yacc.c. This is a modification of a
2700 patch originally suggested by Akim Demaille.
2701
2702 2002-09-06 Akim Demaille <akim@epita.fr>
2703
2704 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2705 here to...
2706 * data/yacc.c: here.
2707
2708 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2709 LocationType.
2710 (b4_ltype): Default to yy::Location from location.hh.
2711
2712 2002-09-04 Jim Meyering <jim@meyering.net>
2713
2714 * data/yacc.c: Guard the declaration of yytoknum also with
2715 `#ifdef YYPRINT', so it is declared only when used.
2716
2717 2002-09-04 Akim Demaille <akim@epita.fr>
2718
2719 * configure.in: Rename as...
2720 * configure.ac: this.
2721 Bump to 1.49c.
2722
2723 2002-09-04 Akim Demaille <akim@epita.fr>
2724
2725 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2726 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2727 translate maintainer only messages.
2728
2729 2002-08-12 Paul Eggert <eggert@twinsun.com>
2730
2731 Version 1.49b.
2732
2733 * Makefile.am (SUBDIRS): Remove intl.
2734 (DISTCLEANFILES): Remove.
2735 * NEWS: Mention that GNU M4 is now required. Clarify what is
2736 meant by "larger grammars". Mention the pt_BR translation.
2737 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2738 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2739 Bump version from 0.11.2 to 0.11.5.
2740 (BISON_PREREQ_STAGE): Remove.
2741 (AM_GNU_GETTEXT): Use external gettext.
2742 (AC_OUTPUT): Remove intl/Makefile.
2743
2744 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2745
2746 * data/glr.c: Include string.h, for strlen.
2747 (yyreportParseError): Use size_t for yysize.
2748 (yy_yypstack): No longer nested inside yypstates, as nested
2749 functions are not portable. Do not assume size_t is the
2750 same width as int.
2751 (yypstates): Do not assume that ptrdiff_t is the same width
2752 as int, and similarly for yyposn and YYINDEX.
2753
2754 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2755
2756 * lib/Makefile.am (INCLUDES): Do not include from the intl
2757 directory, which has been removed.
2758 * src/Makefile.am (INCLUDES): Likewise.
2759
2760 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2761 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2762 New vars.
2763
2764 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2765 * tests/Makefile.am (EXTRA_DIST): Likewise.
2766
2767 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2768 Do not assume that bitset_windex is the same width as unsigned.
2769
2770 * lib/abitset.c (abitset_unused_clear): Do not assume that
2771 bitset_word is the same width as int.
2772 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2773 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2774 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2775 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2776 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2777
2778 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2779 portability to one's complement hosts!).
2780 * lib/ebitset.c (ebitset_op1): Likewise.
2781 * lib/lbitset.c (lbitset_op1): Likewise.
2782
2783 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2784 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2785 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2786 Sync with fileutils.
2787 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2788 lib/gettext.h: Sync with diffutils.
2789
2790 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2791 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2792
2793 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2794 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2795 check for void *.
2796
2797 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2798 size_t; the old version tried to do this but casted improperly.
2799 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2800 (bitset_test): Now returns int, not unsigned long.
2801
2802 * lib/bitset_stats.c: Include "gettext.h".
2803 (_): New macro.
2804 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
2805 name locals "index", as it generates unnecessary warnings on some
2806 hosts that have an "index" function.
2807
2808 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
2809 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
2810 they need translation.
2811 * src/LR0.c (state_list_append, new_itemsets, get_state,
2812 append_states, generate_states): Likewise.
2813 * src/assoc.c (assoc_to_string): Likewise.
2814 * src/closure.c (print_closure, set_firsts, closure): Likewise.
2815 * src/gram.c (grammar_dump): Likewise.
2816 * src/injections.c (injections_compute): Likewise.
2817 * src/lalr.c (lookaheads_print): Likewise.
2818 * src/relation.c (relation_transpose): Likewise.
2819 * src/scan-gram.l: Likewise.
2820 * src/tables.c (table_grow, pack_vector): Likewise.
2821
2822 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
2823 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
2824 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
2825 * m4/mbstate_t.m4: Sync with fileutils.
2826 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
2827
2828 * po/LINGUAS: Add pt_BR.
2829 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
2830 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
2831 lib/timevar.c.
2832 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
2833 manual recommends.
2834 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
2835
2836 * src/complain.c (strerror_r): Remove decl; not needed.
2837 (strerror): Use same pattern as ../lib/error.c.
2838
2839 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
2840
2841 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
2842
2843 * src/main.c (main): Cast result of bindtextdomain and textdomain
2844 to void, to avoid a GCC warning when --disable-nls is in effect.
2845
2846 * src/scan-gram.l: Use strings rather than escapes when possible,
2847 to minimize the number of warnings from xgettext.
2848 (handle_action_dollar, handle_action_at): Don't use isdigit,
2849 as it mishandles negative chars and it may not work as expected
2850 outside the C locale.
2851
2852 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
2853 this is a GCC extension and is not portable to other compilers.
2854
2855 * src/system.h (alloca): Use same pattern as ../lib/error.c.
2856 Do not include <ctype.h>; no longer needed.
2857 Do not include <malloc.h>; no longer needed (and generates
2858 warnings on OpenBSD 3.0).
2859
2860 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
2861 it's not portable.
2862
2863 * tests/regression.at: Do not use 'cc -c input.c -o input';
2864 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
2865
2866 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
2867 exit status as failure, not just exit status 1. Sun C exits
2868 with status 2 sometimes.
2869
2870 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
2871 Use it for the two large tests.
2872
2873 2002-08-02 Akim Demaille <akim@epita.fr>
2874
2875 * src/conflicts.c (conflicts_output): Don't output rules never
2876 reduced here, since anyway that computation doesn't work.
2877 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
2878 (rule_useless_p, rule_never_reduced_p): New.
2879 (grammar_rules_partial_print): Use a filter instead of a range.
2880 Display the title only if needed.
2881 (grammar_rules_print): Adjust.
2882 (grammar_rules_never_reduced_report): New.
2883 * src/tables.c (action_row): Move the computation of rules never
2884 reduced to...
2885 (token_actions): here.
2886 * src/main.c (main): Make the parser before making the report, so
2887 that rules never reduced are computed.
2888 Call grammar_rules_never_reduced_report.
2889 * src/print.c (print_results): Report rules never reduced.
2890 * tests/conflicts.at, tests/reduce.at: Adjust.
2891
2892 2002-08-01 Akim Demaille <akim@epita.fr>
2893
2894 Instead of attaching lookaheads and duplicating the rules being
2895 reduced by a state, attach the lookaheads to the reductions.
2896
2897 * src/state.h (state_t): Remove the `lookaheads',
2898 `lookaheads_rule' member.
2899 (reductions_t): Add a `lookaheads' member.
2900 Use a regular array for the `rules'.
2901 * src/state.c (reductions_new): Initialize the lookaheads member
2902 to 0.
2903 (state_rule_lookaheads_print): Adjust.
2904 * src/state.h, src/state.c (state_reductions_find): New.
2905 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
2906 (count_rr_conflicts): Adjust.
2907 * src/lalr.c (LArule): Remove.
2908 (add_lookback_edge): Adjust.
2909 (state_lookaheads_count): New.
2910 (states_lookaheads_initialize): Merge into...
2911 (initialize_LA): this.
2912 (lalr_free): Adjust.
2913 * src/main.c (main): Don't free nullable and derives too early: it
2914 is used by --verbose.
2915 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
2916
2917 2002-08-01 Akim Demaille <akim@epita.fr>
2918
2919 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
2920 `rule_number_t**'.
2921 (set_derives, free_derives): Rename as...
2922 (derives_compute, derives_free): this.
2923 Adjust all dependencies.
2924 * src/nullable.c (set_nullable, free_nullable): Rename as...
2925 (nullable_compute, nullable_free): these.
2926 (rule_list_t): Store rule_t *, not rule_number_t.
2927 * src/state.c (state_rule_lookaheads_print): Directly compare rule
2928 pointers, instead of their numbers.
2929 * src/main.c (main): Call nullable_free, and derives_free earlier,
2930 as they were lo longer used.
2931
2932 2002-08-01 Akim Demaille <akim@epita.fr>
2933
2934 * lib/timevar.c (get_time): Include children time.
2935 * src/lalr.h (LA, LArule): Don't export them: used with the
2936 state_t.
2937 * src/lalr.c (LA, LArule): Static.
2938 * src/lalr.h, src/lalr.c (lalr_free): New.
2939 * src/main.c (main): Call it.
2940 * src/tables.c (pack_vector): Check whether loc is >= to the
2941 table_size, not >.
2942 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
2943 (tables_generate): do it, since that's also it which allocates
2944 them.
2945 Don't free LA and LArule, main does.
2946
2947 2002-07-31 Akim Demaille <akim@epita.fr>
2948
2949 Separate parser tables computation and output.
2950
2951 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
2952 (conflict_list, conflict_list_cnt, table, check, table_ninf)
2953 (yydefgoto, yydefact, high): Move to...
2954 * src/tables.h, src/tables.c: here.
2955 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2956 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2957 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
2958 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
2959 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
2960 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
2961 (action_row, save_row, token_actions, save_column, default_goto)
2962 (goto_actions, sort_actions, matching_state, pack_vector)
2963 (table_ninf_remap, pack_table, prepare_actions): Move to...
2964 * src/tables.c: here.
2965 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
2966 * src/output.c (token_actions, output_base, output_conflicts)
2967 (output_check): Merge into...
2968 (prepare_actions): this.
2969 (actions_output): Rename as...
2970 (user_actions_output): this.
2971 * src/main.c (main): Call tables_generate and tables_free.
2972
2973 2002-07-31 Akim Demaille <akim@epita.fr>
2974
2975 Steal GCC's --time-report support.
2976
2977 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
2978 stolen/adjusted from GCC.
2979 * m4/stage.m4: Remove time related checks.
2980 * m4/timevar.m4: New.
2981 * configure.in: Adjust.
2982 * src/system.h: Adjust to using timevar.h.
2983 * src/getargs.h, src/getargs.c: Support trace_time for
2984 --trace=time.
2985 * src/main.c (stage): Remove.
2986 (main): Replace `stage' invocations with timevar calls.
2987 * src/output.c: Insert pertinent timevar calls.
2988
2989 2002-07-31 Akim Demaille <akim@epita.fr>
2990
2991 Let --trace have arguments.
2992
2993 * src/getargs.h (enum trace_e): New.
2994 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
2995 (long_options, short_options): --trace/-T takes an optional
2996 argument.
2997 Change all the uses of trace_flag to reflect the new flags.
2998 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
2999
3000 Strengthen `stage' portability.
3001
3002 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3003 * configure.in: Use it.
3004 Don't check for malloc.h and sys/times.h.
3005 * src/system.h: Include them when appropriate.
3006 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3007 times and struct tms are available.
3008
3009 2002-07-30 Akim Demaille <akim@epita.fr>
3010
3011 In verbose parse error message, don't report `error' as an
3012 expected token.
3013 * tests/actions.at (Printers and Destructors): Adjust.
3014 * tests/calc.at (Calculator $1): Adjust.
3015 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3016 error message, do not report the parser accepts the error token in
3017 that state.
3018
3019 2002-07-30 Akim Demaille <akim@epita.fr>
3020
3021 Normalize conflict related messages.
3022
3023 * src/complain.h, src/complain.c (warn, complain): New.
3024 * src/conflicts.c (conflicts_print): Use them.
3025 (conflict_report_yacc): New, extracted from...
3026 (conflicts_print): here.
3027 * tests/conflicts.at, tests/existing.at: Adjust.
3028
3029 2002-07-30 Akim Demaille <akim@epita.fr>
3030
3031 Report rules which are never reduced by the parser: those hidden
3032 by conflicts.
3033
3034 * src/LR0.c (save_reductions): Don't make the final state too
3035 different: save its reduction (accept) instead of having a state
3036 without any action (no shift or goto, no reduce).
3037 Note: the final state is now a ``regular'' state, i.e., the
3038 parsers now contain `reduce 0' as default reduction.
3039 Nevertheless, since they decide to `accept' when yystate =
3040 final_state, they still will not reduce rule 0.
3041 * src/print.c (print_actions, print_reduction): Adjust.
3042 * src/output.c (action_row): Track reduced rules.
3043 (token_actions): Report rules never reduced.
3044 * tests/conflicts.at, tests/regression.at: Adjust.
3045
3046 2002-07-30 Akim Demaille <akim@epita.fr>
3047
3048 `stage' was accidently included in a previous patch.
3049 Initiate its autoconfiscation.
3050
3051 * configure.in: Look for malloc.h and sys/times.h.
3052 * src/main.c (stage): Adjust.
3053 Report only when trace_flag.
3054
3055 2002-07-29 Akim Demaille <akim@epita.fr>
3056
3057 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3058 state_number_t.
3059 (errs_t): symbol_t*, not symbol_number_t.
3060 (reductions_t): rule_t*, not rule_number_t.
3061 (FOR_EACH_SHIFT): New.
3062 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3063 * src/print.c, src/print_graph.c: Adjust.
3064
3065 2002-07-29 Akim Demaille <akim@epita.fr>
3066
3067 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3068
3069 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3070 (endtoken, accept): these.
3071 * src/reader.c (reader): Set endtoken's default tag to "$end".
3072 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3073 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3074 Adjust.
3075
3076 2002-07-29 Akim Demaille <akim@epita.fr>
3077
3078 * src/reduce.c (reduce_grammar): When the language is empty,
3079 complain about the start symbol, not the axiom.
3080 Use its location.
3081 * tests/reduce.at (Empty Language): New.
3082
3083 2002-07-26 Akim Demaille <akim@epita.fr>
3084
3085 * src/reader.h, src/reader.c (gram_error): ... can't get
3086 yycontrol without making too strong assumptions on the parser
3087 itself.
3088 * src/output.c (prepare_tokens): Use the real 0th value of
3089 token_translations instead of `0'.
3090 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3091 visible here.
3092 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3093 for the time being: %locations ought to provide it to yyerror.
3094
3095 2002-07-25 Akim Demaille <akim@epita.fr>
3096
3097 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3098 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3099 * tests/regression.at (Web2c Actions): Adjust.
3100
3101 2002-07-25 Akim Demaille <akim@epita.fr>
3102
3103 Stop storing rules from 1 to nrules + 1.
3104
3105 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3106 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3107 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3108 Iterate from 0 to nrules.
3109 Use rule_number_as_item_number and item_number_as_rule_number.
3110 Adjust to `derive' now containing possibly 0.
3111 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3112 Handle the `- 1' part in rule numbers from/to item numbers.
3113 * src/conflicts.c (log_resolution): Fix the message which reversed
3114 shift and reduce.
3115 * src/output.c (action_row): Initialize default_rule to -1.
3116 (token_actions): Adjust.
3117 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3118 expected output.
3119 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3120
3121 2002-07-25 Akim Demaille <akim@epita.fr>
3122
3123 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3124 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3125 (b4_c_knr_arg_decl): New.
3126 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3127 yyreport_parse_error.
3128
3129 2002-07-25 Akim Demaille <akim@epita.fr>
3130
3131 * data/yacc.c (yyreport_parse_error): New, extracted from...
3132 (yyparse): here.
3133 (yydestruct, yysymprint): Move above yyparse.
3134 Be K&R compliant.
3135
3136 2002-07-25 Akim Demaille <akim@epita.fr>
3137
3138 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3139 replace...
3140 (b4_sint_type, b4_uint_type): these.
3141 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3142 * tests/regression.at (Web2c Actions): Adjust.
3143
3144 2002-07-25 Akim Demaille <akim@epita.fr>
3145
3146 * src/gram.h (TIEM_NUMBER_MAX): New.
3147 (item_number_of_rule_number, rule_number_of_item_number): Rename
3148 as...
3149 (rule_number_as_item_number, item_number_as_rule_number): these.
3150 Adjust dependencies.
3151 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3152 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3153 (symbol_number_to_vector_number): New.
3154 (order): Of vector_number_t* type.
3155 (base_t, BASE_MAX, BASE_MIN): New.
3156 (froms, tos, width, pos, check): Of base_t type.
3157 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3158 (actrow): Of action_number_t type.
3159 (conflrow): Of unsigned int type.
3160 (table_ninf, base_ninf): New.
3161 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3162 (muscle_insert_int_table, muscle_insert_base_table)
3163 (muscle_insert_rule_number_table): New.
3164 (prepare_tokens): Output `toknum' as int_table.
3165 (action_row): Returns a rule_number_t.
3166 Use ACTION_MIN, not SHRT_MIN.
3167 (token_actions): yydefact is rule_number_t*.
3168 (table_ninf_remap): New.
3169 (pack_table): Use it for `base' and `table'.
3170 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3171 replaced with...
3172 (YYPACT_NINF, YYTABLE_NINF): these.
3173 (yypact, yytable): Compute their types instead of hard-coded
3174 `short'.
3175 * tests/regression.at (Web2c Actions): Adjust.
3176
3177 2002-07-19 Akim Demaille <akim@epita.fr>
3178
3179 * src/scan-gram.l (id): Can start with an underscore.
3180
3181 2002-07-16 Akim Demaille <akim@epita.fr>
3182
3183 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3184 Adjust all former `associativity' dependencies.
3185 * src/symtab.c (symbol_new): Default associativity is `undef', not
3186 `right'.
3187 (symbol_check_alias_consistence): Adjust.
3188
3189 2002-07-09 Akim Demaille <akim@epita.fr>
3190
3191 * doc/bison.texinfo: Properly set the ``header'' part.
3192 Use @dircategory ``GNU programming tools'' as per Texinfo's
3193 documentation.
3194 Use @copying.
3195
3196 2002-07-09 Akim Demaille <akim@epita.fr>
3197
3198 * lib/quotearg.h: Protect against multiple inclusions.
3199 * src/location.h (location_t): Add a `file' member.
3200 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3201 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3202 `error_one_per_line' support.
3203
3204 2002-07-09 Akim Demaille <akim@epita.fr>
3205
3206 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3207 * src/reader.c (lineno): Remove.
3208 Adjust all dependencies.
3209 (get_merge_function): Take a location and use complain_at.
3210 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3211 * tests/regression.at (Invalid inputs, Mixing %token styles):
3212 Adjust.
3213
3214 2002-07-09 Akim Demaille <akim@epita.fr>
3215
3216 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3217 recovery rule, and forbid extensions when --yacc.
3218 (gram_error): Use complain_at.
3219 * src/reader.c (reader): Exit if there were parse errors.
3220
3221 2002-07-09 Akim Demaille <akim@epita.fr>
3222
3223 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3224 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3225 Reported by R Blake <blakers@mac.com>.
3226
3227 2002-07-09 Akim Demaille <akim@epita.fr>
3228
3229 * data/yacc.c: Output the copyright notive in the header.
3230
3231 2002-07-03 Akim Demaille <akim@epita.fr>
3232
3233 * src/output.c (froms, tos): Are state_number_t.
3234 (save_column): sp, sp1, and sp2 are state_number_t.
3235 (prepare): Rename `final' as `final_state_number', `nnts' as
3236 `nterms_number', `nrules' as `rules_number', `nstates' as
3237 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3238 unused.
3239 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3240 * data/lalr1.cc (nsym_): Remove, unused.
3241
3242 2002-07-03 Akim Demaille <akim@epita.fr>
3243
3244 * src/lalr.h, src/lalr.c (goto_number_t): New.
3245 * src/lalr.c (goto_list_t): New.
3246 Propagate them.
3247 * src/nullable.c (rule_list_t): New.
3248 Propagate.
3249 * src/types.h: Remove.
3250
3251 2002-07-03 Akim Demaille <akim@epita.fr>
3252
3253 * src/closure.c (print_fderives): Use rule_rhs_print.
3254 * src/derives.c (print_derives): Use rule_rhs_print.
3255 (rule_list_t): New, replaces `shorts'.
3256 (set_derives): Add comments.
3257 * tests/sets.at (Nullable, Firsts): Adjust.
3258
3259 2002-07-03 Akim Demaille <akim@epita.fr>
3260
3261 * src/output.c (prepare_actions): Free `tally' and `width'.
3262 (prepare_actions): Allocate and free `order'.
3263 * src/symtab.c (symbols_free): Free `symbols'.
3264 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3265 * src/output.c (m4_invoke): Move to...
3266 * src/scan-skel.l: here.
3267 (<<EOF>>): Close yyout, and free its name.
3268
3269 2002-07-03 Akim Demaille <akim@epita.fr>
3270
3271 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3272
3273 * src/LR0.c (new_state): Merge into...
3274 (state_list_append): this.
3275 (new_states): Merge into...
3276 (generate_states): here.
3277 (set_states): Don't ensure a proper `errs' state member here, do it...
3278 * src/conflicts.c (conflicts_solve): here.
3279 * src/state.h, src/state.c: Comment changes.
3280 (state_t): Rename member `shifts' as `transitions'.
3281 Adjust all dependencies.
3282 (errs_new): For consistency, also take the values as argument.
3283 (errs_dup): Remove.
3284 (state_errs_set): New.
3285 (state_reductions_set, state_transitions_set): Assert that no
3286 previous value was assigned.
3287 (state_free): New.
3288 (states_free): Use it.
3289 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3290 temporary storage: use `errs' and `nerrs' as elsewhere.
3291 (set_conflicts): Allocate and free this `errs'.
3292
3293 2002-07-02 Akim Demaille <akim@epita.fr>
3294
3295 * lib/libiberty.h: New.
3296 * lib: Update the bitset implementation from upstream.
3297 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3298 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3299 * src/main.c: Adjust bitset stats calls.
3300
3301 2002-07-01 Paul Eggert <eggert@twinsun.com>
3302
3303 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3304 char, so that negative chars don't collide with $.
3305
3306 2002-06-30 Akim Demaille <akim@epita.fr>
3307
3308 Have the GLR tests be `warning' checked, and fix the warnings.
3309
3310 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3311 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3312 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3313 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3314 (yyaddDeferredAction): static.
3315 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3316 (yyreportParseError): yyprefix is const.
3317 yytokenp is used only when verbose.
3318 (yy__GNUC__): Replace with __GNUC__.
3319 (yypdumpstack): yyi is size_t.
3320 (yypreference): Un-yy local variables and arguments, to avoid
3321 clashes with `yyr1'. Anyway, we are not in the user name space.
3322 (yytname_size): be an int, as is compared with ints.
3323 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3324 Use them.
3325 * tests/cxx-gram.at: Use quotation to protect $1.
3326 Use AT_COMPILE to enable warnings hunts.
3327 Prototype yylex and yyerror.
3328 `Use' argc.
3329 Include `string.h', not `strings.h'.
3330 Produce and prototype stmtMerge only when used.
3331 yylex takes a location.
3332
3333 2002-06-30 Akim Demaille <akim@epita.fr>
3334
3335 We spend a lot of time in quotearg, in particular when --verbose.
3336
3337 * src/symtab.c (symbol_get): Store a quoted version of the key.
3338 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3339 Adjust all callers.
3340
3341 2002-06-30 Akim Demaille <akim@epita.fr>
3342
3343 * src/state.h (reductions_t): Rename member `nreds' as num.
3344 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3345 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3346
3347 2002-06-30 Akim Demaille <akim@epita.fr>
3348
3349 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3350 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3351 (shifts_to): Rename as...
3352 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3353 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3354 (TRANSITION_IS_DISABLED, transitions_to): these.
3355
3356 2002-06-30 Akim Demaille <akim@epita.fr>
3357
3358 * src/print.c (print_shifts, print_gotos): Merge into...
3359 (print_transitions): this.
3360 (print_transitions, print_errs, print_reductions): Align the
3361 lookaheads columns.
3362 (print_core, print_transitions, print_errs, print_state,
3363 print_grammar): Output empty lines separator before, not after.
3364 (state_default_rule_compute): Rename as...
3365 (state_default_rule): this.
3366 * tests/conflicts.at (Defaulted Conflicted Reduction),
3367 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3368 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3369
3370 2002-06-30 Akim Demaille <akim@epita.fr>
3371
3372 Display items as we display rules.
3373
3374 * src/gram.h, src/gram.c (rule_lhs_print): New.
3375 * src/gram.c (grammar_rules_partial_print): Use it.
3376 * src/print.c (print_core): Likewise.
3377 * tests/conflicts.at (Defaulted Conflicted Reduction),
3378 (Unresolved SR Conflicts): Adjust.
3379 (Unresolved SR Conflicts): Adjust and rename as...
3380 (Resolved SR Conflicts): this, as was meant.
3381 * tests/regression.at (Web2c Report): Adjust.
3382
3383 2002-06-30 Akim Demaille <akim@epita.fr>
3384
3385 * src/print.c (state_default_rule_compute): New, extracted from...
3386 (print_reductions): here.
3387 Pessimize, but clarify the code.
3388 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3389
3390 2002-06-30 Akim Demaille <akim@epita.fr>
3391
3392 * src/output.c (action_row): Let default_rule be always a rule
3393 number.
3394
3395 2002-06-30 Akim Demaille <akim@epita.fr>
3396
3397 * src/closure.c (print_firsts, print_fderives, closure):
3398 Use BITSET_EXECUTE.
3399 * src/lalr.c (lookaheads_print): Likewise.
3400 * src/state.c (state_rule_lookaheads_print): Likewise.
3401 * src/print_graph.c (print_core): Likewise.
3402 * src/print.c (print_reductions): Likewise.
3403 * src/output.c (action_row): Likewise.
3404 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3405
3406 2002-06-30 Akim Demaille <akim@epita.fr>
3407
3408 * src/print_graph.c: Use report_flag.
3409
3410 2002-06-30 Akim Demaille <akim@epita.fr>
3411
3412 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3413 to...
3414 * src/relation.h, src/relation.c (traverse, relation_digraph)
3415 (relation_print, relation_transpose): New.
3416
3417 2002-06-30 Akim Demaille <akim@epita.fr>
3418
3419 * src/state.h, src/state.c (shifts_to): New.
3420 * src/lalr.c (build_relations): Use it.
3421
3422 2002-06-30 Akim Demaille <akim@epita.fr>
3423
3424 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3425 (item_number_of_rule_number, rule_number_of_item_number): New.
3426 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3427 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3428 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3429 Propagate their use.
3430 Much remains to be done, in particular wrt `shorts' from types.h.
3431
3432 2002-06-30 Akim Demaille <akim@epita.fr>
3433
3434 * src/symtab.c (symbol_new): Initialize the `printer' member.
3435
3436 2002-06-30 Akim Demaille <akim@epita.fr>
3437
3438 * src/LR0.c (save_reductions): Remove, replaced by...
3439 * src/state.h, src/state.c (state_reductions_set): New.
3440 (reductions, errs): Rename as...
3441 (reductions_t, errs_t): these.
3442 Adjust all dependencies.
3443
3444 2002-06-30 Akim Demaille <akim@epita.fr>
3445
3446 * src/LR0.c (state_list_t, state_list_append): New.
3447 (first_state, last_state): Now symbol_list_t.
3448 (this_state): Remove.
3449 (new_itemsets, append_states, save_reductions): Take a state_t as
3450 argument.
3451 (set_states, generate_states): Adjust.
3452 (save_shifts): Remove, replaced by...
3453 * src/state.h, src/state.c (state_shifts_set): New.
3454 (shifts): Rename as...
3455 (shifts_t): this.
3456 Adjust all dependencies.
3457 * src/state.h (state_t): Remove the `next' member.
3458
3459 2002-06-30 Akim Demaille <akim@epita.fr>
3460
3461 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3462 escaped in slot 0.
3463
3464 2002-06-30 Akim Demaille <akim@epita.fr>
3465
3466 Use hash.h for the state hash table.
3467
3468 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3469 (allocate_storage): Use state_hash_new.
3470 (free_storage): Use state_hash_free.
3471 (new_state, get_state): Adjust.
3472 * src/lalr.h, src/lalr.c (states): Move to...
3473 * src/states.h (state_t): Remove the `link' member, no longer
3474 used.
3475 * src/states.h, src/states.c: here.
3476 (state_hash_new, state_hash_free, state_hash_lookup)
3477 (state_hash_insert, states_free): New.
3478 * src/states.c (state_table, state_compare, state_hash): New.
3479 * src/output.c (output_actions): Do not free states now, since we
3480 still need to know the final_state number in `prepare', called
3481 afterwards. Do it...
3482 * src/main.c (main): here: call states_free after `output'.
3483
3484 2002-06-30 Akim Demaille <akim@epita.fr>
3485
3486 * src/state.h, src/state.c (state_new): New, extracted from...
3487 * src/LR0.c (new_state): here.
3488 * src/state.h (STATE_ALLOC): Move to...
3489 * src/state.c: here.
3490 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3491 * src/state.h, src/state.c: here.
3492
3493 2002-06-30 Akim Demaille <akim@epita.fr>
3494
3495 * src/reader.c (gensym): Rename as...
3496 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3497 (getsym): Rename as...
3498 (symbol_get): this.
3499
3500 2002-06-30 Akim Demaille <akim@epita.fr>
3501
3502 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3503 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3504 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3505 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3506
3507 2002-06-30 Akim Demaille <akim@epita.fr>
3508
3509 Make the test suite pass with warnings checked.
3510
3511 * tests/actions.at (Printers and Destructors): Improve.
3512 Avoid unsigned vs. signed issues.
3513 * tests/calc.at: Don't exercise the scanner here, do it...
3514 * tests/input.at (Torturing the Scanner): here.
3515
3516 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3517
3518 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
3519 reorganize first lines parallel to yacc.c.
3520
3521 2002-06-28 Akim Demaille <akim@epita.fr>
3522
3523 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3524 (b4_token_enum, b4_token_defines): New, factored from...
3525 * data/lalr1.cc, data/yacc.c, glr.c: here.
3526
3527 2002-06-28 Akim Demaille <akim@epita.fr>
3528
3529 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3530 unused variables.
3531 * src/output.c (merger_output): static.
3532
3533 2002-06-28 Akim Demaille <akim@epita.fr>
3534
3535 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3536 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3537 pacify GCC.
3538 * src/output.c (save_row): Initialize all the variables to pacify GCC.
3539
3540 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3541
3542 Accumulated changelog for new GLR parsing features.
3543
3544 * src/conflicts.c (count_total_conflicts): Change name to
3545 conflicts_total_count.
3546 * src/conflicts.h: Ditto.
3547 * src/output.c (token_actions): Use the new name.
3548 (output_conflicts): Change conflp => conflict_list_heads, and
3549 confl => conflict_list for better readability.
3550 * data/glr.c: Use the new names.
3551 * NEWS: Add self to GLR announcement.
3552
3553 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3554
3555 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3556 Akim Demaille.
3557
3558 * data/bison.glr: Change name to glr.c
3559 * data/glr.c: Renamed from bison.glr.
3560 * data/Makefile.am: Add glr.c
3561
3562 * src/getargs.c:
3563
3564 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3565 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
3566
3567 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3568
3569 * data/bison.glr: Be sure to restore the
3570 current #line when returning to the skeleton contents after having
3571 exposed the input file's #line.
3572
3573 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3574
3575 * data/bison.glr: Bring up to date with changes to bison.simple.
3576
3577 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3578
3579 * data/bison.glr: Correct definitions that use b4_prefix.
3580 Various reformatting.
3581 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3582 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3583 yytokenp argument; now part of stack.
3584 (yychar): Define to behave as documented.
3585 (yyclearin): Ditto.
3586
3587 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3588
3589 * src/reader.h: Add declaration for free_merger_functions.
3590
3591 * src/reader.c (merge_functions): New variable.
3592 (get_merge_function): New function.
3593 (free_merger_functions): New function.
3594 (readgram): Check for %prec that is not followed by a symbol.
3595 Handle %dprec and %merge declarations.
3596 (packgram): Initialize dprec and merger fields in rules array.
3597
3598 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3599 conflict_list_cnt, conflict_list_free): New variables.
3600 (table_grow): Also grow conflict_table.
3601 (prepare_rules): Output dprec and merger tables.
3602 (conflict_row): New function.
3603 (action_row): Output conflict lists for GLR parser. Don't use
3604 default reduction in conflicted states for GLR parser so that there
3605 are spaces for the conflict lists.
3606 (save_row): Also save conflict information.
3607 (token_actions): Allocate conflict list.
3608 (merger_output): New function.
3609 (pack_vector): Pack conflict table, too.
3610 (output_conflicts): New function to output yyconflp and yyconfl.
3611 (output_check): Allocate conflict_tos.
3612 (output_actions): Output conflict tables, also.
3613 (output_skeleton): Output b4_mergers definition.
3614 (prepare): Output b4_max_rhs_length definition.
3615 Use 'bison.glr' as default skeleton for GLR parsers.
3616
3617 * src/gram.c (glr_parser): New flag.
3618 (grammar_free): Call free_merger_functions.
3619
3620 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3621 all pairs of conflicting reductions, rather than just all tokens
3622 causing conflicts. Needed to size conflict tables.
3623 (conflicts_output): Modify call to count_rr_conflicts for new
3624 interface.
3625 (conflicts_print): Ditto.
3626 (count_total_conflicts): New function.
3627
3628 * src/reader.h (merger_list): New type.
3629 (merge_functions): New variable.
3630
3631 * src/lex.h (tok_dprec, tok_merge): New token types.
3632
3633 * src/gram.h (rule_s): Add dprec and merger fields.
3634 (glr_parser): New flag.
3635
3636 * src/conflicts.h (count_total_conflicts): New function.
3637
3638 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3639
3640 * doc/bison.texinfo (Generalized LR Parsing): New section.
3641 (GLR Parsers): New section.
3642 (Language and Grammar): Mention GLR parsing.
3643 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3644 Correct typo ("tge" -> "the").
3645
3646 * data/bison.glr: New skeleton for GLR parsing.
3647
3648 * tests/cxx-gram.at: New tests for GLR parsing.
3649
3650 * tests/testsuite.at: Include cxx-gram.at.
3651
3652 * tests/Makefile.am: Add cxx-gram.at.
3653
3654 * src/parse-gram.y:
3655
3656 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3657
3658 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
3659
3660 2002-06-27 Akim Demaille <akim@epita.fr>
3661
3662 * src/options.h, src/options.c: Remove.
3663 * src/getargs.c (short_options, long_options): New.
3664
3665 2002-06-27 Akim Demaille <akim@epita.fr>
3666
3667 * data/bison.simple, data/bison.c++: Rename as...
3668 * data/yacc.c, data/lalr1.cc: these.
3669 * doc/bison.texinfo (Environment Variables): Remove.
3670
3671 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3672
3673 * src/getargs.c (report_argmatch): Initialize strtok().
3674
3675 2002-06-20 Akim Demaille <akim@epita.fr>
3676
3677 * data/bison.simple (b4_symbol_actions): New, replaces...
3678 (b4_symbol_destructor, b4_symbol_printer): these.
3679 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3680 user token numbers.
3681
3682 2002-06-20 Akim Demaille <akim@epita.fr>
3683
3684 * data/bison.simple (yydestructor): Rename as...
3685 (yydestruct): this.
3686
3687 2002-06-20 Akim Demaille <akim@epita.fr>
3688
3689 * src/symtab.h, src/symtab.c (symbol_type_set)
3690 (symbol_destructor_set, symbol_precedence_set): The location is
3691 the last argument.
3692 Adjust all callers.
3693
3694 2002-06-20 Akim Demaille <akim@epita.fr>
3695
3696 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3697 internals.
3698 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3699 Takes a location.
3700 * src/symtab.h, src/symtab.c (symbol_class_set)
3701 (symbol_user_token_number_set): Likewise.
3702 Adjust all callers.
3703 Promote complain_at.
3704 * tests/input.at (Type Clashes): Adjust.
3705
3706 2002-06-20 Akim Demaille <akim@epita.fr>
3707
3708 * data/bison.simple (YYLEX): Fix the declaration when
3709 %pure-parser.
3710
3711 2002-06-20 Akim Demaille <akim@epita.fr>
3712
3713 * data/bison.simple (yysymprint): Don't print the token number,
3714 just its name.
3715 * tests/actions.at (Destructors): Rename as...
3716 (Printers and Destructors): this.
3717 Also exercise %printer.
3718
3719 2002-06-20 Akim Demaille <akim@epita.fr>
3720
3721 * data/bison.simple (YYDSYMPRINT): New.
3722 Use it to remove many of the #if YYDEBUG/if (yydebug).
3723
3724 2002-06-20 Akim Demaille <akim@epita.fr>
3725
3726 * src/symtab.h, src/symtab.c (symbol_t): printer and
3727 printer_location are new members.
3728 (symbol_printer_set): New.
3729 * src/parse-gram.y (PERCENT_PRINTER): New token.
3730 Handle its associated rule.
3731 * src/scan-gram.l: Adjust.
3732 (handle_destructor_at, handle_destructor_dollar): Rename as...
3733 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3734 * src/output.c (symbol_printers_output): New.
3735 (output_skeleton): Call it.
3736 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3737 since there are already many grammar files with a user `yyprint'.
3738 Replace the calls to YYPRINT to calls to yysymprint.
3739 * tests/calc.at: Adjust.
3740 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3741 taking advantage of parser very internal details (stack size!).
3742
3743 2002-06-20 Akim Demaille <akim@epita.fr>
3744
3745 * src/scan-gram.l: Complete the scanner with the missing patterns
3746 to pacify Flex.
3747 Use `quote' and `symbol_tag_get' where appropriate.
3748
3749 2002-06-19 Akim Demaille <akim@epita.fr>
3750
3751 * tests/actions.at (Destructors): Augment to test locations.
3752 * data/bison.simple (yydestructor): Pass it the current location
3753 if locations are enabled.
3754 Prototype only when __STDC__ or C++.
3755 Change the argument names to move into the yy name space: there is
3756 user code here.
3757
3758 2002-06-19 Akim Demaille <akim@epita.fr>
3759
3760 * data/bison.simple (b4_pure_if): New.
3761 Use it instead of #ifdef YYPURE.
3762
3763 2002-06-19 Akim Demaille <akim@epita.fr>
3764
3765 * data/bison.simple (b4_location_if): New.
3766 Use it instead of #ifdef YYLSP_NEEDED.
3767
3768 2002-06-19 Akim Demaille <akim@epita.fr>
3769
3770 Prepare @$ in %destructor, but currently don't bind it in the
3771 skeleton, as %location use is not cleaned up yet.
3772
3773 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3774 (handle_action_at): New.
3775 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3776 a braced_code_t and a location as additional arguments.
3777 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3778 unquote one when outputting `b4_dollar_dollar'.
3779 Adjust callers.
3780 * data/bison.simple (b4_eval): Remove.
3781 (b4_symbol_destructor): Adjust.
3782 * tests/input.at (Invalid @n): Adjust.
3783
3784 2002-06-19 Zack Weinberg <zack@codesourcery.com>
3785
3786 * doc/bison.texinfo: Document ability to have multiple
3787 prologue sections.
3788
3789 2002-06-18 Akim Demaille <akim@epita.fr>
3790
3791 * src/files.c (compute_base_names): When computing the output file
3792 names from the input file name, strip the directory part.
3793
3794 2002-06-18 Akim Demaille <akim@epita.fr>
3795
3796 * data/bison.simple.new: Comment changes.
3797 Reported by Andreas Schwab.
3798
3799 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3800
3801 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3802 there are no `label `yyoverflowlab' defined but not used' warnings
3803 when yyoverflow is defined.
3804
3805 2002-06-18 Akim Demaille <akim@epita.fr>
3806
3807 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
3808 new member.
3809 (symbol_destructor_set): Adjust.
3810 * src/output.c (symbol_destructors_output): Output the destructor
3811 locations.
3812 Output the symbol name.
3813 * data/bison.simple (b4_symbol_destructor): Adjust.
3814
3815 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
3816 and Akim Demaille <akim@epita.fr>
3817
3818 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
3819 what's left on the stack when the error recovery hits EOF.
3820 * tests/actions.at (Destructors): Complete to exercise this case.
3821
3822 2002-06-17 Akim Demaille <akim@epita.fr>
3823
3824 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
3825 arguments is really empty, not only equal to `[]'.
3826 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
3827 member.
3828 (symbol_destructor_set): New.
3829 * src/output.c (symbol_destructors_output): New.
3830 * src/reader.h (brace_code_t, current_braced_code): New.
3831 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
3832 (handle_dollar): Rename as...
3833 (handle_action_dollar): this.
3834 (handle_destructor_dollar): New.
3835 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
3836 (grammar_declaration): Use it.
3837 * data/bison.simple (yystos): Is always defined.
3838 (yydestructor): New.
3839 * tests/actions.at (Destructors): New.
3840 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
3841
3842 2002-06-17 Akim Demaille <akim@epita.fr>
3843
3844 * src/symlist.h, src/symlist.c (symbol_list_length): New.
3845 * src/scan-gram.l (handle_dollar, handle_at): Compute the
3846 rule_length only when needed.
3847 * src/output.c (actions_output, token_definitions_output): Output
3848 the full M4 block.
3849 * src/symtab.c: Don't access directly to the symbol tag, use
3850 symbol_tag_get.
3851 * src/parse-gram.y: Use symbol_list_free.
3852
3853 2002-06-17 Akim Demaille <akim@epita.fr>
3854
3855 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
3856 (symbol_list_prepend, get_type_name): Move to...
3857 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
3858 (symbol_list_prepend, symbol_list_n_type_name_get): here.
3859 Adjust all callers.
3860 (symbol_list_free): New.
3861 * src/scan-gram.l (handle_dollar): Takes a location.
3862 * tests/input.at (Invalid $n): Adjust.
3863
3864 2002-06-17 Akim Demaille <akim@epita.fr>
3865
3866 * src/reader.h, src/reader.c (symbol_list_new): Export it.
3867 (symbol_list_prepend): New.
3868 * src/parse-gram.y (%union): `list' is a new member.
3869 (symbols.1): New, replaces...
3870 (terms_to_prec.1, nterms_to_type.1): these.
3871 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
3872 Take a location as additional argument.
3873 Adjust all callers.
3874
3875 2002-06-15 Akim Demaille <akim@epita.fr>
3876
3877 * src/parse-gram.y: Move %token in the declaration section so that
3878 we don't depend upon CVS Bison.
3879
3880 2002-06-15 Akim Demaille <akim@epita.fr>
3881
3882 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
3883 * src/print.c (print_core): Use it.
3884
3885 2002-06-15 Akim Demaille <akim@epita.fr>
3886
3887 * src/conflicts.c (log_resolution): Accept the rule involved in
3888 the sr conflicts instead of the lookahead number that points to
3889 that rule.
3890 (flush_reduce): Accept the current lookahead vector as argument,
3891 instead of the index in LA.
3892 (resolve_sr_conflict): Accept the current number of lookahead
3893 bitset to consider for the STATE, instead of the index in LA.
3894 (set_conflicts): Adjust.
3895 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
3896
3897 2002-06-15 Akim Demaille <akim@epita.fr>
3898
3899 * src/state.h (state_t): Replace the `lookaheadsp' member, a
3900 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
3901 Adjust all dependencies.
3902 * src/lalr.c (initialize_lookaheads): Split into...
3903 (states_lookaheads_count, states_lookaheads_initialize): these.
3904 (lalr): Adjust.
3905
3906 2002-06-15 Akim Demaille <akim@epita.fr>
3907
3908 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
3909 out of...
3910 (grammar_rules_print): here.
3911 * src/reduce.c (reduce_output): Use it.
3912 * tests/reduce.at (Useless Rules, Reduced Automaton)
3913 (Underivable Rules): Adjust.
3914
3915 2002-06-15 Akim Demaille <akim@epita.fr>
3916
3917 Copy BYacc's nice way to report the grammar.
3918
3919 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
3920 New.
3921 Don't print the rules' location, it is confusing and useless.
3922 (rule_print): Use grammar_rhs_print.
3923 * src/print.c (print_grammar): Use grammar_rules_print.
3924
3925 2002-06-15 Akim Demaille <akim@epita.fr>
3926
3927 Complete and rationalize `useless thing' warnings.
3928
3929 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
3930 (symbol_tag_print): New.
3931 Use them everywhere in place of accessing directly the tag member.
3932 * src/gram.h, src/gram.c (rule_print): New.
3933 Use it where a rule used to be printed `by hand'.
3934 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
3935 (reduce_grammar_tables): Report the useless rules.
3936 (reduce_print): Useless things are a warning, not an error.
3937 Report it as such.
3938 * tests/reduce.at (Useless Nonterminals, Useless Rules):
3939 (Reduced Automaton, Underivable Rules): Adjust.
3940 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
3941 * tests/conflicts.at (Unresolved SR Conflicts)
3942 (Solved SR Conflicts): Adjust.
3943
3944 2002-06-15 Akim Demaille <akim@epita.fr>
3945
3946 Let symbols have a location.
3947
3948 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
3949 (getsym): Adjust.
3950 Adjust all callers.
3951 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
3952 Use location_t, not int.
3953 * src/symtab.c (symbol_check_defined): Take advantage of the
3954 location.
3955 * tests/regression.at (Invalid inputs): Adjust.
3956
3957 2002-06-15 Akim Demaille <akim@epita.fr>
3958
3959 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
3960 (input): Don't try to initialize yylloc here, do it in the
3961 scanner.
3962 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
3963 * src/gram.h (rule_t): Change line and action_line into location
3964 and action_location, of location_t type.
3965 Adjust all dependencies.
3966 * src/location.h, src/location.c (empty_location): New.
3967 * src/reader.h, src/reader.c (grammar_start_symbol_set)
3968 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
3969 (grammar_current_rule_symbol_append)
3970 (grammar_current_rule_action_append): Expect a location as argument.
3971 * src/reader.c (grammar_midrule_action): Adjust to attach an
3972 action's location as dummy symbol location.
3973 * src/symtab.h, src/symtab.c (startsymbol_location): New.
3974 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
3975 the line numbers.
3976
3977 2002-06-14 Akim Demaille <akim@epita.fr>
3978
3979 Grammar declarations may be found in the grammar section.
3980
3981 * src/parse-gram.y (rules_or_grammar_declaration): New.
3982 (declarations): Each declaration may end with a semicolon, not
3983 just...
3984 (grammar_declaration): `"%union"'.
3985 (grammar): Branch to rules_or_grammar_declaration.
3986
3987 2002-06-14 Akim Demaille <akim@epita.fr>
3988
3989 * src/main.c (main): Invoke scanner_free.
3990
3991 2002-06-14 Akim Demaille <akim@epita.fr>
3992
3993 * src/output.c (m4_invoke): Extracted from...
3994 (output_skeleton): here.
3995 Free tempfile.
3996
3997 2002-06-14 Akim Demaille <akim@epita.fr>
3998
3999 * src/parse-gram.y (directives, directive, gram)
4000 (grammar_directives, precedence_directives, precedence_directive):
4001 Rename as...
4002 (declarations, declaration, grammar, grammar_declaration)
4003 (precedence_declaration, precedence_declarator): these.
4004 (symbol_declaration): New.
4005
4006 2002-06-14 Akim Demaille <akim@epita.fr>
4007
4008 * src/files.c (action_obstack): Remove, unused.
4009 (output_obstack): Remove it, and all its dependencies, as it is no
4010 longer needed.
4011 * src/reader.c (epilogue_set): Build the epilogue in the
4012 muscle_obstack.
4013 * src/output.h, src/output.c (muscle_obstack): Move to...
4014 * src/muscle_tab.h, src/muscle_tab.h: here.
4015 (muscle_init): Initialize muscle_obstack.
4016 (muscle_free): New.
4017 * src/main.c (main): Call it.
4018
4019 2002-06-14 Akim Demaille <akim@epita.fr>
4020
4021 * src/location.h: New, extracted from...
4022 * src/reader.h: here.
4023 * src/Makefile.am (noinst_HEADERS): Merge into
4024 (bison_SOURCES): this.
4025 Add location.h.
4026 * src/parse-gram.y: Use location_t instead of Bison's.
4027 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4028 Use location_t instead of ints.
4029
4030 2002-06-14 Akim Demaille <akim@epita.fr>
4031
4032 * data/bison.simple, data/bison.c++: Be sure to restore the
4033 current #line when returning to the skeleton contents after having
4034 exposed the input file's #line.
4035
4036 2002-06-12 Akim Demaille <akim@epita.fr>
4037
4038 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4039 eager.
4040 * tests/actions.at (Exotic Dollars): New.
4041
4042 2002-06-12 Akim Demaille <akim@epita.fr>
4043
4044 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4045 ['"/] too eagerly.
4046 * tests/input.at (Torturing the Scanner): New.
4047
4048 2002-06-11 Akim Demaille <akim@epita.fr>
4049
4050 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4051 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4052 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4053 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4054 * src/reader.c (reader): Use it.
4055
4056 2002-06-11 Akim Demaille <akim@epita.fr>
4057
4058 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4059 Adjust all callers.
4060 (scanner_last_string_free): New.
4061
4062 2002-06-11 Akim Demaille <akim@epita.fr>
4063
4064 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4065 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4066 (last_string, YY_OBS_FREE): New.
4067 Use them when returning an ID.
4068
4069 2002-06-11 Akim Demaille <akim@epita.fr>
4070
4071 Have Bison grammars parsed by a Bison grammar.
4072
4073 * src/reader.c, src/reader.h (prologue_augment): New.
4074 * src/reader.c (copy_definition): Remove.
4075
4076 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4077 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4078 (grammar_current_rule_prec_set, grammar_current_rule_check)
4079 (grammar_current_rule_symbol_append)
4080 (grammar_current_rule_action_append): Export.
4081 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4082 (symbol_list_action_append): Remove.
4083 Hook the routines from reader.
4084 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4085 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4086
4087 * src/reader.c (read_declarations): Remove, unused.
4088
4089 * src/parse-gram.y: Handle the epilogue.
4090 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4091 (grammar_start_symbol_set): this.
4092 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4093 * src/reader.c (readgram): Remove, unused.
4094 (reader): Adjust to insert eoftoken and axiom where appropriate.
4095
4096 * src/reader.c (copy_dollar): Replace with...
4097 * src/scan-gram.h (handle_dollar): this.
4098 * src/parse-gram.y: Remove `%thong'.
4099
4100 * src/reader.c (copy_at): Replace with...
4101 * src/scan-gram.h (handle_at): this.
4102
4103 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4104 New.
4105
4106 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4107 time being.
4108
4109 * src/reader.h, src/reader.c (grammar_rule_end): New.
4110
4111 * src/parse.y (current_type, current_class): New.
4112 Implement `%nterm', `%token' support.
4113 Merge `%term' into `%token'.
4114 (string_as_id): New.
4115 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4116 type name.
4117
4118 * src/parse-gram.y: Be sure to handle properly the beginning of
4119 rules.
4120
4121 * src/parse-gram.y: Handle %type.
4122 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4123
4124 * src/parse-gram.y: More directives support.
4125 * src/options.c: No longer handle source directives.
4126
4127 * src/parse-gram.y: Fix %output.
4128
4129 * src/parse-gram.y: Handle %union.
4130 Use the prologue locations.
4131 * src/reader.c (parse_union_decl): Remove.
4132
4133 * src/reader.h, src/reader.c (epilogue_set): New.
4134 * src/parse-gram.y: Use it.
4135
4136 * data/bison.simple, data/bison.c++: b4_stype is now either not
4137 defined, then default to int, or to the contents of %union,
4138 without `union' itself.
4139 Adjust.
4140 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4141
4142 * src/output.c (actions_output): Don't output braces, as they are
4143 already handled by the scanner.
4144
4145 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4146 characters to themselves.
4147
4148 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4149 that the epilogue has a proper #line.
4150
4151 * src/parse-gram.y: Handle precedence/associativity.
4152
4153 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4154 a terminal.
4155 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4156 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4157 at all to define terminals that cannot be emitted.
4158
4159 * src/scan-gram.l: Escape M4 characters.
4160
4161 * src/scan-gram.l: Working properly with escapes in user
4162 strings/characters.
4163
4164 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4165 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4166 grammar.
4167 Use more modest sizes, as for the time being the parser does not
4168 release memory, and therefore the process swallows a huge amount
4169 of memory.
4170
4171 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4172 stricter %token grammar.
4173
4174 * src/symtab.h (associativity): Add `undef_assoc'.
4175 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4176 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4177
4178 * tests/regression.at (Invalid %directive): Remove, as it is now
4179 meaningless.
4180 (Invalid inputs): Adjust to the new error messages.
4181 (Token definitions): The new grammar doesn't allow too many
4182 eccentricities.
4183
4184 * src/lex.h, src/lex.c: Remove.
4185 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4186 (copy_character, copy_string2, copy_string, copy_identifier)
4187 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4188 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4189 (parse_action): Remove.
4190 * po/POTFILES.in: Adjust.
4191
4192 2002-06-11 Akim Demaille <akim@epita.fr>
4193
4194 * src/reader.c (parse_action): Don't store directly into the
4195 rule's action member: return the action as a string.
4196 Don't require `rule_length' as an argument: compute it.
4197 (grammar_current_rule_symbol_append)
4198 (grammar_current_rule_action_append): New, eved out from
4199 (readgram): here.
4200 Remove `action_flag', `rulelength', unused now.
4201
4202 2002-06-11 Akim Demaille <akim@epita.fr>
4203
4204 * src/reader.c (grammar_current_rule_prec_set).
4205 (grammar_current_rule_check): New, eved out from...
4206 (readgram): here.
4207 Remove `xaction', `first_rhs': useless.
4208 * tests/input.at (Type clashes): New.
4209 * tests/existing.at (GNU Cim Grammar): Adjust.
4210
4211 2002-06-11 Akim Demaille <akim@epita.fr>
4212
4213 * src/reader.c (grammar_midrule_action): New, Eved out from
4214 (readgram): here.
4215
4216 2002-06-11 Akim Demaille <akim@epita.fr>
4217
4218 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4219 New.
4220 (readgram): Use them as replacement of inlined code, crule and
4221 crule1.
4222
4223 2002-06-11 Akim Demaille <akim@epita.fr>
4224
4225 * src/reader.c (grammar_end, grammar_symbol_append): New.
4226 (readgram): Use them.
4227 Make the use of `p' as local as possible.
4228
4229 2002-06-10 Akim Demaille <akim@epita.fr>
4230
4231 GCJ's parser requires the tokens to be defined before the prologue.
4232
4233 * data/bison.simple: Output the token definition before the user's
4234 prologue.
4235 * tests/regression.at (Braces parsing, Duplicate string)
4236 (Mixing %token styles): Check the output from bison.
4237 (Early token definitions): New.
4238
4239 2002-06-10 Akim Demaille <akim@epita.fr>
4240
4241 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4242 assigning twice the same user number to a token, so that we can
4243 use it in...
4244 * src/lex.c (lex): here.
4245 Also use `symbol_class_set' instead of hand written code.
4246 * src/reader.c (parse_assoc_decl): Likewise.
4247
4248 2002-06-10 Akim Demaille <akim@epita.fr>
4249
4250 * src/symtab.c, src/symtab.c (symbol_class_set)
4251 (symbol_user_token_number_set): New.
4252 * src/reader.c (parse_token_decl): Use them.
4253 Use a switch instead of ifs.
4254 Use a single argument.
4255
4256 2002-06-10 Akim Demaille <akim@epita.fr>
4257
4258 Remove `%thong' support as it is undocumented, unused, duplicates
4259 `%token's job, and creates useless e-mail traffic with people who
4260 want to know what it is, why it is undocumented, unused, and
4261 duplicates `%token's job.
4262
4263 * src/reader.c (parse_thong_decl): Remove.
4264 * src/options.c (option_table): Remove "thong".
4265 * src/lex.h (tok_thong): Remove.
4266
4267 2002-06-10 Akim Demaille <akim@epita.fr>
4268
4269 * src/symtab.c, src/symtab.c (symbol_type_set)
4270 (symbol_precedence_set): New.
4271 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4272 (value_components_used): Remove, unused.
4273
4274 2002-06-09 Akim Demaille <akim@epita.fr>
4275
4276 Move symbols handling code out of the reader.
4277
4278 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4279 (axiom): Move to...
4280 * src/symtab.h, src/symtab.c: here.
4281
4282 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4283 * src/reader.c (startval): Rename as...
4284 * src/symtab.h, src/symtab.c (startsymbol): this.
4285 * src/reader.c: Adjust.
4286
4287 * src/reader.c (symbol_check_defined, symbol_make_alias)
4288 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4289 (token_translations_init)
4290 Move to...
4291 * src/symtab.c: here.
4292 * src/reader.c (packsymbols): Move to...
4293 * src/symtab.h, src/symtab.c (symbols_pack): here.
4294 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4295 argument.
4296
4297 2002-06-03 Akim Demaille <akim@epita.fr>
4298
4299 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4300 then statements.
4301
4302 2002-06-03 Akim Demaille <akim@epita.fr>
4303
4304 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4305 structs with non literals.
4306 * src/scan-skel.l: never-interactive.
4307 * src/conflicts.c (enum conflict_resolution_e): No trailing
4308 comma.
4309 * src/getargs.c (usage): Split long literal strings.
4310 Reported by Hans Aberg.
4311
4312 2002-05-28 Akim Demaille <akim@epita.fr>
4313
4314 * data/bison.c++: Use C++ ostreams.
4315 (cdebug_): New member.
4316
4317 2002-05-28 Akim Demaille <akim@epita.fr>
4318
4319 * src/output.c (output_skeleton): Be sure to allocate enough room
4320 for `/' _and_ for `\0' in full_skeleton.
4321
4322 2002-05-28 Akim Demaille <akim@epita.fr>
4323
4324 * data/bison.c++: Catch up with bison.simple:
4325 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4326 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4327 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4328 and popping traces.
4329
4330 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4331
4332 * src/output.c (output_skeleton): Put an explicit path in front of
4333 the skeleton file name, rather than relying on the -I directory,
4334 to partially alleviate effects of having a skeleton file lying around
4335 in the current directory.
4336
4337 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4338
4339 * src/conflicts.c (log_resolution): Correct typo:
4340 obstack_printf should be obstack_fgrow1.
4341
4342 2002-05-26 Akim Demaille <akim@epita.fr>
4343
4344 * src/state.h (state_t): `solved_conflicts' is a new member.
4345 * src/LR0.c (new_state): Set it to 0.
4346 * src/conflicts.h, src/conflicts.c (print_conflicts)
4347 (free_conflicts, solve_conflicts): Rename as...
4348 (conflicts_print, conflicts_free, conflicts_solve): these.
4349 Adjust callers.
4350 * src/conflicts.c (enum conflict_resolution_e)
4351 (solved_conflicts_obstack): New, used by...
4352 (log_resolution): this.
4353 Adjust to attach the conflict resolution to each state.
4354 Complete the description with the precedence/associativity
4355 information.
4356 (resolve_sr_conflict): Adjust.
4357 * src/print.c (print_state): Output its solved_conflicts.
4358 * tests/conflicts.at (Unresolved SR Conflicts)
4359 (Solved SR Conflicts): Exercise --report=all.
4360
4361 2002-05-26 Akim Demaille <akim@epita.fr>
4362
4363 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4364 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4365 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4366 (token_number_t, item_number_as_token_number)
4367 (token_number_as_item_number, muscle_insert_token_number_table):
4368 Rename as...
4369 (symbol_number_t, item_number_as_symbol_number)
4370 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4371 these, since it is more appropriate.
4372
4373 2002-05-26 Akim Demaille <akim@epita.fr>
4374
4375 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4376 `Error:' lines.
4377 * data/bison.simple (yystos) [YYDEBUG]: New.
4378 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4379 error recovery.
4380 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4381
4382 2002-05-25 Akim Demaille <akim@epita.fr>
4383
4384 * doc/bison.texinfo (Debugging): Split into...
4385 (Tracing): this new section, its former contents, and...
4386 (Understanding): this new section.
4387 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4388 by...
4389 (report_flag): this.
4390 Adjust all dependencies.
4391 (report_args, report_types, report_argmatch): New.
4392 (usage, getargs): Report/support -r, --report.
4393 * src/options.h
4394 (struct option_table_struct): Rename as..,
4395 (struct option_table_s): this.
4396 Rename the `set_flag' member to `flag' to match with getopt_long's
4397 struct.
4398 * src/options.c (option_table): Split verbose into an entry for
4399 %verbose, and another for --verbose.
4400 Support --report/-r, so remove -r from the obsolete --raw.
4401 * src/print.c: Attach full item sets and lookaheads reports to
4402 report_flag instead of trace_flag.
4403 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4404
4405 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4406 and Paul Eggert <eggert@twinsun.com>
4407
4408 * data/bison.simple (yyparse): Correct error handling to conform to
4409 POSIX and yacc. Specifically, after syntax error is discovered,
4410 do not reduce further before shifting the error token.
4411 Clean up the code a bit by removing the labels yyerrdefault,
4412 yyerrhandle, yyerrpop.
4413 * NEWS: Document the above.
4414
4415 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4416
4417 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4418 type; it isn't always big enough, since it doesn't necessarily
4419 include non-terminals.
4420 (yytranslate): Expand definition of yy_token_number_type, so that
4421 the latter can be removed.
4422 (yy_token_number_type): Remove, only one use.
4423 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4424 don't use TokenNumberType as element type.
4425
4426 * tests/regression.at: Modify expected output to agree with change
4427 to yyr1 and yytranslate.
4428
4429 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4430
4431 * src/reader.c (parse_action): Use copy_character instead of
4432 obstack_1grow.
4433
4434 2002-05-13 Akim Demaille <akim@epita.fr>
4435
4436 * tests/regression.at (Token definitions): Prototype yylex and
4437 yyerror.
4438
4439 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4440
4441 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
4442 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4443 32-bit arithmetic.
4444 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4445
4446 2002-05-07 Akim Demaille <akim@epita.fr>
4447
4448 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4449 avoid GCC warnings.
4450
4451 2002-05-07 Akim Demaille <akim@epita.fr>
4452
4453 Kill GCC warnings.
4454
4455 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4456 over the RHS of each rule.
4457 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4458 * src/state.h (state_t): Member `nitems' is unsigned short.
4459 * src/LR0.c (get_state): Adjust.
4460 * src/reader.c (packgram): Likewise.
4461 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4462 `Type'.
4463 (muscle_insert_int_table): Remove, unused.
4464 (prepare_rules): Remove `max'.
4465
4466 2002-05-06 Akim Demaille <akim@epita.fr>
4467
4468 * src/closure.c (print_firsts): Display of the symbol tags.
4469 (bitmatrix_print): Move to...
4470 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4471 here.
4472 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4473
4474 2002-05-06 Akim Demaille <akim@epita.fr>
4475
4476 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4477 hash_do_for_each.
4478
4479 2002-05-06 Akim Demaille <akim@epita.fr>
4480
4481 * src/LR0.c (new_state, get_state): Instead of using the global
4482 `kernel_size' and `kernel_base', have two new arguments:
4483 `core_size' and `core'.
4484 Adjust callers.
4485
4486 2002-05-06 Akim Demaille <akim@epita.fr>
4487
4488 * src/reader.c (packgram): No longer end `ritem' with a 0
4489 sentinel: it is not used.
4490
4491 2002-05-05 Akim Demaille <akim@epita.fr>
4492
4493 New experimental feature: display the lookaheads in the report and
4494 graph.
4495
4496 * src/print (print_core): When --trace-flag, display the rules
4497 lookaheads.
4498 * src/print_graph.c (print_core): Likewise.
4499 Swap the arguments.
4500 Adjust caller.
4501
4502 2002-05-05 Akim Demaille <akim@epita.fr>
4503
4504 * tests/torture.at (Many lookaheads): New test.
4505
4506 2002-05-05 Akim Demaille <akim@epita.fr>
4507
4508 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4509 (GENERATE_MUSCLE_INSERT_TABLE): this.
4510 (output_int_table, output_unsigned_int_table, output_short_table)
4511 (output_token_number_table, output_item_number_table): Replace with...
4512 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4513 (muscle_insert_short_table, muscle_insert_token_number_table)
4514 (muscle_insert_item_number_table): these.
4515 Adjust all callers.
4516 (prepare_tokens): Don't free `translations', since...
4517 * src/reader.h, src/reader.c (grammar_free): do it.
4518 Move to...
4519 * src/gram.h, src/gram.c (grammar_free): here.
4520 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4521 b4_translate_max.
4522
4523 2002-05-05 Akim Demaille <akim@epita.fr>
4524
4525 * src/output.c (output_unsigned_int_table): New.
4526 (prepare_rules): `i' is unsigned.
4527 `prhs', `rline', `r2' are unsigned int.
4528 Rename muscle `rhs_number_max' as `rhs_max'.
4529 Output muscles `prhs_max', `rline_max', and `r2_max'.
4530 Free rline and r1.
4531 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4532 to compute types instead of constant types.
4533 * tests/regression.at (Web2c Actions): Adjust.
4534
4535 2002-05-04 Akim Demaille <akim@epita.fr>
4536
4537 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4538 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4539 Adjust dependencies.
4540 * src/output.c (token_definitions_output): Be sure not to output a
4541 `#define 'a'' when fed with `%token 'a' "a"'.
4542 * tests/regression.at (Token definitions): New.
4543
4544 2002-05-03 Paul Eggert <eggert@twinsun.com>
4545
4546 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4547 for K&R C.
4548
4549 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4550
4551 * Makefile.am (SUBDIRS): Remove intl.
4552 (EXTRA_DIST): Add config/config.rpath.
4553
4554 2002-05-03 Akim Demaille <akim@epita.fr>
4555
4556 * data/bison.simple (m4_if): Don't output empty enums.
4557 And actually, output valid enum definitions :(.
4558
4559 2002-05-03 Akim Demaille <akim@epita.fr>
4560
4561 * configure.bat: Remove, completely obsolete.
4562 * Makefile.am (EXTRA_DIST): Adjust.
4563 Don't distribute config.rpath...
4564 * config/Makefile.am (EXTRA_DIST): Do it.
4565
4566 2002-05-03 Akim Demaille <akim@epita.fr>
4567
4568 * configure.in (GETTEXT_VERSION): New.
4569 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4570
4571 2002-05-03 Akim Demaille <akim@epita.fr>
4572
4573 * data/bison.simple (b4_token_enum): New.
4574 (b4_token_defines): Use it to output tokens both as #define and
4575 enums.
4576 Suggested by Paul Eggert.
4577 * src/output.c (token_definitions_output): Don't output spurious
4578 white spaces.
4579
4580 2002-05-03 Akim Demaille <akim@epita.fr>
4581
4582 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4583
4584 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
4585
4586 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4587 Update the stack class, give a try to deque as the default container.
4588
4589 2002-05-02 Akim Demaille <akim@epita.fr>
4590
4591 * data/bison.simple (yyparse): Do not implement @$ = @1.
4592 (YYLLOC_DEFAULT): Adjust to do it.
4593 * doc/bison.texinfo (Location Default Action): Fix.
4594
4595 2002-05-02 Akim Demaille <akim@epita.fr>
4596
4597 * src/reader.c (parse_braces): Merge into...
4598 (parse_action): this.
4599
4600 2002-05-02 Akim Demaille <akim@epita.fr>
4601
4602 * configure.in (ALL_LINGUAS): Remove.
4603 * po/LINGUAS, hr.po: New.
4604
4605 2002-05-02 Akim Demaille <akim@epita.fr>
4606
4607 Remove the so called hairy (semantic) parsers.
4608
4609 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4610 * src/gram.h, src/gram.c (semantic_parser): Remove.
4611 (rule_t): Remove the guard and guard_line members.
4612 * src/lex.h (token_t): remove tok_guard.
4613 * src/options.c (option_table): Remove %guard and %semantic_parser
4614 support.
4615 * src/output.c, src/output.h (guards_output): Remove.
4616 (prepare): Adjust.
4617 (token_definitions_output): Don't output the `T'
4618 tokens (???).
4619 (output_skeleton): Don't output the guards.
4620 * src/files.c, src/files.c (attrsfile): Remove.
4621 * src/reader.c (symbol_list): Remove the guard and guard_line
4622 members.
4623 Adjust dependencies.
4624 (parse_guard): Remove.
4625 * data/bison.hairy: Remove.
4626 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4627 BISON_HAIRY.
4628
4629 2002-05-02 Akim Demaille <akim@epita.fr>
4630
4631 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4632 (parse_guard): Rename the formal argument `stack_offset' as
4633 `rule_length', which is more readable.
4634 Adjust callers.
4635 (copy_at, copy_dollar): Instead of outputting the hard coded
4636 values of $$, $n and so forth, output invocation to b4_lhs_value,
4637 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
4638 Note: this patch partially drops `semantic-parser' support: it
4639 always does `rule_length - n', where semantic parsers ought to
4640 always use `-n'.
4641 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4642 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4643
4644 2002-05-02 Akim Demaille <akim@epita.fr>
4645
4646 * configure.in (AC_INIT): Bump to 1.49b.
4647 (AM_INIT_AUTOMAKE): Short invocation.
4648
4649 2002-05-02 Akim Demaille <akim@epita.fr>
4650
4651 Version 1.49a.
4652
4653 2002-05-01 Akim Demaille <akim@epita.fr>
4654
4655 * src/skeleton.h: Remove.
4656
4657 2002-05-01 Akim Demaille <akim@epita.fr>
4658
4659 * src/skeleton.h: Fix the #endif.
4660 Reported by Magnus Fromreide.
4661
4662 2002-04-26 Paul Eggert <eggert@twinsun.com>
4663
4664 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4665 Define if we define YYSTYPE and YYLTYPE, respectively.
4666 (YYCOPY): Fix [] quoting problem in the non-GCC case.
4667
4668 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
4669
4670 * src/scan-skel.l: Postprocess quadrigraphs.
4671
4672 * src/reader.c (copy_character): New function, used to output
4673 single characters while replacing `[' and `]' with quadrigraphs, to
4674 avoid troubles with M4 quotes.
4675 (copy_comment): Output characters with copy_character.
4676 (read_additionnal_code): Likewise.
4677 (copy_string2): Likewise.
4678 (copy_definition): Likewise.
4679
4680 * tests/calc.at: Exercise M4 quoting.
4681
4682 2002-04-25 Akim Demaille <akim@epita.fr>
4683
4684 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4685 between `!' and the command.
4686 Reported by Paul Eggert.
4687
4688 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
4689
4690 * tests/calc.at: Exercise prologue splitting.
4691
4692 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4693 `b4_post_prologue' instead of `b4_prologue'.
4694
4695 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4696 muscles.
4697 (output): Free pre_prologue_obstack and post_prologue_obstack.
4698 * src/files.h, src/files.c (attrs_obstack): Remove.
4699 (pre_prologue_obstack, post_prologue_obstack): New.
4700 * src/reader.c (copy_definition): Add a parameter to specify the
4701 obstack to fill, instead of using attrs_obstack unconditionally.
4702 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4703 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4704
4705 2002-04-23 Paul Eggert <eggert@twinsun.com>
4706
4707 * data/bison.simple: Remove unnecessary commentary and white
4708 space differences from 1_29-branch.
4709 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4710
4711 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4712 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4713 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4714 constructors or destructors.
4715
4716 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4717
4718 2002-04-23 Akim Demaille <akim@epita.fr>
4719
4720 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4721 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4722 location with columns.
4723 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4724 All reported by Paul Eggert.
4725
4726 2002-04-22 Akim Demaille <akim@epita.fr>
4727
4728 * src/reduce.c (dump_grammar): Move to...
4729 * src/gram.h, src/gram.c (grammar_dump): here.
4730 Be sure to separate long item numbers.
4731 Don't read the members of a rule's prec if its nil.
4732
4733 2002-04-22 Akim Demaille <akim@epita.fr>
4734
4735 * src/output.c (table_size, table_grow): New.
4736 (MAXTABLE): Remove, replace uses with table_size.
4737 (pack_vector): Instead of dying when the table is too big, grow it.
4738
4739 2002-04-22 Akim Demaille <akim@epita.fr>
4740
4741 * data/bison.simple (yyr1): Its type is that of a token number.
4742 * data/bison.c++ (r1_): Likewise.
4743 * tests/regression.at (Web2c Actions): Adjust.
4744
4745 2002-04-22 Akim Demaille <akim@epita.fr>
4746
4747 * src/reader.c (token_translations_init): 256 is now the default
4748 value for the error token, i.e., it will be assigned another
4749 number if the user assigned 256 to one of her tokens.
4750 (reader): Don't force 256 to error.
4751 * doc/bison.texinfo (Symbols): Adjust.
4752 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4753 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4754 etc. instead of 10, 20, 30 (which was used to `jump' over error
4755 (256) and undefined (2)).
4756
4757 2002-04-22 Akim Demaille <akim@epita.fr>
4758
4759 Propagate more token_number_t.
4760
4761 * src/gram.h (token_number_as_item_number)
4762 (item_number_as_token_number): New.
4763 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4764 Use it to create output_item_number_table and
4765 output_token_number_table.
4766 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4767 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4768 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4769 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4770
4771 2002-04-22 Akim Demaille <akim@epita.fr>
4772
4773 * src/output.h, src/output.c (get_lines_number): Remove.
4774
4775 2002-04-19 Akim Demaille <akim@epita.fr>
4776
4777 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4778 as Lex/Flex'.
4779 (Debugging): More details about enabling the debugging features.
4780 (Table of Symbols): Describe $$, $n, @$, and @n.
4781 Suggested by Tim Josling.
4782
4783 2002-04-19 Akim Demaille <akim@epita.fr>
4784
4785 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4786
4787 2002-04-10 Akim Demaille <akim@epita.fr>
4788
4789 * src/system.h: Rely on HAVE_LIMITS_H.
4790 Suggested by Paul Eggert.
4791
4792 2002-04-09 Akim Demaille <akim@epita.fr>
4793
4794 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4795 full stderr, and strip it according to the bison options, instead
4796 of composing the error message from different bits.
4797 This makes it easier to check for several error messages.
4798 Adjust all the invocations.
4799 Add an invocation exercising the error token.
4800 Add an invocation demonstrating a stupid error message.
4801 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4802 Adjust the tests.
4803 Error message are for stderr, not stdout.
4804
4805 2002-04-09 Akim Demaille <akim@epita.fr>
4806
4807 * src/gram.h, src/gram.c (error_token_number): Remove, use
4808 errtoken->number.
4809 * src/reader.c (reader): Don't specify the user token number (2)
4810 for $undefined, as it uselessly prevents using it.
4811 * src/gram.h (token_number_t): Move to...
4812 * src/symtab.h: here.
4813 (state_t.number): Is a token_number_t.
4814 * src/print.c, src/reader.c: Use undeftoken->number instead of
4815 hard coded 2.
4816 (Even though this 2 is not the same as above: the number of the
4817 undeftoken remains being 2, it is its user token number which
4818 might not be 2).
4819 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
4820 `user_token_number_max'.
4821 Output `undef_token_number'.
4822 * data/bison.simple, data/bison.c++: Use them.
4823 Be sure to map invalid yylex return values to
4824 `undef_token_number'. This saves us from gratuitous SEGV.
4825
4826 * tests/conflicts.at (Solved SR Conflicts)
4827 (Unresolved SR Conflicts): Adjust.
4828 * tests/regression.at (Web2c Actions): Adjust.
4829
4830 2002-04-08 Akim Demaille <akim@epita.fr>
4831
4832 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
4833 Adding #line.
4834 Remove the duplicate `typedefs'.
4835 (RhsNumberType): Fix the declaration and various other typos.
4836 Use __ofile__.
4837 * data/bison.simple: Use __ofile__.
4838 * src/scan-skel.l: Handle __ofile__.
4839
4840 2002-04-08 Akim Demaille <akim@epita.fr>
4841
4842 * src/gram.h (item_number_t): New, the type of item numbers in
4843 RITEM. Note that it must be able to code symbol numbers as
4844 positive number, and the negation of rule numbers as negative
4845 numbers.
4846 Adjust all dependencies (pretty many).
4847 * src/reduce.c (rule): Remove this `short *' pointer: use
4848 item_number_t.
4849 * src/system.h (MINSHORT, MAXSHORT): Remove.
4850 Include `limits.h'.
4851 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
4852 (shortcpy): Remove.
4853 (MAXTABLE): Move to...
4854 * src/output.c (MAXTABLE): here.
4855 (prepare_rules): Use output_int_table to output rhs.
4856 * data/bison.simple, data/bison.c++: Adjust.
4857 * tests/torture.at (Big triangle): Move the limit from 254 to
4858 500.
4859 * tests/regression.at (Web2c Actions): Ajust.
4860
4861 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
4862 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
4863 passes, but produces negative #line number, once fixed, GCC is
4864 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
4865 C), it passes.
4866 * src/state.h (state_h): Code input lines on ints, not shorts.
4867
4868 2002-04-08 Akim Demaille <akim@epita.fr>
4869
4870 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
4871 and then the grammar.
4872
4873 2002-04-08 Akim Demaille <akim@epita.fr>
4874
4875 * src/system.h: No longer using strndup.
4876
4877 2002-04-07 Akim Demaille <akim@epita.fr>
4878
4879 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
4880 * src/output.c (output_table_data): Return the longest number.
4881 (prepare_tokens): Output `token_number_max').
4882 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
4883 New.
4884 Use them to define yy_token_number_type/TokenNumberType.
4885 Use this type for yytranslate.
4886 * tests/torture.at (Big triangle): Push the limit from 124 to
4887 253.
4888 * tests/regression.at (Web2c Actions): Adjust.
4889
4890 2002-04-07 Akim Demaille <akim@epita.fr>
4891
4892 * tests/torture.at (Big triangle): New.
4893 (GNU AWK Grammar, GNU Cim Grammar): Move to...
4894 * tests/existing.at: here.
4895
4896 2002-04-07 Akim Demaille <akim@epita.fr>
4897
4898 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
4899 nritems.
4900 Adjust dependencies.
4901
4902 2002-04-07 Akim Demaille <akim@epita.fr>
4903
4904 * src/reader.c: Normalize increments to prefix form.
4905
4906 2002-04-07 Akim Demaille <akim@epita.fr>
4907
4908 * src/reader.c, symtab.c: Remove debugging code.
4909
4910 2002-04-07 Akim Demaille <akim@epita.fr>
4911
4912 Rename all the `bucket's as `symbol_t'.
4913
4914 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
4915 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
4916 * src/symtab.c, src/symtab.h (bucket): Rename as...
4917 (symbol_t): this.
4918 (symbol_list_new, bucket_check_defined, bucket_make_alias)
4919 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
4920 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4921 (buckets_new, buckets_free, buckets_do): Rename as...
4922 (symbol_list_new, symbol_check_defined, symbol_make_alias)
4923 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4924 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
4925 (symbols_new, symbols_free, symbols_do): these.
4926
4927 2002-04-07 Akim Demaille <akim@epita.fr>
4928
4929 Use lib/hash for the symbol table.
4930
4931 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
4932 EOF.
4933 * src/lex.c (lex): Set the `number' member of new terminals.
4934 * src/reader.c (bucket_check_defined, bucket_make_alias)
4935 (bucket_check_alias_consistence, bucket_translation): New.
4936 (reader, grammar_free, readgram, token_translations_init)
4937 (packsymbols): Adjust.
4938 (reader): Number the predefined tokens.
4939 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
4940 for predefined tokens.
4941 * src/symtab.h (bucket): Remove all the hash table related
4942 members.
4943 * src/symtab.c (symtab): Replace by...
4944 (bucket_table): this.
4945 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4946 (buckets_new, buckets_do): New.
4947
4948 2002-04-07 Akim Demaille <akim@epita.fr>
4949
4950 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
4951 (start_symbol, max_user_token_number, semantic_parser)
4952 (error_token_number): Initialize.
4953 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
4954 Initialize.
4955 (reader): Don't.
4956 (errtoken, eoftoken, undeftoken, axiom): Extern.
4957
4958 2002-04-07 Akim Demaille <akim@epita.fr>
4959
4960 * src/gram.h (rule_s): prec and precsym are now pointers
4961 to the bucket giving the priority/associativity.
4962 Member `associativity' removed: useless.
4963 * src/reduce.c, src/conflicts.c: Adjust.
4964
4965 2002-04-07 Akim Demaille <akim@epita.fr>
4966
4967 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
4968 Properly escape the symbols' TAG when outputting them.
4969
4970 2002-04-07 Akim Demaille <akim@epita.fr>
4971
4972 * src/lalr.h (LA): Is a bitsetv, not bitset*.
4973
4974 2002-04-07 Akim Demaille <akim@epita.fr>
4975
4976 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
4977 (LArule): this, which is an array to rule_t*.
4978 * src/print.c, src/conflicts.c: Adjust.
4979
4980 2002-04-07 Akim Demaille <akim@epita.fr>
4981
4982 * src/gram.h (rule_t): Rename `number' as `user_number'.
4983 `number' is a new member.
4984 Adjust dependencies.
4985 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
4986
4987 2002-04-07 Akim Demaille <akim@epita.fr>
4988
4989 As a result of the previous patch, it is no longer needed
4990 to reorder ritem itself.
4991
4992 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
4993
4994 2002-04-07 Akim Demaille <akim@epita.fr>
4995
4996 Be sure never to walk through RITEMS, but use only data related to
4997 the rules themselves. RITEMS should be banished.
4998
4999 * src/output.c (output_token_translations): Rename as...
5000 (prepare_tokens): this.
5001 In addition to `translate', prepare the muscles `tname' and
5002 `toknum', which were handled by...
5003 (output_rule_data): this.
5004 Remove, and move the remainder of its outputs into...
5005 (prepare_rules): this new routines, which also merges content from
5006 (output_gram): this.
5007 (prepare_rules): Be sure never to walk through RITEMS.
5008 (output_stos): Rename as...
5009 (prepare_stos): this.
5010 (output): Always invoke prepare_states, after all, just don't use it
5011 in the output if you don't need it.
5012
5013 2002-04-07 Akim Demaille <akim@epita.fr>
5014
5015 * src/LR0.c (new_state): Display `nstates' as the name of the
5016 newly created state.
5017 Adjust to initialize first_state and last_state if needed.
5018 Be sure to distinguish the initial from the final state.
5019 (new_states): Create the itemset of the initial state, and use
5020 new_state.
5021 * src/closure.c (closure): Now that the initial state has its
5022 items properly set, there is no need for a special case when
5023 creating `ruleset'.
5024
5025 As a result, now the rule 0, reducing to $axiom, is visible in the
5026 outputs. Adjust the test suite.
5027
5028 * tests/conflicts.at (Solved SR Conflicts)
5029 (Unresolved SR Conflicts): Adjust.
5030 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5031 * tests/conflicts.at (S/R in initial): New.
5032
5033 2002-04-07 Akim Demaille <akim@epita.fr>
5034
5035 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5036 the RHS of the rules.
5037 * src/output.c (output_gram): Likewise.
5038
5039 2002-04-07 Akim Demaille <akim@epita.fr>
5040
5041 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5042 bucket.
5043 Adjust all dependencies.
5044 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5045 `number' of the buckets too.
5046 * src/gram.h: Include `symtab.h'.
5047 (associativity): Move to...
5048 * src/symtab.h: here.
5049 No longer include `gram.h'.
5050
5051 2002-04-07 Akim Demaille <akim@epita.fr>
5052
5053 * src/gram.h, src/gram.c (rules_rhs_length): New.
5054 (ritem_longest_rhs): Use it.
5055 * src/gram.h (rule_t): `number' is a new member.
5056 * src/reader.c (packgram): Set it.
5057 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5058 the end of `rules', and count them out of `nrules'.
5059 (reduce_output, dump_grammar): Adjust.
5060 * src/print.c (print_grammar): It is no longer needed to check for
5061 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5062 * tests/reduce.at (Reduced Automaton): New test.
5063
5064 2002-04-07 Akim Demaille <akim@epita.fr>
5065
5066 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5067 lacking `+ 1' to nrules, Bison reported as useless a token if it
5068 was used solely to set the precedence of the last rule...
5069
5070 2002-04-07 Akim Demaille <akim@epita.fr>
5071
5072 * data/bison.c++, data/bison.simple: Don't output the current file
5073 name in #line, to avoid useless diffs between two identical
5074 outputs under different names.
5075
5076 2002-04-07 Akim Demaille <akim@epita.fr>
5077
5078 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5079 Normalize loops to using `< nrules + 1', not `<= nrules'.
5080
5081 2002-04-07 Akim Demaille <akim@epita.fr>
5082
5083 * TODO: Update.
5084
5085 2002-04-07 Akim Demaille <akim@epita.fr>
5086
5087 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5088 bucket.value as bucket.number.
5089
5090 2002-04-07 Akim Demaille <akim@epita.fr>
5091
5092 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5093 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5094 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5095 RHS, instead of being an index in RITEMS.
5096
5097 2002-04-04 Paul Eggert <eggert@twinsun.com>
5098
5099 * doc/bison.texinfo: Update copyright date.
5100 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5101 (Symbols): Warn about running Bison in one character set,
5102 but compiling and/or running in an incompatible one.
5103 Warn about character code 256, too.
5104
5105 2002-04-03 Paul Eggert <eggert@twinsun.com>
5106
5107 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5108 YYERROR_VERBOSE is nonzero, not whether it is defined.
5109
5110 Merge changes from bison-1_29-branch.
5111
5112 2002-03-20 Paul Eggert <eggert@twinsun.com>
5113
5114 Merge fixes from Debian bison_1.34-1.diff.
5115
5116 * configure.in (AC_PREREQ): 2.53.
5117
5118 2002-03-20 Akim Demaille <akim@epita.fr>
5119
5120 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5121
5122 2002-03-19 Paul Eggert <eggert@twinsun.com>
5123
5124 * src/bison.simple (YYCOPY): New macro.
5125 (YYSTACK_RELOCATE): Use it.
5126 Remove Type arg; no longer needed. All callers changed.
5127 (yymemcpy): Remove; no longer needed.
5128
5129 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5130 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5131
5132 2002-03-19 Akim Demaille <akim@epita.fr>
5133
5134 Test and fix the #line outputs.
5135
5136 * tests/atlocal.at (GCC): New.
5137 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5138 (Prologue synch line, ,%union synch line, Postprologue synch line)
5139 (Action synch line, Epilogue synch line): New tests.
5140 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5141 * data/bison.simple, data/bison.c++: Use it.
5142
5143 2002-03-19 Akim Demaille <akim@epita.fr>
5144
5145 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5146 (Solved SR Conflicts, %expect not enough, %expect right)
5147 (%expect too much): Move to...
5148 * tests/conflicts.at: this new file.
5149
5150 2002-03-19 Akim Demaille <akim@epita.fr>
5151
5152 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5153 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5154 that we can move to enums for instance.
5155 * src/output.c (token_definitions_output): Output a list of
5156 `token-name, token-number' instead of the #define.
5157 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5158
5159 2002-03-14 Akim Demaille <akim@epita.fr>
5160
5161 Use Gettext 0.11.1.
5162
5163 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
5164
5165 * data/bison.c++: Make the user able to add members to the generated
5166 parser by subclassing.
5167
5168 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
5169
5170 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5171 a character.
5172 Reported by Nicolas Tisserand and Nicolas Burrus.
5173
5174 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5175
5176 * src/reader.c: Warn about lacking semi-colons, do not complain.
5177
5178 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5179
5180 * data/bison.c++: Remove a debug line.
5181
5182 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5183
5184 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5185 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5186 provide a default implementation.
5187
5188 2002-03-04 Akim Demaille <akim@epita.fr>
5189
5190 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5191 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5192 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5193 * tests/semantic.at (Parsing Guards): Similarly.
5194 * src/reader.at (readgram): Complain if the last rule is not ended
5195 with a semi-colon.
5196
5197 2002-03-04 Akim Demaille <akim@epita.fr>
5198
5199 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5200 * src/closure.c: here.
5201 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5202 RTC.
5203 * src/warshall.h, src/warshall.c: Remove.
5204 * tests/sets.at (Broken Closure): Adjust.
5205
5206 2002-03-04 Akim Demaille <akim@epita.fr>
5207
5208 * src/output.c (output_skeleton): tempdir is const.
5209 bytes_read is unused.
5210
5211 2002-03-04 Akim Demaille <akim@epita.fr>
5212
5213 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5214 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5215 Update.
5216 From Michael Hayes.
5217
5218 2002-03-04 Akim Demaille <akim@epita.fr>
5219
5220 * src/closure.c (closure): `r' is unused.
5221
5222 2002-03-04 Akim Demaille <akim@epita.fr>
5223
5224 * tests/sets.at (Broken Closure): Add the ending `;'.
5225 * src/reader.at (readgram): Complain if a rule is not ended with a
5226 semi-colon.
5227
5228 2002-03-04 Akim Demaille <akim@epita.fr>
5229
5230 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5231 (count_sr_conflicts): Use bitset_count.
5232 * src/reduce.c (inaccessable_symbols): Ditto.
5233 (bits_size): Remove.
5234 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5235
5236 2002-03-04 Akim Demaille <akim@epita.fr>
5237
5238 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5239 * src/reduce.c: Remove the `bitset_zero's following the
5240 `bitset_create's, as now it is performed by the latter.
5241
5242 2002-03-04 Akim Demaille <akim@epita.fr>
5243
5244 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5245 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5246 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5247 latest sources from Michael.
5248
5249 2002-03-04 Akim Demaille <akim@epita.fr>
5250
5251 * src/output.c (output): Don't free the grammar.
5252 * src/reader.c (grammar_free): New.
5253 * src/main.c (main): Call it and don't free symtab here.
5254
5255 2002-03-04 Akim Demaille <akim@epita.fr>
5256
5257 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5258 before returning.
5259 Reported by Benoit Perrot.
5260
5261 2002-03-04 Akim Demaille <akim@epita.fr>
5262
5263 Use bitset operations when possible, not loops over bits.
5264
5265 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5266 bitset_or.
5267 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5268 * src/reduce.c (useless_nonterminals): Formatting changes.
5269 * src/warshall.c (TC): Use bitset_or.
5270
5271 2002-03-04 Akim Demaille <akim@epita.fr>
5272
5273 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5274 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5275 Ditto.
5276
5277 2002-03-04 Akim Demaille <akim@epita.fr>
5278
5279 * src/lalr.c (F): Now a bitset*.
5280 Adjust all dependencies.
5281
5282 2002-03-04 Akim Demaille <akim@epita.fr>
5283
5284 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5285 Adjust all dependencies.
5286
5287 2002-03-04 Akim Demaille <akim@epita.fr>
5288
5289 * src/L0.c, src/LR0.h (nstates): Be size_t.
5290 Adjust comparisons (signed vs unsigned).
5291 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5292 bitset*.
5293 Adjust all dependencies.
5294
5295 2002-03-04 Akim Demaille <akim@epita.fr>
5296
5297 * src/closure.c (firsts): Now, also a bitset.
5298 Adjust all dependencies.
5299 (varsetsize): Remove, now unused.
5300 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5301
5302 2002-03-04 Akim Demaille <akim@epita.fr>
5303
5304 * src/print.c: Convert to use bitset.h, not hand coded iterations
5305 over ints.
5306
5307 2002-03-04 Akim Demaille <akim@epita.fr>
5308
5309 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5310
5311 2002-03-04 Akim Demaille <akim@epita.fr>
5312
5313 * src/closure.c (ruleset): Be a bitset.
5314 (rulesetsize): Remove.
5315
5316 2002-03-04 Akim Demaille <akim@epita.fr>
5317
5318 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5319 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5320 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5321 * src/closure.c (fderives): Be an array of bitsets.
5322
5323 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
5324
5325 * data/bison.c++: Merge the two generated headers. Insert a copyright
5326 notice in each output file.
5327
5328 2002-02-28 Akim Demaille <akim@epita.fr>
5329
5330 * data/bison.c++: Copy the prologue of bison.simple to fetch
5331 useful M4 definitions, such as b4_header_guard.
5332
5333 2002-02-25 Akim Demaille <akim@epita.fr>
5334
5335 * src/getargs.c (version): Give the name of the authors, and use a
5336 translator friendly scheme for the bgr
5337 copyright notice.
5338
5339 2002-02-25 Akim Demaille <akim@epita.fr>
5340
5341 * src/output.c (header_output): Remove, now handled completely via
5342 M4.
5343
5344 2002-02-25 Akim Demaille <akim@epita.fr>
5345
5346 * m4/m4.m4: New, from CVS Autoconf.
5347 * configure.in: Invoke it.
5348 * src/output.c (output_skeleton): Use its result instead of the
5349 hard coded name.
5350
5351 2002-02-25 Akim Demaille <akim@epita.fr>
5352
5353 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5354 Fileutils 4.1.5.
5355 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5356 * src/output.c (output_skeleton): Use mkstemp to create a real
5357 temporary file.
5358 Move the filling of `skeleton' and its muscle to...
5359 (prepare): here.
5360 (output): Move the definition of the prologue muscle to...
5361 (prepare): here.
5362 * src/system.h (DEFAULT_TMPDIR): New.
5363
5364 2002-02-14 Paul Eggert <eggert@twinsun.com>
5365
5366 Remove the support for C++ namespace cleanliness; it was
5367 causing more problems than it was curing, since it didn't work
5368 properly on some nonstandard C++ compilers. This can wait
5369 for a proper C++ parser.
5370
5371 * NEWS: Document this.
5372 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5373 of C++, as it's treated like C now.
5374 * src/bison.simple (YYSTD): Remove.
5375 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5376 Treat C++ just like Standard C instead of trying to support
5377 namespace cleanliness.
5378
5379 2002-02-14 Akim Demaille <akim@epita.fr>
5380
5381 * tests/regression.at (else): Adjust to Andreas' change.
5382
5383 2002-02-14 Akim Demaille <akim@epita.fr>
5384
5385 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5386
5387 2002-02-13 Andreas Schwab <schwab@suse.de>
5388
5389 * src/output.c (output_rule_data): Don't output NULL, it might
5390 not be defined yet.
5391
5392 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
5393
5394 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5395 (Copyright notice): Update.
5396
5397 2002-02-11 Akim Demaille <akim@epita.fr>
5398
5399 * tests/regression.at (%nonassoc and eof): Don't include
5400 nonportable headers.
5401
5402 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
5403
5404 * data/bison.c++: Correct error recovery. Make the user able to
5405 initialize the starting location.
5406
5407 2002-02-07 Akim Demaille <akim@epita.fr>
5408
5409 * tests/input.at: New.
5410
5411 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5412
5413 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5414 more consistent when naming methods and variables. Put preprocessor
5415 directives around tables only needed for debugging.
5416
5417 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5418
5419 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5420 C++ parsers.
5421 (yy::b4_name::parse): Use print_.
5422
5423 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5424
5425 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5426
5427 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5428
5429 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5430 C++ parsers.
5431 (yy::b4_name::parse): Build verbose error messages, and use error_.
5432
5433 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5434
5435 * data/bison.c++: Fix m4 quoting in comments.
5436
5437 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5438
5439 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5440 not expanded by m4.
5441
5442 2002-02-05 Akim Demaille <akim@epita.fr>
5443
5444 * data/bison.c++: Adjust to the M4 back end.
5445 More is certainly needed.
5446
5447 2002-02-05 Akim Demaille <akim@epita.fr>
5448
5449 Give a try to M4 as a back end.
5450
5451 * lib/readpipe.c: New, from wdiff.
5452 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5453 BISON_HAIRY.
5454 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5455 specific values. Now it is m4 that performs the lookup.
5456 * src/parse-skel.y: Remove.
5457 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5458 * src/output.c (actions_output, guards_output)
5459 (token_definitions_output): No longer keeps track of the output
5460 line number, hence remove the second argument.
5461 (guards_output): Check against the guard member of a rule, not the
5462 action member.
5463 Adjust callers.
5464 (output_skeleton): Don't look for the skeleton location, let m4 do
5465 that.
5466 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5467 file will be used.
5468 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5469 (prepare): Given that for the time being changesyntax is not
5470 usable in M4, rename the muscles using `-' to `_'.
5471 Define `defines_flag', `output_parser_name' and `output_header_name'.
5472 * src/output.h (actions_output, guards_output)
5473 (token_definitions_output): Adjust prototypes.
5474 * src/scan-skel.l: Instead of scanning the skeletons, it now
5475 processes the output of m4: `__oline__' and `#output'.
5476 * data/bison.simple: Adjust to be used by M4(sugar).
5477 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5478 to date.
5479 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5480 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5481 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5482 shamelessly stolen from CVS Autoconf.
5483
5484 2002-02-05 Akim Demaille <akim@epita.fr>
5485
5486 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5487 * configure.in: Check for the declarations of free and malloc.
5488 * src/muscle_tab.c: Adjust.
5489
5490 2002-02-05 Akim Demaille <akim@epita.fr>
5491
5492 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5493 which have no values.
5494
5495 2002-02-05 Akim Demaille <akim@epita.fr>
5496
5497 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5498 * data/: here.
5499
5500 2002-01-29 Paul Eggert <eggert@twinsun.com>
5501
5502 * src/bison.simple (YYSIZE_T): Do not define merely because
5503 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5504 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5505
5506 2002-01-27 Akim Demaille <akim@epita.fr>
5507
5508 Fix `%nonassoc and eof'.
5509
5510 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5511 which were not properly copied! Replace
5512 memcpy (res->errs, src->errs, src->nerrs);
5513 with
5514 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5515 !!!
5516 * tests/regression.at (%nonassoc and eof): Adjust to newest
5517 Autotest: `.' is not in the PATH.
5518
5519 2002-01-27 Akim Demaille <akim@epita.fr>
5520
5521 * tests/sets.at (AT_EXTRACT_SETS): New.
5522 (Nullable): Use it.
5523 (Firsts): New.
5524
5525 2002-01-26 Akim Demaille <akim@epita.fr>
5526
5527 * tests/actions.at, tests/calc.at, tests/headers.at,
5528 * tests/torture.at: Adjust to the newest Autotest which no longer
5529 forces `.' in the PATH.
5530
5531 2002-01-25 Akim Demaille <akim@epita.fr>
5532
5533 * tests/regression.at (%nonassoc and eof): New.
5534 Suggested by Robert Anisko.
5535
5536 2002-01-24 Akim Demaille <akim@epita.fr>
5537
5538 Bison dumps core when trying to complain about broken input files.
5539 Reported by Cris van Pelt.
5540
5541 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5542 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5543 into...
5544 (Invalid inputs): Strengthen: exercise parse_percent_token.
5545
5546 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
5547
5548 * src/Makefile.am: Add bison.c++.
5549 * src/bison.c++: New skeleton.
5550
5551 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
5552
5553 * po/it.po: New.
5554
5555 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5556
5557 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5558
5559 2002-01-20 Marc Autret <marc@gnu.org>
5560
5561 * src/files.c (compute_output_file_names): Fix
5562
5563 2002-01-20 Marc Autret <marc@gnu.org>
5564
5565 * tests/output.at: New test.
5566 * src/files.c (compute_base_names): Don't map extensions when
5567 the YACC flag is set, use defaults.
5568 Reported by Evgeny Stambulchik.
5569
5570 2002-01-20 Marc Autret <marc@gnu.org>
5571
5572 * src/system.h: Need to define __attribute__ away for non-GCC
5573 compilers as well (i.e. the vendor C compiler).
5574 Suggested by Albert Chin-A-Young.
5575
5576 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5577
5578 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5579 canonical definition.
5580 * src/system.h: Use the canonical definition for PARAMS (avoids
5581 a conflict with the macro from lib/hash.h).
5582
5583 2002-01-11 Akim Demaille <akim@epita.fr>
5584
5585 * configure.in: Use AC_FUNC_STRNLEN.
5586 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
5587
5588 2002-01-09 Akim Demaille <akim@epita.fr>
5589
5590 * src/files.c, src/files.h (output_infix): New.
5591 (tab_extension): Remove.
5592 (compute_base_names): Compute the former, drop the latter.
5593 * src/output.c (prepare): Insert the muscles `output-infix', and
5594 `output-suffix'.
5595 * src/parse-skel.y (string, string.1): New.
5596 (section.header): Use it.
5597 (section.yacc): Remove.
5598 (prefix): Remove too.
5599 * src/scan-skel.l: Adjust.
5600 * src/bison.simple, src/bison.hairy: Adjust.
5601
5602 2002-01-09 Akim Demaille <akim@epita.fr>
5603
5604 * configure.in (WERROR_CFLAGS): Compute it.
5605 * src/Makefile.am (CFLAGS): Pass it.
5606 * tests/atlocal.in (CFLAGS): Idem.
5607 * src/files.c: Fix a few warnings.
5608 (get_extension_index): Remove, unused.
5609
5610 2002-01-08 Akim Demaille <akim@epita.fr>
5611
5612 * src/getargs.c (AS_FILE_NAME): New.
5613 (getargs): Use it to convert DOSish file names.
5614 * src/files.c (base_name): Rename as full_base_name to avoid
5615 clashes with `base_name ()'.
5616 (filename_split): New.
5617 (compute_base_names): N-th rewrite, using filename_split.
5618
5619 2002-01-08 Akim Demaille <akim@epita.fr>
5620
5621 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5622 New, stolen from the Fileutils 4.1.
5623 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5624 * configure.in: Check for the presence of memrchr, and of its
5625 prototype.
5626
5627 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5628
5629 * lib/hash.h (__P): Added definition for this macro.
5630 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5631 BUILT_SOURCES, to ensure they are generated first.
5632 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5633 %error-verbose to allow bootstrapping with bison 1.30x.
5634
5635 2002-01-06 Akim Demaille <akim@epita.fr>
5636
5637 * src/reader.c (parse_braces): Don't fetch the next char, the
5638 convention is to fetch on entry.
5639 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5640 'switch' without a following semicolon.
5641 * tests/regression.at (braces parsing): New.
5642
5643 2002-01-06 Akim Demaille <akim@epita.fr>
5644
5645 Bison is dead wrong in its RR conflict reports.
5646
5647 * tests/torture.at (GNU Cim Grammar): New.
5648 * src/conflicts.c (count_rr_conflicts): Fix.
5649
5650 2002-01-06 Akim Demaille <akim@epita.fr>
5651
5652 Creating package.m4 from configure.ac causes too many problems.
5653
5654 * tests/Makefile.am (package.m4): Create it by hand,
5655 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5656
5657 2002-01-06 Akim Demaille <akim@epita.fr>
5658
5659 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5660 skeleton.h.
5661
5662 2002-01-04 Paul Eggert <eggert@twinsun.com>
5663
5664 * doc/bison.texinfo (Debugging):
5665 Remove YYSTDERR; it's no longer defined or used.
5666 Also, s/cstdio.h/cstdio/.
5667
5668 2002-01-03 Akim Demaille <akim@epita.fr>
5669
5670 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5671
5672 2002-01-03 Akim Demaille <akim@epita.fr>
5673
5674 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5675 tracing code to --trace, wait for a better --trace option, with
5676 args.
5677
5678 2002-01-03 Akim Demaille <akim@epita.fr>
5679
5680 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5681 The ISO C++ standard is extremely clear about it: stderr is
5682 considered a macro, not a regular symbol (see table 94 `Header
5683 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5684 Therefore std:: does not apply to it. It still does with fprintf.
5685 Also, s/cstdio.h/cstdio/.
5686
5687 2002-01-03 Akim Demaille <akim@epita.fr>
5688
5689 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5690 for non system headers.
5691
5692 2002-01-02 Akim Demaille <akim@epita.fr>
5693
5694 Equip the skeleton chain with location tracking, runtime trace,
5695 pure parser and scanner.
5696
5697 * src/parse-skel.y: Request a pure parser, locations, and prefix
5698 renaming.
5699 (%union): Having several members with the same type does not help
5700 type mismatches, simplify.
5701 (YYPRINT, yyprint): New.
5702 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5703 (skel_error): this.
5704 Handle locations.
5705 * src/scan-skel.l: Adjust to these changes.
5706 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5707 (LOCATION_PRINT, skel_control_t): New.
5708
5709 2001-12-30 Akim Demaille <akim@epita.fr>
5710
5711 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5712 replace `gb' with BLANKS.
5713 * src/scan-skel.l: Adjust.
5714
5715 2001-12-30 Akim Demaille <akim@epita.fr>
5716
5717 * src/system.h: We don't need nor want bcopy.
5718 Throw away MS-DOS crap: we don't need getpid.
5719 * configure.in: We don't need strndup. It was even causing
5720 problems: because Flex includes the headers *before* us,
5721 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5722 not visible.
5723 * lib/xstrndup.c: New.
5724 * src/scan-skel.l: Use it.
5725 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5726 * src/parse-skel.y: Use %directives instead of #defines.
5727
5728 2001-12-30 Akim Demaille <akim@epita.fr>
5729
5730 * src/skeleton.h: New.
5731 * src/output.c (output_parser, output_master_parser): Remove, dead
5732 code.
5733 * src/output.h (get_lines_number, actions_output, guards_output)
5734 (token_definitions_output): Prototype them.
5735 * src/parse-skel.y: Add the license notice.
5736 Include output.h and skeleton.h.
5737 (process_skeleton): Returns void, and takes a single parameter.
5738 * src/scan-skel.l: Add the license notice.
5739 Include skeleton.h.
5740 Don't use %option yylineno: it seems that then Flex imagines
5741 REJECT has been used, and therefore it won't reallocate its
5742 buffers (which makes no other sense to me than a bug). It results
5743 in warnings for `unused: yy_flex_realloc'.
5744
5745 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
5746
5747 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5748 (MUSCLE_INSERT_PREFIX): ...to there.
5749 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5750 (MUSCLE_INSERT_PREFIX): Move from here...
5751
5752 * src/bison.hairy: Add a section directive. Put braces around muscle
5753 names. This parser skeleton is still broken, but Bison should not
5754 choke on a bad muscle 'syntax'.
5755 * src/bison.simple: Add a section directive. Put braces around muscle
5756 names.
5757
5758 * src/files.h (strsuffix, stringappend): Add declarations.
5759 (tab_extension): Add declaration.
5760 (short_base_name): Add declaration.
5761
5762 * src/files.c (strsuffix, stringappend): No longer static. These
5763 functions are used in the skeleton parser.
5764 (tab_extension): New.
5765 (compute_base_names): Use the computations done in this function
5766 to guess if the generated parsers should have '.tab' in their
5767 names.
5768 (short_base_name): No longer static.
5769
5770 * src/output.c (output_skeleton): New.
5771 (output): Disable call to output_master_parser, and give a try to
5772 a new skeleton handling system.
5773 (guards_output, actions_output): No longer static.
5774 (token_definitions_output, get_lines_number): No longer static.
5775
5776 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5777
5778 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
5779 parse-skel.y.
5780
5781 * src/parse-skel.y: New file.
5782 * src/scan-skel.l: New file.
5783
5784 2001-12-29 Akim Demaille <akim@epita.fr>
5785
5786 %name-prefix is broken.
5787
5788 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5789 Adjust all dependencies.
5790 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5791 %name-prefix.
5792
5793 Renaming yylval but not yylloc is not consistent. Now we do.
5794
5795 * src/bison.simple: Prefix yylloc if used.
5796 * doc/bison.texinfo (Decl Summary): Document that.
5797
5798 2001-12-29 Akim Demaille <akim@epita.fr>
5799
5800 * doc/bison.texinfo: Promote `%long-directive' over
5801 `%long_directive'.
5802 Remove all references to fixed-output-files, yacc is enough.
5803
5804 2001-12-29 Akim Demaille <akim@epita.fr>
5805
5806 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
5807 user prologue. These are defaults.
5808 * tests/actions.at (Mid-rule actions): Make sure the user can
5809 define YYDEBUG and YYERROR_VERBOSE.
5810
5811 2001-12-29 Akim Demaille <akim@epita.fr>
5812
5813 * src/output.c (header_output): Don't forget to export YYLTYPE and
5814 yylloc.
5815 * tests/headers.at (export YYLTYPE): New, make sure it does.
5816 * tests/regression.at (%union and --defines, Invalid CPP headers):
5817 Move to...
5818 * tests/headers.at: here.
5819
5820 2001-12-29 Akim Demaille <akim@epita.fr>
5821
5822 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
5823
5824 2001-12-29 Akim Demaille <akim@epita.fr>
5825
5826 * tests/actions.at (Mid-rule actions): Output on a single line
5827 instead of several.
5828
5829 2001-12-29 Akim Demaille <akim@epita.fr>
5830
5831 * doc/bison.texinfo: Formatting changes.
5832
5833 2001-12-29 Akim Demaille <akim@epita.fr>
5834
5835 Don't store the token defs in a muscle, just be ready to output it
5836 on command. Now possible via `symbols'. Fixes a memory leak.
5837
5838 * src/output.c (token_definitions_output): New.
5839 (output_parser, header_output): Use it.
5840 * src/reader.c (symbols_save): Remove.
5841
5842 2001-12-29 Akim Demaille <akim@epita.fr>
5843
5844 * src/bison.simple: Do not provide a default for YYSTYPE and
5845 YYLTYPE before the user's prologue. Otherwise it's hardly... a
5846 default.
5847
5848 2001-12-29 Akim Demaille <akim@epita.fr>
5849
5850 Mid-rule actions are simply... ignored!
5851
5852 * src/reader.c (readgram): Be sure to attach mid-rule actions to
5853 the empty-rule associated to the dummy symbol, not to the host
5854 rule.
5855 * tests/actions.at (Mid-rule actions): New.
5856
5857 2001-12-29 Akim Demaille <akim@epita.fr>
5858
5859 Memory leak.
5860
5861 * src/reader.c (reader): Free grammar.
5862
5863 2001-12-29 Akim Demaille <akim@epita.fr>
5864
5865 Memory leak.
5866
5867 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
5868 since it allocates it for each state, although only one is needed.
5869 (allocate_storage): Do it here.
5870
5871 2001-12-29 Akim Demaille <akim@epita.fr>
5872
5873 * src/options.h, src/options.c (create_long_option_table): Rename
5874 as...
5875 (long_option_table_new): this, with a clearer prototype.
5876 (percent_table): Remove, unused,
5877 * src/getargs.c (getargs): Adjust.
5878
5879 2001-12-29 Akim Demaille <akim@epita.fr>
5880
5881 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
5882 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
5883 as states.
5884
5885 2001-12-29 Akim Demaille <akim@epita.fr>
5886
5887 * src/lalr.c (build_relations): Rename `states' as `states1'.
5888 Sorry, I don't understand exactly what it is, no better name...
5889
5890 2001-12-29 Akim Demaille <akim@epita.fr>
5891
5892 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
5893 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
5894 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
5895 as rules.
5896
5897 2001-12-29 Akim Demaille <akim@epita.fr>
5898
5899 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
5900 ago.
5901
5902 2001-12-29 Akim Demaille <akim@epita.fr>
5903
5904 * src/reader.c, src/reader.h (user_toknums): Remove.
5905 Adjust all users to use symbols[i]->user_token_number.
5906
5907 2001-12-29 Akim Demaille <akim@epita.fr>
5908
5909 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
5910 Adjust all users to use symbols[i]->prec or ->assoc.
5911
5912 2001-12-29 Akim Demaille <akim@epita.fr>
5913
5914 * src/reader.c, src/reader.h (tags): Remove.
5915 Adjust all users to use symbols[i]->tag.
5916
5917 2001-12-29 Akim Demaille <akim@epita.fr>
5918
5919 * src/gram.h, src/gram.c (symbols): New, similar to state_table
5920 and rule_table.
5921 * src/reader.c (packsymbols): Fill this table.
5922 Drop sprec.
5923 * src/conflicts.c (resolve_sr_conflict): Adjust.
5924 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
5925 single table.
5926 Use symbols[i]->tag instead of tags[i].
5927
5928 2001-12-29 Akim Demaille <akim@epita.fr>
5929
5930 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
5931 In addition, put a comment in there, to replace...
5932 * tests/regression.at (%union and C comments): Remove.
5933
5934 2001-12-29 Akim Demaille <akim@epita.fr>
5935
5936 * tests/regression.at (Web2c Actions): Blindly move the actual
5937 output as expected output. The contents *seem* right to me, but I
5938 can't pretend reading perfectly parser tables... Nonetheless, all
5939 the other tests pass correctly, the table look OK, even though the
5940 presence of `$axiom' is to be noted: AFAICS it is useless (but
5941 harmless).
5942
5943 2001-12-29 Akim Demaille <akim@epita.fr>
5944
5945 * src/reader.c (readgram): Don't add the rule 0 if there were no
5946 rules read. In other words, add it _after_ having performed
5947 grammar sanity checks.
5948 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
5949
5950 2001-12-29 Akim Demaille <akim@epita.fr>
5951
5952 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
5953 visible, and some states have now a different number.
5954
5955 2001-12-29 Akim Demaille <akim@epita.fr>
5956
5957 * src/reader.c (readgram): Bind the initial rule's lineno to that
5958 of the first rule.
5959 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
5960 (Solved SR Conflicts): Adjust rule 0's line number.
5961
5962 2001-12-29 Akim Demaille <akim@epita.fr>
5963
5964 Fix the `GAWK Grammar' failure.
5965
5966 * src/LR0.c (final_state): Initialize to -1 so that we do compute
5967 the reductions of the first state which was mistakenly confused
5968 with the final state because precisely final_state was initialized
5969 to 0.
5970 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
5971 now noticed by Bison.
5972 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
5973 have a reduction on $default.
5974
5975 2001-12-29 Akim Demaille <akim@epita.fr>
5976
5977 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
5978 rule line numbers.
5979 * src/closure.c (print_closure): Likewise.
5980 * src/derives.c (print_derives): Likewise.
5981 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
5982 now.
5983
5984 2001-12-29 Akim Demaille <akim@epita.fr>
5985
5986 * src/lalr.c (lookaheads_print): New.
5987 (lalr): Call it when --trace-flag.
5988 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
5989 are dumped.
5990
5991 2001-12-29 Akim Demaille <akim@epita.fr>
5992
5993 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
5994 when walking through ritem, even via rule->rhs.
5995 * src/reduce.c (dump_grammar, useful_production, reduce_output)
5996 (useful_production, useless_nonterminals): Likewise.
5997 (reduce_grammar_tables): Likewise, plus update nritems.
5998 * src/nullable.c (set_nullable): Likewise.
5999 * src/lalr.c (build_relations): Likewise.
6000 * tests/sets.at (Nullable): Adjust.
6001 Fortunately, now, the $axiom is no longer nullable.
6002
6003 2001-12-29 Akim Demaille <akim@epita.fr>
6004
6005 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6006 the 0-sentinel.
6007 * src/gram.c (ritem_longest_rhs): Likewise.
6008 * src/reduce.c (nonterminals_reduce): Likewise.
6009 * src/print_graph.c (print_graph): Likewise.
6010 * src/output.c (output_rule_data): Likewise.
6011 * src/nullable.c (set_nullable): Likewise.
6012
6013 2001-12-29 Akim Demaille <akim@epita.fr>
6014
6015 * src/output.c: Comment changes.
6016
6017 2001-12-27 Paul Eggert <eggert@twinsun.com>
6018
6019 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6020 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6021 Sparc, as they were causing more porting problems than the
6022 (minor) performance improvement was worth.
6023
6024 Also, catch up with 1.31's YYSTD.
6025
6026 2001-12-27 Akim Demaille <akim@epita.fr>
6027
6028 * src/output.c (output_gram): Rely on nritems, not the
6029 0-sentinel. See below.
6030 Use -1 as separator, not 0.
6031 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6032 Rely on -1 as separator in yyrhs, instead of 0.
6033 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6034 twice `Now at end of input', therefore there are two lines less to
6035 expect.
6036
6037 2001-12-27 Akim Demaille <akim@epita.fr>
6038
6039 * tests/regression.at (Unresolved SR Conflicts):
6040 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6041 below.
6042
6043 2001-12-27 Akim Demaille <akim@epita.fr>
6044
6045 * src/LR0.c (new_state): Recognize the final state by the fact it
6046 is reached by eoftoken.
6047 (insert_start_shifting_state, insert_eof_shifting_state)
6048 (insert_accepting_state, augment_automaton): Remove, since now
6049 these states are automatically computed from the initial state.
6050 (generate_states): Adjust.
6051 * src/print.c: When reporting a rule number to the user, substract
6052 1, so that the axiom rule is rule 0, and the first user rule is 1.
6053 * src/reduce.c: Likewise.
6054 * src/print_graph.c (print_core): For the time being, just as for
6055 the report, depend upon --trace-flags to dump the full set of
6056 items.
6057 * src/reader.c (readgram): Once the grammar read, insert the rule
6058 0: `$axiom: START-SYMBOL $'.
6059 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6060 number of the states has changed (the final state is no longer
6061 necessarily the last), catch up.
6062
6063 2001-12-27 Akim Demaille <akim@epita.fr>
6064
6065 Try to make the use of the eoftoken valid. Given that its value
6066 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6067 is used instead of > 0 where appropriate, (ii), depend upon nritems
6068 instead of the 0-sentinel.
6069
6070 * src/gram.h, src/gram.c (nritems): New.
6071 Expected to be duplication of nitems, but for the time being...
6072 * src/reader.c (packgram): Assert nritems and nitems are equal.
6073 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6074 * src/closure.c (print_closure, print_fderives): Likewise.
6075 * src/gram.c (ritem_print): Likewise.
6076 * src/print.c (print_core, print_grammar): Likewise.
6077 * src/print_graph.c: Likewise.
6078
6079 2001-12-27 Akim Demaille <akim@epita.fr>
6080
6081 * src/main.c (main): If there are complains after grammar
6082 reductions, then output the report anyway if requested, then die.
6083 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6084 * src/reader.c (eoftoken): New.
6085 (parse_token_decl): If the token being defined has value `0', it
6086 is the eoftoken.
6087 (packsymbols): No longer hack `tags' to insert `$' by hand.
6088 Be sure to preserve the value of the eoftoken.
6089 (reader): Make sure eoftoken is defined.
6090 Initialize nsyms to 0: now eoftoken is created just like the others.
6091 * src/print.c (print_grammar): Don't special case the eof token.
6092 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6093 lie anyway, albeit pleasant.
6094 * tests/calc.at: Exercise error messages with eoftoken.
6095 Change the grammar so that empty input is invalid.
6096 Adjust expectations.
6097 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6098
6099 2001-12-27 Akim Demaille <akim@epita.fr>
6100
6101 * configure.in: Check the protos of strchr ans strspn.
6102 Replace strchr if needed.
6103 * src/system.h: Provide the protos of strchr, strspn and memchr if
6104 missing.
6105 * lib/strchr.c: New.
6106 * src/reader.c (symbols_save): Use strchr.
6107
6108 2001-12-27 Akim Demaille <akim@epita.fr>
6109
6110 * src/print.c, src/print_graph.c (escape): New.
6111 Use it to quote the TAGS outputs.
6112 * src/print_graph.c (print_state): Now errors are in red, and
6113 reductions in green.
6114 Prefer high to wide: output the state number on a line of its own.
6115
6116 2001-12-27 Akim Demaille <akim@epita.fr>
6117
6118 * src/state.h, src/state.c (reductions_new): New.
6119 * src/LR0.c (set_state_table): Let all the states have a
6120 `reductions', even if reduced to 0.
6121 (save_reductions): Adjust.
6122 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6123 * src/print.c (print_reductions, print_actions): Adjust.
6124 * src/output.c (action_row): Adjust.
6125
6126 2001-12-27 Akim Demaille <akim@epita.fr>
6127
6128 * src/state.h, src/state.c (errs_new, errs_dup): New.
6129 * src/LR0.c (set_state_table): Let all the states have an errs,
6130 even if reduced to 0.
6131 * src/print.c (print_errs, print_reductions): Adjust.
6132 * src/output.c (output_actions, action_row): Adjust.
6133 * src/conflicts.c (resolve_sr_conflict): Adjust.
6134
6135 2001-12-27 Akim Demaille <akim@epita.fr>
6136
6137 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6138
6139 2001-12-27 Akim Demaille <akim@epita.fr>
6140
6141 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6142 * src/print.c: here.
6143 (lookaheadset, shiftset): New, used as additional storage by
6144 print_reductions.
6145 (print_results): Adjust.
6146 (print_shifts, print_gotos, print_errs): New, extracted from...
6147 (print_actions): here.
6148 * src/print_graph.c (print_actions): Remove dead code.
6149
6150 2001-12-27 Akim Demaille <akim@epita.fr>
6151
6152 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6153 `$n' and `@n'.
6154
6155 2001-12-27 Akim Demaille <akim@epita.fr>
6156
6157 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6158 (build_relations): Adjust.
6159
6160 2001-12-27 Akim Demaille <akim@epita.fr>
6161
6162 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6163 duplication.
6164
6165 2001-12-27 Akim Demaille <akim@epita.fr>
6166
6167 * src/reader.c (packgram): Catch nitems overflows.
6168
6169 2001-12-27 Akim Demaille <akim@epita.fr>
6170
6171 * src/files.c, src/files.h (guard_obstack): Remove.
6172 * src/output.c (output): Adjust.
6173 * src/reader.c (parse_braces): New, factoring...
6174 (copy_action, copy_guard): these two which are renamed as...
6175 (parse_action, parse_guard): these.
6176 As a voluntary consequence, using braces around guards is now
6177 mandatory.
6178
6179 2001-12-27 Akim Demaille <akim@epita.fr>
6180
6181 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6182 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6183 members.
6184 (symbol_list_new): Adjust.
6185 (copy_action): action_line is the first line, not the last.
6186 (copy_guard): Just as for actions, store the `action' only, not
6187 the switch/case/break flesh.
6188 Don't parse the user action that might follow the guard, let...
6189 (readgram): do it, i.e., now, there can be an action after a
6190 guard.
6191 In other words the guard is just explicitly optional.
6192 (packgram): Adjust.
6193 * src/output.c (guards_output): New.
6194 (output_parser): Call it when needed.
6195 (output): Also free the guard and attrs obstacks.
6196 * src/files.c, src/files.h (obstack_save): Remove.
6197 (output_files): Remove.
6198 As a result, if one needs the former `.act' file, using an
6199 appropriate skeleton which requires actions and guards is now
6200 required.
6201 * src/main.c (main): Adjust.
6202 * tests/semantic.at: New.
6203 * tests/regression.at: Use `input.y' as input file name.
6204 Avoid 8+3 problems by requiring input.c when the test needs the
6205 parser.
6206
6207 2001-12-27 Akim Demaille <akim@epita.fr>
6208
6209 * src/reader.c (symbol_list_new): Be sure to initialize all the
6210 fields.
6211
6212 2001-12-27 Akim Demaille <akim@epita.fr>
6213
6214 All the hacks using a final pseudo state are now useless.
6215
6216 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6217 * src/lalr.c (nLA): New.
6218 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6219 instead of lookaheadsp from the pseudo state (nstate + 1).
6220
6221 2001-12-27 Akim Demaille <akim@epita.fr>
6222
6223 * src/output.c (action_row, token_actions): Use a state_t instead
6224 of a integer, and nlookaheads instead of the following state's
6225 lookaheadsp.
6226
6227 2001-12-27 Akim Demaille <akim@epita.fr>
6228
6229 * src/conflicts.c (log_resolution, flush_shift)
6230 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6231 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6232 (conflicts_print, print_reductions): Use a state_t instead of an
6233 integer when referring to a state.
6234 As much as possible, depend upon nlookaheads, instead of the
6235 `lookaheadsp' member of the following state (since lookaheads of
6236 successive states are successive, the difference between state n + 1
6237 and n served as the number of lookaheads for state n).
6238 * src/lalr.c (add_lookback_edge): Likewise.
6239 * src/print.c (print_core, print_actions, print_state)
6240 (print_results): Likewise.
6241 * src/print_graph.c (print_core, print_actions, print_state)
6242 (print_graph): Likewise.
6243 * src/conflicts.h: Adjust.
6244
6245 2001-12-27 Akim Demaille <akim@epita.fr>
6246
6247 * src/bison.hairy: Formatting/comment changes.
6248 ANSIfy.
6249 Remove `register' indications.
6250 Add plenty of `static'.
6251
6252 2001-12-27 Akim Demaille <akim@epita.fr>
6253
6254 * src/output.c (prepare): Drop the muscle `ntbase' which
6255 duplicates ntokens.
6256 * src/bison.simple: Formatting/comment changes.
6257 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6258 is an undocumented synonym.
6259
6260 2001-12-22 Akim Demaille <akim@epita.fr>
6261
6262 * src/output.c (output_table_data): Change the prototype to use
6263 `int' for array ranges: some invocations do pass an int, not a
6264 short.
6265 Reported by Wayne Green.
6266
6267 2001-12-22 Akim Demaille <akim@epita.fr>
6268
6269 Some actions of web2c.y are improperly triggered.
6270 Reported by Mike Castle.
6271
6272 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6273 * tests/regression.at (Web2c): Rename as...
6274 (Web2c Report): this.
6275 (Web2c Actions): New.
6276
6277 2001-12-22 Akim Demaille <akim@epita.fr>
6278
6279 Reductions in web2c.y are improperly reported.
6280 Reported by Mike Castle.
6281
6282 * src/conflicts.c (print_reductions): Fix.
6283 * tests/regression.at (Web2c): New.
6284
6285 2001-12-18 Akim Demaille <akim@epita.fr>
6286
6287 Some host fail on `assert (!"foo")', which expands to
6288 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6289 Reported by Nelson Beebee.
6290
6291 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6292 `#define it_succeeded 0' and `assert (it_succeeded)'.
6293
6294 2001-12-17 Marc Autret <autret_m@epita.fr>
6295
6296 * src/bison.simple: Don't hard code the skeleton line and filename.
6297 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6298 New line counter 'skeleton_line' (skeleton-line muscle).
6299
6300 2001-12-17 Paul Eggert <eggert@twinsun.com>
6301
6302 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6303 YYDEBUG must be defined to a nonzero value.
6304
6305 * src/bison.simple (yytname): Do not assume that the user defines
6306 YYDEBUG to a properly parenthesized expression.
6307
6308 2001-12-17 Akim Demaille <akim@epita.fr>
6309
6310 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6311 nlookaheads is a new member.
6312 Adjust all users.
6313 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6314 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6315 state.
6316
6317 2001-12-17 Akim Demaille <akim@epita.fr>
6318
6319 * src/files.h, src/files.c (open_files, close_files): Remove.
6320 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6321 let...
6322 * src/reader.c (reader): Do it.
6323
6324 2001-12-17 Akim Demaille <akim@epita.fr>
6325
6326 * src/conflicts.c (print_reductions): Formatting changes.
6327
6328 2001-12-17 Akim Demaille <akim@epita.fr>
6329
6330 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6331 (flush_reduce): New.
6332 (resolve_sr_conflict): Adjust.
6333
6334 2001-12-17 Akim Demaille <akim@epita.fr>
6335
6336 * src/output.c (output_obstack): Be static and rename as...
6337 (format_obstack): this, to avoid any confusion with files.c's
6338 output_obstack.
6339 * src/reader.h (muscle_obstack): Move to...
6340 * src/output.h: here, since it's defined in output.c.
6341
6342 2001-12-17 Akim Demaille <akim@epita.fr>
6343
6344 * src/output.c (action_row, save_column, default_goto)
6345 (sort_actions, matching_state, pack_vector): Better variable
6346 locality.
6347
6348 2001-12-17 Akim Demaille <akim@epita.fr>
6349
6350 * src/output.c: Various formatting changes.
6351
6352 2001-12-17 Akim Demaille <akim@epita.fr>
6353
6354 * src/files.c (output_files): Free the output_obstack.
6355 * src/main.c (main): Call print and print_graph conditionally.
6356 * src/print.c (print): Work unconditionally.
6357 * src/print_graph.c (print_graph): Work unconditionally.
6358 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6359
6360 2001-12-16 Marc Autret <autret_m@epita.fr>
6361
6362 * src/output.c (actions_output): Fix. When we use %no-lines,
6363 there is one less line per action.
6364
6365 2001-12-16 Marc Autret <autret_m@epita.fr>
6366
6367 * src/bison.simple: Remove a useless #line directive.
6368 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6369 * src/output.c (get_lines_number): New.
6370 (output_parser): Adjust, now takes care about the lines of a
6371 output muscles.
6372 Fix line numbering.
6373 (actions_output): Computes the number of lines taken by actions.
6374 (output_master_parser): Insert new skeleton which is the name of
6375 the output parser file name.
6376
6377 2001-12-15 Marc Autret <autret_m@epita.fr>
6378
6379 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6380
6381 2001-12-15 Marc Autret <autret_m@epita.fr>
6382
6383 * src/output.c (output_gram): Keep track of the hairy one.
6384
6385 2001-12-15 Akim Demaille <akim@epita.fr>
6386
6387 Make `make distcheck' work.
6388
6389 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6390 system.h which uses libgettext.h.
6391
6392 2001-12-15 Akim Demaille <akim@epita.fr>
6393
6394 * src/nullable.c (set_nullable): Useless rules must be skipped,
6395 otherwise, since we range over their symbols, we might look at a
6396 nonterminal which no longer ``exists'', i.e., it is not counted in
6397 `nvars', hence we overflow our arrays.
6398
6399 2001-12-15 Akim Demaille <akim@epita.fr>
6400
6401 The header can also be produced directly, without any obstack!
6402 Yahoo!
6403
6404 * src/files.c, src/files.h (defines_obstack): Remove.
6405 (compute_header_macro): Global.
6406 (defines_obstack_save): Remove.
6407 * src/reader.c (parse_union_decl): No longer output to
6408 defines_obstack: its content can be found in the `stype' muscle
6409 anyway.
6410 (output_token_translations): Merge into...
6411 (symbols_output): this.
6412 Rename as...
6413 (symbols_save): this.
6414 (reader): Adjust.
6415 * src/output.c (header_output): New.
6416 (output): Call it.
6417
6418 2001-12-15 Akim Demaille <akim@epita.fr>
6419
6420 * src/reader.c (parse_union_decl): Instead of handling two obstack
6421 simultaneously, use one to define the `stype' muscle, and use the
6422 value of the latter to fill defines_obstack.
6423 (copy_comment): Remove.
6424 (copy_comment2): Work for a single obstack.
6425 Rename as...
6426 (copy_comment): this.
6427
6428 2001-12-15 Akim Demaille <akim@epita.fr>
6429
6430 * src/lex.c, src/lex.h (xgetc): No longer static.
6431 * src/reader.c (parse_union_decl): Revamp.
6432
6433 2001-12-15 Akim Demaille <akim@epita.fr>
6434
6435 Still making progress in separating Bison into (i) input, (ii)
6436 process, (iii) output: now we can directly output the parser file
6437 without using table_obstack at all.
6438
6439 * src/files.c, src/files.h (table_obstack): Bye bye.
6440 (parser_file_name): New.
6441 * src/files.c (compute_output_file_names): Compute it.
6442 * src/output.c (actions_output, output_parser)
6443 (output_master_parser): To a file instead of an obstack.
6444
6445 2001-12-15 Akim Demaille <akim@epita.fr>
6446
6447 Attach actions to rules, instead of pre-outputting them to
6448 actions_obstack.
6449
6450 * src/gram.h (rule_t): action and action_line are new members.
6451 * src/reader.c (symbol_list): Likewise.
6452 (copy_action): Save the actions within the rule.
6453 (packgram): Save them in rule_table.
6454 * src/output.c (actions_output): New.
6455 (output_parser): Use it on `%%actions'.
6456 (output_rule_data): Don't free rule_table.
6457 (output): Do it.
6458 (prepare): Don't save the `action' muscle.
6459 * src/bison.simple: s/%%action/%%actions/.
6460
6461 2001-12-15 Akim Demaille <akim@epita.fr>
6462
6463 * src/reader.c (copy_action): When --yacc, don't append a `;'
6464 to the user action: let it fail if lacking.
6465 Suggested by Arnold Robbins and Tom Tromey.
6466
6467 2001-12-14 Akim Demaille <akim@epita.fr>
6468
6469 * src/lex.c (literalchar): Simply return the char you decoded, non
6470 longer mess around with obstacks and int pointers.
6471 Adjust all callers.
6472
6473 2001-12-14 Akim Demaille <akim@epita.fr>
6474
6475 * src/lex.c (literalchar): Don't escape the special characters,
6476 just decode them, and keep them as char (before, eol was output as
6477 the 2 char string `\n' etc.).
6478 * src/output.c (output_rule_data): Use quotearg to output the
6479 token strings.
6480
6481 2001-12-13 Paul Eggert <eggert@twinsun.com>
6482
6483 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6484 Do not infringe on the global user namespace when using C++.
6485 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6486 All uses of `fprintf' and `stderr' changed.
6487
6488 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6489
6490 2001-12-13 Akim Demaille <akim@epita.fr>
6491
6492 The computation of nullable is broken: it doesn't handle empty
6493 RHS's properly.
6494
6495 * tests/torture.at (GNU AWK Grammar): New.
6496 * tests/sets.at (Nullable): New.
6497 * src/nullable.c (set_nullable): Instead of blindly looping over
6498 `ritems', loop over the rules, and then over their rhs's.
6499
6500 Work around Autotest bugs.
6501
6502 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6503 frame, because Autotest understand lines starting with a `+' as
6504 traces from the shell. Then, they are not processed properly.
6505 Admittedly an Autotest bug, but we don't have time to wait for
6506 Autotest to catch up.
6507 * tests/regression.at (Broken Closure): Adjust to the new table
6508 frames.
6509 Move to...
6510 * tests/sets.at: here.
6511
6512 2001-12-13 Akim Demaille <akim@epita.fr>
6513
6514 * src/closure.c (closure): Use nrules instead of playing tricks
6515 with BITS_PER_WORD.
6516
6517 2001-12-13 Akim Demaille <akim@epita.fr>
6518
6519 * src/print.c (print_actions): Output the handling of `$' as the
6520 traces do: shifting the token EOF. Before EOF was treated as a
6521 nonterminal.
6522 * tests/regression.at: Adjust some tests.
6523 * src/print_graph.c (print_core): Complete the set of items via
6524 closure. The next-to-final and final states are still unsatisfying,
6525 but that's to be addressed elsewhere.
6526 No longer output the rule numbers, but do output the state number.
6527 A single loop for the shifts + gotos is enough, but picked a
6528 distinct color for each.
6529 (print_graph): Initialize and finalize closure.
6530
6531 2001-12-13 Akim Demaille <akim@epita.fr>
6532
6533 * src/reader.c (readgram): Remove dead code, an strip useless
6534 braces.
6535 (get_type): Remove, unused.
6536
6537 2001-12-12 Akim Demaille <akim@epita.fr>
6538
6539 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6540 on that of lib/error.c.
6541
6542 2001-12-12 Akim Demaille <akim@epita.fr>
6543
6544 Some hosts don't like `/' in includes.
6545
6546 * src/system.h: Include libgettext.h without qualifying the path.
6547 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6548 $(top_srcdir).
6549
6550 2001-12-11 Marc Autret <autret_m@epita.fr>
6551
6552 * src/output.c (output_parser): Remove useless muscle.
6553
6554 2001-12-11 Marc Autret <autret_m@epita.fr>
6555
6556 * src/bison.simple: Remove #line just before %%epilogue. It
6557 is now handled in ...
6558 * src/reader.c (read_additionnal_code): Add the output of a
6559 #line for the epilogue.
6560
6561 2001-12-10 Marc Autret <autret_m@epita.fr>
6562
6563 * src/reader.c (copy_definition): Re-use CPP-outed code which
6564 replace precedent remove.
6565 * src/bison.simple: Remove #line before %%prologue because
6566 %%input-line is wrong at this time.
6567
6568 2001-12-10 Marc Autret <autret_m@epita.fr>
6569
6570 * src/reader.c (symbols_output): Clean up.
6571 * src/output.c (output_gram, output): Clean up.
6572
6573 2001-12-10 Akim Demaille <akim@epita.fr>
6574
6575 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6576 * src/LR0.c (set_state_table): here.
6577 * src/lalr.c (lalr): Call it.
6578
6579 2001-12-10 Akim Demaille <akim@epita.fr>
6580
6581 * src/state.h (shifts): Remove the `number' member: shifts are
6582 attached to state, hence no longer need to be labelled with a
6583 state number.
6584
6585 2001-12-10 Akim Demaille <akim@epita.fr>
6586
6587 Now that states have a complete set of members, the linked list of
6588 shifts is useless: just fill directly the state's shifts member.
6589
6590 * src/state.h (shifts): Remove the `next' member.
6591 * src/LR0.c (first_state, last_state): Remove.
6592 Adjust the callers.
6593 (augment_automaton): Don't look for the shifts that must be added
6594 a shift on EOF: it is those of the state we looked for! But now,
6595 since shifts are attached, it is no longer needed to looking
6596 merely by its id: its number.
6597
6598 2001-12-10 Akim Demaille <akim@epita.fr>
6599
6600 * src/LR0.c (augment_automaton): Better variable locality.
6601 Remove an impossible branch: if there is a state corresponding to
6602 the start symbol being shifted, then there is shift for the start
6603 symbol from the initial state.
6604
6605 2001-12-10 Akim Demaille <akim@epita.fr>
6606
6607 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6608 only when appropriate: when insert_start_shifting_state' is not
6609 invoked.
6610 * tests/regression.at (Rule Line Numbers): Adjust.
6611
6612 2001-12-10 Akim Demaille <akim@epita.fr>
6613
6614 * src/LR0.c (augment_automaton): Now that all states have shifts,
6615 merge the two cases addition shifts to the initial state.
6616
6617 2001-12-10 Akim Demaille <akim@epita.fr>
6618
6619 * src/lalr.c (set_state_table): Move to...
6620 * src/LR0.c: here.
6621 * src/lalr.c (lalr): Don't call it...
6622 * src/LR0.c (generate_states): do it.
6623 * src/LR0.h (first_state): Remove, only the table is used.
6624
6625 2001-12-10 Akim Demaille <akim@epita.fr>
6626
6627 * src/LR0.h (first_shift, first_reduction): Remove.
6628 * src/lalr.c: Don't use first_shift: find shifts through the
6629 states.
6630
6631 2001-12-10 Akim Demaille <akim@epita.fr>
6632
6633 * src/LR0.c: Attach shifts to states as soon as they are
6634 computed.
6635 * src/lalr.c (set_state_table): Instead of assigning shifts to
6636 state, just assert that the mapping was properly done.
6637
6638 2001-12-10 Akim Demaille <akim@epita.fr>
6639
6640 * src/LR0.c (insert_start_shift): Rename as...
6641 (insert_start_shifting_state): this.
6642 (insert_eof_shifting_state, insert_accepting_state): New.
6643 (augment_automaton): Adjust.
6644 Better locality of the variables.
6645 When looking if the start_symbol is shifted from the initial
6646 state, using `while (... symbol != start_symbol ...)' sounds
6647 better than `while (... symbol < start_symbol ...)': If fail
6648 to see how the order between symbols could be relevant!
6649
6650 2001-12-10 Akim Demaille <akim@epita.fr>
6651
6652 * src/getargs.h: Don't declare `spec_name_prefix' and
6653 `spec_file_prefix', declared by src/files.h.
6654 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6655 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6656 * src/output.c (prepare): Adjust.
6657 * src/reader.c (symbols_output): Likewise.
6658 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6659
6660 2001-12-10 Akim Demaille <akim@epita.fr>
6661
6662 * src/muscle_tab.c (muscle_init): NULL is a better default than
6663 `"0"'.
6664
6665 2001-12-10 Akim Demaille <akim@epita.fr>
6666
6667 * src/reader.c (reader): Calling symbols_output once is enough.
6668
6669 2001-12-10 Akim Demaille <akim@epita.fr>
6670
6671 Now that states have a complete set of members, the linked list of
6672 reductions is useless: just fill directly the state's reductions
6673 member.
6674
6675 * src/state.h (struct reductions): Remove member `number' and
6676 `next'.
6677 * src/LR0.c (first_reduction, last_reduction): Remove.
6678 (save_reductions): Don't link the new reductions, store them in
6679 this_state.
6680 * src/lalr.c (set_state_table): No need to attach reductions to
6681 states, it's already done.
6682 * src/output.c (output_actions): No longer free the shifts, then
6683 the reductions, then the states: free all the states and their
6684 members.
6685
6686 2001-12-10 Akim Demaille <akim@epita.fr>
6687
6688 * src/options.c (OPTN, DRTV, BOTH): New.
6689 (option_table): Use them.
6690
6691 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6692 the job of system.h.
6693 * src/options.c: Don't include stdio.h and xalloc.h for the same
6694 reasons.
6695
6696 2001-12-10 Akim Demaille <akim@epita.fr>
6697
6698 * src/output.c (output, prepare): Make sure the values of the
6699 muscles `action' and `prologue' are 0-terminated.
6700
6701 2001-12-10 Akim Demaille <akim@epita.fr>
6702
6703 Clean up GCC warnings.
6704
6705 * src/reader.c (copy_action): `buf' is not used.
6706 (parse_skel_decl): Be static.
6707 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6708 * src/options.h (create_long_option_table): Have a real prototype.
6709 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6710 (hash_delete_at): Return const void *.
6711 Adjust casts to preserve the const.
6712
6713 2001-12-10 Akim Demaille <akim@epita.fr>
6714
6715 * configure.in: Require 2.52g.
6716 M4 is not needed, but AUTOM4TE is.
6717 * m4/m4.m4: Remove.
6718 * tests/Makefile.am: Adjust.
6719
6720 2001-12-10 Akim Demaille <akim@epita.fr>
6721
6722 One structure for states is enough, even though theoretically
6723 there are LR(0) states and LALR(1) states.
6724
6725 * src/lalr.h (state_t): Remove.
6726 (state_table): Be state_t **, not state_t *.
6727 * src/state.h (core, CORE_ALLOC): Rename as...
6728 (state_t, STATE_ALLOC): this.
6729 Add the LALR(1) members: shifts, reductions, errs.
6730 * src/LR0.c (state_table): Rename as...
6731 (state_hash): this, to avoid name clashes with the global
6732 `state_table'.
6733 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6734 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6735
6736 2001-12-10 Akim Demaille <akim@epita.fr>
6737
6738 Bison dumps core on bash.y.
6739 Reported by Pascal Bart.
6740
6741 * src/warshall.c (bitmatrix_print): New.
6742 (TC): Use it.
6743 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6744 j must be the outer loop.
6745 * tests/regression.at (Broken Closure): New.
6746
6747 2001-12-05 Akim Demaille <akim@epita.fr>
6748
6749 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6750 its argument.
6751 Reported by Peter HĆ”morskĆ½.
6752
6753 2001-12-05 Akim Demaille <akim@epita.fr>
6754
6755 * src/conflicts.c (err_table): Remove.
6756 (resolve_sr_conflict): Adjust.
6757 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
6758 Rename as...
6759 (state_t.reductions, state_t.shifts): this.
6760
6761 2001-12-05 Akim Demaille <akim@epita.fr>
6762
6763 * src/reduce.c (reduce_grammar_tables): No longer disable the
6764 removal of useless rules via CPP but via `if (0)', so that the
6765 compiler still check the code is valid.
6766 For instance, it should have noticed `rline' no longer exists: use
6767 the `line' member of rule_t.
6768 * src/gram.c (dummy, rline): Remove, unused.
6769
6770 2001-12-05 Akim Demaille <akim@epita.fr>
6771
6772 * src/output.c (pack_vector): Use assert, not berror.
6773 * src/main.c (berror): Remove, unused.
6774
6775 2001-12-05 Akim Demaille <akim@epita.fr>
6776
6777 New experimental feature: if --verbose --trace output all the
6778 items of a state, not only its kernel.
6779
6780 * src/print.c (print_core): If `trace_flag', then invoke closure
6781 before outputting the items of the state (print_core is no longer
6782 a correct name them).
6783 (print_results): Invoke new_closure/free_closure if needed.
6784
6785 2001-12-05 Akim Demaille <akim@epita.fr>
6786
6787 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
6788 * src/closure.c, src/closure.h (itemsetsize): Rename as...
6789 (nitemset): for consistency with the rest of the project.
6790
6791 2001-12-05 Akim Demaille <akim@epita.fr>
6792
6793 * src/closure.c (print_closure): Improve.
6794 (closure): Use it for printing input and output.
6795
6796 2001-12-05 Akim Demaille <akim@epita.fr>
6797
6798 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6799 indexed by nonterminals.
6800
6801 2001-12-05 Akim Demaille <akim@epita.fr>
6802
6803 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
6804 what it was!).
6805 * src/warshall.h: Remove accidental duplication of the content.
6806
6807 2001-12-05 Akim Demaille <akim@epita.fr>
6808
6809 * src/closure.c (set_fderives): De-obfuscate.
6810
6811 2001-12-05 Akim Demaille <akim@epita.fr>
6812
6813 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
6814
6815 2001-12-05 Akim Demaille <akim@epita.fr>
6816
6817 * src/closure.c (set_firsts): De-obfuscate.
6818
6819 2001-12-05 Akim Demaille <akim@epita.fr>
6820
6821 * src/output.c (action_row): De-obfuscate
6822 using the good o' techniques: arrays not pointers, variable
6823 locality, BITISSET, RESETBIT etc.
6824
6825 2001-12-05 Akim Demaille <akim@epita.fr>
6826
6827 Pessimize the code to simplify it: from now on, all the states
6828 have a valid SHIFTS, which NSHIFTS is possibly 0.
6829
6830 * src/LR0.c (shifts_new): Be global and move to..
6831 * src/state.c, src/state.h: here.
6832 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
6833 * src/print_graph: Adjust.
6834
6835 2001-12-05 Akim Demaille <akim@epita.fr>
6836
6837 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
6838 * src/conflicts.c: Use it.
6839 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
6840 incorrectly ``simplified''.
6841
6842 2001-12-05 Akim Demaille <akim@epita.fr>
6843
6844 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
6845 using the good o' techniques: arrays not pointers, variable
6846 locality, BITISSET, RESETBIT etc.
6847
6848 2001-12-05 Akim Demaille <akim@epita.fr>
6849
6850 * src/state.h (SHIFT_SYMBOL): New.
6851 * src/conflicts.c: Use it to deobfuscate.
6852
6853 2001-12-05 Akim Demaille <akim@epita.fr>
6854
6855 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
6856 (print_reductions): De-obfuscate using the good o' techniques:
6857 arrays not pointers, variable locality, BITISSET.
6858
6859 2001-12-05 Akim Demaille <akim@epita.fr>
6860
6861 * src/conflicts.c (print_reductions): Arrays, not pointers.
6862 Use BITISSET.
6863
6864 2001-12-05 Akim Demaille <akim@epita.fr>
6865
6866 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6867
6868 2001-12-05 Akim Demaille <akim@epita.fr>
6869
6870 * src/conflicts.c (print_reductions): Improve variable locality.
6871
6872 2001-12-05 Akim Demaille <akim@epita.fr>
6873
6874 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6875
6876 2001-12-05 Akim Demaille <akim@epita.fr>
6877
6878 * src/conflicts.c (print_reductions): Improve variable locality.
6879
6880 2001-12-05 Akim Demaille <akim@epita.fr>
6881
6882 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
6883 * src/lalr.c: Use them.
6884
6885 2001-12-05 Akim Demaille <akim@epita.fr>
6886
6887 * src/LR0.c (augment_automaton): Formatting changes.
6888 Better variable locality.
6889
6890 2001-12-05 Akim Demaille <akim@epita.fr>
6891
6892 * src/lalr.c (matrix_print): New.
6893 (transpose): Use it.
6894 Use arrays instead of pointers.
6895
6896 2001-12-05 Akim Demaille <akim@epita.fr>
6897
6898 * src/lalr.c (maxrhs): Move to...
6899 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
6900 * src/lalr.c (build_relations): Adjust.
6901
6902 2001-12-05 Akim Demaille <akim@epita.fr>
6903
6904 * src/lalr.c (transpose): Free the memory allocated to the
6905 argument, as it is replaced by the results by the unique caller.
6906 (build_relations): Merely invoke transpose: it handles the memory
6907 deallocation.
6908 Improve variable locality.
6909 Avoid variables used as mere abbreviations.
6910 (compute_lookaheads): Use arrays instead of pointers.
6911
6912 2001-12-05 Akim Demaille <akim@epita.fr>
6913
6914 * src/lalr.c (initialize_F): Improve variable locality.
6915 Avoid variables used as mere abbreviations.
6916
6917 2001-12-05 Akim Demaille <akim@epita.fr>
6918
6919 * src/derives.c (print_derives): Display the ruleno.
6920 * src/lalr.c (initialize_F, transpose): Better variable locality
6921 to improve readability.
6922 Avoid variables used as mere abbreviations.
6923
6924 2001-12-05 Akim Demaille <akim@epita.fr>
6925
6926 * src/lalr.c (traverse): Use arrays instead of pointers.
6927
6928 2001-12-05 Akim Demaille <akim@epita.fr>
6929
6930 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
6931 the handling of squeue.
6932 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6933
6934 2001-12-05 Akim Demaille <akim@epita.fr>
6935
6936 Because useless nonterminals are now kept alive (instead of being
6937 `destroyed'), we now sometimes examine them, and store information
6938 related to them. Hence we need to know their number, and adjust
6939 memory allocations.
6940
6941 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
6942 static.
6943 * src/LR0.c (allocate_itemsets): The memory allocated to
6944 `symbol_count' was used for two different purpose: once to count
6945 the number of occurrences of each symbol, and later reassigned to
6946 `shift_symbol', containing the symbol that can be shifted from a
6947 given state.
6948 Deobfuscate, i.e., allocate, use and free `symbol_count' here
6949 only, and...
6950 (new_itemsets): Allocate `shift_symbol' here.
6951 (allocate_itemsets): symbol_count includes useless nonterminals.
6952 Make room for them.
6953 (free_storage): Use `free', not `XFREE', for pointers that cannot
6954 be null.
6955
6956 2001-12-05 Akim Demaille <akim@epita.fr>
6957
6958 * src/nullable.c (set_nullable): Deobfuscate the handling of
6959 ritem.
6960 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6961
6962 2001-12-05 Akim Demaille <akim@epita.fr>
6963
6964 * src/gram.c, src/gram.h (ritem_print): New.
6965 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
6966 (This useless function was defined only to work around VMS linkers
6967 that can't handle compilation units with variables only).
6968 * src/reduce.c (dump_grammar): Use it to trace the construction of
6969 ritem.
6970
6971 2001-12-04 Paul Eggert <eggert@twinsun.com>
6972
6973 * src/bison.simple (union yyalloc): Change member names
6974 to be the same as the stack names.
6975 (yyparse): yyptr is now union yyalloc *, not char *.
6976 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
6977 and may generate better code on some machines.
6978 (yystpcpy): Use prototype if __STDC__ is defined, not just
6979 if __cplusplus is defined.
6980
6981 2001-11-30 Akim Demaille <akim@epita.fr>
6982
6983 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
6984 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
6985 Gettext doesn't compile cleanly, and dies with -Werror.
6986 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
6987 Include WARNING_CFLAGS here.
6988 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
6989 before being defined.
6990
6991 2001-11-27 Paul Eggert <eggert@twinsun.com>
6992
6993 * lib/quotearg.h (quotearg_n, quotearg_n_style):
6994 First arg is int, not unsigned.
6995 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
6996 (SIZE_MAX, UINT_MAX): New macros.
6997 (quotearg_n_options): Abort if N is negative.
6998 Avoid overflow check on hosts where size_t is 64 bits and int
6999 is 32 bits, as overflow is impossible there.
7000 Fix off-by-one typo that caused unnecessary reallocation.
7001
7002 2001-11-29 Paul Eggert <eggert@twinsun.com>
7003
7004 Name space cleanup in generated parser.
7005
7006 * doc/bison.texinfo (Bison Parser): Discuss system headers
7007 and their effect on the user name space.
7008
7009 * src/bison.simple:
7010 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7011 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7012 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7013
7014 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7015 on user names when possible.
7016
7017 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7018 Simplify test for whather <alloca.h> exists.
7019
7020 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7021
7022 (<stdio.h>): Include if YYDEBUG.
7023
7024 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7025 ! defined (yyoverflow) && ! defined (yymemcpy).
7026
7027 (yymemcpy, yyparse): Rename local variables as needed so that
7028 they all begin with 'yy'.
7029
7030 (yystrlen, yystpcpy): New functions.
7031
7032 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7033 All uses changed.
7034
7035 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7036 instead of relying on string.h functions. Use YYSTACK_ALLOC
7037 and YYSTACK_FREE instead of malloc and free.
7038
7039 2001-11-30 Akim Demaille <akim@epita.fr>
7040
7041 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7042 before their first uses.
7043 (YYBISON, YYPURE): Move to the top of the output.
7044
7045 2001-11-30 Akim Demaille <akim@epita.fr>
7046
7047 * tests/reduce.at (Useless Nonterminals): Fix.
7048
7049 2001-11-30 Akim Demaille <akim@epita.fr>
7050
7051 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7052 if body instead of `;' to pacify GCC's warnings.
7053
7054 2001-11-30 Akim Demaille <akim@epita.fr>
7055
7056 Instead of mapping the LHS of unused rules to -1, keep the LHS
7057 valid, but flag the rules as invalid.
7058
7059 * src/gram.h (rule_t): `useful' is a new member.
7060 * src/print.c (print_grammar): Adjust.
7061 * src/derives.c (set_derives): Likewise.
7062 * src/reader.c (packgram, reduce_output): Likewise.
7063 * src/reduce.c (reduce_grammar_tables): Likewise.
7064 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7065
7066 2001-11-30 Akim Demaille <akim@epita.fr>
7067
7068 * src/reduce.c (reduce_output): Formatting changes.
7069 * src/print.c (print_results, print_grammar): Likewise.
7070 * tests/regression.at (Rule Line Numbers)
7071 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7072
7073 2001-11-30 Akim Demaille <akim@epita.fr>
7074
7075 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7076 useless nonterminals, move them at the end of the symbol arrays.
7077 (reduce_output): Adjust.
7078 * tests/reduce.at (Useless Nonterminals): Adjust.
7079
7080 2001-11-30 Akim Demaille <akim@epita.fr>
7081
7082 * src/reduce.c: Various comment/formatting changes.
7083 (nonterminals_reduce): New, extracted from...
7084 (reduce_grammar_tables): here.
7085 (reduce_grammar): Call nonterminals_reduce.
7086
7087 2001-11-29 Paul Eggert <eggert@twinsun.com>
7088
7089 * src/bison.simple (YYSTACK_REALLOC): Remove.
7090 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7091 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7092 New macros.
7093 (union yyalloc): New type.
7094 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7095 an arbitrary restriction on hosts where size_t is wider than int.
7096
7097 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7098 a parser stack overflow. Allocate just one block of memory for all
7099 three stacks, instead of allocating three blocks; this typically is
7100 faster and reduces fragmentation.
7101
7102 Do not limit the number of items in the stack to a value that fits
7103 in 'int', as this is an arbitrary limit on hosts with 64-bit
7104 size_t and 32-bit int.
7105
7106 2001-11-29 Marc Autret <autret_m@epita.fr>
7107
7108 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7109 of defining YYERROR_VERBOSE.
7110 [AT_DATA]: $4 is now out of C declarations in the prologue.
7111
7112 2001-11-28 Marc Autret <autret_m@epita.fr>
7113
7114 * src/reader.c (parse_dquoted_param): New.
7115 (parse_skel_decl): Use it.
7116 * src/lex.h: Add its prototype.
7117 * src/lex.c (literalchar): Become not static.
7118
7119 2001-11-28 Marc Autret <autret_m@epita.fr>
7120
7121 * src/output.h: And put its extern declaration here.
7122 * src/output.c (error_verbose): Define here.
7123 (prepare): Echo name modification.
7124 * src/getargs.h: Clean its extern declaration.
7125 * src/getargs.c (error_verbose_flag): Remove.
7126 (getargs): Remove case 'e'.
7127 * src/options.c (option_table): 'error-verbose' is now seen as simple
7128 percent option.
7129 Include output.h.
7130
7131 * src/reader.c (read_declarations): Remove case tok_include.
7132 (parse_include_decl): Remove.
7133 * src/lex.h (token_t): Remove tok_include.
7134 * src/options.c (option_table): 'include' is now a simple command line
7135 option.
7136
7137 2001-11-28 Marc Autret <autret_m@epita.fr>
7138
7139 * src/bison.simple: Adjust muscle names.
7140 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7141 * src/output.c (prepare): s/_/-/ for the muscles names.
7142 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7143
7144 2001-11-28 Marc Autret <autret_m@epita.fr>
7145
7146 * src/bison.simple: Fix debug.
7147 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7148
7149 2001-11-28 Akim Demaille <akim@epita.fr>
7150
7151 * src/LR0.c (shifts_new): New.
7152 (save_shifts, insert_start_shift, augment_automaton): Use it.
7153
7154 2001-11-28 Akim Demaille <akim@epita.fr>
7155
7156 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7157 keep ruleno only.
7158
7159 2001-11-28 Akim Demaille <akim@epita.fr>
7160
7161 * src/closure.c (closure): Instead of looping over word in array
7162 then bits in words, loop over bits in array.
7163
7164 2001-11-28 Akim Demaille <akim@epita.fr>
7165
7166 * src/closure.c (closure): No longer optimize the special case
7167 where all the bits of `ruleset[r]' are set to 0, to make the code
7168 clearer.
7169
7170 2001-11-28 Akim Demaille <akim@epita.fr>
7171
7172 * src/closure.c (closure): `r' and `c' are new variables, used to
7173 de-obfuscate accesses to RULESET and CORE.
7174
7175 2001-11-28 Akim Demaille <akim@epita.fr>
7176
7177 * src/reduce.c (reduce_print): Use ngettext.
7178 (dump_grammar): Improve the trace accuracy.
7179
7180 2001-11-28 Akim Demaille <akim@epita.fr>
7181
7182 * src/reduce.c (dump_grammar): Don't translate trace messages.
7183
7184 2001-11-28 Akim Demaille <akim@epita.fr>
7185
7186 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7187 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7188 as all tags are free'ed afterwards.
7189 From Enrico Scholz.
7190
7191 2001-11-27 Paul Eggert <eggert@twinsun.com>
7192
7193 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7194 use alloca when we didn't want to, and vice versa.
7195
7196 2001-11-27 Marc Autret <autret_m@epita.fr>
7197
7198 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7199 initialization.
7200 * src/output.c (prepare): Remove its update.
7201
7202 2001-11-27 Marc Autret <autret_m@epita.fr>
7203
7204 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7205 Use %error-verbose.
7206
7207 2001-11-27 Marc Autret <autret_m@epita.fr>
7208
7209 * src/bison.simple: Remove YYERROR_VERBOSE using.
7210 Use %%error_verbose.
7211 (yyparse): Likewise.
7212 * src/output.c (prepare): Give its final value.
7213 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7214 * src/getargs.h: Add its extern declaration.
7215 * src/getargs.c (error_verbose_flag): New int.
7216 (getargs): Update to catch new case.
7217 * src/options.c (option_table): 'error-verbose' is a new option.
7218 (shortopts): Update.
7219
7220 2001-11-27 Akim Demaille <akim@epita.fr>
7221
7222 * src/system.h: Use intl/libgettext.h.
7223 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7224
7225 2001-11-27 Akim Demaille <akim@epita.fr>
7226
7227 * tests/torture.at (Exploding the Stack Size with Malloc):
7228 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7229
7230 2001-11-27 Akim Demaille <akim@epita.fr>
7231
7232 * src/files.c: Include error.h.
7233 Reported by Hans Aberg.
7234
7235 2001-11-26 Marc Autret <autret_m@epita.fr>
7236
7237 * src/reader.c (parse_include_decl): New, not yet implemented.
7238 (read_declarations): Add case tok_include.
7239 * src/getargs.h (include): Add its extern definition.
7240 * src/getargs.c (include): New const char *.
7241 (getargs): Add case '-I'.
7242 * src/options.c (option_table): Add include as command line and
7243 percent option.
7244 * src/lex.h (token_t): Add tok_include.
7245
7246 2001-11-26 Akim Demaille <akim@epita.fr>
7247
7248 * src/reader.c (readgram): Make sure rules for mid-rule actions
7249 have a lineno equal to that of their host rule.
7250 Reported by Hans Aberg.
7251 * tests/regression.at (Rule Line Numbers): New.
7252
7253 2001-11-26 Akim Demaille <akim@epita.fr>
7254
7255 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7256 size_ts.
7257
7258 2001-11-26 Akim Demaille <akim@epita.fr>
7259
7260 * src/complain.c, src/complain.h (error): Remove, provided by
7261 lib/error.[ch].
7262
7263 2001-11-26 Akim Demaille <akim@epita.fr>
7264
7265 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7266 issue an error message.
7267 * tests/regression.at (Invalid %directive): New.
7268 Reported by Hans Aberg.
7269
7270 2001-11-26 Akim Demaille <akim@epita.fr>
7271
7272 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7273 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7274
7275 2001-11-26 Akim Demaille <akim@epita.fr>
7276
7277 * src/conflicts.c (conflicts_print): Don't complain at all when
7278 there are no reduce/reduce conflicts, and as many shift/reduce
7279 conflicts as expected.
7280 * tests/regression.at (%expect right): Adjust.
7281
7282 2001-11-23 Akim Demaille <akim@epita.fr>
7283
7284 * lib/alloca.c: Update, from fileutils.
7285
7286 2001-11-23 Akim Demaille <akim@epita.fr>
7287
7288 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7289
7290 2001-11-23 Akim Demaille <akim@epita.fr>
7291
7292 * src/system.h: Include alloca.h.
7293 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7294
7295 2001-11-23 Akim Demaille <akim@epita.fr>
7296
7297 * src/print_graph.c (print_actions): Remove `rule', unused.
7298 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7299 pacify GCC's signed < unsigned warnings.
7300 * src/closure.c (itemsetsize): Likewise.
7301 * src/reader.c (symbol_list_new): Static.
7302
7303 2001-11-23 Akim Demaille <akim@epita.fr>
7304
7305 Attaching lineno to buckets is stupid, since only one copy of each
7306 symbol is kept, only the line of the first occurrence is kept too.
7307
7308 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7309 * src/reader.c (rline_allocated): Remove, unused.
7310 (symbol_list): Have a `line' member.
7311 (symbol_list_new): New.
7312 (readgram): Use it.
7313 * src/print.c (print_grammar): Output the rule line numbers.
7314 * tests/regression.at (Solved SR Conflicts)
7315 (Unresolved SR Conflicts): Adjust.
7316 Reported by Hans Aberg.
7317
7318 2001-11-22 Marc Autret <autret_m@epita.fr>
7319
7320 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7321
7322 2001-11-22 Marc Autret <autret_m@epita.fr>
7323
7324 * src/muscle_tab.c (muscle_init): Remove initialization of
7325 skeleton muscle.
7326 * src/output.c (output_master_parser): Do it here.
7327
7328 2001-11-20 Akim Demaille <akim@epita.fr>
7329
7330 * po/sv.po: New.
7331 * configure.in (ALL_LINGUAS): Adjust.
7332 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7333 longer contains strings to translate.
7334
7335 2001-11-19 Akim Demaille <akim@epita.fr>
7336
7337 * src/conflicts.c (conflicts_print): Add a missing \n.
7338
7339 2001-11-19 Akim Demaille <akim@epita.fr>
7340
7341 * src/nullable.c (nullable_print): New.
7342 (set_nullable): Call it when tracing.
7343 Better locality of variables.
7344
7345 2001-11-19 Akim Demaille <akim@epita.fr>
7346
7347 * src/print.c (print_actions): Better locality of variables.
7348
7349 2001-11-19 Akim Demaille <akim@epita.fr>
7350
7351 * src/derives.c (print_derives): Fix and enrich.
7352 * src/closure.c (print_fderives): Likewise.
7353
7354 2001-11-19 Akim Demaille <akim@epita.fr>
7355
7356 * src/closure.c (itemsetend): Remove, replaced with...
7357 (itemsetsize): new.
7358
7359 2001-11-19 Akim Demaille <akim@epita.fr>
7360
7361 * src/LR0.c (kernel_end): Remove, replaced with...
7362 (kernel_size): new.
7363
7364 2001-11-19 Akim Demaille <akim@epita.fr>
7365
7366 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7367 to clarify.
7368
7369 2001-11-19 Akim Demaille <akim@epita.fr>
7370
7371 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7372
7373 2001-11-19 Akim Demaille <akim@epita.fr>
7374
7375 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7376 trace messages.
7377 * src/LR0.c: Likewise.
7378 (allocate_itemsets): Use arrays instead of pointers to clarify.
7379
7380 2001-11-19 Akim Demaille <akim@epita.fr>
7381
7382 * src/getargs.c (statistics_flag): Replace with...
7383 (trace_flag): New.
7384 (longopts): Accept --trace instead of --statistics.
7385 * src/getargs.h, src/options.c: Adjust.
7386 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7387 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7388
7389 2001-11-19 Akim Demaille <akim@epita.fr>
7390
7391 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7392 pointers to clarify the code.
7393 (save_reductions, save_shifts): Factor common parts of alternatives.
7394
7395 2001-11-19 Akim Demaille <akim@epita.fr>
7396
7397 * src/LR0.c (new_state, get_state): Complete TRACE code.
7398 * src/closure.c: Include `reader.h' to get `tags', needed by the
7399 trace code.
7400 Rename the conditional DEBUG as TRACE.
7401 Output consistently TRACEs to stderr, not stdout.
7402 * src/derives.c: Likewise.
7403 * src/reduce.c: (inaccessable_symbols): Using if is better style
7404 than goto.
7405 Use `#if TRACE' instead of `#if 0' for tracing code.
7406
7407 2001-11-19 Akim Demaille <akim@epita.fr>
7408
7409 * src/system.h (LIST_FREE, shortcpy): New.
7410 * src/LR0.c: Use them.
7411 * src/output.c (free_itemsets, free_reductions, free_shifts):
7412 Remove, replaced by LIST_FREE.
7413
7414 2001-11-19 Akim Demaille <akim@epita.fr>
7415
7416 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7417 (REDUCTIONS_ALLOC): New.
7418 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7419 allocation.
7420
7421 2001-11-19 Akim Demaille <akim@epita.fr>
7422
7423 * src/LR0.c (new_state): Complete trace code.
7424 * src/nullable.c (set_nullable): Don't translate traces.
7425
7426 2001-11-19 Akim Demaille <akim@epita.fr>
7427
7428 * src/print_graph.c (print_core): Better locality of variables.
7429 * src/print.c (print_core): Likewise.
7430
7431 2001-11-19 Akim Demaille <akim@epita.fr>
7432
7433 * src/vcg.c: You do the output, so you are responsible of the
7434 handling of VCG syntax, in particular: use quotearg.
7435 * src/print_graph.c: Don't.
7436 (print_actions): Don't output the actions as part of the nodes,
7437 since that's the job of the edges.
7438 (print_state): Don't output by hand: fill the node description,
7439 and ask for its output.
7440
7441 2001-11-19 Akim Demaille <akim@epita.fr>
7442
7443 * src/bison.simple (yyparse): When verbosely reporting an error,
7444 no longer put additional quotes around token names.
7445 * tests/calc.at: Adjust.
7446
7447 2001-11-19 Akim Demaille <akim@epita.fr>
7448
7449 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7450 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7451 * src/output.c: Adjust.
7452
7453 2001-11-19 Akim Demaille <akim@epita.fr>
7454
7455 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7456 (rule_t): this.
7457 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7458
7459 2001-11-19 Akim Demaille <akim@epita.fr>
7460
7461 * src/gram.h (rule_t): New.
7462 (rule_table): New.
7463 (rrhs, rlhs): Remove, part of state_t.
7464 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7465 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7466 * src/reader.c, src/reduce.c: Adjust.
7467
7468 2001-11-19 Akim Demaille <akim@epita.fr>
7469
7470 * src/reader.c (symbols_output): New, extracted from...
7471 (packsymbols): Here.
7472 (reader): Call it.
7473
7474 2001-11-19 Akim Demaille <akim@epita.fr>
7475
7476 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7477 (maxrhs): this new function.
7478
7479 2001-11-19 Akim Demaille <akim@epita.fr>
7480
7481 * src/lalr.c (F): New macro to access the variable F.
7482 Adjust.
7483
7484 2001-11-19 Akim Demaille <akim@epita.fr>
7485
7486 * src/lalr.h (LA): New macro to access the variable LA.
7487 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7488 * src/lalr.c: Adjust.
7489
7490 2001-11-19 Akim Demaille <akim@epita.fr>
7491
7492 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7493 (set_state_table): handle the `lookaheads' members.
7494
7495 2001-11-19 Akim Demaille <akim@epita.fr>
7496
7497 * src/lalr.h (lookaheads): Removed array, whose contents is now
7498 a member of...
7499 (state_t): this structure.
7500 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7501 Adjust.
7502
7503 2001-11-19 Akim Demaille <akim@epita.fr>
7504
7505 * src/lalr.h (consistent): Removed array, whose contents is now
7506 a member of...
7507 (state_t): this structure.
7508 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7509 Adjust.
7510
7511 2001-11-19 Akim Demaille <akim@epita.fr>
7512
7513 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7514 contents are now members of...
7515 (state_t): this structure.
7516 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7517 Adjust.
7518
7519 2001-11-19 Akim Demaille <akim@epita.fr>
7520
7521 * src/lalr.h (state_t): New.
7522 (state_table): Be a state_t * instead of a core **.
7523 (accessing_symbol): Remove, part of state_t.
7524 * src/lalr.c: Adjust.
7525 (set_accessing_symbol): Merge into...
7526 (set_state_table): this.
7527 * src/print_graph.c, src/conflicts.c: Adjust.
7528
7529 2001-11-14 Akim Demaille <akim@epita.fr>
7530
7531 * tests/calc.at, tests/output.at, tests/regression.at,
7532 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7533 now the tests are run in private dirs, therefore AC_CLEANUP and
7534 family can be simplified to 0-ary.
7535 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7536 use abs. path to find config.h.
7537 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7538 stderr, there can be way too much random noise.
7539 Instead pass -Werror to GCC and rely on the exit status.
7540 Reported by Wolfram Wagner.
7541
7542 2001-11-14 Akim Demaille <akim@epita.fr>
7543
7544 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7545 defined only if yyoverflow is defined, to avoid `warning: unused
7546 variable `yyvs1''.
7547 Reported by The Test Suite.
7548
7549 2001-11-14 Akim Demaille <akim@epita.fr>
7550
7551 * src/print.c: Include reduce.h.
7552 Reported by Hans Aberg.
7553
7554 2001-11-14 Akim Demaille <akim@epita.fr>
7555
7556 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7557 Revert a previous patch: these are really const.
7558 * src/conflicts.c (conflict_report): Additional useless pair of
7559 braces to pacify GCC's warnings for `if () if () {} else {}'.
7560 * src/lex.c (parse_percent_token): Replace equal_offset with
7561 arg_offset.
7562 arg is const.
7563 Be sure to strdup `arg' when used, since there is no reason for
7564 token_buffer not to change.
7565
7566 2001-11-14 Akim Demaille <akim@epita.fr>
7567
7568 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7569 definition.
7570 * src/main.c (main): Use them.
7571 Suggested by Hans Aberg.
7572
7573 2001-11-12 Akim Demaille <akim@epita.fr>
7574
7575 * src/system.h (ngettext): Now that we use ngettext, be sure to
7576 provide a default definition when NLS are not used.
7577
7578 2001-11-12 Akim Demaille <akim@epita.fr>
7579
7580 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7581 Use @kbd to denote user input.
7582 (Language and Grammar): ANSIfy the example.
7583 Adjust its layout for info/notinfo.
7584 (Location Tracking Calc): Output error messages to stderr.
7585 Output locations in a more GNUtically correct way.
7586 Fix a couple of Englishos.
7587 Adjust @group/@end group pairs.
7588
7589 2001-11-12 Akim Demaille <akim@epita.fr>
7590
7591 %expect was not functioning at all.
7592
7593 * src/conflicts.c (expected_conflicts): Set to -1.
7594 (conflict_report): Use ngettext.
7595 (conflicts_print): Check %expect and make its violation an error.
7596 * doc/bison.texinfo (Expect Decl): Adjust.
7597 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7598 * tests/regression.at (%expect not enough, %expect right)
7599 (%expect too much): New.
7600
7601 2001-11-12 Akim Demaille <akim@epita.fr>
7602
7603 * tests/regression.at (Conflicts): Rename as...
7604 (Unresolved SR Conflicts): this.
7605 (Solved SR Conflicts): New.
7606
7607 2001-11-12 Akim Demaille <akim@epita.fr>
7608
7609 * src/reduce.c (print_results): Rename as...
7610 (reduce_output): This.
7611 Output to OUT, passed as argument, instead of output_obstack.
7612 (dump_grammar): Likewise.
7613 (reduce_free): New.
7614 Also free V1.
7615 (reduce_grammar): No longer call reduce_output, since...
7616 * src/print.c (print_results): do it.
7617 * src/main.c (main): Call reduce_free;
7618
7619 2001-11-12 Akim Demaille <akim@epita.fr>
7620
7621 * src/conflicts.c (print_reductions): Accept OUT as argument.
7622 Output to it, not to output_obstack.
7623 * src/print.c (print_actions): Adjust.
7624
7625 2001-11-12 Akim Demaille <akim@epita.fr>
7626
7627 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
7628 the result instead of using...
7629 (src_total, rrc_total, src_count, rrc_count): Remove.
7630 (any_conflicts): Remove.
7631 (print_conflicts): Split into...
7632 (conflicts_print, conflicts_output): New.
7633 * src/conflicts.h: Adjust.
7634 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
7635 * src/print.c (print_grammar): Issue `\n' between two rules.
7636 * tests/regression.at (Conflicts): New.
7637 Reported by Tom Lane.
7638
7639 2001-11-12 Akim Demaille <akim@epita.fr>
7640
7641 * tests/regression.at (Invalid input): Remove, duplicate with
7642 ``Invalid input: 1''.
7643
7644 2001-11-12 Akim Demaille <akim@epita.fr>
7645
7646 * tests/torture.at (AT_DATA_STACK_TORTURE)
7647 (Exploding the Stack Size with Alloca)
7648 (Exploding the Stack Size with Malloc): New.
7649
7650 2001-11-12 Akim Demaille <akim@epita.fr>
7651
7652 * src/bison.simple (YYSTACK_REALLOC): New.
7653 (yyparse) [!yyoverflow]: Use it and free the old stack.
7654 Reported by Per Allansson.
7655
7656 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
7657
7658 * src/bison.simple: Define type yystype instead of YYSTYPE, and
7659 define CPP macro, which substitute YYSTYPE by yystype.
7660 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
7661 with yyltype/YYLTYPE. This allows inclusion of the generated
7662 header within the parser if the compiler, such as GGC, accepts
7663 multiple equivalent #defines.
7664 From Akim.
7665
7666 2001-11-05 Akim Demaille <akim@epita.fr>
7667
7668 * src/reader.c (symbols_output): New, extracted from...
7669 (packsymbols): here.
7670 (reader): Adjust.
7671
7672 2001-11-05 Akim Demaille <akim@epita.fr>
7673
7674 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7675
7676 2001-11-05 Akim Demaille <akim@epita.fr>
7677
7678 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7679 pattern.
7680
7681 2001-11-05 Akim Demaille <akim@epita.fr>
7682
7683 * src/options.h (struct option_table_struct): set_flags is void*.
7684 * src/options.c (longopts): Support `--output' and `%output'.
7685 (usage): Adjust.
7686 * src/lex.h (tok_setopt): Remove, replaced with...
7687 (tok_intopt, tok_stropt): these new guys.
7688 * src/lex.c (getopt.h): Not needed.
7689 (token_buffer, unlexed_token_buffer): Not const.
7690 (percent_table): Promote `-' over `_' in directive names.
7691 Active `%name-prefix', `file-prefix', and `output'.
7692 (parse_percent_token): Accept possible arguments to directives.
7693 Promote `-' over `_' in directive names.
7694
7695 2001-11-04 Akim Demaille <akim@epita.fr>
7696
7697 * doc/bison.texinfo (Decl Summary): Split the list into
7698 `directives for grammars' and `directives for bison'.
7699 Sort'em.
7700 Add description of `%name-prefix', `file-prefix', and `output'.
7701 Promote `-' over `_' in directive names.
7702 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
7703 Simplify the description of `--name-prefix'.
7704 Promote `-' over `_' in directive names.
7705 Promote `--output' over `--output-file'.
7706 Fix the description of `--defines'.
7707 * tests/output.at: Exercise %file-prefix and %output.
7708
7709 2001-11-02 Akim Demaille <akim@epita.fr>
7710
7711 * doc/refcard.tex: Update.
7712
7713 2001-11-02 Akim Demaille <akim@epita.fr>
7714
7715 * src/symtab.h (SUNDEF): New.
7716 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
7717 stand for `uninitialized', instead of 0.
7718 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
7719 * src/lex.c (lex): Adjust.
7720
7721 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
7722 Number it 0.
7723 Let yylex return it instead of a plain 0.
7724 Reported by Dick Streefland.
7725
7726 2001-11-02 Akim Demaille <akim@epita.fr>
7727
7728 * tests/regression.at (Mixing %token styles): New test.
7729
7730 2001-11-02 Akim Demaille <akim@epita.fr>
7731
7732 * src/reader.c (parse_thong_decl): Formatting changes.
7733 (token_translations_init): New, extracted from...
7734 (packsymbols): Here.
7735 Adjust.
7736
7737 2001-11-01 Akim Demaille <akim@epita.fr>
7738
7739 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
7740 Check that `9foo.y' produces correct cpp guards.
7741 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
7742 guards.
7743 Reported by Wwp.
7744
7745 2001-11-01 Akim Demaille <akim@epita.fr>
7746
7747 * tests/regression.at (Invalid input: 2): New.
7748 * src/lex.c (unlexed_token_buffer): New.
7749 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
7750 too.
7751 Reported by Wwp.
7752
7753 2001-11-01 Akim Demaille <akim@epita.fr>
7754
7755 * tests/calc.at: Catch up with 1.30.
7756 * configure.in: Bump to 1.49a.
7757 Adjust to newer Autotest.
7758
7759 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
7760
7761 * src/conflicts.c: Move global variables rrc_total and src_total ...
7762 (print_conflicts): here.
7763 * src/output.c (output): Free global variable user_toknums.
7764 * src/lex.c (token_obstack): Become static.
7765
7766 2001-10-18 Akim Demaille <akim@epita.fr>
7767
7768 * tests/atlocal.in (GCC): Add.
7769 * tests/calc.at: s/m4_match/m4_bmatch/.
7770 s/m4_patsubst/m4_bpatsubst/.
7771 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
7772 * configure.in: AC_SUBST(GCC).
7773
7774 2001-10-14 Marc Autret <autret_m@epita.fr>
7775
7776 * src/options.c (create_long_option_table): Fix.
7777
7778 2001-10-10 Akim Demaille <akim@epita.fr>
7779
7780 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7781
7782 2001-10-04 Akim Demaille <akim@epita.fr>
7783
7784 * src/reader.c (parse_union_decl): Push the caracters in
7785 union_obstack, not attrs_obstack.
7786
7787 2001-10-04 Akim Demaille <akim@epita.fr>
7788
7789 Merge in the branch 1.29.
7790
7791 * src/reader.c (packsymbols): Use a temporary obstack for
7792 `%%tokendef', since output_stack is already used elsewhere.
7793
7794 2001-10-02 Akim Demaille <akim@epita.fr>
7795
7796 Bump 1.29d.
7797
7798 2001-10-02 Akim Demaille <akim@epita.fr>
7799
7800 Version 1.29c.
7801
7802 2001-10-02 Akim Demaille <akim@epita.fr>
7803
7804 * tests/regression.at (Invalid CPP headers): New.
7805 From Alexander Belopolsky.
7806 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
7807
7808 2001-10-02 Akim Demaille <akim@epita.fr>
7809
7810 * tests/regression.at (Invalid input): New.
7811 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
7812 Reported by Shura.
7813
7814 2001-10-02 Akim Demaille <akim@epita.fr>
7815
7816 * tests/calc.at: Now that --debug works, the tests must be adjusted.
7817
7818 2001-10-02 Akim Demaille <akim@epita.fr>
7819
7820 * src/output.c (output_parser): Assert `skeleton'.
7821 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
7822 systems.
7823 From Shura.
7824
7825 2001-10-01 Marc Autret <autret_m@epita.fr>
7826
7827 * src/lex.h: Echo modifications.
7828 * src/lex.c (unlex): Parameter is now token_t.
7829 From Hans Aberg.
7830
7831 2001-10-01 Marc Autret <autret_m@epita.fr>
7832
7833 * src/main.c: Include lex.h.
7834 From Hans Aberg.
7835
7836 2001-09-29 Akim Demaille <akim@epita.fr>
7837
7838 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
7839
7840 2001-09-28 Akim Demaille <akim@epita.fr>
7841
7842 * tests/testsuite.at: Update to newer Autotest.
7843 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
7844
7845 2001-09-27 Akim Demaille <akim@epita.fr>
7846
7847 Position independent wrapper.
7848
7849 * tests/bison: Remove.
7850 * tests/bison.in: New.
7851 * configure.in: Adjust.
7852
7853 2001-09-27 Paul Eggert <eggert@twinsun.com>
7854
7855 Port quotearg fixes from tar 1.13.24.
7856
7857 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
7858 tm to be declared.
7859 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
7860 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
7861
7862 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
7863 * m4/mbrtowc.m4: New file.
7864 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
7865 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
7866
7867 2001-09-27 Akim Demaille <akim@epita.fr>
7868
7869 Bump to 1.29c.
7870
7871 2001-09-27 Akim Demaille <akim@epita.fr>
7872
7873 Version 1.29b.
7874
7875 2001-09-25 Akim Demaille <akim@epita.fr>
7876
7877 * src/system.h: Include `xalloc.h'.
7878 Remove it from the C files.
7879 * src/files.c (output_files): Free the obstacks.
7880 * src/lex.c (init_lex): Rename as...
7881 (lex_init): this.
7882 (lex_free): New.
7883 * src/main.c (main): Use it.
7884
7885 2001-09-24 Marc Autret <autret_m@epita.fr>
7886
7887 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
7888 to output informations in fout (FILE*).
7889 (open_graph, close_graph): Likewise.
7890 (output_graph, output_edge, output_node): Likewise.
7891 * src/vcg.h: Update function prototypes.
7892 * src/print_graph.c (print_graph): Open output graph file.
7893 (print_actions): Adjust.
7894 * src/files.h: Remove extern declaration.
7895 * src/files.c: Remove graph_obstack declaration.
7896 (open_files): Remove graph_obstack initialization.
7897 (output_files): Remove graph_obstack saving.
7898
7899 2001-09-24 Marc Autret <autret_m@epita.fr>
7900
7901 * src/files.c (compute_output_file_names): Fix.
7902
7903 2001-09-24 Marc Autret <autret_m@epita.fr>,
7904 Akim Demaille <akim@epita.fr>
7905
7906 * src/reader.c (reader): Remove call to free_symtab ().
7907 * src/main.c (main): Call it here.
7908 Include symtab.h.
7909 * src/conflicts.c (initialize_conflicts): Rename as...
7910 (solve_conflicts): this.
7911 * src/print.c (print_core, print_actions, print_state)
7912 (print_grammar): Dump to a file instead a `output_obstack'.
7913 (print_results): Dump `output_obstack', and then proceed with the
7914 FILE *.
7915 * src/files.c (compute_output_file_names, close_files): New.
7916 (output_files): Adjust.
7917 * src/main.c (main): Adjust.
7918
7919 2001-09-23 Marc Autret <autret_m@epita.fr>
7920
7921 * src/files.c (compute_header_macro): Computes header macro name
7922 from spec_defines_file when given.
7923
7924 2001-09-23 Marc Autret <autret_m@epita.fr>
7925
7926 * src/files.c (output_files): Add default extensions.
7927
7928 2001-09-22 Akim Demaille <akim@epita.fr>
7929
7930 * src/conflicts.c (finalize_conflicts): Rename as...
7931 (free_conflicts): this.
7932
7933 2001-09-22 Akim Demaille <akim@epita.fr>
7934
7935 * src/gram.c (gram_free): Rename back as...
7936 (dummy): this.
7937 (output_token_translations): Free `token_translations'.
7938 * src/symtab.c (free_symtab): Free the tag field.
7939
7940 2001-09-22 Akim Demaille <akim@epita.fr>
7941
7942 Remove `translations' as it is always set to true.
7943
7944 * src/gram.h: Adjust.
7945 * src/reader.c (packsymbols, parse_token_decl): Adjust
7946 * src/print.c (print_grammar): Adjust.
7947 * src/output.c (output_token_translations): Adjust.
7948 * src/lex.c (lex): Adjust.
7949 * src/gram.c: Be sure the set pointers to NULL.
7950 (dummy): Rename as...
7951 (gram_free): this.
7952
7953 2001-09-22 Akim Demaille <akim@epita.fr>
7954
7955 * configure.in: Invoke AM_LIB_DMALLOC.
7956 * src/system.h: Use dmalloc.
7957 * src/LR0.c: Be sure to have pointers initialized to NULL.
7958 (allocate_itemsets): Allocate kernel_items only if needed.
7959
7960 2001-09-22 Akim Demaille <akim@epita.fr>
7961
7962 * configure.in: Bump to 1.29b.
7963 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
7964 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
7965 need xmalloc.c in calc.y.
7966 From Pascal Bart.
7967
7968 2001-09-21 Akim Demaille <akim@epita.fr>
7969
7970 Version 1.29a.
7971 * Makefile.maint, config/config.guess, config/config.sub,
7972 * config/missing: Update from masters.
7973 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
7974 upon package.m4.
7975 * configure.in (ALL_LINGUAS): Add `tr'.
7976
7977 2001-09-21 Akim Demaille <akim@epita.fr>
7978
7979 * tests/Makefile.am (package.m4): Move to...
7980 ($(srcdir)/$(TESTSUITE)): here.
7981
7982 2001-09-20 Akim Demaille <akim@epita.fr>
7983
7984 * src/complain.c: No longer try to be standalone: use system.h.
7985 Don't assume __STDC__ is defined to 1. Just test if it is defined.
7986 * src/complain.h: Likewise.
7987 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
7988 Remove the unused variable `n'.
7989 From Albert Chin-A-Young.
7990
7991 2001-09-18 Marc Autret <autret_m@epita.fr>
7992
7993 * doc/bison.1: Update.
7994 * doc/bison.texinfo (Bison Options): Update --defines and --graph
7995 descriptions.
7996 (Option Cross Key): Update.
7997 Add --graph.
7998
7999 2001-09-18 Marc Autret <autret_m@epita.fr>
8000
8001 * tests/regression.at: New test (comment in %union).
8002
8003 2001-09-18 Marc Autret <autret_m@epita.fr>
8004
8005 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8006 do that.
8007 Reported by Keith Browne.
8008
8009 2001-09-18 Marc Autret <autret_m@epita.fr>
8010
8011 * tests/output.at: Add tests for --defines and --graph.
8012
8013 2001-09-18 Marc Autret <autret_m@epita.fr>
8014
8015 * tests/output.at: Removes tests of %{header,src}_extension features.
8016
8017 2001-09-18 Akim Demaille <akim@epita.fr>
8018
8019 * tests/Makefile.am (package.m4): New.
8020 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8021 (_AT_CHECK_CALC_ERROR): Likewise.
8022 Factor the `, ' part of verbose error messages.
8023
8024 2001-09-18 Marc Autret <autret_m@epita.fr>
8025
8026 * src/getargs.c (longopts): Declare --defines and --graph as options
8027 with optional arguments.
8028 * src/files.h: Add extern declarations.
8029 * src/files.c (spec_graph_file, spec_defines_file): New.
8030 (output_files): Update.
8031 Remove CPP-outed code.
8032
8033 2001-09-18 Marc Autret <autret_m@epita.fr>
8034
8035 Turn off %{source,header}_extension feature.
8036
8037 * src/files.c (compute_exts_from_gf): Update.
8038 (compute_exts_from_src): Update.
8039 (output_files): CPP-out useless code.
8040 * src/files.h: Remove {header,source}_extension extern declarations.
8041 * src/reader.c (parse_dquoted_param): CPP-out.
8042 (parse_header_extension_decl): Remove.
8043 (parse_source_extension_decl): Remove.
8044 (read_declarations): Remove cases tok_{hdrext,srcext}.
8045 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8046 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8047
8048 2001-09-10 Akim Demaille <akim@epita.fr>
8049
8050 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8051 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8052 (AT_CHECK_OUTPUT): this.
8053 Merely check ls' exit status, its output is useless.
8054
8055 2001-09-10 Akim Demaille <akim@epita.fr>
8056
8057 * tests/calc.at: Use m4_match.
8058 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8059
8060 2001-09-10 Marc Autret <autret_m@epita.fr>,
8061 Akim Demaille <akim@epita.fr>
8062
8063 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8064 enum color_e.
8065 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8066 to `normal'.
8067 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8068 * src/lex.h: Adjust prototype.
8069 (token_t): Add `tok_undef'.
8070 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8071 (parse_percent_token): Now returns token_t.
8072 Add default statement in switch.
8073 (lex): Separate `c' as an input variable, from the token_t result
8074 part.
8075 (unlexed): Is a token_t.
8076
8077 2001-09-10 Akim Demaille <akim@epita.fr>
8078
8079 * configure.in: Bump to 1.29a.
8080
8081 2001-09-07 Akim Demaille <akim@epita.fr>
8082
8083 Version 1.29.
8084
8085 2001-08-30 Akim Demaille <akim@epita.fr>
8086
8087 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8088 * m4/atconfig.m4: Remove.
8089 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8090 * tests/bison: New.
8091 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8092 m4_if, m4_patsubst, and m4_regexp.
8093 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8094 `input' file instead of echo.
8095
8096 2001-08-29 Akim Demaille <akim@epita.fr>
8097
8098 Bump to 1.28e.
8099
8100 2001-08-29 Akim Demaille <akim@epita.fr>
8101
8102 Version 1.28d.
8103
8104 2001-08-29 Paul Eggert <eggert@twinsun.com>
8105
8106 * src/bison.simple (yyparse): Don't take the address of an
8107 item before the start of an array, as that doesn't conform to
8108 the C Standard.
8109
8110 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8111
8112 * doc/bison.texinfo (Location Tracking Calc): New node.
8113
8114 2001-08-29 Paul Eggert <eggert@twinsun.com>
8115
8116 * src/output.c (output): Do not define const, as this now
8117 causes more problems than it cures.
8118
8119 2001-08-29 Akim Demaille <akim@epita.fr>
8120
8121 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8122 the nodes.
8123 Be sure to tag the `detailmenu'.
8124
8125 2001-08-29 Akim Demaille <akim@epita.fr>
8126
8127 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8128 download in a tmp dir.
8129
8130 2001-08-28 Marc Autret <autret_m@epita.fr>
8131
8132 * config/depcomp: New file.
8133
8134 2001-08-28 Marc Autret <autret_m@epita.fr>
8135
8136 * doc/bison.1 (mandoc): Adjust.
8137 From Juan Manuel Guerrero.
8138
8139 2001-08-28 Marc Autret <autret_m@epita.fr>
8140
8141 * src/print_graph.c (print_state): Fix.
8142
8143 2001-08-27 Marc Autret <autret_m@epita.fr>
8144
8145 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8146 char * members.
8147 Echo modifications to the functions prototypes.
8148 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8149
8150 2001-08-27 Marc Autret <autret_m@epita.fr>
8151
8152 * src/vcg.c: Include `xalloc.h'.
8153 (add_colorentry): New.
8154 (add_classname): New.
8155 (add_infoname): New.
8156 * src/vcg.h: Add new prototypes.
8157
8158 2001-08-27 Akim Demaille <akim@epita.fr>
8159
8160 * Makefile.maint: Sync. again with CVS Autoconf.
8161
8162 2001-08-27 Akim Demaille <akim@epita.fr>
8163
8164 * Makefile.maint: Formatting changes.
8165 (po-update, cvs-update, update): New targets.
8166 (AMTAR): Remove.
8167
8168 2001-08-27 Akim Demaille <akim@epita.fr>
8169
8170 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8171 * Makefile.maint: Sync. with CVS Autoconf.
8172
8173 2001-08-27 Marc Autret <autret_m@epita.fr>
8174
8175 * src/vcg.h (struct infoname_s): New.
8176 (struct colorentry_s): New.
8177 (graph_s): New fields {vertical,horizontal}_order in structure.
8178 Add `infoname' field.
8179 Add `colorentry' field;
8180 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8181 (G_HORIZONTAL_ORDER): New.
8182 (G_INFONAME): New.
8183 (G_COLORENTRY): New.
8184 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8185 Add output of `infoname'.
8186 Add output of `colorentry'.
8187
8188 2001-08-27 Marc Autret <autret_m@epita.fr>
8189
8190 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8191 This one shadowed a global parameter.
8192
8193 2001-08-24 Marc Autret <autret_m@epita.fr>
8194
8195 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8196 instead of `unsigned'.
8197 (print_state): Do not call obstack_object_size () in obstack_grow ()
8198 to avoid macro variables shadowing.
8199
8200 2001-08-23 Marc Autret <autret_m@epita.fr>
8201
8202 * src/lex.c (percent_table): Typo: s/naem/name/.
8203 Add graph option.
8204 Normalize new options declarations.
8205
8206 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8207
8208 * tests/suite.at: Exercise %header_extension and %source_extension.
8209
8210 2001-08-16 Marc Autret <autret_m@epita.fr>
8211
8212 * src/reader.c (parse_dquoted_param): New.
8213 (parse_header_extension_decl): Use it.
8214 (parse_source_extension_decl): Likewise.
8215
8216 2001-08-16 Marc Autret <autret_m@epita.fr>
8217
8218 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8219 (get_xxxx_str): Use assert () instead of complain ().
8220 Remove return invokations in default cases.
8221 (get_decision_str): Modify default behaviour. Remove second argument.
8222 Echo modifications on calls.
8223 (output_graph): Fix.
8224
8225 2001-08-16 Marc Autret <autret_m@epita.fr>
8226
8227 * src/getargs.c (usage): Update with ``-g, --graph''.
8228
8229 2001-08-16 Marc Autret <autret_m@epita.fr>
8230
8231 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8232 (Option Cross Key): Likewise.
8233 * doc/bison.1: Update.
8234
8235 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
8236
8237 * src/output.c (output_master_parser): Don't finish action_obstack.
8238 (output_parser): Don't care about the muscle action, here.
8239 (prepare): Copy the action_obstack in the action muscle.
8240 (output): Free action_obstack.
8241
8242 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8243
8244 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8245 will contain `%union' declaration.
8246 (parse_union_decl): Delete #line directive output.
8247 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8248 informations about %union.
8249 (parse_union_decl): Copy the union_obstack in the muscle stype.
8250 * src/bison.simple: Add new #line directive.
8251 Add typdef %%stype YYSTYPE.
8252
8253 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8254
8255 * src/bison.simple: Add new `#line' directive.
8256
8257 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
8258
8259 * src/bison.simple: New `#line' directive.
8260 * src/output.c (output_parser): Support new dynamic muscle input_line.
8261
8262 2001-09-22 Marc Autret <autret_m@epita.fr>
8263
8264 * src/output.c (output_master_parser): New.
8265 (output_parser): Be more re-entrant.
8266
8267 2001-09-21 Marc Autret <autret_m@epita.fr>
8268
8269 * src/reader.c (copy_definition, parse_union_decl): Update and use
8270 `linef' muscle.
8271 (copy_action): Likewise.
8272 Use obstack_1grow ().
8273 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8274
8275 2001-09-21 Marc Autret <autret_m@epita.fr>
8276
8277 * src/options.c (option_table): Adjust.
8278 * src/lex.c (parse_percent_token): Fix.
8279
8280 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8281
8282 * src/options.c (symtab.h): Include it, need by lex.h.
8283
8284 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8285
8286 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8287 is now an option_table_struct*.
8288 (option_strcmp): New function option_strcmp.
8289 (parse_percent_token): Call option_strcmp.
8290 * src/getargs.c (xalloc.h, options.h): Include it.
8291 (getargs): Call create_long_option_table.
8292 (getargs): Free longopts at the end of the function.
8293 (shortopts): Move in options.c.
8294 * src/options.c (create_long_option_table): New function. Convert
8295 information from option_table to option structure.
8296 * src/reader.c (options.h): Include it.
8297
8298 * src/Makefile.am: Adjust.
8299 * src/options.c (option_table): Create from longopts and percent_table.
8300 * src/getargs.c (longopts): Delete.
8301 * src/lex.c (struct percent_table_struct): Delete.
8302 (percent_table): Delete.
8303 (options.h): Include it.
8304 * src/options.c: Create.
8305 * src/options.h: Create.
8306 Declare enum opt_access_e.
8307 Define struct option_table_struct.
8308
8309 2001-09-20 Marc Autret <autret_m@epita.fr>
8310
8311 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8312 sections of Bison.
8313
8314 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
8315
8316 * src/bison.simple: s/%%filename/%%skeleton.
8317 * src/muscle_tab.c (getargs.h): Include it.
8318 (muscle_init): Insert new muscle skeleton.
8319
8320 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
8321
8322 * src/output.c (output_parser): Delete unused variable actions_dumped.
8323
8324 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
8325
8326 * src/output.c (output): Delete call to reader_output_yylsp.
8327 * src/reader.c (reader): Likewise.
8328 * src/reader.h: Delete declaration of reader_output_yylsp.
8329
8330 2001-09-02 Marc Autret <autret_m@epita.fr>
8331
8332 * src/reader.c: Include muscle_tab.h.
8333 (parse_union_decl): Update.
8334 (parse_macro_decl): Rename parse_muscle_decl.
8335 Update to use renamed functions and variable.
8336 (read_declarations, copy_action, read_additionnal_code, : Updated
8337 with correct variables and functions names.
8338 (packsymbols, reader): Likewise.
8339
8340 * src/reader.h (muscle_obstack): Extern declaration update.
8341
8342 * src/output.c: Include muscle_tab.h
8343 In all functions using macro_insert, change by using muscle_insert ().
8344 (macro_obstack): Rename muscle_obstack.
8345 Echo modifications in the whole file.
8346 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8347 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8348 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8349
8350 * src/muscle_tab.h: Update double inclusion macros.
8351 (macro_entry_s): Rename muscle_entry_s.
8352 Update prototypes.
8353
8354 * src/muscle_tab.c: Include muscle_tab.h.
8355 Rename macro_tabble to muscle_table.
8356 (mhash1, mhash2, mcmp): Use muscle_entry.
8357 (macro_init): Rename muscle_init. Update.
8358 (macro_insert): Rename muscle_insert. Update.
8359 (macro_find): Rename muscle_find. Update.
8360
8361 * src/main.c: Include muscle_tab.h.
8362 (main): Call muscle_init ().
8363 * src/Makefile.am (bison_SOURCES): Echo modifications.
8364
8365 2001-09-02 Marc Autret <autret_m@epita.fr>
8366
8367 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8368
8369 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8370
8371 2001-09-02 Marc Autret <autret_m@epita.fr>
8372
8373 * src/macrotab.c, src/macrotab.h: Remove.
8374
8375 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
8376
8377 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8378 filename.
8379
8380 2001-09-01 Marc Autret <autret_m@epita.fr>
8381
8382 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8383 to an explicit value to activate the feature. We do it here.
8384
8385 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8386
8387 * src/output.c (prepare): Delete the `filename' muscule insertion.
8388 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8389 (parse_union_decl): Likewise.
8390 * src/macrotab.c (macro_init): Initialize filename by infile.
8391
8392 2001-08-31 Marc Autret <autret_m@epita.fr>
8393
8394 * src/bison.simple (YYLSP_NEEDED): New definition.
8395 * src/output.c (prepare): Add macro insertion of `locations_flag'
8396
8397 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8398
8399 * src/output.c (prepare): Delete insertion of previous muscles,
8400 and insert the `prefix' muscles.
8401 * src/macrotab.c (macro_init): Likewise.
8402 (macro_init): Initialization prefix directive by `yy'.
8403 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8404 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8405 yylval, yydebug, yyerror, yynerrs and yyparse.
8406 New directive `#define' to substitute yydebug, ... with option
8407 name_prefix.
8408
8409 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8410
8411 * src/main.c (main): Standardize.
8412 * src/output.c (output_table_data, output_parser): Likewise.
8413 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8414
8415 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8416
8417 * src/reader.c (read_additionnal_code): Rename %%user_code to
8418 %%epilogue.
8419 * src/output.c (output): Rename %%declarations to %%prologue.
8420 * src/bison.simple: Echo modifications.
8421
8422 2001-08-31 Marc Autret <autret_m@epita.fr>
8423
8424 * src/reader.c (readgram): CleanUp.
8425 (output_token_defines): Likewise.
8426 (packsymbols): Likewise.
8427 (reader): Likewise.
8428 * src/output.c (output): CPP-out useless code.
8429
8430 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8431
8432 * src/reader.c (reader): Delete obsolete call to function
8433 output_trailers and output_headers.
8434 * src/output.h: Remove obsolete functions prototypes of output_headers
8435 and output_trailers.
8436
8437 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
8438
8439 * src/main.c: Include macrotab.h.
8440 * src/macrotab.h (macro_entry_s): Constify fields.
8441 Adjust functions prototypes.
8442 * src/macrotab.c (macro_insert): Constify key and value.
8443 (macro_find): Constify key.
8444 (macro_insert): Include 'xalloc.h'
8445 (macro_insert): Use XMALLOC.
8446 (macro_find): Constify return value.
8447 * src/output.c (output_table_data): Rename table to table_data.
8448 (output_parser): Constify macro_key, macro_value.
8449
8450 2001-08-30 Marc Autret <autret_m@epita.fr>
8451
8452 * src/reader.c (parse_skel_decl): New.
8453 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
8454 * src/lex.h (token_t): New token `tok_skel'.
8455 * src/lex.c (percent_table): Add skeleton option entry.
8456 Standardize.
8457
8458 2001-08-29 Marc Autret <autret_m@epita.fr>
8459
8460 * src/bison.simple: Add %%user_code directive at the end.
8461 * src/reader.c (read_additionnal_code): New.
8462 (reader): Use it.
8463 * src/output.c (output_program): Remove.
8464 (output): Update.
8465
8466 2001-08-28 Marc Autret <autret_m@epita.fr>
8467
8468 * src/output.c (output_actions): Clean up.
8469 (output_gram): CPP-out useless code.
8470 * src/reader.c (reader): Clean up, CPP-out useless code.
8471
8472 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
8473
8474 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
8475 directive.
8476 * src/bison.simple: Add `%%definitions'.
8477
8478 2001-08-28 Marc Autret <autret_m@epita.fr>
8479
8480 * config/depcomp: New file.
8481
8482 2001-08-27 Paul Eggert <eggert@twinsun.com>
8483
8484 * src/bison.simple (yyparse): Don't take the address of an
8485 item before the start of an array, as that doesn't conform to
8486 the C Standard.
8487
8488 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8489
8490 * src/output.c (output): Remove the initialization of the macro
8491 obstack. It was done too late here.
8492
8493 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8494 completely wrong.
8495 (reader): Initialize the macro obstack here, since we need it to grow
8496 '%define' directives.
8497
8498 * src/reader.h: Declare the macro obstack as extern.
8499
8500 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8501
8502 * src/output.c (output_parser): Fix. Store single '%' characters in
8503 the output obstack instead of throwing them away.
8504
8505 2001-08-27 Akim Demaille <akim@epita.fr>
8506
8507 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8508
8509 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8510
8511 * lib/Makefile.am: Adjust.
8512
8513 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8514
8515 * src/bison.simple: Update and add '%%' directives.
8516
8517 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8518
8519 * src/reader.c (reader): Remove calls to 'output_headers' and
8520 'output_trailers'. Remove some C output.
8521 (readgram): Disable a piece of code that was writing a default
8522 definition for 'YYSTYPE'.
8523 (reader_output_yylsp): Remove.
8524 (packsymbols): Output token defintions to a macro.
8525 (copy_definition): Disable C output.
8526
8527 * src/reader.c (parse_macro_decl): New function used to parse macro
8528 declarations.
8529 (copy_string2): Put the body of copy_string into this new function.
8530 Add a parameter to let the caller choose whether he wants to copy the
8531 string delimiters or not.
8532 (copy_string): Be a simple call to copy_string2 with the last argument
8533 bound to true.
8534 (read_declarations): Add case for macro definition.
8535 (copy_identifier): New.
8536 (parse_macro_decl): Read macro identifiers using copy_identifier
8537 rather than lex.
8538
8539 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8540
8541 * src/output.c (prepare): Add prefixed names.
8542 (output_parser): Output semantic actions.
8543 (output_parser): Fix bug on '%%line' directives.
8544
8545 * src/output.c (output_headers): Remove. The C code printed by this
8546 function should now be in the skeletons.
8547 (output_trailers): Remove.
8548 (output): Disable call to 'reader_output_yylsp'.
8549 (output_rule_data): Do not output tables to the table obstack.
8550
8551 * src/output.c: Remove some C dedicated output.
8552 Improve the use of macro and output obstacks.
8553 (output_defines): Remove.
8554
8555 * src/output.c (output_token_translations): Associate 'translate'
8556 table with a macro. No output to the table obstack.
8557 (output_gram): Same for 'rhs' and 'prhs'.
8558 (output_stos): Same for 'stos'.
8559 (output_rule_data): Same for 'r1' and 'r2'.
8560 (token_actions): Same for 'defact'.
8561 (goto_actions): Same for 'defgoto'.
8562 (output_base): Same for 'pact' and 'pgoto'.
8563 (output_table): Same for 'table'.
8564 (output_check): Same for 'check'.
8565
8566 * src/output.c (output_table_data): New function.
8567 (output_short_table): Remove.
8568 (output_short_or_char_table): Remove.
8569
8570 * src/output.c (output_parser): Replace most of the skeleton copy code
8571 with something new. Skeletons are now processed character by character
8572 rather than line by line, and Bison looks for '%%' macros. This is the
8573 first step in making Bison's output process (a lot) more flexible.
8574 (output_parser): Use the macro table.
8575
8576 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8577
8578 * src/main.c (main): Initialize the macro table.
8579
8580 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8581
8582 * src/lex.c (percent_table): Add tok_define.
8583 * src/lex.h: Add tok_define.
8584
8585 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8586
8587 * src/macrotab.c: New file.
8588 * src/macrotab.h: New file.
8589 * src/Makefile.am: Update.
8590
8591 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8592
8593 * lib/hash.c: New file.
8594 * lib/hash.h: New file.
8595 * lib/Makefile.am: Update.
8596
8597 2001-08-15 Akim Demaille <akim@epita.fr>
8598
8599 Version 1.28c.
8600
8601 2001-08-15 Marc Autret <autret_m@epita.fr>
8602
8603 * src/reader.c (readgram): Indent output macro YYSTYPE.
8604 (packsymbols): Likewise.
8605 (output_token_defines): Likewise.
8606 * src/files.c: Standardize.
8607 (compute_header_macro): New.
8608 (defines_obstack_save): New. Use compute_header_macro.
8609 (output_files): Update. Use defines_obstack_save.
8610
8611 2001-08-15 Akim Demaille <akim@epita.fr>
8612
8613 * doc/bison.texinfo (Table of Symbols): Document
8614 YYSTACK_USE_ALLOCA.
8615
8616 2001-08-15 Akim Demaille <akim@epita.fr>
8617
8618 * missing: Update from CVS Automake.
8619 * config/config.guess, config/config.sub, config/texinfo.tex:
8620 Update from gnu.org.
8621
8622 2001-08-15 Akim Demaille <akim@epita.fr>
8623
8624 * Makefile.maint: Sync with CVS Autoconf.
8625
8626 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
8627
8628 * doc/bison.texinfo: Include GNU Free Documentation License from
8629 `fdl.texi'.
8630 * doc/fdl.texi: Add to package.
8631
8632 2001-08-14 Marc Autret <autret_m@epita.fr>
8633
8634 Turn on %{source,header}_extension features.
8635
8636 * src/lex.c (percent_table): Un-CPP out header_extension and
8637 source_extension.
8638 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
8639 (compute_exts_from_src): Remove conditions. It restores priorities
8640 between options.
8641
8642 2001-08-14 Marc Autret <autret_m@epita.fr>
8643
8644 * src/files.c (compute_base_names): Add extensions computing when
8645 `--file-prefix' used.
8646 Standardize function calls.
8647
8648 2001-08-13 Marc Autret <autret_m@epita.fr>
8649
8650 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
8651 defining it (defined but null disables alloca).
8652
8653 2001-08-13 Marc Autret <autret_m@epita.fr>
8654
8655 * src/bison.simple (_yy_memcpy): CPP reformat.
8656
8657 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
8658
8659 * tests/atconfig.in (CPPFLAGS): Fix.
8660
8661 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
8662
8663 * doc/bison.texinfo: Include GNU General Public License from
8664 `gpl.texi'.
8665 * doc/gpl.texi: Add to package.
8666
8667 2001-08-10 Marc Autret <autret_m@epita.fr>
8668
8669 * src/print_graph.h: Fix.
8670 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
8671
8672 2001-08-10 Akim Demaille <akim@epita.fr>
8673
8674 * src/system.h: Provide default declarations for stpcpy, strndup,
8675 and strnlen.
8676
8677 2001-08-10 Robert Anisko <anisko_r@epita.fr>
8678
8679 * doc/bison.texinfo (Locations): Update @$ stuff.
8680
8681 2001-08-09 Robert Anisko <anisko_r@epita.fr>
8682
8683 * src/bison.simple (YYLLOC_DEFAULT): Update.
8684 (yyparse): Adjust.
8685
8686 2001-08-08 Marc Autret <autret_m@epita.fr>
8687
8688 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
8689 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8690 Reported by Fabrice Bauzac.
8691
8692 2001-08-08 Marc Autret <autret_m@epita.fr>
8693
8694 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
8695 * src/vcg.c (output_node): Fix.
8696 * src/vcg.h: Cleanup.
8697 * src/print_graph.c: Add comments.
8698 (node_output_size): New global variable. Simplify the formatting of
8699 the VCG graph output.
8700 (print_actions): Unused code is now used. It notifies the final state
8701 and no action states in the VCG graph. It also give the reduce actions.
8702 The `shift and goto' edges are red and the `go to state' edges are
8703 blue.
8704 Get the current node name and node_obstack by argument.
8705 (node_obstack): New variable.
8706 (print_state): Manage node_obstack.
8707 (print_core): Use node_obstack given by argument.
8708 A node is not only computed here but in print_actions also.
8709 (print_graph): CPP out useless code instead of commenting it.
8710
8711 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
8712
8713 * tests/atconfig.in (CPPFLAGS): Fix.
8714
8715 2001-08-07 Akim Demaille <akim@epita.fr>
8716
8717 * src/print_graph.c (quote): New.
8718 (print_core): Use it.
8719
8720 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
8721
8722 * src/vcg.c (complain.h): Include it.
8723 Unepitaize `return' invocations.
8724 [NDEBUG] (main): Remove.
8725 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
8726 * src/files.c (open_files): Initialize graph_obstack.
8727 * src/print_graph.c (print_actions): CPP out useless code.
8728 (print_core): Don't output the last `\n' in labels.
8729 Use `quote'.
8730 * src/files.c (output_files): Output the VCG file.
8731 * src/main.c (main): Invoke print_graph ();
8732
8733 2001-08-06 Marc Autret <autret_m@epita.fr>
8734
8735 Automaton VCG graph output.
8736 Using option ``-g'' or long option ``--graph'', you can generate
8737 a gram_filename.vcg file containing a VCG description of the LALR (1)
8738 automaton of your grammar.
8739
8740 * src/main.c: Call to print_graph() function.
8741 * src/getargs.h: Update.
8742 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
8743 (graph_flag): New flag.
8744 (longopts): Update.
8745 (getargs): Add case `g'.
8746 * src/files.c (graph_obstack): New obstack struct.
8747 (open_files): Initialize new obstack.
8748 (output_files): Saves graph_obstack if required.
8749 * src/files.h (graph_obstack): New extern declaration.
8750 * src/Makefile.am: Add new source files.
8751
8752 2001-08-06 Marc Autret <autret_m@epita.fr>
8753
8754 * src/print_graph.c, src/print_graph.h (graph): New.
8755 * src/vcg.h: New file.
8756 * src/vcg.c: New file, VCG graph handling.
8757
8758 2001-08-06 Marc Autret <autret_m@epita.fr>
8759
8760 Add of %source_extension and %header_extension which specify
8761 the source or/and the header output file extension.
8762
8763 * src/files.c (compute_base_names): Remove initialisation of
8764 src_extension and header_extension.
8765 (compute_exts_from_gf): Update.
8766 (compute_exts_from_src): Update.
8767 (output_files): Update.
8768 * src/reader.c (parse_header_extension_decl): New.
8769 (parse_source_extension_decl): New.
8770 (read_declarations): New case statements for the new tokens.
8771 * src/lex.c (percent_table): Add entries for %source_extension
8772 and %header_extension.
8773 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
8774
8775 2001-08-06 Marc Autret <autret_m@epita.fr>
8776
8777 * configure.in: Bump to 1.28c.
8778 * doc/bison.texinfo: Texinfo thingies.
8779
8780 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
8781
8782 * tests/atconfig.in (CPPFLAGS): Add.
8783 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8784
8785 2001-08-03 Akim Demaille <akim@epita.fr>
8786
8787 Version 1.28b.
8788
8789 2001-08-03 Akim Demaille <akim@epita.fr>
8790
8791 * tests/Makefile.am (check-local): Ship testsuite.
8792 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
8793 Include `string.h'.
8794
8795 2001-08-03 Akim Demaille <akim@epita.fr>
8796
8797 * configure.in: Try using -Wformat when compiling.
8798
8799 2001-08-03 Akim Demaille <akim@epita.fr>
8800
8801 * configure.in: Bump to 1.28b.
8802
8803 2001-08-03 Akim Demaille <akim@epita.fr>
8804
8805 * src/complain.c: Adjust strerror_r portability issues.
8806
8807 2001-08-03 Akim Demaille <akim@epita.fr>
8808
8809 Version 1.28a.
8810
8811 2001-08-03 Akim Demaille <akim@epita.fr>
8812
8813 * src/getargs.c, src/getarg.h (skeleton)): Constify.
8814 * src/lex.c (literalchar): Avoid name clashes on `buf'.
8815 * src/getargs.c: Include complain.h.
8816 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
8817 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
8818
8819 2001-08-03 Akim Demaille <akim@epita.fr>
8820
8821 * src/reader.c (readgram): Display hidden chars in error messages.
8822
8823 2001-08-03 Akim Demaille <akim@epita.fr>
8824
8825 Update to gettext 0.10.39.
8826
8827 2001-08-03 Akim Demaille <akim@epita.fr>
8828
8829 * lib/strspn.c: New.
8830
8831 2001-08-01 Marc Autret <autret_m@epita.fr>
8832
8833 * doc/bison.texinfo: Update.
8834 * doc/bison.1 (mandoc): Update.
8835 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
8836 * src/files.c: Support output files extensions computing.
8837 (src_extension): New static variable.
8838 (header_extension): New static variable.
8839 (tr): New function.
8840 (get_extension_index): New function, gets the index of an extension
8841 filename in a string.
8842 (compute_exts_from_gf): New function, computes extensions from the
8843 grammar file extension.
8844 (compute_exts_from_src): New functions, computes extensions from the
8845 C source file extension, file given by ``-o'' option.
8846 (compute_base_names): Update.
8847 (output_files): Update.
8848
8849 2001-08-01 Robert Anisko <anisko_r@epita.fr>
8850
8851 * doc/bison.texi: Document @$.
8852 (Locations): New section.
8853
8854 2001-07-18 Akim Demaille <akim@epita.fr>
8855
8856 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
8857 * config/prev-version.txt, config/move-if-change: New.
8858 * Makefile.am: Adjust.
8859
8860 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
8861
8862 * src/bison.simple (yyparse): Suppress warning `comparaison
8863 between signed and unsigned'.
8864
8865 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
8866
8867 * src/getargs.h (raw_flag): Remove.
8868 * src/getargs.c: Die on `-r'/`--raw'.
8869 * src/lex.c (parse_percent_token): Die on `%raw'.
8870 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
8871 * tests/calc.at: Suppress test with option `--raw'.
8872
8873 2001-07-14 Akim Demaille <akim@epita.fr>
8874
8875 * config/: New.
8876 * configure.in: Require Autoconf 2.50.
8877 Update to gettext 0.10.38.
8878
8879 2001-03-16 Akim Demaille <akim@epita.fr>
8880
8881 * doc/bison.texinfo: ANSIfy the examples.
8882
8883 2001-03-16 Akim Demaille <akim@epita.fr>
8884
8885 * getargs.c (skeleton): New variable.
8886 (longopts): --skeleton is a new option.
8887 (shortopts, getargs): -S is a new option.
8888 * getargs.h: Declare skeleton.
8889 * output.c (output_parser): Use it.
8890
8891 2001-03-16 Akim Demaille <akim@epita.fr>
8892
8893 * m4/strerror_r.m4: New.
8894 * m4/error.m4: Run AC_FUNC_STRERROR_R.
8895 * lib/error.h, lib/error.c: Update.
8896
8897 2001-03-16 Akim Demaille <akim@epita.fr>
8898
8899 * src/getargs.c (longopts): Clean up.
8900
8901 2001-02-21 Akim Demaille <akim@epita.fr>
8902
8903 * src/reader.c (gensym): `gensym_count' is your own.
8904 Use a static buf to create the symbol name, as token_buffer is no
8905 longer a buffer.
8906
8907 2001-02-08 Akim Demaille <akim@epita.fr>
8908
8909 * src/conflicts.c (conflict_report): Be sure not to append to res
8910 between two calls, which could happen if both first sprintf were
8911 skipped, but not the first cp += strlen.
8912
8913 2001-02-08 Akim Demaille <akim@epita.fr>
8914
8915 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
8916 New, from fileutils 4.0.37.
8917 * configure.in: Require Autoconf 2.49c. I took some time before
8918 making this decision. This is the only way out for portability
8919 issues in Bison, it would mean way too much duplicate effort to
8920 import in Bison features implemented in 2.49c since 2.13.
8921 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
8922
8923 2001-02-02 Akim Demaille <akim@epita.fr>
8924
8925 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
8926 * lib/xalloc.h, lib/xmalloc.c: Update.
8927
8928 2001-01-19 Akim Demaille <akim@epita.fr>
8929
8930 Get rid of the ad hoc handling of token_buffer in the scanner: use
8931 the obstacks.
8932
8933 * src/lex.c (token_obstack): New.
8934 (init_lex): Initialize it. No longer call...
8935 (grow_token_buffer): this. Remove it.
8936 Adjust all the places which used it to use the obstack.
8937
8938 2001-01-19 Akim Demaille <akim@epita.fr>
8939
8940 * src/lex.h: Rename all the tokens:
8941 s/\bENDFILE\b/tok_eof/g;
8942 s/\bIDENTIFIER\b/tok_identifier/g;
8943 etc.
8944 Let them be enums, not #define, to ease debugging.
8945 Adjust all the code.
8946
8947 2001-01-18 Akim Demaille <akim@epita.fr>
8948
8949 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
8950 * src/lex.c (maxtoken, grow_token_buffer): Static.
8951
8952 2001-01-18 Akim Demaille <akim@epita.fr>
8953
8954 Since we now use obstacks, more % directives can be enabled.
8955
8956 * src/lex.c (percent_table): Also accept `%yacc',
8957 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
8958 `%debug'.
8959 Handle the actions for `%semantic_parser' and `%pure_parser' here,
8960 instead of returning a token.
8961 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
8962 * src/reader.c (read_declarations): Adjust.
8963 * src/files.c (open_files): Don't call `compute_base_names', don't
8964 compute `attrsfile' since they depend upon data which might be
8965 *in* the input file now.
8966 (output_files): Do it here.
8967 * src/output.c (output_headers): Document the fact that this patch
8968 introduces a guaranteed SEGV for semantic parsers.
8969 * doc/bison.texinfo: Document them.
8970 * tests/suite.at: Exercise these %options.
8971
8972 2000-12-20 Akim Demaille <akim@epita.fr>
8973
8974 Also handle the output file (--verbose) with obstacks.
8975
8976 * files.c (foutput): Remove.
8977 (output_obstack): New.
8978 Adjust all dependencies.
8979 * src/conflicts.c: Return a string.
8980 * src/system.h (obstack_grow_string): Rename as...
8981 (obstack_sgrow): this. Be ready to work with non literals.
8982 (obstack_fgrow4): New.
8983
8984 2000-12-20 Akim Demaille <akim@epita.fr>
8985
8986 * src/files.c (open_files): Fix the computation of short_base_name
8987 in the case of `-o foo.tab.c'.
8988
8989 2000-12-20 Akim Demaille <akim@epita.fr>
8990
8991 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
8992 (copy_dollar): Now that everything uses obstacks, get rid of the
8993 FILE * parameters.
8994
8995 2000-12-20 Akim Demaille <akim@epita.fr>
8996
8997 * src/files.c (open_files): Actually the `.output' file is based
8998 on the short_base_name, not base_name.
8999 * tests/suite.at (Checking output file names): Adjust.
9000
9001 2000-12-20 Akim Demaille <akim@epita.fr>
9002
9003 * src/bison.s1: Remove, we now use directly...
9004 * src/bison.simple: this.
9005 * src/Makefile.am: Use pkgdata instead of data.
9006
9007 2000-12-20 Akim Demaille <akim@epita.fr>
9008
9009 * src/files.c (guard_obstack): New.
9010 (open_files): Initialize it.
9011 (output_files): Dump it...
9012 * src/files.h: Export it.
9013 * src/reader.c (copy_guard): Use it.
9014
9015 2000-12-19 Akim Demaille <akim@epita.fr>
9016
9017 * src/files.c (outfile, defsfile, actfile): Removed as global
9018 vars.
9019 (open_files): Don't compute them.
9020 (output_files): Adjust.
9021 (base_name, short_base_name): Be global.
9022 Adjust dependencies.
9023
9024 2000-12-19 Akim Demaille <akim@epita.fr>
9025
9026 * src/files.c (strsuffix): New.
9027 (stringappend): Be just like strcat but allocate.
9028 (base_names): Eve out from open_files.
9029 Try to simplify the rather hairy computation of base_name and
9030 short_base_name.
9031 (open_files): Use it.
9032 * tests/suite.at (Checking output file names): New test.
9033
9034 2000-12-19 Akim Demaille <akim@epita.fr>
9035
9036 * src/system.h (obstack_grow_literal_string): Rename as...
9037 (obstack_grow_string): this.
9038 * src/output.c (output_parser): Recognize `%% actions' instead of
9039 `$'.
9040 * src/bison.s1: s/$/%% actions/.
9041 * src/bison.hairy: Likewise.
9042
9043 2000-12-19 Akim Demaille <akim@epita.fr>
9044
9045 * src/output.c (output_parser): Compute the `#line' lines when
9046 there are.
9047 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9048 Suggested by Hans Aberg.
9049
9050 2000-12-19 Akim Demaille <akim@epita.fr>
9051
9052 Let the handling of the skeleton files be local to the procedures
9053 that use it.
9054
9055 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9056 longer static.
9057 (fparser, open_extra_files): Remove.
9058 (open_files, output_files): Don't take care of fparser.
9059 * src/files.h: Adjust.
9060 * src/output.c (output_parser): Open and close the file to the
9061 skeleton.
9062 * src/reader.c (read_declarations): When %semantic_parser, open
9063 fguard.
9064
9065 2000-12-19 Akim Demaille <akim@epita.fr>
9066
9067 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9068 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9069
9070 2000-12-19 Akim Demaille <akim@epita.fr>
9071
9072 * src/files.c (open_files): Yipee! We no longer need all the code
9073 looking for `/tmp' since we have no tmp file.
9074
9075 2000-12-19 Akim Demaille <akim@epita.fr>
9076
9077 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9078 New macros.
9079 * src/files.c (open_files): Less dependency on MSDOS etc.
9080
9081 2000-12-14 Akim Demaille <akim@epita.fr>
9082
9083 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9084 Provide a default definition.
9085 Use it when executing the default @ action.
9086 * src/reader.c (reader_output_yylsp): No longer include
9087 `timestamp' and `text' in the default YYLTYPE.
9088
9089 2000-12-12 Akim Demaille <akim@epita.fr>
9090
9091 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9092 (copy_guard): Quote the file names.
9093 Reported by Laurent Mascherpa.
9094
9095 2000-12-12 Akim Demaille <akim@epita.fr>
9096
9097 * src/output.c (output_headers, output_program, output): Be sure
9098 to escape special characters when outputting filenames.
9099 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9100 (output_headers): Don't depend on them, Use ACTSTR.
9101
9102 2000-11-17 Akim Demaille <akim@epita.fr>
9103
9104 * lib/obstack.h: Formatting changes.
9105 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9106 prevents type checking.
9107 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9108 cast the value to (void *): assigning a `foo *' to a `void *'
9109 variable is valid.
9110 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9111 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9112 append characters.
9113
9114 2000-11-17 Akim Demaille <akim@epita.fr>
9115
9116 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9117 as...
9118 (suite.m4, regression.m4, calc.m4): these.
9119 * tests/atgeneral.m4: Update from CVS Autoconf.
9120
9121 2000-11-17 Akim Demaille <akim@epita.fr>
9122
9123 * tests/regression.m4 (%union and --defines): New test,
9124 demonstrating a current bug in the obstack implementation.
9125
9126 2000-11-17 Akim Demaille <akim@epita.fr>
9127
9128 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9129 macros.
9130 Use them to declare the variables which are global or local to
9131 `yyparse'.
9132
9133 2000-11-17 Akim Demaille <akim@epita.fr>
9134
9135 * acconfig.h: Remove, no longer used.
9136
9137 2000-11-07 Akim Demaille <akim@epita.fr>
9138
9139 * src: s/Copyright (C)/Copyright/g.
9140
9141 2000-11-07 Akim Demaille <akim@epita.fr>
9142
9143 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9144 defining.
9145 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9146
9147 2000-11-07 Akim Demaille <akim@epita.fr>
9148
9149 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9150 Merge in a single CPP if/else.
9151
9152 2000-11-07 Akim Demaille <akim@epita.fr>
9153
9154 * src/output.c (output): Remove useless variables.
9155 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9156 argument `data' for consistency with the prototypes.
9157 Qualify it `const'.
9158 (obstack_copy, obstack_copy0): Rename the second argument as
9159 `address' for consistency. Qualify it `const'.
9160 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9161 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9162 `const' their input argument (`data' or `address').
9163 Adjust the corresponding macros to include `const' in casts.
9164
9165 2000-11-03 Akim Demaille <akim@epita.fr>
9166
9167 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9168 s/PFILE1/BISON_HAIRY/.
9169 Adjust dependencies.
9170
9171 2000-11-03 Akim Demaille <akim@epita.fr>
9172
9173 For some reason, this was not applied.
9174
9175 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9176 `unlink': it's no longer used.
9177
9178 2000-11-03 Akim Demaille <akim@epita.fr>
9179
9180 * src/files.c (skeleton_find): New function, eved out of...
9181 (open_files, open_extra_files): here.
9182
9183 2000-11-03 Akim Demaille <akim@epita.fr>
9184
9185 Don't use `atexit'.
9186
9187 * src/files.c (obstack_save): New function.
9188 (done): Rename as...
9189 (output_files): this.
9190 Use `obstack_save'.
9191 * src/main.c (main): Don't use `atexit' to register `done', since
9192 it no longer has to remove tmp files, just call `output_files'
9193 when there are no errors.
9194
9195 2000-11-02 Akim Demaille <akim@epita.fr>
9196
9197 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9198 `unlink': it's no longer used.
9199 * src/files.h: Formatting changes.
9200
9201 2000-11-02 Akim Demaille <akim@epita.fr>
9202
9203 Remove the last uses of mktemp and unlink/delete.
9204
9205 * src/files.c (fdefines, ftable): Removed.
9206 (defines_ostack, table_obstack): New.
9207 Adjust dependencies of the former into uses of the latter.
9208 * src/output.c (output_short_or_char_table, output_short_table):
9209 Convert to using obstacks.
9210 * src/reader.c (copy_comment2): Accept one FILE * and two
9211 obstacks.
9212 (output_token_defines, reader_output_yylsp): Use obstacks.
9213 * src/system.h (obstack_fgrow3): New.
9214
9215 2000-11-01 Akim Demaille <akim@epita.fr>
9216
9217 Change each use of `fattrs' into a use of `attrs_obstack'.
9218
9219 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9220 * src/files.c (fattrs): Remove.
9221 (attrs_obstack): New.
9222 Adjust all dependencies.
9223 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9224
9225 2000-11-01 Akim Demaille <akim@epita.fr>
9226
9227 Introduce obstacks.
9228 Change each use of `faction' into a use of `action_obstack'.
9229
9230 * lib/obstack.h, lib/obstack.c: New files.
9231 * src/files.c (faction): Remove.
9232 (action_obstack): New.
9233 Adjust all dependencies.
9234
9235 2000-10-20 Akim Demaille <akim@epita.fr>
9236
9237 * lib/quote.h (PARAMS): New macro. Use it.
9238
9239 2000-10-16 Akim Demaille <akim@epita.fr>
9240
9241 * src/output.c (output_short_or_char_table): New function.
9242 (output_short_table, output_token_translations): Use it.
9243 (goto_actions): Use output_short_table.
9244
9245 2000-10-16 Akim Demaille <akim@epita.fr>
9246
9247 * src/symtab.c (bucket_new): New function.
9248 (getsym): Use it.
9249
9250 * src/output.c (output_short_table): New argument to display the
9251 comment associated with the table.
9252 Adjust dependencies.
9253 (output_gram): Use it.
9254 (output_rule_data): Nicer output layout for YYTNAME.
9255
9256 2000-10-16 Akim Demaille <akim@epita.fr>
9257
9258 * src/lex.c (read_typename): New function.
9259 (lex): Use it.
9260 * src/reader.c (copy_dollar): Likewise.
9261
9262 2000-10-16 Akim Demaille <akim@epita.fr>
9263
9264 * src/reader.c (copy_comment2): Expect the input stream to be on
9265 the `/' which is suspected to open a comment, instead of being
9266 called after `//' or `/*' was read.
9267 (copy_comment, copy_definition, parse_union_decl, copy_action)
9268 (copy_guard): Adjust.
9269
9270 2000-10-16 Akim Demaille <akim@epita.fr>
9271
9272 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9273 `read_signed_integer'.
9274
9275 2000-10-16 Akim Demaille <akim@epita.fr>
9276
9277 * src/reader.c (copy_dollar): New function.
9278 (copy_guard, copy_action): Use it.
9279
9280 2000-10-16 Akim Demaille <akim@epita.fr>
9281
9282 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9283 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9284 New files, from Fileutils 4.0.27.
9285 * src/main.c (printable_version): Remove.
9286 * src/lex.c, src/reader.c: Use `quote'.
9287
9288 2000-10-04 Akim Demaille <akim@epita.fr>
9289
9290 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9291
9292 2000-10-04 Akim Demaille <akim@epita.fr>
9293
9294 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9295
9296 2000-10-04 Akim Demaille <akim@epita.fr>
9297
9298 When a literal string is used to define two different tokens,
9299 `bison -v' segfaults.
9300 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9301
9302 * tests/regression.m4: New file.
9303 Include the core of the sample provided by Piotr Gackiewicz.
9304 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9305 properly.
9306
9307 2000-10-04 Akim Demaille <akim@epita.fr>
9308
9309 * src/reader.c (parse_expect_decl): Keep `count' within the size
9310 of `buffer'.
9311 From Neil Booth.
9312
9313 2000-10-02 Paul Eggert <eggert@twinsun.com>
9314
9315 * bison.s1 (yyparse): Assign the default value
9316 unconditionally, to avoid a GCC warning and make the parser a
9317 tad smaller.
9318
9319 2000-10-02 Akim Demaille <akim@epita.fr>
9320
9321 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9322 options.
9323
9324 2000-10-02 Akim Demaille <akim@epita.fr>
9325
9326 * src/derives.c, src/print.c, src/reduce.c: To ease the
9327 translation, move some `\n' out of the translated strings.
9328
9329 2000-10-02 Akim Demaille <akim@epita.fr>
9330
9331 The location tracking mechanism is precious for parse error
9332 messages. Nevertheless, it is enabled only when `@n' is used in
9333 the grammar, which is a different issue (you can use it in error
9334 message, but not in the grammar per se). Therefore, there should
9335 be another means to enable it.
9336
9337 * src/getargs.c (getargs): Support `--locations'.
9338 (usage): Report it.
9339 * src/getargs.h (locationsflag): Export it.
9340 * src/lex.c (percent_table): Support `%locations'.
9341 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9342 with `locationsflag'.
9343 * doc/bison.texinfo: Document `--locations' and `%locations'.
9344 Sort the options.
9345 * tests/calc.m4: Test it.
9346
9347 For regularity of the names, replace each
9348 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9349 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9350 In addition replace each `flag' with `_flag'.
9351
9352 2000-10-02 Akim Demaille <akim@epita.fr>
9353
9354 Also test parse error messages, including with YYERROR_VERBOSE.
9355
9356 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9357 associative).
9358 Use it to check the computations.
9359 Use it to check `nonassoc' is honored.
9360 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9361 `--yyerror-verbose'.
9362 (_AT_CHECK_CALC): Adjust to this option.
9363 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9364
9365 2000-10-02 Akim Demaille <akim@epita.fr>
9366
9367 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9368 the latter demonstrates a flaw in the handling of non debugging
9369 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9370 was used in order to simplify:
9371
9372 #if YYDEBUG
9373 if (yydebug)
9374 {
9375 ...
9376 }
9377 #endif
9378
9379 into
9380
9381 if (yydebug)
9382 {
9383 ...
9384 }
9385
9386 unfortunately this leads to a CPP conflict when
9387 `--name-prefix=foo' is used since it produces `#define yydebug
9388 foodebug'.
9389
9390 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9391 (YYDPRINTF): New macro.
9392 Spread its use.
9393 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9394 the bison options.
9395 Also test `--verbose', `--defines' and `--name-prefix'.
9396
9397 2000-10-02 Akim Demaille <akim@epita.fr>
9398
9399 Improve the readability of the produced parsers.
9400
9401 * src/bison.s1: Formatting changes.
9402 Improve the comment related to the `$' mark.
9403 (yydefault): Don't fall through to `yyresume': `goto' there.
9404 * src/output.c (output_parser): When the `$' is met, skip the end
9405 of its line.
9406 New variable, `number_of_dollar_signs', to check there's exactly
9407 one `$' in the parser skeleton.
9408
9409 2000-10-02 Akim Demaille <akim@epita.fr>
9410
9411 * lib/xstrdup.c: New file, from the fileutils.
9412 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9413 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9414 instead of strlen + xmalloc + strcpy.
9415 * src/symtab.c (copys): Remove, use xstrdup instead.
9416
9417 2000-10-02 Akim Demaille <akim@epita.fr>
9418
9419 * src/gram.h (associativity): New enum type which replaces the
9420 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9421 `right_assoc', `left_assoc' and `non_assoc'.
9422 Adjust all dependencies.
9423 * src/reader.c: Formatting changes.
9424 (LTYPESTR): Don't define it, use it as a literal in
9425 `reader_output_yylsp'.
9426 * src/symtab.h (symbol_class): New enum type which replaces the
9427 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9428 `sunknown', `stoken and `snterm'.
9429
9430 2000-10-02 Akim Demaille <akim@epita.fr>
9431
9432 * src/getargs.c (fixed_outfiles): Rename as...
9433 (yaccflag): for consistency and accuracy.
9434 Adjust dependencies.
9435
9436 2000-10-02 Akim Demaille <akim@epita.fr>
9437
9438 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9439 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9440 difficult and introduced a lot of core dump. It turns out that
9441 Bison used an implementation of `xmalloc' based on `calloc', and
9442 at various places it does depend upon the initialization to 0. I
9443 have not tried to isolate the pertinent places, and all the former
9444 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9445 someone should address this issue.
9446
9447 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9448 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9449 files.
9450 Adjust dependencies.
9451 * src/warshall.h: New file.
9452 Propagate.
9453
9454 2000-10-02 Akim Demaille <akim@epita.fr>
9455
9456 Various anti-`extern in *.c' changes.
9457
9458 * src/system.h: Include `assert.h'.
9459
9460 2000-10-02 Akim Demaille <akim@epita.fr>
9461
9462 * src/state.h (nstates, final_state, first_state, first_shift)
9463 (first_reduction): Move their exportation from here...
9464 * src/LR0.h: to here.
9465 Adjust dependencies.
9466 * src/getargs.c (statisticsflag): New variable.
9467 Add support for `--statistics'.
9468 Adjust dependencies.
9469
9470 Remove a lot of now useless `extern' statements in most files.
9471
9472 2000-10-02 Akim Demaille <akim@epita.fr>
9473
9474 * src/LR0.h: New file.
9475 Propagate its use.
9476
9477 2000-10-02 Akim Demaille <akim@epita.fr>
9478
9479 * src/print.h: New file.
9480 Propagate its use.
9481 * src/print.c: Formatting and ordering changes.
9482 (verbose, terse): Replace with...
9483 (print_results): this new function.
9484 Adjust dependencies.
9485
9486 2000-10-02 Akim Demaille <akim@epita.fr>
9487
9488 * src/conflicts.c (conflict_report): New function.
9489 (conflict_log, verbose_conflict_log): Replace with...
9490 (print_conflicts): this function.
9491 Adjust dependencies.
9492 * src/conflicts.h: New file.
9493 Propagate its inclusion.
9494
9495 2000-10-02 Akim Demaille <akim@epita.fr>
9496
9497 * src/nullable.h: New file.
9498 Propagate its inclusion.
9499 * src/nullable.c: Formatting changes.
9500
9501 2000-10-02 Akim Demaille <akim@epita.fr>
9502
9503 * src/reduce.h: New file.
9504 Propagate its inclusion.
9505 * src/reduce.c: Topological sort and other formatting changes.
9506 (bool, TRUE, FALSE): Move their definition to...
9507 * src/system.h: here.
9508
9509 2000-10-02 Akim Demaille <akim@epita.fr>
9510
9511 * src/files.c: Formatting changes.
9512 (tryopen, tryclose, openfiles): Rename as...
9513 (xfopen, xfclose, open_files): this.
9514 (stringappend): static.
9515 * src/files.h: Complete the list of exported symbols.
9516 Propagate its use.
9517
9518 2000-10-02 Akim Demaille <akim@epita.fr>
9519
9520 * src/reader.h: New file.
9521 Propagate its use instead of tedious list of `extern' and
9522 prototypes.
9523 * src/reader.c: Formatting changes, topological sort,
9524 s/register//.
9525
9526 2000-10-02 Akim Demaille <akim@epita.fr>
9527
9528 * src/lex.h: Prototype `lex.c' exported functions.
9529 * src/reader.c: Adjust.
9530 * src/lex.c: Formatting changes.
9531 (safegetc): Rename as...
9532 (xgetc): this.
9533
9534 2000-10-02 Akim Demaille <akim@epita.fr>
9535
9536 * src/lalr.h: New file.
9537 Propagate its inclusion instead of prototypes and `extern'.
9538 * src/lalr.c: Formatting changes, topological sorting etc.
9539
9540 2000-10-02 Akim Demaille <akim@epita.fr>
9541
9542 * src/output.c (token_actions): Introduce a temporary array,
9543 YYDEFACT, that makes it possible for this function to use
9544 output_short_table.
9545
9546 2000-10-02 Akim Demaille <akim@epita.fr>
9547
9548 `user_toknums' is output as a `short[]' in `output.c', while it is
9549 defined as a `int[]' in `reader.c'. For consistency with the
9550 other output tables, `user_toknums' is now defined as a table of
9551 shorts.
9552
9553 * src/reader.c (user_toknums): Be a short table instead of an int
9554 table.
9555 Adjust dependencies.
9556
9557 Factor the short table outputs.
9558
9559 * src/output.c (output_short_table): New function.
9560 * src/output.c (output_gram, output_stos, output_rule_data)
9561 (output_base, output_table, output_check): Use it.
9562
9563 2000-10-02 Akim Demaille <akim@epita.fr>
9564
9565 * src/output.c (output): Topological sort of the functions, in
9566 order to get rid of the `static' prototypes.
9567 No longer use `register'.
9568 * src/output.h: New file.
9569 Propagate its inclusion in files explicitly prototyping functions
9570 from output.c.
9571
9572 2000-09-21 Akim Demaille <akim@epita.fr>
9573
9574 * src/atgeneral.m4: Update from Autoconf.
9575
9576 2000-09-21 Akim Demaille <akim@epita.fr>
9577
9578 * src/closure.h: New file.
9579 * src/closure.c: Formatting changes, topological sort over the
9580 functions, use of closure.h.
9581 (initialize_closure, finalize_closure): Rename as...
9582 (new_closure, free_closure): these. Adjust dependencies.
9583 * src/LR0.c: Formatting changes, topological sort, use of
9584 cloture.h.
9585 (initialize_states): Rename as...
9586 (new_states): this.
9587 * src/Makefile.am (noinst_HEADERS): Adjust.
9588
9589 2000-09-20 Akim Demaille <akim@epita.fr>
9590
9591 * src/acconfig.h: Don't protect config.h against multiple
9592 inclusion.
9593 Don't define PARAMS.
9594 * src/system.h: Define PARAMS.
9595 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9596 purpose of config.h. system.h must not try to fix wrong
9597 definitions in config.h.
9598
9599 2000-09-20 Akim Demaille <akim@epita.fr>
9600
9601 * src/derives.h: New file.
9602 * src/main.c, src/derives.h: Use it.
9603 Formatting changes.
9604 * src/Makefile.am (noinst_HEADERS): Adjust.
9605
9606 2000-09-20 Akim Demaille <akim@epita.fr>
9607
9608 * tests/atgeneral.m4: Update from Autoconf.
9609 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9610 (AT_CHECK_CALC): New macros.
9611 Use these macros to test bison with options `', `--raw',
9612 `--debug', `--yacc', `--yacc --debug'.
9613
9614 2000-09-19 Akim Demaille <akim@epita.fr>
9615
9616 * src/output.c: Formatting changes.
9617 * src/machine.h: Remove, leaving its contents in...
9618 * src/system.h: here.
9619 Include stdio.h.
9620 Adjust all dependencies on stdio.h and machine.h.
9621 * src/getargs.h: New file.
9622 Let all `extern' declarations about getargs.c be replaced with
9623 inclusion of `getargs.h'.
9624 * src/Makefile.am (noinst_HEADERS): Adjust.
9625
9626 * tests/calc.m4 (yyin): Be initialized in main, not on the global
9627 scope.
9628 (yyerror): Returns void, not int.
9629 * doc/bison.texinfo: Formatting changes.
9630
9631 2000-09-19 Akim Demaille <akim@epita.fr>
9632
9633 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
9634 portable.
9635
9636 2000-09-18 Akim Demaille <akim@epita.fr>
9637
9638 * configure.in: Append WARNING_CFLAGS to CFLAGS.
9639 * src/Makefile.am (INCLUDES): Don't.
9640 Be ready to fetch headers in lib/.
9641
9642 2000-09-18 Akim Demaille <akim@epita.fr>
9643
9644 * doc/bison.texinfo: Update the copyright.
9645 ANSIfy and GNUify the examples.
9646 Remove the old menu.
9647
9648 2000-09-18 Akim Demaille <akim@epita.fr>
9649
9650 First set of tests: use the `calc' example from the documentation.
9651
9652 * src/bison.s1 (yyparse): Condition the code using `yytname' which
9653 is defined only when YYDEBUG is.
9654 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
9655 * src/files.c (tryopen, tryclose): Formatting changes.
9656 Move to the top and be static.
9657 * src/reader.c (read_signed_integer): Likewise.
9658 * tests/calc.m4: New file.
9659 * Makefile.am, suite.m4: Adjust.
9660 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
9661
9662 2000-09-18 Akim Demaille <akim@epita.fr>
9663
9664 Add support for an Autotest test suite for Bison.
9665
9666 * m4/m4.m4, m4/atconfig.m4: New files.
9667 * m4/Makefile.am (EXTRA_DIST): Adjust.
9668 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
9669 files.
9670 * src/getargs.c: Display a more standard --version message.
9671 * src/reader.c (reader): Formatting changes.
9672 No longer depend upon VERSION_STRING.
9673 * configure.in: No longer use `dnl'.
9674 Set up the test suite and the new directory `tests/.
9675 (VERSION_STRING): Remove.
9676
9677 2000-04-14 Akim Demaille <akim@epita.fr>
9678
9679 * src/reader.c (copy_comment2): New function, same as former
9680 `copy_comment', but outputs into two FILE *.
9681 (copy_comment): Use it.
9682 (parse_union_decl): Use it.
9683 (get_type, parse_start_decl): Use the same `invalid' message.
9684 (parse_start_decl, parse_union_decl): Use the same `multiple'
9685 message.
9686 (parse_union_decl, copy_guard, copy_action): Use the same
9687 `unmatched' message.
9688 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
9689
9690 2000-03-31 Akim Demaille <akim@epita.fr>
9691
9692 * src/files.c (tryopen, tryclose): Move to the top.
9693 Be static.
9694
9695 2000-03-31 Akim Demaille <akim@epita.fr>
9696
9697 * src/main.c (main): Don't call `done', exit does it.
9698
9699 2000-03-31 Akim Demaille <akim@epita.fr>
9700
9701 * allocate.c: s/return (foo)/return foo/.
9702 * lalr.c: Likewise.
9703 * LR0.c: Likewise.
9704 * output.c: Likewise.
9705 * reader.c: Likewise.
9706 * symtab.c: Likewise.
9707 * vmsgetargs.c: Likewise.
9708
9709 2000-03-31 Akim Demaille <akim@epita.fr>
9710
9711 Clean up the error reporting functions.
9712
9713 * src/report.c: New file.
9714 * src/report.h: Likewise.
9715 * src/Makefile.am: Adjust.
9716 * m4/error.m4: New file.
9717 * m4/Makefile.am: Adjust.
9718 * configure.in (jm_PREREQ_ERROR): Call it.
9719 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
9720 Remove.
9721 (fatal, fatals): Remove. All callers use complain.c::fatal.
9722 (warn, warni, warns, warnss, warnss): Remove. All callers use
9723 complain.c::complain.
9724 (toomany): Remove, use fatal instead.
9725 * src/files.c (done): No argument, use complain_message_count.
9726 * src/main.c (main): Register `done' to `atexit'.
9727
9728 * src/getargs.c (usage): More `fputs', less `fprintf'.
9729
9730 2000-03-28 Akim Demaille <akim@epita.fr>
9731
9732 * lib/: New directory.
9733 * Makefile.am (SUBDIRS): Adjust.
9734 * configure.in: Adjust.
9735 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
9736 useless.
9737 * src/alloca.c: Moved to lib/.
9738 * src/getopt.c: Likewise.
9739 * src/getopt1.c: Likewise.
9740 * src/getopt.h: Likewise.
9741 * src/ansi2knr.c: Likewise.
9742 * src/ansi2knr.1: Likewise.
9743 * src/Makefile.am: Adjust.
9744 * lib/Makefile.am: New file.
9745
9746 2000-03-28 Akim Demaille <akim@epita.fr>
9747
9748 * src/getargs.c (usage): Refresh the help message.
9749
9750 2000-03-17 Akim Demaille <akim@epita.fr>
9751
9752 * src/getopt1.c: Updated from textutils 2.0e
9753 * src/getopt.c: Likewise.
9754 * src/getopt.h: Likewise.
9755
9756 2000-03-17 Akim Demaille <akim@epita.fr>
9757
9758 * src/Makefile.am (bison.simple): Fix the awk program: quote only
9759 the file name, not the whole `#line LINE FILE'.
9760
9761 2000-03-17 Akim Demaille <akim@epita.fr>
9762
9763 On syntax errors, report the token on which we choked.
9764
9765 * src/bison.s1 (yyparse): In the label yyerrlab, when
9766 YYERROR_VERBOSE, add yychar in msg.
9767
9768 2000-03-17 Akim Demaille <akim@epita.fr>
9769
9770 * src/reader.c (copy_at): New function.
9771 (copy_guard): Use it.
9772 (copy_action): Use it.
9773
9774 2000-03-17 Akim Demaille <akim@epita.fr>
9775
9776 Be kind to translators, save some useless translations.
9777
9778 * src/main.c (banner): New function.
9779 (fatal_banner): Use it.
9780 (warn_banner): Use it.
9781
9782 2000-03-17 Akim Demaille <akim@epita.fr>
9783
9784 * src/reader.c (copy_definition): Use copy_string and
9785 copy_comment. Removed now unused `match', `ended',
9786 `cplus_comment'.
9787 (copy_comment, copy_string): Moved, to be visible from
9788 copy_definition.
9789
9790 2000-03-17 Akim Demaille <akim@epita.fr>
9791
9792 * src/reader.c (copy_string): Declare `static inline'. No
9793 problems with inline, since it is checked by configure.
9794 (copy_comment): Likewise.
9795
9796 2000-03-17 Akim Demaille <akim@epita.fr>
9797
9798 * src/reader.c (packsymbols): Formatting changes.
9799
9800 2000-03-17 Akim Demaille <akim@epita.fr>
9801
9802 * src/reader.c (copy_comment): New function, factored out from:
9803 (copy_action): Use it. Removed now unused `match', `ended',
9804 `cplus_comment'.
9805 (copy_guard): Likewise.
9806
9807 2000-03-17 Akim Demaille <akim@epita.fr>
9808
9809 * src/reader.c (copy_string): New function, factored out from:
9810 (copy_action): Use it.
9811 (copy_guard): Likewise.
9812
9813 2000-03-17 Akim Demaille <akim@epita.fr>
9814
9815 Change the handling of @s so that they behave exactly like $s.
9816 There is now a pseudo variable @$ (readble and writable), location
9817 of the lhs of the rule (by default ranging from the location of
9818 the first symbol of the rhs, to the location of the last symbol,
9819 or, if the rhs is empty, YYLLOC).
9820
9821 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
9822 yyval.
9823 (yyparse): When providing a default semantic action, provide a
9824 default location action.
9825 (after the $): No longer change `*YYLSP', just stack YYLOC the
9826 same way you stack YYVAL.
9827 * src/reader.c (read_declarations): Use warns.
9828 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
9829 (copy_action, case '@'): Likewise.
9830 Use a standard error message, to save useless work from
9831 translators.
9832
9833 2000-03-17 Akim Demaille <akim@epita.fr>
9834
9835 * src/bison.s1: Formatting and cosmetics changes.
9836 * src/reader.c: Likewise.
9837 Update the Copyright notice.
9838
9839 2000-03-17 Akim Demaille <akim@epita.fr>
9840
9841 * src/bison.s1 (#line): All set to `#line' only, since the
9842 Makefile now handles them.
9843
9844 2000-03-16 Akim Demaille <akim@epita.fr>
9845
9846 * src/output.c (output_rule_data): Output the documentation of
9847 some of the tables.
9848 (Copyright notice): Update.
9849 Formatting changes.
9850
9851 2000-03-16 Akim Demaille <akim@epita.fr>
9852
9853 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
9854 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
9855 One `#if YYDEBUG' remains, since it uses variables which are
9856 defined only if `YYDEBUG != 0'.
9857
9858 2000-03-16 Akim Demaille <akim@epita.fr>
9859
9860 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
9861 and related variables so that the similarities are highlighted.
9862
9863 2000-03-16 Akim Demaille <akim@epita.fr>
9864
9865 * src/bison.s1: Properly indent CPP directives.
9866
9867 2000-03-16 Akim Demaille <akim@epita.fr>
9868
9869 * src/bison.s1: Properly indent the `alloca' CPP section.
9870
9871 2000-03-16 Akim Demaille <akim@epita.fr>
9872
9873 Do not hard code values of directories in `configure.in'.
9874 Update the `configure' tool chain.
9875
9876 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
9877 src/makefile.am.
9878 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
9879 (AC_OUTPUT): Add m4/Makefile.
9880 Bump to bison 1.28a, 1.29 has never been released.
9881 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
9882 handled via src/Makefile.am.
9883 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
9884 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
9885 autoheader.
9886 * Makefile.am (SUBDIRS): Add m4.
9887 (ACLOCAL_AM_FLAGS): New variable.
9888 (AUTOMAKE_OPTIONS): Add check-news.
9889 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
9890 the proper line number and file name.
9891 (DEFS): Propagate the location of bison library files and of the
9892 locale files.
9893 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
9894 builddir.
9895 * acinclude.m4: Remove, replaced by the directory m4.
9896 * m4/Makefile.am (EXTRA_DIST): New variable.
9897 * m4/gettext.m4: New file, from the fileutils.
9898 * m4/lcmessage.m4: Likewise
9899 * m4/progtest.m4: Likewise.
9900 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
9901
9902 2000-03-10 Akim Demaille <akim@epita.fr>
9903
9904 * src/closure.c:
9905 Formatting changes of various comments.
9906 Respect the GNU coding standards at various places.
9907 Don't use `_()' when no translation is needed.
9908
9909 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9910
9911 * src/files.c:
9912 OS/2 honors TMPDIR environment variable.
9913
9914 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9915
9916 * doc/bison.texinfo: Tweaked spelling and grammar.
9917 Updated ISBN.
9918 Removed reference to price of printed copy.
9919 Mention BISON_SIMPLE and BISON_HAIRY.
9920
9921 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9922
9923 * configure.in, NEWS:
9924 Bison 1.29 released.
9925
9926 1999-10-27 Jesse Thilo <jthilo@gnu.org>
9927
9928 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
9929 Added reference card.
9930
9931 1999-07-26 Jesse Thilo <jthilo@gnu.org>
9932
9933 * po/ru.po: Added Russian translation.
9934
9935 1999-07-26 Jesse Thilo <jthilo@gnu.org>
9936
9937 * configure.in: Added Russian translation.
9938
9939 1999-07-06 Jesse Thilo <jthilo@gnu.org>
9940
9941 * configure.in, NEWS, README:
9942 Released version 1.28.
9943
9944 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9945
9946 * src/system.h:
9947 Squashed redefinition warning on some systems.
9948
9949 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
9950 Have configure build version string instead of relying on ANSI string
9951 concatentation.
9952
9953 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9954
9955 * po/POTFILES.in: Got rid of version.c.
9956
9957 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9958
9959 * acconfig.h, configure.in:
9960 Have configure build version string instead of relying on ANSI string
9961 concatentation.
9962
9963 1999-06-08 Jesse Thilo <jthilo@gnu.org>
9964
9965 * doc/bison.1:
9966 Dropped mention of `+' for long-named options.
9967
9968 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9969
9970 * src/files.c: Added <unistd.h> for unlink().
9971
9972 * src/Makefile.am, src/system.h:
9973 I18n fixes.
9974
9975 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9976
9977 * README: Added a FAQ list.
9978
9979 * configure.in, acconfig.h:
9980 I18n fixes.
9981
9982 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9983
9984 * doc/FAQ, doc/Makefile.am:
9985 Added a FAQ list.
9986
9987 1999-05-19 Jesse Thilo <jthilo@gnu.org>
9988
9989 * src/alloc.h, src/symtab.h, src/version.c:
9990 Protected inclusion of "config.h" with HAVE_CONFIG_H.
9991
9992 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9993
9994 * src/.cvsignore, src/Makefile.am:
9995 Reorganized: sources in `src', documentation in `doc'.
9996
9997 * src/lex.c (literalchar):
9998 fixed the code for escaping double quotes (thanks
9999 Jonathan Czisny.)
10000
10001 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10002
10003 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10004 Adjusted paths to reflect directory reorganization.
10005
10006 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10007
10008 * doc/.cvsignore, doc/Makefile.am:
10009 Reorganized: sources in `src', documentation in `doc'.
10010
10011 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10012
10013 * configure.in:
10014 Updated AC_INIT file to reflect directory reorganization.
10015
10016 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10017 Reorganized: sources in `src', documentation in `doc'.
10018
10019 1999-04-13 Jesse Thilo <jthilo@gnu.org>
10020
10021 * src/allocate.c:
10022 Don't declare calloc() and realloc() if not necessary.
10023
10024 1999-04-13 Jesse Thilo <jthilo@gnu.org>
10025
10026 * configure.in, acconfig.h, acinclude.m4:
10027 Don't declare calloc() and realloc() if not necessary.
10028
10029 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10030
10031 * po/.cvsignore: Added i18n support.
10032
10033 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10034
10035 * acconfig.h, configure.in, Makefile.am:
10036 Added i18n support.
10037
10038 1999-03-22 Jesse Thilo <jthilo@gnu.org>
10039
10040 * src/bison.s1: Fixed #line numbers.
10041
10042 1999-03-15 Jesse Thilo <jthilo@gnu.org>
10043
10044 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10045 Added PO files from Translation Project.
10046
10047 1999-03-03 Jesse Thilo <jthilo@gnu.org>
10048
10049 * Makefile.am:
10050 Added support for non-ANSI compilers (ansi2knr).
10051
10052 1999-02-16 Jesse Thilo <jthilo@gnu.org>
10053
10054 * configure.in: Bumped version number to 1.27.
10055
10056 * Makefile.am:
10057 Added `bison.simple' to list of files removed by `make distclean'.
10058
10059 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10060
10061 * src/files.c, src/files.h:
10062 Defined locations of parser files in config.h instead of Makefile.
10063
10064 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10065
10066 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10067 Defined locations of parser files in config.h instead of Makefile.
10068
10069 1999-02-09 Jesse Thilo <jthilo@gnu.org>
10070
10071 * Makefile.am:
10072 Removed inappropriate use of $< macro.
10073
10074 1999-02-05 Jesse Thilo <jthilo@gnu.org>
10075
10076 * po/Makefile.in.in, po/POTFILES.in:
10077 Add `po' directory skeleton.
10078
10079 1999-01-27 Jesse Thilo <jthilo@gnu.org>
10080
10081 * README: Document help-bison list.
10082
10083 * configure.in: Add check for mkstemp().
10084
10085 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10086
10087 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10088 Hush a few compiler warnings.
10089
10090 * src/files.c:
10091 Add tryclose(), which verifies that fclose was successful.
10092 Hush a couple of compiler warnings.
10093
10094 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10095
10096 * Makefile.am, OChangeLog:
10097 ChangeLog is now automatically generated. Include the old version as
10098 OChangeLog.
10099
10100 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10101
10102 * 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:
10103 Update FSF address.
10104
10105 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10106
10107 * doc/bison.texinfo: Fix formatting glitch.
10108
10109 * doc/bison.texinfo: Update FSF address.
10110
10111 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10112
10113 * acconfig.h: Update FSF address.
10114
10115 1999-01-08 Jesse Thilo <jthilo@gnu.org>
10116
10117 * src/system.h:
10118 Don't define PACKAGE here, since config.h defines it.
10119
10120 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10121
10122 * src/reader.c: Update copyright date.
10123
10124 * src/main.c:
10125 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10126 favor of output directly to stderr (avoids buffer overruns).
10127
10128 * src/reader.c: Some checks for premature EOF.
10129
10130 * 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:
10131 Use prototypes if the compiler understands them.
10132
10133 * src/files.c: Honor TMPDIR on Unix hosts.
10134 Use prototypes if the compiler understands them.
10135
10136 * src/reader.c:
10137 Fix a couple of buffer overrun bugs.
10138 Use prototypes if the compiler understands them.
10139
10140 * src/system.h: Include unistd.h and ctype.h.
10141 Use #ifdef instead of #if for NLS symbols.
10142
10143 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10144
10145 * doc/bison.texinfo:
10146 Delete comment "consider using @set for edition number, etc..." since
10147 we now are doing so.
10148
10149 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10150
10151 * configure.in:
10152 Use prototypes if the compiler understands them.
10153
10154 * NEWS: Document 1.26 highlights.
10155
10156 * Makefile.am: Require Automake 1.3 or later.
10157
10158 * acconfig.h:
10159 Use prototypes if the compiler understands them.
10160
10161 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10162
10163 * src/version.c:
10164 Use VERSION symbol from automake for version number.
10165
10166 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10167
10168 * acconfig.h, configure.in, version.cin:
10169 Use VERSION symbol from automake for version number.
10170
10171 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10172
10173 * Makefile.am:
10174 Distribute original version of simple parser (bison.s1), not built
10175 version (bison.simple).
10176
10177 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10178
10179 * doc/bison.texinfo: Add info dir entry.
10180
10181 * doc/bison.texinfo:
10182 Let automake put version number into documentation.
10183
10184 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10185
10186 * src/bison.cld, src/build.com, src/vmshlp.mar:
10187 Add non-RCS files from /gd/gnu/bison.
10188
10189 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10190
10191 * doc/bison.1:
10192 Document the BISON_HAIRY and BISON_SIMPLE variables.
10193
10194 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10195
10196 * src/version.c: Build version.c automatically.
10197
10198 * src/reader.c:
10199 Fix token numbering (used to start at 258, not 257).
10200
10201 * src/system.h: Include config.h.
10202
10203 * src/getargs.c: Update bug report address.
10204
10205 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10206 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10207
10208 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10209
10210 * Makefile.am:
10211 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10212
10213 * configure.in, version.cin:
10214 Build version.c automatically.
10215
10216 * AUTHORS: Add AUTHORS file.
10217
10218 * README: Update bug report address.
10219
10220 * bison.simple:
10221 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10222
10223 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10224 Add automake stuff.
10225
10226 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10227
10228 * doc/bison.texinfo: Clean up some formatting.
10229
10230 1998-05-05 Richard Stallman <rms@gnu.org>
10231
10232 * doc/bison.texinfo:
10233 Explain better why to make a pure parser.
10234
10235 1998-01-05 Richard Stallman <rms@gnu.org>
10236
10237 * src/files.c (openfiles):
10238 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10239 find a temporary directory, if possible. Do not unlink files while
10240 they are open.
10241
10242 1997-08-25 Richard Stallman <rms@gnu.org>
10243
10244 * src/reader.c (stack_offset;):
10245 Change some warni to warns.
10246
10247 * src/lex.c (literalchar): Use warns, not warni.
10248
10249 1997-06-28 Richard Stallman <rms@gnu.org>
10250
10251 * src/bison.s1: Add a Bison version comment.
10252
10253 * src/main.c (fatal, warn, berror):
10254 Use program_name.
10255
10256 1997-06-28 Richard Stallman <rms@gnu.org>
10257
10258 * Makefile.in (bison_version): New variable.
10259 (dist): Use that variable.
10260 (bison.s1): Substitute the Bison version into bison.simple.
10261
10262 * bison.simple: Add a Bison version comment.
10263
10264 1997-06-18 Richard Stallman <rms@gnu.org>
10265
10266 * src/main.c (fatal, warn, berror):
10267 Make error messages standard.
10268 (toomany): Improve error message text.
10269
10270 * 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:
10271 new.h renamed to alloc.h.
10272
10273 1997-06-18 Richard Stallman <rms@gnu.org>
10274
10275 * Makefile.in: new.h renamed to alloc.h.
10276
10277 1997-05-24 Richard Stallman <rms@gnu.org>
10278
10279 * src/lex.c (literalchar):
10280 Fix the code for escaping \, " and '.
10281
10282 (lex): Avoid trouble when there are many chars
10283 to discard in a char literal with just several chars in it.
10284
10285 1997-05-17 Richard Stallman <rms@gnu.org>
10286
10287 * src/bison.s1:
10288 Use malloc, if using alloca is troublesome.
10289 (YYSTACK_USE_ALLOCA): New flag macro.
10290 Define it for some systems and compilers.
10291 (YYSTACK_ALLOC): New macro.
10292 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10293 If it was malloc'd, free it.
10294
10295 1997-05-17 Richard Stallman <rms@gnu.org>
10296
10297 * bison.simple:
10298 Use malloc, if using alloca is troublesome.
10299 (YYSTACK_USE_ALLOCA): New flag macro.
10300 Define it for some systems and compilers.
10301 (YYSTACK_ALLOC): New macro.
10302 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10303 If it was malloc'd, free it.
10304
10305 1997-04-23 Richard Stallman <rms@gnu.org>
10306
10307 * src/bison.s1:
10308 (alloca) [__hpux]: Always define as __builtin_alloca.
10309
10310 1997-04-23 Richard Stallman <rms@gnu.org>
10311
10312 * bison.simple:
10313 (alloca) [__hpux]: Always define as __builtin_alloca.
10314
10315 1997-04-22 Richard Stallman <rms@gnu.org>
10316
10317 * src/bison.s1:
10318 [__hpux]: Include alloca.h (right for HPUX 10)
10319 instead of declaring alloca (right for HPUX 9).
10320
10321 * src/bison.s1 (__yy_memcpy):
10322 Declare arg `count' as unsigned int.
10323 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10324
10325 1997-04-22 Richard Stallman <rms@gnu.org>
10326
10327 * bison.simple:
10328 [__hpux]: Include alloca.h (right for HPUX 10)
10329 instead of declaring alloca (right for HPUX 9).
10330
10331 * bison.simple (__yy_memcpy):
10332 Declare arg `count' as unsigned int.
10333 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10334
10335 1997-01-03 Richard Stallman <rms@gnu.org>
10336
10337 * src/allocate.c: [__STDC__ or _MSC_VER]:
10338 Declare calloc and realloc to return void *.
10339
10340 1997-01-02 Richard Stallman <rms@gnu.org>
10341
10342 * src/system.h:
10343 [_MSC_VER]: Include stdlib.h and process.h.
10344 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10345
10346 * src/main.c (main): Return FAILURE as a value.
10347 (printable_version): Declare arg as int, not char.
10348
10349 1997-01-02 Richard Stallman <rms@gnu.org>
10350
10351 * Makefile.in (dist):
10352 Explicitly check for symlinks, and copy them.
10353
10354 1996-12-19 Richard Stallman <rms@gnu.org>
10355
10356 * src/files.c:
10357 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10358
10359 1996-12-18 Paul Eggert <eggert@gnu.org>
10360
10361 * src/bison.s1 (yyparse):
10362 If __GNUC__ and YYPARSE_PARAM are both defined,
10363 declare yyparse to have a void * argument.
10364
10365 1996-12-18 Paul Eggert <eggert@gnu.org>
10366
10367 * bison.simple (yyparse):
10368 If __GNUC__ and YYPARSE_PARAM are both defined,
10369 declare yyparse to have a void * argument.
10370
10371 1996-12-17 Richard Stallman <rms@gnu.org>
10372
10373 * src/reduce.c (nbits): Add some casts.
10374
10375 1996-08-12 Richard Stallman <rms@gnu.org>
10376
10377 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10378
10379 1996-08-12 Richard Stallman <rms@gnu.org>
10380
10381 * bison.simple: Test _MSDOS as well as _MSDOS_.
10382
10383 1996-07-31 Richard Stallman <rms@gnu.org>
10384
10385 * src/bison.s1:
10386 [__sun && __i386]: Include alloca.h.
10387
10388 1996-07-31 Richard Stallman <rms@gnu.org>
10389
10390 * bison.simple:
10391 [__sun && __i386]: Include alloca.h.
10392
10393 1996-07-30 Richard Stallman <rms@gnu.org>
10394
10395 * src/bison.s1: Comment change.
10396
10397 * src/bison.s1: Test _MSDOS_, not MSDOS.
10398
10399 1996-07-30 Richard Stallman <rms@gnu.org>
10400
10401 * bison.simple: Comment change.
10402
10403 * bison.simple: Test _MSDOS_, not MSDOS.
10404
10405 1996-06-01 Richard Stallman <rms@gnu.org>
10406
10407 * 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:
10408 Insert `_' macro around many string constants.
10409
10410 * src/main.c:
10411 Insert `_' macro around many string constants.
10412
10413 (main): Call setlocale, bindtextdomain and textdomain.
10414
10415 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10416 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10417 [ENABLE_NLS]: Include libintl.h.
10418 [ENABLE_NLS] (gettext): Define.
10419 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10420 (N_, PACKAGE, LOCALEDIR): New macros.
10421
10422 1996-06-01 Richard Stallman <rms@gnu.org>
10423
10424 * POTFILES.in: New file.
10425
10426 * Makefile.in (allocate.o):
10427 Define target explicitly.
10428
10429 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10430 (LDFLAGS): Set to @LDFLAGS@.
10431 (configure): Run autoconf only if preceding `cd' succeeds.
10432 (bison.s1): Redirect output to temporary file then move the
10433 temporary to the target, rather than redirecting directly to bison.s1.
10434 (clean): Remove config.status and config.log.
10435 (distclean): Don't remove config.status here.
10436
10437 1996-05-12 Richard Stallman <rms@gnu.org>
10438
10439 * src/bison.s1:
10440 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10441
10442 1996-05-12 Richard Stallman <rms@gnu.org>
10443
10444 * bison.simple:
10445 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10446
10447 1996-05-11 Richard Stallman <rms@gnu.org>
10448
10449 * src/bison.s1 (__yy_memcpy):
10450 Really reorder the args, as was supposedly done on Feb 14 1995.
10451 (yyparse): Calls changed accordingly.
10452
10453 1996-05-11 Richard Stallman <rms@gnu.org>
10454
10455 * Makefile.in (dist): Don't use $(srcdir).
10456
10457 * bison.simple (__yy_memcpy):
10458 Really reorder the args, as was supposedly done on Feb 14 1995.
10459 (yyparse): Calls changed accordingly.
10460
10461 1996-01-27 Richard Stallman <rms@gnu.org>
10462
10463 * src/output.c (output_rule_data):
10464 Test YYERROR_VERBOSE in the conditional
10465 around the definition of ttyname.
10466
10467 1995-12-29 Richard Stallman <rms@gnu.org>
10468
10469 * src/bison.s1:
10470 Fix line numbers in #line commands.
10471
10472 1995-12-29 Richard Stallman <rms@gnu.org>
10473
10474 * bison.simple:
10475 Fix line numbers in #line commands.
10476
10477 1995-12-27 Richard Stallman <rms@gnu.org>
10478
10479 * src/bison.s1 (YYPARSE_PARAM_DECL):
10480 In C++, make it always null.
10481 (YYPARSE_PARAM_ARG): New macro.
10482 (yyparse): Use YYPARSE_PARAM_ARG.
10483
10484 1995-12-27 Richard Stallman <rms@gnu.org>
10485
10486 * bison.simple (YYPARSE_PARAM_DECL):
10487 In C++, make it always null.
10488 (YYPARSE_PARAM_ARG): New macro.
10489 (yyparse): Use YYPARSE_PARAM_ARG.
10490
10491 1995-11-29 Richard Stallman <rms@gnu.org>
10492
10493 * doc/bison.texinfo:
10494 Describe literal string tokens, %raw, %no_lines, %token_table.
10495
10496 1995-11-29 Daniel Hagerty <hag@gnu.org>
10497
10498 * doc/bison.texinfo: Fixed update date
10499
10500 1995-10-16 Richard Stallman <rms@gnu.org>
10501
10502 * src/version.c: Version 1.25.
10503
10504 1995-10-16 Richard Stallman <rms@gnu.org>
10505
10506 * NEWS: *** empty log message ***
10507
10508 1995-10-16 Richard Stallman <rms@gnu.org>
10509
10510 * doc/bison.1, doc/bison.rnh:
10511 Add new options.
10512
10513 1995-10-15 Richard Stallman <rms@gnu.org>
10514
10515 * src/vmsgetargs.c, src/getargs.c:
10516 Added -n, -k, and -raw switches.
10517 (noparserflag, toknumflag, rawtoknumflag): New variables.
10518
10519 * src/symtab.h (SALIAS):
10520 New #define for adding aliases to %token.
10521 (struct bucket): Added `alias' field.
10522
10523 * src/reduce.c (reduce_grammar):
10524 Revise error message.
10525 (print_notices): Remove final `.' from error message.
10526
10527 * src/reader.c (reader_output_yylsp):
10528 New function.
10529 (readgram): Use `#if 0' around code that accepted %command
10530 inside grammar rules: The documentation doesn't allow it,
10531 and it will fail since the %command processors scan for the next %.
10532 (parse_token_decl): Extended the %token
10533 declaration to allow a multi-character symbol as an alias.
10534 (parse_thong_decl): New function.
10535 (read_declarations): Added %thong declarations.
10536 (read_declarations): Handle NOOP to deal with allowing
10537 % declarations as another means to specify the flags.
10538 (readgram): Allow %prec prior to semantics embedded in a rule.
10539 (skip_to_char, read_declarations, copy_definition)
10540 (parse_token_decl, parse_start_decl, parse_type_decl)
10541 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10542 (get_type_name, copy_guard, copy_action, readgram)
10543 (get_type, packsymbols): Revised most error messages.
10544 Changed `fatal' to `warnxxx' to avoid aborting for error.
10545 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10546 (read_declarations): Improve the error message for
10547 an invalid character. Do not abort.
10548 (read_declarations, copy_guard, copy_action): Use
10549 printable_version to avoid unprintable characters in printed output.
10550 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10551 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10552 Allow the type of a non-terminal can be given
10553 more than once, as long as all specifications give the same type.
10554
10555 * src/output.c:
10556 (output_headers, output_trailers, output, output_gram)
10557 (output_rule_data): Implement noparserflag variable.
10558 Implement toknumflag variable.
10559 (output): Call reader_output_yylsp to output LTYPESTR.
10560
10561 * src/main.c (main):
10562 If reader sees an error, don't process the grammar.
10563 (fatals): Updated to not use VARARGS1.
10564 (printable_version, int_to_string, warn, warni, warns, warnss)
10565 (warnsss): New error reporting functions. Avoid abort for error.
10566
10567 * src/lex.h:
10568 Added THONG and NOOP for alias processing.
10569 Added SETOPT for the new code that allows setting options with %flags.
10570
10571 * src/lex.c:
10572 Include getopt.h. Add some extern decls.
10573 (safegetc): New function to deal with EOF gracefully.
10574 (literalchar); new function to deal with reading \ escapes.
10575 (lex): Use literalchar.
10576 (lex): Implemented "..." tokens.
10577 (literalchar, lex, parse_percent_token): Made tokenbuffer
10578 always contain the token. This includes growing the token
10579 buffer while reading an integer.
10580 (parse_percent_token): Replaced if-else statement with percent_table.
10581 (parse_percent_token): Added % declarations as another
10582 way to specify the flags -n, -l, and -r. Also added hooks for
10583 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10584 major changes to files.c.
10585 (lex) Retain in the incoming stream a character following
10586 an incorrect '/'.
10587 (skip_white_space, lex): Revised most error messages
10588 and changed fatal to warn to avoid aborting.
10589 (percent_table): Added %thong declarations.
10590
10591 * src/gram.h: Comment changes.
10592
10593 * src/files.c (openfiles, open_extra_files, done):
10594 Add faction flag
10595 and actfile file. Handle noparserflag. Both for -n switch.
10596
10597 * src/conflicts.c (resolve_sr_conflict):
10598 Remove use of alloca.
10599
10600 1995-06-01 Jim Meyering <meyering@gnu.org>
10601
10602 * doc/bison.texinfo: *** empty log message ***
10603
10604 1995-05-06 Richard Stallman <rms@gnu.org>
10605
10606 * src/bison.s1: Comment change.
10607
10608 1995-05-06 Richard Stallman <rms@gnu.org>
10609
10610 * bison.simple: Comment change.
10611
10612 1995-05-03 Richard Stallman <rms@gnu.org>
10613
10614 * src/version.c: Version now 1.24.
10615
10616 * src/bison.s1: Change distribution terms.
10617
10618 * src/version.c: Version now 1.23.
10619
10620 1995-05-03 Richard Stallman <rms@gnu.org>
10621
10622 * doc/bison.texinfo:
10623 Rewrite "Conditions for Using Bison".
10624 Update version to 1.24.
10625
10626 1995-05-03 Richard Stallman <rms@gnu.org>
10627
10628 * bison.simple: Change distribution terms.
10629
10630 1995-02-23 Richard Stallman <rms@gnu.org>
10631
10632 * src/files.c: Test __VMS_POSIX as well as VMS.
10633
10634 1995-02-14 Jim Meyering <meyering@gnu.org>
10635
10636 * src/bison.s1 (__yy_memcpy):
10637 Renamed from __yy_bcopy to avoid
10638 confusion. Reverse FROM and TO arguments to be consistent with
10639 those of memcpy.
10640
10641 1995-02-14 Jim Meyering <meyering@gnu.org>
10642
10643 * bison.simple (__yy_memcpy):
10644 Renamed from __yy_bcopy to avoid
10645 confusion. Reverse FROM and TO arguments to be consistent with
10646 those of memcpy.
10647
10648 1994-11-10 David J. MacKenzie <djm@gnu.org>
10649
10650 * NEWS: reformat
10651
10652 * NEWS: New file.
10653
10654 * Makefile.in (DISTFILES): Include NEWS.
10655
10656 * Makefile.in (DISTFILES):
10657 Include install-sh, not install.sh.
10658
10659 * configure.in: Update to Autoconf v2 macro names.
10660
10661 1994-10-05 David J. MacKenzie <djm@gnu.org>
10662
10663 * Makefile.in: fix typo
10664
10665 * Makefile.in (prefix, exec_prefix):
10666 Let configure set them.
10667
10668 1994-09-28 David J. MacKenzie <djm@gnu.org>
10669
10670 * Makefile.in: Set datadir to $(prefix)/share.
10671
10672 1994-09-15 Richard Stallman <rms@gnu.org>
10673
10674 * src/bison.s1:
10675 Update copyright notice and GPL version.
10676
10677 1994-09-15 Richard Stallman <rms@gnu.org>
10678
10679 * bison.simple:
10680 Update copyright notice and GPL version.
10681
10682 1994-07-12 Richard Stallman <rms@gnu.org>
10683
10684 * src/reduce.c, src/reader.c:
10685 entered into RCS
10686
10687 1994-05-05 David J. MacKenzie <djm@gnu.org>
10688
10689 * Makefile.in: entered into RCS
10690
10691 1994-03-26 Richard Stallman <rms@gnu.org>
10692
10693 * src/bison.s1: entered into RCS
10694
10695 1994-03-26 Richard Stallman <rms@gnu.org>
10696
10697 * bison.simple: entered into RCS
10698
10699 1994-03-25 Richard Stallman <rms@gnu.org>
10700
10701 * src/main.c: entered into RCS
10702
10703 1994-03-24 Richard Stallman <rms@gnu.org>
10704
10705 * src/conflicts.c: entered into RCS
10706
10707 1994-01-02 Richard Stallman <rms@gnu.org>
10708
10709 * Makefile.in: *** empty log message ***
10710
10711 1993-11-21 Richard Stallman <rms@gnu.org>
10712
10713 * src/bison.s1: *** empty log message ***
10714
10715 1993-11-21 Richard Stallman <rms@gnu.org>
10716
10717 * doc/bison.texinfo: entered into RCS
10718
10719 * doc/bison.texinfo: *** empty log message ***
10720
10721 1993-11-21 Richard Stallman <rms@gnu.org>
10722
10723 * bison.simple: *** empty log message ***
10724
10725 1993-10-25 David J. MacKenzie <djm@gnu.org>
10726
10727 * doc/bison.texinfo: *** empty log message ***
10728
10729 1993-10-19 Richard Stallman <rms@gnu.org>
10730
10731 * src/bison.s1: *** empty log message ***
10732
10733 1993-10-19 Richard Stallman <rms@gnu.org>
10734
10735 * bison.simple: *** empty log message ***
10736
10737 1993-10-14 Richard Stallman <rms@gnu.org>
10738
10739 * src/bison.s1: *** empty log message ***
10740
10741 1993-10-14 Richard Stallman <rms@gnu.org>
10742
10743 * bison.simple: *** empty log message ***
10744
10745 1993-09-14 David J. MacKenzie <djm@gnu.org>
10746
10747 * doc/bison.texinfo: *** empty log message ***
10748
10749 1993-09-13 Noah Friedman <friedman@gnu.org>
10750
10751 * Makefile.in: *** empty log message ***
10752
10753 1993-09-10 Richard Stallman <rms@gnu.org>
10754
10755 * src/conflicts.c: *** empty log message ***
10756
10757 * src/system.h: entered into RCS
10758
10759 1993-09-10 Richard Stallman <rms@gnu.org>
10760
10761 * doc/bison.1: entered into RCS
10762
10763 1993-09-06 Noah Friedman <friedman@gnu.org>
10764
10765 * src/version.c: entered into RCS
10766
10767 1993-09-06 Noah Friedman <friedman@gnu.org>
10768
10769 * Makefile.in: *** empty log message ***
10770
10771 1993-07-30 David J. MacKenzie <djm@gnu.org>
10772
10773 * Makefile.in: *** empty log message ***
10774
10775 1993-07-24 Richard Stallman <rms@gnu.org>
10776
10777 * src/bison.s1: *** empty log message ***
10778
10779 1993-07-24 Richard Stallman <rms@gnu.org>
10780
10781 * bison.simple: *** empty log message ***
10782
10783 1993-07-08 David J. MacKenzie <djm@gnu.org>
10784
10785 * Makefile.in: *** empty log message ***
10786
10787 1993-07-04 Richard Stallman <rms@gnu.org>
10788
10789 * src/bison.s1: *** empty log message ***
10790
10791 1993-07-04 Richard Stallman <rms@gnu.org>
10792
10793 * bison.simple: *** empty log message ***
10794
10795 1993-06-26 David J. MacKenzie <djm@gnu.org>
10796
10797 * src/getargs.c: entered into RCS
10798
10799 1993-06-26 David J. MacKenzie <djm@gnu.org>
10800
10801 * doc/bison.texinfo: *** empty log message ***
10802
10803 * doc/bison.1: New file.
10804
10805 1993-06-25 Richard Stallman <rms@gnu.org>
10806
10807 * src/getargs.c: New file.
10808
10809 1993-06-16 Richard Stallman <rms@gnu.org>
10810
10811 * src/bison.s1: *** empty log message ***
10812
10813 1993-06-16 Richard Stallman <rms@gnu.org>
10814
10815 * bison.simple: *** empty log message ***
10816
10817 1993-06-03 Richard Stallman <rms@gnu.org>
10818
10819 * src/bison.s1: New file.
10820
10821 1993-06-03 Richard Stallman <rms@gnu.org>
10822
10823 * doc/bison.texinfo: *** empty log message ***
10824
10825 1993-06-03 Richard Stallman <rms@gnu.org>
10826
10827 * bison.simple: New file.
10828
10829 1993-05-19 Richard Stallman <rms@gnu.org>
10830
10831 * doc/bison.texinfo: New file.
10832
10833 1993-05-07 Noah Friedman <friedman@gnu.org>
10834
10835 * Makefile.in: *** empty log message ***
10836
10837 1993-04-28 Noah Friedman <friedman@gnu.org>
10838
10839 * src/reader.c: *** empty log message ***
10840
10841 1993-04-23 Noah Friedman <friedman@gnu.org>
10842
10843 * src/alloc.h: entered into RCS
10844
10845 1993-04-20 David J. MacKenzie <djm@gnu.org>
10846
10847 * src/version.c: *** empty log message ***
10848
10849 * src/files.c, src/allocate.c:
10850 entered into RCS
10851
10852 * src/reader.c: *** empty log message ***
10853
10854 * src/lex.c: entered into RCS
10855
10856 * src/conflicts.c: New file.
10857
10858 * src/symtab.c: entered into RCS
10859
10860 * src/alloc.h: New file.
10861
10862 * src/LR0.c: entered into RCS
10863
10864 1993-04-18 Noah Friedman <friedman@gnu.org>
10865
10866 * src/reader.c: New file.
10867
10868 * src/version.c: *** empty log message ***
10869
10870 1993-04-18 Noah Friedman <friedman@gnu.org>
10871
10872 * Makefile.in: *** empty log message ***
10873
10874 1993-04-17 Noah Friedman <friedman@gnu.org>
10875
10876 * Makefile.in: *** empty log message ***
10877
10878 1993-04-15 Richard Stallman <rms@gnu.org>
10879
10880 * src/main.c, src/files.c:
10881 New file.
10882
10883 1993-04-15 Noah Friedman <friedman@gnu.org>
10884
10885 * configure.in: entered into RCS
10886
10887 * configure.in: *** empty log message ***
10888
10889 * configure.in: New file.
10890
10891 1993-04-14 Richard Stallman <rms@gnu.org>
10892
10893 * Makefile.in: New file.
10894
10895 1993-04-13 Richard Stallman <rms@gnu.org>
10896
10897 * src/version.c: New file.
10898
10899 1993-03-25 Richard Stallman <rms@gnu.org>
10900
10901 * src/output.c: entered into RCS
10902
10903 1992-09-25 Richard Stallman <rms@gnu.org>
10904
10905 * configure.bat: entered into RCS
10906
10907 1992-06-22 Richard Stallman <rms@gnu.org>
10908
10909 * src/vmsgetargs.c: entered into RCS
10910
10911 1992-06-22 Richard Stallman <rms@gnu.org>
10912
10913 * doc/bison.rnh: entered into RCS
10914
10915 1992-04-20 David J. MacKenzie <djm@gnu.org>
10916
10917 * README: entered into RCS
10918
10919 1992-01-22 Richard Stallman <rms@gnu.org>
10920
10921 * src/machine.h: entered into RCS
10922
10923 1991-12-21 Richard Stallman <rms@gnu.org>
10924
10925 * src/lalr.c, src/closure.c:
10926 entered into RCS
10927
10928 1991-12-20 Richard Stallman <rms@gnu.org>
10929
10930 * src/state.h: entered into RCS
10931
10932 1991-12-18 Richard Stallman <rms@gnu.org>
10933
10934 * src/print.c, src/nullable.c, src/derives.c:
10935 entered into RCS
10936
10937 1991-11-03 David J. MacKenzie <djm@gnu.org>
10938
10939 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
10940 entered into RCS
10941
10942 1988-09-09 Richard Stallman <rms@gnu.org>
10943
10944 * src/bison.hairy: entered into RCS
10945
10946 1987-12-16 Richard Stallman <rms@gnu.org>
10947
10948 * REFERENCES: entered into RCS
10949
10950 -----
10951
10952 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
10953 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
10954
10955 This file is part of Bison, the GNU Compiler Compiler.
10956
10957 Bison is free software; you can redistribute it and/or modify
10958 it under the terms of the GNU General Public License as published by
10959 the Free Software Foundation; either version 2, or (at your option)
10960 any later version.
10961
10962 Bison is distributed in the hope that it will be useful,
10963 but WITHOUT ANY WARRANTY; without even the implied warranty of
10964 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10965 GNU General Public License for more details.
10966
10967 You should have received a copy of the GNU General Public License
10968 along with Bison; see the file COPYING. If not, write to
10969 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
10970 Boston, MA 02111-1307, USA.