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