]> git.saurik.com Git - bison.git/blob - ChangeLog
a406c7d32cf84269c7b2728b9165b6a422e3302d
[bison.git] / ChangeLog
1 2003-02-20 Akim Demaille <akim@epita.fr>
2
3 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
4 AT_YACC_IF.
5 Redefine AT_YYERROR_SEES_LOC_IF using it.
6 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
7 not defined.
8 Don't use the location in yy::Parser::error_ and
9 yy::Parser::print_ when not %locations.
10 Activate more lalr1.cc tests.
11
12 2003-02-19 Akim Demaille <akim@epita.fr>
13
14 * data/lalr1.cc: When displaying a line number, be sure to make it
15 an int.
16
17 2003-02-19 Akim Demaille <akim@epita.fr>
18
19 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
20 Remove, useless.
21 (YYABORT, YYACCEPT, YYERROR): New.
22 * tests/calc.at: Renable the lalr1.cc test.
23
24 2003-02-19 Akim Demaille <akim@epita.fr>
25
26 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
27 error recovery, mixing with/without pops and discarding of the
28 lookahead.
29 Exercise YYERROR.
30 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
31
32 2003-02-17 Paul Eggert <eggert@twinsun.com>
33
34 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
35 * tests/testsuite.at (AT_COMPILE): Use them.
36 This fixes the testsuite problem reported by Robert Lentz in
37 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
38
39 2003-02-12 Paul Eggert <eggert@twinsun.com>
40
41 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
42 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
43 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
44 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
45 Check for malloc failure, for consistency with yacc.c.
46 (yytname_size): Remove, for consistency with yacc.c.
47
48 The bug still remains in data/lalr1.cc, as I didn't have time
49 to fix it there.
50
51 2003-02-06 Akim Demaille <akim@epita.fr>
52
53 * configure.ac (GXX): Rename as...
54 (CXX): this, to keep the original Autoconf semantics.
55 Require 2.57.
56 * data/lalr1.cc: Fix b4_copyright invocations.
57 If YYDEBUG is not defined, don't depend upon name_ being defined.
58 (location.hh): Include string and iostream.
59 (Position::filename): New member.
60 (Position::Position ()): New.
61 (operator<< (Position)): New.
62 (operator- (Position, int)): New.
63 (Location::first, Location::last): Rename as...
64 (Location::begin, Location::end): these, to mock the conventional
65 iterator names.
66 (operator<< (Location)): New.
67 * tests/atlocal.in (CXX): New.
68 * tests/testsuite.at (AT_COMPILE_CXX): New.
69 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
70 locations in a more synthetic way.
71 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
72 lalr1.cc is used.
73 Adjust the C locations to match those from Emacs: first column is
74 column 0.
75 Change all the expected results.
76 Conform to the GCS: simplify the locations when applicable.
77 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
78 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
79 these CPP macros with the m4 macros new defined by...
80 (AT_CHECK_PUSHDEFS): this, i.e.:
81 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
82 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
83 New macros.
84 (AT_CHECK_POPDEFS): Undefine them.
85 (AT_CHECK_CALC_LALR1_CC): New.
86 Use it for the first lalr1.cc test.
87
88 2003-02-04 Akim Demaille <akim@epita.fr>
89
90 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
91 Location as is defined.
92
93 2003-02-04 Akim Demaille <akim@epita.fr>
94
95 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
96 name_ being defined.
97
98 2003-02-03 Paul Eggert <eggert@twinsun.com>
99
100 * src/gram.h (start_symbol): Remove unused decl.
101
102 Use more-consistent naming conventions for local vars.
103
104 * src/derives.c (derives_compute): Change type of local var from
105 int to rule_number.
106 * src/gram.c (grammar_rules_partial_print): Likewise.
107 * src/print.c (print_core): Likewise.
108 * src/reduce.c (reduce_grammar_tables): Likewise.
109
110 * src/gram.c (grammar_dump): Change name of item_number *
111 local var from r to rp.
112 * src/nullable.c (nullable_compute): Likewise.
113
114 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
115
116 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
117 for symbol or symbol_number var.
118 * src/reader.c (grammar_start_symbol_set): Likewise.
119 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
120 Likewise.
121 * src/state.c (transitions_to): Likewise.
122 * src/state.h: Likewise.
123 * src/tables.c (symbol_number_to_vector_number): Likewise.
124
125 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
126 char * var.
127
128 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
129 var.
130
131 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
132 var.
133
134 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
135 Use str, not s, for char * var. Use ch, not c, for character var.
136 Use size for size var.
137
138 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
139 char * var.
140 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
141 uniqstr var.
142 * src/uniqstr.h: Likewise.
143
144 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
145 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
146 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
147 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
148 param to have same name as that of enum, so that we don't use
149 "s" to stand for a non-state.
150
151 2003-02-02 Akim Demaille <akim@epita.fr>
152
153 * src/scan-skel.l: Scan more than one inert character per yylex
154 invocation.
155
156 2003-02-01 Paul Eggert <eggert@twinsun.com>
157
158 Version 1.875a.
159
160 * po/LINGUAS: Add ms.
161
162 2003-01-30 Akim Demaille <akim@epita.fr>
163
164 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
165
166 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
167
168 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
169 of $1.
170
171 Changes in response to error report by S. Eken: GLR mode does not
172 handle negative $ indices or $ indices in embedded rules correctly.
173 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
174
175 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
176 (b4_rhs_location): Ditto.
177 (yyfill): New function to copy from stack tree into array
178 incrementally.
179 (yyuserAction): Modify to allow incremental move of semantic values
180 to rhs array when in GLR mode.
181 Define YYFILL to use in user-defined actions to fill semantic array
182 as needed.
183 Remove dummy use of yystack, as there is now a guaranteed use.
184 (yydoAction): Modify to allow incremental move of semantic values
185 to rhs array when in GLR mode.
186 (yyresolveAction): Ditto.
187 (yyglrShiftDefer): Update comment.
188 (yyresolveStates): Use X == NULL for pointers, not !X.
189 (yyglrReduce): Ditto.
190 (yydoAction): Ditto
191
192 * tests/glr-regr1.at: Rename to ...
193 * tests/glr-regression.at: Add new regression test for the problems
194 described above (adapted from S. Eken).
195 Update copyright notice.
196 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
197 * tests/Makefile.am: Ditto.
198
199 2003-01-28 Paul Eggert <eggert@twinsun.com>
200
201 * data/lalr1.cc: Do not use @output_header_name@ unless
202 b4_defines_flag is set. This fixes two bugs reported by
203 Tim Van Holder in
204 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
205 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
206
207 2003-01-21 Paul Eggert <eggert@twinsun.com>
208
209 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
210 we don't need to worry about yyerrlab1 being reported as an
211 "unused label" by non-GCC C compilers. The downside is that if
212 locations are used then a couple of statements are duplicated each
213 time YYERROR is invoked, but the upside is that the warnings
214 should vanish.
215 (yyerrlab1): Move code to YERROR.
216 (yyerrlab2): Remove. Change uses back to yyerrlab1.
217 This reverts some of the 2002-12-27 change.
218
219 2003-01-17 Paul Eggert <eggert@twinsun.com>
220
221 * src/output.c (symbol_printers_output): Fix typo that led
222 to core dump. Problem reported by Antonio Rus in
223 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
224
225 2003-01-13 Akim Demaille <akim@epita.fr>,
226 Quoc Peyrot <chojin@lrde.epita.fr>,
227 Robert Anisko <anisko_r@lrde.epita.fr>
228
229 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
230 when the stacks contain one element, as the loop would otherwise
231 free the last state, and then use the top state (the one we just
232 popped). This means that the initial elements will not be freed
233 explicitly, as is the case in yacc.c; it is not a problem, as
234 these elements have fake values.
235
236 2003-01-11 Paul Eggert <eggert@twinsun.com>
237
238 * NEWS: %expect-violations are now just warnings, reverting
239 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
240 bootstrapping problem reported by Matthias Klose; see
241 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
242 * src/conflicts.c (conflicts_print): Likewise.
243 * tests/conflicts.at (%expect not enough, %expect too much,
244 %expect with reduce conflicts): Likewise.
245 * doc/bison.texinfo (Expect Decl): Document this. Also mention
246 that the warning is enabled if the number of conflicts changes
247 (not necessarily increases).
248
249 * src/getargs.c (version): Update copyright year.
250
251 2003-01-09 Akim Demaille <akim@epita.fr>
252
253 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
254
255 2003-01-08 Paul Eggert <eggert@twinsun.com>
256
257 * Makefile.maint (WGETFLAGS):
258 New macro, containing "-C off" to disable proxy caches.
259 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
260 (rel-check): Use $(WGET) instead of wget.
261
262 2003-01-06 Paul Eggert <eggert@twinsun.com>
263
264 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
265 the GLR paper of Scott, Johnstone and Hussain.
266
267 2003-01-04 Paul Eggert <eggert@twinsun.com>
268
269 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
270 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
271 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
272 (EXTRA_LIBRARIES): New var, for liby.a.
273 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
274 (EXTRA_SCRIPTS): New var, for yacc.
275
276 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
277 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
278 Problem reported by Nelson H. F. Beebe.
279
280 2003-01-03 Paul Eggert <eggert@twinsun.com>
281
282 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
283 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
284 when compiling Bison 1.875's `bitset bset = obstack_alloc
285 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
286
287 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
288 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
289 grow to a huge size with typical invocation.
290
291 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
292 Use the pattern recommended by Autoconf 2.57, except also protect
293 against double-definition.
294 * src/system.h: Likewise.
295 Portability issues reported by Nelson H. F. Beebe.
296
297 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
298 All uses changed. Provide a definition in both C and C++.
299 (yytrue, yyfalse): Define even if defined (__cplusplus).
300
301 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
302 Reported by Nelson H. F. Beebe.
303
304 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
305
306 2003-01-02 Paul Eggert <eggert@twinsun.com>
307
308 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
309 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
310 Bug reported by Nelson H. F. Beebe.
311
312 2003-01-01 Paul Eggert <eggert@twinsun.com>
313
314 * Version 1.875.
315
316 2002-12-30 Paul Eggert <eggert@twinsun.com>
317
318 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
319 Moved here from...
320 (<INITIAL>","): Here. This causes stray "," to be treated
321 more uniformly.
322
323 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
324 last brace in braced code when not in Yacc mode, for compatibility
325 with Bison 1.35. This resurrects the 2001-12-15 patch to
326 src/reader.c.
327
328 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
329 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
330
331 2002-12-28 Paul Eggert <eggert@twinsun.com>
332
333 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
334 that of SYM's type. This fixes Debian bug 168069, reported by
335 Thomas Olsson.
336
337 2002-12-28 Paul Eggert <eggert@twinsun.com>
338
339 Version 1.75f.
340
341 Switch back to the Yacc style of conflict reports, undoing some
342 of the 2002-07-30 change.
343 * doc/bison.texinfo (Understanding): Use Yacc style for
344 conflict reports. Also, use new way of locating rules.
345 * src/conflicts.c (conflict_report):
346 Renamed from conflict_report_yacc, removing the old
347 'conflict_report'. Translate the entire conflict report at once,
348 so that we don't assume that "," has the same interpretation in
349 all languages.
350 (conflicts_output): Use Yacc-style conflict report for each state,
351 instead of our more-complicated style.
352 (conflicts_print): Use Yacc-style conflict report, except print
353 the input file name when not emulating Yacc.
354 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
355 Conflicted Reduction, %expect not enough, %expect too much,
356 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
357 * tests/existing.at (GNU Cim Grammar): Likewise.
358 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
359
360 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
361 fatal): Don't invoke fflush; it's not needed and it might even be
362 harmful for stdout, as stdout might not be open.
363 * src/reduce.c (reduce_print): Likewise.
364
365 2002-12-27 Paul Eggert <eggert@twinsun.com>
366
367 Fix a bug where error locations were not being recorded correctly.
368 This problem was originally reported by Paul Hilfinger in
369 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
370
371 * data/yacc.c (yyparse): New local var yylerrsp, to record the
372 top of the location stack's error locations.
373 (yyerrlab): Set it. When discarding a token, push its location
374 onto yylerrsp so that we don't lose track of the error's end.
375 (yyerrlab1): Now is only the target of YYERROR, so that we can
376 properly record the location of the action that failed. For GCC
377 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
378 GCC warning about yyerrlab1 being unused if YYERROR is unused.
379 (yyerrlab2): New label, which yyerrlab now falls through to.
380 Compute the error's location by applying YYLLOC_DEFAULT to
381 the locations of all the symbols that went into the error.
382 * doc/bison.texinfo (Location Default Action): Mention that
383 YYLLOC_DEFAULT is also invoked for syntax errors.
384 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
385 Error locations include the locations of all the tokens that were
386 discarded, not just the last token.
387
388 2002-12-26 Paul Eggert <eggert@twinsun.com>
389
390 * src/files.c: Include quote.h.
391 (compute_output_file_names): Warn if we detect conflicting
392 outputs to the same file. This should catch the misunderstanding
393 exemplified by Debian Bug 165349, reported by Bruce Stephens..
394
395 * src/conflicts.c (conflicts_print): If the user specifies
396 "%expect N", report an error if there are any reduce/reduce
397 conflicts. This is what the manual says should happen.
398 This fixes Debian bug 130890, reported by Anthony DeRobertis.
399 * tests/conflicts.at (%expect with reduce conflicts): New test.
400
401 Don't use m4_include on relative file names, as it doesn't work as
402 desired if there happens to be a file with that name under ".".
403
404 * m4sugar/version.m4: Remove; it was included but it wasn't used.
405 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
406 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
407 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
408 * src/output.c (output_skeleton): Use full path names when
409 specifying a file to include; don't rely on include path, as
410 it's unreliable when the working file contains a file with
411 that name.
412
413 2002-12-25 Paul Eggert <eggert@twinsun.com>
414
415 Remove obsolete references to bison.simple and bison.hairy.
416 Problem mentioned by Aubin Mahe in
417 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
418 * data/glr.c: Comment fix.
419 * doc/bison.1: Remove references. Also, mention "yacc".
420
421 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
422 with -g option.
423
424 * src/parse-gram.y (declaration): Use enum "report_states" rather
425 than its numeric value 1.
426
427 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
428 opening a new one. This fixes Debian bug 165349, reported by
429 Bruce Stephens.
430
431 2002-12-24 Paul Eggert <eggert@twinsun.com>
432
433 Version 1.75e.
434
435 * Makefile.maint (cvs-update): Don't assume that the shell
436 supports $(...), as Solaris sh doesn't.
437
438 * src/parse-gram.y (lloc_default): Remove test for empty
439 nonterminals at the end, since it didn't change the result.
440
441 2002-12-24 Paul Eggert <eggert@twinsun.com>
442
443 If the user does not define YYSTYPE as a macro, Bison now declares it
444 using typedef instead of defining it as a macro. POSIX requires this.
445 For consistency, YYLTYPE is also declared instead of defined.
446
447 %union directives can now have a tag before the `{', e.g., the
448 directive `%union foo {...}' now generates the C code
449 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
450 The default union tag is `YYSTYPE', for compatibility with Solaris 9
451 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
452 instead of `yyltype'.
453
454 `yystype' and `yyltype' are now obsolescent macros instead of being
455 typedefs or tags; they are no longer documented and will be
456 withdrawn in a future release.
457
458 * data/glr.c (b4_location_type): Remove.
459 (YYSTYPE): Renamed from yystype.
460 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
461 (struct YYLTYPE): Renamed from struct yyltype.
462 (YYLTYPE): Renamed from yyltype.
463 (yyltype, yystype): New (and obsolescent) macros,
464 for backward compatibility.
465 * data/yacc.c: Likewise.
466
467 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
468 does not specify a union tag. This is for compatibility with
469 Solaris 9 yacc.
470
471 * src/parse-gram.y (add_param): 2nd arg is now char * not char
472 const *, since it is now modified by stripping surrounding { }.
473 (current_braced_code): Remove.
474 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
475 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
476 trailing " {...}". Now of type <chars>.
477 (grammar_declaration): Adjust to bundled tokens.
478 (code_content): Remove; stripping is now done by add_param.
479 (print_token_value): Print contents of bundled tokens.
480 (token_name): New function.
481
482 * src/reader.h (braced_code, current_braced_code): Remove.
483 (token_name): New decl.
484
485 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
486 token_type, not braced_code code_kind. All uses changed.
487 (SC_PRE_CODE): New state, for scanning after a keyword that
488 has (or usually has) an immediately-following braced code.
489 (token_type): New local var, to keep track of which token type
490 to return when scanning braced code.
491 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
492 <INITIAL>"%parse-param", <INITIAL>"%printer",
493 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
494 instead of returning a token type immediately.
495 (<INITIAL>"{"): Set token type.
496 (<SC_BRACED_CODE>"}"): Use it.
497 (handle_action_dollar, handle_action_at): Now returns bool
498 indicating success. Fail if ! current_rule; this prevents a core dump.
499 (handle_symbol_code_dollar, handle_symbol_code_at):
500 Remove; merge body into caller.
501 (handle_dollar, handle_at): Complain in invalid contexts.
502
503 * NEWS, doc/bison.texinfo: Document the above.
504 * NEWS: Fix years and program names in copyright notice.
505
506 2002-12-17 Paul Eggert <eggert@twinsun.com>
507
508 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
509 Reporting, Table of Symbols): Omit mentions of %lex-param and
510 %parse-param from the documentation for now.
511
512 2002-12-15 Paul Eggert <eggert@twinsun.com>
513
514 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
515 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
516 lookahead symbol, and which sets yychar in parser actions) and it
517 disagreed with the Bison documentation. Bug
518 reported by Andrew Walrond.
519
520 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
521 as the caller now does that.
522 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
523 (YYEMPTY): Parenthesize right hand side, since others use it.
524 (yyparse): Don't assume that our generated code is the only code
525 that sets yychar.
526
527 2002-12-13 Paul Eggert <eggert@twinsun.com>
528
529 Version 1.75d.
530
531 POSIX requires a "yacc" command.
532 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
533 (MOSTLYCLEANFILES): Add yacc.
534 (yacc): New rule.
535 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
536 as an alias for bison y.
537
538 * po/LINGUAS: Add da.
539
540 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
541 problem with latest <getopt.h>.
542 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
543
544 * doc/fdl.texi: Upgrade to 1.2.
545 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
546 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
547 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
548 gnulib.
549 * config/install-sh: Sync with autotools.
550
551 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
552 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
553 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
554 locations are requested.
555 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
556 locations are requested.
557
558 2002-12-12 Paul Eggert <eggert@twinsun.com>
559
560 Remove unportable casts and storage allocation tricks.
561 While we're at it, remove almost all casts, since they
562 usually aren't needed and are a sign of trouble.
563
564 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
565
566 * src/derives.c (derives_compute): Do not subtract NTOKENS from
567 the pointer DSET returned by malloc; this isn't portable.
568 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
569 Similarly for DERIVES.
570 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
571 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
572 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
573
574 * src/derives.c (derives_compute): Do not bother invoking
575 int_of_rule_number, since rule numbers are integers.
576
577 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
578 rather than XMALLOC (char, N).
579
580 * src/files.c (filename_split): Rewrite to avoid cast.
581
582 * src/gram.h (symbol_number_as_item_number,
583 item_number_as_symbol_number, rule_number_as_item_number,
584 item_number_as_rule_number):
585 Now inline functions rather than macros, to avoid casts.
586 * src/state.h (state_number_as_int): Likewise.
587 * src/tables.c (state_number_to_vector_number,
588 symbol_number_to_vector_number): Likewise.
589
590 * src/gram.h (int_of_rule_number): Remove; no longer used.
591
592 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
593 since the resulting storage is always stored into.
594
595 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
596 where it's needed.
597
598 * src/muscle_tab.c (muscle_m4_output):
599 Now inline. Return bool, not int.
600 * src/state.c (state_compare): Likewise.
601 * src/symtab.c (symbol_check_defined,
602 symbol_check_alias_consistency, symbol_pack, symbol_translation,
603 hash_compare_symbol, hash_symbol):
604 Likewise.
605 * src/uniqstr.c (uniqstr_print): Likewise.
606 * src/muscle_tab.c (muscle_m4_output_processor):
607 New function, to avoid casts.
608 * src/state.c (state_comparator, stage_hasher): Likewise.
609 * src/symtab.c (symbol_check_defined_processor,
610 symbol_check_alias_consistency_processor, symbol_pack_processor,
611 symbol_translation_processor, hash_symbol_comparator,
612 hash_symbol_hasher): Likewise.
613 * src/uniqstr.c (uniqstr_print_processor): Likewise.
614 * src/muscle_tab.c (muscles_m4_output):
615 Use new functions instead of casting old functions unportably.
616 * src/state.c (state_hash_new): Likewise.
617 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
618 symbols_token_translations_init):
619 Likewise.
620 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
621
622 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
623 var instead of casting to long, to avoid casts.
624 (prepare_states): Use MALLOC rather than alloca, so that we don't
625 have to worry about alloca.
626 * src/state.c (state_hash_lookup): Likewise.
627
628 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
629 local var instead of casting to unsigned char, to avoid casts.
630
631 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
632 STATE_ALLOC): Remove.
633 (transitions_new, errs_new, reductions_new, state_new): Use malloc
634 rather than calloc, and use offsetof to avoid allocating slightly
635 too much storage.
636 (state_new): Initialize all members.
637
638 * src/state.c (state_hash): Use unsigned accumulator, not signed.
639
640 * src/symtab.c (symbol_free): Remove; unused.
641 (symbol_get): Remove cast in lhs of assignment.
642 (symbols_do): Now static. Accept generic arguments, not
643 hashing-related ones.
644
645 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
646 (symbol_processor): Remove.
647 (symbols_do): Remove decl; now static.
648
649 * src/system.h (alloca): Remove; decl no longer needed.
650 (<stddef.h>): Include, for offsetof.
651 (<inttypes.>, <stdint.h>): Include if available.
652 (uintptr_t): New type, if system lacks it.
653 (CALLOC, MALLOC, REALLOC): New macros.
654 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
655 new macros.
656
657 * src/tables.c (table_size): Now int, to pacify GCC.
658 (table_grow, table_ninf_remap): Use signed table size.
659 (save_row): Don't bother initializing locals when not needed.
660 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
661 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
662
663 * src/vcg.h: Correct misspellings.
664
665 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
666
667
668 * src/getargs.c (getargs): Don't assume EOF == -1.
669
670 2002-12-09 Paul Eggert <eggert@twinsun.com>
671
672 Change identifier spellings to avoid collisions with names
673 that are reserved by POSIX.
674
675 Don't use names ending in _t, since POSIX reserves them.
676 For consistency, remove _e and _s endings -- they're weren't
677 needed to remove ambiguity. All uses changed.
678 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
679 turn was just renamed from struniq_t.
680 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
681 which in turn was just renamed from struniq_processor_t.
682 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
683 in turn was renamed from hash_compare_struniq_t.
684 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
685 (state_list): Renamed from state_list_t.
686 * src/assoc.h (assoc): Renamed from assoc_t.
687 * src/conflicts.c (enum conflict_resolution): Renamed from
688 enum conflict_resolution_e.
689 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
690 (rule_list): Renamed from rule_list_t.
691 * src/getargs.h (enum trace): Renamed from enum trace_e.
692 (enum report): Renamed from enum report_e.
693 * src/gram.h (item_number): Renamed from item_number_t.
694 (rule_number): Renamed from rule_number_t.
695 (struct rule_s): Remove the "rule_s" part; not used.
696 (rule): Renamed from rule_t.
697 (rule_filter): Renamed from rule_filter_t.
698 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
699 (goto_list): Renamed from goto_list_t.
700 * src/lalr.h (goto_number): Renamed from goto_number_t.
701 * src/location.h (location): Renamed from location_t.
702 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
703 and moved here from:
704 * src/muscle_tab.h (muscle_entry_t): here.
705 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
706 (rule_list): Renamed from rule_list_t.
707 * src/print_graph.c (static_graph): Renamed from graph.
708 * src/reader.h (braced_code): Renamed from braced_code_t.
709 Remove brace_code_e tag.
710 * src/relation.h (relation_node): Renamed from relation_node_t.
711 (relation_nodes): Renamed from relation_nodes_t.
712 (relation): Renamed from relation_t.
713 * src/state.h (state_number): Renamed from state_number_t.
714 (struct state): Renamed from struct state_s.
715 (state): Renamed from state_t.
716 (transitions): Renamed from transitions_t. Unused (and
717 misspelled) transtion_s tag removed.
718 (errs): Renamed from errs_t. Unused errs_s tag removed.
719 (reductions): Renamed from reductions_t. Unused tag
720 reductions_s removed.
721 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
722 (struct symbol_list): Renamed from struct symbol_list_s.
723 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
724 (struct symbol): Renamed from struct symbol_s.
725 (symbol): Renamed from symbol_t.
726 * src/tables.c (vector_number): Renamed from vector_number_t.
727 (action_number): Renamed from action_t.
728 * src/tables.h (base_number): Renamed from base_t.
729 * src/vcg.h (enum color): Renamed from enum color_e.
730 (enum textmode): Renamed from enum textmode_e.
731 (enum shape): Renamed from enum shape_e.
732 (struct colorentry): Renamed from struct colorentry_s.
733 (struct classname): Renamed from struct classname_s.
734 (struct infoname): Renamed from struct infoname_s.
735 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
736 (enum decision): Renamed from enum decision_e.
737 (enum orientation): Renamed from enum orientation_e.
738 (enum alignment): Renamed from enum alignment_e.
739 (enum arrow_mode): Renamed from enum arrow_mode_e.
740 (enum crossing_type): Renamed from enum crossing_type_e.
741 (enum view): Renamed from enum view_e.
742 (struct node): Renamed from struct node_s.
743 (node): Renamed from node_t.
744 (enum linestyle): Renamed from enum linestyle_e.
745 (enum arrowstyle): Renamed from enum arrowstyle_e.
746 (struct edge): Renamed from struct edge.
747 (edge): Renamed from edge_t.
748 (struct graph): Renamed from struct graph_s.
749 (graph): Renamed from graph_t.
750 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
751 Rename value_t -> value.
752 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
753 value_t_as_yystype -> value_as_yystype.
754
755 Don't include <errno.h> in the mainstream code, since it
756 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
757 * lib/get-errno.c, lib/get-errno.h: New files.
758 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
759 get-errno.c.
760 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
761 * src/output.c (output_skeleton): Likewise.
762 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
763 instead of errno.
764 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
765 Likewise.
766 (handle_action_dollar, handle_action_at): Likewise.
767 * src/system.h: Do not include <errno.h>.
768 (TAB_EXT): Renamed from EXT_TAB.
769 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
770
771 Avoid str[a-z]*, since <string.h> reserves that name space.
772 Change all instances of "struniq" in names to "uniqstr", and
773 likewise for "STRUNIQ" and "UNIQSTR".
774 * src/uniqstr.c: Renamed from src/struniq.c.
775 * src/uniqstr.h: Renamed from src/struniq.h.
776 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
777 * src/files.c (strsuffix): Remove; unused.
778 (concat2): Renamed from stringappend. Now static.
779 * src/files.h (strsuffix, stringappend): Remove; unused.
780 * src/parse-gram.y (<chars>): Renamed from <string>.
781 (<uniqstr>): Renamed from <struniq>.
782 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
783 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
784 (struct graph_s.expand): Renamed from struct graph_s.stretch.
785 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
786 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
787 (N_EXPAND): Renamed from N_STRETCH.
788
789 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
790 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
791 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
792 Remove; unused.
793 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
794 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
795 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
796 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
797 (BASE_MAXIMUM): Renamed from BASE_MAX.
798 (BASE_MINIMUM): Renamed from BASE_MIN.
799 (ACTION_MAX): Remove; unused.
800 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
801 Unnecessary casts removed from above defines.
802
803
804 Fix misspelling in names.
805 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
806 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
807 G_NODE_ALIGNEMENT.
808
809
810 * lib/timevar.c (timevar_report): Renamed from time_report,
811 for consistency with other names.
812 * lib/timevar.h (timevar_report): New decl.
813 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
814
815
816 Sort include-file uses.
817
818 Reorder all include files under src to be in the order "system.h".
819 then the ../lib include files in angle brackets (alphabetized),
820 then the . include files in double-quotes (alphabetized). Fix
821 dependency breakages encountered in this process, as follows:
822 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
823 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
824 * src/state.h: Include "symtab.h".
825
826 2002-12-08 Paul Eggert <eggert@twinsun.com>
827
828 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
829 since this causes problems when __file__ contains character
830 sequences like "@" that are treated specially by src/scan-skel.l.
831 Instead, just use the file's basename. This fixes the bug
832 reported by Martin Mokrejs in
833 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
834
835 2002-12-06 Paul Eggert <eggert@twinsun.com>
836
837 Add support for rules that do not have trailing semicolons, as
838 POSIX requires. Improve the quality of locations in Bison
839 diagnostics.
840
841 * src/location.c: Include <quotearg.h>.
842 (empty_location): Now const.
843 (location_print): New function. Follow the recommendation of the
844 GNU Coding Standards for locations that span file boundaries.
845 * src/location.h: Do not include <quotearg.h>; no longer needed.
846 (boundary): New type.
847 (location_t): Use it. This allows locations to span file boundaries.
848 All member uses changed: file -> start.file or end.file (as needed),
849 first_line -> start.line, first_column -> start.column,
850 last_line -> end.line, last_column -> end.column.
851 (equal_boundaries): New function.
852 (LOCATION_RESET, LOCATION_STEP): Remove.
853 (LOCATION_PRINT): Remove. All callers changed to use location_print.
854 (empty_location): Now const.
855 (location_print): New decl.
856 * src/parse-gram.y (lloc_default): New function, which handles
857 empty locations more accurately.
858 (YYLLOC_DEFAULT): Use it.
859 (%token COLON): Remove.
860 (%token ID_COLON): New token.
861 (rules): Use it.
862 (declarations, rules): Remove trailing semicolon.
863 (declaration, rules_or_grammar_declaration):
864 Allow empty (";") declaration.
865 (symbol_def): Remove empty actions; no longer needed.
866 (rules_or_grammar_declaration): Remove trailing semicolon.
867 (semi_colon.opt): Remove.
868 * src/reader.h: Include location.h.
869 (scanner_cursor): New decl.
870 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
871 rolling our own.
872 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
873 of *loc.
874 (STEP): Remove. No longer needed, now that adjust_location does
875 the work. All uses removed.
876 (scanner_cursor): New var.
877 (adjust_location): Renamed from extend_location. It now sets
878 *loc and adjusts the scanner cursor. All uses changed.
879 Don't bother testing for CR.
880 (handle_syncline): Remove location arg; now updates scanner cursor.
881 All callers changed.
882 (unexpected_end_of_file): Now accepts start boundary of token or
883 comment, not location. All callers changed. Update scanner cursor,
884 not the location.
885 (SC_AFTER_IDENTIFIER): New state.
886 (context_state): Renamed from c_context. All uses changed.
887 (id_loc, code_start, token_start): New local vars.
888 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
889 processing of Yacc white space and equivalents here.
890 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
891 instead of returning ID immediately, since we need to search for
892 a subsequent colon.
893 (<INITIAL>"'", "\""): Save token_start.
894 (<INITIAL>"%{", "{", "%%"): Save code_start.
895 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
896 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
897 BEGIN context_state at end, not INITIAL.
898 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
899 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
900 Return correct token start.
901 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
902 the start of a character, string or multiline comment is found.
903 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
904 Reduction): Adjust reported locations to match the more-precise
905 results now expected.
906 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
907 * tests/reduce.at (Useless Rules, Reduced Automaton,
908 Underivable Rules): Likewise.
909 * tests/regression.at (Invalid inputs): No longer `expecting ";"
910 or "|"' now that so many other tokens are allowed by the new grammar.
911
912 * src/complain.h (current_file): Remove duplicate decl;
913 current_file is now owned by files.h.
914 * src/complain.c, src/scan-gram.l: Include files.h.
915
916 2002-12-06 Paul Eggert <eggert@twinsun.com>
917
918 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
919 promotes to int; it might be unsigned int.
920 * data/yacc.c (yy_reduce_print): Likewise.
921
922 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
923 be #defined in the prologue, not in the Bison declarations.
924 This fixes Debian Bug 102878, reported by Shaul Karl.
925
926 2002-12-02 Paul Eggert <eggert@twinsun.com>
927
928 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
929 * lib/strtoul.c: New file, from gnulib.
930 This fixes a porting bug reported by Peter Klein in
931 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
932
933 2002-11-30 Paul Eggert <eggert@twinsun.com>
934
935 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
936 and put only a forward declaration in the prologue. This is for
937 consistency with the other scanner helper functions.
938
939 Type clashes now generate warnings, not errors, since it
940 appears that POSIX may allow some grammars with type clashes.
941 * src/reader.c (grammar_current_rule_check): Warn about
942 type clashes instead of complaining.
943 * tests/input.at (Type Clashes): Expect warnings, not complaints.
944
945 Add Yacc library, since POSIX requires it.
946 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
947 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
948 * lib/main.c, lib/yyerror.c: New files.
949
950 gram_error can be static; it need not be extern.
951 * src/reader.h (gram_error): Remove decl.
952 * src/parse-gram.y (gram_error): Now static. Add static decl.
953 (print_token_value): Omit parameter names from forward decl,
954 for consistency.
955
956 2002-11-29 Paul Eggert <eggert@twinsun.com>
957
958 * doc/bison.texinfo: Emphasize that yylex and yyerror must
959 be declared before being used. E.g., one should typically
960 declare them in the prologue. Use GNU coding style in examples.
961 Put "const" consistently after the type it modifies. Mention
962 that C99 supports "inline". Mention that yyerror traditionally
963 returns "int".
964
965 %parse-param and %lex-param now take just one argument, the
966 declaration; the argument name is deduced from the declaration.
967
968 * doc/bison.texinfo (Parser Function, Pure Calling, Error
969 Reporting, Table of Symbols): Document this.
970 * src/parse-gram.y (add_param): New function.
971 (COMMA): Remove.
972 (declaration): Implement new rule for %parse-param and %lex-param.
973 * src/scan-gram.l: "," now elicits a warning, rather than being
974 a token; this is more compatible with byacc.
975 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
976
977 2002-11-27 Paul Eggert <eggert@twinsun.com>
978
979 Rename identifiers to avoid real and potential collisions.
980
981 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
982 to avoid collision with lex macro described by Bruce Lilly in
983 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
984 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
985 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
986 * src/parse-gram.y (print_token_value): Renamed from yyprint.
987 All uses changed.
988 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
989 The name "yycontrol" violates the name space rules, and this stuff
990 wasn't being used anyway.
991 (input): Remove action; this stuff wasn't being used.
992 (gram_error): Rename local variable yylloc -> loc.
993 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
994 (YY_DECL): Don't use "yy" at start of local variables.
995 All uses changed, e.g., yylloc -> loc.
996 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
997 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
998 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
999 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1000
1001 * src/parse-gram.y (gram_error): loc is now const *.
1002 * src/reader.h (gram_error): Likewise.
1003
1004 2002-11-24 Paul Eggert <eggert@twinsun.com>
1005
1006 Version 1.75c.
1007
1008 * tests/actions.at (Actions after errors): Use an output format
1009 more similar to that of the Printers and Destructors test.
1010 Test the position of the ';' token too.
1011 (Printers and Destructors): Likewise.
1012 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1013 unnecessarily alarming people when the test fails.
1014
1015 * data/yacc.c (yyerrlab1): Move this label down, so that the
1016 parser does not discard the lookahead token if the user code
1017 invokes YYERROR. This change is required for POSIX conformance.
1018
1019 * lib/error.c: Sync with gnulib.
1020
1021 2002-11-22 Paul Eggert <eggert@twinsun.com>
1022
1023 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1024 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1025 * lib/xmalloc.c: Likewise.
1026
1027 2002-11-20 Paul Eggert <eggert@twinsun.com>
1028
1029 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1030
1031 2002-11-20 Paul Eggert <eggert@twinsun.com>
1032
1033 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1034 should use `if (! x) abort ();' rather than `assert (x);', and
1035 anyway it's one less thing to worry about configuring.
1036
1037 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1038 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1039 and replace all instances of assert with abort.
1040 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1041 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1042
1043 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1044 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1045 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1046 hash_find_entry, hash_rehash, hash_insert): Likewise.
1047 * src/conflicts.c (resolve_sr_conflict): Likewise.
1048 * src/lalr.c (set_goto_map, map_goto): Likewise.
1049 * src/nullable.c (nullable_compute): Likewise.
1050 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1051 * src/reader.c (packgram, reader): Likewise.
1052 * src/state.c (state_new, state_free, state_transitions_set,
1053 state_reduction_find): Likewise.
1054 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1055 symbol_pack): Likewise.
1056 * src/tables.c (conflict_row, pack_vector): Likewise.
1057 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1058 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1059 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1060 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1061
1062 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1063 (ARGMATCH_CONSTRAINT): New macro.
1064 (ARGMATCH_ASSERT): Use it.
1065
1066 * src/system.h (verify): New macro.
1067 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1068 rather than assert.
1069 * src/tables.c (tables_generate): Likewise.
1070
1071 * src/struniq.c (struniq_assert): Now returns void, and aborts
1072 if the assertion is false.
1073 (struniq_assert_p): Remove.
1074 * src/struniq.h: Likewise.
1075
1076 2002-11-18 Paul Eggert <eggert@twinsun.com>
1077
1078 * data/glr.c (yygetLRActions): Replace `yyindex' with
1079 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1080 This fixes the regression with Sun ONE Studio 7 cc that I reported in
1081 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
1082
1083 2002-11-18 Akim Demaille <akim@epita.fr>
1084
1085 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1086 space.
1087 From Tim Van Holder.
1088
1089 2002-11-17 Paul Eggert <eggert@twinsun.com>
1090
1091 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1092 to "SyntaxError" for consistency with my 2002-11-15 change.
1093
1094 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1095 not define to {}, since this breaks the common use of `YYDPRINTF
1096 ((...));' if a single statement is desired (e.g. before `else').
1097 Work around GCC warnings by surrounding corresponding calls with
1098 {} if needed.
1099 (yyhasResolvedValue): Remove unused function.
1100 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1101 loop body.
1102 (yyreportSyntaxError): Renamed from yyreportParseError.
1103 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1104 All uses changed.
1105 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1106 extern when possible. Remove unused initializations.
1107
1108 2002-11-16 Akim Demaille <akim@epita.fr>
1109
1110 Augment the similarity between GLR and LALR traces.
1111
1112 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1113 (YY_REDUCE_PRINT): New.
1114 (yyparse): Use them.
1115 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1116 YYDPRINT here.
1117 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1118 state reached after the reduction/recovery, since...
1119 (yyparse, yyprocessOneStack): Report the state we are entering in.
1120
1121 2002-11-16 Akim Demaille <akim@epita.fr>
1122
1123 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1124 Add support for --trace=skeleton.
1125 * src/scan-skel.l: %option debug.
1126 Scan strings of non-@ or \n instead of character by character.
1127 (scan_skel): Handle trace_skeleton.
1128 (QPUTS): New.
1129 (@output_parser_name@, @output_header_name@): ``Restore'' their
1130 support (used to be M4 macros).
1131 * data/yacc.c: Quote larger chunks, a la glr.c.
1132 * data/lalr1.cc: Likewise.
1133 The header guards are no longer available, so use some other
1134 string than `YYLSP_NEEDED'.
1135
1136 2002-11-16 Akim Demaille <akim@epita.fr>
1137
1138 Make the ``Printers and Destructors'' test more verbose, taking
1139 `yacc.c''s behavior as (possibly wrong) reference.
1140
1141 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1142 instead of fprint on stdout.
1143 Set and report the last_line of the symbols.
1144 Consistently display values and locations.
1145
1146 2002-11-16 Paul Eggert <eggert@twinsun.com>
1147
1148 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1149
1150 2002-11-15 Paul Eggert <eggert@twinsun.com>
1151
1152 * tests/actions.at (Actions after errors): New test case.
1153
1154 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1155 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1156 tests/action.at, tests/calc.at, tests/conflicts.at,
1157 tests/cxx-type.at, tests/regression.at:
1158 "parse error" -> "syntax error" for POSIX compatibility.
1159 "parsing stack overflow..." -> "parser stack overflow" so
1160 that code matches Bison documentation.
1161
1162 2002-11-15 Akim Demaille <akim@epita.fr>
1163
1164 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1165 take two BRACED_CODE, not two string_content.
1166 Free the scanner's obstack when we are done.
1167 (code_content): New.
1168 * tests/calc.at: Adjust.
1169 * doc/bison.texinfo: Adjust.
1170 Also, make sure to include the `,' for these declarations.
1171
1172 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1173
1174 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1175 definition; avoids potential autoreconf problems.
1176
1177 2002-11-15 Akim Demaille <akim@epita.fr>
1178
1179 Always check the value returned by yyparse.
1180
1181 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1182 returned by yyparse.
1183 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1184 Adjust calls.
1185 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1186 returned by yyparse.
1187
1188 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1189
1190 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1191 on input.at test.
1192
1193 2002-11-14 Paul Eggert <eggert@twinsun.com>
1194
1195 * src/output.c (output_skeleton): Call xfopen instead of
1196 duplicating xfopen's body.
1197
1198 Fix bugs reported by Nelson H. F. Beebe in
1199 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1200
1201 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1202 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1203 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1204 file twice in the grammar, as an extra check.
1205
1206 * tests/input.at (Torturing the Scanner): Surround the
1207 backslash-newline tests with "#if 0", to make it less likely that
1208 we'll run into compiler bugs. Bring back solitary \ inside
1209 comment, but add a closing comment to work around HP C bug. Don't
1210 test backslash-newline in C character constant.
1211
1212 2002-11-14 Akim Demaille <akim@epita.fr>
1213
1214 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1215 status of the compiler.
1216 Calling `exit 1' is no longer needed.
1217 Reported by Nelson H. F. Beebe.
1218
1219 2002-11-14 Akim Demaille <akim@epita.fr>
1220
1221 * tests/atlocal.in (CPPFLAGS): We have config.h.
1222 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1223 New.
1224 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1225 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1226 * tests/regression.at, tests/torture.at: Use them for all the
1227 grammars that are to be compiled.
1228 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1229 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1230 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1231
1232 2002-11-14 Akim Demaille <akim@epita.fr>
1233
1234 * doc/bison.texinfo: Various formatting changes (alignments in
1235 samples, additional @group/@end group, GCS in samples.
1236 Use @deffn instead of simple @table to define the directives,
1237 macros, variables etc.
1238
1239 2002-11-13 Paul Eggert <eggert@twinsun.com>
1240
1241 Fix some bugs reported by Albert Chin-A-Young in
1242 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1243
1244 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1245 -o c"; the HP C compiler chatters during compilation.
1246 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1247 * tests/headers.at (export YYLTYPE): Likewise.
1248
1249 * tests/input.at (Torturing the Scanner): Remove lines containing
1250 solitary backslashes, as they tickle a bug in the HP C compiler.
1251
1252 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1253 comments, since they're not portable. Use GNU coding style.
1254
1255 2002-11-13 Akim Demaille <akim@epita.fr>
1256
1257 * data/yacc.c: Leave bigger chunks of quoted text.
1258 (YYDSYMPRINTF): New.
1259 Use it to report symbol activities.
1260 * data/glr.c (YYDSYMPRINTF): New.
1261 Use it.
1262
1263 2002-11-12 Paul Eggert <eggert@twinsun.com>
1264
1265 Version 1.75b.
1266
1267 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1268 (yyglrReduce): Return yyok, not 0.
1269 This should avoid the enumerated-type warnings reported
1270 by Nelson H. F. Beebe in
1271 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1272
1273 * lib/bbitset.h (BITSET_INLINE): Remove.
1274 * lib/bitset.h [! BITSET_INLINE]: Remove.
1275 (bitset_set, bitset_reset, bitset_test): Rename local vars
1276 to avoid shadowing warnings by GCC.
1277
1278 * data/glr.c (inline): Remove #define. It's the user's
1279 responsibility to #define it away, just like 'const'.
1280 This fixes one of the bugs reported by Nelson H. F. Beebe in
1281 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1282
1283 * Makefile.maint (po-check): Scan .l and .y files instead of the
1284 .c and the .h files that they generate. This fixes the bug
1285 reported by Tim Van Holder in:
1286 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1287 Look for N_ as well as for _. Try to avoid matching #define for
1288 N_ and _.
1289 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1290 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1291 * src/scan-gram.l: Revamp regular expressions so that " and '
1292 do not confuse xgettext.
1293
1294 * src/struniq.h (struniq_new): Do not declare the return type
1295 to be 'const'; this violates the C standard.
1296 * src/struniq.c (struniq_new): Likewise.
1297
1298 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1299
1300 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1301 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1302 linker.
1303
1304 2002-11-12 Akim Demaille <akim@epita.fr>
1305
1306 * Makefile.maint: Sync with Autoconf:
1307 (local_updates): New.
1308
1309 2002-11-12 Akim Demaille <akim@epita.fr>
1310
1311 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1312
1313 2002-11-12 Akim Demaille <akim@epita.fr>
1314
1315 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1316 locations.
1317
1318 2002-11-12 Akim Demaille <akim@epita.fr>
1319
1320 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1321 not yyvalue.
1322
1323 2002-11-12 Akim Demaille <akim@epita.fr>
1324
1325 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1326 Use it to test the GLR parser.
1327
1328 2002-11-12 Akim Demaille <akim@epita.fr>
1329
1330 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1331 defines it.
1332 * data/glr.c (yystos): New.
1333 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1334 (YYDSYMPRINT): New.
1335 (yyval): Don't define it, it is handled via M4.
1336 (yyrecoverParseError): Free verbosely the discarded symbols.
1337 * data/yacc.c (yysymprint): Remove, rather...
1338 (b4_yysymprint_generate): invoke.
1339 * data/c.m4 (b4_yysymprint_generate): New.
1340 Accept pointers as arguments, as opposed to the version from
1341 yacc.c.
1342 (b4_yydestruct_generate): Likewise.
1343 * tests/cations.at (Printers and Destructors): Use Bison directives
1344 instead of CPP macros.
1345 Don't rely on internal details.
1346
1347 2002-11-12 Akim Demaille <akim@epita.fr>
1348
1349 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1350 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1351 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1352 it against YYEMPTY and so forth), work on yytoken (i.e., set
1353 it to YYEMPTY etc.).
1354 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1355 (b4_symbol_actions): Remove.
1356 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1357 for 0, end-of-input.
1358
1359 2002-11-12 Akim Demaille <akim@epita.fr>
1360
1361 * doc/bison.texinfo (Destructor Decl): New.
1362
1363 2002-11-12 Akim Demaille <akim@epita.fr>
1364
1365 * src/tables.c (tables_generate): Use free for pointers that
1366 cannot be NULL, not XFREE.
1367 (pack_vector): Use assert, not fatal, for bound violations.
1368 * src/state.c (state_new): Likewise.
1369 * src/reader.c (reader): Likewise.
1370 * src/lalr.c (set_goto_map): Likewise.
1371 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1372 the file name.
1373
1374 2002-11-12 Akim Demaille <akim@epita.fr>
1375
1376 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1377 Restore.
1378 * src/scan-gram.l (last_string): Is global to the file, not to
1379 yylex.
1380 * src/parse-gram.y (input): Don't append the epilogue here,
1381 (epilogue.opt): do it here, and free the scanner's obstack.
1382 * src/reader.c (epilogue_set): Rename as...
1383 (epilogue_augment): this.
1384 * data/c.m4 (b4_epilogue): Defaults to empty.
1385
1386 2002-11-12 Akim Demaille <akim@epita.fr>
1387
1388 * src/getargs.c (long_options): Remove duplicates.
1389 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1390 Remove.
1391 * doc/bison.rnh: Remove.
1392 * doc/bison.texinfo (VMS Invocation): Remove.
1393
1394 2002-11-12 Akim Demaille <akim@epita.fr>
1395
1396 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1397 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1398
1399 Use struniq for symbols.
1400
1401 * src/symtab.h (symbol_t): The tag member is a struniq.
1402 (symbol_type_set): Adjust.
1403 * src/symtab.c (symbol_new): Takes a struniq.
1404 (symbol_free): Don't free the tag member.
1405 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1406 (hash_compare_symbol, hash_symbol): these.
1407 Use the fact that tags as struniqs.
1408 (symbol_get): Use struniq_new.
1409 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1410 Returns a strniq.
1411 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1412 and type members are struniqs.
1413 * src/reader.c (get_merge_function)
1414 (grammar_current_rule_merge_set): Adjust.
1415 (TYPE, current_type): Are struniq.
1416
1417 Use struniq for file names.
1418
1419 * src/files.h, src/files.c (infile): Split into...
1420 (grammar_file, current_file): these.
1421 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1422 * src/reduce.c (reduce_print): Likewise.
1423 * src/getargs.c (getargs): Likewise.
1424 * src/complain.h, src/complain.c: Likewise.
1425 * src/main.c (main): Call struniqs_new early enough to use it for
1426 file names.
1427 Don't free the input file name.
1428
1429 2002-11-12 Akim Demaille <akim@epita.fr>
1430
1431 * src/symtab.c (symbol_free): Remove dead deactivated code:
1432 type_name are properly removed.
1433 Don't use XFREE to free items that cannot be NULL.
1434 * src/struniq.h, src/struniq.c: New.
1435 * src/main.c (main): Initialize/free struniqs.
1436 * src/parse-gram.y (%union): Add astruniq member.
1437 (yyprint): Adjust.
1438 * src/scan-gram.l (<{tag}>): Return a struniq.
1439 Free the obstack bit that used to store it.
1440 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1441
1442 2002-11-11 Paul Eggert <eggert@twinsun.com>
1443
1444 Revamp to fix many (but not all) of the C- and M4-related quoting
1445 problems. Among other things, this fixes the Bison bug reported
1446 by Jan Hubicka when processing the Bash grammar; see:
1447 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
1448
1449 Use new @ escapes consistently. Represent brackets with @{ and @}
1450 rather than @<:@ and @:>@, since this works a bit better with dumb
1451 editors like vi. Represent @ with @@, since @ is now consistently
1452 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1453 __ofile__, to avoid unexpected expansions. Similarly, use @output
1454 rather than #output.
1455
1456 * data/c.m4 (b4_copyright): Omit file name from comment, since
1457 the file name could contain "*/".
1458 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1459 be quoted. All uses changed.
1460
1461 * data/glr.c: Use new @ escapes consistently.
1462 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1463 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1464 Remove, since they couldn't handle arbitrary characters in file
1465 names.
1466 * data/lalr1.cc: Likewise.
1467 * data/yacc.c: Likewise.
1468
1469 * src/files.c (output_infix): Remove; all uses removed.
1470 * src/files.h: Likewise.
1471
1472 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1473 mishandled funny characters in file names, and anyway it isn't
1474 needed any more.
1475 * data/yacc.c: Likewise.
1476 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1477
1478 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1479 * data/yacc.c: Likewise.
1480
1481 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1482 strings now.
1483 (muscle_init): Quote filename as a C string.
1484 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1485 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1486 * src/output.c (escaped_file_name_output): New function.
1487 (prepare_symbols): Quote tokens for M4.
1488 (prepare): Don't insert output_infix, output_prefix,
1489 output_parser_name, output_header_name; this is now down by scan-skel.
1490 Insert skeleton as a C string.
1491
1492 * src/output.c (user_actions_output, symbol_destructors_output,
1493 symbol_printers_output): Quote filenames for C and M4.
1494 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1495
1496 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1497 escapes other than \\ and \'; this simplifies the code.
1498 (<SC_STRING>): Likewise, for \\ and \".
1499 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1500 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1501 Use new escapes @{ and @} for [ and ].
1502
1503 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1504 them with auto vars.
1505 Switch to new escape scheme, where @ is the escape character uniformly.
1506 Abort if a stray escape character is found. Avoid unbounded input
1507 buffer when parsing non-escaped text.
1508
1509 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1510 __oline__, #output, $@, and @{ do not have unintended meanings.
1511
1512 2002-11-09 Paul Eggert <eggert@twinsun.com>
1513
1514 Fix the test failure due to GCC warnings described in
1515 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
1516 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1517 evaluate to 0 if it's impossible for NINF to be in the respective
1518 table.
1519 (yygetLRActions, yyrecoverParseError): Use them.
1520
1521 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1522 counted in the token inserted at end of file. Now takes
1523 location_t *, not location_t, so that the location can be
1524 adjusted. All uses changed.
1525
1526 * tests/regression.at (Invalid inputs): Adjust wording in
1527 diagnostic to match the new behavior.
1528
1529 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1530 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1531 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1532 abort ();'. This reduces the runtime of the "Many lookaheads"
1533 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1534 GCC 3.2.
1535
1536 2002-11-07 Paul Eggert <eggert@twinsun.com>
1537
1538 * src/parse-gram.y (CHARACTER): Remove unused token.
1539 All uses removed.
1540
1541 * src/scan-gram.l: Remove stack option. We no longer use the
1542 stack, since the stack was never deeper than 1; instead, use the
1543 new auto var c_context to record the stacked value.
1544
1545 Remove nounput option. At an unexpected end of file, we now unput
1546 the minimal input necessary to end cleanly; this simplifies the
1547 code.
1548
1549 Avoid unbounded token sizes where this is easy.
1550
1551 (unexpected_end_of_file): New function.
1552 Use it to systematize the error message on unexpected EOF.
1553 (last-string): Now auto, not static.
1554 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1555 (scanner_last_string_free): Remove; not used.
1556 (percent_percent_count): Move decl to just before use.
1557 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1558 not the (never otherwised-used) CHARACTER.
1559
1560 2002-11-07 Akim Demaille <akim@epita.fr>
1561
1562 Let yyerror always receive the msg as last argument, so that
1563 yyerror can be variadic.
1564
1565 * data/yacc.c (b4_yyerror_args): New.
1566 Use it when calling yyerror.
1567 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1568 Use it when calling yyerror.
1569 * doc/bison.texinfo (Error Reporting): Adjust.
1570 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1571 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1572
1573 2002-11-06 Akim Demaille <akim@epita.fr>
1574
1575 #line should have quoted strings.
1576 Ideally, this should be done by m4_quotearg.
1577
1578 * src/scan-skel.l: Include quotearg.h.
1579 Quote __ofile__.
1580 * src/output.c (symbol_printers_output)
1581 (symbol_destructors_output): Quote the file name.
1582
1583 2002-11-06 Akim Demaille <akim@epita.fr>
1584
1585 * tests/regression.at (Invalid inputs): Adjust to the recent
1586 messages.
1587
1588 2002-11-06 Akim Demaille <akim@epita.fr>
1589
1590 Restore --no-lines.
1591 Reported by Jim Kent.
1592
1593 * data/c.m4 (b4_syncline): New.
1594 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1595 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1596 * src/output.c (user_actions_output): Likewise.
1597 (prepare): Define 'b4_synclines_flag'.
1598 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
1599
1600 2002-11-06 Akim Demaille <akim@epita.fr>
1601
1602 * src/main.c (main): Free `infile'.
1603 * src/scan-gram.l (handle_syncline): New.
1604 Recognize `#line'.
1605 * src/output.c (user_actions_output, symbol_destructors_output)
1606 (symbol_printers_output): Use the location's file name, not
1607 infile.
1608 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1609
1610 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1611
1612 * src/tables.c (matching_state): Don't allow states to match if
1613 either has GLR conflict entries.
1614
1615 2002-11-05 Paul Eggert <eggert@twinsun.com>
1616
1617 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1618 "integer out of range" rather than "invalid value".
1619 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1620 accordingly.
1621
1622 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1623 Also, remove one static variable in the scanner.
1624
1625 * src/scan-gram.l (braces_level): Now auto, not static.
1626 Initialize to zero if the compiler is being picky.
1627 (INITIAL): Clear braces_level instead of incrementing it.
1628 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1629 as POSIX 1003.1-2001 requires.
1630 * src/system.h (IF_LINT): New macro, taken from coreutils.
1631 * configure.ac: Define "lint" if --enable-gcc-warnings.
1632
1633 2002-11-05 Akim Demaille <akim@epita.fr>
1634
1635 * src/scan-gram.l: When it starts with `%', complain about the
1636 whole directive, not just that `invalid character: %'.
1637
1638 2002-11-04 Akim Demaille <akim@epita.fr>
1639
1640 * Makefile.maint: Update from Autoconf.
1641 (update, cvs-update, po-update, do-po-update): New.
1642
1643 2002-11-04 Akim Demaille <akim@epita.fr>
1644
1645 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1646 and yyerror.
1647 Have yyerror `use' its arguments.
1648 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1649 returns true when location & yacc & pure & parse-param.
1650 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1651
1652 2002-11-04 Akim Demaille <akim@epita.fr>
1653
1654 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1655 clashes.
1656 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1657 font-lock-mode.
1658 Use complain_at.
1659 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1660 slot 0.
1661
1662 2002-11-03 Paul Eggert <eggert@twinsun.com>
1663
1664 * src/reader.c (get_merge_function, grammar_current_rule_check):
1665 Use consistent diagnostics for reporting type name clashes.
1666 Quote the types with <>, for consistency with Yacc.
1667 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1668
1669 2002-11-03 Akim Demaille <akim@epita.fr>
1670
1671 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1672 New.
1673 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1674 (b4_parse_param): Remove.
1675 Use b4_identification.
1676 Propagate b4_pure_args where needed to pass them to yyerror.
1677 * data/glr.m4 (b4_parse_param): Remove.
1678 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1679 (b4_lpure_formals): New.
1680 Use b4_identification.
1681 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1682 b4_user_formals and b4_user_args.
1683 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1684 (yyreportAmbiguity): When using a pure parser, also need
1685 the location, and the parse-params.
1686 Adjust callers.
1687 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1688 When using a pure parser, also need the parse-params.
1689 Adjust callers.
1690 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1691 (%pure-parser + %parse-param) LALR and GLR parsers.
1692 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1693 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1694 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1695 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1696 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1697 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1698 * doc/bison.texinfo: Untabify the whole file.
1699 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1700 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1701 (Error Reporting): Adjust to these new directives.
1702 Document %error-verbose, deprecate YYERROR_VERBOSE.
1703
1704 2002-11-03 Akim Demaille <akim@epita.fr>
1705
1706 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1707 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1708 command line options.
1709 * tests/cxx-type.at: Formatting changes.
1710
1711 2002-11-03 Paul Eggert <eggert@twinsun.com>
1712
1713 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1714 to count columns correctly, and to check for invalid inputs.
1715
1716 Use mbsnwidth to count columns correctly. Account for tabs, too.
1717 Include mbswidth.h.
1718 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1719 (extend_location): New function.
1720 (YY_LINES): Remove.
1721
1722 Handle CRLF in C code rather than in Lex code.
1723 (YY_INPUT): New macro.
1724 (no_cr_read): New function.
1725
1726 Scan UCNs, even though we don't fully handle them yet.
1727 (convert_ucn_to_byte): New function.
1728
1729 Handle backslash-newline correctly in C code.
1730 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1731 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1732 all uses changed.
1733 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1734 Use {splice} wherever C allows backslash-newline.
1735 YY_STEP after space, newline, vertical-tab.
1736 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
1737
1738 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1739
1740 ({int}, handle_action_dollar, handle_action_at): Check for integer
1741 overflow.
1742
1743 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1744
1745 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1746 as well as \000. Check for UCHAR_MAX, not 255.
1747 Allow \x with an arbitrary positive number of digits, as in C.
1748 Check for overflow here.
1749 Allow \? and UCNs, for compatibility with C.
1750
1751 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1752 with quote slot used by complain_at.
1753
1754 * tests/input.at: Add tests for backslash-newline, m4 quotes
1755 in symbols, long literals, and funny escapes in strings.
1756
1757 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1758 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1759 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1760 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1761 * m4/mbswidth.m4: New file, from GNU coreutils.
1762
1763 * doc/bison.texinfo (Grammar Outline): Document // comments.
1764 (Symbols): Document that trigraphs have no special meaning in Bison,
1765 nor is backslash-newline allowed.
1766 (Actions): Document that trigraphs have no special meaning.
1767
1768 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1769 no longer used.
1770
1771 2002-11-02 Paul Eggert <eggert@twinsun.com>
1772
1773 * src/reader.c: Don't include quote.h; not needed.
1774 (get_merge_function): Reword warning to be consistent with
1775 type clash diagnostic in grammar_current_rule_check.
1776
1777 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
1778 bug in trigraph handling.
1779
1780 * src/output.c (prepare_symbols): When printing token names,
1781 escape "[" as "@<:@" and likewise for "]".
1782
1783 * src/system.h (errno): Remove declaration, as we are now
1784 assuming C89 or better, and C89 guarantees errno.
1785
1786 2002-10-30 Paul Eggert <eggert@twinsun.com>
1787
1788 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
1789 Check for close failures.
1790 * src/files.h (xfclose): Return void, not int, since it always
1791 returned zero.
1792 * src/files.c (xfclose): Likewise. Report I/O error if ferror
1793 indicates one.
1794 * src/output.c (output_skeleton): Use xfclose rather than fclose
1795 and ferror. xfclose now checks ferror.
1796
1797 * data/glr.c (YYLEFTMOST_STATE): Remove.
1798 (yyreportTree): Use a stack-based leftmost state. This avoids
1799 our continuing battles with bogus warnings about initializers.
1800
1801 2002-10-30 Akim Demaille <akim@epita.fr>
1802
1803 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
1804 #if.
1805
1806 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1807
1808 * tests/glr-regr1.at: New test for reported regressions.
1809 * tests/testsuite.at: Add glr-regr1.at test.
1810 * tests/Makefile.am: Add glr-regr1.at test.
1811
1812 2002-10-24 Paul Eggert <eggert@twinsun.com>
1813
1814 Version 1.75a.
1815
1816 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
1817 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
1818 we use malloc. Don't assume 'A' through 'Z' are contiguous.
1819 Don't assume strdup exists; POSIX says its an XSI extension.
1820 Check for buffer overflow on input.
1821
1822 2002-10-24 Akim Demaille <akim@epita.fr>
1823
1824 * src/output.c (output_skeleton): Don't disable M4sugar comments
1825 too soon: it results in comments being expanded.
1826 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
1827 first output.
1828
1829 2002-10-24 Akim Demaille <akim@epita.fr>
1830
1831 * data/yacc.c (m4_int_type): New.
1832 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
1833 char' as only yacc.c wants K&R portability.
1834 * data/glr.c (yysigned_char): Remove.
1835 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
1836 Reported by Quoc Peyrot.
1837
1838 2002-10-23 Paul Eggert <eggert@twinsun.com>
1839
1840 * src/main.c (main): With --trace=time, report times even if a
1841 non-fatal error occurs. Formerly, the times were reported in some
1842 such cases but not in others.
1843 * src/reader.c (reader): Just return if a complaint has been issued,
1844 instead of exiting, so that 'main' can report times.
1845
1846 2002-10-22 Akim Demaille <akim@epita.fr>
1847
1848 * src/system.h: Include sys/types.
1849 Reported by Bert Deknuydt.
1850
1851 2002-10-23 Paul Eggert <eggert@twinsun.com>
1852
1853 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
1854 Suggested by Art Haas.
1855
1856 2002-10-22 Paul Eggert <eggert@twinsun.com>
1857
1858 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
1859 decl; not needed any more.
1860 * src/main.c (main): Use return to exit, undoing yesterday's change.
1861 The last OS that we could find where this wouldn't work is
1862 SunOS 3.5, and that's too old to worry about now.
1863
1864 * data/glr.c (struct yyltype): Define members even when not
1865 doing locations. This is more consistent with yacc.c, and it
1866 works around the following bug reports:
1867 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
1868 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
1869
1870 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
1871 @acronym consistently. Standardize on "Yacc" instead of "YACC",
1872 "Algol" instead of "ALGOL". Give a bit more history about BNF.
1873
1874 2002-10-22 Akim Demaille <akim@epita.fr>
1875
1876 * data/README: New.
1877
1878 2002-10-21 Paul Eggert <eggert@twinsun.com>
1879
1880 Be consistent about 'bool'; the old code used an enum in one
1881 module and an int in another, and this violates the C standard.
1882 * m4/stdbool.m4: New file, from coreutils 4.5.3.
1883 * configure.ac (AC_HEADER_STDBOOL): Add.
1884 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
1885 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
1886 * src/symtab.c (hash_compare_symbol_t): Likewise.
1887 * src/system.h (bool, false, true): Use a definition consistent
1888 with ../lib/hash.c. All uses changed.
1889
1890 * src/complain.c (warning_issued): Renamed from warn_message_count,
1891 so that we needn't worry about integer overflow (!).
1892 Now of type bool. All uses changed.
1893 (complaint_issued): Renamed from complain_message_count; likewise.
1894
1895 * src/main.c (main): Use exit to exit with failure.
1896
1897 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
1898 rather than 1 and 0.
1899 * src/main.c (main): Likewise.
1900 * src/getargs.c (getargs): Likewise.
1901 * src/reader.c (reader): Likewise.
1902
1903 * src/getarg.c (getargs): Remove duplicate code for
1904 "Try `bison --help'".
1905
1906 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
1907 What was that "2" for?
1908
1909 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
1910 * src/getargs.c (usage): Likewise.
1911
1912 * src/getargs.c (getargs): When there are too few operands, report
1913 the last one. When there are too many, report the first extra
1914 one. This is how diffutils does it.
1915
1916 2002-10-20 Paul Eggert <eggert@twinsun.com>
1917
1918 Remove K&R vestiges.
1919 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
1920 * src/complain.c (VA_START): Remove. Assume prototypes.
1921 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
1922 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
1923 fatal): Assume prototypes.
1924 * src/complain.h: Assume prototypes.
1925 * src/system.h (PARAMS): Remove.
1926 Include <limits.h> unconditionally, since it's guaranteeed even
1927 for a freestanding C89 compiler.
1928 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
1929 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
1930
1931 2002-10-20 Akim Demaille <akim@epita.fr>
1932
1933 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
1934 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
1935 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
1936 (yyresolveStates, yyresolveAction, yyresolveStack)
1937 (yyprocessOneStack): Use them.
1938 (yy_reduce_print): New.
1939 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
1940
1941 2002-10-20 Akim Demaille <akim@epita.fr>
1942
1943 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
1944 arguments and output `void'.
1945 (b4_c_function): Rename as...
1946 (b4_c_function_def): this.
1947 (b4_c_function_decl, b4_c_ansi_function_def)
1948 (b4_c_ansi_function_decl): New.
1949 Change the interpretation of the arguments: before `int, foo', now
1950 `int foo, foo'.
1951 * data/yacc.c (yyparse): Prototype and define thanks to these.
1952 Adjust b4_c_function_def uses.
1953 * data/glr.c (yyparse): Likewise, but ANSI only.
1954
1955 2002-10-20 Akim Demaille <akim@epita.fr>
1956
1957 * src/output.c (prepare): Move the definition of `tokens_number',
1958 `nterms_number', `undef_token_number', `user_token_number_max'
1959 to...
1960 (prepare_tokens): Here.
1961 (prepare_tokens): Rename as...
1962 (prepare_symbols): this.
1963 (prepare): Move the definition of `rules_number' to...
1964 (prepare_rules): here.
1965 (prepare): Move the definition of `last', `final_state_number',
1966 `states_number' to...
1967 (prepare_states): here.
1968 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
1969
1970 2002-10-20 Akim Demaille <akim@epita.fr>
1971
1972 * src/tables.h, src/tables.c, src/output.c: Comment changes.
1973
1974 2002-10-20 Akim Demaille <akim@epita.fr>
1975
1976 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
1977 * data/c.m4: here.
1978
1979 2002-10-20 Akim Demaille <akim@epita.fr>
1980
1981 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
1982 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
1983 `pair'.
1984 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
1985 `name' to...
1986 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
1987 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
1988 These.
1989
1990 2002-10-19 Paul Eggert <eggert@twinsun.com>
1991
1992 Do not create a temporary file, as that involves security and
1993 cleanup headaches. Instead, use a pair of pipes.
1994 Derived from a suggestion by Florian Krohm.
1995 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
1996 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
1997 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
1998 (BISON_PREREQ_SUBPIPE): Add.
1999 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2000 Add subpipe.h, subpipe.c.
2001 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2002 * po/POTFILES.in: Add lib/subpipe.c.
2003 * src/output.c: Include "subpipe.h".
2004 (m4_invoke): Remove decl.
2005 (scan_skel): New decl.
2006 (output_skeleton): Use pipe rather than temporary file for m4 input.
2007 Check that m4sugar.m4 is readable, to avoid deadlock.
2008 Check for pipe I/O error.
2009 * src/scan-skel.l (readpipe): Remove decl.
2010 (scan_skel): New function, to be used in place of m4_invoke.
2011 Read from stream rather than file.
2012
2013 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2014 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2015 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2016 this generates a more-accurate value anyway.
2017
2018 * lib/timevar.c (timervar_accumulate): Rename locals to
2019 avoid confusion with similarly-named more-global.
2020 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2021
2022 * src/output.c (prepare): Use xstrdup to convert char const *
2023 to char *, to avoid GCC warning.
2024
2025 2002-10-19 Akim Demaille <akim@epita.fr>
2026
2027 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2028 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2029 Use them to have `calc.y' ready for %pure-parser.
2030 * data/yacc.c (YYLEX): Pass a yylex return type to
2031 b4_c_function_call.
2032
2033 2002-10-19 Akim Demaille <akim@epita.fr>
2034
2035 Prototype support of %lex-param and %parse-param.
2036
2037 * src/parse-gram.y: Add the definition of the %lex-param and
2038 %parse-param tokens, plus their rules.
2039 Drop the `_' version of %glr-parser.
2040 Add the "," token.
2041 * src/scan-gram.l (INITIAL): Scan them.
2042 * src/muscle_tab.c: Comment changes.
2043 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2044 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2045 (muscle_entry_s): The `value' member is no longer const.
2046 Adjust all dependencies.
2047 * src/muscle_tab.c (muscle_init): Adjust: use
2048 MUSCLE_INSERT_STRING.
2049 Initialize the obstack earlier.
2050 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2051 (muscle_pair_list_grow): New.
2052 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2053 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2054 * tests/calc.at: Use %locations, not --locations.
2055 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2056
2057 2002-10-19 Akim Demaille <akim@epita.fr>
2058
2059 * src/getargs.c (usage): Take status as argument and exit
2060 accordingly.
2061 Report the traditional `Try ... --help' message when status != 0.
2062 (usage, version): Don't take a FILE * as arg, it is pointless.
2063 (getargs): When there is an incorrect number of arguments, make it
2064 an error, and report it GNUlically thanks to `usage ()'.
2065
2066 2002-10-18 Paul Eggert <eggert@twinsun.com>
2067
2068 * data/glr.c (yyreportParseError): Don't assume that sprintf
2069 yields the length of the printed string, as this is not true
2070 on SunOS 4.1.4. Reported by Peter Klein.
2071
2072 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2073 * tests/conflicts.at (%nonassoc and eof): Likewise.
2074 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2075
2076 2002-10-17 Akim Demaille <akim@epita.fr>
2077
2078 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2079 * src/getargs.c (trace_types, trace_args): Adjust.
2080 * src/reader.c (grammar_current_rule_prec_set)
2081 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2082 Standardize error messages.
2083 And s/@prec/%prec/!
2084 (reader): Use trace_flag to enable scanner/parser debugging,
2085 instead of an adhoc scheme.
2086 * src/scan-gram.l: Remove trailing debugging code.
2087
2088 2002-10-16 Paul Eggert <eggert@twinsun.com>
2089
2090 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2091 MUSCLE_TAB_H.
2092
2093 * NEWS: Officially drop support for building Bison with K&R C,
2094 since it didn't work anyway and it's not worth worrying about.
2095 * Makefile.maint (wget_files): Remove ansi2knr.c.
2096 (ansi2knr.c-url_prefix): Remove.
2097 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2098 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2099 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2100
2101 2002-10-15 Paul Eggert <eggert@twinsun.com>
2102
2103 Stop using the "enum_" trick for K&R-style function definitions;
2104 it confused me, and I was the author! Instead, assume that people
2105 who want to use K&R C compilers (when using these modules in GCC,
2106 perhaps?) will run ansi2knr.
2107
2108 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2109 All uses of "enum_" changed to "enum ".
2110 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2111 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2112
2113 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2114 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2115 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2116 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2117 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2118 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2119 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2120 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2121 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2122 Use function prototypes; this removes the need for declaring
2123 static functions simply to provide their prototypes.
2124 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2125 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2126 bitset_count_, bitset_create, bitset_dump, bitset_first,
2127 bitset_free, bitset_init, bitset_last, bitset_next,
2128 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2129 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2130 bitset_print, bitset_release_memory, bitset_toggle_,
2131 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2132 debug_bitset): Likewise.
2133 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2134 * lib/bitset_stats.c (bitset_log_histogram_print,
2135 bitset_percent_histogram_print, bitset_stats_and,
2136 bitset_stats_and_cmp, bitset_stats_and_or,
2137 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2138 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2139 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2140 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2141 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2142 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2143 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2144 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2145 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2146 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2147 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2148 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2149 bitset_stats_zero): Likewise.
2150 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2151 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2152 bitsetv_dump, debug_bitsetv): Likewise.
2153 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2154 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2155 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2156 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2157 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2158 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2159 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2160 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2161 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2162 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2163 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2164 Likewise.
2165 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2166 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2167 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2168 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2169 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2170 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2171 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2172 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2173 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2174 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2175 lbitset_xor_cmp, lbitset_zero): Likewise.
2176
2177 2002-10-14 Akim Demaille <akim@epita.fr>
2178
2179 Version 1.75.
2180
2181 2002-10-14 Akim Demaille <akim@epita.fr>
2182
2183 * tests/Makefile.am (maintainer-check-posix): New.
2184
2185 2002-10-14 Akim Demaille <akim@epita.fr>
2186
2187 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2188 member.
2189
2190 2002-10-14 Akim Demaille <akim@epita.fr>
2191
2192 * src/tables.c (table_ninf_remap): base -> tab.
2193 Reported by Matt Rosing.
2194
2195 2002-10-14 Paul Eggert <eggert@twinsun.com>
2196
2197 * tests/action.at, tests/calc.at, tests/conflicts.at,
2198 tests/cxx-type.at, tests/headers.at, tests/input.at,
2199 tests/regression.at, tests/synclines.at, tests/torture.at:
2200 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2201 so that the tests still work even if POSIXLY_CORRECT is set.
2202 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2203
2204 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2205 for portability to K&R hosts. Fix typo: signed char is guaranteed
2206 only to 127, not to 128.
2207 * data/glr.c (yysigned_char): New type.
2208 * data/yacc.c (yysigned_char): Likewise.
2209 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2210
2211 2002-10-13 Paul Eggert <eggert@twinsun.com>
2212
2213 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2214 true due to limited range of data type" warning from GCC.
2215
2216 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2217 by wrapping enum yytokentype's definition inside #ifndef
2218 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2219
2220 2002-10-13 Akim Demaille <akim@epita.fr>
2221
2222 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2223 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2224
2225 2002-10-13 Akim Demaille <akim@epita.fr>
2226
2227 * Makefile.maint: Update from Autoconf 2.54.
2228 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2229
2230 2002-10-13 Akim Demaille <akim@epita.fr>
2231
2232 * src/print.c (print_state): Separate the list of solved conflicts
2233 from the other items.
2234 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2235
2236 2002-10-13 Akim Demaille <akim@epita.fr>
2237
2238 Let nondeterministic skeletons be usable with deterministic
2239 tables.
2240
2241 With the patch, GAWK compiled by GCC without -O2 passes its test
2242 suite using a GLR parser driven by LALR tables. It fails with -O2
2243 because `struct stat' gives two different answers on my machine:
2244 88 (definition of an auto var) and later 96 (memset on this var).
2245 Hence the stack is badly corrumpted. The headers inclusion is to
2246 blame: if I move the awk.h inclusion before GLR's system header
2247 inclusion, the two struct stat have the same size.
2248
2249 * src/tables.c (pack_table): Always create conflict_table.
2250 (token_actions): Always create conflict_list.
2251 * data/glr.c (YYFLAG): Remove, unused.
2252
2253 2002-10-13 Akim Demaille <akim@epita.fr>
2254
2255 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2256 (O0FLAGS): New.
2257 (VALGRIND, GXX): New.
2258 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2259 * tests/bison.in: Run $PREBISON a pre-command.
2260 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2261 (maintainer-check-g++): New.
2262 * Makefile.am (maintainer-check): New.
2263
2264 2002-10-13 Akim Demaille <akim@epita.fr>
2265
2266 * data/glr.c: Formatting changes.
2267 Tweak some trace messages to match yacc.c's.
2268
2269 2002-10-13 Akim Demaille <akim@epita.fr>
2270
2271 GLR parsers sometimes raise parse errors instead of performing the
2272 default reduction.
2273 Reported by Charles-Henry de Boysson.
2274
2275 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2276 check the length of the traces when %glr.
2277 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2278 GLR's traces.
2279 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2280 Test GLR parsers.
2281 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2282 (yyltype): Remove the yy prefix from the member names.
2283 (yytable): Complete its comment.
2284 (yygetLRActions): Map error action number from YYTABLE from
2285 YYTABLE_NINF to 0.
2286 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2287 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2288 not satisfying as we could compare an YYACTION computed from
2289 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2290 only value for error actions.
2291 (yyreportParseError): In verbose parse error messages, don't issue
2292 `error' in the list of expected tokens.
2293 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2294 next action to perform to match glr.c's decoding.
2295 (yytable): Complete its comment.
2296
2297 2002-10-13 Paul Eggert <eggert@twinsun.com>
2298
2299 Fix problem reported by Henrik Grubbstroem in
2300 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2301 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2302 because the Bison parser reads the second action before reducing
2303 the first one.
2304 * src/scan-gram.l (rule_length): New static var.
2305 Use it to keep track of the rule length in the scanner, since
2306 we can't expect the parser to be in lock-step sync with the scanner.
2307 (handle_action_dollar, handle_action_at): Use this var.
2308 * tests/actions.at (Exotic Dollars): Test for the problem.
2309
2310 2002-10-12 Paul Eggert <eggert@twinsun.com>
2311
2312 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2313 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2314 Include <sys/time.h> when checking for clock_t and struct tms.
2315 Use same include order as source.
2316 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2317 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2318
2319 * lib/timevar.c: Update copyright date and clarify comments.
2320 (get_time) [IN_GCC]: Keep the GCC version for reference.
2321
2322 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2323 GCC version as of today, then merge Bison's changes.
2324 Change "GCC" to "Bison" in copyright notice. timevar.def's
2325 author is Akim, so change that too.
2326
2327 * src/reader.c (grammar_current_rule_check):
2328 Don't worry about the default action if $$ is untyped.
2329 Prevents bogus warnings reported by Jim Gifford in
2330 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2331
2332 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2333 * data/glr.c, data/lalr1.cc, data/yacc.c:
2334 Output token definitions before the first part of user declarations.
2335 Fixes compatibility problem reported by Jim Gifford for kbd in
2336 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2337
2338 2002-10-11 Paul Eggert <eggert@twinsun.com>
2339
2340 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2341 (yyparse): here. This undoes some of the 2002-07-25 change.
2342 Compatibility problem reported by Ralf S. Engelschall with
2343 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2344
2345 2002-10-11 Akim Demaille <akim@epita.fr>
2346
2347 * tests/regression.at Characters Escapes): New.
2348 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2349 characters.
2350 Reported by Jan Nieuwenhuizen.
2351
2352 2002-10-11 Akim Demaille <akim@epita.fr>
2353
2354 * po/id.po: New.
2355
2356 2002-10-10 Paul Eggert <eggert@twinsun.com>
2357
2358 Portability fixes for bitsets; this also avoids several GCC
2359 warnings.
2360
2361 * lib/abitset.c: Include <stddef.h>, for offsetof.
2362 * lib/lbitset.c: Likewise.
2363
2364 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2365 properly for vectors of objects. Do not assume that adding a
2366 header size to a multiple of a word size yields a value that is
2367 properly aligned for the whole union.
2368 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2369
2370 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2371 unique names for structures.
2372 * lib/ebitset.c (ebitset_bytes): Likewise.
2373 * lib/lbitset.c (lbitset_bytes): Likewise.
2374
2375 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2376 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2377 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2378 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2379 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2380 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2381 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2382 to improve the type-checking that GCC can do.
2383 * lib/bitset.c (bitset_op4_cmp): Likewise.
2384 * lib/bitset_stats.c (bitset_stats_count,
2385 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2386 bitset_stats_copy, bitset_stats_disjoint_p,
2387 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2388 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2389 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2390 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2391 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2392 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2393 bitset_stats_or_and_cmp): Likewise.
2394 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2395 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2396 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2397 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2398
2399 * lib/abitset.h: Include bitset.h, not bbitset.h.
2400 * lib/ebitset.h: Likewise.
2401 * lib/lbitset.h: Likewise.
2402
2403 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2404 All instances of parameters of type enum bitset_opts are now of
2405 type enum_bitset_opts, to conform to the C Standard, and similarly
2406 for enum_bitset_type.
2407 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2408 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2409
2410 Do not use "struct bitset_struct" to mean different things in
2411 different modules. Not only is this confusing, it violates
2412 the C Standard, which requires that structure types in different
2413 modules must be compatible if one is to be passed to the other.
2414 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2415 All instances of "struct bitset_struct *" replaced with "bitset".
2416 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2417 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2418 struct lbitset_struct, struct bitset_stats_struct): New types.
2419 All uses of struct bitset_struct changed to union bitset_union,
2420 etc.
2421 * lib/abitset.c (struct abitset_struct, abitset,
2422 struct bitset_struct): Remove.
2423 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2424 struct bitset_struct): Remove.
2425 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2426 bitset_struct): Remove.
2427 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2428 Likewise.
2429
2430 Do not call a function of type T using a call that assumes the
2431 function is of a different type U. Standard C requires that a
2432 function must be called with a type that is compatible with its
2433 definition.
2434 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2435 New decls.
2436 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2437 New functions.
2438 * lib/ebitset.c (PFV): Remove.
2439 * lib/lbitset.c (PFV): Likewise.
2440 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2441 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2442 decls.
2443 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2444 (ebitset_vtable): Use them.
2445 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2446 lbitset_xor): New functions.
2447 (lbitset_vtable): Use them.
2448
2449 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2450 Declare.
2451
2452 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2453 GCC warning.
2454 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2455 Use offsetof, for simplicity.
2456
2457 2002-10-06 Paul Eggert <eggert@twinsun.com>
2458
2459 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2460 the same width as int. This reapplies a hunk of the 2002-08-12 patch
2461 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
2462 which was inadvertently undone by the 2002-09-30 patch.
2463 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2464 the same width as int.
2465
2466 2002-10-04 Paul Eggert <eggert@twinsun.com>
2467
2468 Version 1.50.
2469
2470 * configure.ac (AC_INIT), NEWS: Increment version number.
2471
2472 * doc/bison.texinfo: Minor spelling, grammar, and white space
2473 fixes.
2474 (Symbols): Mention that any negative value returned from yylex
2475 signifies end-of-input. Warn about negative chars. Mention
2476 the portable Standard C character set.
2477
2478 The GNU coding standard says CFLAGS and YFLAGS are reserved
2479 for the installer to set.
2480 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2481 * src/Makefile.am (AM_CFLAGS): Likewise.
2482 (AM_YFLAGS): Renamed from YFLAGS.
2483
2484 Fix some MAX and MIN problems.
2485 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2486 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2487 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2488 * src/reader.c (reader): Use it.
2489
2490 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2491 POSIX 1003.1-2001 has removed fgrep.
2492
2493 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2494
2495 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2496 interpreted as signed.
2497 * lib/ebitset.c (ebitset_list): Fix bug.
2498
2499 2002-10-01 Paul Eggert <eggert@twinsun.com>
2500
2501 More fixes for 64-bit hosts and large bitsets.
2502
2503 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2504 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2505 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2506 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2507 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2508 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2509 bitset_count_): Likewise.
2510 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2511 bitset_first, bitset_last): Likewise.
2512 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2513 bitset_stats_list_reverse, bitset_stats_size,
2514 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2515 Likewise.
2516 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2517 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2518 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2519 bitsetv_reflexive_transitive_closure): Likewise.
2520 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2521 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2522 Likewise.
2523 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2524 Likewise.
2525
2526 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2527 Use size_t, not unsigned int, to count bytes.
2528 * lib/abitset.h (abitset_bytes): Likewise.
2529 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2530 Likewise.
2531 * lib/bitset.h (bitset_bytes): Likewise.
2532 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2533 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2534 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2535 * lib/ebitset.c (ebitset_bytes): Likewise.
2536 * lib/ebitset.h (ebitset_bytes): Likewise.
2537 * lib/lbitset.c (lbitset_bytes): Likewise.
2538 * lib/lbitset.h (lbitset_bytes): Likewise.
2539
2540 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2541 abitset_subset_p, abitset_disjoint_p, abitset_and,
2542 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2543 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2544 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2545 abitset_or_and, abitset_or_and_cmp):
2546 Use bitset_windex instead of unsigned int.
2547 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2548 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2549 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2550 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2551 Likewise.
2552 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
2553
2554 * lib/bitset.c (bitset_print):
2555 Use proper printf formats for widths of integer types.
2556 * lib/bitset_stats.c (bitset_percent_histogram_print,
2557 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2558 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2559 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2560 * lib/lbitset.c (lbitset_bytes): Likewise.
2561
2562 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2563 BITSET_SIZE_MAX): New macros.
2564 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2565 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2566 to BITSET_WINDEX_MAX.
2567
2568 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2569 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2570 since we now return the bitset_bindex type (not int).
2571
2572 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2573 when computing sizes.
2574 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2575
2576 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2577 and avoid cast to unsigned.
2578
2579 2002-09-30 Akim Demaille <akim@epita.fr>
2580
2581 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2582 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2583 Updates from Michael Hayes.
2584
2585 2002-09-30 Art Haas <ahaas@neosoft.com>
2586
2587 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2588 invocations.
2589 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2590 defined.
2591
2592 2002-09-27 Akim Demaille <akim@epita.fr>
2593
2594 Version 1.49c.
2595
2596 2002-09-27 Akim Demaille <akim@epita.fr>
2597
2598 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2599 (Because of AC_LIBSOURCE).
2600
2601 2002-09-27 Akim Demaille <akim@epita.fr>
2602
2603 Playing with Autoscan.
2604
2605 * configure.ac: Remove the old LIBOBJ tweaks.
2606 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2607 * lib/strrchr.c: New.
2608 * lib/strtol.c: New, from the Coreutils 4.5.1.
2609
2610 2002-09-27 Akim Demaille <akim@epita.fr>
2611
2612 Playing with Autoscan.
2613
2614 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2615 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2616 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2617 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2618 Coreutils 4.5.1.
2619
2620 2002-09-24 Akim Demaille <akim@epita.fr>
2621
2622 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2623 (Frequently Asked Questions, Parser Stack Overflow): New.
2624
2625 2002-09-13 Akim Demaille <akim@epita.fr>
2626
2627 Playing with autoscan.
2628
2629 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2630 * src/files.c (skeleton_find): Remove, unused.
2631 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2632 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2633
2634 2002-09-13 Akim Demaille <akim@epita.fr>
2635
2636 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2637 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2638
2639 2002-09-13 Akim Demaille <akim@epita.fr>
2640
2641 * configure.ac: Require 2.54.
2642 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2643 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2644 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2645 Remove, provided by Autoconf macros.
2646
2647 2002-09-12 Akim Demaille <akim@epita.fr>
2648
2649 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2650
2651 2002-09-12 Akim Demaille <akim@epita.fr>
2652
2653 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2654 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2655 Reported by Martin Mokrejs.
2656
2657 2002-09-10 Akim Demaille <akim@epita.fr>
2658
2659 * src/parse-gram.y: Associate a human readable string to each
2660 token type.
2661 * tests/regression.at (Invalid inputs): Adjust.
2662
2663 2002-09-10 Gary V. Vaughan <gary@gnu.org>
2664
2665 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2666 with an Autoconf-2.5x style configure.ac.
2667
2668 2002-09-06 Paul Eggert <eggert@twinsun.com>
2669
2670 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2671 exception applies only to yacc.c. This is a modification of a
2672 patch originally suggested by Akim Demaille.
2673
2674 2002-09-06 Akim Demaille <akim@epita.fr>
2675
2676 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2677 here to...
2678 * data/yacc.c: here.
2679
2680 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2681 LocationType.
2682 (b4_ltype): Default to yy::Location from location.hh.
2683
2684 2002-09-04 Jim Meyering <jim@meyering.net>
2685
2686 * data/yacc.c: Guard the declaration of yytoknum also with
2687 `#ifdef YYPRINT', so it is declared only when used.
2688
2689 2002-09-04 Akim Demaille <akim@epita.fr>
2690
2691 * configure.in: Rename as...
2692 * configure.ac: this.
2693 Bump to 1.49c.
2694
2695 2002-09-04 Akim Demaille <akim@epita.fr>
2696
2697 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2698 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2699 translate maintainer only messages.
2700
2701 2002-08-12 Paul Eggert <eggert@twinsun.com>
2702
2703 Version 1.49b.
2704
2705 * Makefile.am (SUBDIRS): Remove intl.
2706 (DISTCLEANFILES): Remove.
2707 * NEWS: Mention that GNU M4 is now required. Clarify what is
2708 meant by "larger grammars". Mention the pt_BR translation.
2709 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2710 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2711 Bump version from 0.11.2 to 0.11.5.
2712 (BISON_PREREQ_STAGE): Remove.
2713 (AM_GNU_GETTEXT): Use external gettext.
2714 (AC_OUTPUT): Remove intl/Makefile.
2715
2716 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2717
2718 * data/glr.c: Include string.h, for strlen.
2719 (yyreportParseError): Use size_t for yysize.
2720 (yy_yypstack): No longer nested inside yypstates, as nested
2721 functions are not portable. Do not assume size_t is the
2722 same width as int.
2723 (yypstates): Do not assume that ptrdiff_t is the same width
2724 as int, and similarly for yyposn and YYINDEX.
2725
2726 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2727
2728 * lib/Makefile.am (INCLUDES): Do not include from the intl
2729 directory, which has been removed.
2730 * src/Makefile.am (INCLUDES): Likewise.
2731
2732 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2733 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2734 New vars.
2735
2736 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2737 * tests/Makefile.am (EXTRA_DIST): Likewise.
2738
2739 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2740 Do not assume that bitset_windex is the same width as unsigned.
2741
2742 * lib/abitset.c (abitset_unused_clear): Do not assume that
2743 bitset_word is the same width as int.
2744 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2745 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2746 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2747 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2748 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2749
2750 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2751 portability to one's complement hosts!).
2752 * lib/ebitset.c (ebitset_op1): Likewise.
2753 * lib/lbitset.c (lbitset_op1): Likewise.
2754
2755 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2756 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2757 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2758 Sync with fileutils.
2759 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2760 lib/gettext.h: Sync with diffutils.
2761
2762 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2763 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2764
2765 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2766 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2767 check for void *.
2768
2769 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2770 size_t; the old version tried to do this but casted improperly.
2771 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2772 (bitset_test): Now returns int, not unsigned long.
2773
2774 * lib/bitset_stats.c: Include "gettext.h".
2775 (_): New macro.
2776 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
2777 name locals "index", as it generates unnecessary warnings on some
2778 hosts that have an "index" function.
2779
2780 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
2781 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
2782 they need translation.
2783 * src/LR0.c (state_list_append, new_itemsets, get_state,
2784 append_states, generate_states): Likewise.
2785 * src/assoc.c (assoc_to_string): Likewise.
2786 * src/closure.c (print_closure, set_firsts, closure): Likewise.
2787 * src/gram.c (grammar_dump): Likewise.
2788 * src/injections.c (injections_compute): Likewise.
2789 * src/lalr.c (lookaheads_print): Likewise.
2790 * src/relation.c (relation_transpose): Likewise.
2791 * src/scan-gram.l: Likewise.
2792 * src/tables.c (table_grow, pack_vector): Likewise.
2793
2794 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
2795 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
2796 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
2797 * m4/mbstate_t.m4: Sync with fileutils.
2798 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
2799
2800 * po/LINGUAS: Add pt_BR.
2801 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
2802 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
2803 lib/timevar.c.
2804 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
2805 manual recommends.
2806 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
2807
2808 * src/complain.c (strerror_r): Remove decl; not needed.
2809 (strerror): Use same pattern as ../lib/error.c.
2810
2811 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
2812
2813 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
2814
2815 * src/main.c (main): Cast result of bindtextdomain and textdomain
2816 to void, to avoid a GCC warning when --disable-nls is in effect.
2817
2818 * src/scan-gram.l: Use strings rather than escapes when possible,
2819 to minimize the number of warnings from xgettext.
2820 (handle_action_dollar, handle_action_at): Don't use isdigit,
2821 as it mishandles negative chars and it may not work as expected
2822 outside the C locale.
2823
2824 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
2825 this is a GCC extension and is not portable to other compilers.
2826
2827 * src/system.h (alloca): Use same pattern as ../lib/error.c.
2828 Do not include <ctype.h>; no longer needed.
2829 Do not include <malloc.h>; no longer needed (and generates
2830 warnings on OpenBSD 3.0).
2831
2832 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
2833 it's not portable.
2834
2835 * tests/regression.at: Do not use 'cc -c input.c -o input';
2836 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
2837
2838 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
2839 exit status as failure, not just exit status 1. Sun C exits
2840 with status 2 sometimes.
2841
2842 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
2843 Use it for the two large tests.
2844
2845 2002-08-02 Akim Demaille <akim@epita.fr>
2846
2847 * src/conflicts.c (conflicts_output): Don't output rules never
2848 reduced here, since anyway that computation doesn't work.
2849 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
2850 (rule_useless_p, rule_never_reduced_p): New.
2851 (grammar_rules_partial_print): Use a filter instead of a range.
2852 Display the title only if needed.
2853 (grammar_rules_print): Adjust.
2854 (grammar_rules_never_reduced_report): New.
2855 * src/tables.c (action_row): Move the computation of rules never
2856 reduced to...
2857 (token_actions): here.
2858 * src/main.c (main): Make the parser before making the report, so
2859 that rules never reduced are computed.
2860 Call grammar_rules_never_reduced_report.
2861 * src/print.c (print_results): Report rules never reduced.
2862 * tests/conflicts.at, tests/reduce.at: Adjust.
2863
2864 2002-08-01 Akim Demaille <akim@epita.fr>
2865
2866 Instead of attaching lookaheads and duplicating the rules being
2867 reduced by a state, attach the lookaheads to the reductions.
2868
2869 * src/state.h (state_t): Remove the `lookaheads',
2870 `lookaheads_rule' member.
2871 (reductions_t): Add a `lookaheads' member.
2872 Use a regular array for the `rules'.
2873 * src/state.c (reductions_new): Initialize the lookaheads member
2874 to 0.
2875 (state_rule_lookaheads_print): Adjust.
2876 * src/state.h, src/state.c (state_reductions_find): New.
2877 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
2878 (count_rr_conflicts): Adjust.
2879 * src/lalr.c (LArule): Remove.
2880 (add_lookback_edge): Adjust.
2881 (state_lookaheads_count): New.
2882 (states_lookaheads_initialize): Merge into...
2883 (initialize_LA): this.
2884 (lalr_free): Adjust.
2885 * src/main.c (main): Don't free nullable and derives too early: it
2886 is used by --verbose.
2887 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
2888
2889 2002-08-01 Akim Demaille <akim@epita.fr>
2890
2891 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
2892 `rule_number_t**'.
2893 (set_derives, free_derives): Rename as...
2894 (derives_compute, derives_free): this.
2895 Adjust all dependencies.
2896 * src/nullable.c (set_nullable, free_nullable): Rename as...
2897 (nullable_compute, nullable_free): these.
2898 (rule_list_t): Store rule_t *, not rule_number_t.
2899 * src/state.c (state_rule_lookaheads_print): Directly compare rule
2900 pointers, instead of their numbers.
2901 * src/main.c (main): Call nullable_free, and derives_free earlier,
2902 as they were lo longer used.
2903
2904 2002-08-01 Akim Demaille <akim@epita.fr>
2905
2906 * lib/timevar.c (get_time): Include children time.
2907 * src/lalr.h (LA, LArule): Don't export them: used with the
2908 state_t.
2909 * src/lalr.c (LA, LArule): Static.
2910 * src/lalr.h, src/lalr.c (lalr_free): New.
2911 * src/main.c (main): Call it.
2912 * src/tables.c (pack_vector): Check whether loc is >= to the
2913 table_size, not >.
2914 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
2915 (tables_generate): do it, since that's also it which allocates
2916 them.
2917 Don't free LA and LArule, main does.
2918
2919 2002-07-31 Akim Demaille <akim@epita.fr>
2920
2921 Separate parser tables computation and output.
2922
2923 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
2924 (conflict_list, conflict_list_cnt, table, check, table_ninf)
2925 (yydefgoto, yydefact, high): Move to...
2926 * src/tables.h, src/tables.c: here.
2927 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2928 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2929 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
2930 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
2931 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
2932 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
2933 (action_row, save_row, token_actions, save_column, default_goto)
2934 (goto_actions, sort_actions, matching_state, pack_vector)
2935 (table_ninf_remap, pack_table, prepare_actions): Move to...
2936 * src/tables.c: here.
2937 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
2938 * src/output.c (token_actions, output_base, output_conflicts)
2939 (output_check): Merge into...
2940 (prepare_actions): this.
2941 (actions_output): Rename as...
2942 (user_actions_output): this.
2943 * src/main.c (main): Call tables_generate and tables_free.
2944
2945 2002-07-31 Akim Demaille <akim@epita.fr>
2946
2947 Steal GCC's --time-report support.
2948
2949 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
2950 stolen/adjusted from GCC.
2951 * m4/stage.m4: Remove time related checks.
2952 * m4/timevar.m4: New.
2953 * configure.in: Adjust.
2954 * src/system.h: Adjust to using timevar.h.
2955 * src/getargs.h, src/getargs.c: Support trace_time for
2956 --trace=time.
2957 * src/main.c (stage): Remove.
2958 (main): Replace `stage' invocations with timevar calls.
2959 * src/output.c: Insert pertinent timevar calls.
2960
2961 2002-07-31 Akim Demaille <akim@epita.fr>
2962
2963 Let --trace have arguments.
2964
2965 * src/getargs.h (enum trace_e): New.
2966 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
2967 (long_options, short_options): --trace/-T takes an optional
2968 argument.
2969 Change all the uses of trace_flag to reflect the new flags.
2970 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
2971
2972 Strengthen `stage' portability.
2973
2974 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
2975 * configure.in: Use it.
2976 Don't check for malloc.h and sys/times.h.
2977 * src/system.h: Include them when appropriate.
2978 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
2979 times and struct tms are available.
2980
2981 2002-07-30 Akim Demaille <akim@epita.fr>
2982
2983 In verbose parse error message, don't report `error' as an
2984 expected token.
2985 * tests/actions.at (Printers and Destructors): Adjust.
2986 * tests/calc.at (Calculator $1): Adjust.
2987 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
2988 error message, do not report the parser accepts the error token in
2989 that state.
2990
2991 2002-07-30 Akim Demaille <akim@epita.fr>
2992
2993 Normalize conflict related messages.
2994
2995 * src/complain.h, src/complain.c (warn, complain): New.
2996 * src/conflicts.c (conflicts_print): Use them.
2997 (conflict_report_yacc): New, extracted from...
2998 (conflicts_print): here.
2999 * tests/conflicts.at, tests/existing.at: Adjust.
3000
3001 2002-07-30 Akim Demaille <akim@epita.fr>
3002
3003 Report rules which are never reduced by the parser: those hidden
3004 by conflicts.
3005
3006 * src/LR0.c (save_reductions): Don't make the final state too
3007 different: save its reduction (accept) instead of having a state
3008 without any action (no shift or goto, no reduce).
3009 Note: the final state is now a ``regular'' state, i.e., the
3010 parsers now contain `reduce 0' as default reduction.
3011 Nevertheless, since they decide to `accept' when yystate =
3012 final_state, they still will not reduce rule 0.
3013 * src/print.c (print_actions, print_reduction): Adjust.
3014 * src/output.c (action_row): Track reduced rules.
3015 (token_actions): Report rules never reduced.
3016 * tests/conflicts.at, tests/regression.at: Adjust.
3017
3018 2002-07-30 Akim Demaille <akim@epita.fr>
3019
3020 `stage' was accidently included in a previous patch.
3021 Initiate its autoconfiscation.
3022
3023 * configure.in: Look for malloc.h and sys/times.h.
3024 * src/main.c (stage): Adjust.
3025 Report only when trace_flag.
3026
3027 2002-07-29 Akim Demaille <akim@epita.fr>
3028
3029 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3030 state_number_t.
3031 (errs_t): symbol_t*, not symbol_number_t.
3032 (reductions_t): rule_t*, not rule_number_t.
3033 (FOR_EACH_SHIFT): New.
3034 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3035 * src/print.c, src/print_graph.c: Adjust.
3036
3037 2002-07-29 Akim Demaille <akim@epita.fr>
3038
3039 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3040
3041 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3042 (endtoken, accept): these.
3043 * src/reader.c (reader): Set endtoken's default tag to "$end".
3044 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3045 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3046 Adjust.
3047
3048 2002-07-29 Akim Demaille <akim@epita.fr>
3049
3050 * src/reduce.c (reduce_grammar): When the language is empty,
3051 complain about the start symbol, not the axiom.
3052 Use its location.
3053 * tests/reduce.at (Empty Language): New.
3054
3055 2002-07-26 Akim Demaille <akim@epita.fr>
3056
3057 * src/reader.h, src/reader.c (gram_error): ... can't get
3058 yycontrol without making too strong assumptions on the parser
3059 itself.
3060 * src/output.c (prepare_tokens): Use the real 0th value of
3061 token_translations instead of `0'.
3062 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3063 visible here.
3064 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3065 for the time being: %locations ought to provide it to yyerror.
3066
3067 2002-07-25 Akim Demaille <akim@epita.fr>
3068
3069 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3070 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3071 * tests/regression.at (Web2c Actions): Adjust.
3072
3073 2002-07-25 Akim Demaille <akim@epita.fr>
3074
3075 Stop storing rules from 1 to nrules + 1.
3076
3077 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3078 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3079 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3080 Iterate from 0 to nrules.
3081 Use rule_number_as_item_number and item_number_as_rule_number.
3082 Adjust to `derive' now containing possibly 0.
3083 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3084 Handle the `- 1' part in rule numbers from/to item numbers.
3085 * src/conflicts.c (log_resolution): Fix the message which reversed
3086 shift and reduce.
3087 * src/output.c (action_row): Initialize default_rule to -1.
3088 (token_actions): Adjust.
3089 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3090 expected output.
3091 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3092
3093 2002-07-25 Akim Demaille <akim@epita.fr>
3094
3095 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3096 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3097 (b4_c_knr_arg_decl): New.
3098 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3099 yyreport_parse_error.
3100
3101 2002-07-25 Akim Demaille <akim@epita.fr>
3102
3103 * data/yacc.c (yyreport_parse_error): New, extracted from...
3104 (yyparse): here.
3105 (yydestruct, yysymprint): Move above yyparse.
3106 Be K&R compliant.
3107
3108 2002-07-25 Akim Demaille <akim@epita.fr>
3109
3110 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3111 replace...
3112 (b4_sint_type, b4_uint_type): these.
3113 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3114 * tests/regression.at (Web2c Actions): Adjust.
3115
3116 2002-07-25 Akim Demaille <akim@epita.fr>
3117
3118 * src/gram.h (TIEM_NUMBER_MAX): New.
3119 (item_number_of_rule_number, rule_number_of_item_number): Rename
3120 as...
3121 (rule_number_as_item_number, item_number_as_rule_number): these.
3122 Adjust dependencies.
3123 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3124 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3125 (symbol_number_to_vector_number): New.
3126 (order): Of vector_number_t* type.
3127 (base_t, BASE_MAX, BASE_MIN): New.
3128 (froms, tos, width, pos, check): Of base_t type.
3129 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3130 (actrow): Of action_number_t type.
3131 (conflrow): Of unsigned int type.
3132 (table_ninf, base_ninf): New.
3133 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3134 (muscle_insert_int_table, muscle_insert_base_table)
3135 (muscle_insert_rule_number_table): New.
3136 (prepare_tokens): Output `toknum' as int_table.
3137 (action_row): Returns a rule_number_t.
3138 Use ACTION_MIN, not SHRT_MIN.
3139 (token_actions): yydefact is rule_number_t*.
3140 (table_ninf_remap): New.
3141 (pack_table): Use it for `base' and `table'.
3142 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3143 replaced with...
3144 (YYPACT_NINF, YYTABLE_NINF): these.
3145 (yypact, yytable): Compute their types instead of hard-coded
3146 `short'.
3147 * tests/regression.at (Web2c Actions): Adjust.
3148
3149 2002-07-19 Akim Demaille <akim@epita.fr>
3150
3151 * src/scan-gram.l (id): Can start with an underscore.
3152
3153 2002-07-16 Akim Demaille <akim@epita.fr>
3154
3155 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3156 Adjust all former `associativity' dependencies.
3157 * src/symtab.c (symbol_new): Default associativity is `undef', not
3158 `right'.
3159 (symbol_check_alias_consistence): Adjust.
3160
3161 2002-07-09 Akim Demaille <akim@epita.fr>
3162
3163 * doc/bison.texinfo: Properly set the ``header'' part.
3164 Use @dircategory ``GNU programming tools'' as per Texinfo's
3165 documentation.
3166 Use @copying.
3167
3168 2002-07-09 Akim Demaille <akim@epita.fr>
3169
3170 * lib/quotearg.h: Protect against multiple inclusions.
3171 * src/location.h (location_t): Add a `file' member.
3172 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3173 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3174 `error_one_per_line' support.
3175
3176 2002-07-09 Akim Demaille <akim@epita.fr>
3177
3178 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3179 * src/reader.c (lineno): Remove.
3180 Adjust all dependencies.
3181 (get_merge_function): Take a location and use complain_at.
3182 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3183 * tests/regression.at (Invalid inputs, Mixing %token styles):
3184 Adjust.
3185
3186 2002-07-09 Akim Demaille <akim@epita.fr>
3187
3188 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3189 recovery rule, and forbid extensions when --yacc.
3190 (gram_error): Use complain_at.
3191 * src/reader.c (reader): Exit if there were parse errors.
3192
3193 2002-07-09 Akim Demaille <akim@epita.fr>
3194
3195 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3196 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3197 Reported by R Blake <blakers@mac.com>.
3198
3199 2002-07-09 Akim Demaille <akim@epita.fr>
3200
3201 * data/yacc.c: Output the copyright notive in the header.
3202
3203 2002-07-03 Akim Demaille <akim@epita.fr>
3204
3205 * src/output.c (froms, tos): Are state_number_t.
3206 (save_column): sp, sp1, and sp2 are state_number_t.
3207 (prepare): Rename `final' as `final_state_number', `nnts' as
3208 `nterms_number', `nrules' as `rules_number', `nstates' as
3209 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3210 unused.
3211 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3212 * data/lalr1.cc (nsym_): Remove, unused.
3213
3214 2002-07-03 Akim Demaille <akim@epita.fr>
3215
3216 * src/lalr.h, src/lalr.c (goto_number_t): New.
3217 * src/lalr.c (goto_list_t): New.
3218 Propagate them.
3219 * src/nullable.c (rule_list_t): New.
3220 Propagate.
3221 * src/types.h: Remove.
3222
3223 2002-07-03 Akim Demaille <akim@epita.fr>
3224
3225 * src/closure.c (print_fderives): Use rule_rhs_print.
3226 * src/derives.c (print_derives): Use rule_rhs_print.
3227 (rule_list_t): New, replaces `shorts'.
3228 (set_derives): Add comments.
3229 * tests/sets.at (Nullable, Firsts): Adjust.
3230
3231 2002-07-03 Akim Demaille <akim@epita.fr>
3232
3233 * src/output.c (prepare_actions): Free `tally' and `width'.
3234 (prepare_actions): Allocate and free `order'.
3235 * src/symtab.c (symbols_free): Free `symbols'.
3236 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3237 * src/output.c (m4_invoke): Move to...
3238 * src/scan-skel.l: here.
3239 (<<EOF>>): Close yyout, and free its name.
3240
3241 2002-07-03 Akim Demaille <akim@epita.fr>
3242
3243 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3244
3245 * src/LR0.c (new_state): Merge into...
3246 (state_list_append): this.
3247 (new_states): Merge into...
3248 (generate_states): here.
3249 (set_states): Don't ensure a proper `errs' state member here, do it...
3250 * src/conflicts.c (conflicts_solve): here.
3251 * src/state.h, src/state.c: Comment changes.
3252 (state_t): Rename member `shifts' as `transitions'.
3253 Adjust all dependencies.
3254 (errs_new): For consistency, also take the values as argument.
3255 (errs_dup): Remove.
3256 (state_errs_set): New.
3257 (state_reductions_set, state_transitions_set): Assert that no
3258 previous value was assigned.
3259 (state_free): New.
3260 (states_free): Use it.
3261 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3262 temporary storage: use `errs' and `nerrs' as elsewhere.
3263 (set_conflicts): Allocate and free this `errs'.
3264
3265 2002-07-02 Akim Demaille <akim@epita.fr>
3266
3267 * lib/libiberty.h: New.
3268 * lib: Update the bitset implementation from upstream.
3269 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3270 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3271 * src/main.c: Adjust bitset stats calls.
3272
3273 2002-07-01 Paul Eggert <eggert@twinsun.com>
3274
3275 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3276 char, so that negative chars don't collide with $.
3277
3278 2002-06-30 Akim Demaille <akim@epita.fr>
3279
3280 Have the GLR tests be `warning' checked, and fix the warnings.
3281
3282 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3283 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3284 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3285 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3286 (yyaddDeferredAction): static.
3287 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3288 (yyreportParseError): yyprefix is const.
3289 yytokenp is used only when verbose.
3290 (yy__GNUC__): Replace with __GNUC__.
3291 (yypdumpstack): yyi is size_t.
3292 (yypreference): Un-yy local variables and arguments, to avoid
3293 clashes with `yyr1'. Anyway, we are not in the user name space.
3294 (yytname_size): be an int, as is compared with ints.
3295 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3296 Use them.
3297 * tests/cxx-gram.at: Use quotation to protect $1.
3298 Use AT_COMPILE to enable warnings hunts.
3299 Prototype yylex and yyerror.
3300 `Use' argc.
3301 Include `string.h', not `strings.h'.
3302 Produce and prototype stmtMerge only when used.
3303 yylex takes a location.
3304
3305 2002-06-30 Akim Demaille <akim@epita.fr>
3306
3307 We spend a lot of time in quotearg, in particular when --verbose.
3308
3309 * src/symtab.c (symbol_get): Store a quoted version of the key.
3310 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3311 Adjust all callers.
3312
3313 2002-06-30 Akim Demaille <akim@epita.fr>
3314
3315 * src/state.h (reductions_t): Rename member `nreds' as num.
3316 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3317 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3318
3319 2002-06-30 Akim Demaille <akim@epita.fr>
3320
3321 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3322 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3323 (shifts_to): Rename as...
3324 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3325 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3326 (TRANSITION_IS_DISABLED, transitions_to): these.
3327
3328 2002-06-30 Akim Demaille <akim@epita.fr>
3329
3330 * src/print.c (print_shifts, print_gotos): Merge into...
3331 (print_transitions): this.
3332 (print_transitions, print_errs, print_reductions): Align the
3333 lookaheads columns.
3334 (print_core, print_transitions, print_errs, print_state,
3335 print_grammar): Output empty lines separator before, not after.
3336 (state_default_rule_compute): Rename as...
3337 (state_default_rule): this.
3338 * tests/conflicts.at (Defaulted Conflicted Reduction),
3339 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3340 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3341
3342 2002-06-30 Akim Demaille <akim@epita.fr>
3343
3344 Display items as we display rules.
3345
3346 * src/gram.h, src/gram.c (rule_lhs_print): New.
3347 * src/gram.c (grammar_rules_partial_print): Use it.
3348 * src/print.c (print_core): Likewise.
3349 * tests/conflicts.at (Defaulted Conflicted Reduction),
3350 (Unresolved SR Conflicts): Adjust.
3351 (Unresolved SR Conflicts): Adjust and rename as...
3352 (Resolved SR Conflicts): this, as was meant.
3353 * tests/regression.at (Web2c Report): Adjust.
3354
3355 2002-06-30 Akim Demaille <akim@epita.fr>
3356
3357 * src/print.c (state_default_rule_compute): New, extracted from...
3358 (print_reductions): here.
3359 Pessimize, but clarify the code.
3360 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3361
3362 2002-06-30 Akim Demaille <akim@epita.fr>
3363
3364 * src/output.c (action_row): Let default_rule be always a rule
3365 number.
3366
3367 2002-06-30 Akim Demaille <akim@epita.fr>
3368
3369 * src/closure.c (print_firsts, print_fderives, closure):
3370 Use BITSET_EXECUTE.
3371 * src/lalr.c (lookaheads_print): Likewise.
3372 * src/state.c (state_rule_lookaheads_print): Likewise.
3373 * src/print_graph.c (print_core): Likewise.
3374 * src/print.c (print_reductions): Likewise.
3375 * src/output.c (action_row): Likewise.
3376 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3377
3378 2002-06-30 Akim Demaille <akim@epita.fr>
3379
3380 * src/print_graph.c: Use report_flag.
3381
3382 2002-06-30 Akim Demaille <akim@epita.fr>
3383
3384 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3385 to...
3386 * src/relation.h, src/relation.c (traverse, relation_digraph)
3387 (relation_print, relation_transpose): New.
3388
3389 2002-06-30 Akim Demaille <akim@epita.fr>
3390
3391 * src/state.h, src/state.c (shifts_to): New.
3392 * src/lalr.c (build_relations): Use it.
3393
3394 2002-06-30 Akim Demaille <akim@epita.fr>
3395
3396 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3397 (item_number_of_rule_number, rule_number_of_item_number): New.
3398 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3399 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3400 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3401 Propagate their use.
3402 Much remains to be done, in particular wrt `shorts' from types.h.
3403
3404 2002-06-30 Akim Demaille <akim@epita.fr>
3405
3406 * src/symtab.c (symbol_new): Initialize the `printer' member.
3407
3408 2002-06-30 Akim Demaille <akim@epita.fr>
3409
3410 * src/LR0.c (save_reductions): Remove, replaced by...
3411 * src/state.h, src/state.c (state_reductions_set): New.
3412 (reductions, errs): Rename as...
3413 (reductions_t, errs_t): these.
3414 Adjust all dependencies.
3415
3416 2002-06-30 Akim Demaille <akim@epita.fr>
3417
3418 * src/LR0.c (state_list_t, state_list_append): New.
3419 (first_state, last_state): Now symbol_list_t.
3420 (this_state): Remove.
3421 (new_itemsets, append_states, save_reductions): Take a state_t as
3422 argument.
3423 (set_states, generate_states): Adjust.
3424 (save_shifts): Remove, replaced by...
3425 * src/state.h, src/state.c (state_shifts_set): New.
3426 (shifts): Rename as...
3427 (shifts_t): this.
3428 Adjust all dependencies.
3429 * src/state.h (state_t): Remove the `next' member.
3430
3431 2002-06-30 Akim Demaille <akim@epita.fr>
3432
3433 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3434 escaped in slot 0.
3435
3436 2002-06-30 Akim Demaille <akim@epita.fr>
3437
3438 Use hash.h for the state hash table.
3439
3440 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3441 (allocate_storage): Use state_hash_new.
3442 (free_storage): Use state_hash_free.
3443 (new_state, get_state): Adjust.
3444 * src/lalr.h, src/lalr.c (states): Move to...
3445 * src/states.h (state_t): Remove the `link' member, no longer
3446 used.
3447 * src/states.h, src/states.c: here.
3448 (state_hash_new, state_hash_free, state_hash_lookup)
3449 (state_hash_insert, states_free): New.
3450 * src/states.c (state_table, state_compare, state_hash): New.
3451 * src/output.c (output_actions): Do not free states now, since we
3452 still need to know the final_state number in `prepare', called
3453 afterwards. Do it...
3454 * src/main.c (main): here: call states_free after `output'.
3455
3456 2002-06-30 Akim Demaille <akim@epita.fr>
3457
3458 * src/state.h, src/state.c (state_new): New, extracted from...
3459 * src/LR0.c (new_state): here.
3460 * src/state.h (STATE_ALLOC): Move to...
3461 * src/state.c: here.
3462 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3463 * src/state.h, src/state.c: here.
3464
3465 2002-06-30 Akim Demaille <akim@epita.fr>
3466
3467 * src/reader.c (gensym): Rename as...
3468 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3469 (getsym): Rename as...
3470 (symbol_get): this.
3471
3472 2002-06-30 Akim Demaille <akim@epita.fr>
3473
3474 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3475 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3476 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3477 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3478
3479 2002-06-30 Akim Demaille <akim@epita.fr>
3480
3481 Make the test suite pass with warnings checked.
3482
3483 * tests/actions.at (Printers and Destructors): Improve.
3484 Avoid unsigned vs. signed issues.
3485 * tests/calc.at: Don't exercise the scanner here, do it...
3486 * tests/input.at (Torturing the Scanner): here.
3487
3488 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3489
3490 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
3491 reorganize first lines parallel to yacc.c.
3492
3493 2002-06-28 Akim Demaille <akim@epita.fr>
3494
3495 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3496 (b4_token_enum, b4_token_defines): New, factored from...
3497 * data/lalr1.cc, data/yacc.c, glr.c: here.
3498
3499 2002-06-28 Akim Demaille <akim@epita.fr>
3500
3501 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3502 unused variables.
3503 * src/output.c (merger_output): static.
3504
3505 2002-06-28 Akim Demaille <akim@epita.fr>
3506
3507 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3508 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3509 pacify GCC.
3510 * src/output.c (save_row): Initialize all the variables to pacify GCC.
3511
3512 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3513
3514 Accumulated changelog for new GLR parsing features.
3515
3516 * src/conflicts.c (count_total_conflicts): Change name to
3517 conflicts_total_count.
3518 * src/conflicts.h: Ditto.
3519 * src/output.c (token_actions): Use the new name.
3520 (output_conflicts): Change conflp => conflict_list_heads, and
3521 confl => conflict_list for better readability.
3522 * data/glr.c: Use the new names.
3523 * NEWS: Add self to GLR announcement.
3524
3525 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3526
3527 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3528 Akim Demaille.
3529
3530 * data/bison.glr: Change name to glr.c
3531 * data/glr.c: Renamed from bison.glr.
3532 * data/Makefile.am: Add glr.c
3533
3534 * src/getargs.c:
3535
3536 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3537 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
3538
3539 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3540
3541 * data/bison.glr: Be sure to restore the
3542 current #line when returning to the skeleton contents after having
3543 exposed the input file's #line.
3544
3545 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3546
3547 * data/bison.glr: Bring up to date with changes to bison.simple.
3548
3549 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3550
3551 * data/bison.glr: Correct definitions that use b4_prefix.
3552 Various reformatting.
3553 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3554 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3555 yytokenp argument; now part of stack.
3556 (yychar): Define to behave as documented.
3557 (yyclearin): Ditto.
3558
3559 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3560
3561 * src/reader.h: Add declaration for free_merger_functions.
3562
3563 * src/reader.c (merge_functions): New variable.
3564 (get_merge_function): New function.
3565 (free_merger_functions): New function.
3566 (readgram): Check for %prec that is not followed by a symbol.
3567 Handle %dprec and %merge declarations.
3568 (packgram): Initialize dprec and merger fields in rules array.
3569
3570 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3571 conflict_list_cnt, conflict_list_free): New variables.
3572 (table_grow): Also grow conflict_table.
3573 (prepare_rules): Output dprec and merger tables.
3574 (conflict_row): New function.
3575 (action_row): Output conflict lists for GLR parser. Don't use
3576 default reduction in conflicted states for GLR parser so that there
3577 are spaces for the conflict lists.
3578 (save_row): Also save conflict information.
3579 (token_actions): Allocate conflict list.
3580 (merger_output): New function.
3581 (pack_vector): Pack conflict table, too.
3582 (output_conflicts): New function to output yyconflp and yyconfl.
3583 (output_check): Allocate conflict_tos.
3584 (output_actions): Output conflict tables, also.
3585 (output_skeleton): Output b4_mergers definition.
3586 (prepare): Output b4_max_rhs_length definition.
3587 Use 'bison.glr' as default skeleton for GLR parsers.
3588
3589 * src/gram.c (glr_parser): New flag.
3590 (grammar_free): Call free_merger_functions.
3591
3592 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3593 all pairs of conflicting reductions, rather than just all tokens
3594 causing conflicts. Needed to size conflict tables.
3595 (conflicts_output): Modify call to count_rr_conflicts for new
3596 interface.
3597 (conflicts_print): Ditto.
3598 (count_total_conflicts): New function.
3599
3600 * src/reader.h (merger_list): New type.
3601 (merge_functions): New variable.
3602
3603 * src/lex.h (tok_dprec, tok_merge): New token types.
3604
3605 * src/gram.h (rule_s): Add dprec and merger fields.
3606 (glr_parser): New flag.
3607
3608 * src/conflicts.h (count_total_conflicts): New function.
3609
3610 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3611
3612 * doc/bison.texinfo (Generalized LR Parsing): New section.
3613 (GLR Parsers): New section.
3614 (Language and Grammar): Mention GLR parsing.
3615 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3616 Correct typo ("tge" -> "the").
3617
3618 * data/bison.glr: New skeleton for GLR parsing.
3619
3620 * tests/cxx-gram.at: New tests for GLR parsing.
3621
3622 * tests/testsuite.at: Include cxx-gram.at.
3623
3624 * tests/Makefile.am: Add cxx-gram.at.
3625
3626 * src/parse-gram.y:
3627
3628 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3629
3630 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
3631
3632 2002-06-27 Akim Demaille <akim@epita.fr>
3633
3634 * src/options.h, src/options.c: Remove.
3635 * src/getargs.c (short_options, long_options): New.
3636
3637 2002-06-27 Akim Demaille <akim@epita.fr>
3638
3639 * data/bison.simple, data/bison.c++: Rename as...
3640 * data/yacc.c, data/lalr1.cc: these.
3641 * doc/bison.texinfo (Environment Variables): Remove.
3642
3643 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3644
3645 * src/getargs.c (report_argmatch): Initialize strtok().
3646
3647 2002-06-20 Akim Demaille <akim@epita.fr>
3648
3649 * data/bison.simple (b4_symbol_actions): New, replaces...
3650 (b4_symbol_destructor, b4_symbol_printer): these.
3651 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3652 user token numbers.
3653
3654 2002-06-20 Akim Demaille <akim@epita.fr>
3655
3656 * data/bison.simple (yydestructor): Rename as...
3657 (yydestruct): this.
3658
3659 2002-06-20 Akim Demaille <akim@epita.fr>
3660
3661 * src/symtab.h, src/symtab.c (symbol_type_set)
3662 (symbol_destructor_set, symbol_precedence_set): The location is
3663 the last argument.
3664 Adjust all callers.
3665
3666 2002-06-20 Akim Demaille <akim@epita.fr>
3667
3668 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3669 internals.
3670 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3671 Takes a location.
3672 * src/symtab.h, src/symtab.c (symbol_class_set)
3673 (symbol_user_token_number_set): Likewise.
3674 Adjust all callers.
3675 Promote complain_at.
3676 * tests/input.at (Type Clashes): Adjust.
3677
3678 2002-06-20 Akim Demaille <akim@epita.fr>
3679
3680 * data/bison.simple (YYLEX): Fix the declaration when
3681 %pure-parser.
3682
3683 2002-06-20 Akim Demaille <akim@epita.fr>
3684
3685 * data/bison.simple (yysymprint): Don't print the token number,
3686 just its name.
3687 * tests/actions.at (Destructors): Rename as...
3688 (Printers and Destructors): this.
3689 Also exercise %printer.
3690
3691 2002-06-20 Akim Demaille <akim@epita.fr>
3692
3693 * data/bison.simple (YYDSYMPRINT): New.
3694 Use it to remove many of the #if YYDEBUG/if (yydebug).
3695
3696 2002-06-20 Akim Demaille <akim@epita.fr>
3697
3698 * src/symtab.h, src/symtab.c (symbol_t): printer and
3699 printer_location are new members.
3700 (symbol_printer_set): New.
3701 * src/parse-gram.y (PERCENT_PRINTER): New token.
3702 Handle its associated rule.
3703 * src/scan-gram.l: Adjust.
3704 (handle_destructor_at, handle_destructor_dollar): Rename as...
3705 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3706 * src/output.c (symbol_printers_output): New.
3707 (output_skeleton): Call it.
3708 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3709 since there are already many grammar files with a user `yyprint'.
3710 Replace the calls to YYPRINT to calls to yysymprint.
3711 * tests/calc.at: Adjust.
3712 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3713 taking advantage of parser very internal details (stack size!).
3714
3715 2002-06-20 Akim Demaille <akim@epita.fr>
3716
3717 * src/scan-gram.l: Complete the scanner with the missing patterns
3718 to pacify Flex.
3719 Use `quote' and `symbol_tag_get' where appropriate.
3720
3721 2002-06-19 Akim Demaille <akim@epita.fr>
3722
3723 * tests/actions.at (Destructors): Augment to test locations.
3724 * data/bison.simple (yydestructor): Pass it the current location
3725 if locations are enabled.
3726 Prototype only when __STDC__ or C++.
3727 Change the argument names to move into the yy name space: there is
3728 user code here.
3729
3730 2002-06-19 Akim Demaille <akim@epita.fr>
3731
3732 * data/bison.simple (b4_pure_if): New.
3733 Use it instead of #ifdef YYPURE.
3734
3735 2002-06-19 Akim Demaille <akim@epita.fr>
3736
3737 * data/bison.simple (b4_location_if): New.
3738 Use it instead of #ifdef YYLSP_NEEDED.
3739
3740 2002-06-19 Akim Demaille <akim@epita.fr>
3741
3742 Prepare @$ in %destructor, but currently don't bind it in the
3743 skeleton, as %location use is not cleaned up yet.
3744
3745 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3746 (handle_action_at): New.
3747 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3748 a braced_code_t and a location as additional arguments.
3749 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3750 unquote one when outputting `b4_dollar_dollar'.
3751 Adjust callers.
3752 * data/bison.simple (b4_eval): Remove.
3753 (b4_symbol_destructor): Adjust.
3754 * tests/input.at (Invalid @n): Adjust.
3755
3756 2002-06-19 Zack Weinberg <zack@codesourcery.com>
3757
3758 * doc/bison.texinfo: Document ability to have multiple
3759 prologue sections.
3760
3761 2002-06-18 Akim Demaille <akim@epita.fr>
3762
3763 * src/files.c (compute_base_names): When computing the output file
3764 names from the input file name, strip the directory part.
3765
3766 2002-06-18 Akim Demaille <akim@epita.fr>
3767
3768 * data/bison.simple.new: Comment changes.
3769 Reported by Andreas Schwab.
3770
3771 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3772
3773 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3774 there are no `label `yyoverflowlab' defined but not used' warnings
3775 when yyoverflow is defined.
3776
3777 2002-06-18 Akim Demaille <akim@epita.fr>
3778
3779 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
3780 new member.
3781 (symbol_destructor_set): Adjust.
3782 * src/output.c (symbol_destructors_output): Output the destructor
3783 locations.
3784 Output the symbol name.
3785 * data/bison.simple (b4_symbol_destructor): Adjust.
3786
3787 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
3788 and Akim Demaille <akim@epita.fr>
3789
3790 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
3791 what's left on the stack when the error recovery hits EOF.
3792 * tests/actions.at (Destructors): Complete to exercise this case.
3793
3794 2002-06-17 Akim Demaille <akim@epita.fr>
3795
3796 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
3797 arguments is really empty, not only equal to `[]'.
3798 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
3799 member.
3800 (symbol_destructor_set): New.
3801 * src/output.c (symbol_destructors_output): New.
3802 * src/reader.h (brace_code_t, current_braced_code): New.
3803 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
3804 (handle_dollar): Rename as...
3805 (handle_action_dollar): this.
3806 (handle_destructor_dollar): New.
3807 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
3808 (grammar_declaration): Use it.
3809 * data/bison.simple (yystos): Is always defined.
3810 (yydestructor): New.
3811 * tests/actions.at (Destructors): New.
3812 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
3813
3814 2002-06-17 Akim Demaille <akim@epita.fr>
3815
3816 * src/symlist.h, src/symlist.c (symbol_list_length): New.
3817 * src/scan-gram.l (handle_dollar, handle_at): Compute the
3818 rule_length only when needed.
3819 * src/output.c (actions_output, token_definitions_output): Output
3820 the full M4 block.
3821 * src/symtab.c: Don't access directly to the symbol tag, use
3822 symbol_tag_get.
3823 * src/parse-gram.y: Use symbol_list_free.
3824
3825 2002-06-17 Akim Demaille <akim@epita.fr>
3826
3827 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
3828 (symbol_list_prepend, get_type_name): Move to...
3829 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
3830 (symbol_list_prepend, symbol_list_n_type_name_get): here.
3831 Adjust all callers.
3832 (symbol_list_free): New.
3833 * src/scan-gram.l (handle_dollar): Takes a location.
3834 * tests/input.at (Invalid $n): Adjust.
3835
3836 2002-06-17 Akim Demaille <akim@epita.fr>
3837
3838 * src/reader.h, src/reader.c (symbol_list_new): Export it.
3839 (symbol_list_prepend): New.
3840 * src/parse-gram.y (%union): `list' is a new member.
3841 (symbols.1): New, replaces...
3842 (terms_to_prec.1, nterms_to_type.1): these.
3843 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
3844 Take a location as additional argument.
3845 Adjust all callers.
3846
3847 2002-06-15 Akim Demaille <akim@epita.fr>
3848
3849 * src/parse-gram.y: Move %token in the declaration section so that
3850 we don't depend upon CVS Bison.
3851
3852 2002-06-15 Akim Demaille <akim@epita.fr>
3853
3854 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
3855 * src/print.c (print_core): Use it.
3856
3857 2002-06-15 Akim Demaille <akim@epita.fr>
3858
3859 * src/conflicts.c (log_resolution): Accept the rule involved in
3860 the sr conflicts instead of the lookahead number that points to
3861 that rule.
3862 (flush_reduce): Accept the current lookahead vector as argument,
3863 instead of the index in LA.
3864 (resolve_sr_conflict): Accept the current number of lookahead
3865 bitset to consider for the STATE, instead of the index in LA.
3866 (set_conflicts): Adjust.
3867 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
3868
3869 2002-06-15 Akim Demaille <akim@epita.fr>
3870
3871 * src/state.h (state_t): Replace the `lookaheadsp' member, a
3872 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
3873 Adjust all dependencies.
3874 * src/lalr.c (initialize_lookaheads): Split into...
3875 (states_lookaheads_count, states_lookaheads_initialize): these.
3876 (lalr): Adjust.
3877
3878 2002-06-15 Akim Demaille <akim@epita.fr>
3879
3880 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
3881 out of...
3882 (grammar_rules_print): here.
3883 * src/reduce.c (reduce_output): Use it.
3884 * tests/reduce.at (Useless Rules, Reduced Automaton)
3885 (Underivable Rules): Adjust.
3886
3887 2002-06-15 Akim Demaille <akim@epita.fr>
3888
3889 Copy BYacc's nice way to report the grammar.
3890
3891 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
3892 New.
3893 Don't print the rules' location, it is confusing and useless.
3894 (rule_print): Use grammar_rhs_print.
3895 * src/print.c (print_grammar): Use grammar_rules_print.
3896
3897 2002-06-15 Akim Demaille <akim@epita.fr>
3898
3899 Complete and rationalize `useless thing' warnings.
3900
3901 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
3902 (symbol_tag_print): New.
3903 Use them everywhere in place of accessing directly the tag member.
3904 * src/gram.h, src/gram.c (rule_print): New.
3905 Use it where a rule used to be printed `by hand'.
3906 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
3907 (reduce_grammar_tables): Report the useless rules.
3908 (reduce_print): Useless things are a warning, not an error.
3909 Report it as such.
3910 * tests/reduce.at (Useless Nonterminals, Useless Rules):
3911 (Reduced Automaton, Underivable Rules): Adjust.
3912 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
3913 * tests/conflicts.at (Unresolved SR Conflicts)
3914 (Solved SR Conflicts): Adjust.
3915
3916 2002-06-15 Akim Demaille <akim@epita.fr>
3917
3918 Let symbols have a location.
3919
3920 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
3921 (getsym): Adjust.
3922 Adjust all callers.
3923 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
3924 Use location_t, not int.
3925 * src/symtab.c (symbol_check_defined): Take advantage of the
3926 location.
3927 * tests/regression.at (Invalid inputs): Adjust.
3928
3929 2002-06-15 Akim Demaille <akim@epita.fr>
3930
3931 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
3932 (input): Don't try to initialize yylloc here, do it in the
3933 scanner.
3934 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
3935 * src/gram.h (rule_t): Change line and action_line into location
3936 and action_location, of location_t type.
3937 Adjust all dependencies.
3938 * src/location.h, src/location.c (empty_location): New.
3939 * src/reader.h, src/reader.c (grammar_start_symbol_set)
3940 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
3941 (grammar_current_rule_symbol_append)
3942 (grammar_current_rule_action_append): Expect a location as argument.
3943 * src/reader.c (grammar_midrule_action): Adjust to attach an
3944 action's location as dummy symbol location.
3945 * src/symtab.h, src/symtab.c (startsymbol_location): New.
3946 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
3947 the line numbers.
3948
3949 2002-06-14 Akim Demaille <akim@epita.fr>
3950
3951 Grammar declarations may be found in the grammar section.
3952
3953 * src/parse-gram.y (rules_or_grammar_declaration): New.
3954 (declarations): Each declaration may end with a semicolon, not
3955 just...
3956 (grammar_declaration): `"%union"'.
3957 (grammar): Branch to rules_or_grammar_declaration.
3958
3959 2002-06-14 Akim Demaille <akim@epita.fr>
3960
3961 * src/main.c (main): Invoke scanner_free.
3962
3963 2002-06-14 Akim Demaille <akim@epita.fr>
3964
3965 * src/output.c (m4_invoke): Extracted from...
3966 (output_skeleton): here.
3967 Free tempfile.
3968
3969 2002-06-14 Akim Demaille <akim@epita.fr>
3970
3971 * src/parse-gram.y (directives, directive, gram)
3972 (grammar_directives, precedence_directives, precedence_directive):
3973 Rename as...
3974 (declarations, declaration, grammar, grammar_declaration)
3975 (precedence_declaration, precedence_declarator): these.
3976 (symbol_declaration): New.
3977
3978 2002-06-14 Akim Demaille <akim@epita.fr>
3979
3980 * src/files.c (action_obstack): Remove, unused.
3981 (output_obstack): Remove it, and all its dependencies, as it is no
3982 longer needed.
3983 * src/reader.c (epilogue_set): Build the epilogue in the
3984 muscle_obstack.
3985 * src/output.h, src/output.c (muscle_obstack): Move to...
3986 * src/muscle_tab.h, src/muscle_tab.h: here.
3987 (muscle_init): Initialize muscle_obstack.
3988 (muscle_free): New.
3989 * src/main.c (main): Call it.
3990
3991 2002-06-14 Akim Demaille <akim@epita.fr>
3992
3993 * src/location.h: New, extracted from...
3994 * src/reader.h: here.
3995 * src/Makefile.am (noinst_HEADERS): Merge into
3996 (bison_SOURCES): this.
3997 Add location.h.
3998 * src/parse-gram.y: Use location_t instead of Bison's.
3999 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4000 Use location_t instead of ints.
4001
4002 2002-06-14 Akim Demaille <akim@epita.fr>
4003
4004 * data/bison.simple, data/bison.c++: Be sure to restore the
4005 current #line when returning to the skeleton contents after having
4006 exposed the input file's #line.
4007
4008 2002-06-12 Akim Demaille <akim@epita.fr>
4009
4010 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4011 eager.
4012 * tests/actions.at (Exotic Dollars): New.
4013
4014 2002-06-12 Akim Demaille <akim@epita.fr>
4015
4016 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4017 ['"/] too eagerly.
4018 * tests/input.at (Torturing the Scanner): New.
4019
4020 2002-06-11 Akim Demaille <akim@epita.fr>
4021
4022 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4023 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4024 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4025 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4026 * src/reader.c (reader): Use it.
4027
4028 2002-06-11 Akim Demaille <akim@epita.fr>
4029
4030 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4031 Adjust all callers.
4032 (scanner_last_string_free): New.
4033
4034 2002-06-11 Akim Demaille <akim@epita.fr>
4035
4036 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4037 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4038 (last_string, YY_OBS_FREE): New.
4039 Use them when returning an ID.
4040
4041 2002-06-11 Akim Demaille <akim@epita.fr>
4042
4043 Have Bison grammars parsed by a Bison grammar.
4044
4045 * src/reader.c, src/reader.h (prologue_augment): New.
4046 * src/reader.c (copy_definition): Remove.
4047
4048 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4049 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4050 (grammar_current_rule_prec_set, grammar_current_rule_check)
4051 (grammar_current_rule_symbol_append)
4052 (grammar_current_rule_action_append): Export.
4053 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4054 (symbol_list_action_append): Remove.
4055 Hook the routines from reader.
4056 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4057 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4058
4059 * src/reader.c (read_declarations): Remove, unused.
4060
4061 * src/parse-gram.y: Handle the epilogue.
4062 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4063 (grammar_start_symbol_set): this.
4064 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4065 * src/reader.c (readgram): Remove, unused.
4066 (reader): Adjust to insert eoftoken and axiom where appropriate.
4067
4068 * src/reader.c (copy_dollar): Replace with...
4069 * src/scan-gram.h (handle_dollar): this.
4070 * src/parse-gram.y: Remove `%thong'.
4071
4072 * src/reader.c (copy_at): Replace with...
4073 * src/scan-gram.h (handle_at): this.
4074
4075 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4076 New.
4077
4078 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4079 time being.
4080
4081 * src/reader.h, src/reader.c (grammar_rule_end): New.
4082
4083 * src/parse.y (current_type, current_class): New.
4084 Implement `%nterm', `%token' support.
4085 Merge `%term' into `%token'.
4086 (string_as_id): New.
4087 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4088 type name.
4089
4090 * src/parse-gram.y: Be sure to handle properly the beginning of
4091 rules.
4092
4093 * src/parse-gram.y: Handle %type.
4094 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4095
4096 * src/parse-gram.y: More directives support.
4097 * src/options.c: No longer handle source directives.
4098
4099 * src/parse-gram.y: Fix %output.
4100
4101 * src/parse-gram.y: Handle %union.
4102 Use the prologue locations.
4103 * src/reader.c (parse_union_decl): Remove.
4104
4105 * src/reader.h, src/reader.c (epilogue_set): New.
4106 * src/parse-gram.y: Use it.
4107
4108 * data/bison.simple, data/bison.c++: b4_stype is now either not
4109 defined, then default to int, or to the contents of %union,
4110 without `union' itself.
4111 Adjust.
4112 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4113
4114 * src/output.c (actions_output): Don't output braces, as they are
4115 already handled by the scanner.
4116
4117 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4118 characters to themselves.
4119
4120 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4121 that the epilogue has a proper #line.
4122
4123 * src/parse-gram.y: Handle precedence/associativity.
4124
4125 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4126 a terminal.
4127 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4128 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4129 at all to define terminals that cannot be emitted.
4130
4131 * src/scan-gram.l: Escape M4 characters.
4132
4133 * src/scan-gram.l: Working properly with escapes in user
4134 strings/characters.
4135
4136 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4137 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4138 grammar.
4139 Use more modest sizes, as for the time being the parser does not
4140 release memory, and therefore the process swallows a huge amount
4141 of memory.
4142
4143 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4144 stricter %token grammar.
4145
4146 * src/symtab.h (associativity): Add `undef_assoc'.
4147 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4148 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4149
4150 * tests/regression.at (Invalid %directive): Remove, as it is now
4151 meaningless.
4152 (Invalid inputs): Adjust to the new error messages.
4153 (Token definitions): The new grammar doesn't allow too many
4154 eccentricities.
4155
4156 * src/lex.h, src/lex.c: Remove.
4157 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4158 (copy_character, copy_string2, copy_string, copy_identifier)
4159 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4160 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4161 (parse_action): Remove.
4162 * po/POTFILES.in: Adjust.
4163
4164 2002-06-11 Akim Demaille <akim@epita.fr>
4165
4166 * src/reader.c (parse_action): Don't store directly into the
4167 rule's action member: return the action as a string.
4168 Don't require `rule_length' as an argument: compute it.
4169 (grammar_current_rule_symbol_append)
4170 (grammar_current_rule_action_append): New, eved out from
4171 (readgram): here.
4172 Remove `action_flag', `rulelength', unused now.
4173
4174 2002-06-11 Akim Demaille <akim@epita.fr>
4175
4176 * src/reader.c (grammar_current_rule_prec_set).
4177 (grammar_current_rule_check): New, eved out from...
4178 (readgram): here.
4179 Remove `xaction', `first_rhs': useless.
4180 * tests/input.at (Type clashes): New.
4181 * tests/existing.at (GNU Cim Grammar): Adjust.
4182
4183 2002-06-11 Akim Demaille <akim@epita.fr>
4184
4185 * src/reader.c (grammar_midrule_action): New, Eved out from
4186 (readgram): here.
4187
4188 2002-06-11 Akim Demaille <akim@epita.fr>
4189
4190 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4191 New.
4192 (readgram): Use them as replacement of inlined code, crule and
4193 crule1.
4194
4195 2002-06-11 Akim Demaille <akim@epita.fr>
4196
4197 * src/reader.c (grammar_end, grammar_symbol_append): New.
4198 (readgram): Use them.
4199 Make the use of `p' as local as possible.
4200
4201 2002-06-10 Akim Demaille <akim@epita.fr>
4202
4203 GCJ's parser requires the tokens to be defined before the prologue.
4204
4205 * data/bison.simple: Output the token definition before the user's
4206 prologue.
4207 * tests/regression.at (Braces parsing, Duplicate string)
4208 (Mixing %token styles): Check the output from bison.
4209 (Early token definitions): New.
4210
4211 2002-06-10 Akim Demaille <akim@epita.fr>
4212
4213 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4214 assigning twice the same user number to a token, so that we can
4215 use it in...
4216 * src/lex.c (lex): here.
4217 Also use `symbol_class_set' instead of hand written code.
4218 * src/reader.c (parse_assoc_decl): Likewise.
4219
4220 2002-06-10 Akim Demaille <akim@epita.fr>
4221
4222 * src/symtab.c, src/symtab.c (symbol_class_set)
4223 (symbol_user_token_number_set): New.
4224 * src/reader.c (parse_token_decl): Use them.
4225 Use a switch instead of ifs.
4226 Use a single argument.
4227
4228 2002-06-10 Akim Demaille <akim@epita.fr>
4229
4230 Remove `%thong' support as it is undocumented, unused, duplicates
4231 `%token's job, and creates useless e-mail traffic with people who
4232 want to know what it is, why it is undocumented, unused, and
4233 duplicates `%token's job.
4234
4235 * src/reader.c (parse_thong_decl): Remove.
4236 * src/options.c (option_table): Remove "thong".
4237 * src/lex.h (tok_thong): Remove.
4238
4239 2002-06-10 Akim Demaille <akim@epita.fr>
4240
4241 * src/symtab.c, src/symtab.c (symbol_type_set)
4242 (symbol_precedence_set): New.
4243 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4244 (value_components_used): Remove, unused.
4245
4246 2002-06-09 Akim Demaille <akim@epita.fr>
4247
4248 Move symbols handling code out of the reader.
4249
4250 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4251 (axiom): Move to...
4252 * src/symtab.h, src/symtab.c: here.
4253
4254 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4255 * src/reader.c (startval): Rename as...
4256 * src/symtab.h, src/symtab.c (startsymbol): this.
4257 * src/reader.c: Adjust.
4258
4259 * src/reader.c (symbol_check_defined, symbol_make_alias)
4260 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4261 (token_translations_init)
4262 Move to...
4263 * src/symtab.c: here.
4264 * src/reader.c (packsymbols): Move to...
4265 * src/symtab.h, src/symtab.c (symbols_pack): here.
4266 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4267 argument.
4268
4269 2002-06-03 Akim Demaille <akim@epita.fr>
4270
4271 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4272 then statements.
4273
4274 2002-06-03 Akim Demaille <akim@epita.fr>
4275
4276 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4277 structs with non literals.
4278 * src/scan-skel.l: never-interactive.
4279 * src/conflicts.c (enum conflict_resolution_e): No trailing
4280 comma.
4281 * src/getargs.c (usage): Split long literal strings.
4282 Reported by Hans Aberg.
4283
4284 2002-05-28 Akim Demaille <akim@epita.fr>
4285
4286 * data/bison.c++: Use C++ ostreams.
4287 (cdebug_): New member.
4288
4289 2002-05-28 Akim Demaille <akim@epita.fr>
4290
4291 * src/output.c (output_skeleton): Be sure to allocate enough room
4292 for `/' _and_ for `\0' in full_skeleton.
4293
4294 2002-05-28 Akim Demaille <akim@epita.fr>
4295
4296 * data/bison.c++: Catch up with bison.simple:
4297 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4298 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4299 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4300 and popping traces.
4301
4302 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4303
4304 * src/output.c (output_skeleton): Put an explicit path in front of
4305 the skeleton file name, rather than relying on the -I directory,
4306 to partially alleviate effects of having a skeleton file lying around
4307 in the current directory.
4308
4309 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4310
4311 * src/conflicts.c (log_resolution): Correct typo:
4312 obstack_printf should be obstack_fgrow1.
4313
4314 2002-05-26 Akim Demaille <akim@epita.fr>
4315
4316 * src/state.h (state_t): `solved_conflicts' is a new member.
4317 * src/LR0.c (new_state): Set it to 0.
4318 * src/conflicts.h, src/conflicts.c (print_conflicts)
4319 (free_conflicts, solve_conflicts): Rename as...
4320 (conflicts_print, conflicts_free, conflicts_solve): these.
4321 Adjust callers.
4322 * src/conflicts.c (enum conflict_resolution_e)
4323 (solved_conflicts_obstack): New, used by...
4324 (log_resolution): this.
4325 Adjust to attach the conflict resolution to each state.
4326 Complete the description with the precedence/associativity
4327 information.
4328 (resolve_sr_conflict): Adjust.
4329 * src/print.c (print_state): Output its solved_conflicts.
4330 * tests/conflicts.at (Unresolved SR Conflicts)
4331 (Solved SR Conflicts): Exercise --report=all.
4332
4333 2002-05-26 Akim Demaille <akim@epita.fr>
4334
4335 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4336 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4337 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4338 (token_number_t, item_number_as_token_number)
4339 (token_number_as_item_number, muscle_insert_token_number_table):
4340 Rename as...
4341 (symbol_number_t, item_number_as_symbol_number)
4342 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4343 these, since it is more appropriate.
4344
4345 2002-05-26 Akim Demaille <akim@epita.fr>
4346
4347 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4348 `Error:' lines.
4349 * data/bison.simple (yystos) [YYDEBUG]: New.
4350 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4351 error recovery.
4352 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4353
4354 2002-05-25 Akim Demaille <akim@epita.fr>
4355
4356 * doc/bison.texinfo (Debugging): Split into...
4357 (Tracing): this new section, its former contents, and...
4358 (Understanding): this new section.
4359 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4360 by...
4361 (report_flag): this.
4362 Adjust all dependencies.
4363 (report_args, report_types, report_argmatch): New.
4364 (usage, getargs): Report/support -r, --report.
4365 * src/options.h
4366 (struct option_table_struct): Rename as..,
4367 (struct option_table_s): this.
4368 Rename the `set_flag' member to `flag' to match with getopt_long's
4369 struct.
4370 * src/options.c (option_table): Split verbose into an entry for
4371 %verbose, and another for --verbose.
4372 Support --report/-r, so remove -r from the obsolete --raw.
4373 * src/print.c: Attach full item sets and lookaheads reports to
4374 report_flag instead of trace_flag.
4375 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4376
4377 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4378 and Paul Eggert <eggert@twinsun.com>
4379
4380 * data/bison.simple (yyparse): Correct error handling to conform to
4381 POSIX and yacc. Specifically, after syntax error is discovered,
4382 do not reduce further before shifting the error token.
4383 Clean up the code a bit by removing the labels yyerrdefault,
4384 yyerrhandle, yyerrpop.
4385 * NEWS: Document the above.
4386
4387 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4388
4389 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4390 type; it isn't always big enough, since it doesn't necessarily
4391 include non-terminals.
4392 (yytranslate): Expand definition of yy_token_number_type, so that
4393 the latter can be removed.
4394 (yy_token_number_type): Remove, only one use.
4395 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4396 don't use TokenNumberType as element type.
4397
4398 * tests/regression.at: Modify expected output to agree with change
4399 to yyr1 and yytranslate.
4400
4401 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4402
4403 * src/reader.c (parse_action): Use copy_character instead of
4404 obstack_1grow.
4405
4406 2002-05-13 Akim Demaille <akim@epita.fr>
4407
4408 * tests/regression.at (Token definitions): Prototype yylex and
4409 yyerror.
4410
4411 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4412
4413 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
4414 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4415 32-bit arithmetic.
4416 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4417
4418 2002-05-07 Akim Demaille <akim@epita.fr>
4419
4420 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4421 avoid GCC warnings.
4422
4423 2002-05-07 Akim Demaille <akim@epita.fr>
4424
4425 Kill GCC warnings.
4426
4427 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4428 over the RHS of each rule.
4429 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4430 * src/state.h (state_t): Member `nitems' is unsigned short.
4431 * src/LR0.c (get_state): Adjust.
4432 * src/reader.c (packgram): Likewise.
4433 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4434 `Type'.
4435 (muscle_insert_int_table): Remove, unused.
4436 (prepare_rules): Remove `max'.
4437
4438 2002-05-06 Akim Demaille <akim@epita.fr>
4439
4440 * src/closure.c (print_firsts): Display of the symbol tags.
4441 (bitmatrix_print): Move to...
4442 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4443 here.
4444 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4445
4446 2002-05-06 Akim Demaille <akim@epita.fr>
4447
4448 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4449 hash_do_for_each.
4450
4451 2002-05-06 Akim Demaille <akim@epita.fr>
4452
4453 * src/LR0.c (new_state, get_state): Instead of using the global
4454 `kernel_size' and `kernel_base', have two new arguments:
4455 `core_size' and `core'.
4456 Adjust callers.
4457
4458 2002-05-06 Akim Demaille <akim@epita.fr>
4459
4460 * src/reader.c (packgram): No longer end `ritem' with a 0
4461 sentinel: it is not used.
4462
4463 2002-05-05 Akim Demaille <akim@epita.fr>
4464
4465 New experimental feature: display the lookaheads in the report and
4466 graph.
4467
4468 * src/print (print_core): When --trace-flag, display the rules
4469 lookaheads.
4470 * src/print_graph.c (print_core): Likewise.
4471 Swap the arguments.
4472 Adjust caller.
4473
4474 2002-05-05 Akim Demaille <akim@epita.fr>
4475
4476 * tests/torture.at (Many lookaheads): New test.
4477
4478 2002-05-05 Akim Demaille <akim@epita.fr>
4479
4480 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4481 (GENERATE_MUSCLE_INSERT_TABLE): this.
4482 (output_int_table, output_unsigned_int_table, output_short_table)
4483 (output_token_number_table, output_item_number_table): Replace with...
4484 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4485 (muscle_insert_short_table, muscle_insert_token_number_table)
4486 (muscle_insert_item_number_table): these.
4487 Adjust all callers.
4488 (prepare_tokens): Don't free `translations', since...
4489 * src/reader.h, src/reader.c (grammar_free): do it.
4490 Move to...
4491 * src/gram.h, src/gram.c (grammar_free): here.
4492 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4493 b4_translate_max.
4494
4495 2002-05-05 Akim Demaille <akim@epita.fr>
4496
4497 * src/output.c (output_unsigned_int_table): New.
4498 (prepare_rules): `i' is unsigned.
4499 `prhs', `rline', `r2' are unsigned int.
4500 Rename muscle `rhs_number_max' as `rhs_max'.
4501 Output muscles `prhs_max', `rline_max', and `r2_max'.
4502 Free rline and r1.
4503 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4504 to compute types instead of constant types.
4505 * tests/regression.at (Web2c Actions): Adjust.
4506
4507 2002-05-04 Akim Demaille <akim@epita.fr>
4508
4509 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4510 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4511 Adjust dependencies.
4512 * src/output.c (token_definitions_output): Be sure not to output a
4513 `#define 'a'' when fed with `%token 'a' "a"'.
4514 * tests/regression.at (Token definitions): New.
4515
4516 2002-05-03 Paul Eggert <eggert@twinsun.com>
4517
4518 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4519 for K&R C.
4520
4521 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4522
4523 * Makefile.am (SUBDIRS): Remove intl.
4524 (EXTRA_DIST): Add config/config.rpath.
4525
4526 2002-05-03 Akim Demaille <akim@epita.fr>
4527
4528 * data/bison.simple (m4_if): Don't output empty enums.
4529 And actually, output valid enum definitions :(.
4530
4531 2002-05-03 Akim Demaille <akim@epita.fr>
4532
4533 * configure.bat: Remove, completely obsolete.
4534 * Makefile.am (EXTRA_DIST): Adjust.
4535 Don't distribute config.rpath...
4536 * config/Makefile.am (EXTRA_DIST): Do it.
4537
4538 2002-05-03 Akim Demaille <akim@epita.fr>
4539
4540 * configure.in (GETTEXT_VERSION): New.
4541 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4542
4543 2002-05-03 Akim Demaille <akim@epita.fr>
4544
4545 * data/bison.simple (b4_token_enum): New.
4546 (b4_token_defines): Use it to output tokens both as #define and
4547 enums.
4548 Suggested by Paul Eggert.
4549 * src/output.c (token_definitions_output): Don't output spurious
4550 white spaces.
4551
4552 2002-05-03 Akim Demaille <akim@epita.fr>
4553
4554 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4555
4556 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
4557
4558 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4559 Update the stack class, give a try to deque as the default container.
4560
4561 2002-05-02 Akim Demaille <akim@epita.fr>
4562
4563 * data/bison.simple (yyparse): Do not implement @$ = @1.
4564 (YYLLOC_DEFAULT): Adjust to do it.
4565 * doc/bison.texinfo (Location Default Action): Fix.
4566
4567 2002-05-02 Akim Demaille <akim@epita.fr>
4568
4569 * src/reader.c (parse_braces): Merge into...
4570 (parse_action): this.
4571
4572 2002-05-02 Akim Demaille <akim@epita.fr>
4573
4574 * configure.in (ALL_LINGUAS): Remove.
4575 * po/LINGUAS, hr.po: New.
4576
4577 2002-05-02 Akim Demaille <akim@epita.fr>
4578
4579 Remove the so called hairy (semantic) parsers.
4580
4581 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4582 * src/gram.h, src/gram.c (semantic_parser): Remove.
4583 (rule_t): Remove the guard and guard_line members.
4584 * src/lex.h (token_t): remove tok_guard.
4585 * src/options.c (option_table): Remove %guard and %semantic_parser
4586 support.
4587 * src/output.c, src/output.h (guards_output): Remove.
4588 (prepare): Adjust.
4589 (token_definitions_output): Don't output the `T'
4590 tokens (???).
4591 (output_skeleton): Don't output the guards.
4592 * src/files.c, src/files.c (attrsfile): Remove.
4593 * src/reader.c (symbol_list): Remove the guard and guard_line
4594 members.
4595 Adjust dependencies.
4596 (parse_guard): Remove.
4597 * data/bison.hairy: Remove.
4598 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4599 BISON_HAIRY.
4600
4601 2002-05-02 Akim Demaille <akim@epita.fr>
4602
4603 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4604 (parse_guard): Rename the formal argument `stack_offset' as
4605 `rule_length', which is more readable.
4606 Adjust callers.
4607 (copy_at, copy_dollar): Instead of outputting the hard coded
4608 values of $$, $n and so forth, output invocation to b4_lhs_value,
4609 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
4610 Note: this patch partially drops `semantic-parser' support: it
4611 always does `rule_length - n', where semantic parsers ought to
4612 always use `-n'.
4613 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4614 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4615
4616 2002-05-02 Akim Demaille <akim@epita.fr>
4617
4618 * configure.in (AC_INIT): Bump to 1.49b.
4619 (AM_INIT_AUTOMAKE): Short invocation.
4620
4621 2002-05-02 Akim Demaille <akim@epita.fr>
4622
4623 Version 1.49a.
4624
4625 2002-05-01 Akim Demaille <akim@epita.fr>
4626
4627 * src/skeleton.h: Remove.
4628
4629 2002-05-01 Akim Demaille <akim@epita.fr>
4630
4631 * src/skeleton.h: Fix the #endif.
4632 Reported by Magnus Fromreide.
4633
4634 2002-04-26 Paul Eggert <eggert@twinsun.com>
4635
4636 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4637 Define if we define YYSTYPE and YYLTYPE, respectively.
4638 (YYCOPY): Fix [] quoting problem in the non-GCC case.
4639
4640 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
4641
4642 * src/scan-skel.l: Postprocess quadrigraphs.
4643
4644 * src/reader.c (copy_character): New function, used to output
4645 single characters while replacing `[' and `]' with quadrigraphs, to
4646 avoid troubles with M4 quotes.
4647 (copy_comment): Output characters with copy_character.
4648 (read_additionnal_code): Likewise.
4649 (copy_string2): Likewise.
4650 (copy_definition): Likewise.
4651
4652 * tests/calc.at: Exercise M4 quoting.
4653
4654 2002-04-25 Akim Demaille <akim@epita.fr>
4655
4656 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4657 between `!' and the command.
4658 Reported by Paul Eggert.
4659
4660 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
4661
4662 * tests/calc.at: Exercise prologue splitting.
4663
4664 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4665 `b4_post_prologue' instead of `b4_prologue'.
4666
4667 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4668 muscles.
4669 (output): Free pre_prologue_obstack and post_prologue_obstack.
4670 * src/files.h, src/files.c (attrs_obstack): Remove.
4671 (pre_prologue_obstack, post_prologue_obstack): New.
4672 * src/reader.c (copy_definition): Add a parameter to specify the
4673 obstack to fill, instead of using attrs_obstack unconditionally.
4674 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4675 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4676
4677 2002-04-23 Paul Eggert <eggert@twinsun.com>
4678
4679 * data/bison.simple: Remove unnecessary commentary and white
4680 space differences from 1_29-branch.
4681 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4682
4683 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4684 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4685 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4686 constructors or destructors.
4687
4688 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4689
4690 2002-04-23 Akim Demaille <akim@epita.fr>
4691
4692 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4693 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4694 location with columns.
4695 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4696 All reported by Paul Eggert.
4697
4698 2002-04-22 Akim Demaille <akim@epita.fr>
4699
4700 * src/reduce.c (dump_grammar): Move to...
4701 * src/gram.h, src/gram.c (grammar_dump): here.
4702 Be sure to separate long item numbers.
4703 Don't read the members of a rule's prec if its nil.
4704
4705 2002-04-22 Akim Demaille <akim@epita.fr>
4706
4707 * src/output.c (table_size, table_grow): New.
4708 (MAXTABLE): Remove, replace uses with table_size.
4709 (pack_vector): Instead of dying when the table is too big, grow it.
4710
4711 2002-04-22 Akim Demaille <akim@epita.fr>
4712
4713 * data/bison.simple (yyr1): Its type is that of a token number.
4714 * data/bison.c++ (r1_): Likewise.
4715 * tests/regression.at (Web2c Actions): Adjust.
4716
4717 2002-04-22 Akim Demaille <akim@epita.fr>
4718
4719 * src/reader.c (token_translations_init): 256 is now the default
4720 value for the error token, i.e., it will be assigned another
4721 number if the user assigned 256 to one of her tokens.
4722 (reader): Don't force 256 to error.
4723 * doc/bison.texinfo (Symbols): Adjust.
4724 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4725 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4726 etc. instead of 10, 20, 30 (which was used to `jump' over error
4727 (256) and undefined (2)).
4728
4729 2002-04-22 Akim Demaille <akim@epita.fr>
4730
4731 Propagate more token_number_t.
4732
4733 * src/gram.h (token_number_as_item_number)
4734 (item_number_as_token_number): New.
4735 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4736 Use it to create output_item_number_table and
4737 output_token_number_table.
4738 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4739 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4740 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4741 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4742
4743 2002-04-22 Akim Demaille <akim@epita.fr>
4744
4745 * src/output.h, src/output.c (get_lines_number): Remove.
4746
4747 2002-04-19 Akim Demaille <akim@epita.fr>
4748
4749 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4750 as Lex/Flex'.
4751 (Debugging): More details about enabling the debugging features.
4752 (Table of Symbols): Describe $$, $n, @$, and @n.
4753 Suggested by Tim Josling.
4754
4755 2002-04-19 Akim Demaille <akim@epita.fr>
4756
4757 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4758
4759 2002-04-10 Akim Demaille <akim@epita.fr>
4760
4761 * src/system.h: Rely on HAVE_LIMITS_H.
4762 Suggested by Paul Eggert.
4763
4764 2002-04-09 Akim Demaille <akim@epita.fr>
4765
4766 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4767 full stderr, and strip it according to the bison options, instead
4768 of composing the error message from different bits.
4769 This makes it easier to check for several error messages.
4770 Adjust all the invocations.
4771 Add an invocation exercising the error token.
4772 Add an invocation demonstrating a stupid error message.
4773 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4774 Adjust the tests.
4775 Error message are for stderr, not stdout.
4776
4777 2002-04-09 Akim Demaille <akim@epita.fr>
4778
4779 * src/gram.h, src/gram.c (error_token_number): Remove, use
4780 errtoken->number.
4781 * src/reader.c (reader): Don't specify the user token number (2)
4782 for $undefined, as it uselessly prevents using it.
4783 * src/gram.h (token_number_t): Move to...
4784 * src/symtab.h: here.
4785 (state_t.number): Is a token_number_t.
4786 * src/print.c, src/reader.c: Use undeftoken->number instead of
4787 hard coded 2.
4788 (Even though this 2 is not the same as above: the number of the
4789 undeftoken remains being 2, it is its user token number which
4790 might not be 2).
4791 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
4792 `user_token_number_max'.
4793 Output `undef_token_number'.
4794 * data/bison.simple, data/bison.c++: Use them.
4795 Be sure to map invalid yylex return values to
4796 `undef_token_number'. This saves us from gratuitous SEGV.
4797
4798 * tests/conflicts.at (Solved SR Conflicts)
4799 (Unresolved SR Conflicts): Adjust.
4800 * tests/regression.at (Web2c Actions): Adjust.
4801
4802 2002-04-08 Akim Demaille <akim@epita.fr>
4803
4804 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
4805 Adding #line.
4806 Remove the duplicate `typedefs'.
4807 (RhsNumberType): Fix the declaration and various other typos.
4808 Use __ofile__.
4809 * data/bison.simple: Use __ofile__.
4810 * src/scan-skel.l: Handle __ofile__.
4811
4812 2002-04-08 Akim Demaille <akim@epita.fr>
4813
4814 * src/gram.h (item_number_t): New, the type of item numbers in
4815 RITEM. Note that it must be able to code symbol numbers as
4816 positive number, and the negation of rule numbers as negative
4817 numbers.
4818 Adjust all dependencies (pretty many).
4819 * src/reduce.c (rule): Remove this `short *' pointer: use
4820 item_number_t.
4821 * src/system.h (MINSHORT, MAXSHORT): Remove.
4822 Include `limits.h'.
4823 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
4824 (shortcpy): Remove.
4825 (MAXTABLE): Move to...
4826 * src/output.c (MAXTABLE): here.
4827 (prepare_rules): Use output_int_table to output rhs.
4828 * data/bison.simple, data/bison.c++: Adjust.
4829 * tests/torture.at (Big triangle): Move the limit from 254 to
4830 500.
4831 * tests/regression.at (Web2c Actions): Ajust.
4832
4833 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
4834 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
4835 passes, but produces negative #line number, once fixed, GCC is
4836 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
4837 C), it passes.
4838 * src/state.h (state_h): Code input lines on ints, not shorts.
4839
4840 2002-04-08 Akim Demaille <akim@epita.fr>
4841
4842 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
4843 and then the grammar.
4844
4845 2002-04-08 Akim Demaille <akim@epita.fr>
4846
4847 * src/system.h: No longer using strndup.
4848
4849 2002-04-07 Akim Demaille <akim@epita.fr>
4850
4851 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
4852 * src/output.c (output_table_data): Return the longest number.
4853 (prepare_tokens): Output `token_number_max').
4854 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
4855 New.
4856 Use them to define yy_token_number_type/TokenNumberType.
4857 Use this type for yytranslate.
4858 * tests/torture.at (Big triangle): Push the limit from 124 to
4859 253.
4860 * tests/regression.at (Web2c Actions): Adjust.
4861
4862 2002-04-07 Akim Demaille <akim@epita.fr>
4863
4864 * tests/torture.at (Big triangle): New.
4865 (GNU AWK Grammar, GNU Cim Grammar): Move to...
4866 * tests/existing.at: here.
4867
4868 2002-04-07 Akim Demaille <akim@epita.fr>
4869
4870 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
4871 nritems.
4872 Adjust dependencies.
4873
4874 2002-04-07 Akim Demaille <akim@epita.fr>
4875
4876 * src/reader.c: Normalize increments to prefix form.
4877
4878 2002-04-07 Akim Demaille <akim@epita.fr>
4879
4880 * src/reader.c, symtab.c: Remove debugging code.
4881
4882 2002-04-07 Akim Demaille <akim@epita.fr>
4883
4884 Rename all the `bucket's as `symbol_t'.
4885
4886 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
4887 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
4888 * src/symtab.c, src/symtab.h (bucket): Rename as...
4889 (symbol_t): this.
4890 (symbol_list_new, bucket_check_defined, bucket_make_alias)
4891 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
4892 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4893 (buckets_new, buckets_free, buckets_do): Rename as...
4894 (symbol_list_new, symbol_check_defined, symbol_make_alias)
4895 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4896 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
4897 (symbols_new, symbols_free, symbols_do): these.
4898
4899 2002-04-07 Akim Demaille <akim@epita.fr>
4900
4901 Use lib/hash for the symbol table.
4902
4903 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
4904 EOF.
4905 * src/lex.c (lex): Set the `number' member of new terminals.
4906 * src/reader.c (bucket_check_defined, bucket_make_alias)
4907 (bucket_check_alias_consistence, bucket_translation): New.
4908 (reader, grammar_free, readgram, token_translations_init)
4909 (packsymbols): Adjust.
4910 (reader): Number the predefined tokens.
4911 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
4912 for predefined tokens.
4913 * src/symtab.h (bucket): Remove all the hash table related
4914 members.
4915 * src/symtab.c (symtab): Replace by...
4916 (bucket_table): this.
4917 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4918 (buckets_new, buckets_do): New.
4919
4920 2002-04-07 Akim Demaille <akim@epita.fr>
4921
4922 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
4923 (start_symbol, max_user_token_number, semantic_parser)
4924 (error_token_number): Initialize.
4925 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
4926 Initialize.
4927 (reader): Don't.
4928 (errtoken, eoftoken, undeftoken, axiom): Extern.
4929
4930 2002-04-07 Akim Demaille <akim@epita.fr>
4931
4932 * src/gram.h (rule_s): prec and precsym are now pointers
4933 to the bucket giving the priority/associativity.
4934 Member `associativity' removed: useless.
4935 * src/reduce.c, src/conflicts.c: Adjust.
4936
4937 2002-04-07 Akim Demaille <akim@epita.fr>
4938
4939 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
4940 Properly escape the symbols' TAG when outputting them.
4941
4942 2002-04-07 Akim Demaille <akim@epita.fr>
4943
4944 * src/lalr.h (LA): Is a bitsetv, not bitset*.
4945
4946 2002-04-07 Akim Demaille <akim@epita.fr>
4947
4948 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
4949 (LArule): this, which is an array to rule_t*.
4950 * src/print.c, src/conflicts.c: Adjust.
4951
4952 2002-04-07 Akim Demaille <akim@epita.fr>
4953
4954 * src/gram.h (rule_t): Rename `number' as `user_number'.
4955 `number' is a new member.
4956 Adjust dependencies.
4957 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
4958
4959 2002-04-07 Akim Demaille <akim@epita.fr>
4960
4961 As a result of the previous patch, it is no longer needed
4962 to reorder ritem itself.
4963
4964 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
4965
4966 2002-04-07 Akim Demaille <akim@epita.fr>
4967
4968 Be sure never to walk through RITEMS, but use only data related to
4969 the rules themselves. RITEMS should be banished.
4970
4971 * src/output.c (output_token_translations): Rename as...
4972 (prepare_tokens): this.
4973 In addition to `translate', prepare the muscles `tname' and
4974 `toknum', which were handled by...
4975 (output_rule_data): this.
4976 Remove, and move the remainder of its outputs into...
4977 (prepare_rules): this new routines, which also merges content from
4978 (output_gram): this.
4979 (prepare_rules): Be sure never to walk through RITEMS.
4980 (output_stos): Rename as...
4981 (prepare_stos): this.
4982 (output): Always invoke prepare_states, after all, just don't use it
4983 in the output if you don't need it.
4984
4985 2002-04-07 Akim Demaille <akim@epita.fr>
4986
4987 * src/LR0.c (new_state): Display `nstates' as the name of the
4988 newly created state.
4989 Adjust to initialize first_state and last_state if needed.
4990 Be sure to distinguish the initial from the final state.
4991 (new_states): Create the itemset of the initial state, and use
4992 new_state.
4993 * src/closure.c (closure): Now that the initial state has its
4994 items properly set, there is no need for a special case when
4995 creating `ruleset'.
4996
4997 As a result, now the rule 0, reducing to $axiom, is visible in the
4998 outputs. Adjust the test suite.
4999
5000 * tests/conflicts.at (Solved SR Conflicts)
5001 (Unresolved SR Conflicts): Adjust.
5002 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5003 * tests/conflicts.at (S/R in initial): New.
5004
5005 2002-04-07 Akim Demaille <akim@epita.fr>
5006
5007 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5008 the RHS of the rules.
5009 * src/output.c (output_gram): Likewise.
5010
5011 2002-04-07 Akim Demaille <akim@epita.fr>
5012
5013 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5014 bucket.
5015 Adjust all dependencies.
5016 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5017 `number' of the buckets too.
5018 * src/gram.h: Include `symtab.h'.
5019 (associativity): Move to...
5020 * src/symtab.h: here.
5021 No longer include `gram.h'.
5022
5023 2002-04-07 Akim Demaille <akim@epita.fr>
5024
5025 * src/gram.h, src/gram.c (rules_rhs_length): New.
5026 (ritem_longest_rhs): Use it.
5027 * src/gram.h (rule_t): `number' is a new member.
5028 * src/reader.c (packgram): Set it.
5029 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5030 the end of `rules', and count them out of `nrules'.
5031 (reduce_output, dump_grammar): Adjust.
5032 * src/print.c (print_grammar): It is no longer needed to check for
5033 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5034 * tests/reduce.at (Reduced Automaton): New test.
5035
5036 2002-04-07 Akim Demaille <akim@epita.fr>
5037
5038 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5039 lacking `+ 1' to nrules, Bison reported as useless a token if it
5040 was used solely to set the precedence of the last rule...
5041
5042 2002-04-07 Akim Demaille <akim@epita.fr>
5043
5044 * data/bison.c++, data/bison.simple: Don't output the current file
5045 name in #line, to avoid useless diffs between two identical
5046 outputs under different names.
5047
5048 2002-04-07 Akim Demaille <akim@epita.fr>
5049
5050 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5051 Normalize loops to using `< nrules + 1', not `<= nrules'.
5052
5053 2002-04-07 Akim Demaille <akim@epita.fr>
5054
5055 * TODO: Update.
5056
5057 2002-04-07 Akim Demaille <akim@epita.fr>
5058
5059 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5060 bucket.value as bucket.number.
5061
5062 2002-04-07 Akim Demaille <akim@epita.fr>
5063
5064 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5065 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5066 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5067 RHS, instead of being an index in RITEMS.
5068
5069 2002-04-04 Paul Eggert <eggert@twinsun.com>
5070
5071 * doc/bison.texinfo: Update copyright date.
5072 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5073 (Symbols): Warn about running Bison in one character set,
5074 but compiling and/or running in an incompatible one.
5075 Warn about character code 256, too.
5076
5077 2002-04-03 Paul Eggert <eggert@twinsun.com>
5078
5079 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5080 YYERROR_VERBOSE is nonzero, not whether it is defined.
5081
5082 Merge changes from bison-1_29-branch.
5083
5084 2002-03-20 Paul Eggert <eggert@twinsun.com>
5085
5086 Merge fixes from Debian bison_1.34-1.diff.
5087
5088 * configure.in (AC_PREREQ): 2.53.
5089
5090 2002-03-20 Akim Demaille <akim@epita.fr>
5091
5092 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5093
5094 2002-03-19 Paul Eggert <eggert@twinsun.com>
5095
5096 * src/bison.simple (YYCOPY): New macro.
5097 (YYSTACK_RELOCATE): Use it.
5098 Remove Type arg; no longer needed. All callers changed.
5099 (yymemcpy): Remove; no longer needed.
5100
5101 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5102 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5103
5104 2002-03-19 Akim Demaille <akim@epita.fr>
5105
5106 Test and fix the #line outputs.
5107
5108 * tests/atlocal.at (GCC): New.
5109 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5110 (Prologue synch line, ,%union synch line, Postprologue synch line)
5111 (Action synch line, Epilogue synch line): New tests.
5112 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5113 * data/bison.simple, data/bison.c++: Use it.
5114
5115 2002-03-19 Akim Demaille <akim@epita.fr>
5116
5117 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5118 (Solved SR Conflicts, %expect not enough, %expect right)
5119 (%expect too much): Move to...
5120 * tests/conflicts.at: this new file.
5121
5122 2002-03-19 Akim Demaille <akim@epita.fr>
5123
5124 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5125 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5126 that we can move to enums for instance.
5127 * src/output.c (token_definitions_output): Output a list of
5128 `token-name, token-number' instead of the #define.
5129 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5130
5131 2002-03-14 Akim Demaille <akim@epita.fr>
5132
5133 Use Gettext 0.11.1.
5134
5135 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
5136
5137 * data/bison.c++: Make the user able to add members to the generated
5138 parser by subclassing.
5139
5140 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
5141
5142 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5143 a character.
5144 Reported by Nicolas Tisserand and Nicolas Burrus.
5145
5146 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5147
5148 * src/reader.c: Warn about lacking semi-colons, do not complain.
5149
5150 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5151
5152 * data/bison.c++: Remove a debug line.
5153
5154 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5155
5156 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5157 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5158 provide a default implementation.
5159
5160 2002-03-04 Akim Demaille <akim@epita.fr>
5161
5162 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5163 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5164 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5165 * tests/semantic.at (Parsing Guards): Similarly.
5166 * src/reader.at (readgram): Complain if the last rule is not ended
5167 with a semi-colon.
5168
5169 2002-03-04 Akim Demaille <akim@epita.fr>
5170
5171 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5172 * src/closure.c: here.
5173 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5174 RTC.
5175 * src/warshall.h, src/warshall.c: Remove.
5176 * tests/sets.at (Broken Closure): Adjust.
5177
5178 2002-03-04 Akim Demaille <akim@epita.fr>
5179
5180 * src/output.c (output_skeleton): tempdir is const.
5181 bytes_read is unused.
5182
5183 2002-03-04 Akim Demaille <akim@epita.fr>
5184
5185 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5186 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5187 Update.
5188 From Michael Hayes.
5189
5190 2002-03-04 Akim Demaille <akim@epita.fr>
5191
5192 * src/closure.c (closure): `r' is unused.
5193
5194 2002-03-04 Akim Demaille <akim@epita.fr>
5195
5196 * tests/sets.at (Broken Closure): Add the ending `;'.
5197 * src/reader.at (readgram): Complain if a rule is not ended with a
5198 semi-colon.
5199
5200 2002-03-04 Akim Demaille <akim@epita.fr>
5201
5202 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5203 (count_sr_conflicts): Use bitset_count.
5204 * src/reduce.c (inaccessable_symbols): Ditto.
5205 (bits_size): Remove.
5206 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5207
5208 2002-03-04 Akim Demaille <akim@epita.fr>
5209
5210 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5211 * src/reduce.c: Remove the `bitset_zero's following the
5212 `bitset_create's, as now it is performed by the latter.
5213
5214 2002-03-04 Akim Demaille <akim@epita.fr>
5215
5216 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5217 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5218 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5219 latest sources from Michael.
5220
5221 2002-03-04 Akim Demaille <akim@epita.fr>
5222
5223 * src/output.c (output): Don't free the grammar.
5224 * src/reader.c (grammar_free): New.
5225 * src/main.c (main): Call it and don't free symtab here.
5226
5227 2002-03-04 Akim Demaille <akim@epita.fr>
5228
5229 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5230 before returning.
5231 Reported by Benoit Perrot.
5232
5233 2002-03-04 Akim Demaille <akim@epita.fr>
5234
5235 Use bitset operations when possible, not loops over bits.
5236
5237 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5238 bitset_or.
5239 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5240 * src/reduce.c (useless_nonterminals): Formatting changes.
5241 * src/warshall.c (TC): Use bitset_or.
5242
5243 2002-03-04 Akim Demaille <akim@epita.fr>
5244
5245 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5246 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5247 Ditto.
5248
5249 2002-03-04 Akim Demaille <akim@epita.fr>
5250
5251 * src/lalr.c (F): Now a bitset*.
5252 Adjust all dependencies.
5253
5254 2002-03-04 Akim Demaille <akim@epita.fr>
5255
5256 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5257 Adjust all dependencies.
5258
5259 2002-03-04 Akim Demaille <akim@epita.fr>
5260
5261 * src/L0.c, src/LR0.h (nstates): Be size_t.
5262 Adjust comparisons (signed vs unsigned).
5263 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5264 bitset*.
5265 Adjust all dependencies.
5266
5267 2002-03-04 Akim Demaille <akim@epita.fr>
5268
5269 * src/closure.c (firsts): Now, also a bitset.
5270 Adjust all dependencies.
5271 (varsetsize): Remove, now unused.
5272 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5273
5274 2002-03-04 Akim Demaille <akim@epita.fr>
5275
5276 * src/print.c: Convert to use bitset.h, not hand coded iterations
5277 over ints.
5278
5279 2002-03-04 Akim Demaille <akim@epita.fr>
5280
5281 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5282
5283 2002-03-04 Akim Demaille <akim@epita.fr>
5284
5285 * src/closure.c (ruleset): Be a bitset.
5286 (rulesetsize): Remove.
5287
5288 2002-03-04 Akim Demaille <akim@epita.fr>
5289
5290 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5291 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5292 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5293 * src/closure.c (fderives): Be an array of bitsets.
5294
5295 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
5296
5297 * data/bison.c++: Merge the two generated headers. Insert a copyright
5298 notice in each output file.
5299
5300 2002-02-28 Akim Demaille <akim@epita.fr>
5301
5302 * data/bison.c++: Copy the prologue of bison.simple to fetch
5303 useful M4 definitions, such as b4_header_guard.
5304
5305 2002-02-25 Akim Demaille <akim@epita.fr>
5306
5307 * src/getargs.c (version): Give the name of the authors, and use a
5308 translator friendly scheme for the bgr
5309 copyright notice.
5310
5311 2002-02-25 Akim Demaille <akim@epita.fr>
5312
5313 * src/output.c (header_output): Remove, now handled completely via
5314 M4.
5315
5316 2002-02-25 Akim Demaille <akim@epita.fr>
5317
5318 * m4/m4.m4: New, from CVS Autoconf.
5319 * configure.in: Invoke it.
5320 * src/output.c (output_skeleton): Use its result instead of the
5321 hard coded name.
5322
5323 2002-02-25 Akim Demaille <akim@epita.fr>
5324
5325 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5326 Fileutils 4.1.5.
5327 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5328 * src/output.c (output_skeleton): Use mkstemp to create a real
5329 temporary file.
5330 Move the filling of `skeleton' and its muscle to...
5331 (prepare): here.
5332 (output): Move the definition of the prologue muscle to...
5333 (prepare): here.
5334 * src/system.h (DEFAULT_TMPDIR): New.
5335
5336 2002-02-14 Paul Eggert <eggert@twinsun.com>
5337
5338 Remove the support for C++ namespace cleanliness; it was
5339 causing more problems than it was curing, since it didn't work
5340 properly on some nonstandard C++ compilers. This can wait
5341 for a proper C++ parser.
5342
5343 * NEWS: Document this.
5344 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5345 of C++, as it's treated like C now.
5346 * src/bison.simple (YYSTD): Remove.
5347 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5348 Treat C++ just like Standard C instead of trying to support
5349 namespace cleanliness.
5350
5351 2002-02-14 Akim Demaille <akim@epita.fr>
5352
5353 * tests/regression.at (else): Adjust to Andreas' change.
5354
5355 2002-02-14 Akim Demaille <akim@epita.fr>
5356
5357 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5358
5359 2002-02-13 Andreas Schwab <schwab@suse.de>
5360
5361 * src/output.c (output_rule_data): Don't output NULL, it might
5362 not be defined yet.
5363
5364 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
5365
5366 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5367 (Copyright notice): Update.
5368
5369 2002-02-11 Akim Demaille <akim@epita.fr>
5370
5371 * tests/regression.at (%nonassoc and eof): Don't include
5372 nonportable headers.
5373
5374 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
5375
5376 * data/bison.c++: Correct error recovery. Make the user able to
5377 initialize the starting location.
5378
5379 2002-02-07 Akim Demaille <akim@epita.fr>
5380
5381 * tests/input.at: New.
5382
5383 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5384
5385 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5386 more consistent when naming methods and variables. Put preprocessor
5387 directives around tables only needed for debugging.
5388
5389 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5390
5391 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5392 C++ parsers.
5393 (yy::b4_name::parse): Use print_.
5394
5395 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5396
5397 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5398
5399 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5400
5401 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5402 C++ parsers.
5403 (yy::b4_name::parse): Build verbose error messages, and use error_.
5404
5405 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5406
5407 * data/bison.c++: Fix m4 quoting in comments.
5408
5409 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5410
5411 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5412 not expanded by m4.
5413
5414 2002-02-05 Akim Demaille <akim@epita.fr>
5415
5416 * data/bison.c++: Adjust to the M4 back end.
5417 More is certainly needed.
5418
5419 2002-02-05 Akim Demaille <akim@epita.fr>
5420
5421 Give a try to M4 as a back end.
5422
5423 * lib/readpipe.c: New, from wdiff.
5424 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5425 BISON_HAIRY.
5426 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5427 specific values. Now it is m4 that performs the lookup.
5428 * src/parse-skel.y: Remove.
5429 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5430 * src/output.c (actions_output, guards_output)
5431 (token_definitions_output): No longer keeps track of the output
5432 line number, hence remove the second argument.
5433 (guards_output): Check against the guard member of a rule, not the
5434 action member.
5435 Adjust callers.
5436 (output_skeleton): Don't look for the skeleton location, let m4 do
5437 that.
5438 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5439 file will be used.
5440 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5441 (prepare): Given that for the time being changesyntax is not
5442 usable in M4, rename the muscles using `-' to `_'.
5443 Define `defines_flag', `output_parser_name' and `output_header_name'.
5444 * src/output.h (actions_output, guards_output)
5445 (token_definitions_output): Adjust prototypes.
5446 * src/scan-skel.l: Instead of scanning the skeletons, it now
5447 processes the output of m4: `__oline__' and `#output'.
5448 * data/bison.simple: Adjust to be used by M4(sugar).
5449 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5450 to date.
5451 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5452 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5453 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5454 shamelessly stolen from CVS Autoconf.
5455
5456 2002-02-05 Akim Demaille <akim@epita.fr>
5457
5458 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5459 * configure.in: Check for the declarations of free and malloc.
5460 * src/muscle_tab.c: Adjust.
5461
5462 2002-02-05 Akim Demaille <akim@epita.fr>
5463
5464 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5465 which have no values.
5466
5467 2002-02-05 Akim Demaille <akim@epita.fr>
5468
5469 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5470 * data/: here.
5471
5472 2002-01-29 Paul Eggert <eggert@twinsun.com>
5473
5474 * src/bison.simple (YYSIZE_T): Do not define merely because
5475 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5476 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5477
5478 2002-01-27 Akim Demaille <akim@epita.fr>
5479
5480 Fix `%nonassoc and eof'.
5481
5482 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5483 which were not properly copied! Replace
5484 memcpy (res->errs, src->errs, src->nerrs);
5485 with
5486 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5487 !!!
5488 * tests/regression.at (%nonassoc and eof): Adjust to newest
5489 Autotest: `.' is not in the PATH.
5490
5491 2002-01-27 Akim Demaille <akim@epita.fr>
5492
5493 * tests/sets.at (AT_EXTRACT_SETS): New.
5494 (Nullable): Use it.
5495 (Firsts): New.
5496
5497 2002-01-26 Akim Demaille <akim@epita.fr>
5498
5499 * tests/actions.at, tests/calc.at, tests/headers.at,
5500 * tests/torture.at: Adjust to the newest Autotest which no longer
5501 forces `.' in the PATH.
5502
5503 2002-01-25 Akim Demaille <akim@epita.fr>
5504
5505 * tests/regression.at (%nonassoc and eof): New.
5506 Suggested by Robert Anisko.
5507
5508 2002-01-24 Akim Demaille <akim@epita.fr>
5509
5510 Bison dumps core when trying to complain about broken input files.
5511 Reported by Cris van Pelt.
5512
5513 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5514 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5515 into...
5516 (Invalid inputs): Strengthen: exercise parse_percent_token.
5517
5518 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
5519
5520 * src/Makefile.am: Add bison.c++.
5521 * src/bison.c++: New skeleton.
5522
5523 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
5524
5525 * po/it.po: New.
5526
5527 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5528
5529 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5530
5531 2002-01-20 Marc Autret <marc@gnu.org>
5532
5533 * src/files.c (compute_output_file_names): Fix
5534
5535 2002-01-20 Marc Autret <marc@gnu.org>
5536
5537 * tests/output.at: New test.
5538 * src/files.c (compute_base_names): Don't map extensions when
5539 the YACC flag is set, use defaults.
5540 Reported by Evgeny Stambulchik.
5541
5542 2002-01-20 Marc Autret <marc@gnu.org>
5543
5544 * src/system.h: Need to define __attribute__ away for non-GCC
5545 compilers as well (i.e. the vendor C compiler).
5546 Suggested by Albert Chin-A-Young.
5547
5548 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5549
5550 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5551 canonical definition.
5552 * src/system.h: Use the canonical definition for PARAMS (avoids
5553 a conflict with the macro from lib/hash.h).
5554
5555 2002-01-11 Akim Demaille <akim@epita.fr>
5556
5557 * configure.in: Use AC_FUNC_STRNLEN.
5558 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
5559
5560 2002-01-09 Akim Demaille <akim@epita.fr>
5561
5562 * src/files.c, src/files.h (output_infix): New.
5563 (tab_extension): Remove.
5564 (compute_base_names): Compute the former, drop the latter.
5565 * src/output.c (prepare): Insert the muscles `output-infix', and
5566 `output-suffix'.
5567 * src/parse-skel.y (string, string.1): New.
5568 (section.header): Use it.
5569 (section.yacc): Remove.
5570 (prefix): Remove too.
5571 * src/scan-skel.l: Adjust.
5572 * src/bison.simple, src/bison.hairy: Adjust.
5573
5574 2002-01-09 Akim Demaille <akim@epita.fr>
5575
5576 * configure.in (WERROR_CFLAGS): Compute it.
5577 * src/Makefile.am (CFLAGS): Pass it.
5578 * tests/atlocal.in (CFLAGS): Idem.
5579 * src/files.c: Fix a few warnings.
5580 (get_extension_index): Remove, unused.
5581
5582 2002-01-08 Akim Demaille <akim@epita.fr>
5583
5584 * src/getargs.c (AS_FILE_NAME): New.
5585 (getargs): Use it to convert DOSish file names.
5586 * src/files.c (base_name): Rename as full_base_name to avoid
5587 clashes with `base_name ()'.
5588 (filename_split): New.
5589 (compute_base_names): N-th rewrite, using filename_split.
5590
5591 2002-01-08 Akim Demaille <akim@epita.fr>
5592
5593 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5594 New, stolen from the Fileutils 4.1.
5595 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5596 * configure.in: Check for the presence of memrchr, and of its
5597 prototype.
5598
5599 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5600
5601 * lib/hash.h (__P): Added definition for this macro.
5602 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5603 BUILT_SOURCES, to ensure they are generated first.
5604 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5605 %error-verbose to allow bootstrapping with bison 1.30x.
5606
5607 2002-01-06 Akim Demaille <akim@epita.fr>
5608
5609 * src/reader.c (parse_braces): Don't fetch the next char, the
5610 convention is to fetch on entry.
5611 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5612 'switch' without a following semicolon.
5613 * tests/regression.at (braces parsing): New.
5614
5615 2002-01-06 Akim Demaille <akim@epita.fr>
5616
5617 Bison is dead wrong in its RR conflict reports.
5618
5619 * tests/torture.at (GNU Cim Grammar): New.
5620 * src/conflicts.c (count_rr_conflicts): Fix.
5621
5622 2002-01-06 Akim Demaille <akim@epita.fr>
5623
5624 Creating package.m4 from configure.ac causes too many problems.
5625
5626 * tests/Makefile.am (package.m4): Create it by hand,
5627 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5628
5629 2002-01-06 Akim Demaille <akim@epita.fr>
5630
5631 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5632 skeleton.h.
5633
5634 2002-01-04 Paul Eggert <eggert@twinsun.com>
5635
5636 * doc/bison.texinfo (Debugging):
5637 Remove YYSTDERR; it's no longer defined or used.
5638 Also, s/cstdio.h/cstdio/.
5639
5640 2002-01-03 Akim Demaille <akim@epita.fr>
5641
5642 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5643
5644 2002-01-03 Akim Demaille <akim@epita.fr>
5645
5646 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5647 tracing code to --trace, wait for a better --trace option, with
5648 args.
5649
5650 2002-01-03 Akim Demaille <akim@epita.fr>
5651
5652 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5653 The ISO C++ standard is extremely clear about it: stderr is
5654 considered a macro, not a regular symbol (see table 94 `Header
5655 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5656 Therefore std:: does not apply to it. It still does with fprintf.
5657 Also, s/cstdio.h/cstdio/.
5658
5659 2002-01-03 Akim Demaille <akim@epita.fr>
5660
5661 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5662 for non system headers.
5663
5664 2002-01-02 Akim Demaille <akim@epita.fr>
5665
5666 Equip the skeleton chain with location tracking, runtime trace,
5667 pure parser and scanner.
5668
5669 * src/parse-skel.y: Request a pure parser, locations, and prefix
5670 renaming.
5671 (%union): Having several members with the same type does not help
5672 type mismatches, simplify.
5673 (YYPRINT, yyprint): New.
5674 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5675 (skel_error): this.
5676 Handle locations.
5677 * src/scan-skel.l: Adjust to these changes.
5678 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5679 (LOCATION_PRINT, skel_control_t): New.
5680
5681 2001-12-30 Akim Demaille <akim@epita.fr>
5682
5683 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5684 replace `gb' with BLANKS.
5685 * src/scan-skel.l: Adjust.
5686
5687 2001-12-30 Akim Demaille <akim@epita.fr>
5688
5689 * src/system.h: We don't need nor want bcopy.
5690 Throw away MS-DOS crap: we don't need getpid.
5691 * configure.in: We don't need strndup. It was even causing
5692 problems: because Flex includes the headers *before* us,
5693 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5694 not visible.
5695 * lib/xstrndup.c: New.
5696 * src/scan-skel.l: Use it.
5697 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5698 * src/parse-skel.y: Use %directives instead of #defines.
5699
5700 2001-12-30 Akim Demaille <akim@epita.fr>
5701
5702 * src/skeleton.h: New.
5703 * src/output.c (output_parser, output_master_parser): Remove, dead
5704 code.
5705 * src/output.h (get_lines_number, actions_output, guards_output)
5706 (token_definitions_output): Prototype them.
5707 * src/parse-skel.y: Add the license notice.
5708 Include output.h and skeleton.h.
5709 (process_skeleton): Returns void, and takes a single parameter.
5710 * src/scan-skel.l: Add the license notice.
5711 Include skeleton.h.
5712 Don't use %option yylineno: it seems that then Flex imagines
5713 REJECT has been used, and therefore it won't reallocate its
5714 buffers (which makes no other sense to me than a bug). It results
5715 in warnings for `unused: yy_flex_realloc'.
5716
5717 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
5718
5719 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5720 (MUSCLE_INSERT_PREFIX): ...to there.
5721 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5722 (MUSCLE_INSERT_PREFIX): Move from here...
5723
5724 * src/bison.hairy: Add a section directive. Put braces around muscle
5725 names. This parser skeleton is still broken, but Bison should not
5726 choke on a bad muscle 'syntax'.
5727 * src/bison.simple: Add a section directive. Put braces around muscle
5728 names.
5729
5730 * src/files.h (strsuffix, stringappend): Add declarations.
5731 (tab_extension): Add declaration.
5732 (short_base_name): Add declaration.
5733
5734 * src/files.c (strsuffix, stringappend): No longer static. These
5735 functions are used in the skeleton parser.
5736 (tab_extension): New.
5737 (compute_base_names): Use the computations done in this function
5738 to guess if the generated parsers should have '.tab' in their
5739 names.
5740 (short_base_name): No longer static.
5741
5742 * src/output.c (output_skeleton): New.
5743 (output): Disable call to output_master_parser, and give a try to
5744 a new skeleton handling system.
5745 (guards_output, actions_output): No longer static.
5746 (token_definitions_output, get_lines_number): No longer static.
5747
5748 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5749
5750 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
5751 parse-skel.y.
5752
5753 * src/parse-skel.y: New file.
5754 * src/scan-skel.l: New file.
5755
5756 2001-12-29 Akim Demaille <akim@epita.fr>
5757
5758 %name-prefix is broken.
5759
5760 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5761 Adjust all dependencies.
5762 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5763 %name-prefix.
5764
5765 Renaming yylval but not yylloc is not consistent. Now we do.
5766
5767 * src/bison.simple: Prefix yylloc if used.
5768 * doc/bison.texinfo (Decl Summary): Document that.
5769
5770 2001-12-29 Akim Demaille <akim@epita.fr>
5771
5772 * doc/bison.texinfo: Promote `%long-directive' over
5773 `%long_directive'.
5774 Remove all references to fixed-output-files, yacc is enough.
5775
5776 2001-12-29 Akim Demaille <akim@epita.fr>
5777
5778 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
5779 user prologue. These are defaults.
5780 * tests/actions.at (Mid-rule actions): Make sure the user can
5781 define YYDEBUG and YYERROR_VERBOSE.
5782
5783 2001-12-29 Akim Demaille <akim@epita.fr>
5784
5785 * src/output.c (header_output): Don't forget to export YYLTYPE and
5786 yylloc.
5787 * tests/headers.at (export YYLTYPE): New, make sure it does.
5788 * tests/regression.at (%union and --defines, Invalid CPP headers):
5789 Move to...
5790 * tests/headers.at: here.
5791
5792 2001-12-29 Akim Demaille <akim@epita.fr>
5793
5794 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
5795
5796 2001-12-29 Akim Demaille <akim@epita.fr>
5797
5798 * tests/actions.at (Mid-rule actions): Output on a single line
5799 instead of several.
5800
5801 2001-12-29 Akim Demaille <akim@epita.fr>
5802
5803 * doc/bison.texinfo: Formatting changes.
5804
5805 2001-12-29 Akim Demaille <akim@epita.fr>
5806
5807 Don't store the token defs in a muscle, just be ready to output it
5808 on command. Now possible via `symbols'. Fixes a memory leak.
5809
5810 * src/output.c (token_definitions_output): New.
5811 (output_parser, header_output): Use it.
5812 * src/reader.c (symbols_save): Remove.
5813
5814 2001-12-29 Akim Demaille <akim@epita.fr>
5815
5816 * src/bison.simple: Do not provide a default for YYSTYPE and
5817 YYLTYPE before the user's prologue. Otherwise it's hardly... a
5818 default.
5819
5820 2001-12-29 Akim Demaille <akim@epita.fr>
5821
5822 Mid-rule actions are simply... ignored!
5823
5824 * src/reader.c (readgram): Be sure to attach mid-rule actions to
5825 the empty-rule associated to the dummy symbol, not to the host
5826 rule.
5827 * tests/actions.at (Mid-rule actions): New.
5828
5829 2001-12-29 Akim Demaille <akim@epita.fr>
5830
5831 Memory leak.
5832
5833 * src/reader.c (reader): Free grammar.
5834
5835 2001-12-29 Akim Demaille <akim@epita.fr>
5836
5837 Memory leak.
5838
5839 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
5840 since it allocates it for each state, although only one is needed.
5841 (allocate_storage): Do it here.
5842
5843 2001-12-29 Akim Demaille <akim@epita.fr>
5844
5845 * src/options.h, src/options.c (create_long_option_table): Rename
5846 as...
5847 (long_option_table_new): this, with a clearer prototype.
5848 (percent_table): Remove, unused,
5849 * src/getargs.c (getargs): Adjust.
5850
5851 2001-12-29 Akim Demaille <akim@epita.fr>
5852
5853 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
5854 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
5855 as states.
5856
5857 2001-12-29 Akim Demaille <akim@epita.fr>
5858
5859 * src/lalr.c (build_relations): Rename `states' as `states1'.
5860 Sorry, I don't understand exactly what it is, no better name...
5861
5862 2001-12-29 Akim Demaille <akim@epita.fr>
5863
5864 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
5865 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
5866 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
5867 as rules.
5868
5869 2001-12-29 Akim Demaille <akim@epita.fr>
5870
5871 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
5872 ago.
5873
5874 2001-12-29 Akim Demaille <akim@epita.fr>
5875
5876 * src/reader.c, src/reader.h (user_toknums): Remove.
5877 Adjust all users to use symbols[i]->user_token_number.
5878
5879 2001-12-29 Akim Demaille <akim@epita.fr>
5880
5881 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
5882 Adjust all users to use symbols[i]->prec or ->assoc.
5883
5884 2001-12-29 Akim Demaille <akim@epita.fr>
5885
5886 * src/reader.c, src/reader.h (tags): Remove.
5887 Adjust all users to use symbols[i]->tag.
5888
5889 2001-12-29 Akim Demaille <akim@epita.fr>
5890
5891 * src/gram.h, src/gram.c (symbols): New, similar to state_table
5892 and rule_table.
5893 * src/reader.c (packsymbols): Fill this table.
5894 Drop sprec.
5895 * src/conflicts.c (resolve_sr_conflict): Adjust.
5896 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
5897 single table.
5898 Use symbols[i]->tag instead of tags[i].
5899
5900 2001-12-29 Akim Demaille <akim@epita.fr>
5901
5902 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
5903 In addition, put a comment in there, to replace...
5904 * tests/regression.at (%union and C comments): Remove.
5905
5906 2001-12-29 Akim Demaille <akim@epita.fr>
5907
5908 * tests/regression.at (Web2c Actions): Blindly move the actual
5909 output as expected output. The contents *seem* right to me, but I
5910 can't pretend reading perfectly parser tables... Nonetheless, all
5911 the other tests pass correctly, the table look OK, even though the
5912 presence of `$axiom' is to be noted: AFAICS it is useless (but
5913 harmless).
5914
5915 2001-12-29 Akim Demaille <akim@epita.fr>
5916
5917 * src/reader.c (readgram): Don't add the rule 0 if there were no
5918 rules read. In other words, add it _after_ having performed
5919 grammar sanity checks.
5920 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
5921
5922 2001-12-29 Akim Demaille <akim@epita.fr>
5923
5924 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
5925 visible, and some states have now a different number.
5926
5927 2001-12-29 Akim Demaille <akim@epita.fr>
5928
5929 * src/reader.c (readgram): Bind the initial rule's lineno to that
5930 of the first rule.
5931 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
5932 (Solved SR Conflicts): Adjust rule 0's line number.
5933
5934 2001-12-29 Akim Demaille <akim@epita.fr>
5935
5936 Fix the `GAWK Grammar' failure.
5937
5938 * src/LR0.c (final_state): Initialize to -1 so that we do compute
5939 the reductions of the first state which was mistakenly confused
5940 with the final state because precisely final_state was initialized
5941 to 0.
5942 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
5943 now noticed by Bison.
5944 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
5945 have a reduction on $default.
5946
5947 2001-12-29 Akim Demaille <akim@epita.fr>
5948
5949 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
5950 rule line numbers.
5951 * src/closure.c (print_closure): Likewise.
5952 * src/derives.c (print_derives): Likewise.
5953 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
5954 now.
5955
5956 2001-12-29 Akim Demaille <akim@epita.fr>
5957
5958 * src/lalr.c (lookaheads_print): New.
5959 (lalr): Call it when --trace-flag.
5960 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
5961 are dumped.
5962
5963 2001-12-29 Akim Demaille <akim@epita.fr>
5964
5965 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
5966 when walking through ritem, even via rule->rhs.
5967 * src/reduce.c (dump_grammar, useful_production, reduce_output)
5968 (useful_production, useless_nonterminals): Likewise.
5969 (reduce_grammar_tables): Likewise, plus update nritems.
5970 * src/nullable.c (set_nullable): Likewise.
5971 * src/lalr.c (build_relations): Likewise.
5972 * tests/sets.at (Nullable): Adjust.
5973 Fortunately, now, the $axiom is no longer nullable.
5974
5975 2001-12-29 Akim Demaille <akim@epita.fr>
5976
5977 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
5978 the 0-sentinel.
5979 * src/gram.c (ritem_longest_rhs): Likewise.
5980 * src/reduce.c (nonterminals_reduce): Likewise.
5981 * src/print_graph.c (print_graph): Likewise.
5982 * src/output.c (output_rule_data): Likewise.
5983 * src/nullable.c (set_nullable): Likewise.
5984
5985 2001-12-29 Akim Demaille <akim@epita.fr>
5986
5987 * src/output.c: Comment changes.
5988
5989 2001-12-27 Paul Eggert <eggert@twinsun.com>
5990
5991 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
5992 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
5993 Sparc, as they were causing more porting problems than the
5994 (minor) performance improvement was worth.
5995
5996 Also, catch up with 1.31's YYSTD.
5997
5998 2001-12-27 Akim Demaille <akim@epita.fr>
5999
6000 * src/output.c (output_gram): Rely on nritems, not the
6001 0-sentinel. See below.
6002 Use -1 as separator, not 0.
6003 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6004 Rely on -1 as separator in yyrhs, instead of 0.
6005 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6006 twice `Now at end of input', therefore there are two lines less to
6007 expect.
6008
6009 2001-12-27 Akim Demaille <akim@epita.fr>
6010
6011 * tests/regression.at (Unresolved SR Conflicts):
6012 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6013 below.
6014
6015 2001-12-27 Akim Demaille <akim@epita.fr>
6016
6017 * src/LR0.c (new_state): Recognize the final state by the fact it
6018 is reached by eoftoken.
6019 (insert_start_shifting_state, insert_eof_shifting_state)
6020 (insert_accepting_state, augment_automaton): Remove, since now
6021 these states are automatically computed from the initial state.
6022 (generate_states): Adjust.
6023 * src/print.c: When reporting a rule number to the user, substract
6024 1, so that the axiom rule is rule 0, and the first user rule is 1.
6025 * src/reduce.c: Likewise.
6026 * src/print_graph.c (print_core): For the time being, just as for
6027 the report, depend upon --trace-flags to dump the full set of
6028 items.
6029 * src/reader.c (readgram): Once the grammar read, insert the rule
6030 0: `$axiom: START-SYMBOL $'.
6031 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6032 number of the states has changed (the final state is no longer
6033 necessarily the last), catch up.
6034
6035 2001-12-27 Akim Demaille <akim@epita.fr>
6036
6037 Try to make the use of the eoftoken valid. Given that its value
6038 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6039 is used instead of > 0 where appropriate, (ii), depend upon nritems
6040 instead of the 0-sentinel.
6041
6042 * src/gram.h, src/gram.c (nritems): New.
6043 Expected to be duplication of nitems, but for the time being...
6044 * src/reader.c (packgram): Assert nritems and nitems are equal.
6045 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6046 * src/closure.c (print_closure, print_fderives): Likewise.
6047 * src/gram.c (ritem_print): Likewise.
6048 * src/print.c (print_core, print_grammar): Likewise.
6049 * src/print_graph.c: Likewise.
6050
6051 2001-12-27 Akim Demaille <akim@epita.fr>
6052
6053 * src/main.c (main): If there are complains after grammar
6054 reductions, then output the report anyway if requested, then die.
6055 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6056 * src/reader.c (eoftoken): New.
6057 (parse_token_decl): If the token being defined has value `0', it
6058 is the eoftoken.
6059 (packsymbols): No longer hack `tags' to insert `$' by hand.
6060 Be sure to preserve the value of the eoftoken.
6061 (reader): Make sure eoftoken is defined.
6062 Initialize nsyms to 0: now eoftoken is created just like the others.
6063 * src/print.c (print_grammar): Don't special case the eof token.
6064 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6065 lie anyway, albeit pleasant.
6066 * tests/calc.at: Exercise error messages with eoftoken.
6067 Change the grammar so that empty input is invalid.
6068 Adjust expectations.
6069 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6070
6071 2001-12-27 Akim Demaille <akim@epita.fr>
6072
6073 * configure.in: Check the protos of strchr ans strspn.
6074 Replace strchr if needed.
6075 * src/system.h: Provide the protos of strchr, strspn and memchr if
6076 missing.
6077 * lib/strchr.c: New.
6078 * src/reader.c (symbols_save): Use strchr.
6079
6080 2001-12-27 Akim Demaille <akim@epita.fr>
6081
6082 * src/print.c, src/print_graph.c (escape): New.
6083 Use it to quote the TAGS outputs.
6084 * src/print_graph.c (print_state): Now errors are in red, and
6085 reductions in green.
6086 Prefer high to wide: output the state number on a line of its own.
6087
6088 2001-12-27 Akim Demaille <akim@epita.fr>
6089
6090 * src/state.h, src/state.c (reductions_new): New.
6091 * src/LR0.c (set_state_table): Let all the states have a
6092 `reductions', even if reduced to 0.
6093 (save_reductions): Adjust.
6094 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6095 * src/print.c (print_reductions, print_actions): Adjust.
6096 * src/output.c (action_row): Adjust.
6097
6098 2001-12-27 Akim Demaille <akim@epita.fr>
6099
6100 * src/state.h, src/state.c (errs_new, errs_dup): New.
6101 * src/LR0.c (set_state_table): Let all the states have an errs,
6102 even if reduced to 0.
6103 * src/print.c (print_errs, print_reductions): Adjust.
6104 * src/output.c (output_actions, action_row): Adjust.
6105 * src/conflicts.c (resolve_sr_conflict): Adjust.
6106
6107 2001-12-27 Akim Demaille <akim@epita.fr>
6108
6109 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6110
6111 2001-12-27 Akim Demaille <akim@epita.fr>
6112
6113 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6114 * src/print.c: here.
6115 (lookaheadset, shiftset): New, used as additional storage by
6116 print_reductions.
6117 (print_results): Adjust.
6118 (print_shifts, print_gotos, print_errs): New, extracted from...
6119 (print_actions): here.
6120 * src/print_graph.c (print_actions): Remove dead code.
6121
6122 2001-12-27 Akim Demaille <akim@epita.fr>
6123
6124 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6125 `$n' and `@n'.
6126
6127 2001-12-27 Akim Demaille <akim@epita.fr>
6128
6129 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6130 (build_relations): Adjust.
6131
6132 2001-12-27 Akim Demaille <akim@epita.fr>
6133
6134 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6135 duplication.
6136
6137 2001-12-27 Akim Demaille <akim@epita.fr>
6138
6139 * src/reader.c (packgram): Catch nitems overflows.
6140
6141 2001-12-27 Akim Demaille <akim@epita.fr>
6142
6143 * src/files.c, src/files.h (guard_obstack): Remove.
6144 * src/output.c (output): Adjust.
6145 * src/reader.c (parse_braces): New, factoring...
6146 (copy_action, copy_guard): these two which are renamed as...
6147 (parse_action, parse_guard): these.
6148 As a voluntary consequence, using braces around guards is now
6149 mandatory.
6150
6151 2001-12-27 Akim Demaille <akim@epita.fr>
6152
6153 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6154 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6155 members.
6156 (symbol_list_new): Adjust.
6157 (copy_action): action_line is the first line, not the last.
6158 (copy_guard): Just as for actions, store the `action' only, not
6159 the switch/case/break flesh.
6160 Don't parse the user action that might follow the guard, let...
6161 (readgram): do it, i.e., now, there can be an action after a
6162 guard.
6163 In other words the guard is just explicitly optional.
6164 (packgram): Adjust.
6165 * src/output.c (guards_output): New.
6166 (output_parser): Call it when needed.
6167 (output): Also free the guard and attrs obstacks.
6168 * src/files.c, src/files.h (obstack_save): Remove.
6169 (output_files): Remove.
6170 As a result, if one needs the former `.act' file, using an
6171 appropriate skeleton which requires actions and guards is now
6172 required.
6173 * src/main.c (main): Adjust.
6174 * tests/semantic.at: New.
6175 * tests/regression.at: Use `input.y' as input file name.
6176 Avoid 8+3 problems by requiring input.c when the test needs the
6177 parser.
6178
6179 2001-12-27 Akim Demaille <akim@epita.fr>
6180
6181 * src/reader.c (symbol_list_new): Be sure to initialize all the
6182 fields.
6183
6184 2001-12-27 Akim Demaille <akim@epita.fr>
6185
6186 All the hacks using a final pseudo state are now useless.
6187
6188 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6189 * src/lalr.c (nLA): New.
6190 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6191 instead of lookaheadsp from the pseudo state (nstate + 1).
6192
6193 2001-12-27 Akim Demaille <akim@epita.fr>
6194
6195 * src/output.c (action_row, token_actions): Use a state_t instead
6196 of a integer, and nlookaheads instead of the following state's
6197 lookaheadsp.
6198
6199 2001-12-27 Akim Demaille <akim@epita.fr>
6200
6201 * src/conflicts.c (log_resolution, flush_shift)
6202 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6203 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6204 (conflicts_print, print_reductions): Use a state_t instead of an
6205 integer when referring to a state.
6206 As much as possible, depend upon nlookaheads, instead of the
6207 `lookaheadsp' member of the following state (since lookaheads of
6208 successive states are successive, the difference between state n + 1
6209 and n served as the number of lookaheads for state n).
6210 * src/lalr.c (add_lookback_edge): Likewise.
6211 * src/print.c (print_core, print_actions, print_state)
6212 (print_results): Likewise.
6213 * src/print_graph.c (print_core, print_actions, print_state)
6214 (print_graph): Likewise.
6215 * src/conflicts.h: Adjust.
6216
6217 2001-12-27 Akim Demaille <akim@epita.fr>
6218
6219 * src/bison.hairy: Formatting/comment changes.
6220 ANSIfy.
6221 Remove `register' indications.
6222 Add plenty of `static'.
6223
6224 2001-12-27 Akim Demaille <akim@epita.fr>
6225
6226 * src/output.c (prepare): Drop the muscle `ntbase' which
6227 duplicates ntokens.
6228 * src/bison.simple: Formatting/comment changes.
6229 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6230 is an undocumented synonym.
6231
6232 2001-12-22 Akim Demaille <akim@epita.fr>
6233
6234 * src/output.c (output_table_data): Change the prototype to use
6235 `int' for array ranges: some invocations do pass an int, not a
6236 short.
6237 Reported by Wayne Green.
6238
6239 2001-12-22 Akim Demaille <akim@epita.fr>
6240
6241 Some actions of web2c.y are improperly triggered.
6242 Reported by Mike Castle.
6243
6244 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6245 * tests/regression.at (Web2c): Rename as...
6246 (Web2c Report): this.
6247 (Web2c Actions): New.
6248
6249 2001-12-22 Akim Demaille <akim@epita.fr>
6250
6251 Reductions in web2c.y are improperly reported.
6252 Reported by Mike Castle.
6253
6254 * src/conflicts.c (print_reductions): Fix.
6255 * tests/regression.at (Web2c): New.
6256
6257 2001-12-18 Akim Demaille <akim@epita.fr>
6258
6259 Some host fail on `assert (!"foo")', which expands to
6260 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6261 Reported by Nelson Beebee.
6262
6263 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6264 `#define it_succeeded 0' and `assert (it_succeeded)'.
6265
6266 2001-12-17 Marc Autret <autret_m@epita.fr>
6267
6268 * src/bison.simple: Don't hard code the skeleton line and filename.
6269 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6270 New line counter 'skeleton_line' (skeleton-line muscle).
6271
6272 2001-12-17 Paul Eggert <eggert@twinsun.com>
6273
6274 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6275 YYDEBUG must be defined to a nonzero value.
6276
6277 * src/bison.simple (yytname): Do not assume that the user defines
6278 YYDEBUG to a properly parenthesized expression.
6279
6280 2001-12-17 Akim Demaille <akim@epita.fr>
6281
6282 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6283 nlookaheads is a new member.
6284 Adjust all users.
6285 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6286 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6287 state.
6288
6289 2001-12-17 Akim Demaille <akim@epita.fr>
6290
6291 * src/files.h, src/files.c (open_files, close_files): Remove.
6292 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6293 let...
6294 * src/reader.c (reader): Do it.
6295
6296 2001-12-17 Akim Demaille <akim@epita.fr>
6297
6298 * src/conflicts.c (print_reductions): Formatting changes.
6299
6300 2001-12-17 Akim Demaille <akim@epita.fr>
6301
6302 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6303 (flush_reduce): New.
6304 (resolve_sr_conflict): Adjust.
6305
6306 2001-12-17 Akim Demaille <akim@epita.fr>
6307
6308 * src/output.c (output_obstack): Be static and rename as...
6309 (format_obstack): this, to avoid any confusion with files.c's
6310 output_obstack.
6311 * src/reader.h (muscle_obstack): Move to...
6312 * src/output.h: here, since it's defined in output.c.
6313
6314 2001-12-17 Akim Demaille <akim@epita.fr>
6315
6316 * src/output.c (action_row, save_column, default_goto)
6317 (sort_actions, matching_state, pack_vector): Better variable
6318 locality.
6319
6320 2001-12-17 Akim Demaille <akim@epita.fr>
6321
6322 * src/output.c: Various formatting changes.
6323
6324 2001-12-17 Akim Demaille <akim@epita.fr>
6325
6326 * src/files.c (output_files): Free the output_obstack.
6327 * src/main.c (main): Call print and print_graph conditionally.
6328 * src/print.c (print): Work unconditionally.
6329 * src/print_graph.c (print_graph): Work unconditionally.
6330 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6331
6332 2001-12-16 Marc Autret <autret_m@epita.fr>
6333
6334 * src/output.c (actions_output): Fix. When we use %no-lines,
6335 there is one less line per action.
6336
6337 2001-12-16 Marc Autret <autret_m@epita.fr>
6338
6339 * src/bison.simple: Remove a useless #line directive.
6340 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6341 * src/output.c (get_lines_number): New.
6342 (output_parser): Adjust, now takes care about the lines of a
6343 output muscles.
6344 Fix line numbering.
6345 (actions_output): Computes the number of lines taken by actions.
6346 (output_master_parser): Insert new skeleton which is the name of
6347 the output parser file name.
6348
6349 2001-12-15 Marc Autret <autret_m@epita.fr>
6350
6351 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6352
6353 2001-12-15 Marc Autret <autret_m@epita.fr>
6354
6355 * src/output.c (output_gram): Keep track of the hairy one.
6356
6357 2001-12-15 Akim Demaille <akim@epita.fr>
6358
6359 Make `make distcheck' work.
6360
6361 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6362 system.h which uses libgettext.h.
6363
6364 2001-12-15 Akim Demaille <akim@epita.fr>
6365
6366 * src/nullable.c (set_nullable): Useless rules must be skipped,
6367 otherwise, since we range over their symbols, we might look at a
6368 nonterminal which no longer ``exists'', i.e., it is not counted in
6369 `nvars', hence we overflow our arrays.
6370
6371 2001-12-15 Akim Demaille <akim@epita.fr>
6372
6373 The header can also be produced directly, without any obstack!
6374 Yahoo!
6375
6376 * src/files.c, src/files.h (defines_obstack): Remove.
6377 (compute_header_macro): Global.
6378 (defines_obstack_save): Remove.
6379 * src/reader.c (parse_union_decl): No longer output to
6380 defines_obstack: its content can be found in the `stype' muscle
6381 anyway.
6382 (output_token_translations): Merge into...
6383 (symbols_output): this.
6384 Rename as...
6385 (symbols_save): this.
6386 (reader): Adjust.
6387 * src/output.c (header_output): New.
6388 (output): Call it.
6389
6390 2001-12-15 Akim Demaille <akim@epita.fr>
6391
6392 * src/reader.c (parse_union_decl): Instead of handling two obstack
6393 simultaneously, use one to define the `stype' muscle, and use the
6394 value of the latter to fill defines_obstack.
6395 (copy_comment): Remove.
6396 (copy_comment2): Work for a single obstack.
6397 Rename as...
6398 (copy_comment): this.
6399
6400 2001-12-15 Akim Demaille <akim@epita.fr>
6401
6402 * src/lex.c, src/lex.h (xgetc): No longer static.
6403 * src/reader.c (parse_union_decl): Revamp.
6404
6405 2001-12-15 Akim Demaille <akim@epita.fr>
6406
6407 Still making progress in separating Bison into (i) input, (ii)
6408 process, (iii) output: now we can directly output the parser file
6409 without using table_obstack at all.
6410
6411 * src/files.c, src/files.h (table_obstack): Bye bye.
6412 (parser_file_name): New.
6413 * src/files.c (compute_output_file_names): Compute it.
6414 * src/output.c (actions_output, output_parser)
6415 (output_master_parser): To a file instead of an obstack.
6416
6417 2001-12-15 Akim Demaille <akim@epita.fr>
6418
6419 Attach actions to rules, instead of pre-outputting them to
6420 actions_obstack.
6421
6422 * src/gram.h (rule_t): action and action_line are new members.
6423 * src/reader.c (symbol_list): Likewise.
6424 (copy_action): Save the actions within the rule.
6425 (packgram): Save them in rule_table.
6426 * src/output.c (actions_output): New.
6427 (output_parser): Use it on `%%actions'.
6428 (output_rule_data): Don't free rule_table.
6429 (output): Do it.
6430 (prepare): Don't save the `action' muscle.
6431 * src/bison.simple: s/%%action/%%actions/.
6432
6433 2001-12-15 Akim Demaille <akim@epita.fr>
6434
6435 * src/reader.c (copy_action): When --yacc, don't append a `;'
6436 to the user action: let it fail if lacking.
6437 Suggested by Arnold Robbins and Tom Tromey.
6438
6439 2001-12-14 Akim Demaille <akim@epita.fr>
6440
6441 * src/lex.c (literalchar): Simply return the char you decoded, non
6442 longer mess around with obstacks and int pointers.
6443 Adjust all callers.
6444
6445 2001-12-14 Akim Demaille <akim@epita.fr>
6446
6447 * src/lex.c (literalchar): Don't escape the special characters,
6448 just decode them, and keep them as char (before, eol was output as
6449 the 2 char string `\n' etc.).
6450 * src/output.c (output_rule_data): Use quotearg to output the
6451 token strings.
6452
6453 2001-12-13 Paul Eggert <eggert@twinsun.com>
6454
6455 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6456 Do not infringe on the global user namespace when using C++.
6457 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6458 All uses of `fprintf' and `stderr' changed.
6459
6460 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6461
6462 2001-12-13 Akim Demaille <akim@epita.fr>
6463
6464 The computation of nullable is broken: it doesn't handle empty
6465 RHS's properly.
6466
6467 * tests/torture.at (GNU AWK Grammar): New.
6468 * tests/sets.at (Nullable): New.
6469 * src/nullable.c (set_nullable): Instead of blindly looping over
6470 `ritems', loop over the rules, and then over their rhs's.
6471
6472 Work around Autotest bugs.
6473
6474 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6475 frame, because Autotest understand lines starting with a `+' as
6476 traces from the shell. Then, they are not processed properly.
6477 Admittedly an Autotest bug, but we don't have time to wait for
6478 Autotest to catch up.
6479 * tests/regression.at (Broken Closure): Adjust to the new table
6480 frames.
6481 Move to...
6482 * tests/sets.at: here.
6483
6484 2001-12-13 Akim Demaille <akim@epita.fr>
6485
6486 * src/closure.c (closure): Use nrules instead of playing tricks
6487 with BITS_PER_WORD.
6488
6489 2001-12-13 Akim Demaille <akim@epita.fr>
6490
6491 * src/print.c (print_actions): Output the handling of `$' as the
6492 traces do: shifting the token EOF. Before EOF was treated as a
6493 nonterminal.
6494 * tests/regression.at: Adjust some tests.
6495 * src/print_graph.c (print_core): Complete the set of items via
6496 closure. The next-to-final and final states are still unsatisfying,
6497 but that's to be addressed elsewhere.
6498 No longer output the rule numbers, but do output the state number.
6499 A single loop for the shifts + gotos is enough, but picked a
6500 distinct color for each.
6501 (print_graph): Initialize and finalize closure.
6502
6503 2001-12-13 Akim Demaille <akim@epita.fr>
6504
6505 * src/reader.c (readgram): Remove dead code, an strip useless
6506 braces.
6507 (get_type): Remove, unused.
6508
6509 2001-12-12 Akim Demaille <akim@epita.fr>
6510
6511 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6512 on that of lib/error.c.
6513
6514 2001-12-12 Akim Demaille <akim@epita.fr>
6515
6516 Some hosts don't like `/' in includes.
6517
6518 * src/system.h: Include libgettext.h without qualifying the path.
6519 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6520 $(top_srcdir).
6521
6522 2001-12-11 Marc Autret <autret_m@epita.fr>
6523
6524 * src/output.c (output_parser): Remove useless muscle.
6525
6526 2001-12-11 Marc Autret <autret_m@epita.fr>
6527
6528 * src/bison.simple: Remove #line just before %%epilogue. It
6529 is now handled in ...
6530 * src/reader.c (read_additionnal_code): Add the output of a
6531 #line for the epilogue.
6532
6533 2001-12-10 Marc Autret <autret_m@epita.fr>
6534
6535 * src/reader.c (copy_definition): Re-use CPP-outed code which
6536 replace precedent remove.
6537 * src/bison.simple: Remove #line before %%prologue because
6538 %%input-line is wrong at this time.
6539
6540 2001-12-10 Marc Autret <autret_m@epita.fr>
6541
6542 * src/reader.c (symbols_output): Clean up.
6543 * src/output.c (output_gram, output): Clean up.
6544
6545 2001-12-10 Akim Demaille <akim@epita.fr>
6546
6547 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6548 * src/LR0.c (set_state_table): here.
6549 * src/lalr.c (lalr): Call it.
6550
6551 2001-12-10 Akim Demaille <akim@epita.fr>
6552
6553 * src/state.h (shifts): Remove the `number' member: shifts are
6554 attached to state, hence no longer need to be labelled with a
6555 state number.
6556
6557 2001-12-10 Akim Demaille <akim@epita.fr>
6558
6559 Now that states have a complete set of members, the linked list of
6560 shifts is useless: just fill directly the state's shifts member.
6561
6562 * src/state.h (shifts): Remove the `next' member.
6563 * src/LR0.c (first_state, last_state): Remove.
6564 Adjust the callers.
6565 (augment_automaton): Don't look for the shifts that must be added
6566 a shift on EOF: it is those of the state we looked for! But now,
6567 since shifts are attached, it is no longer needed to looking
6568 merely by its id: its number.
6569
6570 2001-12-10 Akim Demaille <akim@epita.fr>
6571
6572 * src/LR0.c (augment_automaton): Better variable locality.
6573 Remove an impossible branch: if there is a state corresponding to
6574 the start symbol being shifted, then there is shift for the start
6575 symbol from the initial state.
6576
6577 2001-12-10 Akim Demaille <akim@epita.fr>
6578
6579 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6580 only when appropriate: when insert_start_shifting_state' is not
6581 invoked.
6582 * tests/regression.at (Rule Line Numbers): Adjust.
6583
6584 2001-12-10 Akim Demaille <akim@epita.fr>
6585
6586 * src/LR0.c (augment_automaton): Now that all states have shifts,
6587 merge the two cases addition shifts to the initial state.
6588
6589 2001-12-10 Akim Demaille <akim@epita.fr>
6590
6591 * src/lalr.c (set_state_table): Move to...
6592 * src/LR0.c: here.
6593 * src/lalr.c (lalr): Don't call it...
6594 * src/LR0.c (generate_states): do it.
6595 * src/LR0.h (first_state): Remove, only the table is used.
6596
6597 2001-12-10 Akim Demaille <akim@epita.fr>
6598
6599 * src/LR0.h (first_shift, first_reduction): Remove.
6600 * src/lalr.c: Don't use first_shift: find shifts through the
6601 states.
6602
6603 2001-12-10 Akim Demaille <akim@epita.fr>
6604
6605 * src/LR0.c: Attach shifts to states as soon as they are
6606 computed.
6607 * src/lalr.c (set_state_table): Instead of assigning shifts to
6608 state, just assert that the mapping was properly done.
6609
6610 2001-12-10 Akim Demaille <akim@epita.fr>
6611
6612 * src/LR0.c (insert_start_shift): Rename as...
6613 (insert_start_shifting_state): this.
6614 (insert_eof_shifting_state, insert_accepting_state): New.
6615 (augment_automaton): Adjust.
6616 Better locality of the variables.
6617 When looking if the start_symbol is shifted from the initial
6618 state, using `while (... symbol != start_symbol ...)' sounds
6619 better than `while (... symbol < start_symbol ...)': If fail
6620 to see how the order between symbols could be relevant!
6621
6622 2001-12-10 Akim Demaille <akim@epita.fr>
6623
6624 * src/getargs.h: Don't declare `spec_name_prefix' and
6625 `spec_file_prefix', declared by src/files.h.
6626 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6627 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6628 * src/output.c (prepare): Adjust.
6629 * src/reader.c (symbols_output): Likewise.
6630 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6631
6632 2001-12-10 Akim Demaille <akim@epita.fr>
6633
6634 * src/muscle_tab.c (muscle_init): NULL is a better default than
6635 `"0"'.
6636
6637 2001-12-10 Akim Demaille <akim@epita.fr>
6638
6639 * src/reader.c (reader): Calling symbols_output once is enough.
6640
6641 2001-12-10 Akim Demaille <akim@epita.fr>
6642
6643 Now that states have a complete set of members, the linked list of
6644 reductions is useless: just fill directly the state's reductions
6645 member.
6646
6647 * src/state.h (struct reductions): Remove member `number' and
6648 `next'.
6649 * src/LR0.c (first_reduction, last_reduction): Remove.
6650 (save_reductions): Don't link the new reductions, store them in
6651 this_state.
6652 * src/lalr.c (set_state_table): No need to attach reductions to
6653 states, it's already done.
6654 * src/output.c (output_actions): No longer free the shifts, then
6655 the reductions, then the states: free all the states and their
6656 members.
6657
6658 2001-12-10 Akim Demaille <akim@epita.fr>
6659
6660 * src/options.c (OPTN, DRTV, BOTH): New.
6661 (option_table): Use them.
6662
6663 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6664 the job of system.h.
6665 * src/options.c: Don't include stdio.h and xalloc.h for the same
6666 reasons.
6667
6668 2001-12-10 Akim Demaille <akim@epita.fr>
6669
6670 * src/output.c (output, prepare): Make sure the values of the
6671 muscles `action' and `prologue' are 0-terminated.
6672
6673 2001-12-10 Akim Demaille <akim@epita.fr>
6674
6675 Clean up GCC warnings.
6676
6677 * src/reader.c (copy_action): `buf' is not used.
6678 (parse_skel_decl): Be static.
6679 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6680 * src/options.h (create_long_option_table): Have a real prototype.
6681 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6682 (hash_delete_at): Return const void *.
6683 Adjust casts to preserve the const.
6684
6685 2001-12-10 Akim Demaille <akim@epita.fr>
6686
6687 * configure.in: Require 2.52g.
6688 M4 is not needed, but AUTOM4TE is.
6689 * m4/m4.m4: Remove.
6690 * tests/Makefile.am: Adjust.
6691
6692 2001-12-10 Akim Demaille <akim@epita.fr>
6693
6694 One structure for states is enough, even though theoretically
6695 there are LR(0) states and LALR(1) states.
6696
6697 * src/lalr.h (state_t): Remove.
6698 (state_table): Be state_t **, not state_t *.
6699 * src/state.h (core, CORE_ALLOC): Rename as...
6700 (state_t, STATE_ALLOC): this.
6701 Add the LALR(1) members: shifts, reductions, errs.
6702 * src/LR0.c (state_table): Rename as...
6703 (state_hash): this, to avoid name clashes with the global
6704 `state_table'.
6705 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6706 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6707
6708 2001-12-10 Akim Demaille <akim@epita.fr>
6709
6710 Bison dumps core on bash.y.
6711 Reported by Pascal Bart.
6712
6713 * src/warshall.c (bitmatrix_print): New.
6714 (TC): Use it.
6715 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6716 j must be the outer loop.
6717 * tests/regression.at (Broken Closure): New.
6718
6719 2001-12-05 Akim Demaille <akim@epita.fr>
6720
6721 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6722 its argument.
6723 Reported by Peter Hámorský.
6724
6725 2001-12-05 Akim Demaille <akim@epita.fr>
6726
6727 * src/conflicts.c (err_table): Remove.
6728 (resolve_sr_conflict): Adjust.
6729 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
6730 Rename as...
6731 (state_t.reductions, state_t.shifts): this.
6732
6733 2001-12-05 Akim Demaille <akim@epita.fr>
6734
6735 * src/reduce.c (reduce_grammar_tables): No longer disable the
6736 removal of useless rules via CPP but via `if (0)', so that the
6737 compiler still check the code is valid.
6738 For instance, it should have noticed `rline' no longer exists: use
6739 the `line' member of rule_t.
6740 * src/gram.c (dummy, rline): Remove, unused.
6741
6742 2001-12-05 Akim Demaille <akim@epita.fr>
6743
6744 * src/output.c (pack_vector): Use assert, not berror.
6745 * src/main.c (berror): Remove, unused.
6746
6747 2001-12-05 Akim Demaille <akim@epita.fr>
6748
6749 New experimental feature: if --verbose --trace output all the
6750 items of a state, not only its kernel.
6751
6752 * src/print.c (print_core): If `trace_flag', then invoke closure
6753 before outputting the items of the state (print_core is no longer
6754 a correct name them).
6755 (print_results): Invoke new_closure/free_closure if needed.
6756
6757 2001-12-05 Akim Demaille <akim@epita.fr>
6758
6759 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
6760 * src/closure.c, src/closure.h (itemsetsize): Rename as...
6761 (nitemset): for consistency with the rest of the project.
6762
6763 2001-12-05 Akim Demaille <akim@epita.fr>
6764
6765 * src/closure.c (print_closure): Improve.
6766 (closure): Use it for printing input and output.
6767
6768 2001-12-05 Akim Demaille <akim@epita.fr>
6769
6770 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6771 indexed by nonterminals.
6772
6773 2001-12-05 Akim Demaille <akim@epita.fr>
6774
6775 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
6776 what it was!).
6777 * src/warshall.h: Remove accidental duplication of the content.
6778
6779 2001-12-05 Akim Demaille <akim@epita.fr>
6780
6781 * src/closure.c (set_fderives): De-obfuscate.
6782
6783 2001-12-05 Akim Demaille <akim@epita.fr>
6784
6785 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
6786
6787 2001-12-05 Akim Demaille <akim@epita.fr>
6788
6789 * src/closure.c (set_firsts): De-obfuscate.
6790
6791 2001-12-05 Akim Demaille <akim@epita.fr>
6792
6793 * src/output.c (action_row): De-obfuscate
6794 using the good o' techniques: arrays not pointers, variable
6795 locality, BITISSET, RESETBIT etc.
6796
6797 2001-12-05 Akim Demaille <akim@epita.fr>
6798
6799 Pessimize the code to simplify it: from now on, all the states
6800 have a valid SHIFTS, which NSHIFTS is possibly 0.
6801
6802 * src/LR0.c (shifts_new): Be global and move to..
6803 * src/state.c, src/state.h: here.
6804 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
6805 * src/print_graph: Adjust.
6806
6807 2001-12-05 Akim Demaille <akim@epita.fr>
6808
6809 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
6810 * src/conflicts.c: Use it.
6811 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
6812 incorrectly ``simplified''.
6813
6814 2001-12-05 Akim Demaille <akim@epita.fr>
6815
6816 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
6817 using the good o' techniques: arrays not pointers, variable
6818 locality, BITISSET, RESETBIT etc.
6819
6820 2001-12-05 Akim Demaille <akim@epita.fr>
6821
6822 * src/state.h (SHIFT_SYMBOL): New.
6823 * src/conflicts.c: Use it to deobfuscate.
6824
6825 2001-12-05 Akim Demaille <akim@epita.fr>
6826
6827 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
6828 (print_reductions): De-obfuscate using the good o' techniques:
6829 arrays not pointers, variable locality, BITISSET.
6830
6831 2001-12-05 Akim Demaille <akim@epita.fr>
6832
6833 * src/conflicts.c (print_reductions): Arrays, not pointers.
6834 Use BITISSET.
6835
6836 2001-12-05 Akim Demaille <akim@epita.fr>
6837
6838 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6839
6840 2001-12-05 Akim Demaille <akim@epita.fr>
6841
6842 * src/conflicts.c (print_reductions): Improve variable locality.
6843
6844 2001-12-05 Akim Demaille <akim@epita.fr>
6845
6846 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6847
6848 2001-12-05 Akim Demaille <akim@epita.fr>
6849
6850 * src/conflicts.c (print_reductions): Improve variable locality.
6851
6852 2001-12-05 Akim Demaille <akim@epita.fr>
6853
6854 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
6855 * src/lalr.c: Use them.
6856
6857 2001-12-05 Akim Demaille <akim@epita.fr>
6858
6859 * src/LR0.c (augment_automaton): Formatting changes.
6860 Better variable locality.
6861
6862 2001-12-05 Akim Demaille <akim@epita.fr>
6863
6864 * src/lalr.c (matrix_print): New.
6865 (transpose): Use it.
6866 Use arrays instead of pointers.
6867
6868 2001-12-05 Akim Demaille <akim@epita.fr>
6869
6870 * src/lalr.c (maxrhs): Move to...
6871 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
6872 * src/lalr.c (build_relations): Adjust.
6873
6874 2001-12-05 Akim Demaille <akim@epita.fr>
6875
6876 * src/lalr.c (transpose): Free the memory allocated to the
6877 argument, as it is replaced by the results by the unique caller.
6878 (build_relations): Merely invoke transpose: it handles the memory
6879 deallocation.
6880 Improve variable locality.
6881 Avoid variables used as mere abbreviations.
6882 (compute_lookaheads): Use arrays instead of pointers.
6883
6884 2001-12-05 Akim Demaille <akim@epita.fr>
6885
6886 * src/lalr.c (initialize_F): Improve variable locality.
6887 Avoid variables used as mere abbreviations.
6888
6889 2001-12-05 Akim Demaille <akim@epita.fr>
6890
6891 * src/derives.c (print_derives): Display the ruleno.
6892 * src/lalr.c (initialize_F, transpose): Better variable locality
6893 to improve readability.
6894 Avoid variables used as mere abbreviations.
6895
6896 2001-12-05 Akim Demaille <akim@epita.fr>
6897
6898 * src/lalr.c (traverse): Use arrays instead of pointers.
6899
6900 2001-12-05 Akim Demaille <akim@epita.fr>
6901
6902 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
6903 the handling of squeue.
6904 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6905
6906 2001-12-05 Akim Demaille <akim@epita.fr>
6907
6908 Because useless nonterminals are now kept alive (instead of being
6909 `destroyed'), we now sometimes examine them, and store information
6910 related to them. Hence we need to know their number, and adjust
6911 memory allocations.
6912
6913 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
6914 static.
6915 * src/LR0.c (allocate_itemsets): The memory allocated to
6916 `symbol_count' was used for two different purpose: once to count
6917 the number of occurrences of each symbol, and later reassigned to
6918 `shift_symbol', containing the symbol that can be shifted from a
6919 given state.
6920 Deobfuscate, i.e., allocate, use and free `symbol_count' here
6921 only, and...
6922 (new_itemsets): Allocate `shift_symbol' here.
6923 (allocate_itemsets): symbol_count includes useless nonterminals.
6924 Make room for them.
6925 (free_storage): Use `free', not `XFREE', for pointers that cannot
6926 be null.
6927
6928 2001-12-05 Akim Demaille <akim@epita.fr>
6929
6930 * src/nullable.c (set_nullable): Deobfuscate the handling of
6931 ritem.
6932 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6933
6934 2001-12-05 Akim Demaille <akim@epita.fr>
6935
6936 * src/gram.c, src/gram.h (ritem_print): New.
6937 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
6938 (This useless function was defined only to work around VMS linkers
6939 that can't handle compilation units with variables only).
6940 * src/reduce.c (dump_grammar): Use it to trace the construction of
6941 ritem.
6942
6943 2001-12-04 Paul Eggert <eggert@twinsun.com>
6944
6945 * src/bison.simple (union yyalloc): Change member names
6946 to be the same as the stack names.
6947 (yyparse): yyptr is now union yyalloc *, not char *.
6948 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
6949 and may generate better code on some machines.
6950 (yystpcpy): Use prototype if __STDC__ is defined, not just
6951 if __cplusplus is defined.
6952
6953 2001-11-30 Akim Demaille <akim@epita.fr>
6954
6955 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
6956 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
6957 Gettext doesn't compile cleanly, and dies with -Werror.
6958 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
6959 Include WARNING_CFLAGS here.
6960 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
6961 before being defined.
6962
6963 2001-11-27 Paul Eggert <eggert@twinsun.com>
6964
6965 * lib/quotearg.h (quotearg_n, quotearg_n_style):
6966 First arg is int, not unsigned.
6967 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
6968 (SIZE_MAX, UINT_MAX): New macros.
6969 (quotearg_n_options): Abort if N is negative.
6970 Avoid overflow check on hosts where size_t is 64 bits and int
6971 is 32 bits, as overflow is impossible there.
6972 Fix off-by-one typo that caused unnecessary reallocation.
6973
6974 2001-11-29 Paul Eggert <eggert@twinsun.com>
6975
6976 Name space cleanup in generated parser.
6977
6978 * doc/bison.texinfo (Bison Parser): Discuss system headers
6979 and their effect on the user name space.
6980
6981 * src/bison.simple:
6982 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
6983 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
6984 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
6985
6986 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
6987 on user names when possible.
6988
6989 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
6990 Simplify test for whather <alloca.h> exists.
6991
6992 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
6993
6994 (<stdio.h>): Include if YYDEBUG.
6995
6996 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
6997 ! defined (yyoverflow) && ! defined (yymemcpy).
6998
6999 (yymemcpy, yyparse): Rename local variables as needed so that
7000 they all begin with 'yy'.
7001
7002 (yystrlen, yystpcpy): New functions.
7003
7004 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7005 All uses changed.
7006
7007 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7008 instead of relying on string.h functions. Use YYSTACK_ALLOC
7009 and YYSTACK_FREE instead of malloc and free.
7010
7011 2001-11-30 Akim Demaille <akim@epita.fr>
7012
7013 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7014 before their first uses.
7015 (YYBISON, YYPURE): Move to the top of the output.
7016
7017 2001-11-30 Akim Demaille <akim@epita.fr>
7018
7019 * tests/reduce.at (Useless Nonterminals): Fix.
7020
7021 2001-11-30 Akim Demaille <akim@epita.fr>
7022
7023 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7024 if body instead of `;' to pacify GCC's warnings.
7025
7026 2001-11-30 Akim Demaille <akim@epita.fr>
7027
7028 Instead of mapping the LHS of unused rules to -1, keep the LHS
7029 valid, but flag the rules as invalid.
7030
7031 * src/gram.h (rule_t): `useful' is a new member.
7032 * src/print.c (print_grammar): Adjust.
7033 * src/derives.c (set_derives): Likewise.
7034 * src/reader.c (packgram, reduce_output): Likewise.
7035 * src/reduce.c (reduce_grammar_tables): Likewise.
7036 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7037
7038 2001-11-30 Akim Demaille <akim@epita.fr>
7039
7040 * src/reduce.c (reduce_output): Formatting changes.
7041 * src/print.c (print_results, print_grammar): Likewise.
7042 * tests/regression.at (Rule Line Numbers)
7043 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7044
7045 2001-11-30 Akim Demaille <akim@epita.fr>
7046
7047 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7048 useless nonterminals, move them at the end of the symbol arrays.
7049 (reduce_output): Adjust.
7050 * tests/reduce.at (Useless Nonterminals): Adjust.
7051
7052 2001-11-30 Akim Demaille <akim@epita.fr>
7053
7054 * src/reduce.c: Various comment/formatting changes.
7055 (nonterminals_reduce): New, extracted from...
7056 (reduce_grammar_tables): here.
7057 (reduce_grammar): Call nonterminals_reduce.
7058
7059 2001-11-29 Paul Eggert <eggert@twinsun.com>
7060
7061 * src/bison.simple (YYSTACK_REALLOC): Remove.
7062 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7063 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7064 New macros.
7065 (union yyalloc): New type.
7066 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7067 an arbitrary restriction on hosts where size_t is wider than int.
7068
7069 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7070 a parser stack overflow. Allocate just one block of memory for all
7071 three stacks, instead of allocating three blocks; this typically is
7072 faster and reduces fragmentation.
7073
7074 Do not limit the number of items in the stack to a value that fits
7075 in 'int', as this is an arbitrary limit on hosts with 64-bit
7076 size_t and 32-bit int.
7077
7078 2001-11-29 Marc Autret <autret_m@epita.fr>
7079
7080 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7081 of defining YYERROR_VERBOSE.
7082 [AT_DATA]: $4 is now out of C declarations in the prologue.
7083
7084 2001-11-28 Marc Autret <autret_m@epita.fr>
7085
7086 * src/reader.c (parse_dquoted_param): New.
7087 (parse_skel_decl): Use it.
7088 * src/lex.h: Add its prototype.
7089 * src/lex.c (literalchar): Become not static.
7090
7091 2001-11-28 Marc Autret <autret_m@epita.fr>
7092
7093 * src/output.h: And put its extern declaration here.
7094 * src/output.c (error_verbose): Define here.
7095 (prepare): Echo name modification.
7096 * src/getargs.h: Clean its extern declaration.
7097 * src/getargs.c (error_verbose_flag): Remove.
7098 (getargs): Remove case 'e'.
7099 * src/options.c (option_table): 'error-verbose' is now seen as simple
7100 percent option.
7101 Include output.h.
7102
7103 * src/reader.c (read_declarations): Remove case tok_include.
7104 (parse_include_decl): Remove.
7105 * src/lex.h (token_t): Remove tok_include.
7106 * src/options.c (option_table): 'include' is now a simple command line
7107 option.
7108
7109 2001-11-28 Marc Autret <autret_m@epita.fr>
7110
7111 * src/bison.simple: Adjust muscle names.
7112 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7113 * src/output.c (prepare): s/_/-/ for the muscles names.
7114 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7115
7116 2001-11-28 Marc Autret <autret_m@epita.fr>
7117
7118 * src/bison.simple: Fix debug.
7119 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7120
7121 2001-11-28 Akim Demaille <akim@epita.fr>
7122
7123 * src/LR0.c (shifts_new): New.
7124 (save_shifts, insert_start_shift, augment_automaton): Use it.
7125
7126 2001-11-28 Akim Demaille <akim@epita.fr>
7127
7128 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7129 keep ruleno only.
7130
7131 2001-11-28 Akim Demaille <akim@epita.fr>
7132
7133 * src/closure.c (closure): Instead of looping over word in array
7134 then bits in words, loop over bits in array.
7135
7136 2001-11-28 Akim Demaille <akim@epita.fr>
7137
7138 * src/closure.c (closure): No longer optimize the special case
7139 where all the bits of `ruleset[r]' are set to 0, to make the code
7140 clearer.
7141
7142 2001-11-28 Akim Demaille <akim@epita.fr>
7143
7144 * src/closure.c (closure): `r' and `c' are new variables, used to
7145 de-obfuscate accesses to RULESET and CORE.
7146
7147 2001-11-28 Akim Demaille <akim@epita.fr>
7148
7149 * src/reduce.c (reduce_print): Use ngettext.
7150 (dump_grammar): Improve the trace accuracy.
7151
7152 2001-11-28 Akim Demaille <akim@epita.fr>
7153
7154 * src/reduce.c (dump_grammar): Don't translate trace messages.
7155
7156 2001-11-28 Akim Demaille <akim@epita.fr>
7157
7158 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7159 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7160 as all tags are free'ed afterwards.
7161 From Enrico Scholz.
7162
7163 2001-11-27 Paul Eggert <eggert@twinsun.com>
7164
7165 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7166 use alloca when we didn't want to, and vice versa.
7167
7168 2001-11-27 Marc Autret <autret_m@epita.fr>
7169
7170 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7171 initialization.
7172 * src/output.c (prepare): Remove its update.
7173
7174 2001-11-27 Marc Autret <autret_m@epita.fr>
7175
7176 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7177 Use %error-verbose.
7178
7179 2001-11-27 Marc Autret <autret_m@epita.fr>
7180
7181 * src/bison.simple: Remove YYERROR_VERBOSE using.
7182 Use %%error_verbose.
7183 (yyparse): Likewise.
7184 * src/output.c (prepare): Give its final value.
7185 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7186 * src/getargs.h: Add its extern declaration.
7187 * src/getargs.c (error_verbose_flag): New int.
7188 (getargs): Update to catch new case.
7189 * src/options.c (option_table): 'error-verbose' is a new option.
7190 (shortopts): Update.
7191
7192 2001-11-27 Akim Demaille <akim@epita.fr>
7193
7194 * src/system.h: Use intl/libgettext.h.
7195 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7196
7197 2001-11-27 Akim Demaille <akim@epita.fr>
7198
7199 * tests/torture.at (Exploding the Stack Size with Malloc):
7200 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7201
7202 2001-11-27 Akim Demaille <akim@epita.fr>
7203
7204 * src/files.c: Include error.h.
7205 Reported by Hans Aberg.
7206
7207 2001-11-26 Marc Autret <autret_m@epita.fr>
7208
7209 * src/reader.c (parse_include_decl): New, not yet implemented.
7210 (read_declarations): Add case tok_include.
7211 * src/getargs.h (include): Add its extern definition.
7212 * src/getargs.c (include): New const char *.
7213 (getargs): Add case '-I'.
7214 * src/options.c (option_table): Add include as command line and
7215 percent option.
7216 * src/lex.h (token_t): Add tok_include.
7217
7218 2001-11-26 Akim Demaille <akim@epita.fr>
7219
7220 * src/reader.c (readgram): Make sure rules for mid-rule actions
7221 have a lineno equal to that of their host rule.
7222 Reported by Hans Aberg.
7223 * tests/regression.at (Rule Line Numbers): New.
7224
7225 2001-11-26 Akim Demaille <akim@epita.fr>
7226
7227 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7228 size_ts.
7229
7230 2001-11-26 Akim Demaille <akim@epita.fr>
7231
7232 * src/complain.c, src/complain.h (error): Remove, provided by
7233 lib/error.[ch].
7234
7235 2001-11-26 Akim Demaille <akim@epita.fr>
7236
7237 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7238 issue an error message.
7239 * tests/regression.at (Invalid %directive): New.
7240 Reported by Hans Aberg.
7241
7242 2001-11-26 Akim Demaille <akim@epita.fr>
7243
7244 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7245 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7246
7247 2001-11-26 Akim Demaille <akim@epita.fr>
7248
7249 * src/conflicts.c (conflicts_print): Don't complain at all when
7250 there are no reduce/reduce conflicts, and as many shift/reduce
7251 conflicts as expected.
7252 * tests/regression.at (%expect right): Adjust.
7253
7254 2001-11-23 Akim Demaille <akim@epita.fr>
7255
7256 * lib/alloca.c: Update, from fileutils.
7257
7258 2001-11-23 Akim Demaille <akim@epita.fr>
7259
7260 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7261
7262 2001-11-23 Akim Demaille <akim@epita.fr>
7263
7264 * src/system.h: Include alloca.h.
7265 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7266
7267 2001-11-23 Akim Demaille <akim@epita.fr>
7268
7269 * src/print_graph.c (print_actions): Remove `rule', unused.
7270 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7271 pacify GCC's signed < unsigned warnings.
7272 * src/closure.c (itemsetsize): Likewise.
7273 * src/reader.c (symbol_list_new): Static.
7274
7275 2001-11-23 Akim Demaille <akim@epita.fr>
7276
7277 Attaching lineno to buckets is stupid, since only one copy of each
7278 symbol is kept, only the line of the first occurrence is kept too.
7279
7280 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7281 * src/reader.c (rline_allocated): Remove, unused.
7282 (symbol_list): Have a `line' member.
7283 (symbol_list_new): New.
7284 (readgram): Use it.
7285 * src/print.c (print_grammar): Output the rule line numbers.
7286 * tests/regression.at (Solved SR Conflicts)
7287 (Unresolved SR Conflicts): Adjust.
7288 Reported by Hans Aberg.
7289
7290 2001-11-22 Marc Autret <autret_m@epita.fr>
7291
7292 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7293
7294 2001-11-22 Marc Autret <autret_m@epita.fr>
7295
7296 * src/muscle_tab.c (muscle_init): Remove initialization of
7297 skeleton muscle.
7298 * src/output.c (output_master_parser): Do it here.
7299
7300 2001-11-20 Akim Demaille <akim@epita.fr>
7301
7302 * po/sv.po: New.
7303 * configure.in (ALL_LINGUAS): Adjust.
7304 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7305 longer contains strings to translate.
7306
7307 2001-11-19 Akim Demaille <akim@epita.fr>
7308
7309 * src/conflicts.c (conflicts_print): Add a missing \n.
7310
7311 2001-11-19 Akim Demaille <akim@epita.fr>
7312
7313 * src/nullable.c (nullable_print): New.
7314 (set_nullable): Call it when tracing.
7315 Better locality of variables.
7316
7317 2001-11-19 Akim Demaille <akim@epita.fr>
7318
7319 * src/print.c (print_actions): Better locality of variables.
7320
7321 2001-11-19 Akim Demaille <akim@epita.fr>
7322
7323 * src/derives.c (print_derives): Fix and enrich.
7324 * src/closure.c (print_fderives): Likewise.
7325
7326 2001-11-19 Akim Demaille <akim@epita.fr>
7327
7328 * src/closure.c (itemsetend): Remove, replaced with...
7329 (itemsetsize): new.
7330
7331 2001-11-19 Akim Demaille <akim@epita.fr>
7332
7333 * src/LR0.c (kernel_end): Remove, replaced with...
7334 (kernel_size): new.
7335
7336 2001-11-19 Akim Demaille <akim@epita.fr>
7337
7338 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7339 to clarify.
7340
7341 2001-11-19 Akim Demaille <akim@epita.fr>
7342
7343 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7344
7345 2001-11-19 Akim Demaille <akim@epita.fr>
7346
7347 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7348 trace messages.
7349 * src/LR0.c: Likewise.
7350 (allocate_itemsets): Use arrays instead of pointers to clarify.
7351
7352 2001-11-19 Akim Demaille <akim@epita.fr>
7353
7354 * src/getargs.c (statistics_flag): Replace with...
7355 (trace_flag): New.
7356 (longopts): Accept --trace instead of --statistics.
7357 * src/getargs.h, src/options.c: Adjust.
7358 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7359 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7360
7361 2001-11-19 Akim Demaille <akim@epita.fr>
7362
7363 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7364 pointers to clarify the code.
7365 (save_reductions, save_shifts): Factor common parts of alternatives.
7366
7367 2001-11-19 Akim Demaille <akim@epita.fr>
7368
7369 * src/LR0.c (new_state, get_state): Complete TRACE code.
7370 * src/closure.c: Include `reader.h' to get `tags', needed by the
7371 trace code.
7372 Rename the conditional DEBUG as TRACE.
7373 Output consistently TRACEs to stderr, not stdout.
7374 * src/derives.c: Likewise.
7375 * src/reduce.c: (inaccessable_symbols): Using if is better style
7376 than goto.
7377 Use `#if TRACE' instead of `#if 0' for tracing code.
7378
7379 2001-11-19 Akim Demaille <akim@epita.fr>
7380
7381 * src/system.h (LIST_FREE, shortcpy): New.
7382 * src/LR0.c: Use them.
7383 * src/output.c (free_itemsets, free_reductions, free_shifts):
7384 Remove, replaced by LIST_FREE.
7385
7386 2001-11-19 Akim Demaille <akim@epita.fr>
7387
7388 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7389 (REDUCTIONS_ALLOC): New.
7390 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7391 allocation.
7392
7393 2001-11-19 Akim Demaille <akim@epita.fr>
7394
7395 * src/LR0.c (new_state): Complete trace code.
7396 * src/nullable.c (set_nullable): Don't translate traces.
7397
7398 2001-11-19 Akim Demaille <akim@epita.fr>
7399
7400 * src/print_graph.c (print_core): Better locality of variables.
7401 * src/print.c (print_core): Likewise.
7402
7403 2001-11-19 Akim Demaille <akim@epita.fr>
7404
7405 * src/vcg.c: You do the output, so you are responsible of the
7406 handling of VCG syntax, in particular: use quotearg.
7407 * src/print_graph.c: Don't.
7408 (print_actions): Don't output the actions as part of the nodes,
7409 since that's the job of the edges.
7410 (print_state): Don't output by hand: fill the node description,
7411 and ask for its output.
7412
7413 2001-11-19 Akim Demaille <akim@epita.fr>
7414
7415 * src/bison.simple (yyparse): When verbosely reporting an error,
7416 no longer put additional quotes around token names.
7417 * tests/calc.at: Adjust.
7418
7419 2001-11-19 Akim Demaille <akim@epita.fr>
7420
7421 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7422 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7423 * src/output.c: Adjust.
7424
7425 2001-11-19 Akim Demaille <akim@epita.fr>
7426
7427 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7428 (rule_t): this.
7429 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7430
7431 2001-11-19 Akim Demaille <akim@epita.fr>
7432
7433 * src/gram.h (rule_t): New.
7434 (rule_table): New.
7435 (rrhs, rlhs): Remove, part of state_t.
7436 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7437 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7438 * src/reader.c, src/reduce.c: Adjust.
7439
7440 2001-11-19 Akim Demaille <akim@epita.fr>
7441
7442 * src/reader.c (symbols_output): New, extracted from...
7443 (packsymbols): Here.
7444 (reader): Call it.
7445
7446 2001-11-19 Akim Demaille <akim@epita.fr>
7447
7448 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7449 (maxrhs): this new function.
7450
7451 2001-11-19 Akim Demaille <akim@epita.fr>
7452
7453 * src/lalr.c (F): New macro to access the variable F.
7454 Adjust.
7455
7456 2001-11-19 Akim Demaille <akim@epita.fr>
7457
7458 * src/lalr.h (LA): New macro to access the variable LA.
7459 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7460 * src/lalr.c: Adjust.
7461
7462 2001-11-19 Akim Demaille <akim@epita.fr>
7463
7464 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7465 (set_state_table): handle the `lookaheads' members.
7466
7467 2001-11-19 Akim Demaille <akim@epita.fr>
7468
7469 * src/lalr.h (lookaheads): Removed array, whose contents is now
7470 a member of...
7471 (state_t): this structure.
7472 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7473 Adjust.
7474
7475 2001-11-19 Akim Demaille <akim@epita.fr>
7476
7477 * src/lalr.h (consistent): Removed array, whose contents is now
7478 a member of...
7479 (state_t): this structure.
7480 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7481 Adjust.
7482
7483 2001-11-19 Akim Demaille <akim@epita.fr>
7484
7485 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7486 contents are now members of...
7487 (state_t): this structure.
7488 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7489 Adjust.
7490
7491 2001-11-19 Akim Demaille <akim@epita.fr>
7492
7493 * src/lalr.h (state_t): New.
7494 (state_table): Be a state_t * instead of a core **.
7495 (accessing_symbol): Remove, part of state_t.
7496 * src/lalr.c: Adjust.
7497 (set_accessing_symbol): Merge into...
7498 (set_state_table): this.
7499 * src/print_graph.c, src/conflicts.c: Adjust.
7500
7501 2001-11-14 Akim Demaille <akim@epita.fr>
7502
7503 * tests/calc.at, tests/output.at, tests/regression.at,
7504 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7505 now the tests are run in private dirs, therefore AC_CLEANUP and
7506 family can be simplified to 0-ary.
7507 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7508 use abs. path to find config.h.
7509 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7510 stderr, there can be way too much random noise.
7511 Instead pass -Werror to GCC and rely on the exit status.
7512 Reported by Wolfram Wagner.
7513
7514 2001-11-14 Akim Demaille <akim@epita.fr>
7515
7516 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7517 defined only if yyoverflow is defined, to avoid `warning: unused
7518 variable `yyvs1''.
7519 Reported by The Test Suite.
7520
7521 2001-11-14 Akim Demaille <akim@epita.fr>
7522
7523 * src/print.c: Include reduce.h.
7524 Reported by Hans Aberg.
7525
7526 2001-11-14 Akim Demaille <akim@epita.fr>
7527
7528 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7529 Revert a previous patch: these are really const.
7530 * src/conflicts.c (conflict_report): Additional useless pair of
7531 braces to pacify GCC's warnings for `if () if () {} else {}'.
7532 * src/lex.c (parse_percent_token): Replace equal_offset with
7533 arg_offset.
7534 arg is const.
7535 Be sure to strdup `arg' when used, since there is no reason for
7536 token_buffer not to change.
7537
7538 2001-11-14 Akim Demaille <akim@epita.fr>
7539
7540 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7541 definition.
7542 * src/main.c (main): Use them.
7543 Suggested by Hans Aberg.
7544
7545 2001-11-12 Akim Demaille <akim@epita.fr>
7546
7547 * src/system.h (ngettext): Now that we use ngettext, be sure to
7548 provide a default definition when NLS are not used.
7549
7550 2001-11-12 Akim Demaille <akim@epita.fr>
7551
7552 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7553 Use @kbd to denote user input.
7554 (Language and Grammar): ANSIfy the example.
7555 Adjust its layout for info/notinfo.
7556 (Location Tracking Calc): Output error messages to stderr.
7557 Output locations in a more GNUtically correct way.
7558 Fix a couple of Englishos.
7559 Adjust @group/@end group pairs.
7560
7561 2001-11-12 Akim Demaille <akim@epita.fr>
7562
7563 %expect was not functioning at all.
7564
7565 * src/conflicts.c (expected_conflicts): Set to -1.
7566 (conflict_report): Use ngettext.
7567 (conflicts_print): Check %expect and make its violation an error.
7568 * doc/bison.texinfo (Expect Decl): Adjust.
7569 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7570 * tests/regression.at (%expect not enough, %expect right)
7571 (%expect too much): New.
7572
7573 2001-11-12 Akim Demaille <akim@epita.fr>
7574
7575 * tests/regression.at (Conflicts): Rename as...
7576 (Unresolved SR Conflicts): this.
7577 (Solved SR Conflicts): New.
7578
7579 2001-11-12 Akim Demaille <akim@epita.fr>
7580
7581 * src/reduce.c (print_results): Rename as...
7582 (reduce_output): This.
7583 Output to OUT, passed as argument, instead of output_obstack.
7584 (dump_grammar): Likewise.
7585 (reduce_free): New.
7586 Also free V1.
7587 (reduce_grammar): No longer call reduce_output, since...
7588 * src/print.c (print_results): do it.
7589 * src/main.c (main): Call reduce_free;
7590
7591 2001-11-12 Akim Demaille <akim@epita.fr>
7592
7593 * src/conflicts.c (print_reductions): Accept OUT as argument.
7594 Output to it, not to output_obstack.
7595 * src/print.c (print_actions): Adjust.
7596
7597 2001-11-12 Akim Demaille <akim@epita.fr>
7598
7599 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
7600 the result instead of using...
7601 (src_total, rrc_total, src_count, rrc_count): Remove.
7602 (any_conflicts): Remove.
7603 (print_conflicts): Split into...
7604 (conflicts_print, conflicts_output): New.
7605 * src/conflicts.h: Adjust.
7606 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
7607 * src/print.c (print_grammar): Issue `\n' between two rules.
7608 * tests/regression.at (Conflicts): New.
7609 Reported by Tom Lane.
7610
7611 2001-11-12 Akim Demaille <akim@epita.fr>
7612
7613 * tests/regression.at (Invalid input): Remove, duplicate with
7614 ``Invalid input: 1''.
7615
7616 2001-11-12 Akim Demaille <akim@epita.fr>
7617
7618 * tests/torture.at (AT_DATA_STACK_TORTURE)
7619 (Exploding the Stack Size with Alloca)
7620 (Exploding the Stack Size with Malloc): New.
7621
7622 2001-11-12 Akim Demaille <akim@epita.fr>
7623
7624 * src/bison.simple (YYSTACK_REALLOC): New.
7625 (yyparse) [!yyoverflow]: Use it and free the old stack.
7626 Reported by Per Allansson.
7627
7628 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
7629
7630 * src/bison.simple: Define type yystype instead of YYSTYPE, and
7631 define CPP macro, which substitute YYSTYPE by yystype.
7632 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
7633 with yyltype/YYLTYPE. This allows inclusion of the generated
7634 header within the parser if the compiler, such as GGC, accepts
7635 multiple equivalent #defines.
7636 From Akim.
7637
7638 2001-11-05 Akim Demaille <akim@epita.fr>
7639
7640 * src/reader.c (symbols_output): New, extracted from...
7641 (packsymbols): here.
7642 (reader): Adjust.
7643
7644 2001-11-05 Akim Demaille <akim@epita.fr>
7645
7646 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7647
7648 2001-11-05 Akim Demaille <akim@epita.fr>
7649
7650 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7651 pattern.
7652
7653 2001-11-05 Akim Demaille <akim@epita.fr>
7654
7655 * src/options.h (struct option_table_struct): set_flags is void*.
7656 * src/options.c (longopts): Support `--output' and `%output'.
7657 (usage): Adjust.
7658 * src/lex.h (tok_setopt): Remove, replaced with...
7659 (tok_intopt, tok_stropt): these new guys.
7660 * src/lex.c (getopt.h): Not needed.
7661 (token_buffer, unlexed_token_buffer): Not const.
7662 (percent_table): Promote `-' over `_' in directive names.
7663 Active `%name-prefix', `file-prefix', and `output'.
7664 (parse_percent_token): Accept possible arguments to directives.
7665 Promote `-' over `_' in directive names.
7666
7667 2001-11-04 Akim Demaille <akim@epita.fr>
7668
7669 * doc/bison.texinfo (Decl Summary): Split the list into
7670 `directives for grammars' and `directives for bison'.
7671 Sort'em.
7672 Add description of `%name-prefix', `file-prefix', and `output'.
7673 Promote `-' over `_' in directive names.
7674 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
7675 Simplify the description of `--name-prefix'.
7676 Promote `-' over `_' in directive names.
7677 Promote `--output' over `--output-file'.
7678 Fix the description of `--defines'.
7679 * tests/output.at: Exercise %file-prefix and %output.
7680
7681 2001-11-02 Akim Demaille <akim@epita.fr>
7682
7683 * doc/refcard.tex: Update.
7684
7685 2001-11-02 Akim Demaille <akim@epita.fr>
7686
7687 * src/symtab.h (SUNDEF): New.
7688 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
7689 stand for `uninitialized', instead of 0.
7690 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
7691 * src/lex.c (lex): Adjust.
7692
7693 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
7694 Number it 0.
7695 Let yylex return it instead of a plain 0.
7696 Reported by Dick Streefland.
7697
7698 2001-11-02 Akim Demaille <akim@epita.fr>
7699
7700 * tests/regression.at (Mixing %token styles): New test.
7701
7702 2001-11-02 Akim Demaille <akim@epita.fr>
7703
7704 * src/reader.c (parse_thong_decl): Formatting changes.
7705 (token_translations_init): New, extracted from...
7706 (packsymbols): Here.
7707 Adjust.
7708
7709 2001-11-01 Akim Demaille <akim@epita.fr>
7710
7711 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
7712 Check that `9foo.y' produces correct cpp guards.
7713 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
7714 guards.
7715 Reported by Wwp.
7716
7717 2001-11-01 Akim Demaille <akim@epita.fr>
7718
7719 * tests/regression.at (Invalid input: 2): New.
7720 * src/lex.c (unlexed_token_buffer): New.
7721 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
7722 too.
7723 Reported by Wwp.
7724
7725 2001-11-01 Akim Demaille <akim@epita.fr>
7726
7727 * tests/calc.at: Catch up with 1.30.
7728 * configure.in: Bump to 1.49a.
7729 Adjust to newer Autotest.
7730
7731 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
7732
7733 * src/conflicts.c: Move global variables rrc_total and src_total ...
7734 (print_conflicts): here.
7735 * src/output.c (output): Free global variable user_toknums.
7736 * src/lex.c (token_obstack): Become static.
7737
7738 2001-10-18 Akim Demaille <akim@epita.fr>
7739
7740 * tests/atlocal.in (GCC): Add.
7741 * tests/calc.at: s/m4_match/m4_bmatch/.
7742 s/m4_patsubst/m4_bpatsubst/.
7743 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
7744 * configure.in: AC_SUBST(GCC).
7745
7746 2001-10-14 Marc Autret <autret_m@epita.fr>
7747
7748 * src/options.c (create_long_option_table): Fix.
7749
7750 2001-10-10 Akim Demaille <akim@epita.fr>
7751
7752 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7753
7754 2001-10-04 Akim Demaille <akim@epita.fr>
7755
7756 * src/reader.c (parse_union_decl): Push the caracters in
7757 union_obstack, not attrs_obstack.
7758
7759 2001-10-04 Akim Demaille <akim@epita.fr>
7760
7761 Merge in the branch 1.29.
7762
7763 * src/reader.c (packsymbols): Use a temporary obstack for
7764 `%%tokendef', since output_stack is already used elsewhere.
7765
7766 2001-10-02 Akim Demaille <akim@epita.fr>
7767
7768 Bump 1.29d.
7769
7770 2001-10-02 Akim Demaille <akim@epita.fr>
7771
7772 Version 1.29c.
7773
7774 2001-10-02 Akim Demaille <akim@epita.fr>
7775
7776 * tests/regression.at (Invalid CPP headers): New.
7777 From Alexander Belopolsky.
7778 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
7779
7780 2001-10-02 Akim Demaille <akim@epita.fr>
7781
7782 * tests/regression.at (Invalid input): New.
7783 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
7784 Reported by Shura.
7785
7786 2001-10-02 Akim Demaille <akim@epita.fr>
7787
7788 * tests/calc.at: Now that --debug works, the tests must be adjusted.
7789
7790 2001-10-02 Akim Demaille <akim@epita.fr>
7791
7792 * src/output.c (output_parser): Assert `skeleton'.
7793 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
7794 systems.
7795 From Shura.
7796
7797 2001-10-01 Marc Autret <autret_m@epita.fr>
7798
7799 * src/lex.h: Echo modifications.
7800 * src/lex.c (unlex): Parameter is now token_t.
7801 From Hans Aberg.
7802
7803 2001-10-01 Marc Autret <autret_m@epita.fr>
7804
7805 * src/main.c: Include lex.h.
7806 From Hans Aberg.
7807
7808 2001-09-29 Akim Demaille <akim@epita.fr>
7809
7810 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
7811
7812 2001-09-28 Akim Demaille <akim@epita.fr>
7813
7814 * tests/testsuite.at: Update to newer Autotest.
7815 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
7816
7817 2001-09-27 Akim Demaille <akim@epita.fr>
7818
7819 Position independent wrapper.
7820
7821 * tests/bison: Remove.
7822 * tests/bison.in: New.
7823 * configure.in: Adjust.
7824
7825 2001-09-27 Paul Eggert <eggert@twinsun.com>
7826
7827 Port quotearg fixes from tar 1.13.24.
7828
7829 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
7830 tm to be declared.
7831 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
7832 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
7833
7834 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
7835 * m4/mbrtowc.m4: New file.
7836 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
7837 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
7838
7839 2001-09-27 Akim Demaille <akim@epita.fr>
7840
7841 Bump to 1.29c.
7842
7843 2001-09-27 Akim Demaille <akim@epita.fr>
7844
7845 Version 1.29b.
7846
7847 2001-09-25 Akim Demaille <akim@epita.fr>
7848
7849 * src/system.h: Include `xalloc.h'.
7850 Remove it from the C files.
7851 * src/files.c (output_files): Free the obstacks.
7852 * src/lex.c (init_lex): Rename as...
7853 (lex_init): this.
7854 (lex_free): New.
7855 * src/main.c (main): Use it.
7856
7857 2001-09-24 Marc Autret <autret_m@epita.fr>
7858
7859 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
7860 to output informations in fout (FILE*).
7861 (open_graph, close_graph): Likewise.
7862 (output_graph, output_edge, output_node): Likewise.
7863 * src/vcg.h: Update function prototypes.
7864 * src/print_graph.c (print_graph): Open output graph file.
7865 (print_actions): Adjust.
7866 * src/files.h: Remove extern declaration.
7867 * src/files.c: Remove graph_obstack declaration.
7868 (open_files): Remove graph_obstack initialization.
7869 (output_files): Remove graph_obstack saving.
7870
7871 2001-09-24 Marc Autret <autret_m@epita.fr>
7872
7873 * src/files.c (compute_output_file_names): Fix.
7874
7875 2001-09-24 Marc Autret <autret_m@epita.fr>,
7876 Akim Demaille <akim@epita.fr>
7877
7878 * src/reader.c (reader): Remove call to free_symtab ().
7879 * src/main.c (main): Call it here.
7880 Include symtab.h.
7881 * src/conflicts.c (initialize_conflicts): Rename as...
7882 (solve_conflicts): this.
7883 * src/print.c (print_core, print_actions, print_state)
7884 (print_grammar): Dump to a file instead a `output_obstack'.
7885 (print_results): Dump `output_obstack', and then proceed with the
7886 FILE *.
7887 * src/files.c (compute_output_file_names, close_files): New.
7888 (output_files): Adjust.
7889 * src/main.c (main): Adjust.
7890
7891 2001-09-23 Marc Autret <autret_m@epita.fr>
7892
7893 * src/files.c (compute_header_macro): Computes header macro name
7894 from spec_defines_file when given.
7895
7896 2001-09-23 Marc Autret <autret_m@epita.fr>
7897
7898 * src/files.c (output_files): Add default extensions.
7899
7900 2001-09-22 Akim Demaille <akim@epita.fr>
7901
7902 * src/conflicts.c (finalize_conflicts): Rename as...
7903 (free_conflicts): this.
7904
7905 2001-09-22 Akim Demaille <akim@epita.fr>
7906
7907 * src/gram.c (gram_free): Rename back as...
7908 (dummy): this.
7909 (output_token_translations): Free `token_translations'.
7910 * src/symtab.c (free_symtab): Free the tag field.
7911
7912 2001-09-22 Akim Demaille <akim@epita.fr>
7913
7914 Remove `translations' as it is always set to true.
7915
7916 * src/gram.h: Adjust.
7917 * src/reader.c (packsymbols, parse_token_decl): Adjust
7918 * src/print.c (print_grammar): Adjust.
7919 * src/output.c (output_token_translations): Adjust.
7920 * src/lex.c (lex): Adjust.
7921 * src/gram.c: Be sure the set pointers to NULL.
7922 (dummy): Rename as...
7923 (gram_free): this.
7924
7925 2001-09-22 Akim Demaille <akim@epita.fr>
7926
7927 * configure.in: Invoke AM_LIB_DMALLOC.
7928 * src/system.h: Use dmalloc.
7929 * src/LR0.c: Be sure to have pointers initialized to NULL.
7930 (allocate_itemsets): Allocate kernel_items only if needed.
7931
7932 2001-09-22 Akim Demaille <akim@epita.fr>
7933
7934 * configure.in: Bump to 1.29b.
7935 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
7936 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
7937 need xmalloc.c in calc.y.
7938 From Pascal Bart.
7939
7940 2001-09-21 Akim Demaille <akim@epita.fr>
7941
7942 Version 1.29a.
7943 * Makefile.maint, config/config.guess, config/config.sub,
7944 * config/missing: Update from masters.
7945 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
7946 upon package.m4.
7947 * configure.in (ALL_LINGUAS): Add `tr'.
7948
7949 2001-09-21 Akim Demaille <akim@epita.fr>
7950
7951 * tests/Makefile.am (package.m4): Move to...
7952 ($(srcdir)/$(TESTSUITE)): here.
7953
7954 2001-09-20 Akim Demaille <akim@epita.fr>
7955
7956 * src/complain.c: No longer try to be standalone: use system.h.
7957 Don't assume __STDC__ is defined to 1. Just test if it is defined.
7958 * src/complain.h: Likewise.
7959 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
7960 Remove the unused variable `n'.
7961 From Albert Chin-A-Young.
7962
7963 2001-09-18 Marc Autret <autret_m@epita.fr>
7964
7965 * doc/bison.1: Update.
7966 * doc/bison.texinfo (Bison Options): Update --defines and --graph
7967 descriptions.
7968 (Option Cross Key): Update.
7969 Add --graph.
7970
7971 2001-09-18 Marc Autret <autret_m@epita.fr>
7972
7973 * tests/regression.at: New test (comment in %union).
7974
7975 2001-09-18 Marc Autret <autret_m@epita.fr>
7976
7977 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
7978 do that.
7979 Reported by Keith Browne.
7980
7981 2001-09-18 Marc Autret <autret_m@epita.fr>
7982
7983 * tests/output.at: Add tests for --defines and --graph.
7984
7985 2001-09-18 Marc Autret <autret_m@epita.fr>
7986
7987 * tests/output.at: Removes tests of %{header,src}_extension features.
7988
7989 2001-09-18 Akim Demaille <akim@epita.fr>
7990
7991 * tests/Makefile.am (package.m4): New.
7992 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
7993 (_AT_CHECK_CALC_ERROR): Likewise.
7994 Factor the `, ' part of verbose error messages.
7995
7996 2001-09-18 Marc Autret <autret_m@epita.fr>
7997
7998 * src/getargs.c (longopts): Declare --defines and --graph as options
7999 with optional arguments.
8000 * src/files.h: Add extern declarations.
8001 * src/files.c (spec_graph_file, spec_defines_file): New.
8002 (output_files): Update.
8003 Remove CPP-outed code.
8004
8005 2001-09-18 Marc Autret <autret_m@epita.fr>
8006
8007 Turn off %{source,header}_extension feature.
8008
8009 * src/files.c (compute_exts_from_gf): Update.
8010 (compute_exts_from_src): Update.
8011 (output_files): CPP-out useless code.
8012 * src/files.h: Remove {header,source}_extension extern declarations.
8013 * src/reader.c (parse_dquoted_param): CPP-out.
8014 (parse_header_extension_decl): Remove.
8015 (parse_source_extension_decl): Remove.
8016 (read_declarations): Remove cases tok_{hdrext,srcext}.
8017 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8018 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8019
8020 2001-09-10 Akim Demaille <akim@epita.fr>
8021
8022 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8023 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8024 (AT_CHECK_OUTPUT): this.
8025 Merely check ls' exit status, its output is useless.
8026
8027 2001-09-10 Akim Demaille <akim@epita.fr>
8028
8029 * tests/calc.at: Use m4_match.
8030 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8031
8032 2001-09-10 Marc Autret <autret_m@epita.fr>,
8033 Akim Demaille <akim@epita.fr>
8034
8035 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8036 enum color_e.
8037 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8038 to `normal'.
8039 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8040 * src/lex.h: Adjust prototype.
8041 (token_t): Add `tok_undef'.
8042 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8043 (parse_percent_token): Now returns token_t.
8044 Add default statement in switch.
8045 (lex): Separate `c' as an input variable, from the token_t result
8046 part.
8047 (unlexed): Is a token_t.
8048
8049 2001-09-10 Akim Demaille <akim@epita.fr>
8050
8051 * configure.in: Bump to 1.29a.
8052
8053 2001-09-07 Akim Demaille <akim@epita.fr>
8054
8055 Version 1.29.
8056
8057 2001-08-30 Akim Demaille <akim@epita.fr>
8058
8059 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8060 * m4/atconfig.m4: Remove.
8061 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8062 * tests/bison: New.
8063 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8064 m4_if, m4_patsubst, and m4_regexp.
8065 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8066 `input' file instead of echo.
8067
8068 2001-08-29 Akim Demaille <akim@epita.fr>
8069
8070 Bump to 1.28e.
8071
8072 2001-08-29 Akim Demaille <akim@epita.fr>
8073
8074 Version 1.28d.
8075
8076 2001-08-29 Paul Eggert <eggert@twinsun.com>
8077
8078 * src/bison.simple (yyparse): Don't take the address of an
8079 item before the start of an array, as that doesn't conform to
8080 the C Standard.
8081
8082 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8083
8084 * doc/bison.texinfo (Location Tracking Calc): New node.
8085
8086 2001-08-29 Paul Eggert <eggert@twinsun.com>
8087
8088 * src/output.c (output): Do not define const, as this now
8089 causes more problems than it cures.
8090
8091 2001-08-29 Akim Demaille <akim@epita.fr>
8092
8093 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8094 the nodes.
8095 Be sure to tag the `detailmenu'.
8096
8097 2001-08-29 Akim Demaille <akim@epita.fr>
8098
8099 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8100 download in a tmp dir.
8101
8102 2001-08-28 Marc Autret <autret_m@epita.fr>
8103
8104 * config/depcomp: New file.
8105
8106 2001-08-28 Marc Autret <autret_m@epita.fr>
8107
8108 * doc/bison.1 (mandoc): Adjust.
8109 From Juan Manuel Guerrero.
8110
8111 2001-08-28 Marc Autret <autret_m@epita.fr>
8112
8113 * src/print_graph.c (print_state): Fix.
8114
8115 2001-08-27 Marc Autret <autret_m@epita.fr>
8116
8117 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8118 char * members.
8119 Echo modifications to the functions prototypes.
8120 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8121
8122 2001-08-27 Marc Autret <autret_m@epita.fr>
8123
8124 * src/vcg.c: Include `xalloc.h'.
8125 (add_colorentry): New.
8126 (add_classname): New.
8127 (add_infoname): New.
8128 * src/vcg.h: Add new prototypes.
8129
8130 2001-08-27 Akim Demaille <akim@epita.fr>
8131
8132 * Makefile.maint: Sync. again with CVS Autoconf.
8133
8134 2001-08-27 Akim Demaille <akim@epita.fr>
8135
8136 * Makefile.maint: Formatting changes.
8137 (po-update, cvs-update, update): New targets.
8138 (AMTAR): Remove.
8139
8140 2001-08-27 Akim Demaille <akim@epita.fr>
8141
8142 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8143 * Makefile.maint: Sync. with CVS Autoconf.
8144
8145 2001-08-27 Marc Autret <autret_m@epita.fr>
8146
8147 * src/vcg.h (struct infoname_s): New.
8148 (struct colorentry_s): New.
8149 (graph_s): New fields {vertical,horizontal}_order in structure.
8150 Add `infoname' field.
8151 Add `colorentry' field;
8152 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8153 (G_HORIZONTAL_ORDER): New.
8154 (G_INFONAME): New.
8155 (G_COLORENTRY): New.
8156 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8157 Add output of `infoname'.
8158 Add output of `colorentry'.
8159
8160 2001-08-27 Marc Autret <autret_m@epita.fr>
8161
8162 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8163 This one shadowed a global parameter.
8164
8165 2001-08-24 Marc Autret <autret_m@epita.fr>
8166
8167 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8168 instead of `unsigned'.
8169 (print_state): Do not call obstack_object_size () in obstack_grow ()
8170 to avoid macro variables shadowing.
8171
8172 2001-08-23 Marc Autret <autret_m@epita.fr>
8173
8174 * src/lex.c (percent_table): Typo: s/naem/name/.
8175 Add graph option.
8176 Normalize new options declarations.
8177
8178 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8179
8180 * tests/suite.at: Exercise %header_extension and %source_extension.
8181
8182 2001-08-16 Marc Autret <autret_m@epita.fr>
8183
8184 * src/reader.c (parse_dquoted_param): New.
8185 (parse_header_extension_decl): Use it.
8186 (parse_source_extension_decl): Likewise.
8187
8188 2001-08-16 Marc Autret <autret_m@epita.fr>
8189
8190 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8191 (get_xxxx_str): Use assert () instead of complain ().
8192 Remove return invokations in default cases.
8193 (get_decision_str): Modify default behaviour. Remove second argument.
8194 Echo modifications on calls.
8195 (output_graph): Fix.
8196
8197 2001-08-16 Marc Autret <autret_m@epita.fr>
8198
8199 * src/getargs.c (usage): Update with ``-g, --graph''.
8200
8201 2001-08-16 Marc Autret <autret_m@epita.fr>
8202
8203 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8204 (Option Cross Key): Likewise.
8205 * doc/bison.1: Update.
8206
8207 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
8208
8209 * src/output.c (output_master_parser): Don't finish action_obstack.
8210 (output_parser): Don't care about the muscle action, here.
8211 (prepare): Copy the action_obstack in the action muscle.
8212 (output): Free action_obstack.
8213
8214 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8215
8216 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8217 will contain `%union' declaration.
8218 (parse_union_decl): Delete #line directive output.
8219 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8220 informations about %union.
8221 (parse_union_decl): Copy the union_obstack in the muscle stype.
8222 * src/bison.simple: Add new #line directive.
8223 Add typdef %%stype YYSTYPE.
8224
8225 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8226
8227 * src/bison.simple: Add new `#line' directive.
8228
8229 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
8230
8231 * src/bison.simple: New `#line' directive.
8232 * src/output.c (output_parser): Support new dynamic muscle input_line.
8233
8234 2001-09-22 Marc Autret <autret_m@epita.fr>
8235
8236 * src/output.c (output_master_parser): New.
8237 (output_parser): Be more re-entrant.
8238
8239 2001-09-21 Marc Autret <autret_m@epita.fr>
8240
8241 * src/reader.c (copy_definition, parse_union_decl): Update and use
8242 `linef' muscle.
8243 (copy_action): Likewise.
8244 Use obstack_1grow ().
8245 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8246
8247 2001-09-21 Marc Autret <autret_m@epita.fr>
8248
8249 * src/options.c (option_table): Adjust.
8250 * src/lex.c (parse_percent_token): Fix.
8251
8252 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8253
8254 * src/options.c (symtab.h): Include it, need by lex.h.
8255
8256 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8257
8258 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8259 is now an option_table_struct*.
8260 (option_strcmp): New function option_strcmp.
8261 (parse_percent_token): Call option_strcmp.
8262 * src/getargs.c (xalloc.h, options.h): Include it.
8263 (getargs): Call create_long_option_table.
8264 (getargs): Free longopts at the end of the function.
8265 (shortopts): Move in options.c.
8266 * src/options.c (create_long_option_table): New function. Convert
8267 information from option_table to option structure.
8268 * src/reader.c (options.h): Include it.
8269
8270 * src/Makefile.am: Adjust.
8271 * src/options.c (option_table): Create from longopts and percent_table.
8272 * src/getargs.c (longopts): Delete.
8273 * src/lex.c (struct percent_table_struct): Delete.
8274 (percent_table): Delete.
8275 (options.h): Include it.
8276 * src/options.c: Create.
8277 * src/options.h: Create.
8278 Declare enum opt_access_e.
8279 Define struct option_table_struct.
8280
8281 2001-09-20 Marc Autret <autret_m@epita.fr>
8282
8283 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8284 sections of Bison.
8285
8286 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
8287
8288 * src/bison.simple: s/%%filename/%%skeleton.
8289 * src/muscle_tab.c (getargs.h): Include it.
8290 (muscle_init): Insert new muscle skeleton.
8291
8292 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
8293
8294 * src/output.c (output_parser): Delete unused variable actions_dumped.
8295
8296 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
8297
8298 * src/output.c (output): Delete call to reader_output_yylsp.
8299 * src/reader.c (reader): Likewise.
8300 * src/reader.h: Delete declaration of reader_output_yylsp.
8301
8302 2001-09-02 Marc Autret <autret_m@epita.fr>
8303
8304 * src/reader.c: Include muscle_tab.h.
8305 (parse_union_decl): Update.
8306 (parse_macro_decl): Rename parse_muscle_decl.
8307 Update to use renamed functions and variable.
8308 (read_declarations, copy_action, read_additionnal_code, : Updated
8309 with correct variables and functions names.
8310 (packsymbols, reader): Likewise.
8311
8312 * src/reader.h (muscle_obstack): Extern declaration update.
8313
8314 * src/output.c: Include muscle_tab.h
8315 In all functions using macro_insert, change by using muscle_insert ().
8316 (macro_obstack): Rename muscle_obstack.
8317 Echo modifications in the whole file.
8318 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8319 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8320 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8321
8322 * src/muscle_tab.h: Update double inclusion macros.
8323 (macro_entry_s): Rename muscle_entry_s.
8324 Update prototypes.
8325
8326 * src/muscle_tab.c: Include muscle_tab.h.
8327 Rename macro_tabble to muscle_table.
8328 (mhash1, mhash2, mcmp): Use muscle_entry.
8329 (macro_init): Rename muscle_init. Update.
8330 (macro_insert): Rename muscle_insert. Update.
8331 (macro_find): Rename muscle_find. Update.
8332
8333 * src/main.c: Include muscle_tab.h.
8334 (main): Call muscle_init ().
8335 * src/Makefile.am (bison_SOURCES): Echo modifications.
8336
8337 2001-09-02 Marc Autret <autret_m@epita.fr>
8338
8339 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8340
8341 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8342
8343 2001-09-02 Marc Autret <autret_m@epita.fr>
8344
8345 * src/macrotab.c, src/macrotab.h: Remove.
8346
8347 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
8348
8349 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8350 filename.
8351
8352 2001-09-01 Marc Autret <autret_m@epita.fr>
8353
8354 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8355 to an explicit value to activate the feature. We do it here.
8356
8357 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8358
8359 * src/output.c (prepare): Delete the `filename' muscule insertion.
8360 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8361 (parse_union_decl): Likewise.
8362 * src/macrotab.c (macro_init): Initialize filename by infile.
8363
8364 2001-08-31 Marc Autret <autret_m@epita.fr>
8365
8366 * src/bison.simple (YYLSP_NEEDED): New definition.
8367 * src/output.c (prepare): Add macro insertion of `locations_flag'
8368
8369 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8370
8371 * src/output.c (prepare): Delete insertion of previous muscles,
8372 and insert the `prefix' muscles.
8373 * src/macrotab.c (macro_init): Likewise.
8374 (macro_init): Initialization prefix directive by `yy'.
8375 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8376 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8377 yylval, yydebug, yyerror, yynerrs and yyparse.
8378 New directive `#define' to substitute yydebug, ... with option
8379 name_prefix.
8380
8381 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8382
8383 * src/main.c (main): Standardize.
8384 * src/output.c (output_table_data, output_parser): Likewise.
8385 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8386
8387 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8388
8389 * src/reader.c (read_additionnal_code): Rename %%user_code to
8390 %%epilogue.
8391 * src/output.c (output): Rename %%declarations to %%prologue.
8392 * src/bison.simple: Echo modifications.
8393
8394 2001-08-31 Marc Autret <autret_m@epita.fr>
8395
8396 * src/reader.c (readgram): CleanUp.
8397 (output_token_defines): Likewise.
8398 (packsymbols): Likewise.
8399 (reader): Likewise.
8400 * src/output.c (output): CPP-out useless code.
8401
8402 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8403
8404 * src/reader.c (reader): Delete obsolete call to function
8405 output_trailers and output_headers.
8406 * src/output.h: Remove obsolete functions prototypes of output_headers
8407 and output_trailers.
8408
8409 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
8410
8411 * src/main.c: Include macrotab.h.
8412 * src/macrotab.h (macro_entry_s): Constify fields.
8413 Adjust functions prototypes.
8414 * src/macrotab.c (macro_insert): Constify key and value.
8415 (macro_find): Constify key.
8416 (macro_insert): Include 'xalloc.h'
8417 (macro_insert): Use XMALLOC.
8418 (macro_find): Constify return value.
8419 * src/output.c (output_table_data): Rename table to table_data.
8420 (output_parser): Constify macro_key, macro_value.
8421
8422 2001-08-30 Marc Autret <autret_m@epita.fr>
8423
8424 * src/reader.c (parse_skel_decl): New.
8425 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
8426 * src/lex.h (token_t): New token `tok_skel'.
8427 * src/lex.c (percent_table): Add skeleton option entry.
8428 Standardize.
8429
8430 2001-08-29 Marc Autret <autret_m@epita.fr>
8431
8432 * src/bison.simple: Add %%user_code directive at the end.
8433 * src/reader.c (read_additionnal_code): New.
8434 (reader): Use it.
8435 * src/output.c (output_program): Remove.
8436 (output): Update.
8437
8438 2001-08-28 Marc Autret <autret_m@epita.fr>
8439
8440 * src/output.c (output_actions): Clean up.
8441 (output_gram): CPP-out useless code.
8442 * src/reader.c (reader): Clean up, CPP-out useless code.
8443
8444 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
8445
8446 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
8447 directive.
8448 * src/bison.simple: Add `%%definitions'.
8449
8450 2001-08-28 Marc Autret <autret_m@epita.fr>
8451
8452 * config/depcomp: New file.
8453
8454 2001-08-27 Paul Eggert <eggert@twinsun.com>
8455
8456 * src/bison.simple (yyparse): Don't take the address of an
8457 item before the start of an array, as that doesn't conform to
8458 the C Standard.
8459
8460 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8461
8462 * src/output.c (output): Remove the initialization of the macro
8463 obstack. It was done too late here.
8464
8465 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8466 completely wrong.
8467 (reader): Initialize the macro obstack here, since we need it to grow
8468 '%define' directives.
8469
8470 * src/reader.h: Declare the macro obstack as extern.
8471
8472 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8473
8474 * src/output.c (output_parser): Fix. Store single '%' characters in
8475 the output obstack instead of throwing them away.
8476
8477 2001-08-27 Akim Demaille <akim@epita.fr>
8478
8479 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8480
8481 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8482
8483 * lib/Makefile.am: Adjust.
8484
8485 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8486
8487 * src/bison.simple: Update and add '%%' directives.
8488
8489 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8490
8491 * src/reader.c (reader): Remove calls to 'output_headers' and
8492 'output_trailers'. Remove some C output.
8493 (readgram): Disable a piece of code that was writing a default
8494 definition for 'YYSTYPE'.
8495 (reader_output_yylsp): Remove.
8496 (packsymbols): Output token defintions to a macro.
8497 (copy_definition): Disable C output.
8498
8499 * src/reader.c (parse_macro_decl): New function used to parse macro
8500 declarations.
8501 (copy_string2): Put the body of copy_string into this new function.
8502 Add a parameter to let the caller choose whether he wants to copy the
8503 string delimiters or not.
8504 (copy_string): Be a simple call to copy_string2 with the last argument
8505 bound to true.
8506 (read_declarations): Add case for macro definition.
8507 (copy_identifier): New.
8508 (parse_macro_decl): Read macro identifiers using copy_identifier
8509 rather than lex.
8510
8511 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8512
8513 * src/output.c (prepare): Add prefixed names.
8514 (output_parser): Output semantic actions.
8515 (output_parser): Fix bug on '%%line' directives.
8516
8517 * src/output.c (output_headers): Remove. The C code printed by this
8518 function should now be in the skeletons.
8519 (output_trailers): Remove.
8520 (output): Disable call to 'reader_output_yylsp'.
8521 (output_rule_data): Do not output tables to the table obstack.
8522
8523 * src/output.c: Remove some C dedicated output.
8524 Improve the use of macro and output obstacks.
8525 (output_defines): Remove.
8526
8527 * src/output.c (output_token_translations): Associate 'translate'
8528 table with a macro. No output to the table obstack.
8529 (output_gram): Same for 'rhs' and 'prhs'.
8530 (output_stos): Same for 'stos'.
8531 (output_rule_data): Same for 'r1' and 'r2'.
8532 (token_actions): Same for 'defact'.
8533 (goto_actions): Same for 'defgoto'.
8534 (output_base): Same for 'pact' and 'pgoto'.
8535 (output_table): Same for 'table'.
8536 (output_check): Same for 'check'.
8537
8538 * src/output.c (output_table_data): New function.
8539 (output_short_table): Remove.
8540 (output_short_or_char_table): Remove.
8541
8542 * src/output.c (output_parser): Replace most of the skeleton copy code
8543 with something new. Skeletons are now processed character by character
8544 rather than line by line, and Bison looks for '%%' macros. This is the
8545 first step in making Bison's output process (a lot) more flexible.
8546 (output_parser): Use the macro table.
8547
8548 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8549
8550 * src/main.c (main): Initialize the macro table.
8551
8552 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8553
8554 * src/lex.c (percent_table): Add tok_define.
8555 * src/lex.h: Add tok_define.
8556
8557 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8558
8559 * src/macrotab.c: New file.
8560 * src/macrotab.h: New file.
8561 * src/Makefile.am: Update.
8562
8563 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8564
8565 * lib/hash.c: New file.
8566 * lib/hash.h: New file.
8567 * lib/Makefile.am: Update.
8568
8569 2001-08-15 Akim Demaille <akim@epita.fr>
8570
8571 Version 1.28c.
8572
8573 2001-08-15 Marc Autret <autret_m@epita.fr>
8574
8575 * src/reader.c (readgram): Indent output macro YYSTYPE.
8576 (packsymbols): Likewise.
8577 (output_token_defines): Likewise.
8578 * src/files.c: Standardize.
8579 (compute_header_macro): New.
8580 (defines_obstack_save): New. Use compute_header_macro.
8581 (output_files): Update. Use defines_obstack_save.
8582
8583 2001-08-15 Akim Demaille <akim@epita.fr>
8584
8585 * doc/bison.texinfo (Table of Symbols): Document
8586 YYSTACK_USE_ALLOCA.
8587
8588 2001-08-15 Akim Demaille <akim@epita.fr>
8589
8590 * missing: Update from CVS Automake.
8591 * config/config.guess, config/config.sub, config/texinfo.tex:
8592 Update from gnu.org.
8593
8594 2001-08-15 Akim Demaille <akim@epita.fr>
8595
8596 * Makefile.maint: Sync with CVS Autoconf.
8597
8598 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
8599
8600 * doc/bison.texinfo: Include GNU Free Documentation License from
8601 `fdl.texi'.
8602 * doc/fdl.texi: Add to package.
8603
8604 2001-08-14 Marc Autret <autret_m@epita.fr>
8605
8606 Turn on %{source,header}_extension features.
8607
8608 * src/lex.c (percent_table): Un-CPP out header_extension and
8609 source_extension.
8610 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
8611 (compute_exts_from_src): Remove conditions. It restores priorities
8612 between options.
8613
8614 2001-08-14 Marc Autret <autret_m@epita.fr>
8615
8616 * src/files.c (compute_base_names): Add extensions computing when
8617 `--file-prefix' used.
8618 Standardize function calls.
8619
8620 2001-08-13 Marc Autret <autret_m@epita.fr>
8621
8622 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
8623 defining it (defined but null disables alloca).
8624
8625 2001-08-13 Marc Autret <autret_m@epita.fr>
8626
8627 * src/bison.simple (_yy_memcpy): CPP reformat.
8628
8629 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
8630
8631 * tests/atconfig.in (CPPFLAGS): Fix.
8632
8633 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
8634
8635 * doc/bison.texinfo: Include GNU General Public License from
8636 `gpl.texi'.
8637 * doc/gpl.texi: Add to package.
8638
8639 2001-08-10 Marc Autret <autret_m@epita.fr>
8640
8641 * src/print_graph.h: Fix.
8642 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
8643
8644 2001-08-10 Akim Demaille <akim@epita.fr>
8645
8646 * src/system.h: Provide default declarations for stpcpy, strndup,
8647 and strnlen.
8648
8649 2001-08-10 Robert Anisko <anisko_r@epita.fr>
8650
8651 * doc/bison.texinfo (Locations): Update @$ stuff.
8652
8653 2001-08-09 Robert Anisko <anisko_r@epita.fr>
8654
8655 * src/bison.simple (YYLLOC_DEFAULT): Update.
8656 (yyparse): Adjust.
8657
8658 2001-08-08 Marc Autret <autret_m@epita.fr>
8659
8660 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
8661 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8662 Reported by Fabrice Bauzac.
8663
8664 2001-08-08 Marc Autret <autret_m@epita.fr>
8665
8666 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
8667 * src/vcg.c (output_node): Fix.
8668 * src/vcg.h: Cleanup.
8669 * src/print_graph.c: Add comments.
8670 (node_output_size): New global variable. Simplify the formatting of
8671 the VCG graph output.
8672 (print_actions): Unused code is now used. It notifies the final state
8673 and no action states in the VCG graph. It also give the reduce actions.
8674 The `shift and goto' edges are red and the `go to state' edges are
8675 blue.
8676 Get the current node name and node_obstack by argument.
8677 (node_obstack): New variable.
8678 (print_state): Manage node_obstack.
8679 (print_core): Use node_obstack given by argument.
8680 A node is not only computed here but in print_actions also.
8681 (print_graph): CPP out useless code instead of commenting it.
8682
8683 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
8684
8685 * tests/atconfig.in (CPPFLAGS): Fix.
8686
8687 2001-08-07 Akim Demaille <akim@epita.fr>
8688
8689 * src/print_graph.c (quote): New.
8690 (print_core): Use it.
8691
8692 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
8693
8694 * src/vcg.c (complain.h): Include it.
8695 Unepitaize `return' invocations.
8696 [NDEBUG] (main): Remove.
8697 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
8698 * src/files.c (open_files): Initialize graph_obstack.
8699 * src/print_graph.c (print_actions): CPP out useless code.
8700 (print_core): Don't output the last `\n' in labels.
8701 Use `quote'.
8702 * src/files.c (output_files): Output the VCG file.
8703 * src/main.c (main): Invoke print_graph ();
8704
8705 2001-08-06 Marc Autret <autret_m@epita.fr>
8706
8707 Automaton VCG graph output.
8708 Using option ``-g'' or long option ``--graph'', you can generate
8709 a gram_filename.vcg file containing a VCG description of the LALR (1)
8710 automaton of your grammar.
8711
8712 * src/main.c: Call to print_graph() function.
8713 * src/getargs.h: Update.
8714 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
8715 (graph_flag): New flag.
8716 (longopts): Update.
8717 (getargs): Add case `g'.
8718 * src/files.c (graph_obstack): New obstack struct.
8719 (open_files): Initialize new obstack.
8720 (output_files): Saves graph_obstack if required.
8721 * src/files.h (graph_obstack): New extern declaration.
8722 * src/Makefile.am: Add new source files.
8723
8724 2001-08-06 Marc Autret <autret_m@epita.fr>
8725
8726 * src/print_graph.c, src/print_graph.h (graph): New.
8727 * src/vcg.h: New file.
8728 * src/vcg.c: New file, VCG graph handling.
8729
8730 2001-08-06 Marc Autret <autret_m@epita.fr>
8731
8732 Add of %source_extension and %header_extension which specify
8733 the source or/and the header output file extension.
8734
8735 * src/files.c (compute_base_names): Remove initialisation of
8736 src_extension and header_extension.
8737 (compute_exts_from_gf): Update.
8738 (compute_exts_from_src): Update.
8739 (output_files): Update.
8740 * src/reader.c (parse_header_extension_decl): New.
8741 (parse_source_extension_decl): New.
8742 (read_declarations): New case statements for the new tokens.
8743 * src/lex.c (percent_table): Add entries for %source_extension
8744 and %header_extension.
8745 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
8746
8747 2001-08-06 Marc Autret <autret_m@epita.fr>
8748
8749 * configure.in: Bump to 1.28c.
8750 * doc/bison.texinfo: Texinfo thingies.
8751
8752 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
8753
8754 * tests/atconfig.in (CPPFLAGS): Add.
8755 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8756
8757 2001-08-03 Akim Demaille <akim@epita.fr>
8758
8759 Version 1.28b.
8760
8761 2001-08-03 Akim Demaille <akim@epita.fr>
8762
8763 * tests/Makefile.am (check-local): Ship testsuite.
8764 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
8765 Include `string.h'.
8766
8767 2001-08-03 Akim Demaille <akim@epita.fr>
8768
8769 * configure.in: Try using -Wformat when compiling.
8770
8771 2001-08-03 Akim Demaille <akim@epita.fr>
8772
8773 * configure.in: Bump to 1.28b.
8774
8775 2001-08-03 Akim Demaille <akim@epita.fr>
8776
8777 * src/complain.c: Adjust strerror_r portability issues.
8778
8779 2001-08-03 Akim Demaille <akim@epita.fr>
8780
8781 Version 1.28a.
8782
8783 2001-08-03 Akim Demaille <akim@epita.fr>
8784
8785 * src/getargs.c, src/getarg.h (skeleton)): Constify.
8786 * src/lex.c (literalchar): Avoid name clashes on `buf'.
8787 * src/getargs.c: Include complain.h.
8788 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
8789 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
8790
8791 2001-08-03 Akim Demaille <akim@epita.fr>
8792
8793 * src/reader.c (readgram): Display hidden chars in error messages.
8794
8795 2001-08-03 Akim Demaille <akim@epita.fr>
8796
8797 Update to gettext 0.10.39.
8798
8799 2001-08-03 Akim Demaille <akim@epita.fr>
8800
8801 * lib/strspn.c: New.
8802
8803 2001-08-01 Marc Autret <autret_m@epita.fr>
8804
8805 * doc/bison.texinfo: Update.
8806 * doc/bison.1 (mandoc): Update.
8807 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
8808 * src/files.c: Support output files extensions computing.
8809 (src_extension): New static variable.
8810 (header_extension): New static variable.
8811 (tr): New function.
8812 (get_extension_index): New function, gets the index of an extension
8813 filename in a string.
8814 (compute_exts_from_gf): New function, computes extensions from the
8815 grammar file extension.
8816 (compute_exts_from_src): New functions, computes extensions from the
8817 C source file extension, file given by ``-o'' option.
8818 (compute_base_names): Update.
8819 (output_files): Update.
8820
8821 2001-08-01 Robert Anisko <anisko_r@epita.fr>
8822
8823 * doc/bison.texi: Document @$.
8824 (Locations): New section.
8825
8826 2001-07-18 Akim Demaille <akim@epita.fr>
8827
8828 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
8829 * config/prev-version.txt, config/move-if-change: New.
8830 * Makefile.am: Adjust.
8831
8832 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
8833
8834 * src/bison.simple (yyparse): Suppress warning `comparaison
8835 between signed and unsigned'.
8836
8837 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
8838
8839 * src/getargs.h (raw_flag): Remove.
8840 * src/getargs.c: Die on `-r'/`--raw'.
8841 * src/lex.c (parse_percent_token): Die on `%raw'.
8842 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
8843 * tests/calc.at: Suppress test with option `--raw'.
8844
8845 2001-07-14 Akim Demaille <akim@epita.fr>
8846
8847 * config/: New.
8848 * configure.in: Require Autoconf 2.50.
8849 Update to gettext 0.10.38.
8850
8851 2001-03-16 Akim Demaille <akim@epita.fr>
8852
8853 * doc/bison.texinfo: ANSIfy the examples.
8854
8855 2001-03-16 Akim Demaille <akim@epita.fr>
8856
8857 * getargs.c (skeleton): New variable.
8858 (longopts): --skeleton is a new option.
8859 (shortopts, getargs): -S is a new option.
8860 * getargs.h: Declare skeleton.
8861 * output.c (output_parser): Use it.
8862
8863 2001-03-16 Akim Demaille <akim@epita.fr>
8864
8865 * m4/strerror_r.m4: New.
8866 * m4/error.m4: Run AC_FUNC_STRERROR_R.
8867 * lib/error.h, lib/error.c: Update.
8868
8869 2001-03-16 Akim Demaille <akim@epita.fr>
8870
8871 * src/getargs.c (longopts): Clean up.
8872
8873 2001-02-21 Akim Demaille <akim@epita.fr>
8874
8875 * src/reader.c (gensym): `gensym_count' is your own.
8876 Use a static buf to create the symbol name, as token_buffer is no
8877 longer a buffer.
8878
8879 2001-02-08 Akim Demaille <akim@epita.fr>
8880
8881 * src/conflicts.c (conflict_report): Be sure not to append to res
8882 between two calls, which could happen if both first sprintf were
8883 skipped, but not the first cp += strlen.
8884
8885 2001-02-08 Akim Demaille <akim@epita.fr>
8886
8887 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
8888 New, from fileutils 4.0.37.
8889 * configure.in: Require Autoconf 2.49c. I took some time before
8890 making this decision. This is the only way out for portability
8891 issues in Bison, it would mean way too much duplicate effort to
8892 import in Bison features implemented in 2.49c since 2.13.
8893 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
8894
8895 2001-02-02 Akim Demaille <akim@epita.fr>
8896
8897 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
8898 * lib/xalloc.h, lib/xmalloc.c: Update.
8899
8900 2001-01-19 Akim Demaille <akim@epita.fr>
8901
8902 Get rid of the ad hoc handling of token_buffer in the scanner: use
8903 the obstacks.
8904
8905 * src/lex.c (token_obstack): New.
8906 (init_lex): Initialize it. No longer call...
8907 (grow_token_buffer): this. Remove it.
8908 Adjust all the places which used it to use the obstack.
8909
8910 2001-01-19 Akim Demaille <akim@epita.fr>
8911
8912 * src/lex.h: Rename all the tokens:
8913 s/\bENDFILE\b/tok_eof/g;
8914 s/\bIDENTIFIER\b/tok_identifier/g;
8915 etc.
8916 Let them be enums, not #define, to ease debugging.
8917 Adjust all the code.
8918
8919 2001-01-18 Akim Demaille <akim@epita.fr>
8920
8921 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
8922 * src/lex.c (maxtoken, grow_token_buffer): Static.
8923
8924 2001-01-18 Akim Demaille <akim@epita.fr>
8925
8926 Since we now use obstacks, more % directives can be enabled.
8927
8928 * src/lex.c (percent_table): Also accept `%yacc',
8929 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
8930 `%debug'.
8931 Handle the actions for `%semantic_parser' and `%pure_parser' here,
8932 instead of returning a token.
8933 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
8934 * src/reader.c (read_declarations): Adjust.
8935 * src/files.c (open_files): Don't call `compute_base_names', don't
8936 compute `attrsfile' since they depend upon data which might be
8937 *in* the input file now.
8938 (output_files): Do it here.
8939 * src/output.c (output_headers): Document the fact that this patch
8940 introduces a guaranteed SEGV for semantic parsers.
8941 * doc/bison.texinfo: Document them.
8942 * tests/suite.at: Exercise these %options.
8943
8944 2000-12-20 Akim Demaille <akim@epita.fr>
8945
8946 Also handle the output file (--verbose) with obstacks.
8947
8948 * files.c (foutput): Remove.
8949 (output_obstack): New.
8950 Adjust all dependencies.
8951 * src/conflicts.c: Return a string.
8952 * src/system.h (obstack_grow_string): Rename as...
8953 (obstack_sgrow): this. Be ready to work with non literals.
8954 (obstack_fgrow4): New.
8955
8956 2000-12-20 Akim Demaille <akim@epita.fr>
8957
8958 * src/files.c (open_files): Fix the computation of short_base_name
8959 in the case of `-o foo.tab.c'.
8960
8961 2000-12-20 Akim Demaille <akim@epita.fr>
8962
8963 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
8964 (copy_dollar): Now that everything uses obstacks, get rid of the
8965 FILE * parameters.
8966
8967 2000-12-20 Akim Demaille <akim@epita.fr>
8968
8969 * src/files.c (open_files): Actually the `.output' file is based
8970 on the short_base_name, not base_name.
8971 * tests/suite.at (Checking output file names): Adjust.
8972
8973 2000-12-20 Akim Demaille <akim@epita.fr>
8974
8975 * src/bison.s1: Remove, we now use directly...
8976 * src/bison.simple: this.
8977 * src/Makefile.am: Use pkgdata instead of data.
8978
8979 2000-12-20 Akim Demaille <akim@epita.fr>
8980
8981 * src/files.c (guard_obstack): New.
8982 (open_files): Initialize it.
8983 (output_files): Dump it...
8984 * src/files.h: Export it.
8985 * src/reader.c (copy_guard): Use it.
8986
8987 2000-12-19 Akim Demaille <akim@epita.fr>
8988
8989 * src/files.c (outfile, defsfile, actfile): Removed as global
8990 vars.
8991 (open_files): Don't compute them.
8992 (output_files): Adjust.
8993 (base_name, short_base_name): Be global.
8994 Adjust dependencies.
8995
8996 2000-12-19 Akim Demaille <akim@epita.fr>
8997
8998 * src/files.c (strsuffix): New.
8999 (stringappend): Be just like strcat but allocate.
9000 (base_names): Eve out from open_files.
9001 Try to simplify the rather hairy computation of base_name and
9002 short_base_name.
9003 (open_files): Use it.
9004 * tests/suite.at (Checking output file names): New test.
9005
9006 2000-12-19 Akim Demaille <akim@epita.fr>
9007
9008 * src/system.h (obstack_grow_literal_string): Rename as...
9009 (obstack_grow_string): this.
9010 * src/output.c (output_parser): Recognize `%% actions' instead of
9011 `$'.
9012 * src/bison.s1: s/$/%% actions/.
9013 * src/bison.hairy: Likewise.
9014
9015 2000-12-19 Akim Demaille <akim@epita.fr>
9016
9017 * src/output.c (output_parser): Compute the `#line' lines when
9018 there are.
9019 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9020 Suggested by Hans Aberg.
9021
9022 2000-12-19 Akim Demaille <akim@epita.fr>
9023
9024 Let the handling of the skeleton files be local to the procedures
9025 that use it.
9026
9027 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9028 longer static.
9029 (fparser, open_extra_files): Remove.
9030 (open_files, output_files): Don't take care of fparser.
9031 * src/files.h: Adjust.
9032 * src/output.c (output_parser): Open and close the file to the
9033 skeleton.
9034 * src/reader.c (read_declarations): When %semantic_parser, open
9035 fguard.
9036
9037 2000-12-19 Akim Demaille <akim@epita.fr>
9038
9039 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9040 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9041
9042 2000-12-19 Akim Demaille <akim@epita.fr>
9043
9044 * src/files.c (open_files): Yipee! We no longer need all the code
9045 looking for `/tmp' since we have no tmp file.
9046
9047 2000-12-19 Akim Demaille <akim@epita.fr>
9048
9049 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9050 New macros.
9051 * src/files.c (open_files): Less dependency on MSDOS etc.
9052
9053 2000-12-14 Akim Demaille <akim@epita.fr>
9054
9055 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9056 Provide a default definition.
9057 Use it when executing the default @ action.
9058 * src/reader.c (reader_output_yylsp): No longer include
9059 `timestamp' and `text' in the default YYLTYPE.
9060
9061 2000-12-12 Akim Demaille <akim@epita.fr>
9062
9063 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9064 (copy_guard): Quote the file names.
9065 Reported by Laurent Mascherpa.
9066
9067 2000-12-12 Akim Demaille <akim@epita.fr>
9068
9069 * src/output.c (output_headers, output_program, output): Be sure
9070 to escape special characters when outputting filenames.
9071 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9072 (output_headers): Don't depend on them, Use ACTSTR.
9073
9074 2000-11-17 Akim Demaille <akim@epita.fr>
9075
9076 * lib/obstack.h: Formatting changes.
9077 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9078 prevents type checking.
9079 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9080 cast the value to (void *): assigning a `foo *' to a `void *'
9081 variable is valid.
9082 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9083 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9084 append characters.
9085
9086 2000-11-17 Akim Demaille <akim@epita.fr>
9087
9088 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9089 as...
9090 (suite.m4, regression.m4, calc.m4): these.
9091 * tests/atgeneral.m4: Update from CVS Autoconf.
9092
9093 2000-11-17 Akim Demaille <akim@epita.fr>
9094
9095 * tests/regression.m4 (%union and --defines): New test,
9096 demonstrating a current bug in the obstack implementation.
9097
9098 2000-11-17 Akim Demaille <akim@epita.fr>
9099
9100 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9101 macros.
9102 Use them to declare the variables which are global or local to
9103 `yyparse'.
9104
9105 2000-11-17 Akim Demaille <akim@epita.fr>
9106
9107 * acconfig.h: Remove, no longer used.
9108
9109 2000-11-07 Akim Demaille <akim@epita.fr>
9110
9111 * src: s/Copyright (C)/Copyright/g.
9112
9113 2000-11-07 Akim Demaille <akim@epita.fr>
9114
9115 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9116 defining.
9117 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9118
9119 2000-11-07 Akim Demaille <akim@epita.fr>
9120
9121 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9122 Merge in a single CPP if/else.
9123
9124 2000-11-07 Akim Demaille <akim@epita.fr>
9125
9126 * src/output.c (output): Remove useless variables.
9127 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9128 argument `data' for consistency with the prototypes.
9129 Qualify it `const'.
9130 (obstack_copy, obstack_copy0): Rename the second argument as
9131 `address' for consistency. Qualify it `const'.
9132 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9133 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9134 `const' their input argument (`data' or `address').
9135 Adjust the corresponding macros to include `const' in casts.
9136
9137 2000-11-03 Akim Demaille <akim@epita.fr>
9138
9139 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9140 s/PFILE1/BISON_HAIRY/.
9141 Adjust dependencies.
9142
9143 2000-11-03 Akim Demaille <akim@epita.fr>
9144
9145 For some reason, this was not applied.
9146
9147 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9148 `unlink': it's no longer used.
9149
9150 2000-11-03 Akim Demaille <akim@epita.fr>
9151
9152 * src/files.c (skeleton_find): New function, eved out of...
9153 (open_files, open_extra_files): here.
9154
9155 2000-11-03 Akim Demaille <akim@epita.fr>
9156
9157 Don't use `atexit'.
9158
9159 * src/files.c (obstack_save): New function.
9160 (done): Rename as...
9161 (output_files): this.
9162 Use `obstack_save'.
9163 * src/main.c (main): Don't use `atexit' to register `done', since
9164 it no longer has to remove tmp files, just call `output_files'
9165 when there are no errors.
9166
9167 2000-11-02 Akim Demaille <akim@epita.fr>
9168
9169 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9170 `unlink': it's no longer used.
9171 * src/files.h: Formatting changes.
9172
9173 2000-11-02 Akim Demaille <akim@epita.fr>
9174
9175 Remove the last uses of mktemp and unlink/delete.
9176
9177 * src/files.c (fdefines, ftable): Removed.
9178 (defines_ostack, table_obstack): New.
9179 Adjust dependencies of the former into uses of the latter.
9180 * src/output.c (output_short_or_char_table, output_short_table):
9181 Convert to using obstacks.
9182 * src/reader.c (copy_comment2): Accept one FILE * and two
9183 obstacks.
9184 (output_token_defines, reader_output_yylsp): Use obstacks.
9185 * src/system.h (obstack_fgrow3): New.
9186
9187 2000-11-01 Akim Demaille <akim@epita.fr>
9188
9189 Change each use of `fattrs' into a use of `attrs_obstack'.
9190
9191 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9192 * src/files.c (fattrs): Remove.
9193 (attrs_obstack): New.
9194 Adjust all dependencies.
9195 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9196
9197 2000-11-01 Akim Demaille <akim@epita.fr>
9198
9199 Introduce obstacks.
9200 Change each use of `faction' into a use of `action_obstack'.
9201
9202 * lib/obstack.h, lib/obstack.c: New files.
9203 * src/files.c (faction): Remove.
9204 (action_obstack): New.
9205 Adjust all dependencies.
9206
9207 2000-10-20 Akim Demaille <akim@epita.fr>
9208
9209 * lib/quote.h (PARAMS): New macro. Use it.
9210
9211 2000-10-16 Akim Demaille <akim@epita.fr>
9212
9213 * src/output.c (output_short_or_char_table): New function.
9214 (output_short_table, output_token_translations): Use it.
9215 (goto_actions): Use output_short_table.
9216
9217 2000-10-16 Akim Demaille <akim@epita.fr>
9218
9219 * src/symtab.c (bucket_new): New function.
9220 (getsym): Use it.
9221
9222 * src/output.c (output_short_table): New argument to display the
9223 comment associated with the table.
9224 Adjust dependencies.
9225 (output_gram): Use it.
9226 (output_rule_data): Nicer output layout for YYTNAME.
9227
9228 2000-10-16 Akim Demaille <akim@epita.fr>
9229
9230 * src/lex.c (read_typename): New function.
9231 (lex): Use it.
9232 * src/reader.c (copy_dollar): Likewise.
9233
9234 2000-10-16 Akim Demaille <akim@epita.fr>
9235
9236 * src/reader.c (copy_comment2): Expect the input stream to be on
9237 the `/' which is suspected to open a comment, instead of being
9238 called after `//' or `/*' was read.
9239 (copy_comment, copy_definition, parse_union_decl, copy_action)
9240 (copy_guard): Adjust.
9241
9242 2000-10-16 Akim Demaille <akim@epita.fr>
9243
9244 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9245 `read_signed_integer'.
9246
9247 2000-10-16 Akim Demaille <akim@epita.fr>
9248
9249 * src/reader.c (copy_dollar): New function.
9250 (copy_guard, copy_action): Use it.
9251
9252 2000-10-16 Akim Demaille <akim@epita.fr>
9253
9254 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9255 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9256 New files, from Fileutils 4.0.27.
9257 * src/main.c (printable_version): Remove.
9258 * src/lex.c, src/reader.c: Use `quote'.
9259
9260 2000-10-04 Akim Demaille <akim@epita.fr>
9261
9262 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9263
9264 2000-10-04 Akim Demaille <akim@epita.fr>
9265
9266 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9267
9268 2000-10-04 Akim Demaille <akim@epita.fr>
9269
9270 When a literal string is used to define two different tokens,
9271 `bison -v' segfaults.
9272 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9273
9274 * tests/regression.m4: New file.
9275 Include the core of the sample provided by Piotr Gackiewicz.
9276 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9277 properly.
9278
9279 2000-10-04 Akim Demaille <akim@epita.fr>
9280
9281 * src/reader.c (parse_expect_decl): Keep `count' within the size
9282 of `buffer'.
9283 From Neil Booth.
9284
9285 2000-10-02 Paul Eggert <eggert@twinsun.com>
9286
9287 * bison.s1 (yyparse): Assign the default value
9288 unconditionally, to avoid a GCC warning and make the parser a
9289 tad smaller.
9290
9291 2000-10-02 Akim Demaille <akim@epita.fr>
9292
9293 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9294 options.
9295
9296 2000-10-02 Akim Demaille <akim@epita.fr>
9297
9298 * src/derives.c, src/print.c, src/reduce.c: To ease the
9299 translation, move some `\n' out of the translated strings.
9300
9301 2000-10-02 Akim Demaille <akim@epita.fr>
9302
9303 The location tracking mechanism is precious for parse error
9304 messages. Nevertheless, it is enabled only when `@n' is used in
9305 the grammar, which is a different issue (you can use it in error
9306 message, but not in the grammar per se). Therefore, there should
9307 be another means to enable it.
9308
9309 * src/getargs.c (getargs): Support `--locations'.
9310 (usage): Report it.
9311 * src/getargs.h (locationsflag): Export it.
9312 * src/lex.c (percent_table): Support `%locations'.
9313 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9314 with `locationsflag'.
9315 * doc/bison.texinfo: Document `--locations' and `%locations'.
9316 Sort the options.
9317 * tests/calc.m4: Test it.
9318
9319 For regularity of the names, replace each
9320 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9321 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9322 In addition replace each `flag' with `_flag'.
9323
9324 2000-10-02 Akim Demaille <akim@epita.fr>
9325
9326 Also test parse error messages, including with YYERROR_VERBOSE.
9327
9328 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9329 associative).
9330 Use it to check the computations.
9331 Use it to check `nonassoc' is honored.
9332 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9333 `--yyerror-verbose'.
9334 (_AT_CHECK_CALC): Adjust to this option.
9335 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9336
9337 2000-10-02 Akim Demaille <akim@epita.fr>
9338
9339 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9340 the latter demonstrates a flaw in the handling of non debugging
9341 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9342 was used in order to simplify:
9343
9344 #if YYDEBUG
9345 if (yydebug)
9346 {
9347 ...
9348 }
9349 #endif
9350
9351 into
9352
9353 if (yydebug)
9354 {
9355 ...
9356 }
9357
9358 unfortunately this leads to a CPP conflict when
9359 `--name-prefix=foo' is used since it produces `#define yydebug
9360 foodebug'.
9361
9362 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9363 (YYDPRINTF): New macro.
9364 Spread its use.
9365 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9366 the bison options.
9367 Also test `--verbose', `--defines' and `--name-prefix'.
9368
9369 2000-10-02 Akim Demaille <akim@epita.fr>
9370
9371 Improve the readability of the produced parsers.
9372
9373 * src/bison.s1: Formatting changes.
9374 Improve the comment related to the `$' mark.
9375 (yydefault): Don't fall through to `yyresume': `goto' there.
9376 * src/output.c (output_parser): When the `$' is met, skip the end
9377 of its line.
9378 New variable, `number_of_dollar_signs', to check there's exactly
9379 one `$' in the parser skeleton.
9380
9381 2000-10-02 Akim Demaille <akim@epita.fr>
9382
9383 * lib/xstrdup.c: New file, from the fileutils.
9384 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9385 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9386 instead of strlen + xmalloc + strcpy.
9387 * src/symtab.c (copys): Remove, use xstrdup instead.
9388
9389 2000-10-02 Akim Demaille <akim@epita.fr>
9390
9391 * src/gram.h (associativity): New enum type which replaces the
9392 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9393 `right_assoc', `left_assoc' and `non_assoc'.
9394 Adjust all dependencies.
9395 * src/reader.c: Formatting changes.
9396 (LTYPESTR): Don't define it, use it as a literal in
9397 `reader_output_yylsp'.
9398 * src/symtab.h (symbol_class): New enum type which replaces the
9399 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9400 `sunknown', `stoken and `snterm'.
9401
9402 2000-10-02 Akim Demaille <akim@epita.fr>
9403
9404 * src/getargs.c (fixed_outfiles): Rename as...
9405 (yaccflag): for consistency and accuracy.
9406 Adjust dependencies.
9407
9408 2000-10-02 Akim Demaille <akim@epita.fr>
9409
9410 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9411 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9412 difficult and introduced a lot of core dump. It turns out that
9413 Bison used an implementation of `xmalloc' based on `calloc', and
9414 at various places it does depend upon the initialization to 0. I
9415 have not tried to isolate the pertinent places, and all the former
9416 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9417 someone should address this issue.
9418
9419 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9420 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9421 files.
9422 Adjust dependencies.
9423 * src/warshall.h: New file.
9424 Propagate.
9425
9426 2000-10-02 Akim Demaille <akim@epita.fr>
9427
9428 Various anti-`extern in *.c' changes.
9429
9430 * src/system.h: Include `assert.h'.
9431
9432 2000-10-02 Akim Demaille <akim@epita.fr>
9433
9434 * src/state.h (nstates, final_state, first_state, first_shift)
9435 (first_reduction): Move their exportation from here...
9436 * src/LR0.h: to here.
9437 Adjust dependencies.
9438 * src/getargs.c (statisticsflag): New variable.
9439 Add support for `--statistics'.
9440 Adjust dependencies.
9441
9442 Remove a lot of now useless `extern' statements in most files.
9443
9444 2000-10-02 Akim Demaille <akim@epita.fr>
9445
9446 * src/LR0.h: New file.
9447 Propagate its use.
9448
9449 2000-10-02 Akim Demaille <akim@epita.fr>
9450
9451 * src/print.h: New file.
9452 Propagate its use.
9453 * src/print.c: Formatting and ordering changes.
9454 (verbose, terse): Replace with...
9455 (print_results): this new function.
9456 Adjust dependencies.
9457
9458 2000-10-02 Akim Demaille <akim@epita.fr>
9459
9460 * src/conflicts.c (conflict_report): New function.
9461 (conflict_log, verbose_conflict_log): Replace with...
9462 (print_conflicts): this function.
9463 Adjust dependencies.
9464 * src/conflicts.h: New file.
9465 Propagate its inclusion.
9466
9467 2000-10-02 Akim Demaille <akim@epita.fr>
9468
9469 * src/nullable.h: New file.
9470 Propagate its inclusion.
9471 * src/nullable.c: Formatting changes.
9472
9473 2000-10-02 Akim Demaille <akim@epita.fr>
9474
9475 * src/reduce.h: New file.
9476 Propagate its inclusion.
9477 * src/reduce.c: Topological sort and other formatting changes.
9478 (bool, TRUE, FALSE): Move their definition to...
9479 * src/system.h: here.
9480
9481 2000-10-02 Akim Demaille <akim@epita.fr>
9482
9483 * src/files.c: Formatting changes.
9484 (tryopen, tryclose, openfiles): Rename as...
9485 (xfopen, xfclose, open_files): this.
9486 (stringappend): static.
9487 * src/files.h: Complete the list of exported symbols.
9488 Propagate its use.
9489
9490 2000-10-02 Akim Demaille <akim@epita.fr>
9491
9492 * src/reader.h: New file.
9493 Propagate its use instead of tedious list of `extern' and
9494 prototypes.
9495 * src/reader.c: Formatting changes, topological sort,
9496 s/register//.
9497
9498 2000-10-02 Akim Demaille <akim@epita.fr>
9499
9500 * src/lex.h: Prototype `lex.c' exported functions.
9501 * src/reader.c: Adjust.
9502 * src/lex.c: Formatting changes.
9503 (safegetc): Rename as...
9504 (xgetc): this.
9505
9506 2000-10-02 Akim Demaille <akim@epita.fr>
9507
9508 * src/lalr.h: New file.
9509 Propagate its inclusion instead of prototypes and `extern'.
9510 * src/lalr.c: Formatting changes, topological sorting etc.
9511
9512 2000-10-02 Akim Demaille <akim@epita.fr>
9513
9514 * src/output.c (token_actions): Introduce a temporary array,
9515 YYDEFACT, that makes it possible for this function to use
9516 output_short_table.
9517
9518 2000-10-02 Akim Demaille <akim@epita.fr>
9519
9520 `user_toknums' is output as a `short[]' in `output.c', while it is
9521 defined as a `int[]' in `reader.c'. For consistency with the
9522 other output tables, `user_toknums' is now defined as a table of
9523 shorts.
9524
9525 * src/reader.c (user_toknums): Be a short table instead of an int
9526 table.
9527 Adjust dependencies.
9528
9529 Factor the short table outputs.
9530
9531 * src/output.c (output_short_table): New function.
9532 * src/output.c (output_gram, output_stos, output_rule_data)
9533 (output_base, output_table, output_check): Use it.
9534
9535 2000-10-02 Akim Demaille <akim@epita.fr>
9536
9537 * src/output.c (output): Topological sort of the functions, in
9538 order to get rid of the `static' prototypes.
9539 No longer use `register'.
9540 * src/output.h: New file.
9541 Propagate its inclusion in files explicitly prototyping functions
9542 from output.c.
9543
9544 2000-09-21 Akim Demaille <akim@epita.fr>
9545
9546 * src/atgeneral.m4: Update from Autoconf.
9547
9548 2000-09-21 Akim Demaille <akim@epita.fr>
9549
9550 * src/closure.h: New file.
9551 * src/closure.c: Formatting changes, topological sort over the
9552 functions, use of closure.h.
9553 (initialize_closure, finalize_closure): Rename as...
9554 (new_closure, free_closure): these. Adjust dependencies.
9555 * src/LR0.c: Formatting changes, topological sort, use of
9556 cloture.h.
9557 (initialize_states): Rename as...
9558 (new_states): this.
9559 * src/Makefile.am (noinst_HEADERS): Adjust.
9560
9561 2000-09-20 Akim Demaille <akim@epita.fr>
9562
9563 * src/acconfig.h: Don't protect config.h against multiple
9564 inclusion.
9565 Don't define PARAMS.
9566 * src/system.h: Define PARAMS.
9567 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9568 purpose of config.h. system.h must not try to fix wrong
9569 definitions in config.h.
9570
9571 2000-09-20 Akim Demaille <akim@epita.fr>
9572
9573 * src/derives.h: New file.
9574 * src/main.c, src/derives.h: Use it.
9575 Formatting changes.
9576 * src/Makefile.am (noinst_HEADERS): Adjust.
9577
9578 2000-09-20 Akim Demaille <akim@epita.fr>
9579
9580 * tests/atgeneral.m4: Update from Autoconf.
9581 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9582 (AT_CHECK_CALC): New macros.
9583 Use these macros to test bison with options `', `--raw',
9584 `--debug', `--yacc', `--yacc --debug'.
9585
9586 2000-09-19 Akim Demaille <akim@epita.fr>
9587
9588 * src/output.c: Formatting changes.
9589 * src/machine.h: Remove, leaving its contents in...
9590 * src/system.h: here.
9591 Include stdio.h.
9592 Adjust all dependencies on stdio.h and machine.h.
9593 * src/getargs.h: New file.
9594 Let all `extern' declarations about getargs.c be replaced with
9595 inclusion of `getargs.h'.
9596 * src/Makefile.am (noinst_HEADERS): Adjust.
9597
9598 * tests/calc.m4 (yyin): Be initialized in main, not on the global
9599 scope.
9600 (yyerror): Returns void, not int.
9601 * doc/bison.texinfo: Formatting changes.
9602
9603 2000-09-19 Akim Demaille <akim@epita.fr>
9604
9605 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
9606 portable.
9607
9608 2000-09-18 Akim Demaille <akim@epita.fr>
9609
9610 * configure.in: Append WARNING_CFLAGS to CFLAGS.
9611 * src/Makefile.am (INCLUDES): Don't.
9612 Be ready to fetch headers in lib/.
9613
9614 2000-09-18 Akim Demaille <akim@epita.fr>
9615
9616 * doc/bison.texinfo: Update the copyright.
9617 ANSIfy and GNUify the examples.
9618 Remove the old menu.
9619
9620 2000-09-18 Akim Demaille <akim@epita.fr>
9621
9622 First set of tests: use the `calc' example from the documentation.
9623
9624 * src/bison.s1 (yyparse): Condition the code using `yytname' which
9625 is defined only when YYDEBUG is.
9626 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
9627 * src/files.c (tryopen, tryclose): Formatting changes.
9628 Move to the top and be static.
9629 * src/reader.c (read_signed_integer): Likewise.
9630 * tests/calc.m4: New file.
9631 * Makefile.am, suite.m4: Adjust.
9632 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
9633
9634 2000-09-18 Akim Demaille <akim@epita.fr>
9635
9636 Add support for an Autotest test suite for Bison.
9637
9638 * m4/m4.m4, m4/atconfig.m4: New files.
9639 * m4/Makefile.am (EXTRA_DIST): Adjust.
9640 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
9641 files.
9642 * src/getargs.c: Display a more standard --version message.
9643 * src/reader.c (reader): Formatting changes.
9644 No longer depend upon VERSION_STRING.
9645 * configure.in: No longer use `dnl'.
9646 Set up the test suite and the new directory `tests/.
9647 (VERSION_STRING): Remove.
9648
9649 2000-04-14 Akim Demaille <akim@epita.fr>
9650
9651 * src/reader.c (copy_comment2): New function, same as former
9652 `copy_comment', but outputs into two FILE *.
9653 (copy_comment): Use it.
9654 (parse_union_decl): Use it.
9655 (get_type, parse_start_decl): Use the same `invalid' message.
9656 (parse_start_decl, parse_union_decl): Use the same `multiple'
9657 message.
9658 (parse_union_decl, copy_guard, copy_action): Use the same
9659 `unmatched' message.
9660 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
9661
9662 2000-03-31 Akim Demaille <akim@epita.fr>
9663
9664 * src/files.c (tryopen, tryclose): Move to the top.
9665 Be static.
9666
9667 2000-03-31 Akim Demaille <akim@epita.fr>
9668
9669 * src/main.c (main): Don't call `done', exit does it.
9670
9671 2000-03-31 Akim Demaille <akim@epita.fr>
9672
9673 * allocate.c: s/return (foo)/return foo/.
9674 * lalr.c: Likewise.
9675 * LR0.c: Likewise.
9676 * output.c: Likewise.
9677 * reader.c: Likewise.
9678 * symtab.c: Likewise.
9679 * vmsgetargs.c: Likewise.
9680
9681 2000-03-31 Akim Demaille <akim@epita.fr>
9682
9683 Clean up the error reporting functions.
9684
9685 * src/report.c: New file.
9686 * src/report.h: Likewise.
9687 * src/Makefile.am: Adjust.
9688 * m4/error.m4: New file.
9689 * m4/Makefile.am: Adjust.
9690 * configure.in (jm_PREREQ_ERROR): Call it.
9691 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
9692 Remove.
9693 (fatal, fatals): Remove. All callers use complain.c::fatal.
9694 (warn, warni, warns, warnss, warnss): Remove. All callers use
9695 complain.c::complain.
9696 (toomany): Remove, use fatal instead.
9697 * src/files.c (done): No argument, use complain_message_count.
9698 * src/main.c (main): Register `done' to `atexit'.
9699
9700 * src/getargs.c (usage): More `fputs', less `fprintf'.
9701
9702 2000-03-28 Akim Demaille <akim@epita.fr>
9703
9704 * lib/: New directory.
9705 * Makefile.am (SUBDIRS): Adjust.
9706 * configure.in: Adjust.
9707 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
9708 useless.
9709 * src/alloca.c: Moved to lib/.
9710 * src/getopt.c: Likewise.
9711 * src/getopt1.c: Likewise.
9712 * src/getopt.h: Likewise.
9713 * src/ansi2knr.c: Likewise.
9714 * src/ansi2knr.1: Likewise.
9715 * src/Makefile.am: Adjust.
9716 * lib/Makefile.am: New file.
9717
9718 2000-03-28 Akim Demaille <akim@epita.fr>
9719
9720 * src/getargs.c (usage): Refresh the help message.
9721
9722 2000-03-17 Akim Demaille <akim@epita.fr>
9723
9724 * src/getopt1.c: Updated from textutils 2.0e
9725 * src/getopt.c: Likewise.
9726 * src/getopt.h: Likewise.
9727
9728 2000-03-17 Akim Demaille <akim@epita.fr>
9729
9730 * src/Makefile.am (bison.simple): Fix the awk program: quote only
9731 the file name, not the whole `#line LINE FILE'.
9732
9733 2000-03-17 Akim Demaille <akim@epita.fr>
9734
9735 On syntax errors, report the token on which we choked.
9736
9737 * src/bison.s1 (yyparse): In the label yyerrlab, when
9738 YYERROR_VERBOSE, add yychar in msg.
9739
9740 2000-03-17 Akim Demaille <akim@epita.fr>
9741
9742 * src/reader.c (copy_at): New function.
9743 (copy_guard): Use it.
9744 (copy_action): Use it.
9745
9746 2000-03-17 Akim Demaille <akim@epita.fr>
9747
9748 Be kind to translators, save some useless translations.
9749
9750 * src/main.c (banner): New function.
9751 (fatal_banner): Use it.
9752 (warn_banner): Use it.
9753
9754 2000-03-17 Akim Demaille <akim@epita.fr>
9755
9756 * src/reader.c (copy_definition): Use copy_string and
9757 copy_comment. Removed now unused `match', `ended',
9758 `cplus_comment'.
9759 (copy_comment, copy_string): Moved, to be visible from
9760 copy_definition.
9761
9762 2000-03-17 Akim Demaille <akim@epita.fr>
9763
9764 * src/reader.c (copy_string): Declare `static inline'. No
9765 problems with inline, since it is checked by configure.
9766 (copy_comment): Likewise.
9767
9768 2000-03-17 Akim Demaille <akim@epita.fr>
9769
9770 * src/reader.c (packsymbols): Formatting changes.
9771
9772 2000-03-17 Akim Demaille <akim@epita.fr>
9773
9774 * src/reader.c (copy_comment): New function, factored out from:
9775 (copy_action): Use it. Removed now unused `match', `ended',
9776 `cplus_comment'.
9777 (copy_guard): Likewise.
9778
9779 2000-03-17 Akim Demaille <akim@epita.fr>
9780
9781 * src/reader.c (copy_string): New function, factored out from:
9782 (copy_action): Use it.
9783 (copy_guard): Likewise.
9784
9785 2000-03-17 Akim Demaille <akim@epita.fr>
9786
9787 Change the handling of @s so that they behave exactly like $s.
9788 There is now a pseudo variable @$ (readble and writable), location
9789 of the lhs of the rule (by default ranging from the location of
9790 the first symbol of the rhs, to the location of the last symbol,
9791 or, if the rhs is empty, YYLLOC).
9792
9793 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
9794 yyval.
9795 (yyparse): When providing a default semantic action, provide a
9796 default location action.
9797 (after the $): No longer change `*YYLSP', just stack YYLOC the
9798 same way you stack YYVAL.
9799 * src/reader.c (read_declarations): Use warns.
9800 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
9801 (copy_action, case '@'): Likewise.
9802 Use a standard error message, to save useless work from
9803 translators.
9804
9805 2000-03-17 Akim Demaille <akim@epita.fr>
9806
9807 * src/bison.s1: Formatting and cosmetics changes.
9808 * src/reader.c: Likewise.
9809 Update the Copyright notice.
9810
9811 2000-03-17 Akim Demaille <akim@epita.fr>
9812
9813 * src/bison.s1 (#line): All set to `#line' only, since the
9814 Makefile now handles them.
9815
9816 2000-03-16 Akim Demaille <akim@epita.fr>
9817
9818 * src/output.c (output_rule_data): Output the documentation of
9819 some of the tables.
9820 (Copyright notice): Update.
9821 Formatting changes.
9822
9823 2000-03-16 Akim Demaille <akim@epita.fr>
9824
9825 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
9826 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
9827 One `#if YYDEBUG' remains, since it uses variables which are
9828 defined only if `YYDEBUG != 0'.
9829
9830 2000-03-16 Akim Demaille <akim@epita.fr>
9831
9832 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
9833 and related variables so that the similarities are highlighted.
9834
9835 2000-03-16 Akim Demaille <akim@epita.fr>
9836
9837 * src/bison.s1: Properly indent CPP directives.
9838
9839 2000-03-16 Akim Demaille <akim@epita.fr>
9840
9841 * src/bison.s1: Properly indent the `alloca' CPP section.
9842
9843 2000-03-16 Akim Demaille <akim@epita.fr>
9844
9845 Do not hard code values of directories in `configure.in'.
9846 Update the `configure' tool chain.
9847
9848 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
9849 src/makefile.am.
9850 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
9851 (AC_OUTPUT): Add m4/Makefile.
9852 Bump to bison 1.28a, 1.29 has never been released.
9853 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
9854 handled via src/Makefile.am.
9855 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
9856 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
9857 autoheader.
9858 * Makefile.am (SUBDIRS): Add m4.
9859 (ACLOCAL_AM_FLAGS): New variable.
9860 (AUTOMAKE_OPTIONS): Add check-news.
9861 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
9862 the proper line number and file name.
9863 (DEFS): Propagate the location of bison library files and of the
9864 locale files.
9865 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
9866 builddir.
9867 * acinclude.m4: Remove, replaced by the directory m4.
9868 * m4/Makefile.am (EXTRA_DIST): New variable.
9869 * m4/gettext.m4: New file, from the fileutils.
9870 * m4/lcmessage.m4: Likewise
9871 * m4/progtest.m4: Likewise.
9872 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
9873
9874 2000-03-10 Akim Demaille <akim@epita.fr>
9875
9876 * src/closure.c:
9877 Formatting changes of various comments.
9878 Respect the GNU coding standards at various places.
9879 Don't use `_()' when no translation is needed.
9880
9881 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9882
9883 * src/files.c:
9884 OS/2 honors TMPDIR environment variable.
9885
9886 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9887
9888 * doc/bison.texinfo: Tweaked spelling and grammar.
9889 Updated ISBN.
9890 Removed reference to price of printed copy.
9891 Mention BISON_SIMPLE and BISON_HAIRY.
9892
9893 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9894
9895 * configure.in, NEWS:
9896 Bison 1.29 released.
9897
9898 1999-10-27 Jesse Thilo <jthilo@gnu.org>
9899
9900 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
9901 Added reference card.
9902
9903 1999-07-26 Jesse Thilo <jthilo@gnu.org>
9904
9905 * po/ru.po: Added Russian translation.
9906
9907 1999-07-26 Jesse Thilo <jthilo@gnu.org>
9908
9909 * configure.in: Added Russian translation.
9910
9911 1999-07-06 Jesse Thilo <jthilo@gnu.org>
9912
9913 * configure.in, NEWS, README:
9914 Released version 1.28.
9915
9916 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9917
9918 * src/system.h:
9919 Squashed redefinition warning on some systems.
9920
9921 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
9922 Have configure build version string instead of relying on ANSI string
9923 concatentation.
9924
9925 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9926
9927 * po/POTFILES.in: Got rid of version.c.
9928
9929 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9930
9931 * acconfig.h, configure.in:
9932 Have configure build version string instead of relying on ANSI string
9933 concatentation.
9934
9935 1999-06-08 Jesse Thilo <jthilo@gnu.org>
9936
9937 * doc/bison.1:
9938 Dropped mention of `+' for long-named options.
9939
9940 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9941
9942 * src/files.c: Added <unistd.h> for unlink().
9943
9944 * src/Makefile.am, src/system.h:
9945 I18n fixes.
9946
9947 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9948
9949 * README: Added a FAQ list.
9950
9951 * configure.in, acconfig.h:
9952 I18n fixes.
9953
9954 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9955
9956 * doc/FAQ, doc/Makefile.am:
9957 Added a FAQ list.
9958
9959 1999-05-19 Jesse Thilo <jthilo@gnu.org>
9960
9961 * src/alloc.h, src/symtab.h, src/version.c:
9962 Protected inclusion of "config.h" with HAVE_CONFIG_H.
9963
9964 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9965
9966 * src/.cvsignore, src/Makefile.am:
9967 Reorganized: sources in `src', documentation in `doc'.
9968
9969 * src/lex.c (literalchar):
9970 fixed the code for escaping double quotes (thanks
9971 Jonathan Czisny.)
9972
9973 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9974
9975 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
9976 Adjusted paths to reflect directory reorganization.
9977
9978 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9979
9980 * doc/.cvsignore, doc/Makefile.am:
9981 Reorganized: sources in `src', documentation in `doc'.
9982
9983 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9984
9985 * configure.in:
9986 Updated AC_INIT file to reflect directory reorganization.
9987
9988 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
9989 Reorganized: sources in `src', documentation in `doc'.
9990
9991 1999-04-13 Jesse Thilo <jthilo@gnu.org>
9992
9993 * src/allocate.c:
9994 Don't declare calloc() and realloc() if not necessary.
9995
9996 1999-04-13 Jesse Thilo <jthilo@gnu.org>
9997
9998 * configure.in, acconfig.h, acinclude.m4:
9999 Don't declare calloc() and realloc() if not necessary.
10000
10001 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10002
10003 * po/.cvsignore: Added i18n support.
10004
10005 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10006
10007 * acconfig.h, configure.in, Makefile.am:
10008 Added i18n support.
10009
10010 1999-03-22 Jesse Thilo <jthilo@gnu.org>
10011
10012 * src/bison.s1: Fixed #line numbers.
10013
10014 1999-03-15 Jesse Thilo <jthilo@gnu.org>
10015
10016 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10017 Added PO files from Translation Project.
10018
10019 1999-03-03 Jesse Thilo <jthilo@gnu.org>
10020
10021 * Makefile.am:
10022 Added support for non-ANSI compilers (ansi2knr).
10023
10024 1999-02-16 Jesse Thilo <jthilo@gnu.org>
10025
10026 * configure.in: Bumped version number to 1.27.
10027
10028 * Makefile.am:
10029 Added `bison.simple' to list of files removed by `make distclean'.
10030
10031 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10032
10033 * src/files.c, src/files.h:
10034 Defined locations of parser files in config.h instead of Makefile.
10035
10036 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10037
10038 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10039 Defined locations of parser files in config.h instead of Makefile.
10040
10041 1999-02-09 Jesse Thilo <jthilo@gnu.org>
10042
10043 * Makefile.am:
10044 Removed inappropriate use of $< macro.
10045
10046 1999-02-05 Jesse Thilo <jthilo@gnu.org>
10047
10048 * po/Makefile.in.in, po/POTFILES.in:
10049 Add `po' directory skeleton.
10050
10051 1999-01-27 Jesse Thilo <jthilo@gnu.org>
10052
10053 * README: Document help-bison list.
10054
10055 * configure.in: Add check for mkstemp().
10056
10057 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10058
10059 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10060 Hush a few compiler warnings.
10061
10062 * src/files.c:
10063 Add tryclose(), which verifies that fclose was successful.
10064 Hush a couple of compiler warnings.
10065
10066 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10067
10068 * Makefile.am, OChangeLog:
10069 ChangeLog is now automatically generated. Include the old version as
10070 OChangeLog.
10071
10072 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10073
10074 * 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:
10075 Update FSF address.
10076
10077 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10078
10079 * doc/bison.texinfo: Fix formatting glitch.
10080
10081 * doc/bison.texinfo: Update FSF address.
10082
10083 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10084
10085 * acconfig.h: Update FSF address.
10086
10087 1999-01-08 Jesse Thilo <jthilo@gnu.org>
10088
10089 * src/system.h:
10090 Don't define PACKAGE here, since config.h defines it.
10091
10092 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10093
10094 * src/reader.c: Update copyright date.
10095
10096 * src/main.c:
10097 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10098 favor of output directly to stderr (avoids buffer overruns).
10099
10100 * src/reader.c: Some checks for premature EOF.
10101
10102 * 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:
10103 Use prototypes if the compiler understands them.
10104
10105 * src/files.c: Honor TMPDIR on Unix hosts.
10106 Use prototypes if the compiler understands them.
10107
10108 * src/reader.c:
10109 Fix a couple of buffer overrun bugs.
10110 Use prototypes if the compiler understands them.
10111
10112 * src/system.h: Include unistd.h and ctype.h.
10113 Use #ifdef instead of #if for NLS symbols.
10114
10115 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10116
10117 * doc/bison.texinfo:
10118 Delete comment "consider using @set for edition number, etc..." since
10119 we now are doing so.
10120
10121 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10122
10123 * configure.in:
10124 Use prototypes if the compiler understands them.
10125
10126 * NEWS: Document 1.26 highlights.
10127
10128 * Makefile.am: Require Automake 1.3 or later.
10129
10130 * acconfig.h:
10131 Use prototypes if the compiler understands them.
10132
10133 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10134
10135 * src/version.c:
10136 Use VERSION symbol from automake for version number.
10137
10138 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10139
10140 * acconfig.h, configure.in, version.cin:
10141 Use VERSION symbol from automake for version number.
10142
10143 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10144
10145 * Makefile.am:
10146 Distribute original version of simple parser (bison.s1), not built
10147 version (bison.simple).
10148
10149 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10150
10151 * doc/bison.texinfo: Add info dir entry.
10152
10153 * doc/bison.texinfo:
10154 Let automake put version number into documentation.
10155
10156 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10157
10158 * src/bison.cld, src/build.com, src/vmshlp.mar:
10159 Add non-RCS files from /gd/gnu/bison.
10160
10161 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10162
10163 * doc/bison.1:
10164 Document the BISON_HAIRY and BISON_SIMPLE variables.
10165
10166 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10167
10168 * src/version.c: Build version.c automatically.
10169
10170 * src/reader.c:
10171 Fix token numbering (used to start at 258, not 257).
10172
10173 * src/system.h: Include config.h.
10174
10175 * src/getargs.c: Update bug report address.
10176
10177 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10178 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10179
10180 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10181
10182 * Makefile.am:
10183 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10184
10185 * configure.in, version.cin:
10186 Build version.c automatically.
10187
10188 * AUTHORS: Add AUTHORS file.
10189
10190 * README: Update bug report address.
10191
10192 * bison.simple:
10193 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10194
10195 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10196 Add automake stuff.
10197
10198 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10199
10200 * doc/bison.texinfo: Clean up some formatting.
10201
10202 1998-05-05 Richard Stallman <rms@gnu.org>
10203
10204 * doc/bison.texinfo:
10205 Explain better why to make a pure parser.
10206
10207 1998-01-05 Richard Stallman <rms@gnu.org>
10208
10209 * src/files.c (openfiles):
10210 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10211 find a temporary directory, if possible. Do not unlink files while
10212 they are open.
10213
10214 1997-08-25 Richard Stallman <rms@gnu.org>
10215
10216 * src/reader.c (stack_offset;):
10217 Change some warni to warns.
10218
10219 * src/lex.c (literalchar): Use warns, not warni.
10220
10221 1997-06-28 Richard Stallman <rms@gnu.org>
10222
10223 * src/bison.s1: Add a Bison version comment.
10224
10225 * src/main.c (fatal, warn, berror):
10226 Use program_name.
10227
10228 1997-06-28 Richard Stallman <rms@gnu.org>
10229
10230 * Makefile.in (bison_version): New variable.
10231 (dist): Use that variable.
10232 (bison.s1): Substitute the Bison version into bison.simple.
10233
10234 * bison.simple: Add a Bison version comment.
10235
10236 1997-06-18 Richard Stallman <rms@gnu.org>
10237
10238 * src/main.c (fatal, warn, berror):
10239 Make error messages standard.
10240 (toomany): Improve error message text.
10241
10242 * 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:
10243 new.h renamed to alloc.h.
10244
10245 1997-06-18 Richard Stallman <rms@gnu.org>
10246
10247 * Makefile.in: new.h renamed to alloc.h.
10248
10249 1997-05-24 Richard Stallman <rms@gnu.org>
10250
10251 * src/lex.c (literalchar):
10252 Fix the code for escaping \, " and '.
10253
10254 (lex): Avoid trouble when there are many chars
10255 to discard in a char literal with just several chars in it.
10256
10257 1997-05-17 Richard Stallman <rms@gnu.org>
10258
10259 * src/bison.s1:
10260 Use malloc, if using alloca is troublesome.
10261 (YYSTACK_USE_ALLOCA): New flag macro.
10262 Define it for some systems and compilers.
10263 (YYSTACK_ALLOC): New macro.
10264 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10265 If it was malloc'd, free it.
10266
10267 1997-05-17 Richard Stallman <rms@gnu.org>
10268
10269 * bison.simple:
10270 Use malloc, if using alloca is troublesome.
10271 (YYSTACK_USE_ALLOCA): New flag macro.
10272 Define it for some systems and compilers.
10273 (YYSTACK_ALLOC): New macro.
10274 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10275 If it was malloc'd, free it.
10276
10277 1997-04-23 Richard Stallman <rms@gnu.org>
10278
10279 * src/bison.s1:
10280 (alloca) [__hpux]: Always define as __builtin_alloca.
10281
10282 1997-04-23 Richard Stallman <rms@gnu.org>
10283
10284 * bison.simple:
10285 (alloca) [__hpux]: Always define as __builtin_alloca.
10286
10287 1997-04-22 Richard Stallman <rms@gnu.org>
10288
10289 * src/bison.s1:
10290 [__hpux]: Include alloca.h (right for HPUX 10)
10291 instead of declaring alloca (right for HPUX 9).
10292
10293 * src/bison.s1 (__yy_memcpy):
10294 Declare arg `count' as unsigned int.
10295 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10296
10297 1997-04-22 Richard Stallman <rms@gnu.org>
10298
10299 * bison.simple:
10300 [__hpux]: Include alloca.h (right for HPUX 10)
10301 instead of declaring alloca (right for HPUX 9).
10302
10303 * bison.simple (__yy_memcpy):
10304 Declare arg `count' as unsigned int.
10305 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10306
10307 1997-01-03 Richard Stallman <rms@gnu.org>
10308
10309 * src/allocate.c: [__STDC__ or _MSC_VER]:
10310 Declare calloc and realloc to return void *.
10311
10312 1997-01-02 Richard Stallman <rms@gnu.org>
10313
10314 * src/system.h:
10315 [_MSC_VER]: Include stdlib.h and process.h.
10316 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10317
10318 * src/main.c (main): Return FAILURE as a value.
10319 (printable_version): Declare arg as int, not char.
10320
10321 1997-01-02 Richard Stallman <rms@gnu.org>
10322
10323 * Makefile.in (dist):
10324 Explicitly check for symlinks, and copy them.
10325
10326 1996-12-19 Richard Stallman <rms@gnu.org>
10327
10328 * src/files.c:
10329 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10330
10331 1996-12-18 Paul Eggert <eggert@gnu.org>
10332
10333 * src/bison.s1 (yyparse):
10334 If __GNUC__ and YYPARSE_PARAM are both defined,
10335 declare yyparse to have a void * argument.
10336
10337 1996-12-18 Paul Eggert <eggert@gnu.org>
10338
10339 * bison.simple (yyparse):
10340 If __GNUC__ and YYPARSE_PARAM are both defined,
10341 declare yyparse to have a void * argument.
10342
10343 1996-12-17 Richard Stallman <rms@gnu.org>
10344
10345 * src/reduce.c (nbits): Add some casts.
10346
10347 1996-08-12 Richard Stallman <rms@gnu.org>
10348
10349 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10350
10351 1996-08-12 Richard Stallman <rms@gnu.org>
10352
10353 * bison.simple: Test _MSDOS as well as _MSDOS_.
10354
10355 1996-07-31 Richard Stallman <rms@gnu.org>
10356
10357 * src/bison.s1:
10358 [__sun && __i386]: Include alloca.h.
10359
10360 1996-07-31 Richard Stallman <rms@gnu.org>
10361
10362 * bison.simple:
10363 [__sun && __i386]: Include alloca.h.
10364
10365 1996-07-30 Richard Stallman <rms@gnu.org>
10366
10367 * src/bison.s1: Comment change.
10368
10369 * src/bison.s1: Test _MSDOS_, not MSDOS.
10370
10371 1996-07-30 Richard Stallman <rms@gnu.org>
10372
10373 * bison.simple: Comment change.
10374
10375 * bison.simple: Test _MSDOS_, not MSDOS.
10376
10377 1996-06-01 Richard Stallman <rms@gnu.org>
10378
10379 * 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:
10380 Insert `_' macro around many string constants.
10381
10382 * src/main.c:
10383 Insert `_' macro around many string constants.
10384
10385 (main): Call setlocale, bindtextdomain and textdomain.
10386
10387 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10388 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10389 [ENABLE_NLS]: Include libintl.h.
10390 [ENABLE_NLS] (gettext): Define.
10391 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10392 (N_, PACKAGE, LOCALEDIR): New macros.
10393
10394 1996-06-01 Richard Stallman <rms@gnu.org>
10395
10396 * POTFILES.in: New file.
10397
10398 * Makefile.in (allocate.o):
10399 Define target explicitly.
10400
10401 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10402 (LDFLAGS): Set to @LDFLAGS@.
10403 (configure): Run autoconf only if preceding `cd' succeeds.
10404 (bison.s1): Redirect output to temporary file then move the
10405 temporary to the target, rather than redirecting directly to bison.s1.
10406 (clean): Remove config.status and config.log.
10407 (distclean): Don't remove config.status here.
10408
10409 1996-05-12 Richard Stallman <rms@gnu.org>
10410
10411 * src/bison.s1:
10412 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10413
10414 1996-05-12 Richard Stallman <rms@gnu.org>
10415
10416 * bison.simple:
10417 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10418
10419 1996-05-11 Richard Stallman <rms@gnu.org>
10420
10421 * src/bison.s1 (__yy_memcpy):
10422 Really reorder the args, as was supposedly done on Feb 14 1995.
10423 (yyparse): Calls changed accordingly.
10424
10425 1996-05-11 Richard Stallman <rms@gnu.org>
10426
10427 * Makefile.in (dist): Don't use $(srcdir).
10428
10429 * bison.simple (__yy_memcpy):
10430 Really reorder the args, as was supposedly done on Feb 14 1995.
10431 (yyparse): Calls changed accordingly.
10432
10433 1996-01-27 Richard Stallman <rms@gnu.org>
10434
10435 * src/output.c (output_rule_data):
10436 Test YYERROR_VERBOSE in the conditional
10437 around the definition of ttyname.
10438
10439 1995-12-29 Richard Stallman <rms@gnu.org>
10440
10441 * src/bison.s1:
10442 Fix line numbers in #line commands.
10443
10444 1995-12-29 Richard Stallman <rms@gnu.org>
10445
10446 * bison.simple:
10447 Fix line numbers in #line commands.
10448
10449 1995-12-27 Richard Stallman <rms@gnu.org>
10450
10451 * src/bison.s1 (YYPARSE_PARAM_DECL):
10452 In C++, make it always null.
10453 (YYPARSE_PARAM_ARG): New macro.
10454 (yyparse): Use YYPARSE_PARAM_ARG.
10455
10456 1995-12-27 Richard Stallman <rms@gnu.org>
10457
10458 * bison.simple (YYPARSE_PARAM_DECL):
10459 In C++, make it always null.
10460 (YYPARSE_PARAM_ARG): New macro.
10461 (yyparse): Use YYPARSE_PARAM_ARG.
10462
10463 1995-11-29 Richard Stallman <rms@gnu.org>
10464
10465 * doc/bison.texinfo:
10466 Describe literal string tokens, %raw, %no_lines, %token_table.
10467
10468 1995-11-29 Daniel Hagerty <hag@gnu.org>
10469
10470 * doc/bison.texinfo: Fixed update date
10471
10472 1995-10-16 Richard Stallman <rms@gnu.org>
10473
10474 * src/version.c: Version 1.25.
10475
10476 1995-10-16 Richard Stallman <rms@gnu.org>
10477
10478 * NEWS: *** empty log message ***
10479
10480 1995-10-16 Richard Stallman <rms@gnu.org>
10481
10482 * doc/bison.1, doc/bison.rnh:
10483 Add new options.
10484
10485 1995-10-15 Richard Stallman <rms@gnu.org>
10486
10487 * src/vmsgetargs.c, src/getargs.c:
10488 Added -n, -k, and -raw switches.
10489 (noparserflag, toknumflag, rawtoknumflag): New variables.
10490
10491 * src/symtab.h (SALIAS):
10492 New #define for adding aliases to %token.
10493 (struct bucket): Added `alias' field.
10494
10495 * src/reduce.c (reduce_grammar):
10496 Revise error message.
10497 (print_notices): Remove final `.' from error message.
10498
10499 * src/reader.c (reader_output_yylsp):
10500 New function.
10501 (readgram): Use `#if 0' around code that accepted %command
10502 inside grammar rules: The documentation doesn't allow it,
10503 and it will fail since the %command processors scan for the next %.
10504 (parse_token_decl): Extended the %token
10505 declaration to allow a multi-character symbol as an alias.
10506 (parse_thong_decl): New function.
10507 (read_declarations): Added %thong declarations.
10508 (read_declarations): Handle NOOP to deal with allowing
10509 % declarations as another means to specify the flags.
10510 (readgram): Allow %prec prior to semantics embedded in a rule.
10511 (skip_to_char, read_declarations, copy_definition)
10512 (parse_token_decl, parse_start_decl, parse_type_decl)
10513 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10514 (get_type_name, copy_guard, copy_action, readgram)
10515 (get_type, packsymbols): Revised most error messages.
10516 Changed `fatal' to `warnxxx' to avoid aborting for error.
10517 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10518 (read_declarations): Improve the error message for
10519 an invalid character. Do not abort.
10520 (read_declarations, copy_guard, copy_action): Use
10521 printable_version to avoid unprintable characters in printed output.
10522 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10523 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10524 Allow the type of a non-terminal can be given
10525 more than once, as long as all specifications give the same type.
10526
10527 * src/output.c:
10528 (output_headers, output_trailers, output, output_gram)
10529 (output_rule_data): Implement noparserflag variable.
10530 Implement toknumflag variable.
10531 (output): Call reader_output_yylsp to output LTYPESTR.
10532
10533 * src/main.c (main):
10534 If reader sees an error, don't process the grammar.
10535 (fatals): Updated to not use VARARGS1.
10536 (printable_version, int_to_string, warn, warni, warns, warnss)
10537 (warnsss): New error reporting functions. Avoid abort for error.
10538
10539 * src/lex.h:
10540 Added THONG and NOOP for alias processing.
10541 Added SETOPT for the new code that allows setting options with %flags.
10542
10543 * src/lex.c:
10544 Include getopt.h. Add some extern decls.
10545 (safegetc): New function to deal with EOF gracefully.
10546 (literalchar); new function to deal with reading \ escapes.
10547 (lex): Use literalchar.
10548 (lex): Implemented "..." tokens.
10549 (literalchar, lex, parse_percent_token): Made tokenbuffer
10550 always contain the token. This includes growing the token
10551 buffer while reading an integer.
10552 (parse_percent_token): Replaced if-else statement with percent_table.
10553 (parse_percent_token): Added % declarations as another
10554 way to specify the flags -n, -l, and -r. Also added hooks for
10555 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10556 major changes to files.c.
10557 (lex) Retain in the incoming stream a character following
10558 an incorrect '/'.
10559 (skip_white_space, lex): Revised most error messages
10560 and changed fatal to warn to avoid aborting.
10561 (percent_table): Added %thong declarations.
10562
10563 * src/gram.h: Comment changes.
10564
10565 * src/files.c (openfiles, open_extra_files, done):
10566 Add faction flag
10567 and actfile file. Handle noparserflag. Both for -n switch.
10568
10569 * src/conflicts.c (resolve_sr_conflict):
10570 Remove use of alloca.
10571
10572 1995-06-01 Jim Meyering <meyering@gnu.org>
10573
10574 * doc/bison.texinfo: *** empty log message ***
10575
10576 1995-05-06 Richard Stallman <rms@gnu.org>
10577
10578 * src/bison.s1: Comment change.
10579
10580 1995-05-06 Richard Stallman <rms@gnu.org>
10581
10582 * bison.simple: Comment change.
10583
10584 1995-05-03 Richard Stallman <rms@gnu.org>
10585
10586 * src/version.c: Version now 1.24.
10587
10588 * src/bison.s1: Change distribution terms.
10589
10590 * src/version.c: Version now 1.23.
10591
10592 1995-05-03 Richard Stallman <rms@gnu.org>
10593
10594 * doc/bison.texinfo:
10595 Rewrite "Conditions for Using Bison".
10596 Update version to 1.24.
10597
10598 1995-05-03 Richard Stallman <rms@gnu.org>
10599
10600 * bison.simple: Change distribution terms.
10601
10602 1995-02-23 Richard Stallman <rms@gnu.org>
10603
10604 * src/files.c: Test __VMS_POSIX as well as VMS.
10605
10606 1995-02-14 Jim Meyering <meyering@gnu.org>
10607
10608 * src/bison.s1 (__yy_memcpy):
10609 Renamed from __yy_bcopy to avoid
10610 confusion. Reverse FROM and TO arguments to be consistent with
10611 those of memcpy.
10612
10613 1995-02-14 Jim Meyering <meyering@gnu.org>
10614
10615 * bison.simple (__yy_memcpy):
10616 Renamed from __yy_bcopy to avoid
10617 confusion. Reverse FROM and TO arguments to be consistent with
10618 those of memcpy.
10619
10620 1994-11-10 David J. MacKenzie <djm@gnu.org>
10621
10622 * NEWS: reformat
10623
10624 * NEWS: New file.
10625
10626 * Makefile.in (DISTFILES): Include NEWS.
10627
10628 * Makefile.in (DISTFILES):
10629 Include install-sh, not install.sh.
10630
10631 * configure.in: Update to Autoconf v2 macro names.
10632
10633 1994-10-05 David J. MacKenzie <djm@gnu.org>
10634
10635 * Makefile.in: fix typo
10636
10637 * Makefile.in (prefix, exec_prefix):
10638 Let configure set them.
10639
10640 1994-09-28 David J. MacKenzie <djm@gnu.org>
10641
10642 * Makefile.in: Set datadir to $(prefix)/share.
10643
10644 1994-09-15 Richard Stallman <rms@gnu.org>
10645
10646 * src/bison.s1:
10647 Update copyright notice and GPL version.
10648
10649 1994-09-15 Richard Stallman <rms@gnu.org>
10650
10651 * bison.simple:
10652 Update copyright notice and GPL version.
10653
10654 1994-07-12 Richard Stallman <rms@gnu.org>
10655
10656 * src/reduce.c, src/reader.c:
10657 entered into RCS
10658
10659 1994-05-05 David J. MacKenzie <djm@gnu.org>
10660
10661 * Makefile.in: entered into RCS
10662
10663 1994-03-26 Richard Stallman <rms@gnu.org>
10664
10665 * src/bison.s1: entered into RCS
10666
10667 1994-03-26 Richard Stallman <rms@gnu.org>
10668
10669 * bison.simple: entered into RCS
10670
10671 1994-03-25 Richard Stallman <rms@gnu.org>
10672
10673 * src/main.c: entered into RCS
10674
10675 1994-03-24 Richard Stallman <rms@gnu.org>
10676
10677 * src/conflicts.c: entered into RCS
10678
10679 1994-01-02 Richard Stallman <rms@gnu.org>
10680
10681 * Makefile.in: *** empty log message ***
10682
10683 1993-11-21 Richard Stallman <rms@gnu.org>
10684
10685 * src/bison.s1: *** empty log message ***
10686
10687 1993-11-21 Richard Stallman <rms@gnu.org>
10688
10689 * doc/bison.texinfo: entered into RCS
10690
10691 * doc/bison.texinfo: *** empty log message ***
10692
10693 1993-11-21 Richard Stallman <rms@gnu.org>
10694
10695 * bison.simple: *** empty log message ***
10696
10697 1993-10-25 David J. MacKenzie <djm@gnu.org>
10698
10699 * doc/bison.texinfo: *** empty log message ***
10700
10701 1993-10-19 Richard Stallman <rms@gnu.org>
10702
10703 * src/bison.s1: *** empty log message ***
10704
10705 1993-10-19 Richard Stallman <rms@gnu.org>
10706
10707 * bison.simple: *** empty log message ***
10708
10709 1993-10-14 Richard Stallman <rms@gnu.org>
10710
10711 * src/bison.s1: *** empty log message ***
10712
10713 1993-10-14 Richard Stallman <rms@gnu.org>
10714
10715 * bison.simple: *** empty log message ***
10716
10717 1993-09-14 David J. MacKenzie <djm@gnu.org>
10718
10719 * doc/bison.texinfo: *** empty log message ***
10720
10721 1993-09-13 Noah Friedman <friedman@gnu.org>
10722
10723 * Makefile.in: *** empty log message ***
10724
10725 1993-09-10 Richard Stallman <rms@gnu.org>
10726
10727 * src/conflicts.c: *** empty log message ***
10728
10729 * src/system.h: entered into RCS
10730
10731 1993-09-10 Richard Stallman <rms@gnu.org>
10732
10733 * doc/bison.1: entered into RCS
10734
10735 1993-09-06 Noah Friedman <friedman@gnu.org>
10736
10737 * src/version.c: entered into RCS
10738
10739 1993-09-06 Noah Friedman <friedman@gnu.org>
10740
10741 * Makefile.in: *** empty log message ***
10742
10743 1993-07-30 David J. MacKenzie <djm@gnu.org>
10744
10745 * Makefile.in: *** empty log message ***
10746
10747 1993-07-24 Richard Stallman <rms@gnu.org>
10748
10749 * src/bison.s1: *** empty log message ***
10750
10751 1993-07-24 Richard Stallman <rms@gnu.org>
10752
10753 * bison.simple: *** empty log message ***
10754
10755 1993-07-08 David J. MacKenzie <djm@gnu.org>
10756
10757 * Makefile.in: *** empty log message ***
10758
10759 1993-07-04 Richard Stallman <rms@gnu.org>
10760
10761 * src/bison.s1: *** empty log message ***
10762
10763 1993-07-04 Richard Stallman <rms@gnu.org>
10764
10765 * bison.simple: *** empty log message ***
10766
10767 1993-06-26 David J. MacKenzie <djm@gnu.org>
10768
10769 * src/getargs.c: entered into RCS
10770
10771 1993-06-26 David J. MacKenzie <djm@gnu.org>
10772
10773 * doc/bison.texinfo: *** empty log message ***
10774
10775 * doc/bison.1: New file.
10776
10777 1993-06-25 Richard Stallman <rms@gnu.org>
10778
10779 * src/getargs.c: New file.
10780
10781 1993-06-16 Richard Stallman <rms@gnu.org>
10782
10783 * src/bison.s1: *** empty log message ***
10784
10785 1993-06-16 Richard Stallman <rms@gnu.org>
10786
10787 * bison.simple: *** empty log message ***
10788
10789 1993-06-03 Richard Stallman <rms@gnu.org>
10790
10791 * src/bison.s1: New file.
10792
10793 1993-06-03 Richard Stallman <rms@gnu.org>
10794
10795 * doc/bison.texinfo: *** empty log message ***
10796
10797 1993-06-03 Richard Stallman <rms@gnu.org>
10798
10799 * bison.simple: New file.
10800
10801 1993-05-19 Richard Stallman <rms@gnu.org>
10802
10803 * doc/bison.texinfo: New file.
10804
10805 1993-05-07 Noah Friedman <friedman@gnu.org>
10806
10807 * Makefile.in: *** empty log message ***
10808
10809 1993-04-28 Noah Friedman <friedman@gnu.org>
10810
10811 * src/reader.c: *** empty log message ***
10812
10813 1993-04-23 Noah Friedman <friedman@gnu.org>
10814
10815 * src/alloc.h: entered into RCS
10816
10817 1993-04-20 David J. MacKenzie <djm@gnu.org>
10818
10819 * src/version.c: *** empty log message ***
10820
10821 * src/files.c, src/allocate.c:
10822 entered into RCS
10823
10824 * src/reader.c: *** empty log message ***
10825
10826 * src/lex.c: entered into RCS
10827
10828 * src/conflicts.c: New file.
10829
10830 * src/symtab.c: entered into RCS
10831
10832 * src/alloc.h: New file.
10833
10834 * src/LR0.c: entered into RCS
10835
10836 1993-04-18 Noah Friedman <friedman@gnu.org>
10837
10838 * src/reader.c: New file.
10839
10840 * src/version.c: *** empty log message ***
10841
10842 1993-04-18 Noah Friedman <friedman@gnu.org>
10843
10844 * Makefile.in: *** empty log message ***
10845
10846 1993-04-17 Noah Friedman <friedman@gnu.org>
10847
10848 * Makefile.in: *** empty log message ***
10849
10850 1993-04-15 Richard Stallman <rms@gnu.org>
10851
10852 * src/main.c, src/files.c:
10853 New file.
10854
10855 1993-04-15 Noah Friedman <friedman@gnu.org>
10856
10857 * configure.in: entered into RCS
10858
10859 * configure.in: *** empty log message ***
10860
10861 * configure.in: New file.
10862
10863 1993-04-14 Richard Stallman <rms@gnu.org>
10864
10865 * Makefile.in: New file.
10866
10867 1993-04-13 Richard Stallman <rms@gnu.org>
10868
10869 * src/version.c: New file.
10870
10871 1993-03-25 Richard Stallman <rms@gnu.org>
10872
10873 * src/output.c: entered into RCS
10874
10875 1992-09-25 Richard Stallman <rms@gnu.org>
10876
10877 * configure.bat: entered into RCS
10878
10879 1992-06-22 Richard Stallman <rms@gnu.org>
10880
10881 * src/vmsgetargs.c: entered into RCS
10882
10883 1992-06-22 Richard Stallman <rms@gnu.org>
10884
10885 * doc/bison.rnh: entered into RCS
10886
10887 1992-04-20 David J. MacKenzie <djm@gnu.org>
10888
10889 * README: entered into RCS
10890
10891 1992-01-22 Richard Stallman <rms@gnu.org>
10892
10893 * src/machine.h: entered into RCS
10894
10895 1991-12-21 Richard Stallman <rms@gnu.org>
10896
10897 * src/lalr.c, src/closure.c:
10898 entered into RCS
10899
10900 1991-12-20 Richard Stallman <rms@gnu.org>
10901
10902 * src/state.h: entered into RCS
10903
10904 1991-12-18 Richard Stallman <rms@gnu.org>
10905
10906 * src/print.c, src/nullable.c, src/derives.c:
10907 entered into RCS
10908
10909 1991-11-03 David J. MacKenzie <djm@gnu.org>
10910
10911 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
10912 entered into RCS
10913
10914 1988-09-09 Richard Stallman <rms@gnu.org>
10915
10916 * src/bison.hairy: entered into RCS
10917
10918 1987-12-16 Richard Stallman <rms@gnu.org>
10919
10920 * REFERENCES: entered into RCS
10921
10922 -----
10923
10924 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
10925 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
10926
10927 This file is part of Bison, the GNU Compiler Compiler.
10928
10929 Bison is free software; you can redistribute it and/or modify
10930 it under the terms of the GNU General Public License as published by
10931 the Free Software Foundation; either version 2, or (at your option)
10932 any later version.
10933
10934 Bison is distributed in the hope that it will be useful,
10935 but WITHOUT ANY WARRANTY; without even the implied warranty of
10936 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10937 GNU General Public License for more details.
10938
10939 You should have received a copy of the GNU General Public License
10940 along with Bison; see the file COPYING. If not, write to
10941 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
10942 Boston, MA 02111-1307, USA.