]> git.saurik.com Git - bison.git/blob - ChangeLog
(Torturing the Scanner): Don't invoke "cc a.c b.c
[bison.git] / ChangeLog
1 2002-11-13 Paul Eggert <eggert@twinsun.com>
2
3 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
4 comments, since they're not portable. Use GNU coding style.
5
6 2002-11-13 Akim Demaille <akim@epita.fr>
7
8 * data/yacc.c: Leave bigger chunks of quoted text.
9 (YYDSYMPRINTF): New.
10 Use it to report symbol activities.
11 * data/glr.c (YYDSYMPRINTF): New.
12 Use it.
13
14 2002-11-12 Paul Eggert <eggert@twinsun.com>
15
16 Version 1.75b.
17
18 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
19 (yyglrReduce): Return yyok, not 0.
20 This should avoid the enumerated-type warnings reported
21 by Nelson H.F. Beebe in
22 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001872.html>.
23
24 * lib/bbitset.h (BITSET_INLINE): Remove.
25 * lib/bitset.h [! BITSET_INLINE]: Remove.
26 (bitset_set, bitset_reset, bitset_test): Rename local vars
27 to avoid shadowing warnings by GCC.
28
29 * data/glr.c (inline): Remove #define. It's the user's
30 responsibility to #define it away, just like 'const'.
31 This fixes one of the bugs reported by Nelson H.F. Beebe in
32 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001873.html>.
33
34 * Makefile.maint (po-check): Scan .l and .y files instead of the
35 .c and the .h files that they generate. This fixes the bug
36 reported by Tim Van Holder in:
37 <http://mail.gnu.org/pipermail/bison-patches/2002-November/001352.html>
38 Look for N_ as well as for _. Try to avoid matching #define for
39 N_ and _.
40 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
41 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
42 * src/scan-gram.l: Revamp regular expressions so that " and '
43 do not confuse xgettext.
44
45 * src/struniq.h (struniq_new): Do not declare the return type
46 to be 'const'; this violates the C standard.
47 * src/struniq.c (struniq_new): Likewise.
48
49 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
50
51 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
52 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
53 linker.
54
55 2002-11-12 Akim Demaille <akim@epita.fr>
56
57 * Makefile.maint: Sync with Autoconf:
58 (local_updates): New.
59
60 2002-11-12 Akim Demaille <akim@epita.fr>
61
62 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
63
64 2002-11-12 Akim Demaille <akim@epita.fr>
65
66 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
67 locations.
68
69 2002-11-12 Akim Demaille <akim@epita.fr>
70
71 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
72 not yyvalue.
73
74 2002-11-12 Akim Demaille <akim@epita.fr>
75
76 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
77 Use it to test the GLR parser.
78
79 2002-11-12 Akim Demaille <akim@epita.fr>
80
81 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
82 defines it.
83 * data/glr.c (yystos): New.
84 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
85 (YYDSYMPRINT): New.
86 (yyval): Don't define it, it is handled via M4.
87 (yyrecoverParseError): Free verbosely the discarded symbols.
88 * data/yacc.c (yysymprint): Remove, rather...
89 (b4_yysymprint_generate): invoke.
90 * data/c.m4 (b4_yysymprint_generate): New.
91 Accept pointers as arguments, as opposed to the version from
92 yacc.c.
93 (b4_yydestruct_generate): Likewise.
94 * tests/cations.at (Printers and Destructors): Use Bison directives
95 instead of CPP macros.
96 Don't rely on internal details.
97
98 2002-11-12 Akim Demaille <akim@epita.fr>
99
100 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
101 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
102 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
103 it against YYEMPTY and so forth), work on yytoken (i.e., set
104 it to YYEMPTY etc.).
105 (yydestruct): Replace with a b4_yydestruct_generate invocation.
106 (b4_symbol_actions): Remove.
107 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
108 for 0, end-of-input.
109
110 2002-11-12 Akim Demaille <akim@epita.fr>
111
112 * doc/bison.texinfo (Destructor Decl): New.
113
114 2002-11-12 Akim Demaille <akim@epita.fr>
115
116 * src/tables.c (tables_generate): Use free for pointers that
117 cannot be NULL, not XFREE.
118 (pack_vector): Use assert, not fatal, for bound violations.
119 * src/state.c (state_new): Likewise.
120 * src/reader.c (reader): Likewise.
121 * src/lalr.c (set_goto_map): Likewise.
122 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
123 the file name.
124
125 2002-11-12 Akim Demaille <akim@epita.fr>
126
127 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
128 Restore.
129 * src/scan-gram.l (last_string): Is global to the file, not to
130 yylex.
131 * src/parse-gram.y (input): Don't append the epilogue here,
132 (epilogue.opt): do it here, and free the scanner's obstack.
133 * src/reader.c (epilogue_set): Rename as...
134 (epilogue_augment): this.
135 * data/c.m4 (b4_epilogue): Defaults to empty.
136
137 2002-11-12 Akim Demaille <akim@epita.fr>
138
139 * src/getargs.c (long_options): Remove duplicates.
140 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
141 Remove.
142 * doc/bison.rnh: Remove.
143 * doc/bison.texinfo (VMS Invocation): Remove.
144
145 2002-11-12 Akim Demaille <akim@epita.fr>
146
147 * src/struniq.h, src/struniq.c (struniq_t): Is const.
148 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
149
150 Use struniq for symbols.
151
152 * src/symtab.h (symbol_t): The tag member is a struniq.
153 (symbol_type_set): Adjust.
154 * src/symtab.c (symbol_new): Takes a struniq.
155 (symbol_free): Don't free the tag member.
156 (hash_compare_symbol_t, hash_symbol_t): Rename as...
157 (hash_compare_symbol, hash_symbol): these.
158 Use the fact that tags as struniqs.
159 (symbol_get): Use struniq_new.
160 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
161 Returns a strniq.
162 * src/reader.h (merger_list, grammar_currentmerge_set): The name
163 and type members are struniqs.
164 * src/reader.c (get_merge_function)
165 (grammar_current_rule_merge_set): Adjust.
166 (TYPE, current_type): Are struniq.
167
168 Use struniq for file names.
169
170 * src/files.h, src/files.c (infile): Split into...
171 (grammar_file, current_file): these.
172 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
173 * src/reduce.c (reduce_print): Likewise.
174 * src/getargs.c (getargs): Likewise.
175 * src/complain.h, src/complain.c: Likewise.
176 * src/main.c (main): Call struniqs_new early enough to use it for
177 file names.
178 Don't free the input file name.
179
180 2002-11-12 Akim Demaille <akim@epita.fr>
181
182 * src/symtab.c (symbol_free): Remove dead deactivated code:
183 type_name are properly removed.
184 Don't use XFREE to free items that cannot be NULL.
185 * src/struniq.h, src/struniq.c: New.
186 * src/main.c (main): Initialize/free struniqs.
187 * src/parse-gram.y (%union): Add astruniq member.
188 (yyprint): Adjust.
189 * src/scan-gram.l (<{tag}>): Return a struniq.
190 Free the obstack bit that used to store it.
191 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
192
193 2002-11-11 Paul Eggert <eggert@twinsun.com>
194
195 Revamp to fix many (but not all) of the C- and M4-related quoting
196 problems. Among other things, this fixes the Bison bug reported
197 by Jan Hubicka when processing the Bash grammar; see:
198 <http://mail.gnu.org/pipermail/bison-patches/2002-November/001329.html>
199
200 Use new @ escapes consistently. Represent brackets with @{ and @}
201 rather than @<:@ and @:>@, since this works a bit better with dumb
202 editors like vi. Represent @ with @@, since @ is now consistently
203 an escape. Use @oline@ and @ofile@ rather than __oline__ and
204 __ofile__, to avoid unexpected expansions. Similarly, use @output
205 rather than #output.
206
207 * data/c.m4 (b4_copyright): Omit file name from comment, since
208 the file name could contain "*/".
209 (b4_synclines_flag): Don't quote the 2nd argument; it should already
210 be quoted. All uses changed.
211
212 * data/glr.c: Use new @ escapes consistently.
213 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
214 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
215 Remove, since they couldn't handle arbitrary characters in file
216 names.
217 * data/lalr1.cc: Likewise.
218 * data/yacc.c: Likewise.
219
220 * src/files.c (output_infix): Remove; all uses removed.
221 * src/files.h: Likewise.
222
223 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
224 mishandled funny characters in file names, and anyway it isn't
225 needed any more.
226 * data/yacc.c: Likewise.
227 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
228
229 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
230 * data/yacc.c: Likewise.
231
232 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
233 strings now.
234 (muscle_init): Quote filename as a C string.
235 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
236 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
237 * src/output.c (escaped_file_name_output): New function.
238 (prepare_symbols): Quote tokens for M4.
239 (prepare): Don't insert output_infix, output_prefix,
240 output_parser_name, output_header_name; this is now down by scan-skel.
241 Insert skeleton as a C string.
242
243 * src/output.c (user_actions_output, symbol_destructors_output,
244 symbol_printers_output): Quote filenames for C and M4.
245 * src/reader.c (prologue_augment, epilogue_set): Likewise.
246
247 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
248 escapes other than \\ and \'; this simplifies the code.
249 (<SC_STRING>): Likewise, for \\ and \".
250 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
251 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
252 Use new escapes @{ and @} for [ and ].
253
254 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
255 them with auto vars.
256 Switch to new escape scheme, where @ is the escape character uniformly.
257 Abort if a stray escape character is found. Avoid unbounded input
258 buffer when parsing non-escaped text.
259
260 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
261 __oline__, #output, $@, and @{ do not have unintended meanings.
262
263 2002-11-09 Paul Eggert <eggert@twinsun.com>
264
265 Fix the test failure due to GCC warnings described in
266 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001815.html>.
267 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
268 evaluate to 0 if it's impossible for NINF to be in the respective
269 table.
270 (yygetLRActions, yyrecoverParseError): Use them.
271
272 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
273 counted in the token inserted at end of file. Now takes
274 location_t *, not location_t, so that the location can be
275 adjusted. All uses changed.
276
277 * tests/regression.at (Invalid inputs): Adjust wording in
278 diagnostic to match the new behavior.
279
280 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
281 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
282 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
283 abort ();'. This reduces the runtime of the "Many lookaheads"
284 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
285 GCC 3.2.
286
287 2002-11-07 Paul Eggert <eggert@twinsun.com>
288
289 * src/parse-gram.y (CHARACTER): Remove unused token.
290 All uses removed.
291
292 * src/scan-gram.l: Remove stack option. We no longer use the
293 stack, since the stack was never deeper than 1; instead, use the
294 new auto var c_context to record the stacked value.
295
296 Remove nounput option. At an unexpected end of file, we now unput
297 the minimal input necessary to end cleanly; this simplifies the
298 code.
299
300 Avoid unbounded token sizes where this is easy.
301
302 (unexpected_end_of_file): New function.
303 Use it to systematize the error message on unexpected EOF.
304 (last-string): Now auto, not static.
305 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
306 (scanner_last_string_free): Remove; not used.
307 (percent_percent_count): Move decl to just before use.
308 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
309 not the (never otherwised-used) CHARACTER.
310
311 2002-11-07 Akim Demaille <akim@epita.fr>
312
313 Let yyerror always receive the msg as last argument, so that
314 yyerror can be variadic.
315
316 * data/yacc.c (b4_yyerror_args): New.
317 Use it when calling yyerror.
318 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
319 Use it when calling yyerror.
320 * doc/bison.texinfo (Error Reporting): Adjust.
321 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
322 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
323
324 2002-11-06 Akim Demaille <akim@epita.fr>
325
326 #line should have quoted strings.
327 Ideally, this should be done by m4_quotearg.
328
329 * src/scan-skel.l: Include quotearg.h.
330 Quote __ofile__.
331 * src/output.c (symbol_printers_output)
332 (symbol_destructors_output): Quote the file name.
333
334 2002-11-06 Akim Demaille <akim@epita.fr>
335
336 * tests/regression.at (Invalid inputs): Adjust to the recent
337 messages.
338
339 2002-11-06 Akim Demaille <akim@epita.fr>
340
341 Restore --no-lines.
342 Reported by Jim Kent.
343
344 * data/c.m4 (b4_syncline): New.
345 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
346 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
347 * src/output.c (user_actions_output): Likewise.
348 (prepare): Define 'b4_synclines_flag'.
349 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
350
351 2002-11-06 Akim Demaille <akim@epita.fr>
352
353 * src/main.c (main): Free `infile'.
354 * src/scan-gram.l (handle_syncline): New.
355 Recognize `#line'.
356 * src/output.c (user_actions_output, symbol_destructors_output)
357 (symbol_printers_output): Use the location's file name, not
358 infile.
359 * src/reader.c (prologue_augment, epilogue_set): Likewise.
360
361 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
362
363 * src/tables.c (matching_state): Don't allow states to match if
364 either has GLR conflict entries.
365
366 2002-11-05 Paul Eggert <eggert@twinsun.com>
367
368 * src/scan-gram.l: Use more accurate diagnostics, e.g.
369 "integer out of range" rather than "invalid value".
370 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
371 accordingly.
372
373 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
374 Also, remove one static variable in the scanner.
375
376 * src/scan-gram.l (braces_level): Now auto, not static.
377 Initialize to zero if the compiler is being picky.
378 (INITIAL): Clear braces_level instead of incrementing it.
379 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
380 as POSIX 1003.1-2001 requires.
381 * src/system.h (IF_LINT): New macro, taken from coreutils.
382 * configure.ac: Define "lint" if --enable-gcc-warnings.
383
384 2002-11-05 Akim Demaille <akim@epita.fr>
385
386 * src/scan-gram.l: When it starts with `%', complain about the
387 whole directive, not just that `invalid character: %'.
388
389 2002-11-04 Akim Demaille <akim@epita.fr>
390
391 * Makefile.maint: Update from Autoconf.
392 (update, cvs-update, po-update, do-po-update): New.
393
394 2002-11-04 Akim Demaille <akim@epita.fr>
395
396 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
397 and yyerror.
398 Have yyerror `use' its arguments.
399 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
400 returns true when location & yacc & pure & parse-param.
401 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
402
403 2002-11-04 Akim Demaille <akim@epita.fr>
404
405 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
406 clashes.
407 * src/scan-gram.l: Use [\'] instead of ['] to pacify
408 font-lock-mode.
409 Use complain_at.
410 Use quote, not quote_n since LOCATION_PRINT no longer uses the
411 slot 0.
412
413 2002-11-03 Paul Eggert <eggert@twinsun.com>
414
415 * src/reader.c (get_merge_function, grammar_current_rule_check):
416 Use consistent diagnostics for reporting type name clashes.
417 Quote the types with <>, for consistency with Yacc.
418 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
419
420 2002-11-03 Akim Demaille <akim@epita.fr>
421
422 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
423 New.
424 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
425 (b4_parse_param): Remove.
426 Use b4_identification.
427 Propagate b4_pure_args where needed to pass them to yyerror.
428 * data/glr.m4 (b4_parse_param): Remove.
429 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
430 (b4_lpure_formals): New.
431 Use b4_identification.
432 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
433 b4_user_formals and b4_user_args.
434 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
435 (yyreportAmbiguity): When using a pure parser, also need
436 the location, and the parse-params.
437 Adjust callers.
438 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
439 When using a pure parser, also need the parse-params.
440 Adjust callers.
441 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
442 (%pure-parser + %parse-param) LALR and GLR parsers.
443 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
444 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
445 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
446 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
447 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
448 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
449 * doc/bison.texinfo: Untabify the whole file.
450 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
451 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
452 (Error Reporting): Adjust to these new directives.
453 Document %error-verbose, deprecate YYERROR_VERBOSE.
454
455 2002-11-03 Akim Demaille <akim@epita.fr>
456
457 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
458 AT_CHECK_CALC_GLR invocations to use % directives, instead of
459 command line options.
460 * tests/cxx-type.at: Formatting changes.
461
462 2002-11-03 Paul Eggert <eggert@twinsun.com>
463
464 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
465 to count columns correctly, and to check for invalid inputs.
466
467 Use mbsnwidth to count columns correctly. Account for tabs, too.
468 Include mbswidth.h.
469 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
470 (extend_location): New function.
471 (YY_LINES): Remove.
472
473 Handle CRLF in C code rather than in Lex code.
474 (YY_INPUT): New macro.
475 (no_cr_read): New function.
476
477 Scan UCNs, even though we don't fully handle them yet.
478 (convert_ucn_to_byte): New function.
479
480 Handle backslash-newline correctly in C code.
481 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
482 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
483 all uses changed.
484 (tag, splice): New EREs. Do not allow NUL or newline in tags.
485 Use {splice} wherever C allows backslash-newline.
486 YY_STEP after space, newline, vertical-tab.
487 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
488
489 (letter, id): Don't assume ASCII; e.g., spell out a-z.
490
491 ({int}, handle_action_dollar, handle_action_at): Check for integer
492 overflow.
493
494 (YY_STEP): Omit trailing semicolon, so that it's more like C.
495
496 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
497 as well as \000. Check for UCHAR_MAX, not 255.
498 Allow \x with an arbitrary positive number of digits, as in C.
499 Check for overflow here.
500 Allow \? and UCNs, for compatibility with C.
501
502 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
503 with quote slot used by complain_at.
504
505 * tests/input.at: Add tests for backslash-newline, m4 quotes
506 in symbols, long literals, and funny escapes in strings.
507
508 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
509 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
510 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
511 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
512 * m4/mbswidth.m4: New file, from GNU coreutils.
513
514 * doc/bison.texinfo (Grammar Outline): Document // comments.
515 (Symbols): Document that trigraphs have no special meaning in Bison,
516 nor is backslash-newline allowed.
517 (Actions): Document that trigraphs have no special meaning.
518
519 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
520 no longer used.
521
522 2002-11-02 Paul Eggert <eggert@twinsun.com>
523
524 * src/reader.c: Don't include quote.h; not needed.
525 (get_merge_function): Reword warning to be consistent with
526 type clash diagnostic in grammar_current_rule_check.
527
528 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
529 bug in trigraph handling.
530
531 * src/output.c (prepare_symbols): When printing token names,
532 escape "[" as "@<:@" and likewise for "]".
533
534 * src/system.h (errno): Remove declaration, as we are now
535 assuming C89 or better, and C89 guarantees errno.
536
537 2002-10-30 Paul Eggert <eggert@twinsun.com>
538
539 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
540 Check for close failures.
541 * src/files.h (xfclose): Return void, not int, since it always
542 returned zero.
543 * src/files.c (xfclose): Likewise. Report I/O error if ferror
544 indicates one.
545 * src/output.c (output_skeleton): Use xfclose rather than fclose
546 and ferror. xfclose now checks ferror.
547
548 * data/glr.c (YYLEFTMOST_STATE): Remove.
549 (yyreportTree): Use a stack-based leftmost state. This avoids
550 our continuing battles with bogus warnings about initializers.
551
552 2002-10-30 Akim Demaille <akim@epita.fr>
553
554 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
555 #if.
556
557 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
558
559 * tests/glr-regr1.at: New test for reported regressions.
560 * tests/testsuite.at: Add glr-regr1.at test.
561 * tests/Makefile.am: Add glr-regr1.at test.
562
563 2002-10-24 Paul Eggert <eggert@twinsun.com>
564
565 Version 1.75a.
566
567 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
568 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
569 we use malloc. Don't assume 'A' through 'Z' are contiguous.
570 Don't assume strdup exists; POSIX says its an XSI extension.
571 Check for buffer overflow on input.
572
573 2002-10-24 Akim Demaille <akim@epita.fr>
574
575 * src/output.c (output_skeleton): Don't disable M4sugar comments
576 too soon: it results in comments being expanded.
577 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
578 first output.
579
580 2002-10-24 Akim Demaille <akim@epita.fr>
581
582 * data/yacc.c (m4_int_type): New.
583 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
584 char' as only yacc.c wants K&R portability.
585 * data/glr.c (yysigned_char): Remove.
586 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
587 Reported by Quoc Peyrot.
588
589 2002-10-23 Paul Eggert <eggert@twinsun.com>
590
591 * src/main.c (main): With --trace=time, report times even if a
592 non-fatal error occurs. Formerly, the times were reported in some
593 such cases but not in others.
594 * src/reader.c (reader): Just return if a complaint has been issued,
595 instead of exiting, so that 'main' can report times.
596
597 2002-10-22 Akim Demaille <akim@epita.fr>
598
599 * src/system.h: Include sys/types.
600 Reported by Bert Deknuydt.
601
602 2002-10-23 Paul Eggert <eggert@twinsun.com>
603
604 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
605 Suggested by Art Haas.
606
607 2002-10-22 Paul Eggert <eggert@twinsun.com>
608
609 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
610 decl; not needed any more.
611 * src/main.c (main): Use return to exit, undoing yesterday's change.
612 The last OS that we could find where this wouldn't work is
613 SunOS 3.5, and that's too old to worry about now.
614
615 * data/glr.c (struct yyltype): Define members even when not
616 doing locations. This is more consistent with yacc.c, and it
617 works around the following bug reports:
618 http://mail.gnu.org/pipermail/bug-bison/2002-October/001764.html
619 http://mail.gnu.org/pipermail/bug-bison/2002-October/001769.html
620 and I hope it also fixes this bug report:
621 http://mail.gnu.org/pipermail/bug-bison/2002-October/001748.html
622
623 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
624 @acronym consistently. Standardize on "Yacc" instead of "YACC",
625 "Algol" instead of "ALGOL". Give a bit more history about BNF.
626
627 2002-10-22 Akim Demaille <akim@epita.fr>
628
629 * data/README: New.
630
631 2002-10-21 Paul Eggert <eggert@twinsun.com>
632
633 Be consistent about 'bool'; the old code used an enum in one
634 module and an int in another, and this violates the C standard.
635 * m4/stdbool.m4: New file, from coreutils 4.5.3.
636 * configure.ac (AC_HEADER_STDBOOL): Add.
637 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
638 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
639 * src/symtab.c (hash_compare_symbol_t): Likewise.
640 * src/system.h (bool, false, true): Use a definition consistent
641 with ../lib/hash.c. All uses changed.
642
643 * src/complain.c (warning_issued): Renamed from warn_message_count,
644 so that we needn't worry about integer overflow (!).
645 Now of type bool. All uses changed.
646 (complaint_issued): Renamed from complain_message_count; likewise.
647
648 * src/main.c (main): Use exit to exit with failure.
649
650 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
651 rather than 1 and 0.
652 * src/main.c (main): Likewise.
653 * src/getargs.c (getargs): Likewise.
654 * src/reader.c (reader): Likewise.
655
656 * src/getarg.c (getargs): Remove duplicate code for
657 "Try `bison --help'".
658
659 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
660 What was that "2" for?
661
662 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
663 * src/getargs.c (usage): Likewise.
664
665 * src/getargs.c (getargs): When there are too few operands, report
666 the last one. When there are too many, report the first extra
667 one. This is how diffutils does it.
668
669 2002-10-20 Paul Eggert <eggert@twinsun.com>
670
671 Remove K&R vestiges.
672 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
673 * src/complain.c (VA_START): Remove. Assume prototypes.
674 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
675 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
676 fatal): Assume prototypes.
677 * src/complain.h: Assume prototypes.
678 * src/system.h (PARAMS): Remove.
679 Include <limits.h> unconditionally, since it's guaranteeed even
680 for a freestanding C89 compiler.
681 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
682 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
683
684 2002-10-20 Akim Demaille <akim@epita.fr>
685
686 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
687 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
688 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
689 (yyresolveStates, yyresolveAction, yyresolveStack)
690 (yyprocessOneStack): Use them.
691 (yy_reduce_print): New.
692 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
693
694 2002-10-20 Akim Demaille <akim@epita.fr>
695
696 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
697 arguments and output `void'.
698 (b4_c_function): Rename as...
699 (b4_c_function_def): this.
700 (b4_c_function_decl, b4_c_ansi_function_def)
701 (b4_c_ansi_function_decl): New.
702 Change the interpretation of the arguments: before `int, foo', now
703 `int foo, foo'.
704 * data/yacc.c (yyparse): Prototype and define thanks to these.
705 Adjust b4_c_function_def uses.
706 * data/glr.c (yyparse): Likewise, but ANSI only.
707
708 2002-10-20 Akim Demaille <akim@epita.fr>
709
710 * src/output.c (prepare): Move the definition of `tokens_number',
711 `nterms_number', `undef_token_number', `user_token_number_max'
712 to...
713 (prepare_tokens): Here.
714 (prepare_tokens): Rename as...
715 (prepare_symbols): this.
716 (prepare): Move the definition of `rules_number' to...
717 (prepare_rules): here.
718 (prepare): Move the definition of `last', `final_state_number',
719 `states_number' to...
720 (prepare_states): here.
721 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
722
723 2002-10-20 Akim Demaille <akim@epita.fr>
724
725 * src/tables.h, src/tables.c, src/output.c: Comment changes.
726
727 2002-10-20 Akim Demaille <akim@epita.fr>
728
729 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
730 * data/c.m4: here.
731
732 2002-10-20 Akim Demaille <akim@epita.fr>
733
734 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
735 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
736 `pair'.
737 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
738 `name' to...
739 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
740 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
741 These.
742
743 2002-10-19 Paul Eggert <eggert@twinsun.com>
744
745 Do not create a temporary file, as that involves security and
746 cleanup headaches. Instead, use a pair of pipes.
747 Derived from a suggestion by Florian Krohm.
748 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
749 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
750 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
751 (BISON_PREREQ_SUBPIPE): Add.
752 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
753 Add subpipe.h, subpipe.c.
754 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
755 * po/POTFILES.in: Add lib/subpipe.c.
756 * src/output.c: Include "subpipe.h".
757 (m4_invoke): Remove decl.
758 (scan_skel): New decl.
759 (output_skeleton): Use pipe rather than temporary file for m4 input.
760 Check that m4sugar.m4 is readable, to avoid deadlock.
761 Check for pipe I/O error.
762 * src/scan-skel.l (readpipe): Remove decl.
763 (scan_skel): New function, to be used in place of m4_invoke.
764 Read from stream rather than file.
765
766 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
767 float, as this generates a warning on Solaris 8 + GCC 3.2 with
768 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
769 this generates a more-accurate value anyway.
770
771 * lib/timevar.c (timervar_accumulate): Rename locals to
772 avoid confusion with similarly-named more-global.
773 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
774
775 * src/output.c (prepare): Use xstrdup to convert char const *
776 to char *, to avoid GCC warning.
777
778 2002-10-19 Akim Demaille <akim@epita.fr>
779
780 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
781 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
782 Use them to have `calc.y' ready for %pure-parser.
783 * data/yacc.c (YYLEX): Pass a yylex return type to
784 b4_c_function_call.
785
786 2002-10-19 Akim Demaille <akim@epita.fr>
787
788 Prototype support of %lex-param and %parse-param.
789
790 * src/parse-gram.y: Add the definition of the %lex-param and
791 %parse-param tokens, plus their rules.
792 Drop the `_' version of %glr-parser.
793 Add the "," token.
794 * src/scan-gram.l (INITIAL): Scan them.
795 * src/muscle_tab.c: Comment changes.
796 (muscle_insert, muscle_find): Rename `pair' as `probe'.
797 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
798 (muscle_entry_s): The `value' member is no longer const.
799 Adjust all dependencies.
800 * src/muscle_tab.c (muscle_init): Adjust: use
801 MUSCLE_INSERT_STRING.
802 Initialize the obstack earlier.
803 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
804 (muscle_pair_list_grow): New.
805 * data/c.m4 (b4_c_function_call, b4_c_args): New.
806 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
807 * tests/calc.at: Use %locations, not --locations.
808 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
809
810 2002-10-19 Akim Demaille <akim@epita.fr>
811
812 * src/getargs.c (usage): Take status as argument and exit
813 accordingly.
814 Report the traditional `Try ... --help' message when status != 0.
815 (usage, version): Don't take a FILE * as arg, it is pointless.
816 (getargs): When there is an incorrect number of arguments, make it
817 an error, and report it GNUlically thanks to `usage ()'.
818
819 2002-10-18 Paul Eggert <eggert@twinsun.com>
820
821 * data/glr.c (yyreportParseError): Don't assume that sprintf
822 yields the length of the printed string, as this is not true
823 on SunOS 4.1.4. Reported by Peter Klein.
824
825 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
826 * tests/conflicts.at (%nonassoc and eof): Likewise.
827 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
828
829 2002-10-17 Akim Demaille <akim@epita.fr>
830
831 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
832 * src/getargs.c (trace_types, trace_args): Adjust.
833 * src/reader.c (grammar_current_rule_prec_set)
834 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
835 Standardize error messages.
836 And s/@prec/%prec/!
837 (reader): Use trace_flag to enable scanner/parser debugging,
838 instead of an adhoc scheme.
839 * src/scan-gram.l: Remove trailing debugging code.
840
841 2002-10-16 Paul Eggert <eggert@twinsun.com>
842
843 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
844 MUSCLE_TAB_H.
845
846 * NEWS: Officially drop support for building Bison with K&R C,
847 since it didn't work anyway and it's not worth worrying about.
848 * Makefile.maint (wget_files): Remove ansi2knr.c.
849 (ansi2knr.c-url_prefix): Remove.
850 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
851 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
852 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
853
854 2002-10-15 Paul Eggert <eggert@twinsun.com>
855
856 Stop using the "enum_" trick for K&R-style function definitions;
857 it confused me, and I was the author! Instead, assume that people
858 who want to use K&R C compilers (when using these modules in GCC,
859 perhaps?) will run ansi2knr.
860
861 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
862 All uses of "enum_" changed to "enum ".
863 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
864 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
865
866 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
867 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
868 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
869 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
870 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
871 abitset_not, abitset_ones, abitset_or, abitset_or_and,
872 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
873 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
874 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
875 Use function prototypes; this removes the need for declaring
876 static functions simply to provide their prototypes.
877 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
878 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
879 bitset_count_, bitset_create, bitset_dump, bitset_first,
880 bitset_free, bitset_init, bitset_last, bitset_next,
881 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
882 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
883 bitset_print, bitset_release_memory, bitset_toggle_,
884 bitset_type_choose, bitset_type_get, bitset_type_name_get,
885 debug_bitset): Likewise.
886 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
887 * lib/bitset_stats.c (bitset_log_histogram_print,
888 bitset_percent_histogram_print, bitset_stats_and,
889 bitset_stats_and_cmp, bitset_stats_and_or,
890 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
891 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
892 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
893 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
894 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
895 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
896 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
897 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
898 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
899 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
900 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
901 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
902 bitset_stats_zero): Likewise.
903 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
904 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
905 bitsetv_dump, debug_bitsetv): Likewise.
906 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
907 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
908 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
909 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
910 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
911 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
912 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
913 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
914 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
915 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
916 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
917 Likewise.
918 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
919 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
920 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
921 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
922 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
923 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
924 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
925 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
926 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
927 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
928 lbitset_xor_cmp, lbitset_zero): Likewise.
929
930 2002-10-14 Akim Demaille <akim@epita.fr>
931
932 Version 1.75.
933
934 2002-10-14 Akim Demaille <akim@epita.fr>
935
936 * tests/Makefile.am (maintainer-check-posix): New.
937
938 2002-10-14 Akim Demaille <akim@epita.fr>
939
940 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
941 member.
942
943 2002-10-14 Akim Demaille <akim@epita.fr>
944
945 * src/tables.c (table_ninf_remap): base -> tab.
946 Reported by Matt Rosing.
947
948 2002-10-14 Paul Eggert <eggert@twinsun.com>
949
950 * tests/action.at, tests/calc.at, tests/conflicts.at,
951 tests/cxx-type.at, tests/headers.at, tests/input.at,
952 tests/regression.at, tests/synclines.at, tests/torture.at:
953 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
954 so that the tests still work even if POSIXLY_CORRECT is set.
955 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
956
957 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
958 for portability to K&R hosts. Fix typo: signed char is guaranteed
959 only to 127, not to 128.
960 * data/glr.c (yysigned_char): New type.
961 * data/yacc.c (yysigned_char): Likewise.
962 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
963
964 2002-10-13 Paul Eggert <eggert@twinsun.com>
965
966 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
967 true due to limited range of data type" warning from GCC.
968
969 * data/c.m4 (b4_token_defines): Protect against double-inclusion
970 by wrapping enum yytokentype's definition inside #ifndef
971 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
972
973 2002-10-13 Akim Demaille <akim@epita.fr>
974
975 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
976 Un yy- yyrhs to avoid the name clash with the global YYRHS.
977
978 2002-10-13 Akim Demaille <akim@epita.fr>
979
980 * Makefile.maint: Update from Autoconf 2.54.
981 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
982
983 2002-10-13 Akim Demaille <akim@epita.fr>
984
985 * src/print.c (print_state): Separate the list of solved conflicts
986 from the other items.
987 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
988
989 2002-10-13 Akim Demaille <akim@epita.fr>
990
991 Let nondeterministic skeletons be usable with deterministic
992 tables.
993
994 With the patch, GAWK compiled by GCC without -O2 passes its test
995 suite using a GLR parser driven by LALR tables. It fails with -O2
996 because `struct stat' gives two different answers on my machine:
997 88 (definition of an auto var) and later 96 (memset on this var).
998 Hence the stack is badly corrumpted. The headers inclusion is to
999 blame: if I move the awk.h inclusion before GLR's system header
1000 inclusion, the two struct stat have the same size.
1001
1002 * src/tables.c (pack_table): Always create conflict_table.
1003 (token_actions): Always create conflict_list.
1004 * data/glr.c (YYFLAG): Remove, unused.
1005
1006 2002-10-13 Akim Demaille <akim@epita.fr>
1007
1008 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
1009 (O0FLAGS): New.
1010 (VALGRIND, GXX): New.
1011 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
1012 * tests/bison.in: Run $PREBISON a pre-command.
1013 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
1014 (maintainer-check-g++): New.
1015 * Makefile.am (maintainer-check): New.
1016
1017 2002-10-13 Akim Demaille <akim@epita.fr>
1018
1019 * data/glr.c: Formatting changes.
1020 Tweak some trace messages to match yacc.c's.
1021
1022 2002-10-13 Akim Demaille <akim@epita.fr>
1023
1024 GLR parsers sometimes raise parse errors instead of performing the
1025 default reduction.
1026 Reported by Charles-Henry de Boysson.
1027
1028 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
1029 check the length of the traces when %glr.
1030 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
1031 GLR's traces.
1032 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
1033 Test GLR parsers.
1034 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
1035 (yyltype): Remove the yy prefix from the member names.
1036 (yytable): Complete its comment.
1037 (yygetLRActions): Map error action number from YYTABLE from
1038 YYTABLE_NINF to 0.
1039 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
1040 (which was a bug: it should have been YYTABEL_NINF, and yet it was
1041 not satisfying as we could compare an YYACTION computed from
1042 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
1043 only value for error actions.
1044 (yyreportParseError): In verbose parse error messages, don't issue
1045 `error' in the list of expected tokens.
1046 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
1047 next action to perform to match glr.c's decoding.
1048 (yytable): Complete its comment.
1049
1050 2002-10-13 Paul Eggert <eggert@twinsun.com>
1051
1052 Fix problem reported by Henrik Grubbstroem in
1053 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001670.html>:
1054 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
1055 because the Bison parser reads the second action before reducing
1056 the first one.
1057 * src/scan-gram.l (rule_length): New static var.
1058 Use it to keep track of the rule length in the scanner, since
1059 we can't expect the parser to be in lock-step sync with the scanner.
1060 (handle_action_dollar, handle_action_at): Use this var.
1061 * tests/actions.at (Exotic Dollars): Test for the problem.
1062
1063 2002-10-12 Paul Eggert <eggert@twinsun.com>
1064
1065 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
1066 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
1067 Include <sys/time.h> when checking for clock_t and struct tms.
1068 Use same include order as source.
1069 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
1070 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001674.html>.
1071
1072 * lib/timevar.c: Update copyright date and clarify comments.
1073 (get_time) [IN_GCC]: Keep the GCC version for reference.
1074
1075 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
1076 GCC version as of today, then merge Bison's changes.
1077 Change "GCC" to "Bison" in copyright notice. timevar.def's
1078 author is Akim, so change that too.
1079
1080 * src/reader.c (grammar_current_rule_check):
1081 Don't worry about the default action if $$ is untyped.
1082 Prevents bogus warnings reported by Jim Gifford in
1083 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001673.html>.
1084
1085 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
1086 * data/glr.c, data/lalr1.cc, data/yacc.c:
1087 Output token definitions before the first part of user declarations.
1088 Fixes compatibility problem reported by Jim Gifford for kbd in
1089 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001672.html>.
1090
1091 2002-10-11 Paul Eggert <eggert@twinsun.com>
1092
1093 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
1094 (yyparse): here. This undoes some of the 2002-07-25 change.
1095 Compatibility problem reported by Ralf S. Engelschall with
1096 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
1097
1098 2002-10-11 Akim Demaille <akim@epita.fr>
1099
1100 * tests/regression.at Characters Escapes): New.
1101 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
1102 characters.
1103 Reported by Jan Nieuwenhuizen.
1104
1105 2002-10-11 Akim Demaille <akim@epita.fr>
1106
1107 * po/id.po: New.
1108
1109 2002-10-10 Paul Eggert <eggert@twinsun.com>
1110
1111 Portability fixes for bitsets; this also avoids several GCC
1112 warnings.
1113
1114 * lib/abitset.c: Include <stddef.h>, for offsetof.
1115 * lib/lbitset.c: Likewise.
1116
1117 * lib/abitset.c (abitset_bytes): Return a size that is aligned
1118 properly for vectors of objects. Do not assume that adding a
1119 header size to a multiple of a word size yields a value that is
1120 properly aligned for the whole union.
1121 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1122
1123 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
1124 unique names for structures.
1125 * lib/ebitset.c (ebitset_bytes): Likewise.
1126 * lib/lbitset.c (lbitset_bytes): Likewise.
1127
1128 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
1129 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
1130 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
1131 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
1132 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
1133 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
1134 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
1135 to improve the type-checking that GCC can do.
1136 * lib/bitset.c (bitset_op4_cmp): Likewise.
1137 * lib/bitset_stats.c (bitset_stats_count,
1138 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
1139 bitset_stats_copy, bitset_stats_disjoint_p,
1140 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
1141 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
1142 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
1143 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
1144 bitset_stats_and_or_cmp, bitset_stats_andn_or,
1145 bitset_stats_andn_or_cmp, bitset_stats_or_and,
1146 bitset_stats_or_and_cmp): Likewise.
1147 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
1148 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
1149 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
1150 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
1151
1152 * lib/abitset.h: Include bitset.h, not bbitset.h.
1153 * lib/ebitset.h: Likewise.
1154 * lib/lbitset.h: Likewise.
1155
1156 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
1157 All instances of parameters of type enum bitset_opts are now of
1158 type enum_bitset_opts, to conform to the C Standard, and similarly
1159 for enum_bitset_type.
1160 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
1161 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
1162
1163 Do not use "struct bitset_struct" to mean different things in
1164 different modules. Not only is this confusing, it violates
1165 the C Standard, which requires that structure types in different
1166 modules must be compatible if one is to be passed to the other.
1167 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
1168 All instances of "struct bitset_struct *" replaced with "bitset".
1169 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
1170 (union bitset_union, struct abitset_struct, struct ebitset_struct,
1171 struct lbitset_struct, struct bitset_stats_struct): New types.
1172 All uses of struct bitset_struct changed to union bitset_union,
1173 etc.
1174 * lib/abitset.c (struct abitset_struct, abitset,
1175 struct bitset_struct): Remove.
1176 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
1177 struct bitset_struct): Remove.
1178 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
1179 bitset_struct): Remove.
1180 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
1181 Likewise.
1182
1183 Do not call a function of type T using a call that assumes the
1184 function is of a different type U. Standard C requires that a
1185 function must be called with a type that is compatible with its
1186 definition.
1187 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
1188 New decls.
1189 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
1190 New functions.
1191 * lib/ebitset.c (PFV): Remove.
1192 * lib/lbitset.c (PFV): Likewise.
1193 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
1194 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
1195 decls.
1196 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
1197 (ebitset_vtable): Use them.
1198 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
1199 lbitset_xor): New functions.
1200 (lbitset_vtable): Use them.
1201
1202 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
1203 Declare.
1204
1205 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
1206 GCC warning.
1207 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
1208 Use offsetof, for simplicity.
1209
1210 2002-10-06 Paul Eggert <eggert@twinsun.com>
1211
1212 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
1213 the same width as int. This reapplies a hunk of the 2002-08-12 patch
1214 <http://mail.gnu.org/pipermail/bison-patches/2002-August/001111.html>,
1215 which was inadvertently undone by the 2002-09-30 patch.
1216 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
1217 the same width as int.
1218
1219 2002-10-04 Paul Eggert <eggert@twinsun.com>
1220
1221 Version 1.50.
1222
1223 * configure.ac (AC_INIT), NEWS: Increment version number.
1224
1225 * doc/bison.texinfo: Minor spelling, grammar, and white space
1226 fixes.
1227 (Symbols): Mention that any negative value returned from yylex
1228 signifies end-of-input. Warn about negative chars. Mention
1229 the portable Standard C character set.
1230
1231 The GNU coding standard says CFLAGS and YFLAGS are reserved
1232 for the installer to set.
1233 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
1234 * src/Makefile.am (AM_CFLAGS): Likewise.
1235 (AM_YFLAGS): Renamed from YFLAGS.
1236
1237 Fix some MAX and MIN problems.
1238 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
1239 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
1240 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
1241 * src/reader.c (reader): Use it.
1242
1243 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
1244 POSIX 1003.1-2001 has removed fgrep.
1245
1246 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1247
1248 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
1249 interpreted as signed.
1250 * lib/ebitset.c (ebitset_list): Fix bug.
1251
1252 2002-10-01 Paul Eggert <eggert@twinsun.com>
1253
1254 More fixes for 64-bit hosts and large bitsets.
1255
1256 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
1257 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
1258 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
1259 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
1260 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
1261 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
1262 bitset_count_): Likewise.
1263 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
1264 bitset_first, bitset_last): Likewise.
1265 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
1266 bitset_stats_list_reverse, bitset_stats_size,
1267 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
1268 Likewise.
1269 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1270 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
1271 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
1272 bitsetv_reflexive_transitive_closure): Likewise.
1273 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
1274 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
1275 Likewise.
1276 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
1277 Likewise.
1278
1279 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
1280 Use size_t, not unsigned int, to count bytes.
1281 * lib/abitset.h (abitset_bytes): Likewise.
1282 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
1283 Likewise.
1284 * lib/bitset.h (bitset_bytes): Likewise.
1285 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
1286 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
1287 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1288 * lib/ebitset.c (ebitset_bytes): Likewise.
1289 * lib/ebitset.h (ebitset_bytes): Likewise.
1290 * lib/lbitset.c (lbitset_bytes): Likewise.
1291 * lib/lbitset.h (lbitset_bytes): Likewise.
1292
1293 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
1294 abitset_subset_p, abitset_disjoint_p, abitset_and,
1295 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
1296 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
1297 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
1298 abitset_or_and, abitset_or_and_cmp):
1299 Use bitset_windex instead of unsigned int.
1300 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
1301 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
1302 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
1303 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
1304 Likewise.
1305 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
1306
1307 * lib/bitset.c (bitset_print):
1308 Use proper printf formats for widths of integer types.
1309 * lib/bitset_stats.c (bitset_percent_histogram_print,
1310 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
1311 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1312 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
1313 * lib/lbitset.c (lbitset_bytes): Likewise.
1314
1315 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
1316 BITSET_SIZE_MAX): New macros.
1317 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
1318 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
1319 to BITSET_WINDEX_MAX.
1320
1321 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
1322 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
1323 since we now return the bitset_bindex type (not int).
1324
1325 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
1326 when computing sizes.
1327 * lib/ebitset.c (ebitset_elts_grow): Likewise.
1328
1329 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
1330 and avoid cast to unsigned.
1331
1332 2002-09-30 Akim Demaille <akim@epita.fr>
1333
1334 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1335 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
1336 Updates from Michael Hayes.
1337
1338 2002-09-30 Art Haas <ahaas@neosoft.com>
1339
1340 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
1341 invocations.
1342 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
1343 defined.
1344
1345 2002-09-27 Akim Demaille <akim@epita.fr>
1346
1347 Version 1.49c.
1348
1349 2002-09-27 Akim Demaille <akim@epita.fr>
1350
1351 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
1352 (Because of AC_LIBSOURCE).
1353
1354 2002-09-27 Akim Demaille <akim@epita.fr>
1355
1356 Playing with Autoscan.
1357
1358 * configure.ac: Remove the old LIBOBJ tweaks.
1359 (AC_REPLACE_FUNCS): Add strrchr and strtol.
1360 * lib/strrchr.c: New.
1361 * lib/strtol.c: New, from the Coreutils 4.5.1.
1362
1363 2002-09-27 Akim Demaille <akim@epita.fr>
1364
1365 Playing with Autoscan.
1366
1367 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
1368 * lib/Makefile.am (libbison_a_SOURCES): No longer include
1369 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
1370 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
1371 Coreutils 4.5.1.
1372
1373 2002-09-24 Akim Demaille <akim@epita.fr>
1374
1375 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
1376 (Frequently Asked Questions, Parser Stack Overflow): New.
1377
1378 2002-09-13 Akim Demaille <akim@epita.fr>
1379
1380 Playing with autoscan.
1381
1382 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
1383 * src/files.c (skeleton_find): Remove, unused.
1384 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
1385 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
1386
1387 2002-09-13 Akim Demaille <akim@epita.fr>
1388
1389 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
1390 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
1391
1392 2002-09-13 Akim Demaille <akim@epita.fr>
1393
1394 * configure.ac: Require 2.54.
1395 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
1396 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
1397 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
1398 Remove, provided by Autoconf macros.
1399
1400 2002-09-12 Akim Demaille <akim@epita.fr>
1401
1402 * m4/prereq.m4: Update, from Coreutils 4.5.1.
1403
1404 2002-09-12 Akim Demaille <akim@epita.fr>
1405
1406 * m4/prereq.m4: Update, from Fileutils 4.1.5.
1407 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
1408 Reported by Martin Mokrejs.
1409
1410 2002-09-10 Akim Demaille <akim@epita.fr>
1411
1412 * src/parse-gram.y: Associate a human readable string to each
1413 token type.
1414 * tests/regression.at (Invalid inputs): Adjust.
1415
1416 2002-09-10 Gary V. Vaughan <gary@gnu.org>
1417
1418 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
1419 with an Autoconf-2.5x style configure.ac.
1420
1421 2002-09-06 Paul Eggert <eggert@twinsun.com>
1422
1423 * doc/bison.texinfo (Conditions): Make explicit that the GPL
1424 exception applies only to yacc.c. This is a modification of a
1425 patch originally suggested by Akim Demaille.
1426
1427 2002-09-06 Akim Demaille <akim@epita.fr>
1428
1429 * data/c.m4 (b4_copyright): Move the GPL exception comment from
1430 here to...
1431 * data/yacc.c: here.
1432
1433 * data/lalr1.cc (struct yyltype): Don't define it, since we use
1434 LocationType.
1435 (b4_ltype): Default to yy::Location from location.hh.
1436
1437 2002-09-04 Jim Meyering <jim@meyering.net>
1438
1439 * data/yacc.c: Guard the declaration of yytoknum also with
1440 `#ifdef YYPRINT', so it is declared only when used.
1441
1442 2002-09-04 Akim Demaille <akim@epita.fr>
1443
1444 * configure.in: Rename as...
1445 * configure.ac: this.
1446 Bump to 1.49c.
1447
1448 2002-09-04 Akim Demaille <akim@epita.fr>
1449
1450 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
1451 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
1452 translate maintainer only messages.
1453
1454 2002-08-12 Paul Eggert <eggert@twinsun.com>
1455
1456 Version 1.49b.
1457
1458 * Makefile.am (SUBDIRS): Remove intl.
1459 (DISTCLEANFILES): Remove.
1460 * NEWS: Mention that GNU M4 is now required. Clarify what is
1461 meant by "larger grammars". Mention the pt_BR translation.
1462 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
1463 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
1464 Bump version from 0.11.2 to 0.11.5.
1465 (BISON_PREREQ_STAGE): Remove.
1466 (AM_GNU_GETTEXT): Use external gettext.
1467 (AC_OUTPUT): Remove intl/Makefile.
1468
1469 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
1470
1471 * data/glr.c: Include string.h, for strlen.
1472 (yyreportParseError): Use size_t for yysize.
1473 (yy_yypstack): No longer nested inside yypstates, as nested
1474 functions are not portable. Do not assume size_t is the
1475 same width as int.
1476 (yypstates): Do not assume that ptrdiff_t is the same width
1477 as int, and similarly for yyposn and YYINDEX.
1478
1479 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
1480
1481 * lib/Makefile.am (INCLUDES): Do not include from the intl
1482 directory, which has been removed.
1483 * src/Makefile.am (INCLUDES): Likewise.
1484
1485 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
1486 (bitsets_sources, additional_bitsets_sources, timevars_sources):
1487 New vars.
1488
1489 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
1490 * tests/Makefile.am (EXTRA_DIST): Likewise.
1491
1492 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
1493 Do not assume that bitset_windex is the same width as unsigned.
1494
1495 * lib/abitset.c (abitset_unused_clear): Do not assume that
1496 bitset_word is the same width as int.
1497 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
1498 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
1499 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
1500 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
1501 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
1502
1503 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
1504 portability to one's complement hosts!).
1505 * lib/ebitset.c (ebitset_op1): Likewise.
1506 * lib/lbitset.c (lbitset_op1): Likewise.
1507
1508 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
1509 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1510 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
1511 Sync with fileutils.
1512 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
1513 lib/gettext.h: Sync with diffutils.
1514
1515 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
1516 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
1517
1518 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
1519 PROTOTYPES to check for prototypes, and "defined __STDC__" to
1520 check for void *.
1521
1522 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
1523 size_t; the old version tried to do this but casted improperly.
1524 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
1525 (bitset_test): Now returns int, not unsigned long.
1526
1527 * lib/bitset_stats.c: Include "gettext.h".
1528 (_): New macro.
1529 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
1530 name locals "index", as it generates unnecessary warnings on some
1531 hosts that have an "index" function.
1532
1533 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
1534 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
1535 they need translation.
1536 * src/LR0.c (state_list_append, new_itemsets, get_state,
1537 append_states, generate_states): Likewise.
1538 * src/assoc.c (assoc_to_string): Likewise.
1539 * src/closure.c (print_closure, set_firsts, closure): Likewise.
1540 * src/gram.c (grammar_dump): Likewise.
1541 * src/injections.c (injections_compute): Likewise.
1542 * src/lalr.c (lookaheads_print): Likewise.
1543 * src/relation.c (relation_transpose): Likewise.
1544 * src/scan-gram.l: Likewise.
1545 * src/tables.c (table_grow, pack_vector): Likewise.
1546
1547 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
1548 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
1549 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
1550 * m4/mbstate_t.m4: Sync with fileutils.
1551 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
1552
1553 * po/LINGUAS: Add pt_BR.
1554 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
1555 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
1556 lib/timevar.c.
1557 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
1558 manual recommends.
1559 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
1560
1561 * src/complain.c (strerror_r): Remove decl; not needed.
1562 (strerror): Use same pattern as ../lib/error.c.
1563
1564 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
1565
1566 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
1567
1568 * src/main.c (main): Cast result of bindtextdomain and textdomain
1569 to void, to avoid a GCC warning when --disable-nls is in effect.
1570
1571 * src/scan-gram.l: Use strings rather than escapes when possible,
1572 to minimize the number of warnings from xgettext.
1573 (handle_action_dollar, handle_action_at): Don't use isdigit,
1574 as it mishandles negative chars and it may not work as expected
1575 outside the C locale.
1576
1577 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
1578 this is a GCC extension and is not portable to other compilers.
1579
1580 * src/system.h (alloca): Use same pattern as ../lib/error.c.
1581 Do not include <ctype.h>; no longer needed.
1582 Do not include <malloc.h>; no longer needed (and generates
1583 warnings on OpenBSD 3.0).
1584
1585 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
1586 it's not portable.
1587
1588 * tests/regression.at: Do not use 'cc -c input.c -o input';
1589 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
1590
1591 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
1592 exit status as failure, not just exit status 1. Sun C exits
1593 with status 2 sometimes.
1594
1595 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
1596 Use it for the two large tests.
1597
1598 2002-08-02 Akim Demaille <akim@epita.fr>
1599
1600 * src/conflicts.c (conflicts_output): Don't output rules never
1601 reduced here, since anyway that computation doesn't work.
1602 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
1603 (rule_useless_p, rule_never_reduced_p): New.
1604 (grammar_rules_partial_print): Use a filter instead of a range.
1605 Display the title only if needed.
1606 (grammar_rules_print): Adjust.
1607 (grammar_rules_never_reduced_report): New.
1608 * src/tables.c (action_row): Move the computation of rules never
1609 reduced to...
1610 (token_actions): here.
1611 * src/main.c (main): Make the parser before making the report, so
1612 that rules never reduced are computed.
1613 Call grammar_rules_never_reduced_report.
1614 * src/print.c (print_results): Report rules never reduced.
1615 * tests/conflicts.at, tests/reduce.at: Adjust.
1616
1617 2002-08-01 Akim Demaille <akim@epita.fr>
1618
1619 Instead of attaching lookaheads and duplicating the rules being
1620 reduced by a state, attach the lookaheads to the reductions.
1621
1622 * src/state.h (state_t): Remove the `lookaheads',
1623 `lookaheads_rule' member.
1624 (reductions_t): Add a `lookaheads' member.
1625 Use a regular array for the `rules'.
1626 * src/state.c (reductions_new): Initialize the lookaheads member
1627 to 0.
1628 (state_rule_lookaheads_print): Adjust.
1629 * src/state.h, src/state.c (state_reductions_find): New.
1630 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
1631 (count_rr_conflicts): Adjust.
1632 * src/lalr.c (LArule): Remove.
1633 (add_lookback_edge): Adjust.
1634 (state_lookaheads_count): New.
1635 (states_lookaheads_initialize): Merge into...
1636 (initialize_LA): this.
1637 (lalr_free): Adjust.
1638 * src/main.c (main): Don't free nullable and derives too early: it
1639 is used by --verbose.
1640 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
1641
1642 2002-08-01 Akim Demaille <akim@epita.fr>
1643
1644 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
1645 `rule_number_t**'.
1646 (set_derives, free_derives): Rename as...
1647 (derives_compute, derives_free): this.
1648 Adjust all dependencies.
1649 * src/nullable.c (set_nullable, free_nullable): Rename as...
1650 (nullable_compute, nullable_free): these.
1651 (rule_list_t): Store rule_t *, not rule_number_t.
1652 * src/state.c (state_rule_lookaheads_print): Directly compare rule
1653 pointers, instead of their numbers.
1654 * src/main.c (main): Call nullable_free, and derives_free earlier,
1655 as they were lo longer used.
1656
1657 2002-08-01 Akim Demaille <akim@epita.fr>
1658
1659 * lib/timevar.c (get_time): Include children time.
1660 * src/lalr.h (LA, LArule): Don't export them: used with the
1661 state_t.
1662 * src/lalr.c (LA, LArule): Static.
1663 * src/lalr.h, src/lalr.c (lalr_free): New.
1664 * src/main.c (main): Call it.
1665 * src/tables.c (pack_vector): Check whether loc is >= to the
1666 table_size, not >.
1667 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
1668 (tables_generate): do it, since that's also it which allocates
1669 them.
1670 Don't free LA and LArule, main does.
1671
1672 2002-07-31 Akim Demaille <akim@epita.fr>
1673
1674 Separate parser tables computation and output.
1675
1676 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
1677 (conflict_list, conflict_list_cnt, table, check, table_ninf)
1678 (yydefgoto, yydefact, high): Move to...
1679 * src/tables.h, src/tables.c: here.
1680 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1681 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1682 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
1683 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
1684 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
1685 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
1686 (action_row, save_row, token_actions, save_column, default_goto)
1687 (goto_actions, sort_actions, matching_state, pack_vector)
1688 (table_ninf_remap, pack_table, prepare_actions): Move to...
1689 * src/tables.c: here.
1690 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
1691 * src/output.c (token_actions, output_base, output_conflicts)
1692 (output_check): Merge into...
1693 (prepare_actions): this.
1694 (actions_output): Rename as...
1695 (user_actions_output): this.
1696 * src/main.c (main): Call tables_generate and tables_free.
1697
1698 2002-07-31 Akim Demaille <akim@epita.fr>
1699
1700 Steal GCC's --time-report support.
1701
1702 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
1703 stolen/adjusted from GCC.
1704 * m4/stage.m4: Remove time related checks.
1705 * m4/timevar.m4: New.
1706 * configure.in: Adjust.
1707 * src/system.h: Adjust to using timevar.h.
1708 * src/getargs.h, src/getargs.c: Support trace_time for
1709 --trace=time.
1710 * src/main.c (stage): Remove.
1711 (main): Replace `stage' invocations with timevar calls.
1712 * src/output.c: Insert pertinent timevar calls.
1713
1714 2002-07-31 Akim Demaille <akim@epita.fr>
1715
1716 Let --trace have arguments.
1717
1718 * src/getargs.h (enum trace_e): New.
1719 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
1720 (long_options, short_options): --trace/-T takes an optional
1721 argument.
1722 Change all the uses of trace_flag to reflect the new flags.
1723 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
1724
1725 Strengthen `stage' portability.
1726
1727 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
1728 * configure.in: Use it.
1729 Don't check for malloc.h and sys/times.h.
1730 * src/system.h: Include them when appropriate.
1731 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
1732 times and struct tms are available.
1733
1734 2002-07-30 Akim Demaille <akim@epita.fr>
1735
1736 In verbose parse error message, don't report `error' as an
1737 expected token.
1738 * tests/actions.at (Printers and Destructors): Adjust.
1739 * tests/calc.at (Calculator $1): Adjust.
1740 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
1741 error message, do not report the parser accepts the error token in
1742 that state.
1743
1744 2002-07-30 Akim Demaille <akim@epita.fr>
1745
1746 Normalize conflict related messages.
1747
1748 * src/complain.h, src/complain.c (warn, complain): New.
1749 * src/conflicts.c (conflicts_print): Use them.
1750 (conflict_report_yacc): New, extracted from...
1751 (conflicts_print): here.
1752 * tests/conflicts.at, tests/existing.at: Adjust.
1753
1754 2002-07-30 Akim Demaille <akim@epita.fr>
1755
1756 Report rules which are never reduced by the parser: those hidden
1757 by conflicts.
1758
1759 * src/LR0.c (save_reductions): Don't make the final state too
1760 different: save its reduction (accept) instead of having a state
1761 without any action (no shift or goto, no reduce).
1762 Note: the final state is now a ``regular'' state, i.e., the
1763 parsers now contain `reduce 0' as default reduction.
1764 Nevertheless, since they decide to `accept' when yystate =
1765 final_state, they still will not reduce rule 0.
1766 * src/print.c (print_actions, print_reduction): Adjust.
1767 * src/output.c (action_row): Track reduced rules.
1768 (token_actions): Report rules never reduced.
1769 * tests/conflicts.at, tests/regression.at: Adjust.
1770
1771 2002-07-30 Akim Demaille <akim@epita.fr>
1772
1773 `stage' was accidently included in a previous patch.
1774 Initiate its autoconfiscation.
1775
1776 * configure.in: Look for malloc.h and sys/times.h.
1777 * src/main.c (stage): Adjust.
1778 Report only when trace_flag.
1779
1780 2002-07-29 Akim Demaille <akim@epita.fr>
1781
1782 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
1783 state_number_t.
1784 (errs_t): symbol_t*, not symbol_number_t.
1785 (reductions_t): rule_t*, not rule_number_t.
1786 (FOR_EACH_SHIFT): New.
1787 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
1788 * src/print.c, src/print_graph.c: Adjust.
1789
1790 2002-07-29 Akim Demaille <akim@epita.fr>
1791
1792 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
1793
1794 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
1795 (endtoken, accept): these.
1796 * src/reader.c (reader): Set endtoken's default tag to "$end".
1797 Set undeftoken's tag to "$undefined" instead of "$undefined.".
1798 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
1799 Adjust.
1800
1801 2002-07-29 Akim Demaille <akim@epita.fr>
1802
1803 * src/reduce.c (reduce_grammar): When the language is empty,
1804 complain about the start symbol, not the axiom.
1805 Use its location.
1806 * tests/reduce.at (Empty Language): New.
1807
1808 2002-07-26 Akim Demaille <akim@epita.fr>
1809
1810 * src/reader.h, src/reader.c (gram_error): ... can't get
1811 yycontrol without making too strong assumptions on the parser
1812 itself.
1813 * src/output.c (prepare_tokens): Use the real 0th value of
1814 token_translations instead of `0'.
1815 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
1816 visible here.
1817 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
1818 for the time being: %locations ought to provide it to yyerror.
1819
1820 2002-07-25 Akim Demaille <akim@epita.fr>
1821
1822 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
1823 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
1824 * tests/regression.at (Web2c Actions): Adjust.
1825
1826 2002-07-25 Akim Demaille <akim@epita.fr>
1827
1828 Stop storing rules from 1 to nrules + 1.
1829
1830 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
1831 * src/nullable.c, src/output.c, src/print.c, src/reader.c
1832 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
1833 Iterate from 0 to nrules.
1834 Use rule_number_as_item_number and item_number_as_rule_number.
1835 Adjust to `derive' now containing possibly 0.
1836 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
1837 Handle the `- 1' part in rule numbers from/to item numbers.
1838 * src/conflicts.c (log_resolution): Fix the message which reversed
1839 shift and reduce.
1840 * src/output.c (action_row): Initialize default_rule to -1.
1841 (token_actions): Adjust.
1842 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
1843 expected output.
1844 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
1845
1846 2002-07-25 Akim Demaille <akim@epita.fr>
1847
1848 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
1849 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
1850 (b4_c_knr_arg_decl): New.
1851 * data/yacc.c: Use it to define yysymprint, yydestruct, and
1852 yyreport_parse_error.
1853
1854 2002-07-25 Akim Demaille <akim@epita.fr>
1855
1856 * data/yacc.c (yyreport_parse_error): New, extracted from...
1857 (yyparse): here.
1858 (yydestruct, yysymprint): Move above yyparse.
1859 Be K&R compliant.
1860
1861 2002-07-25 Akim Demaille <akim@epita.fr>
1862
1863 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
1864 replace...
1865 (b4_sint_type, b4_uint_type): these.
1866 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
1867 * tests/regression.at (Web2c Actions): Adjust.
1868
1869 2002-07-25 Akim Demaille <akim@epita.fr>
1870
1871 * src/gram.h (TIEM_NUMBER_MAX): New.
1872 (item_number_of_rule_number, rule_number_of_item_number): Rename
1873 as...
1874 (rule_number_as_item_number, item_number_as_rule_number): these.
1875 Adjust dependencies.
1876 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1877 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1878 (symbol_number_to_vector_number): New.
1879 (order): Of vector_number_t* type.
1880 (base_t, BASE_MAX, BASE_MIN): New.
1881 (froms, tos, width, pos, check): Of base_t type.
1882 (action_number_t, ACTION_MIN, ACTION_MAX): New.
1883 (actrow): Of action_number_t type.
1884 (conflrow): Of unsigned int type.
1885 (table_ninf, base_ninf): New.
1886 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
1887 (muscle_insert_int_table, muscle_insert_base_table)
1888 (muscle_insert_rule_number_table): New.
1889 (prepare_tokens): Output `toknum' as int_table.
1890 (action_row): Returns a rule_number_t.
1891 Use ACTION_MIN, not SHRT_MIN.
1892 (token_actions): yydefact is rule_number_t*.
1893 (table_ninf_remap): New.
1894 (pack_table): Use it for `base' and `table'.
1895 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
1896 replaced with...
1897 (YYPACT_NINF, YYTABLE_NINF): these.
1898 (yypact, yytable): Compute their types instead of hard-coded
1899 `short'.
1900 * tests/regression.at (Web2c Actions): Adjust.
1901
1902 2002-07-19 Akim Demaille <akim@epita.fr>
1903
1904 * src/scan-gram.l (id): Can start with an underscore.
1905
1906 2002-07-16 Akim Demaille <akim@epita.fr>
1907
1908 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
1909 Adjust all former `associativity' dependencies.
1910 * src/symtab.c (symbol_new): Default associativity is `undef', not
1911 `right'.
1912 (symbol_check_alias_consistence): Adjust.
1913
1914 2002-07-09 Akim Demaille <akim@epita.fr>
1915
1916 * doc/bison.texinfo: Properly set the ``header'' part.
1917 Use @dircategory ``GNU programming tools'' as per Texinfo's
1918 documentation.
1919 Use @copying.
1920
1921 2002-07-09 Akim Demaille <akim@epita.fr>
1922
1923 * lib/quotearg.h: Protect against multiple inclusions.
1924 * src/location.h (location_t): Add a `file' member.
1925 (LOCATION_RESET, LOCATION_PRINT): Adjust.
1926 * src/complain.c (warn_at, complain_at, fatal_at): Drop
1927 `error_one_per_line' support.
1928
1929 2002-07-09 Akim Demaille <akim@epita.fr>
1930
1931 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
1932 * src/reader.c (lineno): Remove.
1933 Adjust all dependencies.
1934 (get_merge_function): Take a location and use complain_at.
1935 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
1936 * tests/regression.at (Invalid inputs, Mixing %token styles):
1937 Adjust.
1938
1939 2002-07-09 Akim Demaille <akim@epita.fr>
1940
1941 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
1942 recovery rule, and forbid extensions when --yacc.
1943 (gram_error): Use complain_at.
1944 * src/reader.c (reader): Exit if there were parse errors.
1945
1946 2002-07-09 Akim Demaille <akim@epita.fr>
1947
1948 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
1949 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
1950 Reported by R Blake <blakers@mac.com>.
1951
1952 2002-07-09 Akim Demaille <akim@epita.fr>
1953
1954 * data/yacc.c: Output the copyright notive in the header.
1955
1956 2002-07-03 Akim Demaille <akim@epita.fr>
1957
1958 * src/output.c (froms, tos): Are state_number_t.
1959 (save_column): sp, sp1, and sp2 are state_number_t.
1960 (prepare): Rename `final' as `final_state_number', `nnts' as
1961 `nterms_number', `nrules' as `rules_number', `nstates' as
1962 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
1963 unused.
1964 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
1965 * data/lalr1.cc (nsym_): Remove, unused.
1966
1967 2002-07-03 Akim Demaille <akim@epita.fr>
1968
1969 * src/lalr.h, src/lalr.c (goto_number_t): New.
1970 * src/lalr.c (goto_list_t): New.
1971 Propagate them.
1972 * src/nullable.c (rule_list_t): New.
1973 Propagate.
1974 * src/types.h: Remove.
1975
1976 2002-07-03 Akim Demaille <akim@epita.fr>
1977
1978 * src/closure.c (print_fderives): Use rule_rhs_print.
1979 * src/derives.c (print_derives): Use rule_rhs_print.
1980 (rule_list_t): New, replaces `shorts'.
1981 (set_derives): Add comments.
1982 * tests/sets.at (Nullable, Firsts): Adjust.
1983
1984 2002-07-03 Akim Demaille <akim@epita.fr>
1985
1986 * src/output.c (prepare_actions): Free `tally' and `width'.
1987 (prepare_actions): Allocate and free `order'.
1988 * src/symtab.c (symbols_free): Free `symbols'.
1989 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
1990 * src/output.c (m4_invoke): Move to...
1991 * src/scan-skel.l: here.
1992 (<<EOF>>): Close yyout, and free its name.
1993
1994 2002-07-03 Akim Demaille <akim@epita.fr>
1995
1996 Fix some memory leaks, and fix a bug: state 0 was examined twice.
1997
1998 * src/LR0.c (new_state): Merge into...
1999 (state_list_append): this.
2000 (new_states): Merge into...
2001 (generate_states): here.
2002 (set_states): Don't ensure a proper `errs' state member here, do it...
2003 * src/conflicts.c (conflicts_solve): here.
2004 * src/state.h, src/state.c: Comment changes.
2005 (state_t): Rename member `shifts' as `transitions'.
2006 Adjust all dependencies.
2007 (errs_new): For consistency, also take the values as argument.
2008 (errs_dup): Remove.
2009 (state_errs_set): New.
2010 (state_reductions_set, state_transitions_set): Assert that no
2011 previous value was assigned.
2012 (state_free): New.
2013 (states_free): Use it.
2014 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
2015 temporary storage: use `errs' and `nerrs' as elsewhere.
2016 (set_conflicts): Allocate and free this `errs'.
2017
2018 2002-07-02 Akim Demaille <akim@epita.fr>
2019
2020 * lib/libiberty.h: New.
2021 * lib: Update the bitset implementation from upstream.
2022 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
2023 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
2024 * src/main.c: Adjust bitset stats calls.
2025
2026 2002-07-01 Paul Eggert <eggert@twinsun.com>
2027
2028 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
2029 char, so that negative chars don't collide with $.
2030
2031 2002-06-30 Akim Demaille <akim@epita.fr>
2032
2033 Have the GLR tests be `warning' checked, and fix the warnings.
2034
2035 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
2036 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
2037 (yyremoveDeletes): `yyi' and `yyj' are size_t.
2038 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
2039 (yyaddDeferredAction): static.
2040 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
2041 (yyreportParseError): yyprefix is const.
2042 yytokenp is used only when verbose.
2043 (yy__GNUC__): Replace with __GNUC__.
2044 (yypdumpstack): yyi is size_t.
2045 (yypreference): Un-yy local variables and arguments, to avoid
2046 clashes with `yyr1'. Anyway, we are not in the user name space.
2047 (yytname_size): be an int, as is compared with ints.
2048 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
2049 Use them.
2050 * tests/cxx-gram.at: Use quotation to protect $1.
2051 Use AT_COMPILE to enable warnings hunts.
2052 Prototype yylex and yyerror.
2053 `Use' argc.
2054 Include `string.h', not `strings.h'.
2055 Produce and prototype stmtMerge only when used.
2056 yylex takes a location.
2057
2058 2002-06-30 Akim Demaille <akim@epita.fr>
2059
2060 We spend a lot of time in quotearg, in particular when --verbose.
2061
2062 * src/symtab.c (symbol_get): Store a quoted version of the key.
2063 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
2064 Adjust all callers.
2065
2066 2002-06-30 Akim Demaille <akim@epita.fr>
2067
2068 * src/state.h (reductions_t): Rename member `nreds' as num.
2069 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
2070 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
2071
2072 2002-06-30 Akim Demaille <akim@epita.fr>
2073
2074 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
2075 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
2076 (shifts_to): Rename as...
2077 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
2078 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
2079 (TRANSITION_IS_DISABLED, transitions_to): these.
2080
2081 2002-06-30 Akim Demaille <akim@epita.fr>
2082
2083 * src/print.c (print_shifts, print_gotos): Merge into...
2084 (print_transitions): this.
2085 (print_transitions, print_errs, print_reductions): Align the
2086 lookaheads columns.
2087 (print_core, print_transitions, print_errs, print_state,
2088 print_grammar): Output empty lines separator before, not after.
2089 (state_default_rule_compute): Rename as...
2090 (state_default_rule): this.
2091 * tests/conflicts.at (Defaulted Conflicted Reduction),
2092 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
2093 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
2094
2095 2002-06-30 Akim Demaille <akim@epita.fr>
2096
2097 Display items as we display rules.
2098
2099 * src/gram.h, src/gram.c (rule_lhs_print): New.
2100 * src/gram.c (grammar_rules_partial_print): Use it.
2101 * src/print.c (print_core): Likewise.
2102 * tests/conflicts.at (Defaulted Conflicted Reduction),
2103 (Unresolved SR Conflicts): Adjust.
2104 (Unresolved SR Conflicts): Adjust and rename as...
2105 (Resolved SR Conflicts): this, as was meant.
2106 * tests/regression.at (Web2c Report): Adjust.
2107
2108 2002-06-30 Akim Demaille <akim@epita.fr>
2109
2110 * src/print.c (state_default_rule_compute): New, extracted from...
2111 (print_reductions): here.
2112 Pessimize, but clarify the code.
2113 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
2114
2115 2002-06-30 Akim Demaille <akim@epita.fr>
2116
2117 * src/output.c (action_row): Let default_rule be always a rule
2118 number.
2119
2120 2002-06-30 Akim Demaille <akim@epita.fr>
2121
2122 * src/closure.c (print_firsts, print_fderives, closure):
2123 Use BITSET_EXECUTE.
2124 * src/lalr.c (lookaheads_print): Likewise.
2125 * src/state.c (state_rule_lookaheads_print): Likewise.
2126 * src/print_graph.c (print_core): Likewise.
2127 * src/print.c (print_reductions): Likewise.
2128 * src/output.c (action_row): Likewise.
2129 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
2130
2131 2002-06-30 Akim Demaille <akim@epita.fr>
2132
2133 * src/print_graph.c: Use report_flag.
2134
2135 2002-06-30 Akim Demaille <akim@epita.fr>
2136
2137 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
2138 to...
2139 * src/relation.h, src/relation.c (traverse, relation_digraph)
2140 (relation_print, relation_transpose): New.
2141
2142 2002-06-30 Akim Demaille <akim@epita.fr>
2143
2144 * src/state.h, src/state.c (shifts_to): New.
2145 * src/lalr.c (build_relations): Use it.
2146
2147 2002-06-30 Akim Demaille <akim@epita.fr>
2148
2149 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
2150 (item_number_of_rule_number, rule_number_of_item_number): New.
2151 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
2152 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
2153 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
2154 Propagate their use.
2155 Much remains to be done, in particular wrt `shorts' from types.h.
2156
2157 2002-06-30 Akim Demaille <akim@epita.fr>
2158
2159 * src/symtab.c (symbol_new): Initialize the `printer' member.
2160
2161 2002-06-30 Akim Demaille <akim@epita.fr>
2162
2163 * src/LR0.c (save_reductions): Remove, replaced by...
2164 * src/state.h, src/state.c (state_reductions_set): New.
2165 (reductions, errs): Rename as...
2166 (reductions_t, errs_t): these.
2167 Adjust all dependencies.
2168
2169 2002-06-30 Akim Demaille <akim@epita.fr>
2170
2171 * src/LR0.c (state_list_t, state_list_append): New.
2172 (first_state, last_state): Now symbol_list_t.
2173 (this_state): Remove.
2174 (new_itemsets, append_states, save_reductions): Take a state_t as
2175 argument.
2176 (set_states, generate_states): Adjust.
2177 (save_shifts): Remove, replaced by...
2178 * src/state.h, src/state.c (state_shifts_set): New.
2179 (shifts): Rename as...
2180 (shifts_t): this.
2181 Adjust all dependencies.
2182 * src/state.h (state_t): Remove the `next' member.
2183
2184 2002-06-30 Akim Demaille <akim@epita.fr>
2185
2186 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
2187 escaped in slot 0.
2188
2189 2002-06-30 Akim Demaille <akim@epita.fr>
2190
2191 Use hash.h for the state hash table.
2192
2193 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
2194 (allocate_storage): Use state_hash_new.
2195 (free_storage): Use state_hash_free.
2196 (new_state, get_state): Adjust.
2197 * src/lalr.h, src/lalr.c (states): Move to...
2198 * src/states.h (state_t): Remove the `link' member, no longer
2199 used.
2200 * src/states.h, src/states.c: here.
2201 (state_hash_new, state_hash_free, state_hash_lookup)
2202 (state_hash_insert, states_free): New.
2203 * src/states.c (state_table, state_compare, state_hash): New.
2204 * src/output.c (output_actions): Do not free states now, since we
2205 still need to know the final_state number in `prepare', called
2206 afterwards. Do it...
2207 * src/main.c (main): here: call states_free after `output'.
2208
2209 2002-06-30 Akim Demaille <akim@epita.fr>
2210
2211 * src/state.h, src/state.c (state_new): New, extracted from...
2212 * src/LR0.c (new_state): here.
2213 * src/state.h (STATE_ALLOC): Move to...
2214 * src/state.c: here.
2215 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
2216 * src/state.h, src/state.c: here.
2217
2218 2002-06-30 Akim Demaille <akim@epita.fr>
2219
2220 * src/reader.c (gensym): Rename as...
2221 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
2222 (getsym): Rename as...
2223 (symbol_get): this.
2224
2225 2002-06-30 Akim Demaille <akim@epita.fr>
2226
2227 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
2228 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
2229 * src/output.c, src/print.c, src/print_graph.c: Propagate.
2230 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
2231
2232 2002-06-30 Akim Demaille <akim@epita.fr>
2233
2234 Make the test suite pass with warnings checked.
2235
2236 * tests/actions.at (Printers and Destructors): Improve.
2237 Avoid unsigned vs. signed issues.
2238 * tests/calc.at: Don't exercise the scanner here, do it...
2239 * tests/input.at (Torturing the Scanner): here.
2240
2241 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2242
2243 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
2244 reorganize first lines parallel to yacc.c.
2245
2246 2002-06-28 Akim Demaille <akim@epita.fr>
2247
2248 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
2249 (b4_token_enum, b4_token_defines): New, factored from...
2250 * data/lalr1.cc, data/yacc.c, glr.c: here.
2251
2252 2002-06-28 Akim Demaille <akim@epita.fr>
2253
2254 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
2255 unused variables.
2256 * src/output.c (merger_output): static.
2257
2258 2002-06-28 Akim Demaille <akim@epita.fr>
2259
2260 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
2261 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
2262 pacify GCC.
2263 * src/output.c (save_row): Initialize all the variables to pacify GCC.
2264
2265 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2266
2267 Accumulated changelog for new GLR parsing features.
2268
2269 * src/conflicts.c (count_total_conflicts): Change name to
2270 conflicts_total_count.
2271 * src/conflicts.h: Ditto.
2272 * src/output.c (token_actions): Use the new name.
2273 (output_conflicts): Change conflp => conflict_list_heads, and
2274 confl => conflict_list for better readability.
2275 * data/glr.c: Use the new names.
2276 * NEWS: Add self to GLR announcement.
2277
2278 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
2279
2280 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
2281 Akim Demaille.
2282
2283 * data/bison.glr: Change name to glr.c
2284 * data/glr.c: Renamed from bison.glr.
2285 * data/Makefile.am: Add glr.c
2286
2287 * src/getargs.c:
2288
2289 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
2290 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
2291
2292 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2293
2294 * data/bison.glr: Be sure to restore the
2295 current #line when returning to the skeleton contents after having
2296 exposed the input file's #line.
2297
2298 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2299
2300 * data/bison.glr: Bring up to date with changes to bison.simple.
2301
2302 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2303
2304 * data/bison.glr: Correct definitions that use b4_prefix.
2305 Various reformatting.
2306 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
2307 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
2308 yytokenp argument; now part of stack.
2309 (yychar): Define to behave as documented.
2310 (yyclearin): Ditto.
2311
2312 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2313
2314 * src/reader.h: Add declaration for free_merger_functions.
2315
2316 * src/reader.c (merge_functions): New variable.
2317 (get_merge_function): New function.
2318 (free_merger_functions): New function.
2319 (readgram): Check for %prec that is not followed by a symbol.
2320 Handle %dprec and %merge declarations.
2321 (packgram): Initialize dprec and merger fields in rules array.
2322
2323 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
2324 conflict_list_cnt, conflict_list_free): New variables.
2325 (table_grow): Also grow conflict_table.
2326 (prepare_rules): Output dprec and merger tables.
2327 (conflict_row): New function.
2328 (action_row): Output conflict lists for GLR parser. Don't use
2329 default reduction in conflicted states for GLR parser so that there
2330 are spaces for the conflict lists.
2331 (save_row): Also save conflict information.
2332 (token_actions): Allocate conflict list.
2333 (merger_output): New function.
2334 (pack_vector): Pack conflict table, too.
2335 (output_conflicts): New function to output yyconflp and yyconfl.
2336 (output_check): Allocate conflict_tos.
2337 (output_actions): Output conflict tables, also.
2338 (output_skeleton): Output b4_mergers definition.
2339 (prepare): Output b4_max_rhs_length definition.
2340 Use 'bison.glr' as default skeleton for GLR parsers.
2341
2342 * src/gram.c (glr_parser): New flag.
2343 (grammar_free): Call free_merger_functions.
2344
2345 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
2346 all pairs of conflicting reductions, rather than just all tokens
2347 causing conflicts. Needed to size conflict tables.
2348 (conflicts_output): Modify call to count_rr_conflicts for new
2349 interface.
2350 (conflicts_print): Ditto.
2351 (count_total_conflicts): New function.
2352
2353 * src/reader.h (merger_list): New type.
2354 (merge_functions): New variable.
2355
2356 * src/lex.h (tok_dprec, tok_merge): New token types.
2357
2358 * src/gram.h (rule_s): Add dprec and merger fields.
2359 (glr_parser): New flag.
2360
2361 * src/conflicts.h (count_total_conflicts): New function.
2362
2363 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
2364
2365 * doc/bison.texinfo (Generalized LR Parsing): New section.
2366 (GLR Parsers): New section.
2367 (Language and Grammar): Mention GLR parsing.
2368 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
2369 Correct typo ("tge" -> "the").
2370
2371 * data/bison.glr: New skeleton for GLR parsing.
2372
2373 * tests/cxx-gram.at: New tests for GLR parsing.
2374
2375 * tests/testsuite.at: Include cxx-gram.at.
2376
2377 * tests/Makefile.am: Add cxx-gram.at.
2378
2379 * src/parse-gram.y:
2380
2381 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
2382
2383 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
2384
2385 2002-06-27 Akim Demaille <akim@epita.fr>
2386
2387 * src/options.h, src/options.c: Remove.
2388 * src/getargs.c (short_options, long_options): New.
2389
2390 2002-06-27 Akim Demaille <akim@epita.fr>
2391
2392 * data/bison.simple, data/bison.c++: Rename as...
2393 * data/yacc.c, data/lalr1.cc: these.
2394 * doc/bison.texinfo (Environment Variables): Remove.
2395
2396 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
2397
2398 * src/getargs.c (report_argmatch): Initialize strtok().
2399
2400 2002-06-20 Akim Demaille <akim@epita.fr>
2401
2402 * data/bison.simple (b4_symbol_actions): New, replaces...
2403 (b4_symbol_destructor, b4_symbol_printer): these.
2404 (yysymprint): Be sure to call YYPRINT only for tokens, and using
2405 user token numbers.
2406
2407 2002-06-20 Akim Demaille <akim@epita.fr>
2408
2409 * data/bison.simple (yydestructor): Rename as...
2410 (yydestruct): this.
2411
2412 2002-06-20 Akim Demaille <akim@epita.fr>
2413
2414 * src/symtab.h, src/symtab.c (symbol_type_set)
2415 (symbol_destructor_set, symbol_precedence_set): The location is
2416 the last argument.
2417 Adjust all callers.
2418
2419 2002-06-20 Akim Demaille <akim@epita.fr>
2420
2421 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
2422 internals.
2423 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
2424 Takes a location.
2425 * src/symtab.h, src/symtab.c (symbol_class_set)
2426 (symbol_user_token_number_set): Likewise.
2427 Adjust all callers.
2428 Promote complain_at.
2429 * tests/input.at (Type Clashes): Adjust.
2430
2431 2002-06-20 Akim Demaille <akim@epita.fr>
2432
2433 * data/bison.simple (YYLEX): Fix the declaration when
2434 %pure-parser.
2435
2436 2002-06-20 Akim Demaille <akim@epita.fr>
2437
2438 * data/bison.simple (yysymprint): Don't print the token number,
2439 just its name.
2440 * tests/actions.at (Destructors): Rename as...
2441 (Printers and Destructors): this.
2442 Also exercise %printer.
2443
2444 2002-06-20 Akim Demaille <akim@epita.fr>
2445
2446 * data/bison.simple (YYDSYMPRINT): New.
2447 Use it to remove many of the #if YYDEBUG/if (yydebug).
2448
2449 2002-06-20 Akim Demaille <akim@epita.fr>
2450
2451 * src/symtab.h, src/symtab.c (symbol_t): printer and
2452 printer_location are new members.
2453 (symbol_printer_set): New.
2454 * src/parse-gram.y (PERCENT_PRINTER): New token.
2455 Handle its associated rule.
2456 * src/scan-gram.l: Adjust.
2457 (handle_destructor_at, handle_destructor_dollar): Rename as...
2458 (handle_symbol_code_at, handle_symbol_code_dollar): these.
2459 * src/output.c (symbol_printers_output): New.
2460 (output_skeleton): Call it.
2461 * data/bison.simple (yysymprint): New. Cannot be named yyprint
2462 since there are already many grammar files with a user `yyprint'.
2463 Replace the calls to YYPRINT to calls to yysymprint.
2464 * tests/calc.at: Adjust.
2465 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
2466 taking advantage of parser very internal details (stack size!).
2467
2468 2002-06-20 Akim Demaille <akim@epita.fr>
2469
2470 * src/scan-gram.l: Complete the scanner with the missing patterns
2471 to pacify Flex.
2472 Use `quote' and `symbol_tag_get' where appropriate.
2473
2474 2002-06-19 Akim Demaille <akim@epita.fr>
2475
2476 * tests/actions.at (Destructors): Augment to test locations.
2477 * data/bison.simple (yydestructor): Pass it the current location
2478 if locations are enabled.
2479 Prototype only when __STDC__ or C++.
2480 Change the argument names to move into the yy name space: there is
2481 user code here.
2482
2483 2002-06-19 Akim Demaille <akim@epita.fr>
2484
2485 * data/bison.simple (b4_pure_if): New.
2486 Use it instead of #ifdef YYPURE.
2487
2488 2002-06-19 Akim Demaille <akim@epita.fr>
2489
2490 * data/bison.simple (b4_location_if): New.
2491 Use it instead of #ifdef YYLSP_NEEDED.
2492
2493 2002-06-19 Akim Demaille <akim@epita.fr>
2494
2495 Prepare @$ in %destructor, but currently don't bind it in the
2496 skeleton, as %location use is not cleaned up yet.
2497
2498 * src/scan-gram.l (handle_dollar, handle_destructor_at)
2499 (handle_action_at): New.
2500 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
2501 a braced_code_t and a location as additional arguments.
2502 (handle_destructor_dollar): Instead of requiring `b4_eval', just
2503 unquote one when outputting `b4_dollar_dollar'.
2504 Adjust callers.
2505 * data/bison.simple (b4_eval): Remove.
2506 (b4_symbol_destructor): Adjust.
2507 * tests/input.at (Invalid @n): Adjust.
2508
2509 2002-06-19 Zack Weinberg <zack@codesourcery.com>
2510
2511 * doc/bison.texinfo: Document ability to have multiple
2512 prologue sections.
2513
2514 2002-06-18 Akim Demaille <akim@epita.fr>
2515
2516 * src/files.c (compute_base_names): When computing the output file
2517 names from the input file name, strip the directory part.
2518
2519 2002-06-18 Akim Demaille <akim@epita.fr>
2520
2521 * data/bison.simple.new: Comment changes.
2522 Reported by Andreas Schwab.
2523
2524 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
2525
2526 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
2527 there are no `label `yyoverflowlab' defined but not used' warnings
2528 when yyoverflow is defined.
2529
2530 2002-06-18 Akim Demaille <akim@epita.fr>
2531
2532 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
2533 new member.
2534 (symbol_destructor_set): Adjust.
2535 * src/output.c (symbol_destructors_output): Output the destructor
2536 locations.
2537 Output the symbol name.
2538 * data/bison.simple (b4_symbol_destructor): Adjust.
2539
2540 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
2541 and Akim Demaille <akim@epita.fr>
2542
2543 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
2544 what's left on the stack when the error recovery hits EOF.
2545 * tests/actions.at (Destructors): Complete to exercise this case.
2546
2547 2002-06-17 Akim Demaille <akim@epita.fr>
2548
2549 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
2550 arguments is really empty, not only equal to `[]'.
2551 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
2552 member.
2553 (symbol_destructor_set): New.
2554 * src/output.c (symbol_destructors_output): New.
2555 * src/reader.h (brace_code_t, current_braced_code): New.
2556 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
2557 (handle_dollar): Rename as...
2558 (handle_action_dollar): this.
2559 (handle_destructor_dollar): New.
2560 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
2561 (grammar_declaration): Use it.
2562 * data/bison.simple (yystos): Is always defined.
2563 (yydestructor): New.
2564 * tests/actions.at (Destructors): New.
2565 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
2566
2567 2002-06-17 Akim Demaille <akim@epita.fr>
2568
2569 * src/symlist.h, src/symlist.c (symbol_list_length): New.
2570 * src/scan-gram.l (handle_dollar, handle_at): Compute the
2571 rule_length only when needed.
2572 * src/output.c (actions_output, token_definitions_output): Output
2573 the full M4 block.
2574 * src/symtab.c: Don't access directly to the symbol tag, use
2575 symbol_tag_get.
2576 * src/parse-gram.y: Use symbol_list_free.
2577
2578 2002-06-17 Akim Demaille <akim@epita.fr>
2579
2580 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
2581 (symbol_list_prepend, get_type_name): Move to...
2582 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
2583 (symbol_list_prepend, symbol_list_n_type_name_get): here.
2584 Adjust all callers.
2585 (symbol_list_free): New.
2586 * src/scan-gram.l (handle_dollar): Takes a location.
2587 * tests/input.at (Invalid $n): Adjust.
2588
2589 2002-06-17 Akim Demaille <akim@epita.fr>
2590
2591 * src/reader.h, src/reader.c (symbol_list_new): Export it.
2592 (symbol_list_prepend): New.
2593 * src/parse-gram.y (%union): `list' is a new member.
2594 (symbols.1): New, replaces...
2595 (terms_to_prec.1, nterms_to_type.1): these.
2596 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
2597 Take a location as additional argument.
2598 Adjust all callers.
2599
2600 2002-06-15 Akim Demaille <akim@epita.fr>
2601
2602 * src/parse-gram.y: Move %token in the declaration section so that
2603 we don't depend upon CVS Bison.
2604
2605 2002-06-15 Akim Demaille <akim@epita.fr>
2606
2607 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
2608 * src/print.c (print_core): Use it.
2609
2610 2002-06-15 Akim Demaille <akim@epita.fr>
2611
2612 * src/conflicts.c (log_resolution): Accept the rule involved in
2613 the sr conflicts instead of the lookahead number that points to
2614 that rule.
2615 (flush_reduce): Accept the current lookahead vector as argument,
2616 instead of the index in LA.
2617 (resolve_sr_conflict): Accept the current number of lookahead
2618 bitset to consider for the STATE, instead of the index in LA.
2619 (set_conflicts): Adjust.
2620 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
2621
2622 2002-06-15 Akim Demaille <akim@epita.fr>
2623
2624 * src/state.h (state_t): Replace the `lookaheadsp' member, a
2625 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
2626 Adjust all dependencies.
2627 * src/lalr.c (initialize_lookaheads): Split into...
2628 (states_lookaheads_count, states_lookaheads_initialize): these.
2629 (lalr): Adjust.
2630
2631 2002-06-15 Akim Demaille <akim@epita.fr>
2632
2633 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
2634 out of...
2635 (grammar_rules_print): here.
2636 * src/reduce.c (reduce_output): Use it.
2637 * tests/reduce.at (Useless Rules, Reduced Automaton)
2638 (Underivable Rules): Adjust.
2639
2640 2002-06-15 Akim Demaille <akim@epita.fr>
2641
2642 Copy BYacc's nice way to report the grammar.
2643
2644 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
2645 New.
2646 Don't print the rules' location, it is confusing and useless.
2647 (rule_print): Use grammar_rhs_print.
2648 * src/print.c (print_grammar): Use grammar_rules_print.
2649
2650 2002-06-15 Akim Demaille <akim@epita.fr>
2651
2652 Complete and rationalize `useless thing' warnings.
2653
2654 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
2655 (symbol_tag_print): New.
2656 Use them everywhere in place of accessing directly the tag member.
2657 * src/gram.h, src/gram.c (rule_print): New.
2658 Use it where a rule used to be printed `by hand'.
2659 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
2660 (reduce_grammar_tables): Report the useless rules.
2661 (reduce_print): Useless things are a warning, not an error.
2662 Report it as such.
2663 * tests/reduce.at (Useless Nonterminals, Useless Rules):
2664 (Reduced Automaton, Underivable Rules): Adjust.
2665 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
2666 * tests/conflicts.at (Unresolved SR Conflicts)
2667 (Solved SR Conflicts): Adjust.
2668
2669 2002-06-15 Akim Demaille <akim@epita.fr>
2670
2671 Let symbols have a location.
2672
2673 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
2674 (getsym): Adjust.
2675 Adjust all callers.
2676 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
2677 Use location_t, not int.
2678 * src/symtab.c (symbol_check_defined): Take advantage of the
2679 location.
2680 * tests/regression.at (Invalid inputs): Adjust.
2681
2682 2002-06-15 Akim Demaille <akim@epita.fr>
2683
2684 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
2685 (input): Don't try to initialize yylloc here, do it in the
2686 scanner.
2687 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
2688 * src/gram.h (rule_t): Change line and action_line into location
2689 and action_location, of location_t type.
2690 Adjust all dependencies.
2691 * src/location.h, src/location.c (empty_location): New.
2692 * src/reader.h, src/reader.c (grammar_start_symbol_set)
2693 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
2694 (grammar_current_rule_symbol_append)
2695 (grammar_current_rule_action_append): Expect a location as argument.
2696 * src/reader.c (grammar_midrule_action): Adjust to attach an
2697 action's location as dummy symbol location.
2698 * src/symtab.h, src/symtab.c (startsymbol_location): New.
2699 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
2700 the line numbers.
2701
2702 2002-06-14 Akim Demaille <akim@epita.fr>
2703
2704 Grammar declarations may be found in the grammar section.
2705
2706 * src/parse-gram.y (rules_or_grammar_declaration): New.
2707 (declarations): Each declaration may end with a semicolon, not
2708 just...
2709 (grammar_declaration): `"%union"'.
2710 (grammar): Branch to rules_or_grammar_declaration.
2711
2712 2002-06-14 Akim Demaille <akim@epita.fr>
2713
2714 * src/main.c (main): Invoke scanner_free.
2715
2716 2002-06-14 Akim Demaille <akim@epita.fr>
2717
2718 * src/output.c (m4_invoke): Extracted from...
2719 (output_skeleton): here.
2720 Free tempfile.
2721
2722 2002-06-14 Akim Demaille <akim@epita.fr>
2723
2724 * src/parse-gram.y (directives, directive, gram)
2725 (grammar_directives, precedence_directives, precedence_directive):
2726 Rename as...
2727 (declarations, declaration, grammar, grammar_declaration)
2728 (precedence_declaration, precedence_declarator): these.
2729 (symbol_declaration): New.
2730
2731 2002-06-14 Akim Demaille <akim@epita.fr>
2732
2733 * src/files.c (action_obstack): Remove, unused.
2734 (output_obstack): Remove it, and all its dependencies, as it is no
2735 longer needed.
2736 * src/reader.c (epilogue_set): Build the epilogue in the
2737 muscle_obstack.
2738 * src/output.h, src/output.c (muscle_obstack): Move to...
2739 * src/muscle_tab.h, src/muscle_tab.h: here.
2740 (muscle_init): Initialize muscle_obstack.
2741 (muscle_free): New.
2742 * src/main.c (main): Call it.
2743
2744 2002-06-14 Akim Demaille <akim@epita.fr>
2745
2746 * src/location.h: New, extracted from...
2747 * src/reader.h: here.
2748 * src/Makefile.am (noinst_HEADERS): Merge into
2749 (bison_SOURCES): this.
2750 Add location.h.
2751 * src/parse-gram.y: Use location_t instead of Bison's.
2752 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
2753 Use location_t instead of ints.
2754
2755 2002-06-14 Akim Demaille <akim@epita.fr>
2756
2757 * data/bison.simple, data/bison.c++: Be sure to restore the
2758 current #line when returning to the skeleton contents after having
2759 exposed the input file's #line.
2760
2761 2002-06-12 Akim Demaille <akim@epita.fr>
2762
2763 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
2764 eager.
2765 * tests/actions.at (Exotic Dollars): New.
2766
2767 2002-06-12 Akim Demaille <akim@epita.fr>
2768
2769 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
2770 ['"/] too eagerly.
2771 * tests/input.at (Torturing the Scanner): New.
2772
2773 2002-06-11 Akim Demaille <akim@epita.fr>
2774
2775 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
2776 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
2777 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
2778 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
2779 * src/reader.c (reader): Use it.
2780
2781 2002-06-11 Akim Demaille <akim@epita.fr>
2782
2783 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
2784 Adjust all callers.
2785 (scanner_last_string_free): New.
2786
2787 2002-06-11 Akim Demaille <akim@epita.fr>
2788
2789 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
2790 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
2791 (last_string, YY_OBS_FREE): New.
2792 Use them when returning an ID.
2793
2794 2002-06-11 Akim Demaille <akim@epita.fr>
2795
2796 Have Bison grammars parsed by a Bison grammar.
2797
2798 * src/reader.c, src/reader.h (prologue_augment): New.
2799 * src/reader.c (copy_definition): Remove.
2800
2801 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
2802 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
2803 (grammar_current_rule_prec_set, grammar_current_rule_check)
2804 (grammar_current_rule_symbol_append)
2805 (grammar_current_rule_action_append): Export.
2806 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
2807 (symbol_list_action_append): Remove.
2808 Hook the routines from reader.
2809 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
2810 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
2811
2812 * src/reader.c (read_declarations): Remove, unused.
2813
2814 * src/parse-gram.y: Handle the epilogue.
2815 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
2816 (grammar_start_symbol_set): this.
2817 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
2818 * src/reader.c (readgram): Remove, unused.
2819 (reader): Adjust to insert eoftoken and axiom where appropriate.
2820
2821 * src/reader.c (copy_dollar): Replace with...
2822 * src/scan-gram.h (handle_dollar): this.
2823 * src/parse-gram.y: Remove `%thong'.
2824
2825 * src/reader.c (copy_at): Replace with...
2826 * src/scan-gram.h (handle_at): this.
2827
2828 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
2829 New.
2830
2831 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
2832 time being.
2833
2834 * src/reader.h, src/reader.c (grammar_rule_end): New.
2835
2836 * src/parse.y (current_type, current_class): New.
2837 Implement `%nterm', `%token' support.
2838 Merge `%term' into `%token'.
2839 (string_as_id): New.
2840 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
2841 type name.
2842
2843 * src/parse-gram.y: Be sure to handle properly the beginning of
2844 rules.
2845
2846 * src/parse-gram.y: Handle %type.
2847 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
2848
2849 * src/parse-gram.y: More directives support.
2850 * src/options.c: No longer handle source directives.
2851
2852 * src/parse-gram.y: Fix %output.
2853
2854 * src/parse-gram.y: Handle %union.
2855 Use the prologue locations.
2856 * src/reader.c (parse_union_decl): Remove.
2857
2858 * src/reader.h, src/reader.c (epilogue_set): New.
2859 * src/parse-gram.y: Use it.
2860
2861 * data/bison.simple, data/bison.c++: b4_stype is now either not
2862 defined, then default to int, or to the contents of %union,
2863 without `union' itself.
2864 Adjust.
2865 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
2866
2867 * src/output.c (actions_output): Don't output braces, as they are
2868 already handled by the scanner.
2869
2870 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
2871 characters to themselves.
2872
2873 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
2874 that the epilogue has a proper #line.
2875
2876 * src/parse-gram.y: Handle precedence/associativity.
2877
2878 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
2879 a terminal.
2880 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
2881 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
2882 at all to define terminals that cannot be emitted.
2883
2884 * src/scan-gram.l: Escape M4 characters.
2885
2886 * src/scan-gram.l: Working properly with escapes in user
2887 strings/characters.
2888
2889 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
2890 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
2891 grammar.
2892 Use more modest sizes, as for the time being the parser does not
2893 release memory, and therefore the process swallows a huge amount
2894 of memory.
2895
2896 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
2897 stricter %token grammar.
2898
2899 * src/symtab.h (associativity): Add `undef_assoc'.
2900 (symbol_precedence_set): Do nothing when passed an undef_assoc.
2901 * src/symtab.c (symbol_check_alias_consistence): Adjust.
2902
2903 * tests/regression.at (Invalid %directive): Remove, as it is now
2904 meaningless.
2905 (Invalid inputs): Adjust to the new error messages.
2906 (Token definitions): The new grammar doesn't allow too many
2907 eccentricities.
2908
2909 * src/lex.h, src/lex.c: Remove.
2910 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
2911 (copy_character, copy_string2, copy_string, copy_identifier)
2912 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
2913 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
2914 (parse_action): Remove.
2915 * po/POTFILES.in: Adjust.
2916
2917 2002-06-11 Akim Demaille <akim@epita.fr>
2918
2919 * src/reader.c (parse_action): Don't store directly into the
2920 rule's action member: return the action as a string.
2921 Don't require `rule_length' as an argument: compute it.
2922 (grammar_current_rule_symbol_append)
2923 (grammar_current_rule_action_append): New, eved out from
2924 (readgram): here.
2925 Remove `action_flag', `rulelength', unused now.
2926
2927 2002-06-11 Akim Demaille <akim@epita.fr>
2928
2929 * src/reader.c (grammar_current_rule_prec_set).
2930 (grammar_current_rule_check): New, eved out from...
2931 (readgram): here.
2932 Remove `xaction', `first_rhs': useless.
2933 * tests/input.at (Type clashes): New.
2934 * tests/existing.at (GNU Cim Grammar): Adjust.
2935
2936 2002-06-11 Akim Demaille <akim@epita.fr>
2937
2938 * src/reader.c (grammar_midrule_action): New, Eved out from
2939 (readgram): here.
2940
2941 2002-06-11 Akim Demaille <akim@epita.fr>
2942
2943 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
2944 New.
2945 (readgram): Use them as replacement of inlined code, crule and
2946 crule1.
2947
2948 2002-06-11 Akim Demaille <akim@epita.fr>
2949
2950 * src/reader.c (grammar_end, grammar_symbol_append): New.
2951 (readgram): Use them.
2952 Make the use of `p' as local as possible.
2953
2954 2002-06-10 Akim Demaille <akim@epita.fr>
2955
2956 GCJ's parser requires the tokens to be defined before the prologue.
2957
2958 * data/bison.simple: Output the token definition before the user's
2959 prologue.
2960 * tests/regression.at (Braces parsing, Duplicate string)
2961 (Mixing %token styles): Check the output from bison.
2962 (Early token definitions): New.
2963
2964 2002-06-10 Akim Demaille <akim@epita.fr>
2965
2966 * src/symtab.c (symbol_user_token_number_set): Don't complain when
2967 assigning twice the same user number to a token, so that we can
2968 use it in...
2969 * src/lex.c (lex): here.
2970 Also use `symbol_class_set' instead of hand written code.
2971 * src/reader.c (parse_assoc_decl): Likewise.
2972
2973 2002-06-10 Akim Demaille <akim@epita.fr>
2974
2975 * src/symtab.c, src/symtab.c (symbol_class_set)
2976 (symbol_user_token_number_set): New.
2977 * src/reader.c (parse_token_decl): Use them.
2978 Use a switch instead of ifs.
2979 Use a single argument.
2980
2981 2002-06-10 Akim Demaille <akim@epita.fr>
2982
2983 Remove `%thong' support as it is undocumented, unused, duplicates
2984 `%token's job, and creates useless e-mail traffic with people who
2985 want to know what it is, why it is undocumented, unused, and
2986 duplicates `%token's job.
2987
2988 * src/reader.c (parse_thong_decl): Remove.
2989 * src/options.c (option_table): Remove "thong".
2990 * src/lex.h (tok_thong): Remove.
2991
2992 2002-06-10 Akim Demaille <akim@epita.fr>
2993
2994 * src/symtab.c, src/symtab.c (symbol_type_set)
2995 (symbol_precedence_set): New.
2996 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
2997 (value_components_used): Remove, unused.
2998
2999 2002-06-09 Akim Demaille <akim@epita.fr>
3000
3001 Move symbols handling code out of the reader.
3002
3003 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
3004 (axiom): Move to...
3005 * src/symtab.h, src/symtab.c: here.
3006
3007 * src/gram.c (start_symbol): Remove: use startsymbol->number.
3008 * src/reader.c (startval): Rename as...
3009 * src/symtab.h, src/symtab.c (startsymbol): this.
3010 * src/reader.c: Adjust.
3011
3012 * src/reader.c (symbol_check_defined, symbol_make_alias)
3013 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
3014 (token_translations_init)
3015 Move to...
3016 * src/symtab.c: here.
3017 * src/reader.c (packsymbols): Move to...
3018 * src/symtab.h, src/symtab.c (symbols_pack): here.
3019 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
3020 argument.
3021
3022 2002-06-03 Akim Demaille <akim@epita.fr>
3023
3024 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
3025 then statements.
3026
3027 2002-06-03 Akim Demaille <akim@epita.fr>
3028
3029 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
3030 structs with non literals.
3031 * src/scan-skel.l: never-interactive.
3032 * src/conflicts.c (enum conflict_resolution_e): No trailing
3033 comma.
3034 * src/getargs.c (usage): Split long literal strings.
3035 Reported by Hans Aberg.
3036
3037 2002-05-28 Akim Demaille <akim@epita.fr>
3038
3039 * data/bison.c++: Use C++ ostreams.
3040 (cdebug_): New member.
3041
3042 2002-05-28 Akim Demaille <akim@epita.fr>
3043
3044 * src/output.c (output_skeleton): Be sure to allocate enough room
3045 for `/' _and_ for `\0' in full_skeleton.
3046
3047 2002-05-28 Akim Demaille <akim@epita.fr>
3048
3049 * data/bison.c++: Catch up with bison.simple:
3050 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3051 and Paul Eggert <eggert@twinsun.com>: `error' handing.
3052 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
3053 and popping traces.
3054
3055 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3056
3057 * src/output.c (output_skeleton): Put an explicit path in front of
3058 the skeleton file name, rather than relying on the -I directory,
3059 to partially alleviate effects of having a skeleton file lying around
3060 in the current directory.
3061
3062 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3063
3064 * src/conflicts.c (log_resolution): Correct typo:
3065 obstack_printf should be obstack_fgrow1.
3066
3067 2002-05-26 Akim Demaille <akim@epita.fr>
3068
3069 * src/state.h (state_t): `solved_conflicts' is a new member.
3070 * src/LR0.c (new_state): Set it to 0.
3071 * src/conflicts.h, src/conflicts.c (print_conflicts)
3072 (free_conflicts, solve_conflicts): Rename as...
3073 (conflicts_print, conflicts_free, conflicts_solve): these.
3074 Adjust callers.
3075 * src/conflicts.c (enum conflict_resolution_e)
3076 (solved_conflicts_obstack): New, used by...
3077 (log_resolution): this.
3078 Adjust to attach the conflict resolution to each state.
3079 Complete the description with the precedence/associativity
3080 information.
3081 (resolve_sr_conflict): Adjust.
3082 * src/print.c (print_state): Output its solved_conflicts.
3083 * tests/conflicts.at (Unresolved SR Conflicts)
3084 (Solved SR Conflicts): Exercise --report=all.
3085
3086 2002-05-26 Akim Demaille <akim@epita.fr>
3087
3088 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
3089 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
3090 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
3091 (token_number_t, item_number_as_token_number)
3092 (token_number_as_item_number, muscle_insert_token_number_table):
3093 Rename as...
3094 (symbol_number_t, item_number_as_symbol_number)
3095 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
3096 these, since it is more appropriate.
3097
3098 2002-05-26 Akim Demaille <akim@epita.fr>
3099
3100 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
3101 `Error:' lines.
3102 * data/bison.simple (yystos) [YYDEBUG]: New.
3103 (yyparse) [YYDEBUG]: Display the symbols which are popped during
3104 error recovery.
3105 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
3106
3107 2002-05-25 Akim Demaille <akim@epita.fr>
3108
3109 * doc/bison.texinfo (Debugging): Split into...
3110 (Tracing): this new section, its former contents, and...
3111 (Understanding): this new section.
3112 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
3113 by...
3114 (report_flag): this.
3115 Adjust all dependencies.
3116 (report_args, report_types, report_argmatch): New.
3117 (usage, getargs): Report/support -r, --report.
3118 * src/options.h
3119 (struct option_table_struct): Rename as..,
3120 (struct option_table_s): this.
3121 Rename the `set_flag' member to `flag' to match with getopt_long's
3122 struct.
3123 * src/options.c (option_table): Split verbose into an entry for
3124 %verbose, and another for --verbose.
3125 Support --report/-r, so remove -r from the obsolete --raw.
3126 * src/print.c: Attach full item sets and lookaheads reports to
3127 report_flag instead of trace_flag.
3128 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
3129
3130 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3131 and Paul Eggert <eggert@twinsun.com>
3132
3133 * data/bison.simple (yyparse): Correct error handling to conform to
3134 POSIX and yacc. Specifically, after syntax error is discovered,
3135 do not reduce further before shifting the error token.
3136 Clean up the code a bit by removing the labels yyerrdefault,
3137 yyerrhandle, yyerrpop.
3138 * NEWS: Document the above.
3139
3140 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3141
3142 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
3143 type; it isn't always big enough, since it doesn't necessarily
3144 include non-terminals.
3145 (yytranslate): Expand definition of yy_token_number_type, so that
3146 the latter can be removed.
3147 (yy_token_number_type): Remove, only one use.
3148 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
3149 don't use TokenNumberType as element type.
3150
3151 * tests/regression.at: Modify expected output to agree with change
3152 to yyr1 and yytranslate.
3153
3154 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
3155
3156 * src/reader.c (parse_action): Use copy_character instead of
3157 obstack_1grow.
3158
3159 2002-05-13 Akim Demaille <akim@epita.fr>
3160
3161 * tests/regression.at (Token definitions): Prototype yylex and
3162 yyerror.
3163
3164 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3165
3166 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
3167 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
3168 32-bit arithmetic.
3169 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
3170
3171 2002-05-07 Akim Demaille <akim@epita.fr>
3172
3173 * tests/synclines.at: Be sure to prototype yylex and yyerror to
3174 avoid GCC warnings.
3175
3176 2002-05-07 Akim Demaille <akim@epita.fr>
3177
3178 Kill GCC warnings.
3179
3180 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
3181 over the RHS of each rule.
3182 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
3183 * src/state.h (state_t): Member `nitems' is unsigned short.
3184 * src/LR0.c (get_state): Adjust.
3185 * src/reader.c (packgram): Likewise.
3186 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
3187 `Type'.
3188 (muscle_insert_int_table): Remove, unused.
3189 (prepare_rules): Remove `max'.
3190
3191 2002-05-06 Akim Demaille <akim@epita.fr>
3192
3193 * src/closure.c (print_firsts): Display of the symbol tags.
3194 (bitmatrix_print): Move to...
3195 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
3196 here.
3197 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
3198
3199 2002-05-06 Akim Demaille <akim@epita.fr>
3200
3201 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
3202 hash_do_for_each.
3203
3204 2002-05-06 Akim Demaille <akim@epita.fr>
3205
3206 * src/LR0.c (new_state, get_state): Instead of using the global
3207 `kernel_size' and `kernel_base', have two new arguments:
3208 `core_size' and `core'.
3209 Adjust callers.
3210
3211 2002-05-06 Akim Demaille <akim@epita.fr>
3212
3213 * src/reader.c (packgram): No longer end `ritem' with a 0
3214 sentinel: it is not used.
3215
3216 2002-05-05 Akim Demaille <akim@epita.fr>
3217
3218 New experimental feature: display the lookaheads in the report and
3219 graph.
3220
3221 * src/print (print_core): When --trace-flag, display the rules
3222 lookaheads.
3223 * src/print_graph.c (print_core): Likewise.
3224 Swap the arguments.
3225 Adjust caller.
3226
3227 2002-05-05 Akim Demaille <akim@epita.fr>
3228
3229 * tests/torture.at (Many lookaheads): New test.
3230
3231 2002-05-05 Akim Demaille <akim@epita.fr>
3232
3233 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
3234 (GENERATE_MUSCLE_INSERT_TABLE): this.
3235 (output_int_table, output_unsigned_int_table, output_short_table)
3236 (output_token_number_table, output_item_number_table): Replace with...
3237 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
3238 (muscle_insert_short_table, muscle_insert_token_number_table)
3239 (muscle_insert_item_number_table): these.
3240 Adjust all callers.
3241 (prepare_tokens): Don't free `translations', since...
3242 * src/reader.h, src/reader.c (grammar_free): do it.
3243 Move to...
3244 * src/gram.h, src/gram.c (grammar_free): here.
3245 * data/bison.simple, data/bison.c++: b4_token_number_max is now
3246 b4_translate_max.
3247
3248 2002-05-05 Akim Demaille <akim@epita.fr>
3249
3250 * src/output.c (output_unsigned_int_table): New.
3251 (prepare_rules): `i' is unsigned.
3252 `prhs', `rline', `r2' are unsigned int.
3253 Rename muscle `rhs_number_max' as `rhs_max'.
3254 Output muscles `prhs_max', `rline_max', and `r2_max'.
3255 Free rline and r1.
3256 * data/bison.simple, data/bison.c++: Adjust to use these muscles
3257 to compute types instead of constant types.
3258 * tests/regression.at (Web2c Actions): Adjust.
3259
3260 2002-05-04 Akim Demaille <akim@epita.fr>
3261
3262 * src/symtab.h (SALIAS, SUNDEF): Rename as...
3263 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
3264 Adjust dependencies.
3265 * src/output.c (token_definitions_output): Be sure not to output a
3266 `#define 'a'' when fed with `%token 'a' "a"'.
3267 * tests/regression.at (Token definitions): New.
3268
3269 2002-05-03 Paul Eggert <eggert@twinsun.com>
3270
3271 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
3272 for K&R C.
3273
3274 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
3275
3276 * Makefile.am (SUBDIRS): Remove intl.
3277 (EXTRA_DIST): Add config/config.rpath.
3278
3279 2002-05-03 Akim Demaille <akim@epita.fr>
3280
3281 * data/bison.simple (m4_if): Don't output empty enums.
3282 And actually, output valid enum definitions :(.
3283
3284 2002-05-03 Akim Demaille <akim@epita.fr>
3285
3286 * configure.bat: Remove, completely obsolete.
3287 * Makefile.am (EXTRA_DIST): Adjust.
3288 Don't distribute config.rpath...
3289 * config/Makefile.am (EXTRA_DIST): Do it.
3290
3291 2002-05-03 Akim Demaille <akim@epita.fr>
3292
3293 * configure.in (GETTEXT_VERSION): New.
3294 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
3295
3296 2002-05-03 Akim Demaille <akim@epita.fr>
3297
3298 * data/bison.simple (b4_token_enum): New.
3299 (b4_token_defines): Use it to output tokens both as #define and
3300 enums.
3301 Suggested by Paul Eggert.
3302 * src/output.c (token_definitions_output): Don't output spurious
3303 white spaces.
3304
3305 2002-05-03 Akim Demaille <akim@epita.fr>
3306
3307 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
3308
3309 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
3310
3311 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
3312 Update the stack class, give a try to deque as the default container.
3313
3314 2002-05-02 Akim Demaille <akim@epita.fr>
3315
3316 * data/bison.simple (yyparse): Do not implement @$ = @1.
3317 (YYLLOC_DEFAULT): Adjust to do it.
3318 * doc/bison.texinfo (Location Default Action): Fix.
3319
3320 2002-05-02 Akim Demaille <akim@epita.fr>
3321
3322 * src/reader.c (parse_braces): Merge into...
3323 (parse_action): this.
3324
3325 2002-05-02 Akim Demaille <akim@epita.fr>
3326
3327 * configure.in (ALL_LINGUAS): Remove.
3328 * po/LINGUAS, hr.po: New.
3329
3330 2002-05-02 Akim Demaille <akim@epita.fr>
3331
3332 Remove the so called hairy (semantic) parsers.
3333
3334 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
3335 * src/gram.h, src/gram.c (semantic_parser): Remove.
3336 (rule_t): Remove the guard and guard_line members.
3337 * src/lex.h (token_t): remove tok_guard.
3338 * src/options.c (option_table): Remove %guard and %semantic_parser
3339 support.
3340 * src/output.c, src/output.h (guards_output): Remove.
3341 (prepare): Adjust.
3342 (token_definitions_output): Don't output the `T'
3343 tokens (???).
3344 (output_skeleton): Don't output the guards.
3345 * src/files.c, src/files.c (attrsfile): Remove.
3346 * src/reader.c (symbol_list): Remove the guard and guard_line
3347 members.
3348 Adjust dependencies.
3349 (parse_guard): Remove.
3350 * data/bison.hairy: Remove.
3351 * doc/bison.texinfo (Environment Variables): Remove occurrences of
3352 BISON_HAIRY.
3353
3354 2002-05-02 Akim Demaille <akim@epita.fr>
3355
3356 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
3357 (parse_guard): Rename the formal argument `stack_offset' as
3358 `rule_length', which is more readable.
3359 Adjust callers.
3360 (copy_at, copy_dollar): Instead of outputting the hard coded
3361 values of $$, $n and so forth, output invocation to b4_lhs_value,
3362 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
3363 Note: this patch partially drops `semantic-parser' support: it
3364 always does `rule_length - n', where semantic parsers ought to
3365 always use `-n'.
3366 * data/bison.simple, data/bison.c++ (b4_lhs_value)
3367 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
3368
3369 2002-05-02 Akim Demaille <akim@epita.fr>
3370
3371 * configure.in (AC_INIT): Bump to 1.49b.
3372 (AM_INIT_AUTOMAKE): Short invocation.
3373
3374 2002-05-02 Akim Demaille <akim@epita.fr>
3375
3376 Version 1.49a.
3377
3378 2002-05-01 Akim Demaille <akim@epita.fr>
3379
3380 * src/skeleton.h: Remove.
3381
3382 2002-05-01 Akim Demaille <akim@epita.fr>
3383
3384 * src/skeleton.h: Fix the #endif.
3385 Reported by Magnus Fromreide.
3386
3387 2002-04-26 Paul Eggert <eggert@twinsun.com>
3388
3389 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
3390 Define if we define YYSTYPE and YYLTYPE, respectively.
3391 (YYCOPY): Fix [] quoting problem in the non-GCC case.
3392
3393 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
3394
3395 * src/scan-skel.l: Postprocess quadrigraphs.
3396
3397 * src/reader.c (copy_character): New function, used to output
3398 single characters while replacing `[' and `]' with quadrigraphs, to
3399 avoid troubles with M4 quotes.
3400 (copy_comment): Output characters with copy_character.
3401 (read_additionnal_code): Likewise.
3402 (copy_string2): Likewise.
3403 (copy_definition): Likewise.
3404
3405 * tests/calc.at: Exercise M4 quoting.
3406
3407 2002-04-25 Akim Demaille <akim@epita.fr>
3408
3409 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
3410 between `!' and the command.
3411 Reported by Paul Eggert.
3412
3413 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
3414
3415 * tests/calc.at: Exercise prologue splitting.
3416
3417 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
3418 `b4_post_prologue' instead of `b4_prologue'.
3419
3420 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
3421 muscles.
3422 (output): Free pre_prologue_obstack and post_prologue_obstack.
3423 * src/files.h, src/files.c (attrs_obstack): Remove.
3424 (pre_prologue_obstack, post_prologue_obstack): New.
3425 * src/reader.c (copy_definition): Add a parameter to specify the
3426 obstack to fill, instead of using attrs_obstack unconditionally.
3427 (read_declarations): Pass pre_prologue_obstack to copy_definition if
3428 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
3429
3430 2002-04-23 Paul Eggert <eggert@twinsun.com>
3431
3432 * data/bison.simple: Remove unnecessary commentary and white
3433 space differences from 1_29-branch.
3434 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
3435
3436 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
3437 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
3438 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
3439 constructors or destructors.
3440
3441 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
3442
3443 2002-04-23 Akim Demaille <akim@epita.fr>
3444
3445 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
3446 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
3447 location with columns.
3448 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
3449 All reported by Paul Eggert.
3450
3451 2002-04-22 Akim Demaille <akim@epita.fr>
3452
3453 * src/reduce.c (dump_grammar): Move to...
3454 * src/gram.h, src/gram.c (grammar_dump): here.
3455 Be sure to separate long item numbers.
3456 Don't read the members of a rule's prec if its nil.
3457
3458 2002-04-22 Akim Demaille <akim@epita.fr>
3459
3460 * src/output.c (table_size, table_grow): New.
3461 (MAXTABLE): Remove, replace uses with table_size.
3462 (pack_vector): Instead of dying when the table is too big, grow it.
3463
3464 2002-04-22 Akim Demaille <akim@epita.fr>
3465
3466 * data/bison.simple (yyr1): Its type is that of a token number.
3467 * data/bison.c++ (r1_): Likewise.
3468 * tests/regression.at (Web2c Actions): Adjust.
3469
3470 2002-04-22 Akim Demaille <akim@epita.fr>
3471
3472 * src/reader.c (token_translations_init): 256 is now the default
3473 value for the error token, i.e., it will be assigned another
3474 number if the user assigned 256 to one of her tokens.
3475 (reader): Don't force 256 to error.
3476 * doc/bison.texinfo (Symbols): Adjust.
3477 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
3478 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
3479 etc. instead of 10, 20, 30 (which was used to `jump' over error
3480 (256) and undefined (2)).
3481
3482 2002-04-22 Akim Demaille <akim@epita.fr>
3483
3484 Propagate more token_number_t.
3485
3486 * src/gram.h (token_number_as_item_number)
3487 (item_number_as_token_number): New.
3488 * src/output.c (GENERATE_OUTPUT_TABLE): New.
3489 Use it to create output_item_number_table and
3490 output_token_number_table.
3491 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
3492 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
3493 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
3494 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
3495
3496 2002-04-22 Akim Demaille <akim@epita.fr>
3497
3498 * src/output.h, src/output.c (get_lines_number): Remove.
3499
3500 2002-04-19 Akim Demaille <akim@epita.fr>
3501
3502 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
3503 as Lex/Flex'.
3504 (Debugging): More details about enabling the debugging features.
3505 (Table of Symbols): Describe $$, $n, @$, and @n.
3506 Suggested by Tim Josling.
3507
3508 2002-04-19 Akim Demaille <akim@epita.fr>
3509
3510 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
3511
3512 2002-04-10 Akim Demaille <akim@epita.fr>
3513
3514 * src/system.h: Rely on HAVE_LIMITS_H.
3515 Suggested by Paul Eggert.
3516
3517 2002-04-09 Akim Demaille <akim@epita.fr>
3518
3519 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
3520 full stderr, and strip it according to the bison options, instead
3521 of composing the error message from different bits.
3522 This makes it easier to check for several error messages.
3523 Adjust all the invocations.
3524 Add an invocation exercising the error token.
3525 Add an invocation demonstrating a stupid error message.
3526 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
3527 Adjust the tests.
3528 Error message are for stderr, not stdout.
3529
3530 2002-04-09 Akim Demaille <akim@epita.fr>
3531
3532 * src/gram.h, src/gram.c (error_token_number): Remove, use
3533 errtoken->number.
3534 * src/reader.c (reader): Don't specify the user token number (2)
3535 for $undefined, as it uselessly prevents using it.
3536 * src/gram.h (token_number_t): Move to...
3537 * src/symtab.h: here.
3538 (state_t.number): Is a token_number_t.
3539 * src/print.c, src/reader.c: Use undeftoken->number instead of
3540 hard coded 2.
3541 (Even though this 2 is not the same as above: the number of the
3542 undeftoken remains being 2, it is its user token number which
3543 might not be 2).
3544 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
3545 `user_token_number_max'.
3546 Output `undef_token_number'.
3547 * data/bison.simple, data/bison.c++: Use them.
3548 Be sure to map invalid yylex return values to
3549 `undef_token_number'. This saves us from gratuitous SEGV.
3550
3551 * tests/conflicts.at (Solved SR Conflicts)
3552 (Unresolved SR Conflicts): Adjust.
3553 * tests/regression.at (Web2c Actions): Adjust.
3554
3555 2002-04-08 Akim Demaille <akim@epita.fr>
3556
3557 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
3558 Adding #line.
3559 Remove the duplicate `typedefs'.
3560 (RhsNumberType): Fix the declaration and various other typos.
3561 Use __ofile__.
3562 * data/bison.simple: Use __ofile__.
3563 * src/scan-skel.l: Handle __ofile__.
3564
3565 2002-04-08 Akim Demaille <akim@epita.fr>
3566
3567 * src/gram.h (item_number_t): New, the type of item numbers in
3568 RITEM. Note that it must be able to code symbol numbers as
3569 positive number, and the negation of rule numbers as negative
3570 numbers.
3571 Adjust all dependencies (pretty many).
3572 * src/reduce.c (rule): Remove this `short *' pointer: use
3573 item_number_t.
3574 * src/system.h (MINSHORT, MAXSHORT): Remove.
3575 Include `limits.h'.
3576 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
3577 (shortcpy): Remove.
3578 (MAXTABLE): Move to...
3579 * src/output.c (MAXTABLE): here.
3580 (prepare_rules): Use output_int_table to output rhs.
3581 * data/bison.simple, data/bison.c++: Adjust.
3582 * tests/torture.at (Big triangle): Move the limit from 254 to
3583 500.
3584 * tests/regression.at (Web2c Actions): Ajust.
3585
3586 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
3587 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
3588 passes, but produces negative #line number, once fixed, GCC is
3589 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
3590 C), it passes.
3591 * src/state.h (state_h): Code input lines on ints, not shorts.
3592
3593 2002-04-08 Akim Demaille <akim@epita.fr>
3594
3595 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
3596 and then the grammar.
3597
3598 2002-04-08 Akim Demaille <akim@epita.fr>
3599
3600 * src/system.h: No longer using strndup.
3601
3602 2002-04-07 Akim Demaille <akim@epita.fr>
3603
3604 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
3605 * src/output.c (output_table_data): Return the longest number.
3606 (prepare_tokens): Output `token_number_max').
3607 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
3608 New.
3609 Use them to define yy_token_number_type/TokenNumberType.
3610 Use this type for yytranslate.
3611 * tests/torture.at (Big triangle): Push the limit from 124 to
3612 253.
3613 * tests/regression.at (Web2c Actions): Adjust.
3614
3615 2002-04-07 Akim Demaille <akim@epita.fr>
3616
3617 * tests/torture.at (Big triangle): New.
3618 (GNU AWK Grammar, GNU Cim Grammar): Move to...
3619 * tests/existing.at: here.
3620
3621 2002-04-07 Akim Demaille <akim@epita.fr>
3622
3623 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
3624 nritems.
3625 Adjust dependencies.
3626
3627 2002-04-07 Akim Demaille <akim@epita.fr>
3628
3629 * src/reader.c: Normalize increments to prefix form.
3630
3631 2002-04-07 Akim Demaille <akim@epita.fr>
3632
3633 * src/reader.c, symtab.c: Remove debugging code.
3634
3635 2002-04-07 Akim Demaille <akim@epita.fr>
3636
3637 Rename all the `bucket's as `symbol_t'.
3638
3639 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
3640 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
3641 * src/symtab.c, src/symtab.h (bucket): Rename as...
3642 (symbol_t): this.
3643 (symbol_list_new, bucket_check_defined, bucket_make_alias)
3644 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
3645 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
3646 (buckets_new, buckets_free, buckets_do): Rename as...
3647 (symbol_list_new, symbol_check_defined, symbol_make_alias)
3648 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
3649 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
3650 (symbols_new, symbols_free, symbols_do): these.
3651
3652 2002-04-07 Akim Demaille <akim@epita.fr>
3653
3654 Use lib/hash for the symbol table.
3655
3656 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
3657 EOF.
3658 * src/lex.c (lex): Set the `number' member of new terminals.
3659 * src/reader.c (bucket_check_defined, bucket_make_alias)
3660 (bucket_check_alias_consistence, bucket_translation): New.
3661 (reader, grammar_free, readgram, token_translations_init)
3662 (packsymbols): Adjust.
3663 (reader): Number the predefined tokens.
3664 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
3665 for predefined tokens.
3666 * src/symtab.h (bucket): Remove all the hash table related
3667 members.
3668 * src/symtab.c (symtab): Replace by...
3669 (bucket_table): this.
3670 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
3671 (buckets_new, buckets_do): New.
3672
3673 2002-04-07 Akim Demaille <akim@epita.fr>
3674
3675 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
3676 (start_symbol, max_user_token_number, semantic_parser)
3677 (error_token_number): Initialize.
3678 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
3679 Initialize.
3680 (reader): Don't.
3681 (errtoken, eoftoken, undeftoken, axiom): Extern.
3682
3683 2002-04-07 Akim Demaille <akim@epita.fr>
3684
3685 * src/gram.h (rule_s): prec and precsym are now pointers
3686 to the bucket giving the priority/associativity.
3687 Member `associativity' removed: useless.
3688 * src/reduce.c, src/conflicts.c: Adjust.
3689
3690 2002-04-07 Akim Demaille <akim@epita.fr>
3691
3692 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
3693 Properly escape the symbols' TAG when outputting them.
3694
3695 2002-04-07 Akim Demaille <akim@epita.fr>
3696
3697 * src/lalr.h (LA): Is a bitsetv, not bitset*.
3698
3699 2002-04-07 Akim Demaille <akim@epita.fr>
3700
3701 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
3702 (LArule): this, which is an array to rule_t*.
3703 * src/print.c, src/conflicts.c: Adjust.
3704
3705 2002-04-07 Akim Demaille <akim@epita.fr>
3706
3707 * src/gram.h (rule_t): Rename `number' as `user_number'.
3708 `number' is a new member.
3709 Adjust dependencies.
3710 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
3711
3712 2002-04-07 Akim Demaille <akim@epita.fr>
3713
3714 As a result of the previous patch, it is no longer needed
3715 to reorder ritem itself.
3716
3717 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
3718
3719 2002-04-07 Akim Demaille <akim@epita.fr>
3720
3721 Be sure never to walk through RITEMS, but use only data related to
3722 the rules themselves. RITEMS should be banished.
3723
3724 * src/output.c (output_token_translations): Rename as...
3725 (prepare_tokens): this.
3726 In addition to `translate', prepare the muscles `tname' and
3727 `toknum', which were handled by...
3728 (output_rule_data): this.
3729 Remove, and move the remainder of its outputs into...
3730 (prepare_rules): this new routines, which also merges content from
3731 (output_gram): this.
3732 (prepare_rules): Be sure never to walk through RITEMS.
3733 (output_stos): Rename as...
3734 (prepare_stos): this.
3735 (output): Always invoke prepare_states, after all, just don't use it
3736 in the output if you don't need it.
3737
3738 2002-04-07 Akim Demaille <akim@epita.fr>
3739
3740 * src/LR0.c (new_state): Display `nstates' as the name of the
3741 newly created state.
3742 Adjust to initialize first_state and last_state if needed.
3743 Be sure to distinguish the initial from the final state.
3744 (new_states): Create the itemset of the initial state, and use
3745 new_state.
3746 * src/closure.c (closure): Now that the initial state has its
3747 items properly set, there is no need for a special case when
3748 creating `ruleset'.
3749
3750 As a result, now the rule 0, reducing to $axiom, is visible in the
3751 outputs. Adjust the test suite.
3752
3753 * tests/conflicts.at (Solved SR Conflicts)
3754 (Unresolved SR Conflicts): Adjust.
3755 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
3756 * tests/conflicts.at (S/R in initial): New.
3757
3758 2002-04-07 Akim Demaille <akim@epita.fr>
3759
3760 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
3761 the RHS of the rules.
3762 * src/output.c (output_gram): Likewise.
3763
3764 2002-04-07 Akim Demaille <akim@epita.fr>
3765
3766 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
3767 bucket.
3768 Adjust all dependencies.
3769 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
3770 `number' of the buckets too.
3771 * src/gram.h: Include `symtab.h'.
3772 (associativity): Move to...
3773 * src/symtab.h: here.
3774 No longer include `gram.h'.
3775
3776 2002-04-07 Akim Demaille <akim@epita.fr>
3777
3778 * src/gram.h, src/gram.c (rules_rhs_length): New.
3779 (ritem_longest_rhs): Use it.
3780 * src/gram.h (rule_t): `number' is a new member.
3781 * src/reader.c (packgram): Set it.
3782 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
3783 the end of `rules', and count them out of `nrules'.
3784 (reduce_output, dump_grammar): Adjust.
3785 * src/print.c (print_grammar): It is no longer needed to check for
3786 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
3787 * tests/reduce.at (Reduced Automaton): New test.
3788
3789 2002-04-07 Akim Demaille <akim@epita.fr>
3790
3791 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
3792 lacking `+ 1' to nrules, Bison reported as useless a token if it
3793 was used solely to set the precedence of the last rule...
3794
3795 2002-04-07 Akim Demaille <akim@epita.fr>
3796
3797 * data/bison.c++, data/bison.simple: Don't output the current file
3798 name in #line, to avoid useless diffs between two identical
3799 outputs under different names.
3800
3801 2002-04-07 Akim Demaille <akim@epita.fr>
3802
3803 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
3804 Normalize loops to using `< nrules + 1', not `<= nrules'.
3805
3806 2002-04-07 Akim Demaille <akim@epita.fr>
3807
3808 * TODO: Update.
3809
3810 2002-04-07 Akim Demaille <akim@epita.fr>
3811
3812 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
3813 bucket.value as bucket.number.
3814
3815 2002-04-07 Akim Demaille <akim@epita.fr>
3816
3817 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
3818 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
3819 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
3820 RHS, instead of being an index in RITEMS.
3821
3822 2002-04-04 Paul Eggert <eggert@twinsun.com>
3823
3824 * doc/bison.texinfo: Update copyright date.
3825 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
3826 (Symbols): Warn about running Bison in one character set,
3827 but compiling and/or running in an incompatible one.
3828 Warn about character code 256, too.
3829
3830 2002-04-03 Paul Eggert <eggert@twinsun.com>
3831
3832 * src/bison.data (YYSTACK_ALLOC): Depend on whether
3833 YYERROR_VERBOSE is nonzero, not whether it is defined.
3834
3835 Merge changes from bison-1_29-branch.
3836
3837 2002-03-20 Paul Eggert <eggert@twinsun.com>
3838
3839 Merge fixes from Debian bison_1.34-1.diff.
3840
3841 * configure.in (AC_PREREQ): 2.53.
3842
3843 2002-03-20 Akim Demaille <akim@epita.fr>
3844
3845 * src/conflicts.c (log_resolution): Argument `resolution' is const.
3846
3847 2002-03-19 Paul Eggert <eggert@twinsun.com>
3848
3849 * src/bison.simple (YYCOPY): New macro.
3850 (YYSTACK_RELOCATE): Use it.
3851 Remove Type arg; no longer needed. All callers changed.
3852 (yymemcpy): Remove; no longer needed.
3853
3854 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
3855 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3856
3857 2002-03-19 Akim Demaille <akim@epita.fr>
3858
3859 Test and fix the #line outputs.
3860
3861 * tests/atlocal.at (GCC): New.
3862 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
3863 (Prologue synch line, ,%union synch line, Postprologue synch line)
3864 (Action synch line, Epilogue synch line): New tests.
3865 * src/reader.c (parse_union_decl): Define the muscle stype_line.
3866 * data/bison.simple, data/bison.c++: Use it.
3867
3868 2002-03-19 Akim Demaille <akim@epita.fr>
3869
3870 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
3871 (Solved SR Conflicts, %expect not enough, %expect right)
3872 (%expect too much): Move to...
3873 * tests/conflicts.at: this new file.
3874
3875 2002-03-19 Akim Demaille <akim@epita.fr>
3876
3877 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
3878 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
3879 that we can move to enums for instance.
3880 * src/output.c (token_definitions_output): Output a list of
3881 `token-name, token-number' instead of the #define.
3882 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
3883
3884 2002-03-14 Akim Demaille <akim@epita.fr>
3885
3886 Use Gettext 0.11.1.
3887
3888 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
3889
3890 * data/bison.c++: Make the user able to add members to the generated
3891 parser by subclassing.
3892
3893 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
3894
3895 * src/reader.c (read_additionnal_code): `c' should be an integer, not
3896 a character.
3897 Reported by Nicolas Tisserand and Nicolas Burrus.
3898
3899 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
3900
3901 * src/reader.c: Warn about lacking semi-colons, do not complain.
3902
3903 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
3904
3905 * data/bison.c++: Remove a debug line.
3906
3907 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
3908
3909 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
3910 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
3911 provide a default implementation.
3912
3913 2002-03-04 Akim Demaille <akim@epita.fr>
3914
3915 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
3916 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
3917 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
3918 * tests/semantic.at (Parsing Guards): Similarly.
3919 * src/reader.at (readgram): Complain if the last rule is not ended
3920 with a semi-colon.
3921
3922 2002-03-04 Akim Demaille <akim@epita.fr>
3923
3924 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
3925 * src/closure.c: here.
3926 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
3927 RTC.
3928 * src/warshall.h, src/warshall.c: Remove.
3929 * tests/sets.at (Broken Closure): Adjust.
3930
3931 2002-03-04 Akim Demaille <akim@epita.fr>
3932
3933 * src/output.c (output_skeleton): tempdir is const.
3934 bytes_read is unused.
3935
3936 2002-03-04 Akim Demaille <akim@epita.fr>
3937
3938 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
3939 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
3940 Update.
3941 From Michael Hayes.
3942
3943 2002-03-04 Akim Demaille <akim@epita.fr>
3944
3945 * src/closure.c (closure): `r' is unused.
3946
3947 2002-03-04 Akim Demaille <akim@epita.fr>
3948
3949 * tests/sets.at (Broken Closure): Add the ending `;'.
3950 * src/reader.at (readgram): Complain if a rule is not ended with a
3951 semi-colon.
3952
3953 2002-03-04 Akim Demaille <akim@epita.fr>
3954
3955 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
3956 (count_sr_conflicts): Use bitset_count.
3957 * src/reduce.c (inaccessable_symbols): Ditto.
3958 (bits_size): Remove.
3959 * src/warshall.h, src/warshall.c: Convert to bitsetv.
3960
3961 2002-03-04 Akim Demaille <akim@epita.fr>
3962
3963 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
3964 * src/reduce.c: Remove the `bitset_zero's following the
3965 `bitset_create's, as now it is performed by the latter.
3966
3967 2002-03-04 Akim Demaille <akim@epita.fr>
3968
3969 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
3970 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
3971 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
3972 latest sources from Michael.
3973
3974 2002-03-04 Akim Demaille <akim@epita.fr>
3975
3976 * src/output.c (output): Don't free the grammar.
3977 * src/reader.c (grammar_free): New.
3978 * src/main.c (main): Call it and don't free symtab here.
3979
3980 2002-03-04 Akim Demaille <akim@epita.fr>
3981
3982 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
3983 before returning.
3984 Reported by Benoit Perrot.
3985
3986 2002-03-04 Akim Demaille <akim@epita.fr>
3987
3988 Use bitset operations when possible, not loops over bits.
3989
3990 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
3991 bitset_or.
3992 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
3993 * src/reduce.c (useless_nonterminals): Formatting changes.
3994 * src/warshall.c (TC): Use bitset_or.
3995
3996 2002-03-04 Akim Demaille <akim@epita.fr>
3997
3998 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
3999 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
4000 Ditto.
4001
4002 2002-03-04 Akim Demaille <akim@epita.fr>
4003
4004 * src/lalr.c (F): Now a bitset*.
4005 Adjust all dependencies.
4006
4007 2002-03-04 Akim Demaille <akim@epita.fr>
4008
4009 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
4010 Adjust all dependencies.
4011
4012 2002-03-04 Akim Demaille <akim@epita.fr>
4013
4014 * src/L0.c, src/LR0.h (nstates): Be size_t.
4015 Adjust comparisons (signed vs unsigned).
4016 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
4017 bitset*.
4018 Adjust all dependencies.
4019
4020 2002-03-04 Akim Demaille <akim@epita.fr>
4021
4022 * src/closure.c (firsts): Now, also a bitset.
4023 Adjust all dependencies.
4024 (varsetsize): Remove, now unused.
4025 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
4026
4027 2002-03-04 Akim Demaille <akim@epita.fr>
4028
4029 * src/print.c: Convert to use bitset.h, not hand coded iterations
4030 over ints.
4031
4032 2002-03-04 Akim Demaille <akim@epita.fr>
4033
4034 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
4035
4036 2002-03-04 Akim Demaille <akim@epita.fr>
4037
4038 * src/closure.c (ruleset): Be a bitset.
4039 (rulesetsize): Remove.
4040
4041 2002-03-04 Akim Demaille <akim@epita.fr>
4042
4043 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
4044 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
4045 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
4046 * src/closure.c (fderives): Be an array of bitsets.
4047
4048 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
4049
4050 * data/bison.c++: Merge the two generated headers. Insert a copyright
4051 notice in each output file.
4052
4053 2002-02-28 Akim Demaille <akim@epita.fr>
4054
4055 * data/bison.c++: Copy the prologue of bison.simple to fetch
4056 useful M4 definitions, such as b4_header_guard.
4057
4058 2002-02-25 Akim Demaille <akim@epita.fr>
4059
4060 * src/getargs.c (version): Give the name of the authors, and use a
4061 translator friendly scheme for the bgr
4062 copyright notice.
4063
4064 2002-02-25 Akim Demaille <akim@epita.fr>
4065
4066 * src/output.c (header_output): Remove, now handled completely via
4067 M4.
4068
4069 2002-02-25 Akim Demaille <akim@epita.fr>
4070
4071 * m4/m4.m4: New, from CVS Autoconf.
4072 * configure.in: Invoke it.
4073 * src/output.c (output_skeleton): Use its result instead of the
4074 hard coded name.
4075
4076 2002-02-25 Akim Demaille <akim@epita.fr>
4077
4078 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
4079 Fileutils 4.1.5.
4080 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
4081 * src/output.c (output_skeleton): Use mkstemp to create a real
4082 temporary file.
4083 Move the filling of `skeleton' and its muscle to...
4084 (prepare): here.
4085 (output): Move the definition of the prologue muscle to...
4086 (prepare): here.
4087 * src/system.h (DEFAULT_TMPDIR): New.
4088
4089 2002-02-14 Paul Eggert <eggert@twinsun.com>
4090
4091 Remove the support for C++ namespace cleanliness; it was
4092 causing more problems than it was curing, since it didn't work
4093 properly on some nonstandard C++ compilers. This can wait
4094 for a proper C++ parser.
4095
4096 * NEWS: Document this.
4097 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
4098 of C++, as it's treated like C now.
4099 * src/bison.simple (YYSTD): Remove.
4100 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
4101 Treat C++ just like Standard C instead of trying to support
4102 namespace cleanliness.
4103
4104 2002-02-14 Akim Demaille <akim@epita.fr>
4105
4106 * tests/regression.at (else): Adjust to Andreas' change.
4107
4108 2002-02-14 Akim Demaille <akim@epita.fr>
4109
4110 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
4111
4112 2002-02-13 Andreas Schwab <schwab@suse.de>
4113
4114 * src/output.c (output_rule_data): Don't output NULL, it might
4115 not be defined yet.
4116
4117 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
4118
4119 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
4120 (Copyright notice): Update.
4121
4122 2002-02-11 Akim Demaille <akim@epita.fr>
4123
4124 * tests/regression.at (%nonassoc and eof): Don't include
4125 nonportable headers.
4126
4127 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
4128
4129 * data/bison.c++: Correct error recovery. Make the user able to
4130 initialize the starting location.
4131
4132 2002-02-07 Akim Demaille <akim@epita.fr>
4133
4134 * tests/input.at: New.
4135
4136 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
4137
4138 * data/bison.c++: Replace some direct m4 expansions by constants. Be
4139 more consistent when naming methods and variables. Put preprocessor
4140 directives around tables only needed for debugging.
4141
4142 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
4143
4144 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
4145 C++ parsers.
4146 (yy::b4_name::parse): Use print_.
4147
4148 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
4149
4150 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
4151
4152 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
4153
4154 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
4155 C++ parsers.
4156 (yy::b4_name::parse): Build verbose error messages, and use error_.
4157
4158 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
4159
4160 * data/bison.c++: Fix m4 quoting in comments.
4161
4162 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
4163
4164 * data/bison.c++: Adjust the parser code. Fix some muscles that were
4165 not expanded by m4.
4166
4167 2002-02-05 Akim Demaille <akim@epita.fr>
4168
4169 * data/bison.c++: Adjust to the M4 back end.
4170 More is certainly needed.
4171
4172 2002-02-05 Akim Demaille <akim@epita.fr>
4173
4174 Give a try to M4 as a back end.
4175
4176 * lib/readpipe.c: New, from wdiff.
4177 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
4178 BISON_HAIRY.
4179 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
4180 specific values. Now it is m4 that performs the lookup.
4181 * src/parse-skel.y: Remove.
4182 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
4183 * src/output.c (actions_output, guards_output)
4184 (token_definitions_output): No longer keeps track of the output
4185 line number, hence remove the second argument.
4186 (guards_output): Check against the guard member of a rule, not the
4187 action member.
4188 Adjust callers.
4189 (output_skeleton): Don't look for the skeleton location, let m4 do
4190 that.
4191 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
4192 file will be used.
4193 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
4194 (prepare): Given that for the time being changesyntax is not
4195 usable in M4, rename the muscles using `-' to `_'.
4196 Define `defines_flag', `output_parser_name' and `output_header_name'.
4197 * src/output.h (actions_output, guards_output)
4198 (token_definitions_output): Adjust prototypes.
4199 * src/scan-skel.l: Instead of scanning the skeletons, it now
4200 processes the output of m4: `__oline__' and `#output'.
4201 * data/bison.simple: Adjust to be used by M4(sugar).
4202 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
4203 to date.
4204 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
4205 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
4206 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
4207 shamelessly stolen from CVS Autoconf.
4208
4209 2002-02-05 Akim Demaille <akim@epita.fr>
4210
4211 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
4212 * configure.in: Check for the declarations of free and malloc.
4213 * src/muscle_tab.c: Adjust.
4214
4215 2002-02-05 Akim Demaille <akim@epita.fr>
4216
4217 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
4218 which have no values.
4219
4220 2002-02-05 Akim Demaille <akim@epita.fr>
4221
4222 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
4223 * data/: here.
4224
4225 2002-01-29 Paul Eggert <eggert@twinsun.com>
4226
4227 * src/bison.simple (YYSIZE_T): Do not define merely because
4228 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
4229 On some platforms, <alloca.h> does not declare YYSTD (size_t).
4230
4231 2002-01-27 Akim Demaille <akim@epita.fr>
4232
4233 Fix `%nonassoc and eof'.
4234
4235 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
4236 which were not properly copied! Replace
4237 memcpy (res->errs, src->errs, src->nerrs);
4238 with
4239 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
4240 !!!
4241 * tests/regression.at (%nonassoc and eof): Adjust to newest
4242 Autotest: `.' is not in the PATH.
4243
4244 2002-01-27 Akim Demaille <akim@epita.fr>
4245
4246 * tests/sets.at (AT_EXTRACT_SETS): New.
4247 (Nullable): Use it.
4248 (Firsts): New.
4249
4250 2002-01-26 Akim Demaille <akim@epita.fr>
4251
4252 * tests/actions.at, tests/calc.at, tests/headers.at,
4253 * tests/torture.at: Adjust to the newest Autotest which no longer
4254 forces `.' in the PATH.
4255
4256 2002-01-25 Akim Demaille <akim@epita.fr>
4257
4258 * tests/regression.at (%nonassoc and eof): New.
4259 Suggested by Robert Anisko.
4260
4261 2002-01-24 Akim Demaille <akim@epita.fr>
4262
4263 Bison dumps core when trying to complain about broken input files.
4264 Reported by Cris van Pelt.
4265
4266 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
4267 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
4268 into...
4269 (Invalid inputs): Strengthen: exercise parse_percent_token.
4270
4271 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
4272
4273 * src/Makefile.am: Add bison.c++.
4274 * src/bison.c++: New skeleton.
4275
4276 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
4277
4278 * po/it.po: New.
4279
4280 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
4281
4282 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
4283
4284 2002-01-20 Marc Autret <marc@gnu.org>
4285
4286 * src/files.c (compute_output_file_names): Fix
4287
4288 2002-01-20 Marc Autret <marc@gnu.org>
4289
4290 * tests/output.at: New test.
4291 * src/files.c (compute_base_names): Don't map extensions when
4292 the YACC flag is set, use defaults.
4293 Reported by Evgeny Stambulchik.
4294
4295 2002-01-20 Marc Autret <marc@gnu.org>
4296
4297 * src/system.h: Need to define __attribute__ away for non-GCC
4298 compilers as well (i.e. the vendor C compiler).
4299 Suggested by Albert Chin-A-Young.
4300
4301 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
4302
4303 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
4304 canonical definition.
4305 * src/system.h: Use the canonical definition for PARAMS (avoids
4306 a conflict with the macro from lib/hash.h).
4307
4308 2002-01-11 Akim Demaille <akim@epita.fr>
4309
4310 * configure.in: Use AC_FUNC_STRNLEN.
4311 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
4312
4313 2002-01-09 Akim Demaille <akim@epita.fr>
4314
4315 * src/files.c, src/files.h (output_infix): New.
4316 (tab_extension): Remove.
4317 (compute_base_names): Compute the former, drop the latter.
4318 * src/output.c (prepare): Insert the muscles `output-infix', and
4319 `output-suffix'.
4320 * src/parse-skel.y (string, string.1): New.
4321 (section.header): Use it.
4322 (section.yacc): Remove.
4323 (prefix): Remove too.
4324 * src/scan-skel.l: Adjust.
4325 * src/bison.simple, src/bison.hairy: Adjust.
4326
4327 2002-01-09 Akim Demaille <akim@epita.fr>
4328
4329 * configure.in (WERROR_CFLAGS): Compute it.
4330 * src/Makefile.am (CFLAGS): Pass it.
4331 * tests/atlocal.in (CFLAGS): Idem.
4332 * src/files.c: Fix a few warnings.
4333 (get_extension_index): Remove, unused.
4334
4335 2002-01-08 Akim Demaille <akim@epita.fr>
4336
4337 * src/getargs.c (AS_FILE_NAME): New.
4338 (getargs): Use it to convert DOSish file names.
4339 * src/files.c (base_name): Rename as full_base_name to avoid
4340 clashes with `base_name ()'.
4341 (filename_split): New.
4342 (compute_base_names): N-th rewrite, using filename_split.
4343
4344 2002-01-08 Akim Demaille <akim@epita.fr>
4345
4346 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
4347 New, stolen from the Fileutils 4.1.
4348 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
4349 * configure.in: Check for the presence of memrchr, and of its
4350 prototype.
4351
4352 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
4353
4354 * lib/hash.h (__P): Added definition for this macro.
4355 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
4356 BUILT_SOURCES, to ensure they are generated first.
4357 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
4358 %error-verbose to allow bootstrapping with bison 1.30x.
4359
4360 2002-01-06 Akim Demaille <akim@epita.fr>
4361
4362 * src/reader.c (parse_braces): Don't fetch the next char, the
4363 convention is to fetch on entry.
4364 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
4365 'switch' without a following semicolon.
4366 * tests/regression.at (braces parsing): New.
4367
4368 2002-01-06 Akim Demaille <akim@epita.fr>
4369
4370 Bison is dead wrong in its RR conflict reports.
4371
4372 * tests/torture.at (GNU Cim Grammar): New.
4373 * src/conflicts.c (count_rr_conflicts): Fix.
4374
4375 2002-01-06 Akim Demaille <akim@epita.fr>
4376
4377 Creating package.m4 from configure.ac causes too many problems.
4378
4379 * tests/Makefile.am (package.m4): Create it by hand,
4380 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
4381
4382 2002-01-06 Akim Demaille <akim@epita.fr>
4383
4384 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
4385 skeleton.h.
4386
4387 2002-01-04 Paul Eggert <eggert@twinsun.com>
4388
4389 * doc/bison.texinfo (Debugging):
4390 Remove YYSTDERR; it's no longer defined or used.
4391 Also, s/cstdio.h/cstdio/.
4392
4393 2002-01-03 Akim Demaille <akim@epita.fr>
4394
4395 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
4396
4397 2002-01-03 Akim Demaille <akim@epita.fr>
4398
4399 * src/parse-skel.y (process_skeleton): Don't bind the parser's
4400 tracing code to --trace, wait for a better --trace option, with
4401 args.
4402
4403 2002-01-03 Akim Demaille <akim@epita.fr>
4404
4405 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
4406 The ISO C++ standard is extremely clear about it: stderr is
4407 considered a macro, not a regular symbol (see table 94 `Header
4408 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
4409 Therefore std:: does not apply to it. It still does with fprintf.
4410 Also, s/cstdio.h/cstdio/.
4411
4412 2002-01-03 Akim Demaille <akim@epita.fr>
4413
4414 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
4415 for non system headers.
4416
4417 2002-01-02 Akim Demaille <akim@epita.fr>
4418
4419 Equip the skeleton chain with location tracking, runtime trace,
4420 pure parser and scanner.
4421
4422 * src/parse-skel.y: Request a pure parser, locations, and prefix
4423 renaming.
4424 (%union): Having several members with the same type does not help
4425 type mismatches, simplify.
4426 (YYPRINT, yyprint): New.
4427 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
4428 (skel_error): this.
4429 Handle locations.
4430 * src/scan-skel.l: Adjust to these changes.
4431 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
4432 (LOCATION_PRINT, skel_control_t): New.
4433
4434 2001-12-30 Akim Demaille <akim@epita.fr>
4435
4436 * src/parse-skel.y: Get rid of the shift/reduce conflict:
4437 replace `gb' with BLANKS.
4438 * src/scan-skel.l: Adjust.
4439
4440 2001-12-30 Akim Demaille <akim@epita.fr>
4441
4442 * src/system.h: We don't need nor want bcopy.
4443 Throw away MS-DOS crap: we don't need getpid.
4444 * configure.in: We don't need strndup. It was even causing
4445 problems: because Flex includes the headers *before* us,
4446 _GNU_SOURCE is not defined by config.h, and therefore strndup was
4447 not visible.
4448 * lib/xstrndup.c: New.
4449 * src/scan-skel.l: Use it.
4450 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
4451 * src/parse-skel.y: Use %directives instead of #defines.
4452
4453 2001-12-30 Akim Demaille <akim@epita.fr>
4454
4455 * src/skeleton.h: New.
4456 * src/output.c (output_parser, output_master_parser): Remove, dead
4457 code.
4458 * src/output.h (get_lines_number, actions_output, guards_output)
4459 (token_definitions_output): Prototype them.
4460 * src/parse-skel.y: Add the license notice.
4461 Include output.h and skeleton.h.
4462 (process_skeleton): Returns void, and takes a single parameter.
4463 * src/scan-skel.l: Add the license notice.
4464 Include skeleton.h.
4465 Don't use %option yylineno: it seems that then Flex imagines
4466 REJECT has been used, and therefore it won't reallocate its
4467 buffers (which makes no other sense to me than a bug). It results
4468 in warnings for `unused: yy_flex_realloc'.
4469
4470 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
4471
4472 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
4473 (MUSCLE_INSERT_PREFIX): ...to there.
4474 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
4475 (MUSCLE_INSERT_PREFIX): Move from here...
4476
4477 * src/bison.hairy: Add a section directive. Put braces around muscle
4478 names. This parser skeleton is still broken, but Bison should not
4479 choke on a bad muscle 'syntax'.
4480 * src/bison.simple: Add a section directive. Put braces around muscle
4481 names.
4482
4483 * src/files.h (strsuffix, stringappend): Add declarations.
4484 (tab_extension): Add declaration.
4485 (short_base_name): Add declaration.
4486
4487 * src/files.c (strsuffix, stringappend): No longer static. These
4488 functions are used in the skeleton parser.
4489 (tab_extension): New.
4490 (compute_base_names): Use the computations done in this function
4491 to guess if the generated parsers should have '.tab' in their
4492 names.
4493 (short_base_name): No longer static.
4494
4495 * src/output.c (output_skeleton): New.
4496 (output): Disable call to output_master_parser, and give a try to
4497 a new skeleton handling system.
4498 (guards_output, actions_output): No longer static.
4499 (token_definitions_output, get_lines_number): No longer static.
4500
4501 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
4502
4503 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
4504 parse-skel.y.
4505
4506 * src/parse-skel.y: New file.
4507 * src/scan-skel.l: New file.
4508
4509 2001-12-29 Akim Demaille <akim@epita.fr>
4510
4511 %name-prefix is broken.
4512
4513 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
4514 Adjust all dependencies.
4515 * tests/headers.at (export YYLTYPE): Strengthen this test: use
4516 %name-prefix.
4517
4518 Renaming yylval but not yylloc is not consistent. Now we do.
4519
4520 * src/bison.simple: Prefix yylloc if used.
4521 * doc/bison.texinfo (Decl Summary): Document that.
4522
4523 2001-12-29 Akim Demaille <akim@epita.fr>
4524
4525 * doc/bison.texinfo: Promote `%long-directive' over
4526 `%long_directive'.
4527 Remove all references to fixed-output-files, yacc is enough.
4528
4529 2001-12-29 Akim Demaille <akim@epita.fr>
4530
4531 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
4532 user prologue. These are defaults.
4533 * tests/actions.at (Mid-rule actions): Make sure the user can
4534 define YYDEBUG and YYERROR_VERBOSE.
4535
4536 2001-12-29 Akim Demaille <akim@epita.fr>
4537
4538 * src/output.c (header_output): Don't forget to export YYLTYPE and
4539 yylloc.
4540 * tests/headers.at (export YYLTYPE): New, make sure it does.
4541 * tests/regression.at (%union and --defines, Invalid CPP headers):
4542 Move to...
4543 * tests/headers.at: here.
4544
4545 2001-12-29 Akim Demaille <akim@epita.fr>
4546
4547 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
4548
4549 2001-12-29 Akim Demaille <akim@epita.fr>
4550
4551 * tests/actions.at (Mid-rule actions): Output on a single line
4552 instead of several.
4553
4554 2001-12-29 Akim Demaille <akim@epita.fr>
4555
4556 * doc/bison.texinfo: Formatting changes.
4557
4558 2001-12-29 Akim Demaille <akim@epita.fr>
4559
4560 Don't store the token defs in a muscle, just be ready to output it
4561 on command. Now possible via `symbols'. Fixes a memory leak.
4562
4563 * src/output.c (token_definitions_output): New.
4564 (output_parser, header_output): Use it.
4565 * src/reader.c (symbols_save): Remove.
4566
4567 2001-12-29 Akim Demaille <akim@epita.fr>
4568
4569 * src/bison.simple: Do not provide a default for YYSTYPE and
4570 YYLTYPE before the user's prologue. Otherwise it's hardly... a
4571 default.
4572
4573 2001-12-29 Akim Demaille <akim@epita.fr>
4574
4575 Mid-rule actions are simply... ignored!
4576
4577 * src/reader.c (readgram): Be sure to attach mid-rule actions to
4578 the empty-rule associated to the dummy symbol, not to the host
4579 rule.
4580 * tests/actions.at (Mid-rule actions): New.
4581
4582 2001-12-29 Akim Demaille <akim@epita.fr>
4583
4584 Memory leak.
4585
4586 * src/reader.c (reader): Free grammar.
4587
4588 2001-12-29 Akim Demaille <akim@epita.fr>
4589
4590 Memory leak.
4591
4592 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
4593 since it allocates it for each state, although only one is needed.
4594 (allocate_storage): Do it here.
4595
4596 2001-12-29 Akim Demaille <akim@epita.fr>
4597
4598 * src/options.h, src/options.c (create_long_option_table): Rename
4599 as...
4600 (long_option_table_new): this, with a clearer prototype.
4601 (percent_table): Remove, unused,
4602 * src/getargs.c (getargs): Adjust.
4603
4604 2001-12-29 Akim Demaille <akim@epita.fr>
4605
4606 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
4607 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
4608 as states.
4609
4610 2001-12-29 Akim Demaille <akim@epita.fr>
4611
4612 * src/lalr.c (build_relations): Rename `states' as `states1'.
4613 Sorry, I don't understand exactly what it is, no better name...
4614
4615 2001-12-29 Akim Demaille <akim@epita.fr>
4616
4617 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
4618 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
4619 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
4620 as rules.
4621
4622 2001-12-29 Akim Demaille <akim@epita.fr>
4623
4624 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
4625 ago.
4626
4627 2001-12-29 Akim Demaille <akim@epita.fr>
4628
4629 * src/reader.c, src/reader.h (user_toknums): Remove.
4630 Adjust all users to use symbols[i]->user_token_number.
4631
4632 2001-12-29 Akim Demaille <akim@epita.fr>
4633
4634 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
4635 Adjust all users to use symbols[i]->prec or ->assoc.
4636
4637 2001-12-29 Akim Demaille <akim@epita.fr>
4638
4639 * src/reader.c, src/reader.h (tags): Remove.
4640 Adjust all users to use symbols[i]->tag.
4641
4642 2001-12-29 Akim Demaille <akim@epita.fr>
4643
4644 * src/gram.h, src/gram.c (symbols): New, similar to state_table
4645 and rule_table.
4646 * src/reader.c (packsymbols): Fill this table.
4647 Drop sprec.
4648 * src/conflicts.c (resolve_sr_conflict): Adjust.
4649 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
4650 single table.
4651 Use symbols[i]->tag instead of tags[i].
4652
4653 2001-12-29 Akim Demaille <akim@epita.fr>
4654
4655 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
4656 In addition, put a comment in there, to replace...
4657 * tests/regression.at (%union and C comments): Remove.
4658
4659 2001-12-29 Akim Demaille <akim@epita.fr>
4660
4661 * tests/regression.at (Web2c Actions): Blindly move the actual
4662 output as expected output. The contents *seem* right to me, but I
4663 can't pretend reading perfectly parser tables... Nonetheless, all
4664 the other tests pass correctly, the table look OK, even though the
4665 presence of `$axiom' is to be noted: AFAICS it is useless (but
4666 harmless).
4667
4668 2001-12-29 Akim Demaille <akim@epita.fr>
4669
4670 * src/reader.c (readgram): Don't add the rule 0 if there were no
4671 rules read. In other words, add it _after_ having performed
4672 grammar sanity checks.
4673 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
4674
4675 2001-12-29 Akim Demaille <akim@epita.fr>
4676
4677 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
4678 visible, and some states have now a different number.
4679
4680 2001-12-29 Akim Demaille <akim@epita.fr>
4681
4682 * src/reader.c (readgram): Bind the initial rule's lineno to that
4683 of the first rule.
4684 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
4685 (Solved SR Conflicts): Adjust rule 0's line number.
4686
4687 2001-12-29 Akim Demaille <akim@epita.fr>
4688
4689 Fix the `GAWK Grammar' failure.
4690
4691 * src/LR0.c (final_state): Initialize to -1 so that we do compute
4692 the reductions of the first state which was mistakenly confused
4693 with the final state because precisely final_state was initialized
4694 to 0.
4695 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
4696 now noticed by Bison.
4697 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
4698 have a reduction on $default.
4699
4700 2001-12-29 Akim Demaille <akim@epita.fr>
4701
4702 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
4703 rule line numbers.
4704 * src/closure.c (print_closure): Likewise.
4705 * src/derives.c (print_derives): Likewise.
4706 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
4707 now.
4708
4709 2001-12-29 Akim Demaille <akim@epita.fr>
4710
4711 * src/lalr.c (lookaheads_print): New.
4712 (lalr): Call it when --trace-flag.
4713 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
4714 are dumped.
4715
4716 2001-12-29 Akim Demaille <akim@epita.fr>
4717
4718 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
4719 when walking through ritem, even via rule->rhs.
4720 * src/reduce.c (dump_grammar, useful_production, reduce_output)
4721 (useful_production, useless_nonterminals): Likewise.
4722 (reduce_grammar_tables): Likewise, plus update nritems.
4723 * src/nullable.c (set_nullable): Likewise.
4724 * src/lalr.c (build_relations): Likewise.
4725 * tests/sets.at (Nullable): Adjust.
4726 Fortunately, now, the $axiom is no longer nullable.
4727
4728 2001-12-29 Akim Demaille <akim@epita.fr>
4729
4730 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
4731 the 0-sentinel.
4732 * src/gram.c (ritem_longest_rhs): Likewise.
4733 * src/reduce.c (nonterminals_reduce): Likewise.
4734 * src/print_graph.c (print_graph): Likewise.
4735 * src/output.c (output_rule_data): Likewise.
4736 * src/nullable.c (set_nullable): Likewise.
4737
4738 2001-12-29 Akim Demaille <akim@epita.fr>
4739
4740 * src/output.c: Comment changes.
4741
4742 2001-12-27 Paul Eggert <eggert@twinsun.com>
4743
4744 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
4745 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
4746 Sparc, as they were causing more porting problems than the
4747 (minor) performance improvement was worth.
4748
4749 Also, catch up with 1.31's YYSTD.
4750
4751 2001-12-27 Akim Demaille <akim@epita.fr>
4752
4753 * src/output.c (output_gram): Rely on nritems, not the
4754 0-sentinel. See below.
4755 Use -1 as separator, not 0.
4756 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
4757 Rely on -1 as separator in yyrhs, instead of 0.
4758 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
4759 twice `Now at end of input', therefore there are two lines less to
4760 expect.
4761
4762 2001-12-27 Akim Demaille <akim@epita.fr>
4763
4764 * tests/regression.at (Unresolved SR Conflicts):
4765 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
4766 below.
4767
4768 2001-12-27 Akim Demaille <akim@epita.fr>
4769
4770 * src/LR0.c (new_state): Recognize the final state by the fact it
4771 is reached by eoftoken.
4772 (insert_start_shifting_state, insert_eof_shifting_state)
4773 (insert_accepting_state, augment_automaton): Remove, since now
4774 these states are automatically computed from the initial state.
4775 (generate_states): Adjust.
4776 * src/print.c: When reporting a rule number to the user, substract
4777 1, so that the axiom rule is rule 0, and the first user rule is 1.
4778 * src/reduce.c: Likewise.
4779 * src/print_graph.c (print_core): For the time being, just as for
4780 the report, depend upon --trace-flags to dump the full set of
4781 items.
4782 * src/reader.c (readgram): Once the grammar read, insert the rule
4783 0: `$axiom: START-SYMBOL $'.
4784 * tests/set.at: Adjust: rule 0 is now displayed, and since the
4785 number of the states has changed (the final state is no longer
4786 necessarily the last), catch up.
4787
4788 2001-12-27 Akim Demaille <akim@epita.fr>
4789
4790 Try to make the use of the eoftoken valid. Given that its value
4791 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
4792 is used instead of > 0 where appropriate, (ii), depend upon nritems
4793 instead of the 0-sentinel.
4794
4795 * src/gram.h, src/gram.c (nritems): New.
4796 Expected to be duplication of nitems, but for the time being...
4797 * src/reader.c (packgram): Assert nritems and nitems are equal.
4798 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
4799 * src/closure.c (print_closure, print_fderives): Likewise.
4800 * src/gram.c (ritem_print): Likewise.
4801 * src/print.c (print_core, print_grammar): Likewise.
4802 * src/print_graph.c: Likewise.
4803
4804 2001-12-27 Akim Demaille <akim@epita.fr>
4805
4806 * src/main.c (main): If there are complains after grammar
4807 reductions, then output the report anyway if requested, then die.
4808 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
4809 * src/reader.c (eoftoken): New.
4810 (parse_token_decl): If the token being defined has value `0', it
4811 is the eoftoken.
4812 (packsymbols): No longer hack `tags' to insert `$' by hand.
4813 Be sure to preserve the value of the eoftoken.
4814 (reader): Make sure eoftoken is defined.
4815 Initialize nsyms to 0: now eoftoken is created just like the others.
4816 * src/print.c (print_grammar): Don't special case the eof token.
4817 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
4818 lie anyway, albeit pleasant.
4819 * tests/calc.at: Exercise error messages with eoftoken.
4820 Change the grammar so that empty input is invalid.
4821 Adjust expectations.
4822 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
4823
4824 2001-12-27 Akim Demaille <akim@epita.fr>
4825
4826 * configure.in: Check the protos of strchr ans strspn.
4827 Replace strchr if needed.
4828 * src/system.h: Provide the protos of strchr, strspn and memchr if
4829 missing.
4830 * lib/strchr.c: New.
4831 * src/reader.c (symbols_save): Use strchr.
4832
4833 2001-12-27 Akim Demaille <akim@epita.fr>
4834
4835 * src/print.c, src/print_graph.c (escape): New.
4836 Use it to quote the TAGS outputs.
4837 * src/print_graph.c (print_state): Now errors are in red, and
4838 reductions in green.
4839 Prefer high to wide: output the state number on a line of its own.
4840
4841 2001-12-27 Akim Demaille <akim@epita.fr>
4842
4843 * src/state.h, src/state.c (reductions_new): New.
4844 * src/LR0.c (set_state_table): Let all the states have a
4845 `reductions', even if reduced to 0.
4846 (save_reductions): Adjust.
4847 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
4848 * src/print.c (print_reductions, print_actions): Adjust.
4849 * src/output.c (action_row): Adjust.
4850
4851 2001-12-27 Akim Demaille <akim@epita.fr>
4852
4853 * src/state.h, src/state.c (errs_new, errs_dup): New.
4854 * src/LR0.c (set_state_table): Let all the states have an errs,
4855 even if reduced to 0.
4856 * src/print.c (print_errs, print_reductions): Adjust.
4857 * src/output.c (output_actions, action_row): Adjust.
4858 * src/conflicts.c (resolve_sr_conflict): Adjust.
4859
4860 2001-12-27 Akim Demaille <akim@epita.fr>
4861
4862 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
4863
4864 2001-12-27 Akim Demaille <akim@epita.fr>
4865
4866 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
4867 * src/print.c: here.
4868 (lookaheadset, shiftset): New, used as additional storage by
4869 print_reductions.
4870 (print_results): Adjust.
4871 (print_shifts, print_gotos, print_errs): New, extracted from...
4872 (print_actions): here.
4873 * src/print_graph.c (print_actions): Remove dead code.
4874
4875 2001-12-27 Akim Demaille <akim@epita.fr>
4876
4877 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
4878 `$n' and `@n'.
4879
4880 2001-12-27 Akim Demaille <akim@epita.fr>
4881
4882 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
4883 (build_relations): Adjust.
4884
4885 2001-12-27 Akim Demaille <akim@epita.fr>
4886
4887 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
4888 duplication.
4889
4890 2001-12-27 Akim Demaille <akim@epita.fr>
4891
4892 * src/reader.c (packgram): Catch nitems overflows.
4893
4894 2001-12-27 Akim Demaille <akim@epita.fr>
4895
4896 * src/files.c, src/files.h (guard_obstack): Remove.
4897 * src/output.c (output): Adjust.
4898 * src/reader.c (parse_braces): New, factoring...
4899 (copy_action, copy_guard): these two which are renamed as...
4900 (parse_action, parse_guard): these.
4901 As a voluntary consequence, using braces around guards is now
4902 mandatory.
4903
4904 2001-12-27 Akim Demaille <akim@epita.fr>
4905
4906 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
4907 * src/reader.c (symbol_list): `guard' and `guard_line' are new
4908 members.
4909 (symbol_list_new): Adjust.
4910 (copy_action): action_line is the first line, not the last.
4911 (copy_guard): Just as for actions, store the `action' only, not
4912 the switch/case/break flesh.
4913 Don't parse the user action that might follow the guard, let...
4914 (readgram): do it, i.e., now, there can be an action after a
4915 guard.
4916 In other words the guard is just explicitly optional.
4917 (packgram): Adjust.
4918 * src/output.c (guards_output): New.
4919 (output_parser): Call it when needed.
4920 (output): Also free the guard and attrs obstacks.
4921 * src/files.c, src/files.h (obstack_save): Remove.
4922 (output_files): Remove.
4923 As a result, if one needs the former `.act' file, using an
4924 appropriate skeleton which requires actions and guards is now
4925 required.
4926 * src/main.c (main): Adjust.
4927 * tests/semantic.at: New.
4928 * tests/regression.at: Use `input.y' as input file name.
4929 Avoid 8+3 problems by requiring input.c when the test needs the
4930 parser.
4931
4932 2001-12-27 Akim Demaille <akim@epita.fr>
4933
4934 * src/reader.c (symbol_list_new): Be sure to initialize all the
4935 fields.
4936
4937 2001-12-27 Akim Demaille <akim@epita.fr>
4938
4939 All the hacks using a final pseudo state are now useless.
4940
4941 * src/LR0.c (set_state_table): state_table holds exactly nstates.
4942 * src/lalr.c (nLA): New.
4943 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
4944 instead of lookaheadsp from the pseudo state (nstate + 1).
4945
4946 2001-12-27 Akim Demaille <akim@epita.fr>
4947
4948 * src/output.c (action_row, token_actions): Use a state_t instead
4949 of a integer, and nlookaheads instead of the following state's
4950 lookaheadsp.
4951
4952 2001-12-27 Akim Demaille <akim@epita.fr>
4953
4954 * src/conflicts.c (log_resolution, flush_shift)
4955 (resolve_sr_conflict, set_conflicts, solve_conflicts)
4956 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
4957 (conflicts_print, print_reductions): Use a state_t instead of an
4958 integer when referring to a state.
4959 As much as possible, depend upon nlookaheads, instead of the
4960 `lookaheadsp' member of the following state (since lookaheads of
4961 successive states are successive, the difference between state n + 1
4962 and n served as the number of lookaheads for state n).
4963 * src/lalr.c (add_lookback_edge): Likewise.
4964 * src/print.c (print_core, print_actions, print_state)
4965 (print_results): Likewise.
4966 * src/print_graph.c (print_core, print_actions, print_state)
4967 (print_graph): Likewise.
4968 * src/conflicts.h: Adjust.
4969
4970 2001-12-27 Akim Demaille <akim@epita.fr>
4971
4972 * src/bison.hairy: Formatting/comment changes.
4973 ANSIfy.
4974 Remove `register' indications.
4975 Add plenty of `static'.
4976
4977 2001-12-27 Akim Demaille <akim@epita.fr>
4978
4979 * src/output.c (prepare): Drop the muscle `ntbase' which
4980 duplicates ntokens.
4981 * src/bison.simple: Formatting/comment changes.
4982 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
4983 is an undocumented synonym.
4984
4985 2001-12-22 Akim Demaille <akim@epita.fr>
4986
4987 * src/output.c (output_table_data): Change the prototype to use
4988 `int' for array ranges: some invocations do pass an int, not a
4989 short.
4990 Reported by Wayne Green.
4991
4992 2001-12-22 Akim Demaille <akim@epita.fr>
4993
4994 Some actions of web2c.y are improperly triggered.
4995 Reported by Mike Castle.
4996
4997 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
4998 * tests/regression.at (Web2c): Rename as...
4999 (Web2c Report): this.
5000 (Web2c Actions): New.
5001
5002 2001-12-22 Akim Demaille <akim@epita.fr>
5003
5004 Reductions in web2c.y are improperly reported.
5005 Reported by Mike Castle.
5006
5007 * src/conflicts.c (print_reductions): Fix.
5008 * tests/regression.at (Web2c): New.
5009
5010 2001-12-18 Akim Demaille <akim@epita.fr>
5011
5012 Some host fail on `assert (!"foo")', which expands to
5013 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
5014 Reported by Nelson Beebee.
5015
5016 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
5017 `#define it_succeeded 0' and `assert (it_succeeded)'.
5018
5019 2001-12-17 Marc Autret <autret_m@epita.fr>
5020
5021 * src/bison.simple: Don't hard code the skeleton line and filename.
5022 * src/output.c (output_parser): Rename 'line' as 'output_line'.
5023 New line counter 'skeleton_line' (skeleton-line muscle).
5024
5025 2001-12-17 Paul Eggert <eggert@twinsun.com>
5026
5027 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
5028 YYDEBUG must be defined to a nonzero value.
5029
5030 * src/bison.simple (yytname): Do not assume that the user defines
5031 YYDEBUG to a properly parenthesized expression.
5032
5033 2001-12-17 Akim Demaille <akim@epita.fr>
5034
5035 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
5036 nlookaheads is a new member.
5037 Adjust all users.
5038 * src/lalr.h (nlookaheads): Remove this orphan declaration.
5039 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
5040 state.
5041
5042 2001-12-17 Akim Demaille <akim@epita.fr>
5043
5044 * src/files.h, src/files.c (open_files, close_files): Remove.
5045 * src/main.c (main): Don't open/close files, nor invoke lex_free,
5046 let...
5047 * src/reader.c (reader): Do it.
5048
5049 2001-12-17 Akim Demaille <akim@epita.fr>
5050
5051 * src/conflicts.c (print_reductions): Formatting changes.
5052
5053 2001-12-17 Akim Demaille <akim@epita.fr>
5054
5055 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
5056 (flush_reduce): New.
5057 (resolve_sr_conflict): Adjust.
5058
5059 2001-12-17 Akim Demaille <akim@epita.fr>
5060
5061 * src/output.c (output_obstack): Be static and rename as...
5062 (format_obstack): this, to avoid any confusion with files.c's
5063 output_obstack.
5064 * src/reader.h (muscle_obstack): Move to...
5065 * src/output.h: here, since it's defined in output.c.
5066
5067 2001-12-17 Akim Demaille <akim@epita.fr>
5068
5069 * src/output.c (action_row, save_column, default_goto)
5070 (sort_actions, matching_state, pack_vector): Better variable
5071 locality.
5072
5073 2001-12-17 Akim Demaille <akim@epita.fr>
5074
5075 * src/output.c: Various formatting changes.
5076
5077 2001-12-17 Akim Demaille <akim@epita.fr>
5078
5079 * src/files.c (output_files): Free the output_obstack.
5080 * src/main.c (main): Call print and print_graph conditionally.
5081 * src/print.c (print): Work unconditionally.
5082 * src/print_graph.c (print_graph): Work unconditionally.
5083 * src/conflicts.c (log_resolution): Output only if verbose_flag.
5084
5085 2001-12-16 Marc Autret <autret_m@epita.fr>
5086
5087 * src/output.c (actions_output): Fix. When we use %no-lines,
5088 there is one less line per action.
5089
5090 2001-12-16 Marc Autret <autret_m@epita.fr>
5091
5092 * src/bison.simple: Remove a useless #line directive.
5093 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
5094 * src/output.c (get_lines_number): New.
5095 (output_parser): Adjust, now takes care about the lines of a
5096 output muscles.
5097 Fix line numbering.
5098 (actions_output): Computes the number of lines taken by actions.
5099 (output_master_parser): Insert new skeleton which is the name of
5100 the output parser file name.
5101
5102 2001-12-15 Marc Autret <autret_m@epita.fr>
5103
5104 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
5105
5106 2001-12-15 Marc Autret <autret_m@epita.fr>
5107
5108 * src/output.c (output_gram): Keep track of the hairy one.
5109
5110 2001-12-15 Akim Demaille <akim@epita.fr>
5111
5112 Make `make distcheck' work.
5113
5114 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
5115 system.h which uses libgettext.h.
5116
5117 2001-12-15 Akim Demaille <akim@epita.fr>
5118
5119 * src/nullable.c (set_nullable): Useless rules must be skipped,
5120 otherwise, since we range over their symbols, we might look at a
5121 nonterminal which no longer ``exists'', i.e., it is not counted in
5122 `nvars', hence we overflow our arrays.
5123
5124 2001-12-15 Akim Demaille <akim@epita.fr>
5125
5126 The header can also be produced directly, without any obstack!
5127 Yahoo!
5128
5129 * src/files.c, src/files.h (defines_obstack): Remove.
5130 (compute_header_macro): Global.
5131 (defines_obstack_save): Remove.
5132 * src/reader.c (parse_union_decl): No longer output to
5133 defines_obstack: its content can be found in the `stype' muscle
5134 anyway.
5135 (output_token_translations): Merge into...
5136 (symbols_output): this.
5137 Rename as...
5138 (symbols_save): this.
5139 (reader): Adjust.
5140 * src/output.c (header_output): New.
5141 (output): Call it.
5142
5143 2001-12-15 Akim Demaille <akim@epita.fr>
5144
5145 * src/reader.c (parse_union_decl): Instead of handling two obstack
5146 simultaneously, use one to define the `stype' muscle, and use the
5147 value of the latter to fill defines_obstack.
5148 (copy_comment): Remove.
5149 (copy_comment2): Work for a single obstack.
5150 Rename as...
5151 (copy_comment): this.
5152
5153 2001-12-15 Akim Demaille <akim@epita.fr>
5154
5155 * src/lex.c, src/lex.h (xgetc): No longer static.
5156 * src/reader.c (parse_union_decl): Revamp.
5157
5158 2001-12-15 Akim Demaille <akim@epita.fr>
5159
5160 Still making progress in separating Bison into (i) input, (ii)
5161 process, (iii) output: now we can directly output the parser file
5162 without using table_obstack at all.
5163
5164 * src/files.c, src/files.h (table_obstack): Bye bye.
5165 (parser_file_name): New.
5166 * src/files.c (compute_output_file_names): Compute it.
5167 * src/output.c (actions_output, output_parser)
5168 (output_master_parser): To a file instead of an obstack.
5169
5170 2001-12-15 Akim Demaille <akim@epita.fr>
5171
5172 Attach actions to rules, instead of pre-outputting them to
5173 actions_obstack.
5174
5175 * src/gram.h (rule_t): action and action_line are new members.
5176 * src/reader.c (symbol_list): Likewise.
5177 (copy_action): Save the actions within the rule.
5178 (packgram): Save them in rule_table.
5179 * src/output.c (actions_output): New.
5180 (output_parser): Use it on `%%actions'.
5181 (output_rule_data): Don't free rule_table.
5182 (output): Do it.
5183 (prepare): Don't save the `action' muscle.
5184 * src/bison.simple: s/%%action/%%actions/.
5185
5186 2001-12-15 Akim Demaille <akim@epita.fr>
5187
5188 * src/reader.c (copy_action): When --yacc, don't append a `;'
5189 to the user action: let it fail if lacking.
5190 Suggested by Arnold Robbins and Tom Tromey.
5191
5192 2001-12-14 Akim Demaille <akim@epita.fr>
5193
5194 * src/lex.c (literalchar): Simply return the char you decoded, non
5195 longer mess around with obstacks and int pointers.
5196 Adjust all callers.
5197
5198 2001-12-14 Akim Demaille <akim@epita.fr>
5199
5200 * src/lex.c (literalchar): Don't escape the special characters,
5201 just decode them, and keep them as char (before, eol was output as
5202 the 2 char string `\n' etc.).
5203 * src/output.c (output_rule_data): Use quotearg to output the
5204 token strings.
5205
5206 2001-12-13 Paul Eggert <eggert@twinsun.com>
5207
5208 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
5209 Do not infringe on the global user namespace when using C++.
5210 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
5211 All uses of `fprintf' and `stderr' changed.
5212
5213 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
5214
5215 2001-12-13 Akim Demaille <akim@epita.fr>
5216
5217 The computation of nullable is broken: it doesn't handle empty
5218 RHS's properly.
5219
5220 * tests/torture.at (GNU AWK Grammar): New.
5221 * tests/sets.at (Nullable): New.
5222 * src/nullable.c (set_nullable): Instead of blindly looping over
5223 `ritems', loop over the rules, and then over their rhs's.
5224
5225 Work around Autotest bugs.
5226
5227 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
5228 frame, because Autotest understand lines starting with a `+' as
5229 traces from the shell. Then, they are not processed properly.
5230 Admittedly an Autotest bug, but we don't have time to wait for
5231 Autotest to catch up.
5232 * tests/regression.at (Broken Closure): Adjust to the new table
5233 frames.
5234 Move to...
5235 * tests/sets.at: here.
5236
5237 2001-12-13 Akim Demaille <akim@epita.fr>
5238
5239 * src/closure.c (closure): Use nrules instead of playing tricks
5240 with BITS_PER_WORD.
5241
5242 2001-12-13 Akim Demaille <akim@epita.fr>
5243
5244 * src/print.c (print_actions): Output the handling of `$' as the
5245 traces do: shifting the token EOF. Before EOF was treated as a
5246 nonterminal.
5247 * tests/regression.at: Adjust some tests.
5248 * src/print_graph.c (print_core): Complete the set of items via
5249 closure. The next-to-final and final states are still unsatisfying,
5250 but that's to be addressed elsewhere.
5251 No longer output the rule numbers, but do output the state number.
5252 A single loop for the shifts + gotos is enough, but picked a
5253 distinct color for each.
5254 (print_graph): Initialize and finalize closure.
5255
5256 2001-12-13 Akim Demaille <akim@epita.fr>
5257
5258 * src/reader.c (readgram): Remove dead code, an strip useless
5259 braces.
5260 (get_type): Remove, unused.
5261
5262 2001-12-12 Akim Demaille <akim@epita.fr>
5263
5264 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
5265 on that of lib/error.c.
5266
5267 2001-12-12 Akim Demaille <akim@epita.fr>
5268
5269 Some hosts don't like `/' in includes.
5270
5271 * src/system.h: Include libgettext.h without qualifying the path.
5272 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
5273 $(top_srcdir).
5274
5275 2001-12-11 Marc Autret <autret_m@epita.fr>
5276
5277 * src/output.c (output_parser): Remove useless muscle.
5278
5279 2001-12-11 Marc Autret <autret_m@epita.fr>
5280
5281 * src/bison.simple: Remove #line just before %%epilogue. It
5282 is now handled in ...
5283 * src/reader.c (read_additionnal_code): Add the output of a
5284 #line for the epilogue.
5285
5286 2001-12-10 Marc Autret <autret_m@epita.fr>
5287
5288 * src/reader.c (copy_definition): Re-use CPP-outed code which
5289 replace precedent remove.
5290 * src/bison.simple: Remove #line before %%prologue because
5291 %%input-line is wrong at this time.
5292
5293 2001-12-10 Marc Autret <autret_m@epita.fr>
5294
5295 * src/reader.c (symbols_output): Clean up.
5296 * src/output.c (output_gram, output): Clean up.
5297
5298 2001-12-10 Akim Demaille <akim@epita.fr>
5299
5300 * src/lalr.c (initialize_lookaheads): New. Extracted from...
5301 * src/LR0.c (set_state_table): here.
5302 * src/lalr.c (lalr): Call it.
5303
5304 2001-12-10 Akim Demaille <akim@epita.fr>
5305
5306 * src/state.h (shifts): Remove the `number' member: shifts are
5307 attached to state, hence no longer need to be labelled with a
5308 state number.
5309
5310 2001-12-10 Akim Demaille <akim@epita.fr>
5311
5312 Now that states have a complete set of members, the linked list of
5313 shifts is useless: just fill directly the state's shifts member.
5314
5315 * src/state.h (shifts): Remove the `next' member.
5316 * src/LR0.c (first_state, last_state): Remove.
5317 Adjust the callers.
5318 (augment_automaton): Don't look for the shifts that must be added
5319 a shift on EOF: it is those of the state we looked for! But now,
5320 since shifts are attached, it is no longer needed to looking
5321 merely by its id: its number.
5322
5323 2001-12-10 Akim Demaille <akim@epita.fr>
5324
5325 * src/LR0.c (augment_automaton): Better variable locality.
5326 Remove an impossible branch: if there is a state corresponding to
5327 the start symbol being shifted, then there is shift for the start
5328 symbol from the initial state.
5329
5330 2001-12-10 Akim Demaille <akim@epita.fr>
5331
5332 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
5333 only when appropriate: when insert_start_shifting_state' is not
5334 invoked.
5335 * tests/regression.at (Rule Line Numbers): Adjust.
5336
5337 2001-12-10 Akim Demaille <akim@epita.fr>
5338
5339 * src/LR0.c (augment_automaton): Now that all states have shifts,
5340 merge the two cases addition shifts to the initial state.
5341
5342 2001-12-10 Akim Demaille <akim@epita.fr>
5343
5344 * src/lalr.c (set_state_table): Move to...
5345 * src/LR0.c: here.
5346 * src/lalr.c (lalr): Don't call it...
5347 * src/LR0.c (generate_states): do it.
5348 * src/LR0.h (first_state): Remove, only the table is used.
5349
5350 2001-12-10 Akim Demaille <akim@epita.fr>
5351
5352 * src/LR0.h (first_shift, first_reduction): Remove.
5353 * src/lalr.c: Don't use first_shift: find shifts through the
5354 states.
5355
5356 2001-12-10 Akim Demaille <akim@epita.fr>
5357
5358 * src/LR0.c: Attach shifts to states as soon as they are
5359 computed.
5360 * src/lalr.c (set_state_table): Instead of assigning shifts to
5361 state, just assert that the mapping was properly done.
5362
5363 2001-12-10 Akim Demaille <akim@epita.fr>
5364
5365 * src/LR0.c (insert_start_shift): Rename as...
5366 (insert_start_shifting_state): this.
5367 (insert_eof_shifting_state, insert_accepting_state): New.
5368 (augment_automaton): Adjust.
5369 Better locality of the variables.
5370 When looking if the start_symbol is shifted from the initial
5371 state, using `while (... symbol != start_symbol ...)' sounds
5372 better than `while (... symbol < start_symbol ...)': If fail
5373 to see how the order between symbols could be relevant!
5374
5375 2001-12-10 Akim Demaille <akim@epita.fr>
5376
5377 * src/getargs.h: Don't declare `spec_name_prefix' and
5378 `spec_file_prefix', declared by src/files.h.
5379 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
5380 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
5381 * src/output.c (prepare): Adjust.
5382 * src/reader.c (symbols_output): Likewise.
5383 * src/vmsgetargs.c: Vaguely adjust, but who cares?
5384
5385 2001-12-10 Akim Demaille <akim@epita.fr>
5386
5387 * src/muscle_tab.c (muscle_init): NULL is a better default than
5388 `"0"'.
5389
5390 2001-12-10 Akim Demaille <akim@epita.fr>
5391
5392 * src/reader.c (reader): Calling symbols_output once is enough.
5393
5394 2001-12-10 Akim Demaille <akim@epita.fr>
5395
5396 Now that states have a complete set of members, the linked list of
5397 reductions is useless: just fill directly the state's reductions
5398 member.
5399
5400 * src/state.h (struct reductions): Remove member `number' and
5401 `next'.
5402 * src/LR0.c (first_reduction, last_reduction): Remove.
5403 (save_reductions): Don't link the new reductions, store them in
5404 this_state.
5405 * src/lalr.c (set_state_table): No need to attach reductions to
5406 states, it's already done.
5407 * src/output.c (output_actions): No longer free the shifts, then
5408 the reductions, then the states: free all the states and their
5409 members.
5410
5411 2001-12-10 Akim Demaille <akim@epita.fr>
5412
5413 * src/options.c (OPTN, DRTV, BOTH): New.
5414 (option_table): Use them.
5415
5416 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
5417 the job of system.h.
5418 * src/options.c: Don't include stdio.h and xalloc.h for the same
5419 reasons.
5420
5421 2001-12-10 Akim Demaille <akim@epita.fr>
5422
5423 * src/output.c (output, prepare): Make sure the values of the
5424 muscles `action' and `prologue' are 0-terminated.
5425
5426 2001-12-10 Akim Demaille <akim@epita.fr>
5427
5428 Clean up GCC warnings.
5429
5430 * src/reader.c (copy_action): `buf' is not used.
5431 (parse_skel_decl): Be static.
5432 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
5433 * src/options.h (create_long_option_table): Have a real prototype.
5434 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
5435 (hash_delete_at): Return const void *.
5436 Adjust casts to preserve the const.
5437
5438 2001-12-10 Akim Demaille <akim@epita.fr>
5439
5440 * configure.in: Require 2.52g.
5441 M4 is not needed, but AUTOM4TE is.
5442 * m4/m4.m4: Remove.
5443 * tests/Makefile.am: Adjust.
5444
5445 2001-12-10 Akim Demaille <akim@epita.fr>
5446
5447 One structure for states is enough, even though theoretically
5448 there are LR(0) states and LALR(1) states.
5449
5450 * src/lalr.h (state_t): Remove.
5451 (state_table): Be state_t **, not state_t *.
5452 * src/state.h (core, CORE_ALLOC): Rename as...
5453 (state_t, STATE_ALLOC): this.
5454 Add the LALR(1) members: shifts, reductions, errs.
5455 * src/LR0.c (state_table): Rename as...
5456 (state_hash): this, to avoid name clashes with the global
5457 `state_table'.
5458 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
5459 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
5460
5461 2001-12-10 Akim Demaille <akim@epita.fr>
5462
5463 Bison dumps core on bash.y.
5464 Reported by Pascal Bart.
5465
5466 * src/warshall.c (bitmatrix_print): New.
5467 (TC): Use it.
5468 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
5469 j must be the outer loop.
5470 * tests/regression.at (Broken Closure): New.
5471
5472 2001-12-05 Akim Demaille <akim@epita.fr>
5473
5474 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
5475 its argument.
5476 Reported by Peter Hámorský.
5477
5478 2001-12-05 Akim Demaille <akim@epita.fr>
5479
5480 * src/conflicts.c (err_table): Remove.
5481 (resolve_sr_conflict): Adjust.
5482 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
5483 Rename as...
5484 (state_t.reductions, state_t.shifts): this.
5485
5486 2001-12-05 Akim Demaille <akim@epita.fr>
5487
5488 * src/reduce.c (reduce_grammar_tables): No longer disable the
5489 removal of useless rules via CPP but via `if (0)', so that the
5490 compiler still check the code is valid.
5491 For instance, it should have noticed `rline' no longer exists: use
5492 the `line' member of rule_t.
5493 * src/gram.c (dummy, rline): Remove, unused.
5494
5495 2001-12-05 Akim Demaille <akim@epita.fr>
5496
5497 * src/output.c (pack_vector): Use assert, not berror.
5498 * src/main.c (berror): Remove, unused.
5499
5500 2001-12-05 Akim Demaille <akim@epita.fr>
5501
5502 New experimental feature: if --verbose --trace output all the
5503 items of a state, not only its kernel.
5504
5505 * src/print.c (print_core): If `trace_flag', then invoke closure
5506 before outputting the items of the state (print_core is no longer
5507 a correct name them).
5508 (print_results): Invoke new_closure/free_closure if needed.
5509
5510 2001-12-05 Akim Demaille <akim@epita.fr>
5511
5512 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
5513 * src/closure.c, src/closure.h (itemsetsize): Rename as...
5514 (nitemset): for consistency with the rest of the project.
5515
5516 2001-12-05 Akim Demaille <akim@epita.fr>
5517
5518 * src/closure.c (print_closure): Improve.
5519 (closure): Use it for printing input and output.
5520
5521 2001-12-05 Akim Demaille <akim@epita.fr>
5522
5523 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
5524 indexed by nonterminals.
5525
5526 2001-12-05 Akim Demaille <akim@epita.fr>
5527
5528 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
5529 what it was!).
5530 * src/warshall.h: Remove accidental duplication of the content.
5531
5532 2001-12-05 Akim Demaille <akim@epita.fr>
5533
5534 * src/closure.c (set_fderives): De-obfuscate.
5535
5536 2001-12-05 Akim Demaille <akim@epita.fr>
5537
5538 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
5539
5540 2001-12-05 Akim Demaille <akim@epita.fr>
5541
5542 * src/closure.c (set_firsts): De-obfuscate.
5543
5544 2001-12-05 Akim Demaille <akim@epita.fr>
5545
5546 * src/output.c (action_row): De-obfuscate
5547 using the good o' techniques: arrays not pointers, variable
5548 locality, BITISSET, RESETBIT etc.
5549
5550 2001-12-05 Akim Demaille <akim@epita.fr>
5551
5552 Pessimize the code to simplify it: from now on, all the states
5553 have a valid SHIFTS, which NSHIFTS is possibly 0.
5554
5555 * src/LR0.c (shifts_new): Be global and move to..
5556 * src/state.c, src/state.h: here.
5557 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
5558 * src/print_graph: Adjust.
5559
5560 2001-12-05 Akim Demaille <akim@epita.fr>
5561
5562 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
5563 * src/conflicts.c: Use it.
5564 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
5565 incorrectly ``simplified''.
5566
5567 2001-12-05 Akim Demaille <akim@epita.fr>
5568
5569 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
5570 using the good o' techniques: arrays not pointers, variable
5571 locality, BITISSET, RESETBIT etc.
5572
5573 2001-12-05 Akim Demaille <akim@epita.fr>
5574
5575 * src/state.h (SHIFT_SYMBOL): New.
5576 * src/conflicts.c: Use it to deobfuscate.
5577
5578 2001-12-05 Akim Demaille <akim@epita.fr>
5579
5580 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
5581 (print_reductions): De-obfuscate using the good o' techniques:
5582 arrays not pointers, variable locality, BITISSET.
5583
5584 2001-12-05 Akim Demaille <akim@epita.fr>
5585
5586 * src/conflicts.c (print_reductions): Arrays, not pointers.
5587 Use BITISSET.
5588
5589 2001-12-05 Akim Demaille <akim@epita.fr>
5590
5591 * src/conflicts.c (print_reductions): Pessimize, but clarify.
5592
5593 2001-12-05 Akim Demaille <akim@epita.fr>
5594
5595 * src/conflicts.c (print_reductions): Improve variable locality.
5596
5597 2001-12-05 Akim Demaille <akim@epita.fr>
5598
5599 * src/conflicts.c (print_reductions): Pessimize, but clarify.
5600
5601 2001-12-05 Akim Demaille <akim@epita.fr>
5602
5603 * src/conflicts.c (print_reductions): Improve variable locality.
5604
5605 2001-12-05 Akim Demaille <akim@epita.fr>
5606
5607 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
5608 * src/lalr.c: Use them.
5609
5610 2001-12-05 Akim Demaille <akim@epita.fr>
5611
5612 * src/LR0.c (augment_automaton): Formatting changes.
5613 Better variable locality.
5614
5615 2001-12-05 Akim Demaille <akim@epita.fr>
5616
5617 * src/lalr.c (matrix_print): New.
5618 (transpose): Use it.
5619 Use arrays instead of pointers.
5620
5621 2001-12-05 Akim Demaille <akim@epita.fr>
5622
5623 * src/lalr.c (maxrhs): Move to...
5624 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
5625 * src/lalr.c (build_relations): Adjust.
5626
5627 2001-12-05 Akim Demaille <akim@epita.fr>
5628
5629 * src/lalr.c (transpose): Free the memory allocated to the
5630 argument, as it is replaced by the results by the unique caller.
5631 (build_relations): Merely invoke transpose: it handles the memory
5632 deallocation.
5633 Improve variable locality.
5634 Avoid variables used as mere abbreviations.
5635 (compute_lookaheads): Use arrays instead of pointers.
5636
5637 2001-12-05 Akim Demaille <akim@epita.fr>
5638
5639 * src/lalr.c (initialize_F): Improve variable locality.
5640 Avoid variables used as mere abbreviations.
5641
5642 2001-12-05 Akim Demaille <akim@epita.fr>
5643
5644 * src/derives.c (print_derives): Display the ruleno.
5645 * src/lalr.c (initialize_F, transpose): Better variable locality
5646 to improve readability.
5647 Avoid variables used as mere abbreviations.
5648
5649 2001-12-05 Akim Demaille <akim@epita.fr>
5650
5651 * src/lalr.c (traverse): Use arrays instead of pointers.
5652
5653 2001-12-05 Akim Demaille <akim@epita.fr>
5654
5655 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
5656 the handling of squeue.
5657 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
5658
5659 2001-12-05 Akim Demaille <akim@epita.fr>
5660
5661 Because useless nonterminals are now kept alive (instead of being
5662 `destroyed'), we now sometimes examine them, and store information
5663 related to them. Hence we need to know their number, and adjust
5664 memory allocations.
5665
5666 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
5667 static.
5668 * src/LR0.c (allocate_itemsets): The memory allocated to
5669 `symbol_count' was used for two different purpose: once to count
5670 the number of occurrences of each symbol, and later reassigned to
5671 `shift_symbol', containing the symbol that can be shifted from a
5672 given state.
5673 Deobfuscate, i.e., allocate, use and free `symbol_count' here
5674 only, and...
5675 (new_itemsets): Allocate `shift_symbol' here.
5676 (allocate_itemsets): symbol_count includes useless nonterminals.
5677 Make room for them.
5678 (free_storage): Use `free', not `XFREE', for pointers that cannot
5679 be null.
5680
5681 2001-12-05 Akim Demaille <akim@epita.fr>
5682
5683 * src/nullable.c (set_nullable): Deobfuscate the handling of
5684 ritem.
5685 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
5686
5687 2001-12-05 Akim Demaille <akim@epita.fr>
5688
5689 * src/gram.c, src/gram.h (ritem_print): New.
5690 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
5691 (This useless function was defined only to work around VMS linkers
5692 that can't handle compilation units with variables only).
5693 * src/reduce.c (dump_grammar): Use it to trace the construction of
5694 ritem.
5695
5696 2001-12-04 Paul Eggert <eggert@twinsun.com>
5697
5698 * src/bison.simple (union yyalloc): Change member names
5699 to be the same as the stack names.
5700 (yyparse): yyptr is now union yyalloc *, not char *.
5701 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
5702 and may generate better code on some machines.
5703 (yystpcpy): Use prototype if __STDC__ is defined, not just
5704 if __cplusplus is defined.
5705
5706 2001-11-30 Akim Demaille <akim@epita.fr>
5707
5708 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
5709 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
5710 Gettext doesn't compile cleanly, and dies with -Werror.
5711 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
5712 Include WARNING_CFLAGS here.
5713 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
5714 before being defined.
5715
5716 2001-11-27 Paul Eggert <eggert@twinsun.com>
5717
5718 * lib/quotearg.h (quotearg_n, quotearg_n_style):
5719 First arg is int, not unsigned.
5720 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
5721 (SIZE_MAX, UINT_MAX): New macros.
5722 (quotearg_n_options): Abort if N is negative.
5723 Avoid overflow check on hosts where size_t is 64 bits and int
5724 is 32 bits, as overflow is impossible there.
5725 Fix off-by-one typo that caused unnecessary reallocation.
5726
5727 2001-11-29 Paul Eggert <eggert@twinsun.com>
5728
5729 Name space cleanup in generated parser.
5730
5731 * doc/bison.texinfo (Bison Parser): Discuss system headers
5732 and their effect on the user name space.
5733
5734 * src/bison.simple:
5735 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
5736 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
5737 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
5738
5739 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
5740 on user names when possible.
5741
5742 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
5743 Simplify test for whather <alloca.h> exists.
5744
5745 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
5746
5747 (<stdio.h>): Include if YYDEBUG.
5748
5749 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
5750 ! defined (yyoverflow) && ! defined (yymemcpy).
5751
5752 (yymemcpy, yyparse): Rename local variables as needed so that
5753 they all begin with 'yy'.
5754
5755 (yystrlen, yystpcpy): New functions.
5756
5757 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
5758 All uses changed.
5759
5760 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
5761 instead of relying on string.h functions. Use YYSTACK_ALLOC
5762 and YYSTACK_FREE instead of malloc and free.
5763
5764 2001-11-30 Akim Demaille <akim@epita.fr>
5765
5766 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
5767 before their first uses.
5768 (YYBISON, YYPURE): Move to the top of the output.
5769
5770 2001-11-30 Akim Demaille <akim@epita.fr>
5771
5772 * tests/reduce.at (Useless Nonterminals): Fix.
5773
5774 2001-11-30 Akim Demaille <akim@epita.fr>
5775
5776 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
5777 if body instead of `;' to pacify GCC's warnings.
5778
5779 2001-11-30 Akim Demaille <akim@epita.fr>
5780
5781 Instead of mapping the LHS of unused rules to -1, keep the LHS
5782 valid, but flag the rules as invalid.
5783
5784 * src/gram.h (rule_t): `useful' is a new member.
5785 * src/print.c (print_grammar): Adjust.
5786 * src/derives.c (set_derives): Likewise.
5787 * src/reader.c (packgram, reduce_output): Likewise.
5788 * src/reduce.c (reduce_grammar_tables): Likewise.
5789 * tests/reduce.at (Underivable Rules, Useless Rules): New.
5790
5791 2001-11-30 Akim Demaille <akim@epita.fr>
5792
5793 * src/reduce.c (reduce_output): Formatting changes.
5794 * src/print.c (print_results, print_grammar): Likewise.
5795 * tests/regression.at (Rule Line Numbers)
5796 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
5797
5798 2001-11-30 Akim Demaille <akim@epita.fr>
5799
5800 * src/reduce.c (nonterminals_reduce): Instead of throwing away
5801 useless nonterminals, move them at the end of the symbol arrays.
5802 (reduce_output): Adjust.
5803 * tests/reduce.at (Useless Nonterminals): Adjust.
5804
5805 2001-11-30 Akim Demaille <akim@epita.fr>
5806
5807 * src/reduce.c: Various comment/formatting changes.
5808 (nonterminals_reduce): New, extracted from...
5809 (reduce_grammar_tables): here.
5810 (reduce_grammar): Call nonterminals_reduce.
5811
5812 2001-11-29 Paul Eggert <eggert@twinsun.com>
5813
5814 * src/bison.simple (YYSTACK_REALLOC): Remove.
5815 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
5816 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
5817 New macros.
5818 (union yyalloc): New type.
5819 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
5820 an arbitrary restriction on hosts where size_t is wider than int.
5821
5822 (yyparse): Don't dump core if alloca or malloc fails; instead, report
5823 a parser stack overflow. Allocate just one block of memory for all
5824 three stacks, instead of allocating three blocks; this typically is
5825 faster and reduces fragmentation.
5826
5827 Do not limit the number of items in the stack to a value that fits
5828 in 'int', as this is an arbitrary limit on hosts with 64-bit
5829 size_t and 32-bit int.
5830
5831 2001-11-29 Marc Autret <autret_m@epita.fr>
5832
5833 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
5834 of defining YYERROR_VERBOSE.
5835 [AT_DATA]: $4 is now out of C declarations in the prologue.
5836
5837 2001-11-28 Marc Autret <autret_m@epita.fr>
5838
5839 * src/reader.c (parse_dquoted_param): New.
5840 (parse_skel_decl): Use it.
5841 * src/lex.h: Add its prototype.
5842 * src/lex.c (literalchar): Become not static.
5843
5844 2001-11-28 Marc Autret <autret_m@epita.fr>
5845
5846 * src/output.h: And put its extern declaration here.
5847 * src/output.c (error_verbose): Define here.
5848 (prepare): Echo name modification.
5849 * src/getargs.h: Clean its extern declaration.
5850 * src/getargs.c (error_verbose_flag): Remove.
5851 (getargs): Remove case 'e'.
5852 * src/options.c (option_table): 'error-verbose' is now seen as simple
5853 percent option.
5854 Include output.h.
5855
5856 * src/reader.c (read_declarations): Remove case tok_include.
5857 (parse_include_decl): Remove.
5858 * src/lex.h (token_t): Remove tok_include.
5859 * src/options.c (option_table): 'include' is now a simple command line
5860 option.
5861
5862 2001-11-28 Marc Autret <autret_m@epita.fr>
5863
5864 * src/bison.simple: Adjust muscle names.
5865 * src/muscle_tab.c (muscle_init): Also rename the muscles.
5866 * src/output.c (prepare): s/_/-/ for the muscles names.
5867 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
5868
5869 2001-11-28 Marc Autret <autret_m@epita.fr>
5870
5871 * src/bison.simple: Fix debug.
5872 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
5873
5874 2001-11-28 Akim Demaille <akim@epita.fr>
5875
5876 * src/LR0.c (shifts_new): New.
5877 (save_shifts, insert_start_shift, augment_automaton): Use it.
5878
5879 2001-11-28 Akim Demaille <akim@epita.fr>
5880
5881 * src/closure.c (closure): `b' and `ruleno' denote the same value:
5882 keep ruleno only.
5883
5884 2001-11-28 Akim Demaille <akim@epita.fr>
5885
5886 * src/closure.c (closure): Instead of looping over word in array
5887 then bits in words, loop over bits in array.
5888
5889 2001-11-28 Akim Demaille <akim@epita.fr>
5890
5891 * src/closure.c (closure): No longer optimize the special case
5892 where all the bits of `ruleset[r]' are set to 0, to make the code
5893 clearer.
5894
5895 2001-11-28 Akim Demaille <akim@epita.fr>
5896
5897 * src/closure.c (closure): `r' and `c' are new variables, used to
5898 de-obfuscate accesses to RULESET and CORE.
5899
5900 2001-11-28 Akim Demaille <akim@epita.fr>
5901
5902 * src/reduce.c (reduce_print): Use ngettext.
5903 (dump_grammar): Improve the trace accuracy.
5904
5905 2001-11-28 Akim Demaille <akim@epita.fr>
5906
5907 * src/reduce.c (dump_grammar): Don't translate trace messages.
5908
5909 2001-11-28 Akim Demaille <akim@epita.fr>
5910
5911 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
5912 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
5913 as all tags are free'ed afterwards.
5914 From Enrico Scholz.
5915
5916 2001-11-27 Paul Eggert <eggert@twinsun.com>
5917
5918 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
5919 use alloca when we didn't want to, and vice versa.
5920
5921 2001-11-27 Marc Autret <autret_m@epita.fr>
5922
5923 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
5924 initialization.
5925 * src/output.c (prepare): Remove its update.
5926
5927 2001-11-27 Marc Autret <autret_m@epita.fr>
5928
5929 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
5930 Use %error-verbose.
5931
5932 2001-11-27 Marc Autret <autret_m@epita.fr>
5933
5934 * src/bison.simple: Remove YYERROR_VERBOSE using.
5935 Use %%error_verbose.
5936 (yyparse): Likewise.
5937 * src/output.c (prepare): Give its final value.
5938 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
5939 * src/getargs.h: Add its extern declaration.
5940 * src/getargs.c (error_verbose_flag): New int.
5941 (getargs): Update to catch new case.
5942 * src/options.c (option_table): 'error-verbose' is a new option.
5943 (shortopts): Update.
5944
5945 2001-11-27 Akim Demaille <akim@epita.fr>
5946
5947 * src/system.h: Use intl/libgettext.h.
5948 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
5949
5950 2001-11-27 Akim Demaille <akim@epita.fr>
5951
5952 * tests/torture.at (Exploding the Stack Size with Malloc):
5953 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
5954
5955 2001-11-27 Akim Demaille <akim@epita.fr>
5956
5957 * src/files.c: Include error.h.
5958 Reported by Hans Aberg.
5959
5960 2001-11-26 Marc Autret <autret_m@epita.fr>
5961
5962 * src/reader.c (parse_include_decl): New, not yet implemented.
5963 (read_declarations): Add case tok_include.
5964 * src/getargs.h (include): Add its extern definition.
5965 * src/getargs.c (include): New const char *.
5966 (getargs): Add case '-I'.
5967 * src/options.c (option_table): Add include as command line and
5968 percent option.
5969 * src/lex.h (token_t): Add tok_include.
5970
5971 2001-11-26 Akim Demaille <akim@epita.fr>
5972
5973 * src/reader.c (readgram): Make sure rules for mid-rule actions
5974 have a lineno equal to that of their host rule.
5975 Reported by Hans Aberg.
5976 * tests/regression.at (Rule Line Numbers): New.
5977
5978 2001-11-26 Akim Demaille <akim@epita.fr>
5979
5980 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
5981 size_ts.
5982
5983 2001-11-26 Akim Demaille <akim@epita.fr>
5984
5985 * src/complain.c, src/complain.h (error): Remove, provided by
5986 lib/error.[ch].
5987
5988 2001-11-26 Akim Demaille <akim@epita.fr>
5989
5990 * src/reader.c (read_declarations): Don't abort on tok_illegal,
5991 issue an error message.
5992 * tests/regression.at (Invalid %directive): New.
5993 Reported by Hans Aberg.
5994
5995 2001-11-26 Akim Demaille <akim@epita.fr>
5996
5997 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
5998 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5999
6000 2001-11-26 Akim Demaille <akim@epita.fr>
6001
6002 * src/conflicts.c (conflicts_print): Don't complain at all when
6003 there are no reduce/reduce conflicts, and as many shift/reduce
6004 conflicts as expected.
6005 * tests/regression.at (%expect right): Adjust.
6006
6007 2001-11-23 Akim Demaille <akim@epita.fr>
6008
6009 * lib/alloca.c: Update, from fileutils.
6010
6011 2001-11-23 Akim Demaille <akim@epita.fr>
6012
6013 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
6014
6015 2001-11-23 Akim Demaille <akim@epita.fr>
6016
6017 * src/system.h: Include alloca.h.
6018 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
6019
6020 2001-11-23 Akim Demaille <akim@epita.fr>
6021
6022 * src/print_graph.c (print_actions): Remove `rule', unused.
6023 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
6024 pacify GCC's signed < unsigned warnings.
6025 * src/closure.c (itemsetsize): Likewise.
6026 * src/reader.c (symbol_list_new): Static.
6027
6028 2001-11-23 Akim Demaille <akim@epita.fr>
6029
6030 Attaching lineno to buckets is stupid, since only one copy of each
6031 symbol is kept, only the line of the first occurrence is kept too.
6032
6033 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
6034 * src/reader.c (rline_allocated): Remove, unused.
6035 (symbol_list): Have a `line' member.
6036 (symbol_list_new): New.
6037 (readgram): Use it.
6038 * src/print.c (print_grammar): Output the rule line numbers.
6039 * tests/regression.at (Solved SR Conflicts)
6040 (Unresolved SR Conflicts): Adjust.
6041 Reported by Hans Aberg.
6042
6043 2001-11-22 Marc Autret <autret_m@epita.fr>
6044
6045 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
6046
6047 2001-11-22 Marc Autret <autret_m@epita.fr>
6048
6049 * src/muscle_tab.c (muscle_init): Remove initialization of
6050 skeleton muscle.
6051 * src/output.c (output_master_parser): Do it here.
6052
6053 2001-11-20 Akim Demaille <akim@epita.fr>
6054
6055 * po/sv.po: New.
6056 * configure.in (ALL_LINGUAS): Adjust.
6057 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
6058 longer contains strings to translate.
6059
6060 2001-11-19 Akim Demaille <akim@epita.fr>
6061
6062 * src/conflicts.c (conflicts_print): Add a missing \n.
6063
6064 2001-11-19 Akim Demaille <akim@epita.fr>
6065
6066 * src/nullable.c (nullable_print): New.
6067 (set_nullable): Call it when tracing.
6068 Better locality of variables.
6069
6070 2001-11-19 Akim Demaille <akim@epita.fr>
6071
6072 * src/print.c (print_actions): Better locality of variables.
6073
6074 2001-11-19 Akim Demaille <akim@epita.fr>
6075
6076 * src/derives.c (print_derives): Fix and enrich.
6077 * src/closure.c (print_fderives): Likewise.
6078
6079 2001-11-19 Akim Demaille <akim@epita.fr>
6080
6081 * src/closure.c (itemsetend): Remove, replaced with...
6082 (itemsetsize): new.
6083
6084 2001-11-19 Akim Demaille <akim@epita.fr>
6085
6086 * src/LR0.c (kernel_end): Remove, replaced with...
6087 (kernel_size): new.
6088
6089 2001-11-19 Akim Demaille <akim@epita.fr>
6090
6091 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
6092 to clarify.
6093
6094 2001-11-19 Akim Demaille <akim@epita.fr>
6095
6096 * src/closure.c (closure): Use arrays instead of pointers to clarify.
6097
6098 2001-11-19 Akim Demaille <akim@epita.fr>
6099
6100 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
6101 trace messages.
6102 * src/LR0.c: Likewise.
6103 (allocate_itemsets): Use arrays instead of pointers to clarify.
6104
6105 2001-11-19 Akim Demaille <akim@epita.fr>
6106
6107 * src/getargs.c (statistics_flag): Replace with...
6108 (trace_flag): New.
6109 (longopts): Accept --trace instead of --statistics.
6110 * src/getargs.h, src/options.c: Adjust.
6111 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
6112 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
6113
6114 2001-11-19 Akim Demaille <akim@epita.fr>
6115
6116 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
6117 pointers to clarify the code.
6118 (save_reductions, save_shifts): Factor common parts of alternatives.
6119
6120 2001-11-19 Akim Demaille <akim@epita.fr>
6121
6122 * src/LR0.c (new_state, get_state): Complete TRACE code.
6123 * src/closure.c: Include `reader.h' to get `tags', needed by the
6124 trace code.
6125 Rename the conditional DEBUG as TRACE.
6126 Output consistently TRACEs to stderr, not stdout.
6127 * src/derives.c: Likewise.
6128 * src/reduce.c: (inaccessable_symbols): Using if is better style
6129 than goto.
6130 Use `#if TRACE' instead of `#if 0' for tracing code.
6131
6132 2001-11-19 Akim Demaille <akim@epita.fr>
6133
6134 * src/system.h (LIST_FREE, shortcpy): New.
6135 * src/LR0.c: Use them.
6136 * src/output.c (free_itemsets, free_reductions, free_shifts):
6137 Remove, replaced by LIST_FREE.
6138
6139 2001-11-19 Akim Demaille <akim@epita.fr>
6140
6141 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
6142 (REDUCTIONS_ALLOC): New.
6143 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
6144 allocation.
6145
6146 2001-11-19 Akim Demaille <akim@epita.fr>
6147
6148 * src/LR0.c (new_state): Complete trace code.
6149 * src/nullable.c (set_nullable): Don't translate traces.
6150
6151 2001-11-19 Akim Demaille <akim@epita.fr>
6152
6153 * src/print_graph.c (print_core): Better locality of variables.
6154 * src/print.c (print_core): Likewise.
6155
6156 2001-11-19 Akim Demaille <akim@epita.fr>
6157
6158 * src/vcg.c: You do the output, so you are responsible of the
6159 handling of VCG syntax, in particular: use quotearg.
6160 * src/print_graph.c: Don't.
6161 (print_actions): Don't output the actions as part of the nodes,
6162 since that's the job of the edges.
6163 (print_state): Don't output by hand: fill the node description,
6164 and ask for its output.
6165
6166 2001-11-19 Akim Demaille <akim@epita.fr>
6167
6168 * src/bison.simple (yyparse): When verbosely reporting an error,
6169 no longer put additional quotes around token names.
6170 * tests/calc.at: Adjust.
6171
6172 2001-11-19 Akim Demaille <akim@epita.fr>
6173
6174 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
6175 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
6176 * src/output.c: Adjust.
6177
6178 2001-11-19 Akim Demaille <akim@epita.fr>
6179
6180 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
6181 (rule_t): this.
6182 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
6183
6184 2001-11-19 Akim Demaille <akim@epita.fr>
6185
6186 * src/gram.h (rule_t): New.
6187 (rule_table): New.
6188 (rrhs, rlhs): Remove, part of state_t.
6189 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
6190 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
6191 * src/reader.c, src/reduce.c: Adjust.
6192
6193 2001-11-19 Akim Demaille <akim@epita.fr>
6194
6195 * src/reader.c (symbols_output): New, extracted from...
6196 (packsymbols): Here.
6197 (reader): Call it.
6198
6199 2001-11-19 Akim Demaille <akim@epita.fr>
6200
6201 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
6202 (maxrhs): this new function.
6203
6204 2001-11-19 Akim Demaille <akim@epita.fr>
6205
6206 * src/lalr.c (F): New macro to access the variable F.
6207 Adjust.
6208
6209 2001-11-19 Akim Demaille <akim@epita.fr>
6210
6211 * src/lalr.h (LA): New macro to access the variable LA.
6212 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
6213 * src/lalr.c: Adjust.
6214
6215 2001-11-19 Akim Demaille <akim@epita.fr>
6216
6217 * src/lalr.c (initialize_LA): Only initialize LA. Let...
6218 (set_state_table): handle the `lookaheads' members.
6219
6220 2001-11-19 Akim Demaille <akim@epita.fr>
6221
6222 * src/lalr.h (lookaheads): Removed array, whose contents is now
6223 a member of...
6224 (state_t): this structure.
6225 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
6226 Adjust.
6227
6228 2001-11-19 Akim Demaille <akim@epita.fr>
6229
6230 * src/lalr.h (consistent): Removed array, whose contents is now
6231 a member of...
6232 (state_t): this structure.
6233 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
6234 Adjust.
6235
6236 2001-11-19 Akim Demaille <akim@epita.fr>
6237
6238 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
6239 contents are now members of...
6240 (state_t): this structure.
6241 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
6242 Adjust.
6243
6244 2001-11-19 Akim Demaille <akim@epita.fr>
6245
6246 * src/lalr.h (state_t): New.
6247 (state_table): Be a state_t * instead of a core **.
6248 (accessing_symbol): Remove, part of state_t.
6249 * src/lalr.c: Adjust.
6250 (set_accessing_symbol): Merge into...
6251 (set_state_table): this.
6252 * src/print_graph.c, src/conflicts.c: Adjust.
6253
6254 2001-11-14 Akim Demaille <akim@epita.fr>
6255
6256 * tests/calc.at, tests/output.at, tests/regression.at,
6257 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
6258 now the tests are run in private dirs, therefore AC_CLEANUP and
6259 family can be simplified to 0-ary.
6260 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
6261 use abs. path to find config.h.
6262 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
6263 stderr, there can be way too much random noise.
6264 Instead pass -Werror to GCC and rely on the exit status.
6265 Reported by Wolfram Wagner.
6266
6267 2001-11-14 Akim Demaille <akim@epita.fr>
6268
6269 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
6270 defined only if yyoverflow is defined, to avoid `warning: unused
6271 variable `yyvs1''.
6272 Reported by The Test Suite.
6273
6274 2001-11-14 Akim Demaille <akim@epita.fr>
6275
6276 * src/print.c: Include reduce.h.
6277 Reported by Hans Aberg.
6278
6279 2001-11-14 Akim Demaille <akim@epita.fr>
6280
6281 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
6282 Revert a previous patch: these are really const.
6283 * src/conflicts.c (conflict_report): Additional useless pair of
6284 braces to pacify GCC's warnings for `if () if () {} else {}'.
6285 * src/lex.c (parse_percent_token): Replace equal_offset with
6286 arg_offset.
6287 arg is const.
6288 Be sure to strdup `arg' when used, since there is no reason for
6289 token_buffer not to change.
6290
6291 2001-11-14 Akim Demaille <akim@epita.fr>
6292
6293 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
6294 definition.
6295 * src/main.c (main): Use them.
6296 Suggested by Hans Aberg.
6297
6298 2001-11-12 Akim Demaille <akim@epita.fr>
6299
6300 * src/system.h (ngettext): Now that we use ngettext, be sure to
6301 provide a default definition when NLS are not used.
6302
6303 2001-11-12 Akim Demaille <akim@epita.fr>
6304
6305 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
6306 Use @kbd to denote user input.
6307 (Language and Grammar): ANSIfy the example.
6308 Adjust its layout for info/notinfo.
6309 (Location Tracking Calc): Output error messages to stderr.
6310 Output locations in a more GNUtically correct way.
6311 Fix a couple of Englishos.
6312 Adjust @group/@end group pairs.
6313
6314 2001-11-12 Akim Demaille <akim@epita.fr>
6315
6316 %expext was not functioning at all.
6317
6318 * src/conflicts.c (expected_conflicts): Set to -1.
6319 (conflict_report): Use ngettext.
6320 (conflicts_print): Check %expect and make its violation an error.
6321 * doc/bison.texinfo (Expect Decl): Adjust.
6322 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
6323 * tests/regression.at (%expect not enough, %expect right)
6324 (%expect too much): New.
6325
6326 2001-11-12 Akim Demaille <akim@epita.fr>
6327
6328 * tests/regression.at (Conflicts): Rename as...
6329 (Unresolved SR Conflicts): this.
6330 (Solved SR Conflicts): New.
6331
6332 2001-11-12 Akim Demaille <akim@epita.fr>
6333
6334 * src/reduce.c (print_results): Rename as...
6335 (reduce_output): This.
6336 Output to OUT, passed as argument, instead of output_obstack.
6337 (dump_grammar): Likewise.
6338 (reduce_free): New.
6339 Also free V1.
6340 (reduce_grammar): No longer call reduce_output, since...
6341 * src/print.c (print_results): do it.
6342 * src/main.c (main): Call reduce_free;
6343
6344 2001-11-12 Akim Demaille <akim@epita.fr>
6345
6346 * src/conflicts.c (print_reductions): Accept OUT as argument.
6347 Output to it, not to output_obstack.
6348 * src/print.c (print_actions): Adjust.
6349
6350 2001-11-12 Akim Demaille <akim@epita.fr>
6351
6352 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
6353 the result instead of using...
6354 (src_total, rrc_total, src_count, rrc_count): Remove.
6355 (any_conflicts): Remove.
6356 (print_conflicts): Split into...
6357 (conflicts_print, conflicts_output): New.
6358 * src/conflicts.h: Adjust.
6359 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
6360 * src/print.c (print_grammar): Issue `\n' between two rules.
6361 * tests/regression.at (Conflicts): New.
6362 Reported by Tom Lane.
6363
6364 2001-11-12 Akim Demaille <akim@epita.fr>
6365
6366 * tests/regression.at (Invalid input): Remove, duplicate with
6367 ``Invalid input: 1''.
6368
6369 2001-11-12 Akim Demaille <akim@epita.fr>
6370
6371 * tests/torture.at (AT_DATA_STACK_TORTURE)
6372 (Exploding the Stack Size with Alloca)
6373 (Exploding the Stack Size with Malloc): New.
6374
6375 2001-11-12 Akim Demaille <akim@epita.fr>
6376
6377 * src/bison.simple (YYSTACK_REALLOC): New.
6378 (yyparse) [!yyoverflow]: Use it and free the old stack.
6379 Reported by Per Allansson.
6380
6381 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
6382
6383 * src/bison.simple: Define type yystype instead of YYSTYPE, and
6384 define CPP macro, which substitute YYSTYPE by yystype.
6385 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
6386 with yyltype/YYLTYPE. This allows inclusion of the generated
6387 header within the parser if the compiler, such as GGC, accepts
6388 multiple equivalent #defines.
6389 From Akim.
6390
6391 2001-11-05 Akim Demaille <akim@epita.fr>
6392
6393 * src/reader.c (symbols_output): New, extracted from...
6394 (packsymbols): here.
6395 (reader): Adjust.
6396
6397 2001-11-05 Akim Demaille <akim@epita.fr>
6398
6399 * src/lex.c (parse_percent_token): s/quotearg/quote/.
6400
6401 2001-11-05 Akim Demaille <akim@epita.fr>
6402
6403 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
6404 pattern.
6405
6406 2001-11-05 Akim Demaille <akim@epita.fr>
6407
6408 * src/options.h (struct option_table_struct): set_flags is void*.
6409 * src/options.c (longopts): Support `--output' and `%output'.
6410 (usage): Adjust.
6411 * src/lex.h (tok_setopt): Remove, replaced with...
6412 (tok_intopt, tok_stropt): these new guys.
6413 * src/lex.c (getopt.h): Not needed.
6414 (token_buffer, unlexed_token_buffer): Not const.
6415 (percent_table): Promote `-' over `_' in directive names.
6416 Active `%name-prefix', `file-prefix', and `output'.
6417 (parse_percent_token): Accept possible arguments to directives.
6418 Promote `-' over `_' in directive names.
6419
6420 2001-11-04 Akim Demaille <akim@epita.fr>
6421
6422 * doc/bison.texinfo (Decl Summary): Split the list into
6423 `directives for grammars' and `directives for bison'.
6424 Sort'em.
6425 Add description of `%name-prefix', `file-prefix', and `output'.
6426 Promote `-' over `_' in directive names.
6427 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
6428 Simplify the description of `--name-prefix'.
6429 Promote `-' over `_' in directive names.
6430 Promote `--output' over `--output-file'.
6431 Fix the description of `--defines'.
6432 * tests/output.at: Exercise %file-prefix and %output.
6433
6434 2001-11-02 Akim Demaille <akim@epita.fr>
6435
6436 * doc/refcard.tex: Update.
6437
6438 2001-11-02 Akim Demaille <akim@epita.fr>
6439
6440 * src/symtab.h (SUNDEF): New.
6441 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
6442 stand for `uninitialized', instead of 0.
6443 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
6444 * src/lex.c (lex): Adjust.
6445
6446 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
6447 Number it 0.
6448 Let yylex return it instead of a plain 0.
6449 Reported by Dick Streefland.
6450
6451 2001-11-02 Akim Demaille <akim@epita.fr>
6452
6453 * tests/regression.at (Mixing %token styles): New test.
6454
6455 2001-11-02 Akim Demaille <akim@epita.fr>
6456
6457 * src/reader.c (parse_thong_decl): Formatting changes.
6458 (token_translations_init): New, extracted from...
6459 (packsymbols): Here.
6460 Adjust.
6461
6462 2001-11-01 Akim Demaille <akim@epita.fr>
6463
6464 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
6465 Check that `9foo.y' produces correct cpp guards.
6466 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
6467 guards.
6468 Reported by Wwp.
6469
6470 2001-11-01 Akim Demaille <akim@epita.fr>
6471
6472 * tests/regression.at (Invalid input: 2): New.
6473 * src/lex.c (unlexed_token_buffer): New.
6474 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
6475 too.
6476 Reported by Wwp.
6477
6478 2001-11-01 Akim Demaille <akim@epita.fr>
6479
6480 * tests/calc.at: Catch up with 1.30.
6481 * configure.in: Bump to 1.49a.
6482 Adjust to newer Autotest.
6483
6484 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
6485
6486 * src/conflicts.c: Move global variables rrc_total and src_total ...
6487 (print_conflicts): here.
6488 * src/output.c (output): Free global variable user_toknums.
6489 * src/lex.c (token_obstack): Become static.
6490
6491 2001-10-18 Akim Demaille <akim@epita.fr>
6492
6493 * tests/atlocal.in (GCC): Add.
6494 * tests/calc.at: s/m4_match/m4_bmatch/.
6495 s/m4_patsubst/m4_bpatsubst/.
6496 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
6497 * configure.in: AC_SUBST(GCC).
6498
6499 2001-10-14 Marc Autret <autret_m@epita.fr>
6500
6501 * src/options.c (create_long_option_table): Fix.
6502
6503 2001-10-10 Akim Demaille <akim@epita.fr>
6504
6505 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
6506
6507 2001-10-04 Akim Demaille <akim@epita.fr>
6508
6509 * src/reader.c (parse_union_decl): Push the caracters in
6510 union_obstack, not attrs_obstack.
6511
6512 2001-10-04 Akim Demaille <akim@epita.fr>
6513
6514 Merge in the branch 1.29.
6515
6516 * src/reader.c (packsymbols): Use a temporary obstack for
6517 `%%tokendef', since output_stack is already used elsewhere.
6518
6519 2001-10-02 Akim Demaille <akim@epita.fr>
6520
6521 Bump 1.29d.
6522
6523 2001-10-02 Akim Demaille <akim@epita.fr>
6524
6525 Version 1.29c.
6526
6527 2001-10-02 Akim Demaille <akim@epita.fr>
6528
6529 * tests/regression.at (Invalid CPP headers): New.
6530 From Alexander Belopolsky.
6531 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
6532
6533 2001-10-02 Akim Demaille <akim@epita.fr>
6534
6535 * tests/regression.at (Invalid input): New.
6536 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
6537 Reported by Shura.
6538
6539 2001-10-02 Akim Demaille <akim@epita.fr>
6540
6541 * tests/calc.at: Now that --debug works, the tests must be adjusted.
6542
6543 2001-10-02 Akim Demaille <akim@epita.fr>
6544
6545 * src/output.c (output_parser): Assert `skeleton'.
6546 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
6547 systems.
6548 From Shura.
6549
6550 2001-10-01 Marc Autret <autret_m@epita.fr>
6551
6552 * src/lex.h: Echo modifications.
6553 * src/lex.c (unlex): Parameter is now token_t.
6554 From Hans Aberg.
6555
6556 2001-10-01 Marc Autret <autret_m@epita.fr>
6557
6558 * src/main.c: Include lex.h.
6559 From Hans Aberg.
6560
6561 2001-09-29 Akim Demaille <akim@epita.fr>
6562
6563 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
6564
6565 2001-09-28 Akim Demaille <akim@epita.fr>
6566
6567 * tests/testsuite.at: Update to newer Autotest.
6568 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
6569
6570 2001-09-27 Akim Demaille <akim@epita.fr>
6571
6572 Position independent wrapper.
6573
6574 * tests/bison: Remove.
6575 * tests/bison.in: New.
6576 * configure.in: Adjust.
6577
6578 2001-09-27 Paul Eggert <eggert@twinsun.com>
6579
6580 Port quotearg fixes from tar 1.13.24.
6581
6582 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
6583 tm to be declared.
6584 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
6585 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
6586
6587 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
6588 * m4/mbrtowc.m4: New file.
6589 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
6590 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
6591
6592 2001-09-27 Akim Demaille <akim@epita.fr>
6593
6594 Bump to 1.29c.
6595
6596 2001-09-27 Akim Demaille <akim@epita.fr>
6597
6598 Version 1.29b.
6599
6600 2001-09-25 Akim Demaille <akim@epita.fr>
6601
6602 * src/system.h: Include `xalloc.h'.
6603 Remove it from the C files.
6604 * src/files.c (output_files): Free the obstacks.
6605 * src/lex.c (init_lex): Rename as...
6606 (lex_init): this.
6607 (lex_free): New.
6608 * src/main.c (main): Use it.
6609
6610 2001-09-24 Marc Autret <autret_m@epita.fr>
6611
6612 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
6613 to output informations in fout (FILE*).
6614 (open_graph, close_graph): Likewise.
6615 (output_graph, output_edge, output_node): Likewise.
6616 * src/vcg.h: Update function prototypes.
6617 * src/print_graph.c (print_graph): Open output graph file.
6618 (print_actions): Adjust.
6619 * src/files.h: Remove extern declaration.
6620 * src/files.c: Remove graph_obstack declaration.
6621 (open_files): Remove graph_obstack initialization.
6622 (output_files): Remove graph_obstack saving.
6623
6624 2001-09-24 Marc Autret <autret_m@epita.fr>
6625
6626 * src/files.c (compute_output_file_names): Fix.
6627
6628 2001-09-24 Marc Autret <autret_m@epita.fr>,
6629 Akim Demaille <akim@epita.fr>
6630
6631 * src/reader.c (reader): Remove call to free_symtab ().
6632 * src/main.c (main): Call it here.
6633 Include symtab.h.
6634 * src/conflicts.c (initialize_conflicts): Rename as...
6635 (solve_conflicts): this.
6636 * src/print.c (print_core, print_actions, print_state)
6637 (print_grammar): Dump to a file instead a `output_obstack'.
6638 (print_results): Dump `output_obstack', and then proceed with the
6639 FILE *.
6640 * src/files.c (compute_output_file_names, close_files): New.
6641 (output_files): Adjust.
6642 * src/main.c (main): Adjust.
6643
6644 2001-09-23 Marc Autret <autret_m@epita.fr>
6645
6646 * src/files.c (compute_header_macro): Computes header macro name
6647 from spec_defines_file when given.
6648
6649 2001-09-23 Marc Autret <autret_m@epita.fr>
6650
6651 * src/files.c (output_files): Add default extensions.
6652
6653 2001-09-22 Akim Demaille <akim@epita.fr>
6654
6655 * src/conflicts.c (finalize_conflicts): Rename as...
6656 (free_conflicts): this.
6657
6658 2001-09-22 Akim Demaille <akim@epita.fr>
6659
6660 * src/gram.c (gram_free): Rename back as...
6661 (dummy): this.
6662 (output_token_translations): Free `token_translations'.
6663 * src/symtab.c (free_symtab): Free the tag field.
6664
6665 2001-09-22 Akim Demaille <akim@epita.fr>
6666
6667 Remove `translations' as it is always set to true.
6668
6669 * src/gram.h: Adjust.
6670 * src/reader.c (packsymbols, parse_token_decl): Adjust
6671 * src/print.c (print_grammar): Adjust.
6672 * src/output.c (output_token_translations): Adjust.
6673 * src/lex.c (lex): Adjust.
6674 * src/gram.c: Be sure the set pointers to NULL.
6675 (dummy): Rename as...
6676 (gram_free): this.
6677
6678 2001-09-22 Akim Demaille <akim@epita.fr>
6679
6680 * configure.in: Invoke AM_LIB_DMALLOC.
6681 * src/system.h: Use dmalloc.
6682 * src/LR0.c: Be sure to have pointers initialized to NULL.
6683 (allocate_itemsets): Allocate kernel_items only if needed.
6684
6685 2001-09-22 Akim Demaille <akim@epita.fr>
6686
6687 * configure.in: Bump to 1.29b.
6688 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
6689 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
6690 need xmalloc.c in calc.y.
6691 From Pascal Bart.
6692
6693 2001-09-21 Akim Demaille <akim@epita.fr>
6694
6695 Version 1.29a.
6696 * Makefile.maint, config/config.guess, config/config.sub,
6697 * config/missing: Update from masters.
6698 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
6699 upon package.m4.
6700 * configure.in (ALL_LINGUAS): Add `tr'.
6701
6702 2001-09-21 Akim Demaille <akim@epita.fr>
6703
6704 * tests/Makefile.am (package.m4): Move to...
6705 ($(srcdir)/$(TESTSUITE)): here.
6706
6707 2001-09-20 Akim Demaille <akim@epita.fr>
6708
6709 * src/complain.c: No longer try to be standalone: use system.h.
6710 Don't assume __STDC__ is defined to 1. Just test if it is defined.
6711 * src/complain.h: Likewise.
6712 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
6713 Remove the unused variable `n'.
6714 From Albert Chin-A-Young.
6715
6716 2001-09-18 Marc Autret <autret_m@epita.fr>
6717
6718 * doc/bison.1: Update.
6719 * doc/bison.texinfo (Bison Options): Update --defines and --graph
6720 descriptions.
6721 (Option Cross Key): Update.
6722 Add --graph.
6723
6724 2001-09-18 Marc Autret <autret_m@epita.fr>
6725
6726 * tests/regression.at: New test (comment in %union).
6727
6728 2001-09-18 Marc Autret <autret_m@epita.fr>
6729
6730 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
6731 do that.
6732 Reported by Keith Browne.
6733
6734 2001-09-18 Marc Autret <autret_m@epita.fr>
6735
6736 * tests/output.at: Add tests for --defines and --graph.
6737
6738 2001-09-18 Marc Autret <autret_m@epita.fr>
6739
6740 * tests/output.at: Removes tests of %{header,src}_extension features.
6741
6742 2001-09-18 Akim Demaille <akim@epita.fr>
6743
6744 * tests/Makefile.am (package.m4): New.
6745 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
6746 (_AT_CHECK_CALC_ERROR): Likewise.
6747 Factor the `, ' part of verbose error messages.
6748
6749 2001-09-18 Marc Autret <autret_m@epita.fr>
6750
6751 * src/getargs.c (longopts): Declare --defines and --graph as options
6752 with optional arguments.
6753 * src/files.h: Add extern declarations.
6754 * src/files.c (spec_graph_file, spec_defines_file): New.
6755 (output_files): Update.
6756 Remove CPP-outed code.
6757
6758 2001-09-18 Marc Autret <autret_m@epita.fr>
6759
6760 Turn off %{source,header}_extension feature.
6761
6762 * src/files.c (compute_exts_from_gf): Update.
6763 (compute_exts_from_src): Update.
6764 (output_files): CPP-out useless code.
6765 * src/files.h: Remove {header,source}_extension extern declarations.
6766 * src/reader.c (parse_dquoted_param): CPP-out.
6767 (parse_header_extension_decl): Remove.
6768 (parse_source_extension_decl): Remove.
6769 (read_declarations): Remove cases tok_{hdrext,srcext}.
6770 * src/lex.c (percent_table): Remove {header,source}_extension entries.
6771 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
6772
6773 2001-09-10 Akim Demaille <akim@epita.fr>
6774
6775 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
6776 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
6777 (AT_CHECK_OUTPUT): this.
6778 Merely check ls' exit status, its output is useless.
6779
6780 2001-09-10 Akim Demaille <akim@epita.fr>
6781
6782 * tests/calc.at: Use m4_match.
6783 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
6784
6785 2001-09-10 Marc Autret <autret_m@epita.fr>,
6786 Akim Demaille <akim@epita.fr>
6787
6788 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
6789 enum color_e.
6790 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
6791 to `normal'.
6792 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
6793 * src/lex.h: Adjust prototype.
6794 (token_t): Add `tok_undef'.
6795 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
6796 (parse_percent_token): Now returns token_t.
6797 Add default statement in switch.
6798 (lex): Separate `c' as an input variable, from the token_t result
6799 part.
6800 (unlexed): Is a token_t.
6801
6802 2001-09-10 Akim Demaille <akim@epita.fr>
6803
6804 * configure.in: Bump to 1.29a.
6805
6806 2001-09-07 Akim Demaille <akim@epita.fr>
6807
6808 Version 1.29.
6809
6810 2001-08-30 Akim Demaille <akim@epita.fr>
6811
6812 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
6813 * m4/atconfig.m4: Remove.
6814 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
6815 * tests/bison: New.
6816 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
6817 m4_if, m4_patsubst, and m4_regexp.
6818 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
6819 `input' file instead of echo.
6820
6821 2001-08-29 Akim Demaille <akim@epita.fr>
6822
6823 Bump to 1.28e.
6824
6825 2001-08-29 Akim Demaille <akim@epita.fr>
6826
6827 Version 1.28d.
6828
6829 2001-08-29 Paul Eggert <eggert@twinsun.com>
6830
6831 * src/bison.simple (yyparse): Don't take the address of an
6832 item before the start of an array, as that doesn't conform to
6833 the C Standard.
6834
6835 2001-08-29 Robert Anisko <anisko_r@epita.fr>
6836
6837 * doc/bison.texinfo (Location Tracking Calc): New node.
6838
6839 2001-08-29 Paul Eggert <eggert@twinsun.com>
6840
6841 * src/output.c (output): Do not define const, as this now
6842 causes more problems than it cures.
6843
6844 2001-08-29 Akim Demaille <akim@epita.fr>
6845
6846 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
6847 the nodes.
6848 Be sure to tag the `detailmenu'.
6849
6850 2001-08-29 Akim Demaille <akim@epita.fr>
6851
6852 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
6853 download in a tmp dir.
6854
6855 2001-08-28 Marc Autret <autret_m@epita.fr>
6856
6857 * config/depcomp: New file.
6858
6859 2001-08-28 Marc Autret <autret_m@epita.fr>
6860
6861 * doc/bison.1 (mandoc): Adjust.
6862 From Juan Manuel Guerrero.
6863
6864 2001-08-28 Marc Autret <autret_m@epita.fr>
6865
6866 * src/print_graph.c (print_state): Fix.
6867
6868 2001-08-27 Marc Autret <autret_m@epita.fr>
6869
6870 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
6871 char * members.
6872 Echo modifications to the functions prototypes.
6873 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
6874
6875 2001-08-27 Marc Autret <autret_m@epita.fr>
6876
6877 * src/vcg.c: Include `xalloc.h'.
6878 (add_colorentry): New.
6879 (add_classname): New.
6880 (add_infoname): New.
6881 * src/vcg.h: Add new prototypes.
6882
6883 2001-08-27 Akim Demaille <akim@epita.fr>
6884
6885 * Makefile.maint: Sync. again with CVS Autoconf.
6886
6887 2001-08-27 Akim Demaille <akim@epita.fr>
6888
6889 * Makefile.maint: Formatting changes.
6890 (po-update, cvs-update, update): New targets.
6891 (AMTAR): Remove.
6892
6893 2001-08-27 Akim Demaille <akim@epita.fr>
6894
6895 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
6896 * Makefile.maint: Sync. with CVS Autoconf.
6897
6898 2001-08-27 Marc Autret <autret_m@epita.fr>
6899
6900 * src/vcg.h (struct infoname_s): New.
6901 (struct colorentry_s): New.
6902 (graph_s): New fields {vertical,horizontal}_order in structure.
6903 Add `infoname' field.
6904 Add `colorentry' field;
6905 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
6906 (G_HORIZONTAL_ORDER): New.
6907 (G_INFONAME): New.
6908 (G_COLORENTRY): New.
6909 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
6910 Add output of `infoname'.
6911 Add output of `colorentry'.
6912
6913 2001-08-27 Marc Autret <autret_m@epita.fr>
6914
6915 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
6916 This one shadowed a global parameter.
6917
6918 2001-08-24 Marc Autret <autret_m@epita.fr>
6919
6920 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
6921 instead of `unsigned'.
6922 (print_state): Do not call obstack_object_size () in obstack_grow ()
6923 to avoid macro variables shadowing.
6924
6925 2001-08-23 Marc Autret <autret_m@epita.fr>
6926
6927 * src/lex.c (percent_table): Typo: s/naem/name/.
6928 Add graph option.
6929 Normalize new options declarations.
6930
6931 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
6932
6933 * tests/suite.at: Exercise %header_extension and %source_extension.
6934
6935 2001-08-16 Marc Autret <autret_m@epita.fr>
6936
6937 * src/reader.c (parse_dquoted_param): New.
6938 (parse_header_extension_decl): Use it.
6939 (parse_source_extension_decl): Likewise.
6940
6941 2001-08-16 Marc Autret <autret_m@epita.fr>
6942
6943 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
6944 (get_xxxx_str): Use assert () instead of complain ().
6945 Remove return invokations in default cases.
6946 (get_decision_str): Modify default behaviour. Remove second argument.
6947 Echo modifications on calls.
6948 (output_graph): Fix.
6949
6950 2001-08-16 Marc Autret <autret_m@epita.fr>
6951
6952 * src/getargs.c (usage): Update with ``-g, --graph''.
6953
6954 2001-08-16 Marc Autret <autret_m@epita.fr>
6955
6956 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
6957 (Option Cross Key): Likewise.
6958 * doc/bison.1: Update.
6959
6960 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
6961
6962 * src/output.c (output_master_parser): Don't finish action_obstack.
6963 (output_parser): Don't care about the muscle action, here.
6964 (prepare): Copy the action_obstack in the action muscle.
6965 (output): Free action_obstack.
6966
6967 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
6968
6969 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
6970 will contain `%union' declaration.
6971 (parse_union_decl): Delete #line directive output.
6972 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
6973 informations about %union.
6974 (parse_union_decl): Copy the union_obstack in the muscle stype.
6975 * src/bison.simple: Add new #line directive.
6976 Add typdef %%stype YYSTYPE.
6977
6978 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
6979
6980 * src/bison.simple: Add new `#line' directive.
6981
6982 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
6983
6984 * src/bison.simple: New `#line' directive.
6985 * src/output.c (output_parser): Support new dynamic muscle input_line.
6986
6987 2001-09-22 Marc Autret <autret_m@epita.fr>
6988
6989 * src/output.c (output_master_parser): New.
6990 (output_parser): Be more re-entrant.
6991
6992 2001-09-21 Marc Autret <autret_m@epita.fr>
6993
6994 * src/reader.c (copy_definition, parse_union_decl): Update and use
6995 `linef' muscle.
6996 (copy_action): Likewise.
6997 Use obstack_1grow ().
6998 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
6999
7000 2001-09-21 Marc Autret <autret_m@epita.fr>
7001
7002 * src/options.c (option_table): Adjust.
7003 * src/lex.c (parse_percent_token): Fix.
7004
7005 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
7006
7007 * src/options.c (symtab.h): Include it, need by lex.h.
7008
7009 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
7010
7011 * src/lex.c (parse_percent_token): Change type of variable `tx', which
7012 is now an option_table_struct*.
7013 (option_strcmp): New function option_strcmp.
7014 (parse_percent_token): Call option_strcmp.
7015 * src/getargs.c (xalloc.h, options.h): Include it.
7016 (getargs): Call create_long_option_table.
7017 (getargs): Free longopts at the end of the function.
7018 (shortopts): Move in options.c.
7019 * src/options.c (create_long_option_table): New function. Convert
7020 information from option_table to option structure.
7021 * src/reader.c (options.h): Include it.
7022
7023 * src/Makefile.am: Adjust.
7024 * src/options.c (option_table): Create from longopts and percent_table.
7025 * src/getargs.c (longopts): Delete.
7026 * src/lex.c (struct percent_table_struct): Delete.
7027 (percent_table): Delete.
7028 (options.h): Include it.
7029 * src/options.c: Create.
7030 * src/options.h: Create.
7031 Declare enum opt_access_e.
7032 Define struct option_table_struct.
7033
7034 2001-09-20 Marc Autret <autret_m@epita.fr>
7035
7036 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
7037 sections of Bison.
7038
7039 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
7040
7041 * src/bison.simple: s/%%filename/%%skeleton.
7042 * src/muscle_tab.c (getargs.h): Include it.
7043 (muscle_init): Insert new muscle skeleton.
7044
7045 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
7046
7047 * src/output.c (output_parser): Delete unused variable actions_dumped.
7048
7049 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
7050
7051 * src/output.c (output): Delete call to reader_output_yylsp.
7052 * src/reader.c (reader): Likewise.
7053 * src/reader.h: Delete declaration of reader_output_yylsp.
7054
7055 2001-09-02 Marc Autret <autret_m@epita.fr>
7056
7057 * src/reader.c: Include muscle_tab.h.
7058 (parse_union_decl): Update.
7059 (parse_macro_decl): Rename parse_muscle_decl.
7060 Update to use renamed functions and variable.
7061 (read_declarations, copy_action, read_additionnal_code, : Updated
7062 with correct variables and functions names.
7063 (packsymbols, reader): Likewise.
7064
7065 * src/reader.h (muscle_obstack): Extern declaration update.
7066
7067 * src/output.c: Include muscle_tab.h
7068 In all functions using macro_insert, change by using muscle_insert ().
7069 (macro_obstack): Rename muscle_obstack.
7070 Echo modifications in the whole file.
7071 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
7072 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
7073 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
7074
7075 * src/muscle_tab.h: Update double inclusion macros.
7076 (macro_entry_s): Rename muscle_entry_s.
7077 Update prototypes.
7078
7079 * src/muscle_tab.c: Include muscle_tab.h.
7080 Rename macro_tabble to muscle_table.
7081 (mhash1, mhash2, mcmp): Use muscle_entry.
7082 (macro_init): Rename muscle_init. Update.
7083 (macro_insert): Rename muscle_insert. Update.
7084 (macro_find): Rename muscle_find. Update.
7085
7086 * src/main.c: Include muscle_tab.h.
7087 (main): Call muscle_init ().
7088 * src/Makefile.am (bison_SOURCES): Echo modifications.
7089
7090 2001-09-02 Marc Autret <autret_m@epita.fr>
7091
7092 Now the files macro_tab.[ch] are named muscle_tab.[ch].
7093
7094 * src/muscle_tab.c, src/muscle_tab.h: Add files.
7095
7096 2001-09-02 Marc Autret <autret_m@epita.fr>
7097
7098 * src/macrotab.c, src/macrotab.h: Remove.
7099
7100 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
7101
7102 * src/reader.c (copy_guard): Use muscle to specify the `#line'
7103 filename.
7104
7105 2001-09-01 Marc Autret <autret_m@epita.fr>
7106
7107 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
7108 to an explicit value to activate the feature. We do it here.
7109
7110 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
7111
7112 * src/output.c (prepare): Delete the `filename' muscule insertion.
7113 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
7114 (parse_union_decl): Likewise.
7115 * src/macrotab.c (macro_init): Initialize filename by infile.
7116
7117 2001-08-31 Marc Autret <autret_m@epita.fr>
7118
7119 * src/bison.simple (YYLSP_NEEDED): New definition.
7120 * src/output.c (prepare): Add macro insertion of `locations_flag'
7121
7122 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
7123
7124 * src/output.c (prepare): Delete insertion of previous muscles,
7125 and insert the `prefix' muscles.
7126 * src/macrotab.c (macro_init): Likewise.
7127 (macro_init): Initialization prefix directive by `yy'.
7128 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
7129 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
7130 yylval, yydebug, yyerror, yynerrs and yyparse.
7131 New directive `#define' to substitute yydebug, ... with option
7132 name_prefix.
7133
7134 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
7135
7136 * src/main.c (main): Standardize.
7137 * src/output.c (output_table_data, output_parser): Likewise.
7138 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
7139
7140 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
7141
7142 * src/reader.c (read_additionnal_code): Rename %%user_code to
7143 %%epilogue.
7144 * src/output.c (output): Rename %%declarations to %%prologue.
7145 * src/bison.simple: Echo modifications.
7146
7147 2001-08-31 Marc Autret <autret_m@epita.fr>
7148
7149 * src/reader.c (readgram): CleanUp.
7150 (output_token_defines): Likewise.
7151 (packsymbols): Likewise.
7152 (reader): Likewise.
7153 * src/output.c (output): CPP-out useless code.
7154
7155 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
7156
7157 * src/reader.c (reader): Delete obsolete call to function
7158 output_trailers and output_headers.
7159 * src/output.h: Remove obsolete functions prototypes of output_headers
7160 and output_trailers.
7161
7162 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
7163
7164 * src/main.c: Include macrotab.h.
7165 * src/macrotab.h (macro_entry_s): Constify fields.
7166 Adjust functions prototypes.
7167 * src/macrotab.c (macro_insert): Constify key and value.
7168 (macro_find): Constify key.
7169 (macro_insert): Include 'xalloc.h'
7170 (macro_insert): Use XMALLOC.
7171 (macro_find): Constify return value.
7172 * src/output.c (output_table_data): Rename table to table_data.
7173 (output_parser): Constify macro_key, macro_value.
7174
7175 2001-08-30 Marc Autret <autret_m@epita.fr>
7176
7177 * src/reader.c (parse_skel_decl): New.
7178 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
7179 * src/lex.h (token_t): New token `tok_skel'.
7180 * src/lex.c (percent_table): Add skeleton option entry.
7181 Standardize.
7182
7183 2001-08-29 Marc Autret <autret_m@epita.fr>
7184
7185 * src/bison.simple: Add %%user_code directive at the end.
7186 * src/reader.c (read_additionnal_code): New.
7187 (reader): Use it.
7188 * src/output.c (output_program): Remove.
7189 (output): Update.
7190
7191 2001-08-28 Marc Autret <autret_m@epita.fr>
7192
7193 * src/output.c (output_actions): Clean up.
7194 (output_gram): CPP-out useless code.
7195 * src/reader.c (reader): Clean up, CPP-out useless code.
7196
7197 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
7198
7199 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
7200 directive.
7201 * src/bison.simple: Add `%%definitions'.
7202
7203 2001-08-28 Marc Autret <autret_m@epita.fr>
7204
7205 * config/depcomp: New file.
7206
7207 2001-08-27 Paul Eggert <eggert@twinsun.com>
7208
7209 * src/bison.simple (yyparse): Don't take the address of an
7210 item before the start of an array, as that doesn't conform to
7211 the C Standard.
7212
7213 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
7214
7215 * src/output.c (output): Remove the initialization of the macro
7216 obstack. It was done too late here.
7217
7218 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
7219 completely wrong.
7220 (reader): Initialize the macro obstack here, since we need it to grow
7221 '%define' directives.
7222
7223 * src/reader.h: Declare the macro obstack as extern.
7224
7225 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
7226
7227 * src/output.c (output_parser): Fix. Store single '%' characters in
7228 the output obstack instead of throwing them away.
7229
7230 2001-08-27 Akim Demaille <akim@epita.fr>
7231
7232 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
7233
7234 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7235
7236 * lib/Makefile.am: Adjust.
7237
7238 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7239
7240 * src/bison.simple: Update and add '%%' directives.
7241
7242 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7243
7244 * src/reader.c (reader): Remove calls to 'output_headers' and
7245 'output_trailers'. Remove some C output.
7246 (readgram): Disable a piece of code that was writing a default
7247 definition for 'YYSTYPE'.
7248 (reader_output_yylsp): Remove.
7249 (packsymbols): Output token defintions to a macro.
7250 (copy_definition): Disable C output.
7251
7252 * src/reader.c (parse_macro_decl): New function used to parse macro
7253 declarations.
7254 (copy_string2): Put the body of copy_string into this new function.
7255 Add a parameter to let the caller choose whether he wants to copy the
7256 string delimiters or not.
7257 (copy_string): Be a simple call to copy_string2 with the last argument
7258 bound to true.
7259 (read_declarations): Add case for macro definition.
7260 (copy_identifier): New.
7261 (parse_macro_decl): Read macro identifiers using copy_identifier
7262 rather than lex.
7263
7264 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7265
7266 * src/output.c (prepare): Add prefixed names.
7267 (output_parser): Output semantic actions.
7268 (output_parser): Fix bug on '%%line' directives.
7269
7270 * src/output.c (output_headers): Remove. The C code printed by this
7271 function should now be in the skeletons.
7272 (output_trailers): Remove.
7273 (output): Disable call to 'reader_output_yylsp'.
7274 (output_rule_data): Do not output tables to the table obstack.
7275
7276 * src/output.c: Remove some C dedicated output.
7277 Improve the use of macro and output obstacks.
7278 (output_defines): Remove.
7279
7280 * src/output.c (output_token_translations): Associate 'translate'
7281 table with a macro. No output to the table obstack.
7282 (output_gram): Same for 'rhs' and 'prhs'.
7283 (output_stos): Same for 'stos'.
7284 (output_rule_data): Same for 'r1' and 'r2'.
7285 (token_actions): Same for 'defact'.
7286 (goto_actions): Same for 'defgoto'.
7287 (output_base): Same for 'pact' and 'pgoto'.
7288 (output_table): Same for 'table'.
7289 (output_check): Same for 'check'.
7290
7291 * src/output.c (output_table_data): New function.
7292 (output_short_table): Remove.
7293 (output_short_or_char_table): Remove.
7294
7295 * src/output.c (output_parser): Replace most of the skeleton copy code
7296 with something new. Skeletons are now processed character by character
7297 rather than line by line, and Bison looks for '%%' macros. This is the
7298 first step in making Bison's output process (a lot) more flexible.
7299 (output_parser): Use the macro table.
7300
7301 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7302
7303 * src/main.c (main): Initialize the macro table.
7304
7305 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7306
7307 * src/lex.c (percent_table): Add tok_define.
7308 * src/lex.h: Add tok_define.
7309
7310 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7311
7312 * src/macrotab.c: New file.
7313 * src/macrotab.h: New file.
7314 * src/Makefile.am: Update.
7315
7316 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
7317
7318 * lib/hash.c: New file.
7319 * lib/hash.h: New file.
7320 * lib/Makefile.am: Update.
7321
7322 2001-08-15 Akim Demaille <akim@epita.fr>
7323
7324 Version 1.28c.
7325
7326 2001-08-15 Marc Autret <autret_m@epita.fr>
7327
7328 * src/reader.c (readgram): Indent output macro YYSTYPE.
7329 (packsymbols): Likewise.
7330 (output_token_defines): Likewise.
7331 * src/files.c: Standardize.
7332 (compute_header_macro): New.
7333 (defines_obstack_save): New. Use compute_header_macro.
7334 (output_files): Update. Use defines_obstack_save.
7335
7336 2001-08-15 Akim Demaille <akim@epita.fr>
7337
7338 * doc/bison.texinfo (Table of Symbols): Document
7339 YYSTACK_USE_ALLOCA.
7340
7341 2001-08-15 Akim Demaille <akim@epita.fr>
7342
7343 * missing: Update from CVS Automake.
7344 * config/config.guess, config/config.sub, config/texinfo.tex:
7345 Update from gnu.org.
7346
7347 2001-08-15 Akim Demaille <akim@epita.fr>
7348
7349 * Makefile.maint: Sync with CVS Autoconf.
7350
7351 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
7352
7353 * doc/bison.texinfo: Include GNU Free Documentation License from
7354 `fdl.texi'.
7355 * doc/fdl.texi: Add to package.
7356
7357 2001-08-14 Marc Autret <autret_m@epita.fr>
7358
7359 Turn on %{source,header}_extension features.
7360
7361 * src/lex.c (percent_table): Un-CPP out header_extension and
7362 source_extension.
7363 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
7364 (compute_exts_from_src): Remove conditions. It restores priorities
7365 between options.
7366
7367 2001-08-14 Marc Autret <autret_m@epita.fr>
7368
7369 * src/files.c (compute_base_names): Add extensions computing when
7370 `--file-prefix' used.
7371 Standardize function calls.
7372
7373 2001-08-13 Marc Autret <autret_m@epita.fr>
7374
7375 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
7376 defining it (defined but null disables alloca).
7377
7378 2001-08-13 Marc Autret <autret_m@epita.fr>
7379
7380 * src/bison.simple (_yy_memcpy): CPP reformat.
7381
7382 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
7383
7384 * tests/atconfig.in (CPPFLAGS): Fix.
7385
7386 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
7387
7388 * doc/bison.texinfo: Include GNU General Public License from
7389 `gpl.texi'.
7390 * doc/gpl.texi: Add to package.
7391
7392 2001-08-10 Marc Autret <autret_m@epita.fr>
7393
7394 * src/print_graph.h: Fix.
7395 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
7396
7397 2001-08-10 Akim Demaille <akim@epita.fr>
7398
7399 * src/system.h: Provide default declarations for stpcpy, strndup,
7400 and strnlen.
7401
7402 2001-08-10 Robert Anisko <anisko_r@epita.fr>
7403
7404 * doc/bison.texinfo (Locations): Update @$ stuff.
7405
7406 2001-08-09 Robert Anisko <anisko_r@epita.fr>
7407
7408 * src/bison.simple (YYLLOC_DEFAULT): Update.
7409 (yyparse): Adjust.
7410
7411 2001-08-08 Marc Autret <autret_m@epita.fr>
7412
7413 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
7414 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
7415 Reported by Fabrice Bauzac.
7416
7417 2001-08-08 Marc Autret <autret_m@epita.fr>
7418
7419 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
7420 * src/vcg.c (output_node): Fix.
7421 * src/vcg.h: Cleanup.
7422 * src/print_graph.c: Add comments.
7423 (node_output_size): New global variable. Simplify the formatting of
7424 the VCG graph output.
7425 (print_actions): Unused code is now used. It notifies the final state
7426 and no action states in the VCG graph. It also give the reduce actions.
7427 The `shift and goto' edges are red and the `go to state' edges are
7428 blue.
7429 Get the current node name and node_obstack by argument.
7430 (node_obstack): New variable.
7431 (print_state): Manage node_obstack.
7432 (print_core): Use node_obstack given by argument.
7433 A node is not only computed here but in print_actions also.
7434 (print_graph): CPP out useless code instead of commenting it.
7435
7436 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
7437
7438 * tests/atconfig.in (CPPFLAGS): Fix.
7439
7440 2001-08-07 Akim Demaille <akim@epita.fr>
7441
7442 * src/print_graph.c (quote): New.
7443 (print_core): Use it.
7444
7445 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
7446
7447 * src/vcg.c (complain.h): Include it.
7448 Unepitaize `return' invocations.
7449 [NDEBUG] (main): Remove.
7450 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
7451 * src/files.c (open_files): Initialize graph_obstack.
7452 * src/print_graph.c (print_actions): CPP out useless code.
7453 (print_core): Don't output the last `\n' in labels.
7454 Use `quote'.
7455 * src/files.c (output_files): Output the VCG file.
7456 * src/main.c (main): Invoke print_graph ();
7457
7458 2001-08-06 Marc Autret <autret_m@epita.fr>
7459
7460 Automaton VCG graph output.
7461 Using option ``-g'' or long option ``--graph'', you can generate
7462 a gram_filename.vcg file containing a VCG description of the LALR (1)
7463 automaton of your grammar.
7464
7465 * src/main.c: Call to print_graph() function.
7466 * src/getargs.h: Update.
7467 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
7468 (graph_flag): New flag.
7469 (longopts): Update.
7470 (getargs): Add case `g'.
7471 * src/files.c (graph_obstack): New obstack struct.
7472 (open_files): Initialize new obstack.
7473 (output_files): Saves graph_obstack if required.
7474 * src/files.h (graph_obstack): New extern declaration.
7475 * src/Makefile.am: Add new source files.
7476
7477 2001-08-06 Marc Autret <autret_m@epita.fr>
7478
7479 * src/print_graph.c, src/print_graph.h (graph): New.
7480 * src/vcg.h: New file.
7481 * src/vcg.c: New file, VCG graph handling.
7482
7483 2001-08-06 Marc Autret <autret_m@epita.fr>
7484
7485 Add of %source_extension and %header_extension which specify
7486 the source or/and the header output file extension.
7487
7488 * src/files.c (compute_base_names): Remove initialisation of
7489 src_extension and header_extension.
7490 (compute_exts_from_gf): Update.
7491 (compute_exts_from_src): Update.
7492 (output_files): Update.
7493 * src/reader.c (parse_header_extension_decl): New.
7494 (parse_source_extension_decl): New.
7495 (read_declarations): New case statements for the new tokens.
7496 * src/lex.c (percent_table): Add entries for %source_extension
7497 and %header_extension.
7498 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
7499
7500 2001-08-06 Marc Autret <autret_m@epita.fr>
7501
7502 * configure.in: Bump to 1.28c.
7503 * doc/bison.texinfo: Texinfo thingies.
7504
7505 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
7506
7507 * tests/atconfig.in (CPPFLAGS): Add.
7508 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
7509
7510 2001-08-03 Akim Demaille <akim@epita.fr>
7511
7512 Version 1.28b.
7513
7514 2001-08-03 Akim Demaille <akim@epita.fr>
7515
7516 * tests/Makefile.am (check-local): Ship testsuite.
7517 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
7518 Include `string.h'.
7519
7520 2001-08-03 Akim Demaille <akim@epita.fr>
7521
7522 * configure.in: Try using -Wformat when compiling.
7523
7524 2001-08-03 Akim Demaille <akim@epita.fr>
7525
7526 * configure.in: Bump to 1.28b.
7527
7528 2001-08-03 Akim Demaille <akim@epita.fr>
7529
7530 * src/complain.c: Adjust strerror_r portability issues.
7531
7532 2001-08-03 Akim Demaille <akim@epita.fr>
7533
7534 Version 1.28a.
7535
7536 2001-08-03 Akim Demaille <akim@epita.fr>
7537
7538 * src/getargs.c, src/getarg.h (skeleton)): Constify.
7539 * src/lex.c (literalchar): Avoid name clashes on `buf'.
7540 * src/getargs.c: Include complain.h.
7541 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
7542 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
7543
7544 2001-08-03 Akim Demaille <akim@epita.fr>
7545
7546 * src/reader.c (readgram): Display hidden chars in error messages.
7547
7548 2001-08-03 Akim Demaille <akim@epita.fr>
7549
7550 Update to gettext 0.10.39.
7551
7552 2001-08-03 Akim Demaille <akim@epita.fr>
7553
7554 * lib/strspn.c: New.
7555
7556 2001-08-01 Marc Autret <autret_m@epita.fr>
7557
7558 * doc/bison.texinfo: Update.
7559 * doc/bison.1 (mandoc): Update.
7560 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
7561 * src/files.c: Support output files extensions computing.
7562 (src_extension): New static variable.
7563 (header_extension): New static variable.
7564 (tr): New function.
7565 (get_extension_index): New function, gets the index of an extension
7566 filename in a string.
7567 (compute_exts_from_gf): New function, computes extensions from the
7568 grammar file extension.
7569 (compute_exts_from_src): New functions, computes extensions from the
7570 C source file extension, file given by ``-o'' option.
7571 (compute_base_names): Update.
7572 (output_files): Update.
7573
7574 2001-08-01 Robert Anisko <anisko_r@epita.fr>
7575
7576 * doc/bison.texi: Document @$.
7577 (Locations): New section.
7578
7579 2001-07-18 Akim Demaille <akim@epita.fr>
7580
7581 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
7582 * config/prev-version.txt, config/move-if-change: New.
7583 * Makefile.am: Adjust.
7584
7585 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
7586
7587 * src/bison.simple (yyparse): Suppress warning `comparaison
7588 between signed and unsigned'.
7589
7590 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
7591
7592 * src/getargs.h (raw_flag): Remove.
7593 * src/getargs.c: Die on `-r'/`--raw'.
7594 * src/lex.c (parse_percent_token): Die on `%raw'.
7595 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
7596 * tests/calc.at: Suppress test with option `--raw'.
7597
7598 2001-07-14 Akim Demaille <akim@epita.fr>
7599
7600 * config/: New.
7601 * configure.in: Require Autoconf 2.50.
7602 Update to gettext 0.10.38.
7603
7604 2001-03-16 Akim Demaille <akim@epita.fr>
7605
7606 * doc/bison.texinfo: ANSIfy the examples.
7607
7608 2001-03-16 Akim Demaille <akim@epita.fr>
7609
7610 * getargs.c (skeleton): New variable.
7611 (longopts): --skeleton is a new option.
7612 (shortopts, getargs): -S is a new option.
7613 * getargs.h: Declare skeleton.
7614 * output.c (output_parser): Use it.
7615
7616 2001-03-16 Akim Demaille <akim@epita.fr>
7617
7618 * m4/strerror_r.m4: New.
7619 * m4/error.m4: Run AC_FUNC_STRERROR_R.
7620 * lib/error.h, lib/error.c: Update.
7621
7622 2001-03-16 Akim Demaille <akim@epita.fr>
7623
7624 * src/getargs.c (longopts): Clean up.
7625
7626 2001-02-21 Akim Demaille <akim@epita.fr>
7627
7628 * src/reader.c (gensym): `gensym_count' is your own.
7629 Use a static buf to create the symbol name, as token_buffer is no
7630 longer a buffer.
7631
7632 2001-02-08 Akim Demaille <akim@epita.fr>
7633
7634 * src/conflicts.c (conflict_report): Be sure not to append to res
7635 between two calls, which could happen if both first sprintf were
7636 skipped, but not the first cp += strlen.
7637
7638 2001-02-08 Akim Demaille <akim@epita.fr>
7639
7640 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
7641 New, from fileutils 4.0.37.
7642 * configure.in: Require Autoconf 2.49c. I took some time before
7643 making this decision. This is the only way out for portability
7644 issues in Bison, it would mean way too much duplicate effort to
7645 import in Bison features implemented in 2.49c since 2.13.
7646 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
7647
7648 2001-02-02 Akim Demaille <akim@epita.fr>
7649
7650 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
7651 * lib/xalloc.h, lib/xmalloc.c: Update.
7652
7653 2001-01-19 Akim Demaille <akim@epita.fr>
7654
7655 Get rid of the ad hoc handling of token_buffer in the scanner: use
7656 the obstacks.
7657
7658 * src/lex.c (token_obstack): New.
7659 (init_lex): Initialize it. No longer call...
7660 (grow_token_buffer): this. Remove it.
7661 Adjust all the places which used it to use the obstack.
7662
7663 2001-01-19 Akim Demaille <akim@epita.fr>
7664
7665 * src/lex.h: Rename all the tokens:
7666 s/\bENDFILE\b/tok_eof/g;
7667 s/\bIDENTIFIER\b/tok_identifier/g;
7668 etc.
7669 Let them be enums, not #define, to ease debugging.
7670 Adjust all the code.
7671
7672 2001-01-18 Akim Demaille <akim@epita.fr>
7673
7674 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
7675 * src/lex.c (maxtoken, grow_token_buffer): Static.
7676
7677 2001-01-18 Akim Demaille <akim@epita.fr>
7678
7679 Since we now use obstacks, more % directives can be enabled.
7680
7681 * src/lex.c (percent_table): Also accept `%yacc',
7682 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
7683 `%debug'.
7684 Handle the actions for `%semantic_parser' and `%pure_parser' here,
7685 instead of returning a token.
7686 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
7687 * src/reader.c (read_declarations): Adjust.
7688 * src/files.c (open_files): Don't call `compute_base_names', don't
7689 compute `attrsfile' since they depend upon data which might be
7690 *in* the input file now.
7691 (output_files): Do it here.
7692 * src/output.c (output_headers): Document the fact that this patch
7693 introduces a guaranteed SEGV for semantic parsers.
7694 * doc/bison.texinfo: Document them.
7695 * tests/suite.at: Exercise these %options.
7696
7697 2000-12-20 Akim Demaille <akim@epita.fr>
7698
7699 Also handle the output file (--verbose) with obstacks.
7700
7701 * files.c (foutput): Remove.
7702 (output_obstack): New.
7703 Adjust all dependencies.
7704 * src/conflicts.c: Return a string.
7705 * src/system.h (obstack_grow_string): Rename as...
7706 (obstack_sgrow): this. Be ready to work with non literals.
7707 (obstack_fgrow4): New.
7708
7709 2000-12-20 Akim Demaille <akim@epita.fr>
7710
7711 * src/files.c (open_files): Fix the computation of short_base_name
7712 in the case of `-o foo.tab.c'.
7713
7714 2000-12-20 Akim Demaille <akim@epita.fr>
7715
7716 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
7717 (copy_dollar): Now that everything uses obstacks, get rid of the
7718 FILE * parameters.
7719
7720 2000-12-20 Akim Demaille <akim@epita.fr>
7721
7722 * src/files.c (open_files): Actually the `.output' file is based
7723 on the short_base_name, not base_name.
7724 * tests/suite.at (Checking output file names): Adjust.
7725
7726 2000-12-20 Akim Demaille <akim@epita.fr>
7727
7728 * src/bison.s1: Remove, we now use directly...
7729 * src/bison.simple: this.
7730 * src/Makefile.am: Use pkgdata instead of data.
7731
7732 2000-12-20 Akim Demaille <akim@epita.fr>
7733
7734 * src/files.c (guard_obstack): New.
7735 (open_files): Initialize it.
7736 (output_files): Dump it...
7737 * src/files.h: Export it.
7738 * src/reader.c (copy_guard): Use it.
7739
7740 2000-12-19 Akim Demaille <akim@epita.fr>
7741
7742 * src/files.c (outfile, defsfile, actfile): Removed as global
7743 vars.
7744 (open_files): Don't compute them.
7745 (output_files): Adjust.
7746 (base_name, short_base_name): Be global.
7747 Adjust dependencies.
7748
7749 2000-12-19 Akim Demaille <akim@epita.fr>
7750
7751 * src/files.c (strsuffix): New.
7752 (stringappend): Be just like strcat but allocate.
7753 (base_names): Eve out from open_files.
7754 Try to simplify the rather hairy computation of base_name and
7755 short_base_name.
7756 (open_files): Use it.
7757 * tests/suite.at (Checking output file names): New test.
7758
7759 2000-12-19 Akim Demaille <akim@epita.fr>
7760
7761 * src/system.h (obstack_grow_literal_string): Rename as...
7762 (obstack_grow_string): this.
7763 * src/output.c (output_parser): Recognize `%% actions' instead of
7764 `$'.
7765 * src/bison.s1: s/$/%% actions/.
7766 * src/bison.hairy: Likewise.
7767
7768 2000-12-19 Akim Demaille <akim@epita.fr>
7769
7770 * src/output.c (output_parser): Compute the `#line' lines when
7771 there are.
7772 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
7773 Suggested by Hans Aberg.
7774
7775 2000-12-19 Akim Demaille <akim@epita.fr>
7776
7777 Let the handling of the skeleton files be local to the procedures
7778 that use it.
7779
7780 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
7781 longer static.
7782 (fparser, open_extra_files): Remove.
7783 (open_files, output_files): Don't take care of fparser.
7784 * src/files.h: Adjust.
7785 * src/output.c (output_parser): Open and close the file to the
7786 skeleton.
7787 * src/reader.c (read_declarations): When %semantic_parser, open
7788 fguard.
7789
7790 2000-12-19 Akim Demaille <akim@epita.fr>
7791
7792 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
7793 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
7794
7795 2000-12-19 Akim Demaille <akim@epita.fr>
7796
7797 * src/files.c (open_files): Yipee! We no longer need all the code
7798 looking for `/tmp' since we have no tmp file.
7799
7800 2000-12-19 Akim Demaille <akim@epita.fr>
7801
7802 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
7803 New macros.
7804 * src/files.c (open_files): Less dependency on MSDOS etc.
7805
7806 2000-12-14 Akim Demaille <akim@epita.fr>
7807
7808 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
7809 Provide a default definition.
7810 Use it when executing the default @ action.
7811 * src/reader.c (reader_output_yylsp): No longer include
7812 `timestamp' and `text' in the default YYLTYPE.
7813
7814 2000-12-12 Akim Demaille <akim@epita.fr>
7815
7816 * src/reader.c (copy_definition, parse_union_decl, copy_action)
7817 (copy_guard): Quote the file names.
7818 Reported by Laurent Mascherpa.
7819
7820 2000-12-12 Akim Demaille <akim@epita.fr>
7821
7822 * src/output.c (output_headers, output_program, output): Be sure
7823 to escape special characters when outputting filenames.
7824 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
7825 (output_headers): Don't depend on them, Use ACTSTR.
7826
7827 2000-11-17 Akim Demaille <akim@epita.fr>
7828
7829 * lib/obstack.h: Formatting changes.
7830 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
7831 prevents type checking.
7832 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
7833 cast the value to (void *): assigning a `foo *' to a `void *'
7834 variable is valid.
7835 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
7836 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
7837 append characters.
7838
7839 2000-11-17 Akim Demaille <akim@epita.fr>
7840
7841 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
7842 as...
7843 (suite.m4, regression.m4, calc.m4): these.
7844 * tests/atgeneral.m4: Update from CVS Autoconf.
7845
7846 2000-11-17 Akim Demaille <akim@epita.fr>
7847
7848 * tests/regression.m4 (%union and --defines): New test,
7849 demonstrating a current bug in the obstack implementation.
7850
7851 2000-11-17 Akim Demaille <akim@epita.fr>
7852
7853 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
7854 macros.
7855 Use them to declare the variables which are global or local to
7856 `yyparse'.
7857
7858 2000-11-17 Akim Demaille <akim@epita.fr>
7859
7860 * acconfig.h: Remove, no longer used.
7861
7862 2000-11-07 Akim Demaille <akim@epita.fr>
7863
7864 * src: s/Copyright (C)/Copyright/g.
7865
7866 2000-11-07 Akim Demaille <akim@epita.fr>
7867
7868 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
7869 defining.
7870 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
7871
7872 2000-11-07 Akim Demaille <akim@epita.fr>
7873
7874 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
7875 Merge in a single CPP if/else.
7876
7877 2000-11-07 Akim Demaille <akim@epita.fr>
7878
7879 * src/output.c (output): Remove useless variables.
7880 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
7881 argument `data' for consistency with the prototypes.
7882 Qualify it `const'.
7883 (obstack_copy, obstack_copy0): Rename the second argument as
7884 `address' for consistency. Qualify it `const'.
7885 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
7886 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
7887 `const' their input argument (`data' or `address').
7888 Adjust the corresponding macros to include `const' in casts.
7889
7890 2000-11-03 Akim Demaille <akim@epita.fr>
7891
7892 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
7893 s/PFILE1/BISON_HAIRY/.
7894 Adjust dependencies.
7895
7896 2000-11-03 Akim Demaille <akim@epita.fr>
7897
7898 For some reason, this was not applied.
7899
7900 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
7901 `unlink': it's no longer used.
7902
7903 2000-11-03 Akim Demaille <akim@epita.fr>
7904
7905 * src/files.c (skeleton_find): New function, eved out of...
7906 (open_files, open_extra_files): here.
7907
7908 2000-11-03 Akim Demaille <akim@epita.fr>
7909
7910 Don't use `atexit'.
7911
7912 * src/files.c (obstack_save): New function.
7913 (done): Rename as...
7914 (output_files): this.
7915 Use `obstack_save'.
7916 * src/main.c (main): Don't use `atexit' to register `done', since
7917 it no longer has to remove tmp files, just call `output_files'
7918 when there are no errors.
7919
7920 2000-11-02 Akim Demaille <akim@epita.fr>
7921
7922 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
7923 `unlink': it's no longer used.
7924 * src/files.h: Formatting changes.
7925
7926 2000-11-02 Akim Demaille <akim@epita.fr>
7927
7928 Remove the last uses of mktemp and unlink/delete.
7929
7930 * src/files.c (fdefines, ftable): Removed.
7931 (defines_ostack, table_obstack): New.
7932 Adjust dependencies of the former into uses of the latter.
7933 * src/output.c (output_short_or_char_table, output_short_table):
7934 Convert to using obstacks.
7935 * src/reader.c (copy_comment2): Accept one FILE * and two
7936 obstacks.
7937 (output_token_defines, reader_output_yylsp): Use obstacks.
7938 * src/system.h (obstack_fgrow3): New.
7939
7940 2000-11-01 Akim Demaille <akim@epita.fr>
7941
7942 Change each use of `fattrs' into a use of `attrs_obstack'.
7943
7944 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
7945 * src/files.c (fattrs): Remove.
7946 (attrs_obstack): New.
7947 Adjust all dependencies.
7948 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
7949
7950 2000-11-01 Akim Demaille <akim@epita.fr>
7951
7952 Introduce obstacks.
7953 Change each use of `faction' into a use of `action_obstack'.
7954
7955 * lib/obstack.h, lib/obstack.c: New files.
7956 * src/files.c (faction): Remove.
7957 (action_obstack): New.
7958 Adjust all dependencies.
7959
7960 2000-10-20 Akim Demaille <akim@epita.fr>
7961
7962 * lib/quote.h (PARAMS): New macro. Use it.
7963
7964 2000-10-16 Akim Demaille <akim@epita.fr>
7965
7966 * src/output.c (output_short_or_char_table): New function.
7967 (output_short_table, output_token_translations): Use it.
7968 (goto_actions): Use output_short_table.
7969
7970 2000-10-16 Akim Demaille <akim@epita.fr>
7971
7972 * src/symtab.c (bucket_new): New function.
7973 (getsym): Use it.
7974
7975 * src/output.c (output_short_table): New argument to display the
7976 comment associated with the table.
7977 Adjust dependencies.
7978 (output_gram): Use it.
7979 (output_rule_data): Nicer output layout for YYTNAME.
7980
7981 2000-10-16 Akim Demaille <akim@epita.fr>
7982
7983 * src/lex.c (read_typename): New function.
7984 (lex): Use it.
7985 * src/reader.c (copy_dollar): Likewise.
7986
7987 2000-10-16 Akim Demaille <akim@epita.fr>
7988
7989 * src/reader.c (copy_comment2): Expect the input stream to be on
7990 the `/' which is suspected to open a comment, instead of being
7991 called after `//' or `/*' was read.
7992 (copy_comment, copy_definition, parse_union_decl, copy_action)
7993 (copy_guard): Adjust.
7994
7995 2000-10-16 Akim Demaille <akim@epita.fr>
7996
7997 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
7998 `read_signed_integer'.
7999
8000 2000-10-16 Akim Demaille <akim@epita.fr>
8001
8002 * src/reader.c (copy_dollar): New function.
8003 (copy_guard, copy_action): Use it.
8004
8005 2000-10-16 Akim Demaille <akim@epita.fr>
8006
8007 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
8008 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
8009 New files, from Fileutils 4.0.27.
8010 * src/main.c (printable_version): Remove.
8011 * src/lex.c, src/reader.c: Use `quote'.
8012
8013 2000-10-04 Akim Demaille <akim@epita.fr>
8014
8015 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
8016
8017 2000-10-04 Akim Demaille <akim@epita.fr>
8018
8019 * doc/bison.texinfo: Various typos spotted by Neil Booth.
8020
8021 2000-10-04 Akim Demaille <akim@epita.fr>
8022
8023 When a literal string is used to define two different tokens,
8024 `bison -v' segfaults.
8025 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
8026
8027 * tests/regression.m4: New file.
8028 Include the core of the sample provided by Piotr Gackiewicz.
8029 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
8030 properly.
8031
8032 2000-10-04 Akim Demaille <akim@epita.fr>
8033
8034 * src/reader.c (parse_expect_decl): Keep `count' within the size
8035 of `buffer'.
8036 From Neil Booth.
8037
8038 2000-10-02 Paul Eggert <eggert@twinsun.com>
8039
8040 * bison.s1 (yyparse): Assign the default value
8041 unconditionally, to avoid a GCC warning and make the parser a
8042 tad smaller.
8043
8044 2000-10-02 Akim Demaille <akim@epita.fr>
8045
8046 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
8047 options.
8048
8049 2000-10-02 Akim Demaille <akim@epita.fr>
8050
8051 * src/derives.c, src/print.c, src/reduce.c: To ease the
8052 translation, move some `\n' out of the translated strings.
8053
8054 2000-10-02 Akim Demaille <akim@epita.fr>
8055
8056 The location tracking mechanism is precious for parse error
8057 messages. Nevertheless, it is enabled only when `@n' is used in
8058 the grammar, which is a different issue (you can use it in error
8059 message, but not in the grammar per se). Therefore, there should
8060 be another means to enable it.
8061
8062 * src/getargs.c (getargs): Support `--locations'.
8063 (usage): Report it.
8064 * src/getargs.h (locationsflag): Export it.
8065 * src/lex.c (percent_table): Support `%locations'.
8066 * src/reader.c (yylsp_needed): Remove this variable, now replaced
8067 with `locationsflag'.
8068 * doc/bison.texinfo: Document `--locations' and `%locations'.
8069 Sort the options.
8070 * tests/calc.m4: Test it.
8071
8072 For regularity of the names, replace each
8073 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
8074 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
8075 In addition replace each `flag' with `_flag'.
8076
8077 2000-10-02 Akim Demaille <akim@epita.fr>
8078
8079 Also test parse error messages, including with YYERROR_VERBOSE.
8080
8081 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
8082 associative).
8083 Use it to check the computations.
8084 Use it to check `nonassoc' is honored.
8085 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
8086 `--yyerror-verbose'.
8087 (_AT_CHECK_CALC): Adjust to this option.
8088 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
8089
8090 2000-10-02 Akim Demaille <akim@epita.fr>
8091
8092 Test also `--verbose', `--defines' and `--name-prefix'. Testing
8093 the latter demonstrates a flaw in the handling of non debugging
8094 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
8095 was used in order to simplify:
8096
8097 #if YYDEBUG
8098 if (yydebug)
8099 {
8100 ...
8101 }
8102 #endif
8103
8104 into
8105
8106 if (yydebug)
8107 {
8108 ...
8109 }
8110
8111 unfortunately this leads to a CPP conflict when
8112 `--name-prefix=foo' is used since it produces `#define yydebug
8113 foodebug'.
8114
8115 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
8116 (YYDPRINTF): New macro.
8117 Spread its use.
8118 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
8119 the bison options.
8120 Also test `--verbose', `--defines' and `--name-prefix'.
8121
8122 2000-10-02 Akim Demaille <akim@epita.fr>
8123
8124 Improve the readability of the produced parsers.
8125
8126 * src/bison.s1: Formatting changes.
8127 Improve the comment related to the `$' mark.
8128 (yydefault): Don't fall through to `yyresume': `goto' there.
8129 * src/output.c (output_parser): When the `$' is met, skip the end
8130 of its line.
8131 New variable, `number_of_dollar_signs', to check there's exactly
8132 one `$' in the parser skeleton.
8133
8134 2000-10-02 Akim Demaille <akim@epita.fr>
8135
8136 * lib/xstrdup.c: New file, from the fileutils.
8137 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
8138 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
8139 instead of strlen + xmalloc + strcpy.
8140 * src/symtab.c (copys): Remove, use xstrdup instead.
8141
8142 2000-10-02 Akim Demaille <akim@epita.fr>
8143
8144 * src/gram.h (associativity): New enum type which replaces the
8145 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
8146 `right_assoc', `left_assoc' and `non_assoc'.
8147 Adjust all dependencies.
8148 * src/reader.c: Formatting changes.
8149 (LTYPESTR): Don't define it, use it as a literal in
8150 `reader_output_yylsp'.
8151 * src/symtab.h (symbol_class): New enum type which replaces the
8152 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
8153 `sunknown', `stoken and `snterm'.
8154
8155 2000-10-02 Akim Demaille <akim@epita.fr>
8156
8157 * src/getargs.c (fixed_outfiles): Rename as...
8158 (yaccflag): for consistency and accuracy.
8159 Adjust dependencies.
8160
8161 2000-10-02 Akim Demaille <akim@epita.fr>
8162
8163 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
8164 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
8165 difficult and introduced a lot of core dump. It turns out that
8166 Bison used an implementation of `xmalloc' based on `calloc', and
8167 at various places it does depend upon the initialization to 0. I
8168 have not tried to isolate the pertinent places, and all the former
8169 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
8170 someone should address this issue.
8171
8172 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
8173 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
8174 files.
8175 Adjust dependencies.
8176 * src/warshall.h: New file.
8177 Propagate.
8178
8179 2000-10-02 Akim Demaille <akim@epita.fr>
8180
8181 Various anti-`extern in *.c' changes.
8182
8183 * src/system.h: Include `assert.h'.
8184
8185 2000-10-02 Akim Demaille <akim@epita.fr>
8186
8187 * src/state.h (nstates, final_state, first_state, first_shift)
8188 (first_reduction): Move their exportation from here...
8189 * src/LR0.h: to here.
8190 Adjust dependencies.
8191 * src/getargs.c (statisticsflag): New variable.
8192 Add support for `--statistics'.
8193 Adjust dependencies.
8194
8195 Remove a lot of now useless `extern' statements in most files.
8196
8197 2000-10-02 Akim Demaille <akim@epita.fr>
8198
8199 * src/LR0.h: New file.
8200 Propagate its use.
8201
8202 2000-10-02 Akim Demaille <akim@epita.fr>
8203
8204 * src/print.h: New file.
8205 Propagate its use.
8206 * src/print.c: Formatting and ordering changes.
8207 (verbose, terse): Replace with...
8208 (print_results): this new function.
8209 Adjust dependencies.
8210
8211 2000-10-02 Akim Demaille <akim@epita.fr>
8212
8213 * src/conflicts.c (conflict_report): New function.
8214 (conflict_log, verbose_conflict_log): Replace with...
8215 (print_conflicts): this function.
8216 Adjust dependencies.
8217 * src/conflicts.h: New file.
8218 Propagate its inclusion.
8219
8220 2000-10-02 Akim Demaille <akim@epita.fr>
8221
8222 * src/nullable.h: New file.
8223 Propagate its inclusion.
8224 * src/nullable.c: Formatting changes.
8225
8226 2000-10-02 Akim Demaille <akim@epita.fr>
8227
8228 * src/reduce.h: New file.
8229 Propagate its inclusion.
8230 * src/reduce.c: Topological sort and other formatting changes.
8231 (bool, TRUE, FALSE): Move their definition to...
8232 * src/system.h: here.
8233
8234 2000-10-02 Akim Demaille <akim@epita.fr>
8235
8236 * src/files.c: Formatting changes.
8237 (tryopen, tryclose, openfiles): Rename as...
8238 (xfopen, xfclose, open_files): this.
8239 (stringappend): static.
8240 * src/files.h: Complete the list of exported symbols.
8241 Propagate its use.
8242
8243 2000-10-02 Akim Demaille <akim@epita.fr>
8244
8245 * src/reader.h: New file.
8246 Propagate its use instead of tedious list of `extern' and
8247 prototypes.
8248 * src/reader.c: Formatting changes, topological sort,
8249 s/register//.
8250
8251 2000-10-02 Akim Demaille <akim@epita.fr>
8252
8253 * src/lex.h: Prototype `lex.c' exported functions.
8254 * src/reader.c: Adjust.
8255 * src/lex.c: Formatting changes.
8256 (safegetc): Rename as...
8257 (xgetc): this.
8258
8259 2000-10-02 Akim Demaille <akim@epita.fr>
8260
8261 * src/lalr.h: New file.
8262 Propagate its inclusion instead of prototypes and `extern'.
8263 * src/lalr.c: Formatting changes, topological sorting etc.
8264
8265 2000-10-02 Akim Demaille <akim@epita.fr>
8266
8267 * src/output.c (token_actions): Introduce a temporary array,
8268 YYDEFACT, that makes it possible for this function to use
8269 output_short_table.
8270
8271 2000-10-02 Akim Demaille <akim@epita.fr>
8272
8273 `user_toknums' is output as a `short[]' in `output.c', while it is
8274 defined as a `int[]' in `reader.c'. For consistency with the
8275 other output tables, `user_toknums' is now defined as a table of
8276 shorts.
8277
8278 * src/reader.c (user_toknums): Be a short table instead of an int
8279 table.
8280 Adjust dependencies.
8281
8282 Factor the short table outputs.
8283
8284 * src/output.c (output_short_table): New function.
8285 * src/output.c (output_gram, output_stos, output_rule_data)
8286 (output_base, output_table, output_check): Use it.
8287
8288 2000-10-02 Akim Demaille <akim@epita.fr>
8289
8290 * src/output.c (output): Topological sort of the functions, in
8291 order to get rid of the `static' prototypes.
8292 No longer use `register'.
8293 * src/output.h: New file.
8294 Propagate its inclusion in files explicitly prototyping functions
8295 from output.c.
8296
8297 2000-09-21 Akim Demaille <akim@epita.fr>
8298
8299 * src/atgeneral.m4: Update from Autoconf.
8300
8301 2000-09-21 Akim Demaille <akim@epita.fr>
8302
8303 * src/closure.h: New file.
8304 * src/closure.c: Formatting changes, topological sort over the
8305 functions, use of closure.h.
8306 (initialize_closure, finalize_closure): Rename as...
8307 (new_closure, free_closure): these. Adjust dependencies.
8308 * src/LR0.c: Formatting changes, topological sort, use of
8309 cloture.h.
8310 (initialize_states): Rename as...
8311 (new_states): this.
8312 * src/Makefile.am (noinst_HEADERS): Adjust.
8313
8314 2000-09-20 Akim Demaille <akim@epita.fr>
8315
8316 * src/acconfig.h: Don't protect config.h against multiple
8317 inclusion.
8318 Don't define PARAMS.
8319 * src/system.h: Define PARAMS.
8320 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
8321 purpose of config.h. system.h must not try to fix wrong
8322 definitions in config.h.
8323
8324 2000-09-20 Akim Demaille <akim@epita.fr>
8325
8326 * src/derives.h: New file.
8327 * src/main.c, src/derives.h: Use it.
8328 Formatting changes.
8329 * src/Makefile.am (noinst_HEADERS): Adjust.
8330
8331 2000-09-20 Akim Demaille <akim@epita.fr>
8332
8333 * tests/atgeneral.m4: Update from Autoconf.
8334 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
8335 (AT_CHECK_CALC): New macros.
8336 Use these macros to test bison with options `', `--raw',
8337 `--debug', `--yacc', `--yacc --debug'.
8338
8339 2000-09-19 Akim Demaille <akim@epita.fr>
8340
8341 * src/output.c: Formatting changes.
8342 * src/machine.h: Remove, leaving its contents in...
8343 * src/system.h: here.
8344 Include stdio.h.
8345 Adjust all dependencies on stdio.h and machine.h.
8346 * src/getargs.h: New file.
8347 Let all `extern' declarations about getargs.c be replaced with
8348 inclusion of `getargs.h'.
8349 * src/Makefile.am (noinst_HEADERS): Adjust.
8350
8351 * tests/calc.m4 (yyin): Be initialized in main, not on the global
8352 scope.
8353 (yyerror): Returns void, not int.
8354 * doc/bison.texinfo: Formatting changes.
8355
8356 2000-09-19 Akim Demaille <akim@epita.fr>
8357
8358 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
8359 portable.
8360
8361 2000-09-18 Akim Demaille <akim@epita.fr>
8362
8363 * configure.in: Append WARNING_CFLAGS to CFLAGS.
8364 * src/Makefile.am (INCLUDES): Don't.
8365 Be ready to fetch headers in lib/.
8366
8367 2000-09-18 Akim Demaille <akim@epita.fr>
8368
8369 * doc/bison.texinfo: Update the copyright.
8370 ANSIfy and GNUify the examples.
8371 Remove the old menu.
8372
8373 2000-09-18 Akim Demaille <akim@epita.fr>
8374
8375 First set of tests: use the `calc' example from the documentation.
8376
8377 * src/bison.s1 (yyparse): Condition the code using `yytname' which
8378 is defined only when YYDEBUG is.
8379 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
8380 * src/files.c (tryopen, tryclose): Formatting changes.
8381 Move to the top and be static.
8382 * src/reader.c (read_signed_integer): Likewise.
8383 * tests/calc.m4: New file.
8384 * Makefile.am, suite.m4: Adjust.
8385 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
8386
8387 2000-09-18 Akim Demaille <akim@epita.fr>
8388
8389 Add support for an Autotest test suite for Bison.
8390
8391 * m4/m4.m4, m4/atconfig.m4: New files.
8392 * m4/Makefile.am (EXTRA_DIST): Adjust.
8393 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
8394 files.
8395 * src/getargs.c: Display a more standard --version message.
8396 * src/reader.c (reader): Formatting changes.
8397 No longer depend upon VERSION_STRING.
8398 * configure.in: No longer use `dnl'.
8399 Set up the test suite and the new directory `tests/.
8400 (VERSION_STRING): Remove.
8401
8402 2000-04-14 Akim Demaille <akim@epita.fr>
8403
8404 * src/reader.c (copy_comment2): New function, same as former
8405 `copy_comment', but outputs into two FILE *.
8406 (copy_comment): Use it.
8407 (parse_union_decl): Use it.
8408 (get_type, parse_start_decl): Use the same `invalid' message.
8409 (parse_start_decl, parse_union_decl): Use the same `multiple'
8410 message.
8411 (parse_union_decl, copy_guard, copy_action): Use the same
8412 `unmatched' message.
8413 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
8414
8415 2000-03-31 Akim Demaille <akim@epita.fr>
8416
8417 * src/files.c (tryopen, tryclose): Move to the top.
8418 Be static.
8419
8420 2000-03-31 Akim Demaille <akim@epita.fr>
8421
8422 * src/main.c (main): Don't call `done', exit does it.
8423
8424 2000-03-31 Akim Demaille <akim@epita.fr>
8425
8426 * allocate.c: s/return (foo)/return foo/.
8427 * lalr.c: Likewise.
8428 * LR0.c: Likewise.
8429 * output.c: Likewise.
8430 * reader.c: Likewise.
8431 * symtab.c: Likewise.
8432 * vmsgetargs.c: Likewise.
8433
8434 2000-03-31 Akim Demaille <akim@epita.fr>
8435
8436 Clean up the error reporting functions.
8437
8438 * src/report.c: New file.
8439 * src/report.h: Likewise.
8440 * src/Makefile.am: Adjust.
8441 * m4/error.m4: New file.
8442 * m4/Makefile.am: Adjust.
8443 * configure.in (jm_PREREQ_ERROR): Call it.
8444 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
8445 Remove.
8446 (fatal, fatals): Remove. All callers use complain.c::fatal.
8447 (warn, warni, warns, warnss, warnss): Remove. All callers use
8448 complain.c::complain.
8449 (toomany): Remove, use fatal instead.
8450 * src/files.c (done): No argument, use complain_message_count.
8451 * src/main.c (main): Register `done' to `atexit'.
8452
8453 * src/getargs.c (usage): More `fputs', less `fprintf'.
8454
8455 2000-03-28 Akim Demaille <akim@epita.fr>
8456
8457 * lib/: New directory.
8458 * Makefile.am (SUBDIRS): Adjust.
8459 * configure.in: Adjust.
8460 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
8461 useless.
8462 * src/alloca.c: Moved to lib/.
8463 * src/getopt.c: Likewise.
8464 * src/getopt1.c: Likewise.
8465 * src/getopt.h: Likewise.
8466 * src/ansi2knr.c: Likewise.
8467 * src/ansi2knr.1: Likewise.
8468 * src/Makefile.am: Adjust.
8469 * lib/Makefile.am: New file.
8470
8471 2000-03-28 Akim Demaille <akim@epita.fr>
8472
8473 * src/getargs.c (usage): Refresh the help message.
8474
8475 2000-03-17 Akim Demaille <akim@epita.fr>
8476
8477 * src/getopt1.c: Updated from textutils 2.0e
8478 * src/getopt.c: Likewise.
8479 * src/getopt.h: Likewise.
8480
8481 2000-03-17 Akim Demaille <akim@epita.fr>
8482
8483 * src/Makefile.am (bison.simple): Fix the awk program: quote only
8484 the file name, not the whole `#line LINE FILE'.
8485
8486 2000-03-17 Akim Demaille <akim@epita.fr>
8487
8488 On syntax errors, report the token on which we choked.
8489
8490 * src/bison.s1 (yyparse): In the label yyerrlab, when
8491 YYERROR_VERBOSE, add yychar in msg.
8492
8493 2000-03-17 Akim Demaille <akim@epita.fr>
8494
8495 * src/reader.c (copy_at): New function.
8496 (copy_guard): Use it.
8497 (copy_action): Use it.
8498
8499 2000-03-17 Akim Demaille <akim@epita.fr>
8500
8501 Be kind to translators, save some useless translations.
8502
8503 * src/main.c (banner): New function.
8504 (fatal_banner): Use it.
8505 (warn_banner): Use it.
8506
8507 2000-03-17 Akim Demaille <akim@epita.fr>
8508
8509 * src/reader.c (copy_definition): Use copy_string and
8510 copy_comment. Removed now unused `match', `ended',
8511 `cplus_comment'.
8512 (copy_comment, copy_string): Moved, to be visible from
8513 copy_definition.
8514
8515 2000-03-17 Akim Demaille <akim@epita.fr>
8516
8517 * src/reader.c (copy_string): Declare `static inline'. No
8518 problems with inline, since it is checked by configure.
8519 (copy_comment): Likewise.
8520
8521 2000-03-17 Akim Demaille <akim@epita.fr>
8522
8523 * src/reader.c (packsymbols): Formatting changes.
8524
8525 2000-03-17 Akim Demaille <akim@epita.fr>
8526
8527 * src/reader.c (copy_comment): New function, factored out from:
8528 (copy_action): Use it. Removed now unused `match', `ended',
8529 `cplus_comment'.
8530 (copy_guard): Likewise.
8531
8532 2000-03-17 Akim Demaille <akim@epita.fr>
8533
8534 * src/reader.c (copy_string): New function, factored out from:
8535 (copy_action): Use it.
8536 (copy_guard): Likewise.
8537
8538 2000-03-17 Akim Demaille <akim@epita.fr>
8539
8540 Change the handling of @s so that they behave exactly like $s.
8541 There is now a pseudo variable @$ (readble and writable), location
8542 of the lhs of the rule (by default ranging from the location of
8543 the first symbol of the rhs, to the location of the last symbol,
8544 or, if the rhs is empty, YYLLOC).
8545
8546 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
8547 yyval.
8548 (yyparse): When providing a default semantic action, provide a
8549 default location action.
8550 (after the $): No longer change `*YYLSP', just stack YYLOC the
8551 same way you stack YYVAL.
8552 * src/reader.c (read_declarations): Use warns.
8553 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
8554 (copy_action, case '@'): Likewise.
8555 Use a standard error message, to save useless work from
8556 translators.
8557
8558 2000-03-17 Akim Demaille <akim@epita.fr>
8559
8560 * src/bison.s1: Formatting and cosmetics changes.
8561 * src/reader.c: Likewise.
8562 Update the Copyright notice.
8563
8564 2000-03-17 Akim Demaille <akim@epita.fr>
8565
8566 * src/bison.s1 (#line): All set to `#line' only, since the
8567 Makefile now handles them.
8568
8569 2000-03-16 Akim Demaille <akim@epita.fr>
8570
8571 * src/output.c (output_rule_data): Output the documentation of
8572 some of the tables.
8573 (Copyright notice): Update.
8574 Formatting changes.
8575
8576 2000-03-16 Akim Demaille <akim@epita.fr>
8577
8578 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
8579 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
8580 One `#if YYDEBUG' remains, since it uses variables which are
8581 defined only if `YYDEBUG != 0'.
8582
8583 2000-03-16 Akim Demaille <akim@epita.fr>
8584
8585 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
8586 and related variables so that the similarities are highlighted.
8587
8588 2000-03-16 Akim Demaille <akim@epita.fr>
8589
8590 * src/bison.s1: Properly indent CPP directives.
8591
8592 2000-03-16 Akim Demaille <akim@epita.fr>
8593
8594 * src/bison.s1: Properly indent the `alloca' CPP section.
8595
8596 2000-03-16 Akim Demaille <akim@epita.fr>
8597
8598 Do not hard code values of directories in `configure.in'.
8599 Update the `configure' tool chain.
8600
8601 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
8602 src/makefile.am.
8603 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
8604 (AC_OUTPUT): Add m4/Makefile.
8605 Bump to bison 1.28a, 1.29 has never been released.
8606 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
8607 handled via src/Makefile.am.
8608 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
8609 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
8610 autoheader.
8611 * Makefile.am (SUBDIRS): Add m4.
8612 (ACLOCAL_AM_FLAGS): New variable.
8613 (AUTOMAKE_OPTIONS): Add check-news.
8614 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
8615 the proper line number and file name.
8616 (DEFS): Propagate the location of bison library files and of the
8617 locale files.
8618 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
8619 builddir.
8620 * acinclude.m4: Remove, replaced by the directory m4.
8621 * m4/Makefile.am (EXTRA_DIST): New variable.
8622 * m4/gettext.m4: New file, from the fileutils.
8623 * m4/lcmessage.m4: Likewise
8624 * m4/progtest.m4: Likewise.
8625 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
8626
8627 2000-03-10 Akim Demaille <akim@epita.fr>
8628
8629 * src/closure.c:
8630 Formatting changes of various comments.
8631 Respect the GNU coding standards at various places.
8632 Don't use `_()' when no translation is needed.
8633
8634 1999-12-13 Jesse Thilo <jthilo@gnu.org>
8635
8636 * src/files.c:
8637 OS/2 honors TMPDIR environment variable.
8638
8639 1999-12-13 Jesse Thilo <jthilo@gnu.org>
8640
8641 * doc/bison.texinfo: Tweaked spelling and grammar.
8642 Updated ISBN.
8643 Removed reference to price of printed copy.
8644 Mention BISON_SIMPLE and BISON_HAIRY.
8645
8646 1999-12-13 Jesse Thilo <jthilo@gnu.org>
8647
8648 * configure.in, NEWS:
8649 Bison 1.29 released.
8650
8651 1999-10-27 Jesse Thilo <jthilo@gnu.org>
8652
8653 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
8654 Added reference card.
8655
8656 1999-07-26 Jesse Thilo <jthilo@gnu.org>
8657
8658 * po/ru.po: Added Russian translation.
8659
8660 1999-07-26 Jesse Thilo <jthilo@gnu.org>
8661
8662 * configure.in: Added Russian translation.
8663
8664 1999-07-06 Jesse Thilo <jthilo@gnu.org>
8665
8666 * configure.in, NEWS, README:
8667 Released version 1.28.
8668
8669 1999-06-14 Jesse Thilo <jthilo@gnu.org>
8670
8671 * src/system.h:
8672 Squashed redefinition warning on some systems.
8673
8674 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
8675 Have configure build version string instead of relying on ANSI string
8676 concatentation.
8677
8678 1999-06-14 Jesse Thilo <jthilo@gnu.org>
8679
8680 * po/POTFILES.in: Got rid of version.c.
8681
8682 1999-06-14 Jesse Thilo <jthilo@gnu.org>
8683
8684 * acconfig.h, configure.in:
8685 Have configure build version string instead of relying on ANSI string
8686 concatentation.
8687
8688 1999-06-08 Jesse Thilo <jthilo@gnu.org>
8689
8690 * doc/bison.1:
8691 Dropped mention of `+' for long-named options.
8692
8693 1999-05-30 Jesse Thilo <jthilo@gnu.org>
8694
8695 * src/files.c: Added <unistd.h> for unlink().
8696
8697 * src/Makefile.am, src/system.h:
8698 I18n fixes.
8699
8700 1999-05-30 Jesse Thilo <jthilo@gnu.org>
8701
8702 * README: Added a FAQ list.
8703
8704 * configure.in, acconfig.h:
8705 I18n fixes.
8706
8707 1999-05-30 Jesse Thilo <jthilo@gnu.org>
8708
8709 * doc/FAQ, doc/Makefile.am:
8710 Added a FAQ list.
8711
8712 1999-05-19 Jesse Thilo <jthilo@gnu.org>
8713
8714 * src/alloc.h, src/symtab.h, src/version.c:
8715 Protected inclusion of "config.h" with HAVE_CONFIG_H.
8716
8717 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8718
8719 * src/.cvsignore, src/Makefile.am:
8720 Reorganized: sources in `src', documentation in `doc'.
8721
8722 * src/lex.c (literalchar):
8723 fixed the code for escaping double quotes (thanks
8724 Jonathan Czisny.)
8725
8726 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8727
8728 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
8729 Adjusted paths to reflect directory reorganization.
8730
8731 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8732
8733 * doc/.cvsignore, doc/Makefile.am:
8734 Reorganized: sources in `src', documentation in `doc'.
8735
8736 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8737
8738 * configure.in:
8739 Updated AC_INIT file to reflect directory reorganization.
8740
8741 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
8742 Reorganized: sources in `src', documentation in `doc'.
8743
8744 1999-04-13 Jesse Thilo <jthilo@gnu.org>
8745
8746 * src/allocate.c:
8747 Don't declare calloc() and realloc() if not necessary.
8748
8749 1999-04-13 Jesse Thilo <jthilo@gnu.org>
8750
8751 * configure.in, acconfig.h, acinclude.m4:
8752 Don't declare calloc() and realloc() if not necessary.
8753
8754 1999-03-23 Jesse Thilo <jthilo@gnu.org>
8755
8756 * po/.cvsignore: Added i18n support.
8757
8758 1999-03-23 Jesse Thilo <jthilo@gnu.org>
8759
8760 * acconfig.h, configure.in, Makefile.am:
8761 Added i18n support.
8762
8763 1999-03-22 Jesse Thilo <jthilo@gnu.org>
8764
8765 * src/bison.s1: Fixed #line numbers.
8766
8767 1999-03-15 Jesse Thilo <jthilo@gnu.org>
8768
8769 * po/es.po, po/fr.po, po/nl.po, po/de.po:
8770 Added PO files from Translation Project.
8771
8772 1999-03-03 Jesse Thilo <jthilo@gnu.org>
8773
8774 * Makefile.am:
8775 Added support for non-ANSI compilers (ansi2knr).
8776
8777 1999-02-16 Jesse Thilo <jthilo@gnu.org>
8778
8779 * configure.in: Bumped version number to 1.27.
8780
8781 * Makefile.am:
8782 Added `bison.simple' to list of files removed by `make distclean'.
8783
8784 1999-02-12 Jesse Thilo <jthilo@gnu.org>
8785
8786 * src/files.c, src/files.h:
8787 Defined locations of parser files in config.h instead of Makefile.
8788
8789 1999-02-12 Jesse Thilo <jthilo@gnu.org>
8790
8791 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
8792 Defined locations of parser files in config.h instead of Makefile.
8793
8794 1999-02-09 Jesse Thilo <jthilo@gnu.org>
8795
8796 * Makefile.am:
8797 Removed inappropriate use of $< macro.
8798
8799 1999-02-05 Jesse Thilo <jthilo@gnu.org>
8800
8801 * po/Makefile.in.in, po/POTFILES.in:
8802 Add `po' directory skeleton.
8803
8804 1999-01-27 Jesse Thilo <jthilo@gnu.org>
8805
8806 * README: Document help-bison list.
8807
8808 * configure.in: Add check for mkstemp().
8809
8810 1999-01-20 Jesse Thilo <jthilo@gnu.org>
8811
8812 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
8813 Hush a few compiler warnings.
8814
8815 * src/files.c:
8816 Add tryclose(), which verifies that fclose was successful.
8817 Hush a couple of compiler warnings.
8818
8819 1999-01-20 Jesse Thilo <jthilo@gnu.org>
8820
8821 * Makefile.am, OChangeLog:
8822 ChangeLog is now automatically generated. Include the old version as
8823 OChangeLog.
8824
8825 1999-01-14 Jesse Thilo <jthilo@gnu.org>
8826
8827 * 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:
8828 Update FSF address.
8829
8830 1999-01-14 Jesse Thilo <jthilo@gnu.org>
8831
8832 * doc/bison.texinfo: Fix formatting glitch.
8833
8834 * doc/bison.texinfo: Update FSF address.
8835
8836 1999-01-14 Jesse Thilo <jthilo@gnu.org>
8837
8838 * acconfig.h: Update FSF address.
8839
8840 1999-01-08 Jesse Thilo <jthilo@gnu.org>
8841
8842 * src/system.h:
8843 Don't define PACKAGE here, since config.h defines it.
8844
8845 1998-12-30 Jesse Thilo <jthilo@gnu.org>
8846
8847 * src/reader.c: Update copyright date.
8848
8849 * src/main.c:
8850 Ditch sprintf to statically-sized buffers in fatal/warn functions in
8851 favor of output directly to stderr (avoids buffer overruns).
8852
8853 * src/reader.c: Some checks for premature EOF.
8854
8855 * 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:
8856 Use prototypes if the compiler understands them.
8857
8858 * src/files.c: Honor TMPDIR on Unix hosts.
8859 Use prototypes if the compiler understands them.
8860
8861 * src/reader.c:
8862 Fix a couple of buffer overrun bugs.
8863 Use prototypes if the compiler understands them.
8864
8865 * src/system.h: Include unistd.h and ctype.h.
8866 Use #ifdef instead of #if for NLS symbols.
8867
8868 1998-12-30 Jesse Thilo <jthilo@gnu.org>
8869
8870 * doc/bison.texinfo:
8871 Delete comment "consider using @set for edition number, etc..." since
8872 we now are doing so.
8873
8874 1998-12-30 Jesse Thilo <jthilo@gnu.org>
8875
8876 * configure.in:
8877 Use prototypes if the compiler understands them.
8878
8879 * NEWS: Document 1.26 highlights.
8880
8881 * Makefile.am: Require Automake 1.3 or later.
8882
8883 * acconfig.h:
8884 Use prototypes if the compiler understands them.
8885
8886 1998-12-29 Jesse Thilo <jthilo@gnu.org>
8887
8888 * src/version.c:
8889 Use VERSION symbol from automake for version number.
8890
8891 1998-12-29 Jesse Thilo <jthilo@gnu.org>
8892
8893 * acconfig.h, configure.in, version.cin:
8894 Use VERSION symbol from automake for version number.
8895
8896 1998-11-28 Jesse Thilo <jthilo@gnu.org>
8897
8898 * Makefile.am:
8899 Distribute original version of simple parser (bison.s1), not built
8900 version (bison.simple).
8901
8902 1998-11-28 Jesse Thilo <jthilo@gnu.org>
8903
8904 * doc/bison.texinfo: Add info dir entry.
8905
8906 * doc/bison.texinfo:
8907 Let automake put version number into documentation.
8908
8909 1998-11-26 Jesse Thilo <jthilo@gnu.org>
8910
8911 * src/bison.cld, src/build.com, src/vmshlp.mar:
8912 Add non-RCS files from /gd/gnu/bison.
8913
8914 1998-11-26 Jesse Thilo <jthilo@gnu.org>
8915
8916 * doc/bison.1:
8917 Document the BISON_HAIRY and BISON_SIMPLE variables.
8918
8919 1998-11-25 Jesse Thilo <jthilo@gnu.org>
8920
8921 * src/version.c: Build version.c automatically.
8922
8923 * src/reader.c:
8924 Fix token numbering (used to start at 258, not 257).
8925
8926 * src/system.h: Include config.h.
8927
8928 * src/getargs.c: Update bug report address.
8929
8930 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
8931 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
8932
8933 1998-11-25 Jesse Thilo <jthilo@gnu.org>
8934
8935 * Makefile.am:
8936 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
8937
8938 * configure.in, version.cin:
8939 Build version.c automatically.
8940
8941 * AUTHORS: Add AUTHORS file.
8942
8943 * README: Update bug report address.
8944
8945 * bison.simple:
8946 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
8947
8948 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
8949 Add automake stuff.
8950
8951 1998-11-25 Jesse Thilo <jthilo@gnu.org>
8952
8953 * doc/bison.texinfo: Clean up some formatting.
8954
8955 1998-05-05 Richard Stallman <rms@gnu.org>
8956
8957 * doc/bison.texinfo:
8958 Explain better why to make a pure parser.
8959
8960 1998-01-05 Richard Stallman <rms@gnu.org>
8961
8962 * src/files.c (openfiles):
8963 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
8964 find a temporary directory, if possible. Do not unlink files while
8965 they are open.
8966
8967 1997-08-25 Richard Stallman <rms@gnu.org>
8968
8969 * src/reader.c (stack_offset;):
8970 Change some warni to warns.
8971
8972 * src/lex.c (literalchar): Use warns, not warni.
8973
8974 1997-06-28 Richard Stallman <rms@gnu.org>
8975
8976 * src/bison.s1: Add a Bison version comment.
8977
8978 * src/main.c (fatal, warn, berror):
8979 Use program_name.
8980
8981 1997-06-28 Richard Stallman <rms@gnu.org>
8982
8983 * Makefile.in (bison_version): New variable.
8984 (dist): Use that variable.
8985 (bison.s1): Substitute the Bison version into bison.simple.
8986
8987 * bison.simple: Add a Bison version comment.
8988
8989 1997-06-18 Richard Stallman <rms@gnu.org>
8990
8991 * src/main.c (fatal, warn, berror):
8992 Make error messages standard.
8993 (toomany): Improve error message text.
8994
8995 * 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:
8996 new.h renamed to alloc.h.
8997
8998 1997-06-18 Richard Stallman <rms@gnu.org>
8999
9000 * Makefile.in: new.h renamed to alloc.h.
9001
9002 1997-05-24 Richard Stallman <rms@gnu.org>
9003
9004 * src/lex.c (literalchar):
9005 Fix the code for escaping \, " and '.
9006
9007 (lex): Avoid trouble when there are many chars
9008 to discard in a char literal with just several chars in it.
9009
9010 1997-05-17 Richard Stallman <rms@gnu.org>
9011
9012 * src/bison.s1:
9013 Use malloc, if using alloca is troublesome.
9014 (YYSTACK_USE_ALLOCA): New flag macro.
9015 Define it for some systems and compilers.
9016 (YYSTACK_ALLOC): New macro.
9017 (yyparse): Use YYSTACK_ALLOC to allocate stack.
9018 If it was malloc'd, free it.
9019
9020 1997-05-17 Richard Stallman <rms@gnu.org>
9021
9022 * bison.simple:
9023 Use malloc, if using alloca is troublesome.
9024 (YYSTACK_USE_ALLOCA): New flag macro.
9025 Define it for some systems and compilers.
9026 (YYSTACK_ALLOC): New macro.
9027 (yyparse): Use YYSTACK_ALLOC to allocate stack.
9028 If it was malloc'd, free it.
9029
9030 1997-04-23 Richard Stallman <rms@gnu.org>
9031
9032 * src/bison.s1:
9033 (alloca) [__hpux]: Always define as __builtin_alloca.
9034
9035 1997-04-23 Richard Stallman <rms@gnu.org>
9036
9037 * bison.simple:
9038 (alloca) [__hpux]: Always define as __builtin_alloca.
9039
9040 1997-04-22 Richard Stallman <rms@gnu.org>
9041
9042 * src/bison.s1:
9043 [__hpux]: Include alloca.h (right for HPUX 10)
9044 instead of declaring alloca (right for HPUX 9).
9045
9046 * src/bison.s1 (__yy_memcpy):
9047 Declare arg `count' as unsigned int.
9048 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
9049
9050 1997-04-22 Richard Stallman <rms@gnu.org>
9051
9052 * bison.simple:
9053 [__hpux]: Include alloca.h (right for HPUX 10)
9054 instead of declaring alloca (right for HPUX 9).
9055
9056 * bison.simple (__yy_memcpy):
9057 Declare arg `count' as unsigned int.
9058 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
9059
9060 1997-01-03 Richard Stallman <rms@gnu.org>
9061
9062 * src/allocate.c: [__STDC__ or _MSC_VER]:
9063 Declare calloc and realloc to return void *.
9064
9065 1997-01-02 Richard Stallman <rms@gnu.org>
9066
9067 * src/system.h:
9068 [_MSC_VER]: Include stdlib.h and process.h.
9069 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
9070
9071 * src/main.c (main): Return FAILURE as a value.
9072 (printable_version): Declare arg as int, not char.
9073
9074 1997-01-02 Richard Stallman <rms@gnu.org>
9075
9076 * Makefile.in (dist):
9077 Explicitly check for symlinks, and copy them.
9078
9079 1996-12-19 Richard Stallman <rms@gnu.org>
9080
9081 * src/files.c:
9082 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
9083
9084 1996-12-18 Paul Eggert <eggert@gnu.org>
9085
9086 * src/bison.s1 (yyparse):
9087 If __GNUC__ and YYPARSE_PARAM are both defined,
9088 declare yyparse to have a void * argument.
9089
9090 1996-12-18 Paul Eggert <eggert@gnu.org>
9091
9092 * bison.simple (yyparse):
9093 If __GNUC__ and YYPARSE_PARAM are both defined,
9094 declare yyparse to have a void * argument.
9095
9096 1996-12-17 Richard Stallman <rms@gnu.org>
9097
9098 * src/reduce.c (nbits): Add some casts.
9099
9100 1996-08-12 Richard Stallman <rms@gnu.org>
9101
9102 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
9103
9104 1996-08-12 Richard Stallman <rms@gnu.org>
9105
9106 * bison.simple: Test _MSDOS as well as _MSDOS_.
9107
9108 1996-07-31 Richard Stallman <rms@gnu.org>
9109
9110 * src/bison.s1:
9111 [__sun && __i386]: Include alloca.h.
9112
9113 1996-07-31 Richard Stallman <rms@gnu.org>
9114
9115 * bison.simple:
9116 [__sun && __i386]: Include alloca.h.
9117
9118 1996-07-30 Richard Stallman <rms@gnu.org>
9119
9120 * src/bison.s1: Comment change.
9121
9122 * src/bison.s1: Test _MSDOS_, not MSDOS.
9123
9124 1996-07-30 Richard Stallman <rms@gnu.org>
9125
9126 * bison.simple: Comment change.
9127
9128 * bison.simple: Test _MSDOS_, not MSDOS.
9129
9130 1996-06-01 Richard Stallman <rms@gnu.org>
9131
9132 * 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:
9133 Insert `_' macro around many string constants.
9134
9135 * src/main.c:
9136 Insert `_' macro around many string constants.
9137
9138 (main): Call setlocale, bindtextdomain and textdomain.
9139
9140 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
9141 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
9142 [ENABLE_NLS]: Include libintl.h.
9143 [ENABLE_NLS] (gettext): Define.
9144 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
9145 (N_, PACKAGE, LOCALEDIR): New macros.
9146
9147 1996-06-01 Richard Stallman <rms@gnu.org>
9148
9149 * POTFILES.in: New file.
9150
9151 * Makefile.in (allocate.o):
9152 Define target explicitly.
9153
9154 * Makefile.in (CFLAGS): Set to @CFLAGS@.
9155 (LDFLAGS): Set to @LDFLAGS@.
9156 (configure): Run autoconf only if preceding `cd' succeeds.
9157 (bison.s1): Redirect output to temporary file then move the
9158 temporary to the target, rather than redirecting directly to bison.s1.
9159 (clean): Remove config.status and config.log.
9160 (distclean): Don't remove config.status here.
9161
9162 1996-05-12 Richard Stallman <rms@gnu.org>
9163
9164 * src/bison.s1:
9165 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
9166
9167 1996-05-12 Richard Stallman <rms@gnu.org>
9168
9169 * bison.simple:
9170 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
9171
9172 1996-05-11 Richard Stallman <rms@gnu.org>
9173
9174 * src/bison.s1 (__yy_memcpy):
9175 Really reorder the args, as was supposedly done on Feb 14 1995.
9176 (yyparse): Calls changed accordingly.
9177
9178 1996-05-11 Richard Stallman <rms@gnu.org>
9179
9180 * Makefile.in (dist): Don't use $(srcdir).
9181
9182 * bison.simple (__yy_memcpy):
9183 Really reorder the args, as was supposedly done on Feb 14 1995.
9184 (yyparse): Calls changed accordingly.
9185
9186 1996-01-27 Richard Stallman <rms@gnu.org>
9187
9188 * src/output.c (output_rule_data):
9189 Test YYERROR_VERBOSE in the conditional
9190 around the definition of ttyname.
9191
9192 1995-12-29 Richard Stallman <rms@gnu.org>
9193
9194 * src/bison.s1:
9195 Fix line numbers in #line commands.
9196
9197 1995-12-29 Richard Stallman <rms@gnu.org>
9198
9199 * bison.simple:
9200 Fix line numbers in #line commands.
9201
9202 1995-12-27 Richard Stallman <rms@gnu.org>
9203
9204 * src/bison.s1 (YYPARSE_PARAM_DECL):
9205 In C++, make it always null.
9206 (YYPARSE_PARAM_ARG): New macro.
9207 (yyparse): Use YYPARSE_PARAM_ARG.
9208
9209 1995-12-27 Richard Stallman <rms@gnu.org>
9210
9211 * bison.simple (YYPARSE_PARAM_DECL):
9212 In C++, make it always null.
9213 (YYPARSE_PARAM_ARG): New macro.
9214 (yyparse): Use YYPARSE_PARAM_ARG.
9215
9216 1995-11-29 Richard Stallman <rms@gnu.org>
9217
9218 * doc/bison.texinfo:
9219 Describe literal string tokens, %raw, %no_lines, %token_table.
9220
9221 1995-11-29 Daniel Hagerty <hag@gnu.org>
9222
9223 * doc/bison.texinfo: Fixed update date
9224
9225 1995-10-16 Richard Stallman <rms@gnu.org>
9226
9227 * src/version.c: Version 1.25.
9228
9229 1995-10-16 Richard Stallman <rms@gnu.org>
9230
9231 * NEWS: *** empty log message ***
9232
9233 1995-10-16 Richard Stallman <rms@gnu.org>
9234
9235 * doc/bison.1, doc/bison.rnh:
9236 Add new options.
9237
9238 1995-10-15 Richard Stallman <rms@gnu.org>
9239
9240 * src/vmsgetargs.c, src/getargs.c:
9241 Added -n, -k, and -raw switches.
9242 (noparserflag, toknumflag, rawtoknumflag): New variables.
9243
9244 * src/symtab.h (SALIAS):
9245 New #define for adding aliases to %token.
9246 (struct bucket): Added `alias' field.
9247
9248 * src/reduce.c (reduce_grammar):
9249 Revise error message.
9250 (print_notices): Remove final `.' from error message.
9251
9252 * src/reader.c (reader_output_yylsp):
9253 New function.
9254 (readgram): Use `#if 0' around code that accepted %command
9255 inside grammar rules: The documentation doesn't allow it,
9256 and it will fail since the %command processors scan for the next %.
9257 (parse_token_decl): Extended the %token
9258 declaration to allow a multi-character symbol as an alias.
9259 (parse_thong_decl): New function.
9260 (read_declarations): Added %thong declarations.
9261 (read_declarations): Handle NOOP to deal with allowing
9262 % declarations as another means to specify the flags.
9263 (readgram): Allow %prec prior to semantics embedded in a rule.
9264 (skip_to_char, read_declarations, copy_definition)
9265 (parse_token_decl, parse_start_decl, parse_type_decl)
9266 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
9267 (get_type_name, copy_guard, copy_action, readgram)
9268 (get_type, packsymbols): Revised most error messages.
9269 Changed `fatal' to `warnxxx' to avoid aborting for error.
9270 Revised and use multiple warnxxx functions to avoid using VARARGS1.
9271 (read_declarations): Improve the error message for
9272 an invalid character. Do not abort.
9273 (read_declarations, copy_guard, copy_action): Use
9274 printable_version to avoid unprintable characters in printed output.
9275 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
9276 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
9277 Allow the type of a non-terminal can be given
9278 more than once, as long as all specifications give the same type.
9279
9280 * src/output.c:
9281 (output_headers, output_trailers, output, output_gram)
9282 (output_rule_data): Implement noparserflag variable.
9283 Implement toknumflag variable.
9284 (output): Call reader_output_yylsp to output LTYPESTR.
9285
9286 * src/main.c (main):
9287 If reader sees an error, don't process the grammar.
9288 (fatals): Updated to not use VARARGS1.
9289 (printable_version, int_to_string, warn, warni, warns, warnss)
9290 (warnsss): New error reporting functions. Avoid abort for error.
9291
9292 * src/lex.h:
9293 Added THONG and NOOP for alias processing.
9294 Added SETOPT for the new code that allows setting options with %flags.
9295
9296 * src/lex.c:
9297 Include getopt.h. Add some extern decls.
9298 (safegetc): New function to deal with EOF gracefully.
9299 (literalchar); new function to deal with reading \ escapes.
9300 (lex): Use literalchar.
9301 (lex): Implemented "..." tokens.
9302 (literalchar, lex, parse_percent_token): Made tokenbuffer
9303 always contain the token. This includes growing the token
9304 buffer while reading an integer.
9305 (parse_percent_token): Replaced if-else statement with percent_table.
9306 (parse_percent_token): Added % declarations as another
9307 way to specify the flags -n, -l, and -r. Also added hooks for
9308 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
9309 major changes to files.c.
9310 (lex) Retain in the incoming stream a character following
9311 an incorrect '/'.
9312 (skip_white_space, lex): Revised most error messages
9313 and changed fatal to warn to avoid aborting.
9314 (percent_table): Added %thong declarations.
9315
9316 * src/gram.h: Comment changes.
9317
9318 * src/files.c (openfiles, open_extra_files, done):
9319 Add faction flag
9320 and actfile file. Handle noparserflag. Both for -n switch.
9321
9322 * src/conflicts.c (resolve_sr_conflict):
9323 Remove use of alloca.
9324
9325 1995-06-01 Jim Meyering <meyering@gnu.org>
9326
9327 * doc/bison.texinfo: *** empty log message ***
9328
9329 1995-05-06 Richard Stallman <rms@gnu.org>
9330
9331 * src/bison.s1: Comment change.
9332
9333 1995-05-06 Richard Stallman <rms@gnu.org>
9334
9335 * bison.simple: Comment change.
9336
9337 1995-05-03 Richard Stallman <rms@gnu.org>
9338
9339 * src/version.c: Version now 1.24.
9340
9341 * src/bison.s1: Change distribution terms.
9342
9343 * src/version.c: Version now 1.23.
9344
9345 1995-05-03 Richard Stallman <rms@gnu.org>
9346
9347 * doc/bison.texinfo:
9348 Rewrite "Conditions for Using Bison".
9349 Update version to 1.24.
9350
9351 1995-05-03 Richard Stallman <rms@gnu.org>
9352
9353 * bison.simple: Change distribution terms.
9354
9355 1995-02-23 Richard Stallman <rms@gnu.org>
9356
9357 * src/files.c: Test __VMS_POSIX as well as VMS.
9358
9359 1995-02-14 Jim Meyering <meyering@gnu.org>
9360
9361 * src/bison.s1 (__yy_memcpy):
9362 Renamed from __yy_bcopy to avoid
9363 confusion. Reverse FROM and TO arguments to be consistent with
9364 those of memcpy.
9365
9366 1995-02-14 Jim Meyering <meyering@gnu.org>
9367
9368 * bison.simple (__yy_memcpy):
9369 Renamed from __yy_bcopy to avoid
9370 confusion. Reverse FROM and TO arguments to be consistent with
9371 those of memcpy.
9372
9373 1994-11-10 David J. MacKenzie <djm@gnu.org>
9374
9375 * NEWS: reformat
9376
9377 * NEWS: New file.
9378
9379 * Makefile.in (DISTFILES): Include NEWS.
9380
9381 * Makefile.in (DISTFILES):
9382 Include install-sh, not install.sh.
9383
9384 * configure.in: Update to Autoconf v2 macro names.
9385
9386 1994-10-05 David J. MacKenzie <djm@gnu.org>
9387
9388 * Makefile.in: fix typo
9389
9390 * Makefile.in (prefix, exec_prefix):
9391 Let configure set them.
9392
9393 1994-09-28 David J. MacKenzie <djm@gnu.org>
9394
9395 * Makefile.in: Set datadir to $(prefix)/share.
9396
9397 1994-09-15 Richard Stallman <rms@gnu.org>
9398
9399 * src/bison.s1:
9400 Update copyright notice and GPL version.
9401
9402 1994-09-15 Richard Stallman <rms@gnu.org>
9403
9404 * bison.simple:
9405 Update copyright notice and GPL version.
9406
9407 1994-07-12 Richard Stallman <rms@gnu.org>
9408
9409 * src/reduce.c, src/reader.c:
9410 entered into RCS
9411
9412 1994-05-05 David J. MacKenzie <djm@gnu.org>
9413
9414 * Makefile.in: entered into RCS
9415
9416 1994-03-26 Richard Stallman <rms@gnu.org>
9417
9418 * src/bison.s1: entered into RCS
9419
9420 1994-03-26 Richard Stallman <rms@gnu.org>
9421
9422 * bison.simple: entered into RCS
9423
9424 1994-03-25 Richard Stallman <rms@gnu.org>
9425
9426 * src/main.c: entered into RCS
9427
9428 1994-03-24 Richard Stallman <rms@gnu.org>
9429
9430 * src/conflicts.c: entered into RCS
9431
9432 1994-01-02 Richard Stallman <rms@gnu.org>
9433
9434 * Makefile.in: *** empty log message ***
9435
9436 1993-11-21 Richard Stallman <rms@gnu.org>
9437
9438 * src/bison.s1: *** empty log message ***
9439
9440 1993-11-21 Richard Stallman <rms@gnu.org>
9441
9442 * doc/bison.texinfo: entered into RCS
9443
9444 * doc/bison.texinfo: *** empty log message ***
9445
9446 1993-11-21 Richard Stallman <rms@gnu.org>
9447
9448 * bison.simple: *** empty log message ***
9449
9450 1993-10-25 David J. MacKenzie <djm@gnu.org>
9451
9452 * doc/bison.texinfo: *** empty log message ***
9453
9454 1993-10-19 Richard Stallman <rms@gnu.org>
9455
9456 * src/bison.s1: *** empty log message ***
9457
9458 1993-10-19 Richard Stallman <rms@gnu.org>
9459
9460 * bison.simple: *** empty log message ***
9461
9462 1993-10-14 Richard Stallman <rms@gnu.org>
9463
9464 * src/bison.s1: *** empty log message ***
9465
9466 1993-10-14 Richard Stallman <rms@gnu.org>
9467
9468 * bison.simple: *** empty log message ***
9469
9470 1993-09-14 David J. MacKenzie <djm@gnu.org>
9471
9472 * doc/bison.texinfo: *** empty log message ***
9473
9474 1993-09-13 Noah Friedman <friedman@gnu.org>
9475
9476 * Makefile.in: *** empty log message ***
9477
9478 1993-09-10 Richard Stallman <rms@gnu.org>
9479
9480 * src/conflicts.c: *** empty log message ***
9481
9482 * src/system.h: entered into RCS
9483
9484 1993-09-10 Richard Stallman <rms@gnu.org>
9485
9486 * doc/bison.1: entered into RCS
9487
9488 1993-09-06 Noah Friedman <friedman@gnu.org>
9489
9490 * src/version.c: entered into RCS
9491
9492 1993-09-06 Noah Friedman <friedman@gnu.org>
9493
9494 * Makefile.in: *** empty log message ***
9495
9496 1993-07-30 David J. MacKenzie <djm@gnu.org>
9497
9498 * Makefile.in: *** empty log message ***
9499
9500 1993-07-24 Richard Stallman <rms@gnu.org>
9501
9502 * src/bison.s1: *** empty log message ***
9503
9504 1993-07-24 Richard Stallman <rms@gnu.org>
9505
9506 * bison.simple: *** empty log message ***
9507
9508 1993-07-08 David J. MacKenzie <djm@gnu.org>
9509
9510 * Makefile.in: *** empty log message ***
9511
9512 1993-07-04 Richard Stallman <rms@gnu.org>
9513
9514 * src/bison.s1: *** empty log message ***
9515
9516 1993-07-04 Richard Stallman <rms@gnu.org>
9517
9518 * bison.simple: *** empty log message ***
9519
9520 1993-06-26 David J. MacKenzie <djm@gnu.org>
9521
9522 * src/getargs.c: entered into RCS
9523
9524 1993-06-26 David J. MacKenzie <djm@gnu.org>
9525
9526 * doc/bison.texinfo: *** empty log message ***
9527
9528 * doc/bison.1: New file.
9529
9530 1993-06-25 Richard Stallman <rms@gnu.org>
9531
9532 * src/getargs.c: New file.
9533
9534 1993-06-16 Richard Stallman <rms@gnu.org>
9535
9536 * src/bison.s1: *** empty log message ***
9537
9538 1993-06-16 Richard Stallman <rms@gnu.org>
9539
9540 * bison.simple: *** empty log message ***
9541
9542 1993-06-03 Richard Stallman <rms@gnu.org>
9543
9544 * src/bison.s1: New file.
9545
9546 1993-06-03 Richard Stallman <rms@gnu.org>
9547
9548 * doc/bison.texinfo: *** empty log message ***
9549
9550 1993-06-03 Richard Stallman <rms@gnu.org>
9551
9552 * bison.simple: New file.
9553
9554 1993-05-19 Richard Stallman <rms@gnu.org>
9555
9556 * doc/bison.texinfo: New file.
9557
9558 1993-05-07 Noah Friedman <friedman@gnu.org>
9559
9560 * Makefile.in: *** empty log message ***
9561
9562 1993-04-28 Noah Friedman <friedman@gnu.org>
9563
9564 * src/reader.c: *** empty log message ***
9565
9566 1993-04-23 Noah Friedman <friedman@gnu.org>
9567
9568 * src/alloc.h: entered into RCS
9569
9570 1993-04-20 David J. MacKenzie <djm@gnu.org>
9571
9572 * src/version.c: *** empty log message ***
9573
9574 * src/files.c, src/allocate.c:
9575 entered into RCS
9576
9577 * src/reader.c: *** empty log message ***
9578
9579 * src/lex.c: entered into RCS
9580
9581 * src/conflicts.c: New file.
9582
9583 * src/symtab.c: entered into RCS
9584
9585 * src/alloc.h: New file.
9586
9587 * src/LR0.c: entered into RCS
9588
9589 1993-04-18 Noah Friedman <friedman@gnu.org>
9590
9591 * src/reader.c: New file.
9592
9593 * src/version.c: *** empty log message ***
9594
9595 1993-04-18 Noah Friedman <friedman@gnu.org>
9596
9597 * Makefile.in: *** empty log message ***
9598
9599 1993-04-17 Noah Friedman <friedman@gnu.org>
9600
9601 * Makefile.in: *** empty log message ***
9602
9603 1993-04-15 Richard Stallman <rms@gnu.org>
9604
9605 * src/main.c, src/files.c:
9606 New file.
9607
9608 1993-04-15 Noah Friedman <friedman@gnu.org>
9609
9610 * configure.in: entered into RCS
9611
9612 * configure.in: *** empty log message ***
9613
9614 * configure.in: New file.
9615
9616 1993-04-14 Richard Stallman <rms@gnu.org>
9617
9618 * Makefile.in: New file.
9619
9620 1993-04-13 Richard Stallman <rms@gnu.org>
9621
9622 * src/version.c: New file.
9623
9624 1993-03-25 Richard Stallman <rms@gnu.org>
9625
9626 * src/output.c: entered into RCS
9627
9628 1992-09-25 Richard Stallman <rms@gnu.org>
9629
9630 * configure.bat: entered into RCS
9631
9632 1992-06-22 Richard Stallman <rms@gnu.org>
9633
9634 * src/vmsgetargs.c: entered into RCS
9635
9636 1992-06-22 Richard Stallman <rms@gnu.org>
9637
9638 * doc/bison.rnh: entered into RCS
9639
9640 1992-04-20 David J. MacKenzie <djm@gnu.org>
9641
9642 * README: entered into RCS
9643
9644 1992-01-22 Richard Stallman <rms@gnu.org>
9645
9646 * src/machine.h: entered into RCS
9647
9648 1991-12-21 Richard Stallman <rms@gnu.org>
9649
9650 * src/lalr.c, src/closure.c:
9651 entered into RCS
9652
9653 1991-12-20 Richard Stallman <rms@gnu.org>
9654
9655 * src/state.h: entered into RCS
9656
9657 1991-12-18 Richard Stallman <rms@gnu.org>
9658
9659 * src/print.c, src/nullable.c, src/derives.c:
9660 entered into RCS
9661
9662 1991-11-03 David J. MacKenzie <djm@gnu.org>
9663
9664 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
9665 entered into RCS
9666
9667 1988-09-09 Richard Stallman <rms@gnu.org>
9668
9669 * src/bison.hairy: entered into RCS
9670
9671 1987-12-16 Richard Stallman <rms@gnu.org>
9672
9673 * REFERENCES: entered into RCS
9674 -----
9675
9676 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
9677
9678 This file is part of GNU Bison.
9679
9680 GNU Bison is free software; you can redistribute it and/or modify
9681 it under the terms of the GNU General Public License as published by
9682 the Free Software Foundation; either version 2, or (at your option)
9683 any later version.
9684
9685 GNU Bison is distributed in the hope that it will be useful,
9686 but WITHOUT ANY WARRANTY; without even the implied warranty of
9687 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9688 GNU General Public License for more details.
9689
9690 You should have received a copy of the GNU General Public License
9691 along with GNU Bison; see the file COPYING. If not, write to
9692 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
9693 Boston, MA 02111-1307, USA.